Skip to content

Commit af26faf

Browse files
Georgios Mantzaridisgmantzar
authored andcommitted
Implement MC for Cascades
- Set correct MC truth histograms for template fits - Fixed small bug in the Producer Task (wrong isMC flag in the processMC functions) - Fixed bug in the CPR for antiparticle pairs in the SE - Collision filters are now applied in the track-Cascacde task - resolved merge conflict in the TrackCascade pair task
1 parent 9439541 commit af26faf

File tree

5 files changed

+210
-70
lines changed

5 files changed

+210
-70
lines changed

PWGCF/DataModel/FemtoDerived.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,9 @@ enum ParticleOriginMCTruth {
671671
kSecondaryDaughterSigma0, //! Daughter from a Sigma^0 decay
672672
kSecondaryDaughterXiMinus, //! Daughter from a Xi^- decay
673673
kSecondaryDaughterXi0, //! Daughter from a Xi^0 decay
674+
kSecondaryDaughterOmegaMinus,//! Daughter from a Omega^- decay
675+
kSecondaryDaughterXistar0, //! Daughter from a Xi*^0 decay
676+
kSecondaryDaughterXistarMinus, //! Daughter from a Xi*^- decay
674677
kElse, //! none of the above; (NOTE: used to catch bugs. will be removed once MC usage is properly validated)
675678
kNOriginMCTruthTypes
676679
};

PWGCF/FemtoDream/Core/femtoDreamParticleHisto.h

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,11 @@ class FemtoDreamParticleHisto
7171
mHistogramRegistry->add((folderName + folderSuffix + "/hpTInvMassAntiLambda").c_str(), "; M_{#bar{#Lambda}}; Entries", kTH2F, {pTAxis, InvMassAxis});
7272
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassLambdaAntiLambda").c_str(), "; M_{#Lambda}; M_{#bar{#Lambda}}", kTH2F, {InvMassAxis, InvMassAxis});
7373
}
74-
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascade) {
74+
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascade && mc == o2::aod::femtodreamMCparticle::MCType::kRecon) {
7575
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassCascade").c_str(), "; M_{Cascade}; Entries", kTH1F, {InvMassAxis});
7676
mHistogramRegistry->add((folderName + folderSuffix + "/hpTInvMassCascade").c_str(), "; p_{T} (GeV/#it{c{}); M_{Cascade}", kTH2F, {pTAxis, InvMassAxis});
77+
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassCascadeV0Daugh").c_str(), "; M_{Cascade}; Entries", kTH1F, {InvMassAxis});
78+
mHistogramRegistry->add((folderName + folderSuffix + "/hpTInvMassCascadeV0Daugh").c_str(), "; p_{T} (GeV/#it{c{}); M_{Cascade}", kTH2F, {pTAxis, InvMassAxis});
7779
}
7880
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kReso) {
7981
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassReso").c_str(), "; M_{Reso}; Entries", kTH1F, {InvMassAxis}); // added for Phi !!
@@ -271,7 +273,15 @@ class FemtoDreamParticleHisto
271273
/// to be implemented
272274
} else if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascade) {
273275
/// Cascade histograms
274-
/// to be implemented
276+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Primary").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
277+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
278+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Material").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
279+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_WrongCollision").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
280+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Fake").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
281+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Else").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
282+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_OMEGAMinus").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
283+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_XIStar0").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
284+
mHistogramRegistry->add((folderName + folderSuffix + "/hCPA_Secondary_XIStarMinus").c_str(), "; #it{p}_{T} (GeV/#it{c}); CPA", kTH2F, {tempFitVarpTAxis, tempFitVarAxis});
275285
} else {
276286
LOG(fatal) << "FemtoDreamParticleHisto: Histogramming for requested object not defined - quitting!";
277287
}
@@ -360,11 +370,11 @@ class FemtoDreamParticleHisto
360370
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hpTInvMassAntiLambda"), part.pt(), part.mAntiLambda());
361371
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hInvMassLambdaAntiLambda"), part.mLambda(), part.mAntiLambda());
362372
}
363-
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascade) {
373+
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascade && mc == o2::aod::femtodreamMCparticle::MCType::kRecon) {
364374
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hInvMassCascade"), part.mLambda());
365375
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hpTInvMassCascade"), part.pt(), part.mLambda());
366-
// mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hInvMassCascade"), part.mLambda());
367-
// mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hpTInvMassCascade"), part.pt(), part.mLambda());
376+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hInvMassCascadeV0Daugh"), part.mAntiLambda());
377+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hpTInvMassCascadeV0Daugh"), part.pt(), part.mAntiLambda());
368378
}
369379
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kReso) {
370380
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST(o2::aod::femtodreamMCparticle::MCTypeName[mc]) + HIST("/hInvMassReso"), part.mLambda()); // currently no MC for Phi!!
@@ -564,7 +574,7 @@ class FemtoDreamParticleHisto
564574
if (std::abs(pdgcode) == mPDG) { // fill this histogramm only for TRUE protons (independently of their origin) for the track purity estimation
565575
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hPt_ReconNoFake"), part.pt());
566576
}
567-
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kTrack || mParticleType == o2::aod::femtodreamparticle::ParticleType::kV0Child) {
577+
if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kTrack || mParticleType == o2::aod::femtodreamparticle::ParticleType::kV0Child || mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascadeV0Child || mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascadeBachelor) {
568578
/// Track histograms
569579
if constexpr (isDebug) {
570580
switch (mctruthorigin) {
@@ -735,6 +745,47 @@ class FemtoDreamParticleHisto
735745
}
736746
}
737747
} else if constexpr (mParticleType == o2::aod::femtodreamparticle::ParticleType::kCascade) {
748+
switch (mctruthorigin) {
749+
case (o2::aod::femtodreamMCparticle::kPrimary):
750+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Primary"),
751+
part.pt(), part.tempFitVar());
752+
break;
753+
case (o2::aod::femtodreamMCparticle::kSecondary):
754+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary"),
755+
part.pt(), part.tempFitVar());
756+
break;
757+
case (o2::aod::femtodreamMCparticle::kMaterial):
758+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Material"),
759+
part.pt(), part.tempFitVar());
760+
break;
761+
case (o2::aod::femtodreamMCparticle::kWrongCollision):
762+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_WrongCollision"),
763+
part.pt(), part.tempFitVar());
764+
break;
765+
case (o2::aod::femtodreamMCparticle::kFake):
766+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Fake"),
767+
part.pt(), part.tempFitVar());
768+
break;
769+
case (o2::aod::femtodreamMCparticle::kElse):
770+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Else"),
771+
part.pt(), part.tempFitVar());
772+
break;
773+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterOmegaMinus):
774+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_OMEGAMinus"),
775+
part.pt(), part.tempFitVar());
776+
break;
777+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterXistar0):
778+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_XIStar0"),
779+
part.pt(), part.tempFitVar());
780+
break;
781+
case (o2::aod::femtodreamMCparticle::kSecondaryDaughterXistarMinus):
782+
mHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]) + HIST("_MC/hCPA_Secondary_XIStarMinus"),
783+
part.pt(), part.tempFitVar());
784+
break;
785+
default:
786+
LOG(fatal) << "femtodreamparticleMC: not known value for ParticleOriginMCTruth - please check. Quitting!";
787+
}
788+
738789
/// Cascade histograms
739790
} else {
740791
LOG(fatal) << "FemtoDreamParticleHisto: Histogramming for requested object not defined - quitting!";

PWGCF/FemtoDream/Core/femtoDreamUtils.h

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ inline int checkDaughterType(o2::aod::femtodreamparticle::ParticleType partType,
124124
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary;
125125
}
126126

127-
} else if (partType == o2::aod::femtodreamparticle::ParticleType::kV0Child) {
127+
} else if (partType == o2::aod::femtodreamparticle::ParticleType::kV0Child || partType == o2::aod::femtodreamparticle::ParticleType::kCascadeV0Child || partType == o2::aod::femtodreamparticle::ParticleType::kCascadeBachelor) {
128128
switch (abs(motherPDG)) {
129129
case kLambda0:
130130
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterLambda;
@@ -137,9 +137,19 @@ inline int checkDaughterType(o2::aod::femtodreamparticle::ParticleType partType,
137137
} // switch
138138

139139
} else if (partType == o2::aod::femtodreamparticle::ParticleType::kCascade) {
140-
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary;
141-
} else if (partType == o2::aod::femtodreamparticle::ParticleType::kCascadeBachelor) {
142-
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary;
140+
switch (std::abs(motherPDG)) {
141+
case kOmegaMinus:
142+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterOmegaMinus;
143+
break;
144+
case 3324:
145+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXistar0;
146+
break;
147+
case 3314:
148+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXistarMinus;
149+
break;
150+
default:
151+
partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary;
152+
}
143153
}
144154
return partOrigin;
145155
};

PWGCF/FemtoDream/TableProducer/femtoDreamProducerTask.cxx

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ struct femtoDreamProducerTask {
149149
Configurable<float> ConfTrkPIDnSigmaOffsetTOF{"ConfTrkPIDnSigmaOffsetTOF", 0., "Offset for TOF nSigma because of bad calibration"};
150150
Configurable<std::vector<int>> ConfTrkPIDspecies{"ConfTrkPIDspecies", std::vector<int>{o2::track::PID::Pion, o2::track::PID::Kaon, o2::track::PID::Proton, o2::track::PID::Deuteron}, "Trk sel: Particles species for PID"};
151151

152+
Configurable<int> ConfV0PDGCode{"ConfV0PDGCode", 3122, "PDG code of the selected v0 for Monte Carlo truth"};
153+
Configurable<int> ConfV0posDaughPDGCode{"ConfV0posDaughPDGCode", 2212, "PDG code of the selected v0's positive daughter for Monte Carlo truth"};
154+
Configurable<int> ConfV0negDaughPDGCode{"ConfV0negDaughPDGCode", 211, "PDG code of the selected v0's negative daughter for Monte Carlo truth"};
152155
FemtoDreamV0Selection v0Cuts;
153156
Configurable<std::vector<float>> ConfV0Sign{FemtoDreamV0Selection::getSelectionName(femtoDreamV0Selection::kV0Sign, "ConfV0"), std::vector<float>{-1, 1}, FemtoDreamV0Selection::getSelectionHelper(femtoDreamV0Selection::kV0Sign, "V0 selection: ")};
154157
Configurable<std::vector<float>> ConfV0PtMin{FemtoDreamV0Selection::getSelectionName(femtoDreamV0Selection::kV0pTMin, "ConfV0"), std::vector<float>{0.3f, 0.4f, 0.5f}, FemtoDreamV0Selection::getSelectionHelper(femtoDreamV0Selection::kV0pTMin, "V0 selection: ")};
@@ -175,6 +178,10 @@ struct femtoDreamProducerTask {
175178

176179
FemtoDreamCascadeSelection cascadeCuts;
177180
struct : o2::framework::ConfigurableGroup {
181+
Configurable<int> ConfCascPDGCode{"ConfCascPDGCode", 3122, "PDG code of the selected cascade for Monte Carlo truth"};
182+
Configurable<int> ConfCascPosDaughPDGCode{"ConfCascPosDaughPDGCode", 2212, "PDG code of the selected cascade's positive daughter for Monte Carlo truth"};
183+
Configurable<int> ConfCascNegDaughPDGCode{"ConfCascNegDaughPDGCode", 211, "PDG code of the selected cascade's negative daughter for Monte Carlo truth"};
184+
Configurable<int> ConfCascBachDaughPDGCode{"ConfCascBachDaughPDGCode", 211, "PDG code of the selected cascade's bachelor daughter for Monte Carlo truth"};
178185
Configurable<float> ConfCascInvMassLowLimit{"ConfCascInvMassLowLimit", 1.2, "Lower limit of the Cascade invariant mass"};
179186
Configurable<float> ConfCascInvMassUpLimit{"ConfCascInvMassUpLimit", 1.5, "Upper limit of the Cascade invariant mass"};
180187
Configurable<bool> ConfCascIsSelectedOmega{"ConfCascIsSelectedOmega", false, "Select Omegas instead of Xis (invariant mass)"};
@@ -615,7 +622,7 @@ struct femtoDreamProducerTask {
615622
}
616623

617624
template <typename CollisionType, typename ParticleType>
618-
void fillMCParticle(CollisionType const& col, ParticleType const& particle, o2::aod::femtodreamparticle::ParticleType fdparttype)
625+
void fillMCParticle(CollisionType const& col, ParticleType const& particle, o2::aod::femtodreamparticle::ParticleType fdparttype, int confPDGCode)
619626
{
620627
if (particle.has_mcParticle()) {
621628
// get corresponding MC particle and its info
@@ -629,8 +636,9 @@ struct femtoDreamProducerTask {
629636
// check pdg code
630637
TrackRegistry.fill(HIST("AnalysisQA/getGenStatusCode"), particleMC.getGenStatusCode());
631638
TrackRegistry.fill(HIST("AnalysisQA/getProcess"), particleMC.getProcess());
639+
632640
// if this fails, the particle is a fake
633-
if (abs(pdgCode) == abs(ConfTrkPDGCode.value)) {
641+
if (abs(pdgCode) == abs(confPDGCode)) {
634642
// check first if particle is from pile up
635643
// check if the collision associated with the particle is the same as the analyzed collision by checking their Ids
636644
if ((col.has_mcCollision() && (particleMC.mcCollisionId() != col.mcCollisionId())) || !col.has_mcCollision()) {
@@ -819,7 +827,7 @@ struct femtoDreamProducerTask {
819827
}
820828

821829
if constexpr (isMC) {
822-
fillMCParticle(col, track, o2::aod::femtodreamparticle::ParticleType::kTrack);
830+
fillMCParticle(col, track, o2::aod::femtodreamparticle::ParticleType::kTrack, ConfTrkPDGCode.value);
823831
}
824832

825833
if (ConfIsActivateReso.value) {
@@ -894,7 +902,7 @@ struct femtoDreamProducerTask {
894902
0);
895903
const int rowOfPosTrack = outputParts.lastIndex();
896904
if constexpr (isMC) {
897-
fillMCParticle(col, postrack, o2::aod::femtodreamparticle::ParticleType::kV0Child);
905+
fillMCParticle(col, postrack, o2::aod::femtodreamparticle::ParticleType::kV0Child, ConfV0posDaughPDGCode.value);
898906
}
899907
int negtrackID = v0.negTrackId();
900908
int rowInPrimaryTrackTableNeg = -1;
@@ -914,7 +922,7 @@ struct femtoDreamProducerTask {
914922
0);
915923
const int rowOfNegTrack = outputParts.lastIndex();
916924
if constexpr (isMC) {
917-
fillMCParticle(col, negtrack, o2::aod::femtodreamparticle::ParticleType::kV0Child);
925+
fillMCParticle(col, negtrack, o2::aod::femtodreamparticle::ParticleType::kV0Child, ConfV0posDaughPDGCode.value);
918926
}
919927
std::vector<int> indexChildID = {rowOfPosTrack, rowOfNegTrack};
920928
outputParts(outputCollision.lastIndex(),
@@ -934,7 +942,7 @@ struct femtoDreamProducerTask {
934942
fillDebugParticle<false, false>(v0); // QA for v0
935943
}
936944
if constexpr (isMC) {
937-
fillMCParticle(col, v0, o2::aod::femtodreamparticle::ParticleType::kV0);
945+
fillMCParticle(col, v0, o2::aod::femtodreamparticle::ParticleType::kV0, ConfV0PDGCode.value);
938946
}
939947
}
940948
}
@@ -973,8 +981,9 @@ struct femtoDreamProducerTask {
973981
0,
974982
0);
975983
const int rowOfPosCascadeTrack = outputParts.lastIndex();
976-
// TODO: include here MC filling
977-
//------
984+
if constexpr (isMC) {
985+
fillMCParticle(col, posTrackCasc, o2::aod::femtodreamparticle::ParticleType::kCascadeV0Child, ConfCascSel.ConfCascPosDaughPDGCode.value);
986+
}
978987

979988
// Fill negative child
980989
int negcasctrackID = casc.negTrackId();
@@ -995,8 +1004,9 @@ struct femtoDreamProducerTask {
9951004
0,
9961005
0);
9971006
const int rowOfNegCascadeTrack = outputParts.lastIndex();
998-
// TODO: include here MC filling
999-
//------
1007+
if constexpr (isMC) {
1008+
fillMCParticle(col, negTrackCasc, o2::aod::femtodreamparticle::ParticleType::kCascadeV0Child, ConfCascSel.ConfCascNegDaughPDGCode.value);
1009+
}
10001010

10011011
// Fill bachelor child
10021012
int bachelorcasctrackID = casc.bachelorId();
@@ -1017,8 +1027,9 @@ struct femtoDreamProducerTask {
10171027
0,
10181028
0);
10191029
const int rowOfBachelorCascadeTrack = outputParts.lastIndex();
1020-
// TODO: include here MC filling
1021-
//------
1030+
if constexpr (isMC) {
1031+
fillMCParticle(col, bachTrackCasc, o2::aod::femtodreamparticle::ParticleType::kCascadeBachelor, ConfCascSel.ConfCascBachDaughPDGCode.value);
1032+
}
10221033

10231034
// Fill cascades
10241035
float invMassCasc = ConfCascSel.ConfCascIsSelectedOmega ? casc.mOmega() : casc.mXi();
@@ -1034,8 +1045,9 @@ struct femtoDreamProducerTask {
10341045
indexCascadeChildID,
10351046
invMassCasc,
10361047
casc.mLambda());
1037-
// TODO: include here MC filling
1038-
//------
1048+
if constexpr (isMC) {
1049+
fillMCParticle(col, casc, o2::aod::femtodreamparticle::ParticleType::kCascade, ConfCascSel.ConfCascPDGCode);
1050+
}
10391051

10401052
if (ConfIsDebug.value) {
10411053
fillDebugParticle<true, false>(posTrackCasc); // QA for positive daughter

0 commit comments

Comments
 (0)