@@ -181,6 +181,9 @@ struct Phik0shortanalysis {
181181 Configurable<bool > fillMethodSingleWeight{" fillMethodSingleWeight" , false , " Fill method Single Weight" };
182182 Configurable<bool > applyEfficiency{" applyEfficiency" , false , " Use efficiency for filling histograms" };
183183
184+ // Configurable for MCPhi filter
185+ Configurable<bool > filterOnMcPhi{" filterOnMcPhi" , true , " Filter on MC Phi" };
186+
184187 // Configurable for event mixing
185188 Configurable<int > cfgNoMixedEvents{" cfgNoMixedEvents" , 5 , " Number of mixed events per event" };
186189
@@ -244,6 +247,9 @@ struct Phik0shortanalysis {
244247 // Cache for manual slicing
245248 SliceCache cache;
246249
250+ // Preslice for manual sicing
251+ Preslice<aod::McParticles> perMCColl = aod::mcparticle::mcCollisionId;
252+
247253 // Positive and negative tracks partitions
248254 Partition<FullTracks> posTracks = aod::track::signed1Pt > trackConfigs.cfgCutCharge;
249255 Partition<FullTracks> negTracks = aod::track::signed1Pt < trackConfigs.cfgCutCharge;
@@ -2388,9 +2394,9 @@ struct Phik0shortanalysis {
23882394 return ;
23892395 const auto & mcCollision = collision.mcCollision_as <MCCollisions>();
23902396
2391- auto mcParticlesThisColl = mcParticles.sliceByCached (aod::mcparticle::mcCollisionId , mcCollision.globalIndex (), cache );
2397+ auto mcParticlesThisColl = mcParticles.sliceBy (perMCColl , mcCollision.globalIndex ());
23922398
2393- if (!eventHasMCPhi (mcParticlesThisColl))
2399+ if (filterOnMcPhi && !eventHasMCPhi (mcParticlesThisColl))
23942400 return ;
23952401
23962402 float genmultiplicity = mcCollision.centFT0M ();
@@ -2429,7 +2435,7 @@ struct Phik0shortanalysis {
24292435 return ;
24302436 if (!pwglf::isINELgtNmc (mcParticles, 0 , pdgDB))
24312437 return ;
2432- if (!eventHasMCPhi (mcParticles))
2438+ if (filterOnMcPhi && !eventHasMCPhi (mcParticles))
24332439 return ;
24342440
24352441 float genmultiplicity = mcCollision.centFT0M ();
0 commit comments