Skip to content

Commit 5c53583

Browse files
committed
Fixing MCtruth and reco analysis for cascades with centrality
1 parent eeb2f2a commit 5c53583

2 files changed

Lines changed: 226 additions & 132 deletions

File tree

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -590,10 +590,10 @@ struct FemtoUniverseProducerTask {
590590

591591
void init(InitContext&)
592592
{
593-
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackV0Cascade || doprocessTrackD0mesonData || doprocessTrackD0DataML || doprocessTrackCentRun2Data || doprocessTrackV0CentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data || doprocessTrackDataCentPP) == false && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMCV0 || doprocessTrackD0MC || doprocessTruthAndFullMCCasc || doprocessFullMCCent || doprocessTrackCentRun3DataMC || doprocessTruthAndFullMCCentRun3 || doprocessTruthAndFullMCCentRun3V0) == false) {
593+
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackV0Cascade || doprocessTrackD0mesonData || doprocessTrackD0DataML || doprocessTrackCentRun2Data || doprocessTrackV0CentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data || doprocessTrackDataCentPP) == false && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMCV0 || doprocessTrackD0MC || doprocessTruthAndFullMCCasc || doprocessFullMCCent || doprocessTrackCentRun3DataMC || doprocessTruthAndFullMCCentRun3 || doprocessTruthAndFullMCCentRun3V0 || doprocessTruthAndFullMCCentRun3Casc) == false) {
594594
LOGF(fatal, "Neither processFullData nor processFullMC enabled. Please choose one.");
595595
}
596-
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackV0Cascade || doprocessTrackD0mesonData || doprocessTrackD0DataML || doprocessTrackCentRun2Data || doprocessTrackV0CentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data || doprocessTrackDataCentPP) == true && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMCV0 || doprocessTrackD0MC || doprocessTruthAndFullMCCasc || doprocessFullMCCent || doprocessTrackCentRun3DataMC || doprocessTruthAndFullMCCentRun3 || doprocessTruthAndFullMCCentRun3V0) == true) {
596+
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackV0Cascade || doprocessTrackD0mesonData || doprocessTrackD0DataML || doprocessTrackCentRun2Data || doprocessTrackV0CentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data || doprocessTrackDataCentPP) == true && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMCV0 || doprocessTrackD0MC || doprocessTruthAndFullMCCasc || doprocessFullMCCent || doprocessTrackCentRun3DataMC || doprocessTruthAndFullMCCentRun3 || doprocessTruthAndFullMCCentRun3V0 || doprocessTruthAndFullMCCentRun3Casc) == true) {
597597
LOGF(fatal,
598598
"Cannot enable process Data and process MC at the same time. "
599599
"Please choose one.");
@@ -2805,12 +2805,17 @@ struct FemtoUniverseProducerTask {
28052805

28062806
// recos
28072807
std::set<int> recoMcIds;
2808+
std::set<int> mcColIds;
2809+
recoMcIds.clear();
2810+
mcColIds.clear();
2811+
28082812
for (const auto& col : collisions) {
28092813
auto groupedTracks = tracks.sliceBy(perCollisionTracks, col.globalIndex());
28102814
auto groupedCascParts = fullCascades.sliceBy(perCollisionCascs, col.globalIndex());
28112815
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
2812-
const auto colcheck = fillCollisionsCentRun3<true>(col);
2816+
const auto colcheck = fillCollisionsCentRun3<true>(col); // why is it false in V0?
28132817
if (colcheck) {
2818+
mcColIds.insert(col.mcCollisionId());
28142819
fillTracks<true>(groupedTracks);
28152820
fillCascade<true>(col, groupedCascParts, groupedTracks);
28162821
}
@@ -2822,11 +2827,14 @@ struct FemtoUniverseProducerTask {
28222827

28232828
// truth
28242829
for (const auto& mccol : mccols) {
2825-
auto groupedCollisions = collisions.sliceBy(recoCollsPerMCCollCentPbPb, mccol.globalIndex());
2830+
if (confCollMCTruthOnlyReco && !mcColIds.contains(mccol.globalIndex())) {
2831+
continue;
2832+
}
2833+
auto groupedCollisions = collisions.sliceBy(recoCollsPerMCCollCentPbPb, mccol.globalIndex());// slicing for MC collisions
2834+
auto groupedMCParticles = mcParticles.sliceBy(perMCCollision, mccol.globalIndex()); // slicing for MC particles
28262835
for (const auto& col : groupedCollisions) {
28272836
const auto colcheck = fillMCTruthCollisionsCentRun3(col); // fills the reco collisions for mc collision
28282837
if (colcheck) {
2829-
auto groupedMCParticles = mcParticles.sliceBy(perMCCollision, mccol.globalIndex());
28302838
outputCollExtra(1.0, 1.0);
28312839
fillParticles<decltype(groupedMCParticles), true, true>(groupedMCParticles, recoMcIds); // fills mc particles
28322840
}

0 commit comments

Comments
 (0)