Skip to content

Commit b8f2e12

Browse files
authored
[PWGCF] Updating to allow for a minimum cut value in multiplicity (#8574)
1 parent 8d267b2 commit b8f2e12

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

PWGCF/TableProducer/filterCorrelations.cxx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ struct FilterCF {
6363
O2_DEFINE_CONFIGURABLE(cfgCollisionFlags, uint16_t, aod::collision::CollisionFlagsRun2::Run2VertexerTracks, "Request collision flags if non-zero (0 = off, 1 = Run2VertexerTracks)")
6464
O2_DEFINE_CONFIGURABLE(cfgTransientTables, bool, false, "Output transient tables for collision and track IDs")
6565
O2_DEFINE_CONFIGURABLE(cfgTrackSelection, int, 0, "Type of track selection (0 = Run 2/3 without systematics | 1 = Run 3 with systematics)")
66+
O2_DEFINE_CONFIGURABLE(cfgMinMultiplicity, float, -1, "Minimum multiplicity considered for filtering (if value positive)")
6667

6768
// Filters and input definitions
6869
Filter collisionZVtxFilter = nabs(aod::collision::posZ) < cfgCutVertex;
@@ -92,22 +93,26 @@ struct FilterCF {
9293
template <typename TCollision>
9394
bool keepCollision(TCollision& collision)
9495
{
96+
bool isMultSelected = false;
97+
if (collision.multiplicity() >= cfgMinMultiplicity)
98+
isMultSelected = true;
99+
95100
if (cfgTrigger == 0) {
96101
return true;
97102
} else if (cfgTrigger == 7) {
98-
return collision.alias_bit(kINT7) && collision.sel7();
103+
return isMultSelected && collision.alias_bit(kINT7) && collision.sel7();
99104
} else if (cfgTrigger == 8) {
100-
return collision.sel8();
105+
return isMultSelected && collision.sel8();
101106
} else if (cfgTrigger == 9) { // relevant only for Pb-Pb
102-
return collision.sel8() && collision.selection_bit(aod::evsel::kNoSameBunchPileup) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV);
107+
return isMultSelected && collision.sel8() && collision.selection_bit(aod::evsel::kNoSameBunchPileup) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV);
103108
} else if (cfgTrigger == 10) { // TVX trigger only (sel8 selection before April, 2024)
104-
return collision.selection_bit(aod::evsel::kIsTriggerTVX);
109+
return isMultSelected && collision.selection_bit(aod::evsel::kIsTriggerTVX);
105110
} else if (cfgTrigger == 11) { // sel8 selection for MC
106-
return collision.selection_bit(aod::evsel::kIsTriggerTVX) && collision.selection_bit(aod::evsel::kNoTimeFrameBorder);
111+
return isMultSelected && collision.selection_bit(aod::evsel::kIsTriggerTVX) && collision.selection_bit(aod::evsel::kNoTimeFrameBorder);
107112
} else if (cfgTrigger == 12) { // relevant only for Pb-Pb with occupancy cuts and rejection of the collisions which have other events nearby
108113
int occupancy = collision.trackOccupancyInTimeRange();
109114
if (occupancy >= 0 && occupancy < 500)
110-
return collision.sel8() && collision.selection_bit(aod::evsel::kNoSameBunchPileup) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) && collision.selection_bit(aod::evsel::kNoCollInTimeRangeStandard);
115+
return isMultSelected && collision.sel8() && collision.selection_bit(aod::evsel::kNoSameBunchPileup) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) && collision.selection_bit(aod::evsel::kNoCollInTimeRangeStandard);
111116
else
112117
return false;
113118
}

0 commit comments

Comments
 (0)