Skip to content

Commit 527ee71

Browse files
gbencedialibuild
andauthored
[PWGLF] PWGMM:Mult Updated event and track selections (#11192)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 1e888c2 commit 527ee71

File tree

1 file changed

+44
-9
lines changed

1 file changed

+44
-9
lines changed

PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ struct DndetaMFTPbPb {
9393
Configurable<float> maxEta{"maxEta", -2.5f, ""};
9494
Configurable<int> minNclusterMft{"minNclusterMft", 5,
9595
"minimum number of MFT clusters"};
96+
Configurable<float> maxChi2{"maxChi2", 10.f, ""};
9697
Configurable<double> minPt{"minPt", 0., "minimum pT of the MFT tracks"};
9798
Configurable<bool> requireCA{
9899
"requireCA", false, "Use Cellular Automaton track-finding algorithm"};
@@ -106,6 +107,10 @@ struct DndetaMFTPbPb {
106107
Configurable<float> maxZvtxDiff{
107108
"maxZvtxDiff", 1.0f,
108109
"max allowed Z vtx difference for reconstruced collisions (cm)"};
110+
Configurable<bool> requireNoCollInTimeRangeStrict{"requireNoCollInTimeRangeStrict", true, " requireNoCollInTimeRangeStrict"};
111+
Configurable<bool> requireNoCollInRofStrict{"requireNoCollInRofStrict", true, "requireNoCollInRofStrict"};
112+
Configurable<bool> requireNoCollInRofStandard{"requireNoCollInRofStandard", false, "requireNoCollInRofStandard"};
113+
Configurable<bool> requireNoHighMultCollInPrevRof{"requireNoHighMultCollInPrevRof", true, "requireNoHighMultCollInPrevRof"};
109114
Configurable<bool> requireNoCollInTimeRangeStd{
110115
"requireNoCollInTimeRangeStd", false,
111116
"reject collisions corrupted by the cannibalism, with other collisions "
@@ -215,18 +220,22 @@ struct DndetaMFTPbPb {
215220
}
216221

217222
auto hev = registry.add<TH1>("hEvtSel", "hEvtSel", HistType::kTH1F,
218-
{{12, -0.5f, +11.5f}});
223+
{{16, -0.5f, +15.5f}});
219224
hev->GetXaxis()->SetBinLabel(1, "All collisions");
220225
hev->GetXaxis()->SetBinLabel(2, "Ev. sel.");
221226
hev->GetXaxis()->SetBinLabel(3, "kIsGoodZvtxFT0vsPV");
222227
hev->GetXaxis()->SetBinLabel(4, "NoSameBunchPileup");
223228
hev->GetXaxis()->SetBinLabel(5, "Z-vtx cut");
224229
hev->GetXaxis()->SetBinLabel(6, "kNoCollInTimeRangeStd");
225230
hev->GetXaxis()->SetBinLabel(7, "kNoCollInTimeRangeNarrow");
226-
hev->GetXaxis()->SetBinLabel(8, "Below min occup.");
227-
hev->GetXaxis()->SetBinLabel(9, "Above max occup.");
228-
hev->GetXaxis()->SetBinLabel(10, "Below min IR (kHz)");
229-
hev->GetXaxis()->SetBinLabel(11, "Above max IR (kHz)");
231+
hev->GetXaxis()->SetBinLabel(8, "kNoCollInTimeRangeStrict");
232+
hev->GetXaxis()->SetBinLabel(9, "kNoCollInRofStrict");
233+
hev->GetXaxis()->SetBinLabel(10, "kNoCollInRofStandard");
234+
hev->GetXaxis()->SetBinLabel(11, "kNoHighMultCollInPrevRof");
235+
hev->GetXaxis()->SetBinLabel(12, "Below min occup.");
236+
hev->GetXaxis()->SetBinLabel(13, "Above max occup.");
237+
hev->GetXaxis()->SetBinLabel(14, "Below min IR (kHz)");
238+
hev->GetXaxis()->SetBinLabel(15, "Above max IR (kHz)");
230239

231240
auto hBcSel = registry.add<TH1>("hBcSel", "hBcSel", HistType::kTH1F,
232241
{{3, -0.5f, +2.5f}});
@@ -736,13 +745,13 @@ struct DndetaMFTPbPb {
736745
return false;
737746
}
738747
if (fillHis) {
739-
registry.fill(HIST("hEvtSel"), 9);
748+
registry.fill(HIST("hEvtSel"), 13);
740749
}
741750
if (eventCuts.maxIR >= 0 && ir > eventCuts.maxIR) {
742751
return false;
743752
}
744753
if (fillHis) {
745-
registry.fill(HIST("hEvtSel"), 10);
754+
registry.fill(HIST("hEvtSel"), 14);
746755
}
747756
return true;
748757
}
@@ -752,6 +761,8 @@ struct DndetaMFTPbPb {
752761
{
753762
if (track.eta() < trackCuts.minEta || track.eta() > trackCuts.maxEta)
754763
return false;
764+
if (track.chi2() > trackCuts.maxChi2)
765+
return false;
755766
if (trackCuts.requireCA && !track.isCA())
756767
return false;
757768
if (track.nClusters() < trackCuts.minNclusterMft)
@@ -960,21 +971,45 @@ struct DndetaMFTPbPb {
960971
if constexpr (fillHis) {
961972
registry.fill(HIST("hEvtSel"), 6);
962973
}
974+
if (eventCuts.requireNoCollInTimeRangeStrict && !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStrict)) {
975+
return false;
976+
}
977+
if constexpr (fillHis) {
978+
registry.fill(HIST("hEvtSel"), 7);
979+
}
980+
if (eventCuts.requireNoCollInRofStrict && !collision.selection_bit(o2::aod::evsel::kNoCollInRofStrict)) {
981+
return false;
982+
}
983+
if constexpr (fillHis) {
984+
registry.fill(HIST("hEvtSel"), 8);
985+
}
986+
if (eventCuts.requireNoCollInRofStandard && !collision.selection_bit(o2::aod::evsel::kNoCollInRofStandard)) {
987+
return false;
988+
}
989+
if constexpr (fillHis) {
990+
registry.fill(HIST("hEvtSel"), 9);
991+
}
992+
if (eventCuts.requireNoHighMultCollInPrevRof && !collision.selection_bit(o2::aod::evsel::kNoHighMultCollInPrevRof)) {
993+
return false;
994+
}
995+
if constexpr (fillHis) {
996+
registry.fill(HIST("hEvtSel"), 10);
997+
}
963998
if (eventCuts.minOccupancy >= 0 &&
964999
getOccupancy(collision, eventCuts.occupancyEstimator) <
9651000
eventCuts.minOccupancy) {
9661001
return false;
9671002
}
9681003
if constexpr (fillHis) {
969-
registry.fill(HIST("hEvtSel"), 7);
1004+
registry.fill(HIST("hEvtSel"), 11);
9701005
}
9711006
if (eventCuts.maxOccupancy >= 0 &&
9721007
getOccupancy(collision, eventCuts.occupancyEstimator) >
9731008
eventCuts.maxOccupancy) {
9741009
return false;
9751010
}
9761011
if constexpr (fillHis) {
977-
registry.fill(HIST("hEvtSel"), 8);
1012+
registry.fill(HIST("hEvtSel"), 12);
9781013
}
9791014
return true;
9801015
}

0 commit comments

Comments
 (0)