@@ -134,6 +134,8 @@ enum CollisionSelectionFlags {
134134 kISVERTEXITSTPCBIT , // /< is vertex TPC and ITS
135135 kISVERTEXTOFMATCHEDBIT , // /< vertex contributor with TOF matched
136136 kISVERTEXTRDMATCHEDBIT , // /< vertex contributor with TRD matche
137+ kNOCOLLINTIMERANGEBIT , // /< no collision in time range
138+ kNOCOLLINROFBIT , // /< no collision in readout
137139 kOCCUPANCYBIT , // /< occupancy within limits
138140 kISGOODITSLAYER3BIT , // /< right level of inactive chips for ITS layer 3
139141 kISGOODITSLAYER0123BIT , // /< right level of inactive chips for ITS layers 0,1,2, and 3
@@ -381,6 +383,7 @@ TriggerSelectionType fTriggerSelection = kMB;
381383OccupancyEstimationType fOccupancyEstimation = kNOOCC ; /* the occupancy estimator to use */
382384ItsDeadMapsCheckType fItsDeadMapCheck = kNOCHECK ; /* the check of the ITS dead maps to use */
383385
386+ float fMinOccupancy = 0 .0f ; /* the minimum allowed occupancy */
384387float fMaxOccupancy = 1e6f; /* the maximum allowed occupancy */
385388
386389/* adaptations for the pp nightly checks */
@@ -612,7 +615,9 @@ inline bool triggerSelectionReco(CollisionObject const& collision)
612615 case kppRun3:
613616 case kPbPbRun3 : {
614617 auto run3Accepted = [](auto const & coll) {
615- return coll.sel8 ();
618+ return coll.sel8 () &&
619+ coll.selection_bit (aod::evsel::kNoCollInTimeRangeStandard ) &&
620+ coll.selection_bit (aod::evsel::kNoCollInRofStandard );
616621 };
617622 auto run3ExtraAccepted = [](auto const & coll) {
618623 return coll.sel8 () &&
@@ -627,6 +632,8 @@ inline bool triggerSelectionReco(CollisionObject const& collision)
627632 flags.set (kISVERTEXITSTPCBIT , coll.selection_bit (aod::evsel::kIsVertexITSTPC ));
628633 flags.set (kISVERTEXTOFMATCHEDBIT , coll.selection_bit (aod::evsel::kIsVertexTOFmatched ));
629634 flags.set (kISVERTEXTRDMATCHEDBIT , coll.selection_bit (aod::evsel::kIsVertexTRDmatched ));
635+ flags.set (kNOCOLLINTIMERANGEBIT , coll.selection_bit (aod::evsel::kNoCollInTimeRangeStandard ));
636+ flags.set (kNOCOLLINROFBIT , coll.selection_bit (aod::evsel::kNoCollInRofStandard ));
630637 flags.set (kISGOODITSLAYER3BIT , coll.selection_bit (aod::evsel::kIsGoodITSLayer3 ));
631638 flags.set (kISGOODITSLAYER0123BIT , coll.selection_bit (aod::evsel::kIsGoodITSLayer0123 ));
632639 flags.set (kISGOODITSLAYERALLBIT , coll.selection_bit (aod::evsel::kIsGoodITSLayersAll ));
@@ -932,14 +939,14 @@ inline bool selectOnOccupancy(CollisionObject collision)
932939 collisionFlags.set (kOCCUPANCYBIT );
933940 return true ;
934941 case kTRACKSOCC :
935- if (collision.trackOccupancyInTimeRange () < fMaxOccupancy ) {
942+ if (( fMinOccupancy <= collision.trackOccupancyInTimeRange ()) && (collision. trackOccupancyInTimeRange () < fMaxOccupancy ) ) {
936943 collisionFlags.set (kOCCUPANCYBIT );
937944 return true ;
938945 } else {
939946 return false ;
940947 }
941948 case kFT0COCC :
942- if (collision.ft0cOccupancyInTimeRange () < fMaxOccupancy ) {
949+ if (( fMinOccupancy <= collision.ft0cOccupancyInTimeRange ()) && (collision. ft0cOccupancyInTimeRange () < fMaxOccupancy ) ) {
943950 collisionFlags.set (kOCCUPANCYBIT );
944951 return true ;
945952 } else {
0 commit comments