Skip to content

Commit 279d12b

Browse files
committed
adding process functions to study DCA selections
1 parent abd74fe commit 279d12b

1 file changed

Lines changed: 81 additions & 2 deletions

File tree

PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

Lines changed: 81 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ struct HeavyionMultiplicity {
192192
ConfigurableAxis binsImpactPar{"binsImpactPar", {VARIABLE_WIDTH, 0.0, 3.00065, 4.28798, 6.14552, 7.6196, 8.90942, 10.0897, 11.2002, 12.2709, 13.3167, 14.4173, 23.2518}, "Binning of the impact parameter axis"};
193193
ConfigurableAxis binsMult{"binsMult", {500, 0.0f, +500.0f}, ""};
194194
ConfigurableAxis binsDCA{"binsDCA", {500, -10.0f, 10.0f}, ""};
195-
195+
196196
Configurable<bool> isApplyTFcut{"isApplyTFcut", true, "Enable TimeFrameBorder cut"};
197197
Configurable<bool> isApplyITSROcut{"isApplyITSROcut", true, "Enable ITS ReadOutFrameBorder cut"};
198198
Configurable<bool> isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"};
@@ -250,6 +250,19 @@ struct HeavyionMultiplicity {
250250
x->SetBinLabel(9, "ApplyNoHighMultCollInPrevRof");
251251
x->SetBinLabel(10, "INEL > 0");
252252

253+
254+
if(doprocessDCAvsptData) {
255+
histos.add("hdcaxyvspt", "dca to pv in the xy plane", kTH2D, {dcaAxis, axisPt}, false);
256+
histos.add("hdcazvspt" , "dca to pv in the z axis", kTH2D, {dcaAxis, axisPt}, false);
257+
}
258+
259+
if(doprocessDCAvsptMC) {
260+
histos.add("hdcaxyvsptMC", "dca to pv in the xy plane MC", kTH2D, {dcaAxis, axisPt}, false);
261+
histos.add("hdcazvsptMC", "dca to pv in the z axis MC", kTH2D, {dcaAxis, axisPt}, false);
262+
histos.add("hdcaxyvsptMCprimary", "dca to pv in the xy plane MC primary particles", kTH2D, {dcaAxis, axisPt}, false);
263+
histos.add("hdcazvsptMCprimary", "dca to pv in the z axis MC primary particles", kTH2D, {dcaAxis, axisPt}, false);
264+
}
265+
253266
if (doprocessData) {
254267
histos.add("hdcaxy", "dca to pv in the xy plane", kTH1D, {dcaAxis}, false);
255268
histos.add("hdcaz", "dca to pv in the z axis", kTH1D, {dcaAxis}, false);
@@ -518,13 +531,77 @@ struct HeavyionMultiplicity {
518531
return true;
519532
}
520533

534+
535+
536+
537+
521538
expressions::Filter trackSelectionProperMixed = ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::ITS) &&
522539
ncheckbit(aod::track::trackCutFlag, TrackSelectionIts) &&
523540
ifnode(ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::TPC),
524541
ncheckbit(aod::track::trackCutFlag, TrackSelectionTpc), true) &&
525542
ifnode(dcaZ.node() > 0.f, nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly),
526543
ncheckbit(aod::track::trackCutFlag, TrackSelectionDca));
527544

545+
546+
void processDCAvsptData(CollisionDataTable::iterator const& cols, TrackDataTable const& tracks) {
547+
if (!isEventSelected(cols)) {
548+
return;
549+
}
550+
551+
for (const auto& track : tracks) {
552+
if(!track.hasITS())
553+
continue;
554+
555+
if (!isTrackSelected(track))
556+
continue;
557+
558+
histos.fill(HIST("hdcaxyvspt"), track.dcaXY(), track.pt());
559+
histos.fill(HIST("hdcazvspt"), track.dcaZ(), track.pt());
560+
561+
}
562+
563+
}
564+
565+
void processDCAvsptMC(soa::Join<CollisionMCTrueTable, aod::McCollsExtra>::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, TrackMCRecTable const& RecTracks) {
566+
567+
for (const auto& RecCol : RecCols) {
568+
if (!isEventSelected(RecCol)) {
569+
continue;
570+
}
571+
if (RecCol.globalIndex() != mcCollision.bestCollisionIndex()) {
572+
continue;
573+
}
574+
575+
auto recTracksPart = RecTracks.sliceBy(perCollision, RecCol.globalIndex());
576+
577+
for (const auto& Rectrack : recTracksPart) {
578+
if(!Rectrack.hasITS())
579+
continue;
580+
581+
if (!isTrackSelected(Rectrack))
582+
continue;
583+
584+
if (!Rectrack.has_mcParticle())
585+
continue;
586+
587+
588+
histos.fill(HIST("hdcaxyvsptMC"), Rectrack.dcaXY(), Rectrack.pt());
589+
histos.fill(HIST("hdcazvsptMC"), Rectrack.dcaZ(), Rectrack.pt());
590+
591+
auto mcpart = Rectrack.mcParticle();
592+
593+
if (mcpart.isPhysicalPrimary()) {
594+
histos.fill(HIST("hdcaxyvsptMCprimary"), Rectrack.dcaXY(), Rectrack.pt());
595+
histos.fill(HIST("hdcazvsptMCprimary"), Rectrack.dcaZ(), Rectrack.pt());
596+
}
597+
}
598+
}
599+
}
600+
601+
602+
603+
604+
528605
void processData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks)
529606
{
530607
if (!isEventSelected(cols)) {
@@ -1032,7 +1109,9 @@ struct HeavyionMultiplicity {
10321109
histos.fill(HIST("BcCentFT0CHist"), multbc.centFT0C());
10331110
histos.fill(HIST("BcCentFT0MHist"), multbc.centFT0M());
10341111
}
1035-
1112+
1113+
PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptData, "process DCA data", false);
1114+
PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptMC, "process DCA MC", false);
10361115
PROCESS_SWITCH(HeavyionMultiplicity, processData, "process data CentFT0C", false);
10371116
PROCESS_SWITCH(HeavyionMultiplicity, processCorrelation, "do correlation study in data", false);
10381117
PROCESS_SWITCH(HeavyionMultiplicity, processMonteCarlo, "process MC CentFT0C", false);

0 commit comments

Comments
 (0)