@@ -51,6 +51,8 @@ struct sigmaminustask {
5151
5252 Preslice<aod::KinkCands> mPerCol = aod::track::collisionId;
5353
54+ float radToDeg = o2::constants::math::Rad2Deg;
55+
5456 void init (InitContext const &)
5557 {
5658 // Axes
@@ -281,7 +283,7 @@ struct sigmaminustask {
281283
282284 PROCESS_SWITCH (sigmaminustask, processMC, " MC processing" , false );
283285
284- void processFindable (TracksFull const & tracks, aod::McTrackLabels const & trackLabelsMC, aod::McParticles const &)
286+ void processFindable (TracksFull const & tracks, aod::McTrackLabels const & trackLabelsMC, aod::McParticles const &, CollisionsFullMC const & )
285287 {
286288 for (const auto & motherTrack : tracks) {
287289 // Check if mother is Sigma in MC
@@ -321,7 +323,7 @@ struct sigmaminustask {
321323
322324 float mcMass = std::sqrt (mcMother.e () * mcMother.e () - mcMother.p () * mcMother.p ());
323325 int sigmaSign = mcMother.pdgCode () > 0 ? 1 : -1 ;
324- rSigmaMinus.fill (HIST (" h2MassPtFindable" ), sigmaSign * mcMother .pt (), mcMass);
326+ rSigmaMinus.fill (HIST (" h2MassPtFindable" ), sigmaSign * motherTrack .pt (), mcMass);
325327
326328 // Define filter index and progressively apply kinkbuilder cuts to track pairs
327329 int filterIndex = 0 ;
@@ -346,7 +348,7 @@ struct sigmaminustask {
346348 filterIndex += 1 ;
347349 rSigmaMinus.fill (HIST (" hFilterIndex" ), filterIndex);
348350 } else {
349- continue ; // Skip if mother track does not pass ITS cuts
351+ continue ;
350352 }
351353
352354 // 4 - daughter track ITS+TPC properties
@@ -355,16 +357,29 @@ struct sigmaminustask {
355357 filterIndex += 1 ;
356358 rSigmaMinus.fill (HIST (" hFilterIndex" ), filterIndex);
357359 } else {
358- continue ; // Skip if daughter track does not pass ITS+TPC cuts
360+ continue ;
359361 }
360362
361- // 5 - geometric cuts
362- if (std::abs (motherTrack.eta ()) < 1.0 && std::abs (daughterTrack.eta ()) < 1.0 &&
363- std::abs (motherTrack.phi () - daughterTrack.phi ()) < 100.0 ) {
363+ // 5 - geometric cuts: eta
364+ if (std::abs (motherTrack.eta ()) < 1.0 && std::abs (daughterTrack.eta ()) < 1.0 ) {
364365 filterIndex += 1 ;
365366 rSigmaMinus.fill (HIST (" hFilterIndex" ), filterIndex);
366367 } else {
367- continue ; // Skip if geometric cuts are not satisfied
368+ continue ;
369+ }
370+ // 6 - geometric cuts: phi
371+ if (std::abs (motherTrack.phi () - daughterTrack.phi ()) * radToDeg < 100.0 ) {
372+ filterIndex += 1 ;
373+ rSigmaMinus.fill (HIST (" hFilterIndex" ), filterIndex);
374+ } else {
375+ continue ;
376+ }
377+
378+ // 7 - collision selection
379+ auto collision = motherTrack.template collision_as <CollisionsFullMC>();
380+ if (!(std::abs (collision.posZ ()) > cutzvertex || !collision.sel8 ())) {
381+ filterIndex += 1 ;
382+ rSigmaMinus.fill (HIST (" hFilterIndex" ), filterIndex);
368383 }
369384
370385 }
0 commit comments