Skip to content

Commit 34b1356

Browse files
authored
Add files via upload
1 parent ac43779 commit 34b1356

1 file changed

Lines changed: 22 additions & 10 deletions

File tree

PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,11 @@ struct CascDiHadronCorr {
424424
same.setObject(new CorrelationContainer("sameEvent", "sameEvent", corrAxis, effAxis, userAxis));
425425
mixed.setObject(new CorrelationContainer("mixedEvent", "mixedEvent", corrAxis, effAxis, userAxis));
426426

427-
validCollisions.resize(registry.get<TH1>(HIST("Nch"))->GetNbinsX() * registry.get<TH1>(HIST("zVtx"))->GetNbinsX());
427+
o2::framework::AxisSpec axisMult = axisMultiplicity;
428+
o2::framework::AxisSpec axisVtx = axisVertex;
429+
int nMultBins = axisMult.binEdges.size() - 1;
430+
int nVtxBins = axisVtx.binEdges.size() - 1;
431+
validCollisions.resize(nMultBins * nVtxBins);
428432

429433
LOGF(info, "End of init");
430434
}
@@ -748,6 +752,8 @@ struct CascDiHadronCorr {
748752
{
749753
float triggerWeight = 1.0f;
750754
float associatedWeight = 1.0f;
755+
if (currentCollision.assocParticles.size() == 0)
756+
return;
751757
// loop over all validCollisions in buffer
752758
for (const auto& collision : validCollisions[bin]) {
753759
double fSampleIndex = gRandom->Uniform(0, cfgSampleSize);
@@ -756,7 +762,7 @@ struct CascDiHadronCorr {
756762
if (mEfficiency) {
757763
efficiencyAssociatedCache.clear();
758764
efficiencyAssociatedCache.reserve(collision.assocParticles.size());
759-
for (const auto& track2 : currentCollision.assocParticles) {
765+
for (const auto& track2 : collision.assocParticles) {
760766
float weff = 1.;
761767
getEfficiencyCorrection(weff, track2.eta, track2.pt, posZ);
762768
efficiencyAssociatedCache.push_back(weff);
@@ -794,6 +800,8 @@ struct CascDiHadronCorr {
794800
{
795801
float triggerWeight = 1.0f;
796802
float associatedWeight = 1.0f;
803+
if (currentCollision.assocParticles.size() == 0)
804+
return;
797805
// loop over all validCollisions in buffer
798806
for (const auto& collision : validCollisions[bin]) {
799807
double fSampleIndex = gRandom->Uniform(0, cfgSampleSize);
@@ -802,7 +810,7 @@ struct CascDiHadronCorr {
802810
if (mEfficiency) {
803811
efficiencyAssociatedCache.clear();
804812
efficiencyAssociatedCache.reserve(collision.assocParticles.size());
805-
for (const auto& track2 : currentCollision.assocParticles) {
813+
for (const auto& track2 : collision.assocParticles) {
806814
float weff = 1.;
807815
getEfficiencyCorrection(weff, track2.eta, track2.pt, posZ);
808816
efficiencyAssociatedCache.push_back(weff);
@@ -829,9 +837,9 @@ struct CascDiHadronCorr {
829837
float deltaEta = track1.eta() - track2.eta;
830838

831839
if (cfgOutputXi)
832-
same->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mXi(), eventWeight * triggerWeight * associatedWeight);
840+
mixed->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mXi(), eventWeight * triggerWeight * associatedWeight);
833841
if (cfgOutputOmega)
834-
same->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mOmega(), eventWeight * triggerWeight * associatedWeight);
842+
mixed->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mOmega(), eventWeight * triggerWeight * associatedWeight);
835843
registry.fill(HIST("deltaEta_deltaPhi_mixed"), deltaPhi, deltaEta, eventWeight * triggerWeight * associatedWeight);
836844
}
837845
}
@@ -1592,7 +1600,7 @@ struct CascDiHadronCorr {
15921600
}
15931601
}
15941602

1595-
void processMCEfficiency(FilteredMcCollisions::iterator const& mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions>> const& collisions, soa::Join<aod::CascDatas, aod::McCascLabels> const& Cascades, FilteredMcParticles const& mcParticles)
1603+
void processMCEfficiency(FilteredMcCollisions::iterator const& mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions>> const& collisions, soa::Join<aod::CascDatas, aod::McCascLabels> const& Cascades, FilteredMcParticles const& mcParticles, DaughterTracks const&)
15961604
{
15971605
registry.fill(HIST("MCEffeventcount"), 0.5);
15981606
if (cfgSelCollByNch && (mcParticles.size() < cfgCutMultMin || mcParticles.size() >= cfgCutMultMax)) {
@@ -1601,8 +1609,10 @@ struct CascDiHadronCorr {
16011609
// Primaries
16021610
for (const auto& mcParticle : mcParticles) {
16031611
if (mcParticle.isPhysicalPrimary()) {
1604-
registry.fill(HIST("MCEffeventcount"), 1.5);
1605-
same->getTrackHistEfficiency()->Fill(CorrelationContainer::MC, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ());
1612+
if ((cfgOutputXi && getSpecies(mcParticle.pdgCode()) == 1) || (cfgOutputOmega && getSpecies(mcParticle.pdgCode()) == 2)) {
1613+
registry.fill(HIST("MCEffeventcount"), 1.5);
1614+
same->getTrackHistEfficiency()->Fill(CorrelationContainer::MC, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ());
1615+
}
16061616
}
16071617
}
16081618
for (const auto& collision : collisions) {
@@ -1613,14 +1623,16 @@ struct CascDiHadronCorr {
16131623
}
16141624

16151625
for (const auto& casc : groupedCascades) {
1626+
if (!cascSelected(casc, collision.posX(), collision.posY(), collision.posZ()))
1627+
continue;
16161628
if (casc.has_mcParticle()) {
1617-
auto mcParticle = casc.mcParticle();
1629+
auto mcParticle = casc.mcParticle_as<FilteredMcParticles>();
16181630
if (mcParticle.isPhysicalPrimary()) {
16191631
registry.fill(HIST("MCEffeventcount"), 2.5);
16201632
same->getTrackHistEfficiency()->Fill(CorrelationContainer::RecoPrimaries, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ());
16211633
}
16221634
registry.fill(HIST("MCEffeventcount"), 3.5);
1623-
same->getTrackHistEfficiency()->Fill(CorrelationContainer::RecoAll, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ());
1635+
same->getTrackHistEfficiency()->Fill(CorrelationContainer::RecoAll, mcParticle.eta(), mcParticle.pt(), (cfgOutputXi * getSpecies(PDG_t::kXiMinus) + cfgOutputOmega * getSpecies(PDG_t::kOmegaMinus)), 0., mcCollision.posZ());
16241636
} else {
16251637
// fake casc
16261638
registry.fill(HIST("MCEffeventcount"), 4.5);

0 commit comments

Comments
 (0)