@@ -663,7 +663,21 @@ struct PhiStrangenessCorrelation {
663663
664664 void processParticleEfficiency (MCCollisions const & mcCollisions, SimCollisions const & collisions, aod::PhimesonCandidatesMcReco const & phiCandidates, aod::K0sReducedCandidatesMcReco const & k0sReduced, aod::PionTracksMcReco const & pionTracks, aod::McParticles const & mcParticles)
665665 {
666- // std::vector<std::vector<int>> collsGrouped(mcCollisions.size());
666+ const bool applyK0sMassCut = (analysisMode == kDeltaYvsDeltaPhi ) && k0sConfigs.selectK0sInSigRegion ;
667+ const auto & [minMassK0s, maxMassK0s] = k0sConfigs.rangeMK0sSignal .value ;
668+ auto isK0sValid = [&](const auto & k0s) {
669+ return !applyK0sMassCut || k0s.inMassRegion (minMassK0s, maxMassK0s);
670+ };
671+
672+ const bool applyPionNSigmaCut = (analysisMode == kDeltaYvsDeltaPhi ) && pionConfigs.selectPionInSigRegion ;
673+ const float & pidTPCMax = pionConfigs.pidTPCMax ;
674+ const float & pidTOFMax = pionConfigs.pidTOFMax ;
675+ const float & tofPIDThreshold = pionConfigs.tofPIDThreshold ;
676+
677+ auto isPionValid = [&](const auto & pion) {
678+ return !applyPionNSigmaCut || pion.inNSigmaRegion (pidTPCMax, tofPIDThreshold, pidTOFMax);
679+ };
680+
667681 std::unordered_map<int , std::vector<int >> collsGrouped;
668682 collsGrouped.reserve (mcCollisions.size ());
669683
@@ -705,10 +719,16 @@ struct PhiStrangenessCorrelation {
705719 const auto pionTracksThisColl = pionTracks.sliceBy (preslices.pionTrackMcRecoPerCollision , collision.globalIndex ());
706720
707721 for (const auto & k0s : k0sThisColl) {
722+ if (!isK0sValid (k0s))
723+ continue ;
724+
708725 histos.fill (HIST (" k0s/h4K0SMCReco" ), collision.posZ (), mcCollision.centFT0M (), k0s.pt (), k0s.y ());
709726 }
710727
711728 for (const auto & pionTrack : pionTracksThisColl) {
729+ if (!isPionValid (pionTrack))
730+ continue ;
731+
712732 histos.fill (HIST (" pi/h4PiMCReco" ), collision.posZ (), mcCollision.centFT0M (), pionTrack.pt (), pionTrack.y ());
713733 }
714734
0 commit comments