From 279d12b3ec9a973708d01372a16b513dfd97fc28 Mon Sep 17 00:00:00 2001 From: murioni Date: Mon, 6 Jul 2026 18:18:46 +0200 Subject: [PATCH 1/4] adding process functions to study DCA selections --- .../heavyionMultiplicity.cxx | 83 ++++++++++++++++++- 1 file changed, 81 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index ec8c9ae7471..0318f5bbd86 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -192,7 +192,7 @@ struct HeavyionMultiplicity { 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"}; ConfigurableAxis binsMult{"binsMult", {500, 0.0f, +500.0f}, ""}; ConfigurableAxis binsDCA{"binsDCA", {500, -10.0f, 10.0f}, ""}; - + Configurable isApplyTFcut{"isApplyTFcut", true, "Enable TimeFrameBorder cut"}; Configurable isApplyITSROcut{"isApplyITSROcut", true, "Enable ITS ReadOutFrameBorder cut"}; Configurable isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"}; @@ -250,6 +250,19 @@ struct HeavyionMultiplicity { x->SetBinLabel(9, "ApplyNoHighMultCollInPrevRof"); x->SetBinLabel(10, "INEL > 0"); + + if(doprocessDCAvsptData) { + histos.add("hdcaxyvspt", "dca to pv in the xy plane", kTH2D, {dcaAxis, axisPt}, false); + histos.add("hdcazvspt" , "dca to pv in the z axis", kTH2D, {dcaAxis, axisPt}, false); + } + + if(doprocessDCAvsptMC) { + histos.add("hdcaxyvsptMC", "dca to pv in the xy plane MC", kTH2D, {dcaAxis, axisPt}, false); + histos.add("hdcazvsptMC", "dca to pv in the z axis MC", kTH2D, {dcaAxis, axisPt}, false); + histos.add("hdcaxyvsptMCprimary", "dca to pv in the xy plane MC primary particles", kTH2D, {dcaAxis, axisPt}, false); + histos.add("hdcazvsptMCprimary", "dca to pv in the z axis MC primary particles", kTH2D, {dcaAxis, axisPt}, false); + } + if (doprocessData) { histos.add("hdcaxy", "dca to pv in the xy plane", kTH1D, {dcaAxis}, false); histos.add("hdcaz", "dca to pv in the z axis", kTH1D, {dcaAxis}, false); @@ -518,6 +531,10 @@ struct HeavyionMultiplicity { return true; } + + + + expressions::Filter trackSelectionProperMixed = ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::ITS) && ncheckbit(aod::track::trackCutFlag, TrackSelectionIts) && ifnode(ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::TPC), @@ -525,6 +542,66 @@ struct HeavyionMultiplicity { ifnode(dcaZ.node() > 0.f, nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), ncheckbit(aod::track::trackCutFlag, TrackSelectionDca)); + + void processDCAvsptData(CollisionDataTable::iterator const& cols, TrackDataTable const& tracks) { + if (!isEventSelected(cols)) { + return; + } + + for (const auto& track : tracks) { + if(!track.hasITS()) + continue; + + if (!isTrackSelected(track)) + continue; + + histos.fill(HIST("hdcaxyvspt"), track.dcaXY(), track.pt()); + histos.fill(HIST("hdcazvspt"), track.dcaZ(), track.pt()); + + } + + } + + void processDCAvsptMC(soa::Join::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, TrackMCRecTable const& RecTracks) { + + for (const auto& RecCol : RecCols) { + if (!isEventSelected(RecCol)) { + continue; + } + if (RecCol.globalIndex() != mcCollision.bestCollisionIndex()) { + continue; + } + + auto recTracksPart = RecTracks.sliceBy(perCollision, RecCol.globalIndex()); + + for (const auto& Rectrack : recTracksPart) { + if(!Rectrack.hasITS()) + continue; + + if (!isTrackSelected(Rectrack)) + continue; + + if (!Rectrack.has_mcParticle()) + continue; + + + histos.fill(HIST("hdcaxyvsptMC"), Rectrack.dcaXY(), Rectrack.pt()); + histos.fill(HIST("hdcazvsptMC"), Rectrack.dcaZ(), Rectrack.pt()); + + auto mcpart = Rectrack.mcParticle(); + + if (mcpart.isPhysicalPrimary()) { + histos.fill(HIST("hdcaxyvsptMCprimary"), Rectrack.dcaXY(), Rectrack.pt()); + histos.fill(HIST("hdcazvsptMCprimary"), Rectrack.dcaZ(), Rectrack.pt()); + } + } + } + } + + + + + void processData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks) { if (!isEventSelected(cols)) { @@ -1032,7 +1109,9 @@ struct HeavyionMultiplicity { histos.fill(HIST("BcCentFT0CHist"), multbc.centFT0C()); histos.fill(HIST("BcCentFT0MHist"), multbc.centFT0M()); } - + + PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptData, "process DCA data", false); + PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptMC, "process DCA MC", false); PROCESS_SWITCH(HeavyionMultiplicity, processData, "process data CentFT0C", false); PROCESS_SWITCH(HeavyionMultiplicity, processCorrelation, "do correlation study in data", false); PROCESS_SWITCH(HeavyionMultiplicity, processMonteCarlo, "process MC CentFT0C", false); From e0a0f3112d20bc327886361120cd7854a7a8787f Mon Sep 17 00:00:00 2001 From: murioni Date: Tue, 7 Jul 2026 18:47:41 +0200 Subject: [PATCH 2/4] modified DCA cut filter --- .../GlobalEventProperties/heavyionMultiplicity.cxx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index 0318f5bbd86..e75373c36af 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -218,7 +218,8 @@ struct HeavyionMultiplicity { Configurable selectCollidingBCs{"selectCollidingBCs", true, "BC analysis: select colliding BCs"}; Configurable selectTVX{"selectTVX", true, "BC analysis: select TVX"}; Configurable selectFV0OrA{"selectFV0OrA", true, "BC analysis: select FV0OrA"}; - + Configurable isApplyDCAstandardcuts{"isApplyDCAstandardcuts",true, "Apply DCA standard run 2 cuts"}; + void init(InitContext const&) { AxisSpec axisMult = {multHistBin, "Mult", "MultAxis"}; @@ -539,18 +540,15 @@ struct HeavyionMultiplicity { ncheckbit(aod::track::trackCutFlag, TrackSelectionIts) && ifnode(ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::TPC), ncheckbit(aod::track::trackCutFlag, TrackSelectionTpc), true) && - ifnode(dcaZ.node() > 0.f, nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), - ncheckbit(aod::track::trackCutFlag, TrackSelectionDca)); + ifnode(isApplyDCAstandardcuts.node() /*&& (dcaZ.node() > 0.f)*/, nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), true); - void processDCAvsptData(CollisionDataTable::iterator const& cols, TrackDataTable const& tracks) { + void processDCAvsptData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks) { if (!isEventSelected(cols)) { return; } for (const auto& track : tracks) { - if(!track.hasITS()) - continue; if (!isTrackSelected(track)) continue; @@ -562,7 +560,7 @@ struct HeavyionMultiplicity { } - void processDCAvsptMC(soa::Join::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, TrackMCRecTable const& RecTracks) { + void processDCAvsptMC(soa::Join::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, FilTrackMCRecTable const& RecTracks) { for (const auto& RecCol : RecCols) { if (!isEventSelected(RecCol)) { @@ -575,8 +573,6 @@ struct HeavyionMultiplicity { auto recTracksPart = RecTracks.sliceBy(perCollision, RecCol.globalIndex()); for (const auto& Rectrack : recTracksPart) { - if(!Rectrack.hasITS()) - continue; if (!isTrackSelected(Rectrack)) continue; From a46eb20fee10fa2250d145fa306b45661c663e44 Mon Sep 17 00:00:00 2001 From: murioni Date: Wed, 8 Jul 2026 18:40:19 +0200 Subject: [PATCH 3/4] added custom DCA cut pT dependent --- .../heavyionMultiplicity.cxx | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index e75373c36af..ca39f6cd884 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -24,7 +24,8 @@ #include "Common/DataModel/Multiplicity.h" #include "Common/DataModel/PIDResponseTPC.h" #include "Common/DataModel/TrackSelectionTables.h" - +#include "Common/Core/TrackSelection.h" +#include "Common/Core/TrackSelectionDefaults.h" #include #include #include @@ -120,6 +121,7 @@ enum { kRecTrkTypeend }; + static constexpr TrackSelectionFlags::flagtype TrackSelectionIts = TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | TrackSelectionFlags::kITSHits; @@ -159,7 +161,7 @@ struct HeavyionMultiplicity { Configurable etaRange{"etaRange", 1.0f, "Eta range to consider"}; Configurable vtxRange{"vtxRange", 10.0f, "Vertex Z range to consider"}; - Configurable dcaZ{"dcaZ", 0.2f, "Custom DCA Z cut (ignored if negative)"}; + Configurable dcaZ{"dcaZ", 0.2f, "Custom DCA Z cut"}; Configurable v0radiusK0SCut{"v0radiusK0SCut", 1.2f, "K0S RadiusCut"}; Configurable dcapostopvK0SCut{"dcapostopvK0SCut", 0.05f, "K0S dcapostopvCut"}; Configurable dcanegtopvK0SCut{"dcanegtopvK0SCut", 0.05f, "K0S dcanegtopvCut"}; @@ -219,9 +221,16 @@ struct HeavyionMultiplicity { Configurable selectTVX{"selectTVX", true, "BC analysis: select TVX"}; Configurable selectFV0OrA{"selectFV0OrA", true, "BC analysis: select FV0OrA"}; Configurable isApplyDCAstandardcuts{"isApplyDCAstandardcuts",true, "Apply DCA standard run 2 cuts"}; + Configurable isApplyDCAcustomcuts{"isApplyDCAcustomcuts", false, "Apply DCA custom cuts"}; + Configurable cDcazP0 {"cDcazP0", 1.0f,"dca parameter"}; + Configurable cDcazP1 {"cDcazP1", 1.0f,"dca parameter"}; + Configurable cDcazP2 {"cDcazP2", 1.0f,"dca parameter"}; + Configurable cDcaxyP0{"cDcaxyP0",1.0f,"dca parameter"}; + Configurable cDcaxyP1{"cDcaxyP1",1.0f,"dca parameter"}; + Configurable cDcaxyP2{"cDcaxyP2",1.0f,"dca parameter"}; void init(InitContext const&) - { + { AxisSpec axisMult = {multHistBin, "Mult", "MultAxis"}; AxisSpec axisPV = {pvHistBin, "PV", "PVAxis"}; AxisSpec axisFv0aMult = {fv0aMultHistBin, "fv0a", "FV0AMultAxis"}; @@ -498,6 +507,12 @@ struct HeavyionMultiplicity { template bool isTrackSelected(CheckTrack const& track) { + if(isApplyDCAcustomcuts) { + if(std::abs(track.dcaXY()) > cDcaxyP0 + cDcaxyP1 / pow(track.pt(), cDcaxyP2)) + return false; + if(std::abs(track.dcaZ()) > cDcazP0 + cDcazP1 / pow(track.pt(), cDcazP2)) + return false; + } if (std::abs(track.eta()) >= etaRange) { return false; } @@ -540,7 +555,7 @@ struct HeavyionMultiplicity { ncheckbit(aod::track::trackCutFlag, TrackSelectionIts) && ifnode(ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::TPC), ncheckbit(aod::track::trackCutFlag, TrackSelectionTpc), true) && - ifnode(isApplyDCAstandardcuts.node() /*&& (dcaZ.node() > 0.f)*/, nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), true); + ifnode(isApplyDCAstandardcuts.node(), nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), true); void processDCAvsptData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks) { @@ -586,7 +601,7 @@ struct HeavyionMultiplicity { auto mcpart = Rectrack.mcParticle(); - if (mcpart.isPhysicalPrimary()) { + if (!isGenTrackSelected(mcpart)) { histos.fill(HIST("hdcaxyvsptMCprimary"), Rectrack.dcaXY(), Rectrack.pt()); histos.fill(HIST("hdcazvsptMCprimary"), Rectrack.dcaZ(), Rectrack.pt()); } From f99476e2392e1deb5ebafdce4ff059d63187a5fe Mon Sep 17 00:00:00 2001 From: murioni Date: Thu, 9 Jul 2026 12:21:57 +0200 Subject: [PATCH 4/4] fixing formatting --- .../heavyionMultiplicity.cxx | 106 ++++++++---------- 1 file changed, 47 insertions(+), 59 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index ca39f6cd884..7e4d5a871f1 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -18,14 +18,15 @@ #include "PWGLF/DataModel/LFStrangenessTables.h" #include "Common/CCDB/EventSelectionParams.h" +#include "Common/Core/TrackSelection.h" +#include "Common/Core/TrackSelectionDefaults.h" #include "Common/DataModel/Centrality.h" #include "Common/DataModel/EventSelection.h" #include "Common/DataModel/McCollisionExtra.h" #include "Common/DataModel/Multiplicity.h" #include "Common/DataModel/PIDResponseTPC.h" #include "Common/DataModel/TrackSelectionTables.h" -#include "Common/Core/TrackSelection.h" -#include "Common/Core/TrackSelectionDefaults.h" + #include #include #include @@ -121,7 +122,6 @@ enum { kRecTrkTypeend }; - static constexpr TrackSelectionFlags::flagtype TrackSelectionIts = TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | TrackSelectionFlags::kITSHits; @@ -129,8 +129,7 @@ static constexpr TrackSelectionFlags::flagtype TrackSelectionTpc = TrackSelectionFlags::kTPCNCls | TrackSelectionFlags::kTPCCrossedRowsOverNCls | TrackSelectionFlags::kTPCChi2NDF; -static constexpr TrackSelectionFlags::flagtype TrackSelectionDca = - TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; +// static constexpr TrackSelectionFlags::flagtype TrackSelectionDca = TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; static constexpr TrackSelectionFlags::flagtype TrackSelectionDcaxyOnly = TrackSelectionFlags::kDCAxy; @@ -194,7 +193,7 @@ struct HeavyionMultiplicity { 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"}; ConfigurableAxis binsMult{"binsMult", {500, 0.0f, +500.0f}, ""}; ConfigurableAxis binsDCA{"binsDCA", {500, -10.0f, 10.0f}, ""}; - + Configurable isApplyTFcut{"isApplyTFcut", true, "Enable TimeFrameBorder cut"}; Configurable isApplyITSROcut{"isApplyITSROcut", true, "Enable ITS ReadOutFrameBorder cut"}; Configurable isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"}; @@ -220,17 +219,17 @@ struct HeavyionMultiplicity { Configurable selectCollidingBCs{"selectCollidingBCs", true, "BC analysis: select colliding BCs"}; Configurable selectTVX{"selectTVX", true, "BC analysis: select TVX"}; Configurable selectFV0OrA{"selectFV0OrA", true, "BC analysis: select FV0OrA"}; - Configurable isApplyDCAstandardcuts{"isApplyDCAstandardcuts",true, "Apply DCA standard run 2 cuts"}; + Configurable isApplyDCAstandardcuts{"isApplyDCAstandardcuts", true, "Apply DCA standard run 2 cuts"}; Configurable isApplyDCAcustomcuts{"isApplyDCAcustomcuts", false, "Apply DCA custom cuts"}; - Configurable cDcazP0 {"cDcazP0", 1.0f,"dca parameter"}; - Configurable cDcazP1 {"cDcazP1", 1.0f,"dca parameter"}; - Configurable cDcazP2 {"cDcazP2", 1.0f,"dca parameter"}; - Configurable cDcaxyP0{"cDcaxyP0",1.0f,"dca parameter"}; - Configurable cDcaxyP1{"cDcaxyP1",1.0f,"dca parameter"}; - Configurable cDcaxyP2{"cDcaxyP2",1.0f,"dca parameter"}; - + Configurable cDcazP0{"cDcazP0", 1.0f, "dcaz parameter0"}; + Configurable cDcazP1{"cDcazP1", 1.0f, "dcaz parameter1"}; + Configurable cDcazP2{"cDcazP2", 1.0f, "dcaz parameter2"}; + Configurable cDcaxyP0{"cDcaxyP0", 1.0f, "dcaxy parameter0"}; + Configurable cDcaxyP1{"cDcaxyP1", 1.0f, "dcaxy parameter1"}; + Configurable cDcaxyP2{"cDcaxyP2", 1.0f, "dcaxy parameter2"}; + void init(InitContext const&) - { + { AxisSpec axisMult = {multHistBin, "Mult", "MultAxis"}; AxisSpec axisPV = {pvHistBin, "PV", "PVAxis"}; AxisSpec axisFv0aMult = {fv0aMultHistBin, "fv0a", "FV0AMultAxis"}; @@ -260,19 +259,18 @@ struct HeavyionMultiplicity { x->SetBinLabel(9, "ApplyNoHighMultCollInPrevRof"); x->SetBinLabel(10, "INEL > 0"); - - if(doprocessDCAvsptData) { + if (doprocessDCAvsptData) { histos.add("hdcaxyvspt", "dca to pv in the xy plane", kTH2D, {dcaAxis, axisPt}, false); - histos.add("hdcazvspt" , "dca to pv in the z axis", kTH2D, {dcaAxis, axisPt}, false); + histos.add("hdcazvspt", "dca to pv in the z axis", kTH2D, {dcaAxis, axisPt}, false); } - if(doprocessDCAvsptMC) { + if (doprocessDCAvsptMC) { histos.add("hdcaxyvsptMC", "dca to pv in the xy plane MC", kTH2D, {dcaAxis, axisPt}, false); histos.add("hdcazvsptMC", "dca to pv in the z axis MC", kTH2D, {dcaAxis, axisPt}, false); histos.add("hdcaxyvsptMCprimary", "dca to pv in the xy plane MC primary particles", kTH2D, {dcaAxis, axisPt}, false); histos.add("hdcazvsptMCprimary", "dca to pv in the z axis MC primary particles", kTH2D, {dcaAxis, axisPt}, false); } - + if (doprocessData) { histos.add("hdcaxy", "dca to pv in the xy plane", kTH1D, {dcaAxis}, false); histos.add("hdcaz", "dca to pv in the z axis", kTH1D, {dcaAxis}, false); @@ -507,11 +505,11 @@ struct HeavyionMultiplicity { template bool isTrackSelected(CheckTrack const& track) { - if(isApplyDCAcustomcuts) { - if(std::abs(track.dcaXY()) > cDcaxyP0 + cDcaxyP1 / pow(track.pt(), cDcaxyP2)) - return false; - if(std::abs(track.dcaZ()) > cDcazP0 + cDcazP1 / pow(track.pt(), cDcazP2)) - return false; + if (isApplyDCAcustomcuts) { + if (std::abs(track.dcaXY()) > cDcaxyP0 + cDcaxyP1 / pow(track.pt(), cDcaxyP2)) + return false; + if (std::abs(track.dcaZ()) > cDcazP0 + cDcazP1 / pow(track.pt(), cDcazP2)) + return false; } if (std::abs(track.eta()) >= etaRange) { return false; @@ -547,35 +545,30 @@ struct HeavyionMultiplicity { return true; } - - - - expressions::Filter trackSelectionProperMixed = ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::ITS) && ncheckbit(aod::track::trackCutFlag, TrackSelectionIts) && ifnode(ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::TPC), ncheckbit(aod::track::trackCutFlag, TrackSelectionTpc), true) && - ifnode(isApplyDCAstandardcuts.node(), nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), true); - + ifnode(isApplyDCAstandardcuts.node(), nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), true); - void processDCAvsptData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks) { - if (!isEventSelected(cols)) { + void processDCAvsptData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks) + { + if (!isEventSelected(cols)) { return; } for (const auto& track : tracks) { - - if (!isTrackSelected(track)) + + if (!isTrackSelected(track)) continue; - histos.fill(HIST("hdcaxyvspt"), track.dcaXY(), track.pt()); - histos.fill(HIST("hdcazvspt"), track.dcaZ(), track.pt()); - + histos.fill(HIST("hdcaxyvspt"), track.dcaXY(), track.pt()); + histos.fill(HIST("hdcazvspt"), track.dcaZ(), track.pt()); } - } - void processDCAvsptMC(soa::Join::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, FilTrackMCRecTable const& RecTracks) { + void processDCAvsptMC(soa::Join::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, FilTrackMCRecTable const& RecTracks) + { for (const auto& RecCol : RecCols) { if (!isEventSelected(RecCol)) { @@ -589,30 +582,25 @@ struct HeavyionMultiplicity { for (const auto& Rectrack : recTracksPart) { - if (!isTrackSelected(Rectrack)) + if (!isTrackSelected(Rectrack)) continue; - + if (!Rectrack.has_mcParticle()) - continue; - - - histos.fill(HIST("hdcaxyvsptMC"), Rectrack.dcaXY(), Rectrack.pt()); - histos.fill(HIST("hdcazvsptMC"), Rectrack.dcaZ(), Rectrack.pt()); - - auto mcpart = Rectrack.mcParticle(); - - if (!isGenTrackSelected(mcpart)) { - histos.fill(HIST("hdcaxyvsptMCprimary"), Rectrack.dcaXY(), Rectrack.pt()); - histos.fill(HIST("hdcazvsptMCprimary"), Rectrack.dcaZ(), Rectrack.pt()); - } - } - } - } + continue; + histos.fill(HIST("hdcaxyvsptMC"), Rectrack.dcaXY(), Rectrack.pt()); + histos.fill(HIST("hdcazvsptMC"), Rectrack.dcaZ(), Rectrack.pt()); + auto mcpart = Rectrack.mcParticle(); + if (!isGenTrackSelected(mcpart)) { + histos.fill(HIST("hdcaxyvsptMCprimary"), Rectrack.dcaXY(), Rectrack.pt()); + histos.fill(HIST("hdcazvsptMCprimary"), Rectrack.dcaZ(), Rectrack.pt()); + } + } + } + } - void processData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks) { if (!isEventSelected(cols)) { @@ -1120,7 +1108,7 @@ struct HeavyionMultiplicity { histos.fill(HIST("BcCentFT0CHist"), multbc.centFT0C()); histos.fill(HIST("BcCentFT0MHist"), multbc.centFT0M()); } - + PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptData, "process DCA data", false); PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptMC, "process DCA MC", false); PROCESS_SWITCH(HeavyionMultiplicity, processData, "process data CentFT0C", false);