Skip to content

Commit 386631c

Browse files
authored
[PWGLF] PWGMM/Mult/Tasks/heavy-ion-mult.cxx: Add FT0C based Occupancy cut (#8276)
1 parent d82639d commit 386631c

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

PWGMM/Mult/Tasks/heavy-ion-mult.cxx

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <iostream>
2424
#include <TPDGCode.h>
2525
#include <TDatabasePDG.h>
26+
#include <vector>
2627

2728
#include "bestCollisionTable.h"
2829
#include "CCDB/BasicCCDBManager.h"
@@ -103,7 +104,7 @@ static constexpr TrackSelectionFlags::flagtype trackSelectionDCA =
103104
static constexpr TrackSelectionFlags::flagtype trackSelectionDCAXYonly =
104105
TrackSelectionFlags::kDCAxy;
105106

106-
AxisSpec axisEvent{9, 0.5, 9.5, "#Event", "EventAxis"};
107+
AxisSpec axisEvent{10, 0.5, 10.5, "#Event", "EventAxis"};
107108
AxisSpec axisVtxZ{40, -20, 20, "Vertex Z", "VzAxis"};
108109
AxisSpec axisEta{40, -2, 2, "#eta", "EtaAxis"};
109110
AxisSpec axisPhi{{0, M_PI / 4, M_PI / 2, M_PI * 3. / 4, M_PI, M_PI * 5. / 4, M_PI * 3. / 2, M_PI * 7. / 4, 2 * M_PI}, "#phi", "PhiAxis"};
@@ -150,6 +151,8 @@ struct HeavyIonMultiplicity {
150151
Configurable<bool> IsApplyExtraPhiCut{"IsApplyExtraPhiCut", false, "Enable extra phi cut"};
151152
Configurable<float> NPVtracksCut{"NPVtracksCut", 1.0f, "Apply extra NPVtracks cut"};
152153
Configurable<float> FT0CCut{"FT0CCut", 1.0f, "Apply extra FT0C cut"};
154+
Configurable<bool> IsApplyNoCollInTimeRangeStandard{"IsApplyNoCollInTimeRangeStandard", true, "Enable NoCollInTimeRangeStandard cut"};
155+
Configurable<bool> IsApplyFT0CbasedOccupancy{"IsApplyFT0CbasedOccupancy", true, "Enable FT0CbasedOccupancy cut"};
153156

154157
void init(InitContext const&)
155158
{
@@ -176,6 +179,7 @@ struct HeavyIonMultiplicity {
176179
x->SetBinLabel(7, "kIsVertexTRDmatched"); // at least one of vertex contributors is matched to TRD
177180
x->SetBinLabel(8, "Centrality");
178181
x->SetBinLabel(9, "ApplyExtraCorrCut");
182+
x->SetBinLabel(10, "ApplyNoCollInTimeRangeStandard");
179183

180184
if (doprocessData) {
181185
histos.add("CentPercentileHist", "CentPercentileHist", kTH1D, {axisCent}, false);
@@ -312,6 +316,11 @@ struct HeavyIonMultiplicity {
312316
return false;
313317
}
314318
histos.fill(HIST("EventHist"), 9);
319+
320+
if (IsApplyNoCollInTimeRangeStandard && !col.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) {
321+
return false;
322+
}
323+
histos.fill(HIST("EventHist"), 10);
315324
return true;
316325
}
317326

@@ -329,7 +338,8 @@ struct HeavyIonMultiplicity {
329338
}
330339
histos.fill(HIST("VtxZHist"), collision.posZ());
331340
histos.fill(HIST("CentPercentileHist"), collision.centFT0C());
332-
histos.fill(HIST("hdatazvtxcent"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange());
341+
auto OccupancyValue = IsApplyFT0CbasedOccupancy ? collision.ft0cOccupancyInTimeRange() : collision.trackOccupancyInTimeRange();
342+
histos.fill(HIST("hdatazvtxcent"), collision.posZ(), collision.centFT0C(), OccupancyValue);
333343

334344
auto NchTracks = 0;
335345
for (auto& track : tracks) {
@@ -338,11 +348,11 @@ struct HeavyIonMultiplicity {
338348
}
339349
histos.fill(HIST("PhiVsEtaHist"), track.phi(), track.eta());
340350
NchTracks++;
341-
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange(), track.eta(), track.phi(), kGlobalplusITS);
351+
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), OccupancyValue, track.eta(), track.phi(), kGlobalplusITS);
342352
if (track.hasTPC()) {
343-
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange(), track.eta(), track.phi(), kGlobalonly);
353+
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), OccupancyValue, track.eta(), track.phi(), kGlobalonly);
344354
} else {
345-
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange(), track.eta(), track.phi(), kITSonly);
355+
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), OccupancyValue, track.eta(), track.phi(), kITSonly);
346356
}
347357
}
348358
histos.fill(HIST("hdatamult"), collision.posZ(), NchTracks, collision.centFT0C());
@@ -382,15 +392,16 @@ struct HeavyIonMultiplicity {
382392
}
383393
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
384394
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
385-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
395+
auto OccupancyValue = IsApplyFT0CbasedOccupancy ? RecCollision.ft0cOccupancyInTimeRange() : RecCollision.trackOccupancyInTimeRange();
396+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), OccupancyValue);
386397

387398
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
388399
for (auto& Rectrack : Rectrackspart) {
389400
if (!IsTrackSelected(Rectrack)) {
390401
continue;
391402
}
392403
histos.fill(HIST("MCrecPhiVsEtaHist"), Rectrack.phi(), Rectrack.eta());
393-
histos.fill(HIST("hmcrecdndeta"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Rectrack.phi());
404+
histos.fill(HIST("hmcrecdndeta"), RecCollision.posZ(), RecCollision.centFT0C(), OccupancyValue, Rectrack.eta(), Rectrack.phi());
394405
} // track (mcrec) loop
395406

396407
for (auto& particle : GenParticles) {
@@ -421,7 +432,8 @@ struct HeavyIonMultiplicity {
421432
}
422433
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
423434
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
424-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
435+
auto OccupancyValue = IsApplyFT0CbasedOccupancy ? RecCollision.ft0cOccupancyInTimeRange() : RecCollision.trackOccupancyInTimeRange();
436+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), OccupancyValue);
425437

426438
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
427439
for (auto& Rectrack : Rectrackspart) {
@@ -464,7 +476,8 @@ struct HeavyIonMultiplicity {
464476
}
465477
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
466478
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
467-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
479+
auto OccupancyValue = IsApplyFT0CbasedOccupancy ? RecCollision.ft0cOccupancyInTimeRange() : RecCollision.trackOccupancyInTimeRange();
480+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), OccupancyValue);
468481

469482
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
470483
for (auto& Rectrack : Rectrackspart) {
@@ -503,15 +516,16 @@ struct HeavyIonMultiplicity {
503516
}
504517
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
505518
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
506-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
519+
auto OccupancyValue = IsApplyFT0CbasedOccupancy ? RecCollision.ft0cOccupancyInTimeRange() : RecCollision.trackOccupancyInTimeRange();
520+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), OccupancyValue);
507521

508522
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
509523
std::vector<Int_t> mclabels;
510524
for (auto& Rectrack : Rectrackspart) {
511525
if (!IsTrackSelected(Rectrack)) {
512526
continue;
513527
}
514-
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Double_t(kSpAll));
528+
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), OccupancyValue, Rectrack.eta(), Double_t(kSpAll));
515529
if (Rectrack.has_mcParticle()) {
516530
Int_t pid = kBkg;
517531
auto mcpart = Rectrack.template mcParticle_as<aod::McParticles>();
@@ -543,9 +557,9 @@ struct HeavyIonMultiplicity {
543557
pid = kBkg;
544558
}
545559
mclabels.push_back(Rectrack.mcParticleId());
546-
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Double_t(pid));
560+
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), OccupancyValue, Rectrack.eta(), Double_t(pid));
547561
} else {
548-
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Double_t(kBkg));
562+
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), OccupancyValue, Rectrack.eta(), Double_t(kBkg));
549563
}
550564
} // rec track loop
551565

0 commit comments

Comments
 (0)