Skip to content

Commit 12fcd02

Browse files
lauraserLaura Serksnyte
andauthored
[PWGCF] Add differentiation between secondary V0s based on their mothers (AliceO2Group#9359)
Co-authored-by: Laura Serksnyte <[email protected]>
1 parent ba76a2a commit 12fcd02

File tree

4 files changed

+54
-1
lines changed

4 files changed

+54
-1
lines changed

PWGCF/DataModel/FemtoDerived.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,9 @@ enum ParticleOriginMCTruth {
397397
kWrongCollision, //! particle, that was associated wrongly to the collision
398398
kSecondaryDaughterLambda, //! Daughter from a Lambda decay
399399
kSecondaryDaughterSigmaplus, //! Daughter from a Sigma^plus decay
400+
kSecondaryDaughterSigma0, //! Daughter from a Sigma^0 decay
401+
kSecondaryDaughterXiMinus, //! Daughter from a Xi^- decay
402+
kSecondaryDaughterXi0, //! Daughter from a Xi^0 decay
400403
kElse, //! none of the above; (NOTE: used to catch bugs. will be removed once MC usage is properly validated)
401404
kNOriginMCTruthTypes
402405
};

PWGCF/FemtoDream/Core/femtoDreamParticleHisto.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,13 +198,19 @@ class FemtoDreamParticleHisto
198198
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_WrongCollision").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTHnSparseF, {tempFitVarpTAxis, tempFitVarAxis, multAxis});
199199
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Fake").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTHnSparseF, {tempFitVarpTAxis, tempFitVarAxis, multAxis});
200200
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Else").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTHnSparseF, {tempFitVarpTAxis, tempFitVarAxis, multAxis});
201+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_SIGMA0").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTHnSparseF, {tempFitVarpTAxis, tempFitVarAxis, multAxis});
202+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_XIMinus").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTHnSparseF, {tempFitVarpTAxis, tempFitVarAxis, multAxis});
203+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_XI0").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTHnSparseF, {tempFitVarpTAxis, tempFitVarAxis, multAxis});
201204
} else {
202205
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Primary").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
203206
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
204207
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Material").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
205208
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_WrongCollision").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
206209
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Fake").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
207210
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Else").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
211+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_SIGMA0").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
212+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_XIMinus").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
213+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_XI0").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
208214
}
209215
/// V0 histograms
210216
/// to be implemented
@@ -560,6 +566,18 @@ class FemtoDreamParticleHisto
560566
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Else"),
561567
part.pt(), part.tempFitVar(), mult);
562568
break;
569+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterSigma0):
570+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_SIGMA0"),
571+
part.pt(), part.tempFitVar(), mult);
572+
break;
573+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterXiMinus):
574+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_XIMinus"),
575+
part.pt(), part.tempFitVar(), mult);
576+
break;
577+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterXi0):
578+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_XI0"),
579+
part.pt(), part.tempFitVar(), mult);
580+
break;
563581
default:
564582
LOG(fatal) << "femtodreamparticleMC: not known value for ParticleOriginMCTruth - please check. Quitting!";
565583
}
@@ -589,6 +607,18 @@ class FemtoDreamParticleHisto
589607
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Else"),
590608
part.pt(), part.tempFitVar());
591609
break;
610+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterSigma0):
611+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_SIGMA0"),
612+
part.pt(), part.tempFitVar());
613+
break;
614+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterXiMinus):
615+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_XIMinus"),
616+
part.pt(), part.tempFitVar());
617+
break;
618+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterXi0):
619+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_XI0"),
620+
part.pt(), part.tempFitVar());
621+
break;
592622
default:
593623
LOG(fatal) << "femtodreamparticleMC: not known value for ParticleOriginMCTruth - please check. Quitting!";
594624
}

PWGCF/FemtoDream/Core/femtoDreamUtils.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,19 @@ inline int checkDaughterType(o2::aod::femtodreamparticle::ParticleType partType,
8383
} // switch
8484

8585
} else if (partType == o2::aod::femtodreamparticle::ParticleType::kV0) {
86-
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary;
86+
switch (abs(motherPDG)) {
87+
case kSigma0:
88+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigma0;
89+
break;
90+
case kXiMinus:
91+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXiMinus;
92+
break;
93+
case o2::constants::physics::Pdg::kXi0:
94+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXi0;
95+
break;
96+
default:
97+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary;
98+
}
8799

88100
} else if (partType == o2::aod::femtodreamparticle::ParticleType::kV0Child) {
89101
switch (abs(motherPDG)) {

PWGCF/FemtoDream/TableProducer/femtoDreamProducerTask.cxx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,10 @@ struct femtoDreamProducerTask {
216216

217217
int CutBits = 8 * sizeof(o2::aod::femtodreamparticle::cutContainerType);
218218
TrackRegistry.add("AnalysisQA/CutCounter", "; Bit; Counter", kTH1F, {{CutBits + 1, -0.5, CutBits + 0.5}});
219+
TrackRegistry.add("AnalysisQA/getGenStatusCode", "; Bit; Entries", kTH1F, {{200, 0, 200}});
220+
TrackRegistry.add("AnalysisQA/getProcess", "; Bit; Entries", kTH1F, {{200, 0, 200}});
221+
TrackRegistry.add("AnalysisQA/Mother", "; Bit; Entries", kTH1F, {{4000, -4000, 4000}});
222+
TrackRegistry.add("AnalysisQA/Particle", "; Bit; Entries", kTH1F, {{4000, -4000, 4000}});
219223
V0Registry.add("AnalysisQA/CutCounter", "; Bit; Counter", kTH1F, {{CutBits + 1, -0.5, CutBits + 0.5}});
220224
ResoRegistry.add("AnalysisQA/Reso/InvMass", "Invariant mass V0s;M_{KK};Entries", HistType::kTH1F, {{7000, 0.8, 1.5}});
221225
ResoRegistry.add("AnalysisQA/Reso/InvMass_selected", "Invariant mass V0s;M_{KK};Entries", HistType::kTH1F, {{7000, 0.8, 1.5}});
@@ -442,11 +446,14 @@ struct femtoDreamProducerTask {
442446
// get corresponding MC particle and its info
443447
auto particleMC = particle.mcParticle();
444448
auto pdgCode = particleMC.pdgCode();
449+
TrackRegistry.fill(HIST("AnalysisQA/Particle"), pdgCode);
445450
int particleOrigin = 99;
446451
int pdgCodeMother = -1;
447452
// get list of mothers, but it could be empty (for example in case of injected light nuclei)
448453
auto motherparticlesMC = particleMC.template mothers_as<aod::McParticles>();
449454
// check pdg code
455+
TrackRegistry.fill(HIST("AnalysisQA/getGenStatusCode"), particleMC.getGenStatusCode());
456+
TrackRegistry.fill(HIST("AnalysisQA/getProcess"), particleMC.getProcess());
450457
// if this fails, the particle is a fake
451458
if (abs(pdgCode) == abs(ConfTrkPDGCode.value)) {
452459
// check first if particle is from pile up
@@ -464,6 +471,7 @@ struct femtoDreamProducerTask {
464471
// get direct mother
465472
auto motherparticleMC = motherparticlesMC.front();
466473
pdgCodeMother = motherparticleMC.pdgCode();
474+
TrackRegistry.fill(HIST("AnalysisQA/Mother"), pdgCodeMother);
467475
particleOrigin = checkDaughterType(fdparttype, motherparticleMC.pdgCode());
468476
// check if particle is material
469477
// particle is from inelastic hadronic interaction -> getProcess() == 23

0 commit comments

Comments
 (0)