Skip to content

Commit c5f409c

Browse files
authored
PWGMM/Mult/Tasks/heavy-ion-mult.cxx: Add occupancy cut MC reco level (#8090)
1 parent 8efd865 commit c5f409c

1 file changed

Lines changed: 37 additions & 19 deletions

File tree

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

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ struct HeavyIonMultiplicity {
130130
Configurable<float> dcanegtopvCut{"dcanegtopvCut", 0.05f, "dcanegtopvCut"};
131131
Configurable<float> v0cospaCut{"v0cospaCut", 0.995f, "v0cospaCut"};
132132
Configurable<float> dcav0daughtercut{"dcav0daughtercut", 1.0f, "dcav0daughtercut"};
133+
Configurable<float> minTPCnClsCut{"minTPCnClsCut", 50.0f, "minTPCnClsCut"};
134+
Configurable<float> NSigmaTPCcut{"NSigmaTPCcut", 5.0f, "NSigmaTPCcut"};
133135
ConfigurableAxis multHistBin{"MultDistBinning", {501, -0.5, 500.5}, ""};
134136
ConfigurableAxis PVHistBin{"PVDistBinning", {501, -0.5, 500.5}, ""};
135137
ConfigurableAxis FV0AmultHistBin{"FV0AMultDistBinning", {501, -0.5, 500.5}, ""};
@@ -178,25 +180,24 @@ struct HeavyIonMultiplicity {
178180
if (doprocessData) {
179181
histos.add("CentPercentileHist", "CentPercentileHist", kTH1D, {axisCent}, false);
180182
histos.add("hdatamult", "hdatamult", kTHnSparseD, {axisVtxZ, axisMult, CentAxis}, false);
181-
histos.add("hdatadndeta", "hdatadndeta", kTHnSparseD, {axisVtxZ, CentAxis, axisEta, axisPhi, axisPT, AxisTrackType}, false);
182-
histos.add("hdatadndetaOccupancy", "hdatadndetaOccupancy", kTHnSparseD, {axisVtxZ, CentAxis, axisEta, axisPhi, axisOccupancy}, false);
183+
histos.add("hdatadndeta", "hdatadndeta", kTHnSparseD, {axisVtxZ, CentAxis, axisOccupancy, axisEta, axisPhi, AxisTrackType}, false);
183184
histos.add("hdatazvtxcent", "hdatazvtxcent", kTH3D, {axisVtxZ, CentAxis, axisOccupancy}, false);
184185
histos.add("PhiVsEtaHist", "PhiVsEtaHist", kTH2D, {axisPhi2, axisEta}, false);
185186
}
186187

187188
if (doprocessMonteCarlo || doprocessMCpTefficiency || doprocessMCcheckFakeTracks || doprocessMCfillspecies) {
188189
histos.add("CentPercentileMCRecHist", "CentPercentileMCRecHist", kTH1D, {axisCent}, false);
189-
histos.add("hmczvtxcent", "hmczvtxcent", kTH2D, {axisVtxZ, CentAxis}, false);
190+
histos.add("hmczvtxcent", "hmczvtxcent", kTH3D, {axisVtxZ, CentAxis, axisOccupancy}, false);
190191
}
191192

192193
if (doprocessMonteCarlo) {
193194
histos.add("MCrecPhiVsEtaHist", "MCrecPhiVsEtaHist", kTH2D, {axisPhi2, axisEta}, false);
194-
histos.add("hmcrecdndeta", "hmcrecdndeta", kTHnSparseD, {axisVtxZ, CentAxis, axisEta, axisPhi}, false);
195+
histos.add("hmcrecdndeta", "hmcrecdndeta", kTHnSparseD, {axisVtxZ, CentAxis, axisOccupancy, axisEta, axisPhi}, false);
195196
histos.add("hmcgendndeta", "hmcgendndeta", kTHnSparseD, {axisVtxZ, CentAxis, axisEta, axisPhi, AxisGenpTVary}, false);
196197
}
197198

198199
if (doprocessMCfillspecies) {
199-
histos.add("FillMCrecSpecies", "FillMCrecSpecies", kTHnSparseD, {CentAxis, axisEta, AxisSpecies}, false);
200+
histos.add("FillMCrecSpecies", "FillMCrecSpecies", kTHnSparseD, {CentAxis, axisOccupancy, axisEta, AxisSpecies}, false);
200201
histos.add("FillMCgenSpecies", "FillMCgenSpecies", kTHnSparseD, {CentAxis, axisEta, AxisSpecies}, false);
201202
}
202203

@@ -337,12 +338,11 @@ struct HeavyIonMultiplicity {
337338
}
338339
histos.fill(HIST("PhiVsEtaHist"), track.phi(), track.eta());
339340
NchTracks++;
340-
histos.fill(HIST("hdatadndetaOccupancy"), collision.posZ(), collision.centFT0C(), track.eta(), track.phi(), collision.trackOccupancyInTimeRange());
341-
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), track.eta(), track.phi(), track.pt(), kGlobalplusITS);
341+
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange(), track.eta(), track.phi(), kGlobalplusITS);
342342
if (track.hasTPC()) {
343-
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), track.eta(), track.phi(), track.pt(), kGlobalonly);
343+
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange(), track.eta(), track.phi(), kGlobalonly);
344344
} else {
345-
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), track.eta(), track.phi(), track.pt(), kITSonly);
345+
histos.fill(HIST("hdatadndeta"), collision.posZ(), collision.centFT0C(), collision.trackOccupancyInTimeRange(), track.eta(), track.phi(), kITSonly);
346346
}
347347
}
348348
histos.fill(HIST("hdatamult"), collision.posZ(), NchTracks, collision.centFT0C());
@@ -382,15 +382,15 @@ struct HeavyIonMultiplicity {
382382
}
383383
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
384384
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
385-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C());
385+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
386386

387387
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
388388
for (auto& Rectrack : Rectrackspart) {
389389
if (!IsTrackSelected(Rectrack)) {
390390
continue;
391391
}
392392
histos.fill(HIST("MCrecPhiVsEtaHist"), Rectrack.phi(), Rectrack.eta());
393-
histos.fill(HIST("hmcrecdndeta"), RecCollision.posZ(), RecCollision.centFT0C(), Rectrack.eta(), Rectrack.phi());
393+
histos.fill(HIST("hmcrecdndeta"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Rectrack.phi());
394394
} // track (mcrec) loop
395395

396396
for (auto& particle : GenParticles) {
@@ -421,7 +421,7 @@ struct HeavyIonMultiplicity {
421421
}
422422
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
423423
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
424-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C());
424+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
425425

426426
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
427427
for (auto& Rectrack : Rectrackspart) {
@@ -464,7 +464,7 @@ struct HeavyIonMultiplicity {
464464
}
465465
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
466466
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
467-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C());
467+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
468468

469469
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
470470
for (auto& Rectrack : Rectrackspart) {
@@ -503,15 +503,15 @@ struct HeavyIonMultiplicity {
503503
}
504504
histos.fill(HIST("VtxZHist"), RecCollision.posZ());
505505
histos.fill(HIST("CentPercentileMCRecHist"), RecCollision.centFT0C());
506-
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C());
506+
histos.fill(HIST("hmczvtxcent"), RecCollision.posZ(), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange());
507507

508508
auto Rectrackspart = RecTracks.sliceBy(perCollision, RecCollision.globalIndex());
509509
std::vector<Int_t> mclabels;
510510
for (auto& Rectrack : Rectrackspart) {
511511
if (!IsTrackSelected(Rectrack)) {
512512
continue;
513513
}
514-
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), Rectrack.eta(), Double_t(kSpAll));
514+
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Double_t(kSpAll));
515515
if (Rectrack.has_mcParticle()) {
516516
Int_t pid = kBkg;
517517
auto mcpart = Rectrack.template mcParticle_as<aod::McParticles>();
@@ -543,9 +543,9 @@ struct HeavyIonMultiplicity {
543543
pid = kBkg;
544544
}
545545
mclabels.push_back(Rectrack.mcParticleId());
546-
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), Rectrack.eta(), Double_t(pid));
546+
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Double_t(pid));
547547
} else {
548-
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), Rectrack.eta(), Double_t(kBkg));
548+
histos.fill(HIST("FillMCrecSpecies"), RecCollision.centFT0C(), RecCollision.trackOccupancyInTimeRange(), Rectrack.eta(), Double_t(kBkg));
549549
}
550550
} // rec track loop
551551

@@ -587,10 +587,28 @@ struct HeavyIonMultiplicity {
587587
for (auto& v0track : v0data) {
588588
auto v0pTrack = v0track.template posTrack_as<v0trackcandidates>();
589589
auto v0nTrack = v0track.template negTrack_as<v0trackcandidates>();
590-
if (std::abs(v0track.dcapostopv()) < dcapostopvCut || std::abs(v0track.dcanegtopv()) < dcanegtopvCut || v0track.v0radius() < v0radiusCut || v0track.v0cosPA() < v0cospaCut || std::abs(v0track.dcaV0daughters()) > dcav0daughtercut) {
590+
if (std::abs(v0pTrack.eta()) > 0.9 || std::abs(v0nTrack.eta()) > 0.9) {
591591
continue;
592592
}
593-
if (std::abs(v0pTrack.eta()) > 0.9 || std::abs(v0nTrack.eta()) > 0.9) {
593+
if (v0pTrack.tpcNClsFound() < minTPCnClsCut) {
594+
continue;
595+
}
596+
if (v0nTrack.tpcNClsFound() < minTPCnClsCut) {
597+
continue;
598+
}
599+
if (std::abs(v0pTrack.tpcNSigmaPi()) > NSigmaTPCcut) {
600+
continue;
601+
}
602+
if (std::abs(v0nTrack.tpcNSigmaPi()) > NSigmaTPCcut) {
603+
continue;
604+
}
605+
if (std::abs(v0pTrack.tpcNSigmaPr()) > NSigmaTPCcut) {
606+
continue;
607+
}
608+
if (std::abs(v0nTrack.tpcNSigmaPr()) > NSigmaTPCcut) {
609+
continue;
610+
}
611+
if (std::abs(v0track.dcapostopv()) < dcapostopvCut || std::abs(v0track.dcanegtopv()) < dcanegtopvCut || v0track.v0radius() < v0radiusCut || v0track.v0cosPA() < v0cospaCut || std::abs(v0track.dcaV0daughters()) > dcav0daughtercut) {
594612
continue;
595613
}
596614
histos.fill(HIST("K0sCentEtaMass"), collision.centFT0C(), v0track.eta(), v0track.mK0Short());

0 commit comments

Comments
 (0)