Skip to content

Commit 0437df1

Browse files
committed
2 parents 8ad9631 + 1a49c9c commit 0437df1

7 files changed

Lines changed: 166 additions & 60 deletions

File tree

Common/CCDB/EventSelectionParams.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const char* selectionLabels[kNsel] = {
4545
"kNoInconsistentVtx",
4646
"kNoPileupInMultBins",
4747
"kNoPilupMV",
48-
"kNoPileupTPC"
48+
"kNoPileupTPC",
4949
"kIsTriggerTVX",
5050
"kIsINT1"};
5151
}

Common/TableProducer/eventSelection.cxx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ struct BcSelectionTask {
162162
selection[kNoPileupMV] = (eventCuts & 1 << aod::kPileUpMV) > 0;
163163
selection[kNoPileupTPC] = (eventCuts & 1 << aod::kTPCPileUp) > 0;
164164
selection[kIsTriggerTVX] = bc.has_ft0() ? (bc.ft0().triggerMask() & BIT(o2::ft0::Triggers::bitVertex)) > 0 : 0;
165+
selection[kIsINT1] = bbV0A || bbV0C || ofSPD > 0;
165166

166167
int32_t foundFT0 = bc.has_ft0() ? bc.ft0().globalIndex() : -1;
167168
int32_t foundFV0 = bc.has_fv0a() ? bc.fv0a().globalIndex() : -1;
@@ -383,16 +384,17 @@ struct EventSelectionTask {
383384
sel7 &= applySelection[i] ? selection[i] : 1;
384385
}
385386

386-
// TODO apply other cuts for sel8
387-
// TODO introduce sel1 etc?
388387
// TODO introduce array of sel[0]... sel[8] or similar?
389-
bool sel8 = selection[kIsBBT0A] & selection[kIsBBT0C];
388+
bool sel8 = selection[kIsBBT0A] & selection[kIsBBT0C]; // TODO apply other cuts for sel8
389+
bool sel1 = selection[kIsINT1] & selection[kNoBGV0A] & selection[kNoBGV0C] & selection[kNoTPCLaserWarmUp] & selection[kNoTPCHVdip];
390390

391-
// fill counters
391+
// INT1 (SPDFO>0 | V0A | V0C) mimimum bias trigger logic used in pp2010 and pp2011
392+
bool isINT1period = bc.runNumber() <= 136377 || (bc.runNumber() >= 144871 && bc.runNumber() <= 159582);
392393

393-
if (isMC || alias[kINT7]) {
394+
// fill counters
395+
if (isMC || (!isINT1period && alias[kINT7]) || (isINT1period && alias[kINT1])) {
394396
histos.get<TH1>(HIST("hColCounterAll"))->Fill(Form("%d", bc.runNumber()), 1);
395-
if (sel7) {
397+
if ((!isINT1period && sel7) || (isINT1period && sel1)) {
396398
histos.get<TH1>(HIST("hColCounterAcc"))->Fill(Form("%d", bc.runNumber()), 1);
397399
}
398400
}

Common/Tasks/eventSelectionQa.cxx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,13 +227,15 @@ struct EventSelectionQaTask {
227227
aod::FT0s const& ft0s,
228228
aod::FDDs const& fdds)
229229
{
230+
bool isINT1period = 0;
230231
if (!applySelection) {
231232
auto first_bc = bcs.iteratorAt(0);
232233
EventSelectionParams* par = ccdb->getForTimeStamp<EventSelectionParams>("EventSelection/EventSelectionParams", first_bc.timestamp());
233234
applySelection = par->GetSelection(0);
234235
for (int i = 0; i < kNsel; i++) {
235236
histos.get<TH1>(HIST("hSelMask"))->SetBinContent(i + 1, applySelection[i]);
236237
}
238+
isINT1period = first_bc.runNumber() <= 136377 || (first_bc.runNumber() >= 144871 && first_bc.runNumber() <= 159582);
237239
}
238240

239241
// bc-based event selection qa
@@ -245,19 +247,24 @@ struct EventSelectionQaTask {
245247

246248
// collision-based event selection qa
247249
for (auto& col : cols) {
250+
auto selection = col.selection();
251+
bool sel1 = selection[kIsINT1] & selection[kNoBGV0A] & selection[kNoBGV0C] & selection[kNoTPCLaserWarmUp] & selection[kNoTPCHVdip];
252+
248253
for (int iAlias = 0; iAlias < kNaliases; iAlias++) {
249254
if (!col.alias()[iAlias]) {
250255
continue;
251256
}
252257
histos.fill(HIST("hColCounterAll"), iAlias, 1);
253-
if (!col.sel7()) {
254-
continue;
258+
if ((!isINT1period && col.sel7()) || (isINT1period && sel1)) {
259+
histos.fill(HIST("hColCounterAcc"), iAlias, 1);
255260
}
256-
histos.fill(HIST("hColCounterAcc"), iAlias, 1);
257261
}
258262

263+
bool mb = isMC;
264+
mb |= !isINT1period && col.alias()[kINT7];
265+
mb |= isINT1period && col.alias()[kINT1];
259266
// further checks just on minimum bias triggers
260-
if (!isMC && !col.alias()[kINT7]) {
267+
if (!mb) {
261268
continue;
262269
}
263270
for (int i = 0; i < kNsel; i++) {
@@ -354,7 +361,10 @@ struct EventSelectionQaTask {
354361
histos.fill(HIST("hV0C012vsTklCol"), nTracklets, multRingV0C012);
355362

356363
// filling plots for accepted events
357-
if (!col.sel7()) {
364+
bool accepted = 0;
365+
accepted |= !isINT1period & col.sel7();
366+
accepted |= isINT1period & sel1;
367+
if (!accepted) {
358368
continue;
359369
}
360370

PWGCF/FemtoDream/FemtoDreamTrackSelection.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ enum TrackContainerPosition {
5959
class FemtoDreamTrackSelection : public FemtoDreamObjectSelection<float, femtoDreamTrackSelection::TrackSel>
6060
{
6161
public:
62-
FemtoDreamTrackSelection() : nPtMinSel(0),
62+
FemtoDreamTrackSelection() : nRejectNotPropagatedTracks(false),
63+
nPtMinSel(0),
6364
nPtMaxSel(0),
6465
nEtaSel(0),
6566
nTPCnMinSel(0),
@@ -193,7 +194,13 @@ class FemtoDreamTrackSelection : public FemtoDreamObjectSelection<float, femtoDr
193194
return nSigmaPIDMax;
194195
}
195196

197+
void setRejectNotPropagatedTracks(bool reject)
198+
{
199+
nRejectNotPropagatedTracks = reject;
200+
}
201+
196202
private:
203+
bool nRejectNotPropagatedTracks;
197204
int nPtMinSel;
198205
int nPtMaxSel;
199206
int nEtaSel;
@@ -415,7 +422,7 @@ bool FemtoDreamTrackSelection::isSelectedMinimal(T const& track)
415422
if (nDCAMinSel > 0 && std::abs(dca) < dcaMin) {
416423
return false;
417424
}
418-
if (std::abs(dca) > 1e3) {
425+
if (nRejectNotPropagatedTracks && std::abs(dca) > 1e3) {
419426
return false;
420427
}
421428

PWGCF/FemtoDream/FemtoDreamV0Selection.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,15 @@ class FemtoDreamV0Selection : public FemtoDreamObjectSelection<float, femtoDream
165165
fInvMassUpLimit = upLimit;
166166
}
167167

168+
void setChildRejectNotPropagatedTracks(femtoDreamV0Selection::ChildTrackType child, bool reject)
169+
{
170+
if (child == femtoDreamV0Selection::kPosTrack) {
171+
PosDaughTrack.setRejectNotPropagatedTracks(reject);
172+
} else if (child == femtoDreamV0Selection::kNegTrack) {
173+
NegDaughTrack.setRejectNotPropagatedTracks(reject);
174+
}
175+
}
176+
168177
private:
169178
int nPtV0MinSel;
170179
int nPtV0MaxSel;

PWGCF/FemtoDream/femtoDreamProducerTaskV0Only.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ struct femtoDreamProducerTaskV0Only {
9393
Configurable<bool> ConfEvtOfflineCheck{"ConfEvtOfflineCheck", false, "Evt sel: check for offline selection"};
9494

9595
Configurable<bool> ConfStoreV0{"ConfStoreV0", true, "True: store V0 table"};
96-
96+
Configurable<bool> ConfRejectNotPropagatedTracks{"ConfRejectNotPropagatedTracks", false, "True: reject not propagated tracks"};
9797
FemtoDreamV0Selection v0Cuts;
9898
/// \todo Labeled array (see Track-Track task)
9999

@@ -152,6 +152,8 @@ struct femtoDreamProducerTaskV0Only {
152152
v0Cuts.setChildPIDSpecies(femtoDreamV0Selection::kNegTrack, ConfV0DaughTPIDspecies);
153153
v0Cuts.init<aod::femtodreamparticle::ParticleType::kV0, aod::femtodreamparticle::ParticleType::kV0Child, aod::femtodreamparticle::cutContainerType>(&qaRegistry);
154154
v0Cuts.setInvMassLimits(ConfInvMassLowLimit, ConfInvMassUpLimit);
155+
v0Cuts.setChildRejectNotPropagatedTracks(femtoDreamV0Selection::kPosTrack, ConfRejectNotPropagatedTracks);
156+
v0Cuts.setChildRejectNotPropagatedTracks(femtoDreamV0Selection::kNegTrack, ConfRejectNotPropagatedTracks);
155157
}
156158
}
157159

0 commit comments

Comments
 (0)