Skip to content

Commit c16c48c

Browse files
committed
Add option to fill only reconstructed MC truth collisions
1 parent a346552 commit c16c48c

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ struct FemtoUniverseProducerTask {
135135
Configurable<bool> confStoreMCmothers{"confStoreMCmothers", false, "MC truth: Fill with not only primary particles and store mothers' PDG in tempFitVar."};
136136
Configurable<bool> confFillCollExt{"confFillCollExt", false, "Option to fill collision extended table"};
137137

138+
Configurable<bool> confCollMCTruthOnlyReco{"confCollMCTruthOnlyReco", false, "Fill only MC truth collisions that were reconstructed and selected"};
139+
138140
/// Event filtering (used for v0-cascade analysis)
139141
Configurable<std::string> zorroMask{"zorroMask", "", "zorro trigger class to select on (empty: none)"};
140142

@@ -2601,6 +2603,7 @@ struct FemtoUniverseProducerTask {
26012603
{
26022604
// recos
26032605
std::set<int> recoMcIds;
2606+
std::set<int> mcCollisions;
26042607
for (const auto& col : collisions) {
26052608
auto groupedTracks = tracks.sliceBy(perCollisionTracks, col.globalIndex());
26062609
auto bc = col.bc_as<aod::BCsWithTimestamps>();
@@ -2616,6 +2619,7 @@ struct FemtoUniverseProducerTask {
26162619
}
26172620

26182621
if (colcheck) {
2622+
mcCollisions.insert(col.mcCollisionId());
26192623
fillCollisionsCentRun3ColExtra<true>(col, ir);
26202624
fillTracks<true>(groupedTracks);
26212625
}
@@ -2627,6 +2631,9 @@ struct FemtoUniverseProducerTask {
26272631

26282632
// truth
26292633
for (const auto& mccol : mccols) {
2634+
if (confCollMCTruthOnlyReco && !mcCollisions.contains(mccol.globalIndex())) {
2635+
continue;
2636+
}
26302637
auto groupedCollisions = collisions.sliceBy(recoCollsPerMCCollCentPbPb, mccol.globalIndex());
26312638
for (const auto& col : groupedCollisions) {
26322639
const auto colcheck = fillMCTruthCollisionsCentRun3(col); // fills the reco collisions for mc collision
@@ -2871,12 +2878,14 @@ struct FemtoUniverseProducerTask {
28712878

28722879
// MCReco
28732880
std::set<int> recoMcIds;
2881+
std::set<int> mcCollisions;
28742882
for (const auto& col : collisions) { // loop over collisions
28752883
auto groupedTracks = tracks.sliceBy(perCollisionTracks, col.globalIndex()); // slicing for tracks
28762884
auto groupedV0Parts = fullV0s.sliceBy(perCollisionV0s, col.globalIndex()); // slicing for V0
28772885
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
28782886
const auto colcheck = fillCollisionsCentRun3<false>(col);
28792887
if (colcheck) {
2888+
mcCollisions.insert(col.mcCollisionId());
28802889
fillTracks<true>(groupedTracks);
28812890
fillV0<true>(col, groupedV0Parts, groupedTracks);
28822891
}
@@ -2888,6 +2897,9 @@ struct FemtoUniverseProducerTask {
28882897

28892898
// MCTruth
28902899
for (const auto& mccol : mccols) {
2900+
if (confCollMCTruthOnlyReco && !mcCollisions.contains(mccol.globalIndex())) {
2901+
continue;
2902+
}
28912903
auto groupedCollisions = collisions.sliceBy(recoCollsPerMCCollCentPbPb, mccol.globalIndex()); // slicing for MC collisions
28922904
auto groupedMCParticles = mcParticles.sliceBy(perMCCollision, mccol.globalIndex()); // slicing for MC particles
28932905
for (const auto& col : groupedCollisions) {

0 commit comments

Comments
 (0)