@@ -287,32 +287,38 @@ struct strangederivedbuilder {
287287 }
288288
289289 template <typename TCollision>
290- bool isCollisionAccepted (TCollision collision)
290+ bool isCollisionAccepted (TCollision collision, std::array< int , o2::aod::straselections:: kNsel >& nSelected )
291291 // check whether the collision passes our collision selections
292292 {
293293 if (requireTriggerTVX && !collision.selection_bit (aod::evsel::kIsTriggerTVX )) {
294294 return false ;
295295 }
296+ nSelected[o2::aod::straselections::kIsTriggerTVX ]++;
296297
297298 if (rejectITSROFBorder && !collision.selection_bit (o2::aod::evsel::kNoITSROFrameBorder )) {
298299 return false ;
299300 }
301+ nSelected[o2::aod::straselections::kNoITSROFrameBorder ]++;
300302
301303 if (rejectTFBorder && !collision.selection_bit (o2::aod::evsel::kNoTimeFrameBorder )) {
302304 return false ;
303305 }
306+ nSelected[o2::aod::straselections::kNoTimeFrameBorder ]++;
304307
305308 if (std::abs (collision.posZ ()) > maxZVtxPosition) {
306309 return false ;
307310 }
311+ nSelected[o2::aod::straselections::kIsGoodZvtxAcceptance ]++;
308312
309313 if (rejectSameBunchPileup && !collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup )) {
310314 return false ;
311315 }
316+ nSelected[o2::aod::straselections::kNoSameBunchPileup ]++;
312317
313318 if (!cfgApplyRCTrequirement && !rctFlagsChecker (collision)) {
314319 return false ;
315320 }
321+ nSelected[o2::aod::straselections::kIsGoodRCT ]++;
316322
317323 return true ;
318324 }
@@ -559,6 +565,7 @@ struct strangederivedbuilder {
559565
560566 int totalNbrCollisions = collisions.size ();
561567 int totalNbrSelectedCollisions = 0 ;
568+ std::array<int , o2::aod::straselections::kNsel > totalNbrCollisionsPerSelection = {};
562569
563570 // +-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+
564571 for (const auto & collision : collisions) {
@@ -639,7 +646,7 @@ struct strangederivedbuilder {
639646 for (const auto & track : TrackTable_thisColl)
640647 TrackCollIndices[track.globalIndex ()] = bc.globalBC ();
641648
642- if (fillOnlySelectedCollisions && !isCollisionAccepted (collision)) {
649+ if (fillOnlySelectedCollisions && !isCollisionAccepted (collision, totalNbrCollisionsPerSelection )) {
643650 continue ;
644651 }
645652
@@ -771,7 +778,13 @@ struct strangederivedbuilder {
771778 for (const auto & casc : TraCascades) {
772779 products.tracasccollref (TraCascadeCollIndices[casc.globalIndex ()]);
773780 }
774- products.straSelection (totalNbrCollisions, totalNbrSelectedCollisions);
781+ products.straSelection (totalNbrCollisions, totalNbrSelectedCollisions,
782+ totalNbrCollisionsPerSelection[o2::aod::straselections::kIsTriggerTVX ],
783+ totalNbrCollisionsPerSelection[o2::aod::straselections::kNoITSROFrameBorder ],
784+ totalNbrCollisionsPerSelection[o2::aod::straselections::kNoTimeFrameBorder ],
785+ totalNbrCollisionsPerSelection[o2::aod::straselections::kIsGoodZvtxAcceptance ],
786+ totalNbrCollisionsPerSelection[o2::aod::straselections::kNoSameBunchPileup ],
787+ totalNbrCollisionsPerSelection[o2::aod::straselections::kIsGoodRCT ]);
775788 }
776789
777790 // helper function to estimate collision time
@@ -781,6 +794,8 @@ struct strangederivedbuilder {
781794 std::vector<double > collisionEventTime (collisions.size (), 0.0 );
782795 std::vector<double > collisionEventTimeErr (collisions.size (), 0.0 );
783796 std::vector<int > collisionNtracks (collisions.size (), 0 );
797+
798+ std::array<int , o2::aod::straselections::kNsel > totalNbrCollisionsPerSelection = {};
784799 for (const auto & track : tracks) {
785800 if (track.hasTOF () && track.collisionId () >= 0 ) {
786801 collisionEventTime[track.collisionId ()] += track.tofEvTime ();
@@ -797,7 +812,7 @@ struct strangederivedbuilder {
797812 collisionEventTime[collision.globalIndex ()] = -1e+6 ; // undefined
798813 collisionEventTimeErr[collision.globalIndex ()] = -1e-6 ; // undefined
799814 }
800- if (fillOnlySelectedCollisions && !isCollisionAccepted (collision)) {
815+ if (fillOnlySelectedCollisions && !isCollisionAccepted (collision, totalNbrCollisionsPerSelection )) {
801816 continue ;
802817 }
803818 histos.fill (HIST (" h2dCollisionTimesVsNTracks" ), collisionNtracks[collision.globalIndex ()], collisionEventTime[collision.globalIndex ()]);
0 commit comments