From 76001579601b3be9df37077c958969d6f7d82566 Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Mon, 8 Sep 2025 13:01:52 +0100 Subject: [PATCH 01/10] Update to add processReassociation3d and dca information added processReassociation3d and dca information --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 100 ++++++++++++++++-- 1 file changed, 90 insertions(+), 10 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index a37b4f8c368..e722d2a659d 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -53,7 +53,8 @@ AxisSpec DeltaZAxis = {61, -6.1, 6.1}; AxisSpec ZAxis = {301, -30.1, 30.1}; AxisSpec PhiAxis = {629, 0, o2::constants::math::TwoPI, "Rad", "phi axis"}; // AxisSpec EtaAxis = {18, -4.6, -1.}; -AxisSpec DCAxyAxis = {100, -1, 10}; +AxisSpec DCAxyAxis = {5000, -1, 500}; +AxisSpec DCAzAxis = {5000, -251, 250}; AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; static constexpr TrackSelectionFlags::flagtype trackSelectionITS = @@ -93,6 +94,7 @@ struct PseudorapidityDensityMFT { Configurable usePhiCut{"usePhiCut", true, "use azimuthal angle cut"}; Configurable useDCAxyCut{"useDCAxyCut", false, "use DCAxy cut"}; + Configurable useDCAzCut{"useDCAzCut", false, "use DCAz cut"}; Configurable cfgPhiCut{"cfgPhiCut", 0.1f, "Cut on azimuthal angle of MFT tracks"}; Configurable cfgPhiCut1{"cfgPhiCut1", 0.0f, @@ -111,6 +113,7 @@ struct PseudorapidityDensityMFT { "Cut on eta1"}; Configurable cfgChi2NDFMax{"cfgChi2NDFMax", 2000.0f, "Max allowed chi2/NDF for MFT tracks"}; Configurable maxDCAxy{"maxDCAxy", 2.0f, "Cut on dcaXY"}; + Configurable maxDCAz{"maxDCAz", 2.0f, "Cut on dcaZ"}; HistogramRegistry registry{ "registry", @@ -142,13 +145,14 @@ struct PseudorapidityDensityMFT { void init(InitContext&) { if (static_cast(doprocessMult) + - static_cast(doprocessMultReassoc) + + static_cast(doprocessMultReassoc) + + static_cast(doprocessMultReassoc3d) + static_cast(doprocessCountingCentrality) > 1) { LOGP(fatal, "Exactly one process function between processMult, " - "processMultReassoc and processCountingCentrality should be " - "enabled!"); + "processMultReassoc, processMultReassoc3d, and processCountingCentrality should be " + "enabled!"); } AxisSpec MultAxis = {multBinning, "N_{trk}"}; auto hstat = registry.get(HIST("EventSelection")); @@ -251,7 +255,7 @@ struct PseudorapidityDensityMFT { x->SetBinLabel(5, "Selected INEL>0"); } - if (doprocessMultReassoc) { + if (doprocessMultReassoc || doprocessMultReassoc3d) { registry.add({"Tracks/Control/DeltaZ", " ; #it{z_{orig}}-#it{z_{reass}}", {HistType::kTH1F, {ZAxis}}}); @@ -321,6 +325,8 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/amb/EtaZvtxAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // + registry.add({"Tracks/Control/amb/DCAxy_amb", " ; DCA_{xy} (cm) ambiguous", + {HistType::kTH1F, {DCAxyAxis}}}); registry.add({"Tracks/Control/nonamb/nonAmbTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -335,6 +341,8 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/nonamb/EtaZvtxNonAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // + registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", + {HistType::kTH1F, {{DCAxyAxis}}}}); // registry.add({"Tracks/Control/woOrp/woOrpTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -342,6 +350,8 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/woOrp/woOrpEtaZvtx_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // + registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", + {HistType::kTH1F, {{DCAxyAxis}}}}); // registry.add({"Tracks/2Danalysis/EtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // @@ -360,6 +370,20 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/woOrp/woOrpVertexCorr", "; #it{z}_{vtx}^{orig} (cm); #it{z}_{vtx}^{re} (cm)", {HistType::kTH2F, {ZAxis, ZAxis}}}); // + if (doprocessMultReassoc3d) { + registry.add({"Tracks/Control/DCAZ", + " ; DCA_{Z} (cm)", + {HistType::kTH1F, {DCAzAxis}}}); + registry.add({"Tracks/Control/amb/DCAz_amb", + " ; DCA_{z} (cm) ambiguous", + {HistType::kTH1F, {DCAzAxis}}}); + registry.add({"Tracks/Control/nonamb/DCAz_nonamb", + " ; DCA_{z}(cm) non-ambiguous", + {HistType::kTH1F, {DCAzAxis}}}); + registry.add({"Tracks/Control/woOrp/DCAz_woOrp", + " ; DCA_{z}(cm) w/o orphan", + {HistType::kTH1F, {DCAzAxis}}}); + } registry.add({"collisionID", " ; Collision ID", // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // @@ -567,10 +591,12 @@ struct PseudorapidityDensityMFT { PROCESS_SWITCH(PseudorapidityDensityMFT, processMult, "Process reco or data info", true); - void processMultReassoc(CollwEv::iterator const& collision, - o2::aod::MFTTracks const&, - soa::SmallGroups const& retracks, - FiCentralTracks const& midtracks, aod::Tracks const&) +// Common implementation for both BestCollisionsFwd and BestCollisionsFwd3d + template + void processMultReassocCommon(CollwEv::iterator const& collision, + o2::aod::MFTTracks const&, + RetracksT const& retracks, + FiCentralTracks const& midtracks, aod::Tracks const&) { registry.fill(HIST("EventSelection"), 1.); auto perCollisionSample = sampleCentral->sliceByCached( @@ -596,6 +622,13 @@ struct PseudorapidityDensityMFT { if (dcaxy_cut > maxDCAxy) continue; } + if constexpr (std::is_same_v>) { + float dcaz_cut = retrack.bestDCAZ(); + if (useDCAzCut) { + if (dcaz_cut > maxDCAz) + continue; + } + } if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && track.nClusters() >= cfgnCluster && retrack.ambDegree() > 0 && chi2ndf < cfgChi2NDFMax && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) { registry.fill(HIST("Tracks/2Danalysis/EtaZvtx"), track.eta(), z); } @@ -641,6 +674,13 @@ struct PseudorapidityDensityMFT { if (dcaxy_cut > maxDCAxy) continue; } + if constexpr (std::is_same_v>) { + float dcaz_cut = retrack.bestDCAZ(); + if (useDCAzCut) { + if (dcaz_cut > maxDCAz) + continue; + } + } if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && track.nClusters() >= cfgnCluster && retrack.ambDegree() > 0 && chi2ndf < cfgChi2NDFMax && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) { registry.fill(HIST("Tracks/Control/Chi2NDF"), chi2ndf); registry.fill(HIST("Tracks/2Danalysis/EtaZvtx_sel8"), track.eta(), z); @@ -670,6 +710,14 @@ struct PseudorapidityDensityMFT { if (dcaxy_cut > maxDCAxy) continue; } + if constexpr (std::is_same_v>) { + float dcaz_cut = retrack.bestDCAZ(); + if (useDCAzCut) { + if (dcaz_cut > maxDCAz) + continue; + } + } + registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); if (midtracks.size() > 0 && retrack.ambDegree() > 0) { registry.fill(HIST("Tracks/EtaZvtx_gt0"), track.eta(), z); @@ -721,6 +769,9 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/TrackAmbDegree"), retrack.ambDegree()); registry.fill(HIST("Tracks/Control/DCAXY"), retrack.bestDCAXY()); + if constexpr (std::is_same_v>) { + registry.fill(HIST("Tracks/Control/DCAZ"), retrack.bestDCAZ()); + } int isAmbiguous = 0; if (retrack.ambDegree() > 1 && retrack.ambDegree() != 0) { @@ -735,6 +786,10 @@ struct PseudorapidityDensityMFT { track.eta()); registry.fill(HIST("Tracks/Control/amb/AmbVertexCorr"), track.collision_as().posZ(), z); + registry.fill(HIST("Tracks/Control/amb/DCAxy_amb"), retrack.bestDCAXY()); + if constexpr (std::is_same_v>) { + registry.fill(HIST("Tracks/Control/amb/DCAz_amb"), retrack.bestDCAZ()); + } registry.fill(HIST("Tracks/Control/TrackCount"), 3); if (track.collisionId() == retrack.bestCollisionId()) { registry.fill(HIST("Tracks/Control/TrackCount"), 5); @@ -755,6 +810,10 @@ struct PseudorapidityDensityMFT { track.eta()); registry.fill(HIST("Tracks/Control/nonamb/nonAmbVertexCorr"), track.collision_as().posZ(), z); + registry.fill(HIST("Tracks/Control/nonamb/DCAxy_nonamb"), retrack.bestDCAXY()); + if constexpr (std::is_same_v>) { + registry.fill(HIST("Tracks/Control/nonamb/DCAz_nonamb"), retrack.bestDCAZ()); + } registry.fill(HIST("Tracks/Control/TrackCount"), 4); if (track.collisionId() == retrack.bestCollisionId()) { registry.fill(HIST("Tracks/Control/TrackCount"), 6); @@ -774,6 +833,9 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/woOrp/woOrpVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 9); // without orphan + registry.fill(HIST("Tracks/Control/woOrp/DCAxy_woOrp"), retrack.bestDCAXY()); + if constexpr (std::is_same_v>) { + registry.fill(HIST("Tracks/Control/woOrp/DCAz_woOrp"), retrack.bestDCAZ()); } } } @@ -792,8 +854,26 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("EventSelection"), 7); } } +void processMultReassoc(CollwEv::iterator const& collision, + o2::aod::MFTTracks const& mft, + soa::SmallGroups const& retracks, + FiCentralTracks const& midtracks, aod::Tracks const& trk) + { + processMultReassocCommon(collision, mft, retracks, midtracks, trk); + } + + void processMultReassoc3d(CollwEv::iterator const& collision, + o2::aod::MFTTracks const& mft, + soa::SmallGroups const& retracks, + FiCentralTracks const& midtracks, aod::Tracks const& trk) + { + processMultReassocCommon(collision, mft, retracks, midtracks, trk); + } PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc, - "Process reco or data info", false); + "Process reco or data info", false); + + PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc3d, + "Process reco or data info (3d)", false); using ExColsCent = soa::Join; From 1d7ce1936bdd99bcb6fda5244f261cf34bf53154 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 8 Sep 2025 12:14:47 +0000 Subject: [PATCH 02/10] Please consider the following formatting changes --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index e722d2a659d..735f644bf15 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -145,14 +145,14 @@ struct PseudorapidityDensityMFT { void init(InitContext&) { if (static_cast(doprocessMult) + - static_cast(doprocessMultReassoc) + + static_cast(doprocessMultReassoc) + static_cast(doprocessMultReassoc3d) + static_cast(doprocessCountingCentrality) > 1) { LOGP(fatal, "Exactly one process function between processMult, " - "processMultReassoc, processMultReassoc3d, and processCountingCentrality should be " - "enabled!"); + "processMultReassoc, processMultReassoc3d, and processCountingCentrality should be " + "enabled!"); } AxisSpec MultAxis = {multBinning, "N_{trk}"}; auto hstat = registry.get(HIST("EventSelection")); @@ -325,8 +325,7 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/amb/EtaZvtxAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/amb/DCAxy_amb", " ; DCA_{xy} (cm) ambiguous", - {HistType::kTH1F, {DCAxyAxis}}}); + registry.add({"Tracks/Control/amb/DCAxy_amb", " ; DCA_{xy} (cm) ambiguous", {HistType::kTH1F, {DCAxyAxis}}}); registry.add({"Tracks/Control/nonamb/nonAmbTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -341,8 +340,7 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/nonamb/EtaZvtxNonAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", - {HistType::kTH1F, {{DCAxyAxis}}}}); // + registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", {HistType::kTH1F, {{DCAxyAxis}}}}); // registry.add({"Tracks/Control/woOrp/woOrpTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -350,8 +348,7 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/woOrp/woOrpEtaZvtx_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", - {HistType::kTH1F, {{DCAxyAxis}}}}); // + registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", {HistType::kTH1F, {{DCAxyAxis}}}}); // registry.add({"Tracks/2Danalysis/EtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // @@ -591,7 +588,7 @@ struct PseudorapidityDensityMFT { PROCESS_SWITCH(PseudorapidityDensityMFT, processMult, "Process reco or data info", true); -// Common implementation for both BestCollisionsFwd and BestCollisionsFwd3d + // Common implementation for both BestCollisionsFwd and BestCollisionsFwd3d template void processMultReassocCommon(CollwEv::iterator const& collision, o2::aod::MFTTracks const&, @@ -717,7 +714,7 @@ struct PseudorapidityDensityMFT { continue; } } - + registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); if (midtracks.size() > 0 && retrack.ambDegree() > 0) { registry.fill(HIST("Tracks/EtaZvtx_gt0"), track.eta(), z); @@ -836,7 +833,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/woOrp/DCAxy_woOrp"), retrack.bestDCAXY()); if constexpr (std::is_same_v>) { registry.fill(HIST("Tracks/Control/woOrp/DCAz_woOrp"), retrack.bestDCAZ()); - } + } } } registry.fill(HIST("ambEventCounts"), 1, uniqueEventsAmb.size()); @@ -854,7 +851,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("EventSelection"), 7); } } -void processMultReassoc(CollwEv::iterator const& collision, + void processMultReassoc(CollwEv::iterator const& collision, o2::aod::MFTTracks const& mft, soa::SmallGroups const& retracks, FiCentralTracks const& midtracks, aod::Tracks const& trk) @@ -870,10 +867,10 @@ void processMultReassoc(CollwEv::iterator const& collision, processMultReassocCommon(collision, mft, retracks, midtracks, trk); } PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc, - "Process reco or data info", false); + "Process reco or data info", false); PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc3d, - "Process reco or data info (3d)", false); + "Process reco or data info (3d)", false); using ExColsCent = soa::Join; From 22e778ebd5bfd4359278c158b45d5d2c287c879d Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Mon, 15 Sep 2025 19:41:24 +0100 Subject: [PATCH 03/10] Update dndeta-mft-pp.cxx --- PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 735f644bf15..ce80f1b21dd 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -14,7 +14,6 @@ // // \brief This code loops over MFT tracks and collisions and fills histograms // useful to compute dNdeta - #include "PWGMM/Mult/DataModel/bestCollisionTable.h" #include "Common/DataModel/Centrality.h" From 874d5b5bfde6f6c19d1e0e48298cc43c0df52e0b Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Thu, 18 Sep 2025 14:06:46 +0100 Subject: [PATCH 04/10] Update dndeta-mft-pp.cxx for error fixes --- PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index ce80f1b21dd..897874e4af1 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -745,10 +745,10 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/ReassignedTracksPhiEta"), phi, track.eta()); registry.fill(HIST("Tracks/Control/ReassignedVertexCorr"), - track.collision_as().posZ(), z); + track.template collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/DeltaZ"), - track.collision_as().posZ() - + track.template collision_as().posZ() - collision.posZ()); registry.fill(HIST("Tracks/Control/TrackCount"), 1); } @@ -758,7 +758,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/notReassignedTracksPhiEta"), phi, track.eta()); registry.fill(HIST("Tracks/Control/notReassignedVertexCorr"), - track.collision_as().posZ(), z); + track.template collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 2); } @@ -781,7 +781,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/amb/AmbTracksPhiEta"), phi, track.eta()); registry.fill(HIST("Tracks/Control/amb/AmbVertexCorr"), - track.collision_as().posZ(), z); + track.template collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/amb/DCAxy_amb"), retrack.bestDCAXY()); if constexpr (std::is_same_v>) { registry.fill(HIST("Tracks/Control/amb/DCAz_amb"), retrack.bestDCAZ()); @@ -805,7 +805,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksPhiEta"), phi, track.eta()); registry.fill(HIST("Tracks/Control/nonamb/nonAmbVertexCorr"), - track.collision_as().posZ(), z); + track.template collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/nonamb/DCAxy_nonamb"), retrack.bestDCAXY()); if constexpr (std::is_same_v>) { registry.fill(HIST("Tracks/Control/nonamb/DCAz_nonamb"), retrack.bestDCAZ()); @@ -827,7 +827,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksPhiEta"), phi, track.eta()); registry.fill(HIST("Tracks/Control/woOrp/woOrpVertexCorr"), - track.collision_as().posZ(), z); + track.template collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 9); // without orphan registry.fill(HIST("Tracks/Control/woOrp/DCAxy_woOrp"), retrack.bestDCAXY()); if constexpr (std::is_same_v>) { From 3bd26a8cfa5910d84f4c669e25f4e87ef5227cb8 Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Thu, 18 Sep 2025 16:41:52 +0100 Subject: [PATCH 05/10] Update on dndeta-mft-pp.cxx for error fix --- PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 897874e4af1..f0c2d7bb7f4 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -339,7 +339,7 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/nonamb/EtaZvtxNonAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", {HistType::kTH1F, {{DCAxyAxis}}}}); // + registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", {HistType::kTH1F, {DCAxyAxis}}}); // registry.add({"Tracks/Control/woOrp/woOrpTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -347,7 +347,7 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/woOrp/woOrpEtaZvtx_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", {HistType::kTH1F, {{DCAxyAxis}}}}); // + registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", {HistType::kTH1F, {DCAxyAxis}}}); // registry.add({"Tracks/2Danalysis/EtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // From 3857d99922435f36487bee2f5ce80897d4217106 Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Fri, 19 Sep 2025 22:44:59 +0100 Subject: [PATCH 06/10] Edited dndeta-mft-pp.cxx --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index f0c2d7bb7f4..63898e6f129 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -266,18 +266,18 @@ struct PseudorapidityDensityMFT { " ; isAmbiguous", {HistType::kTH1I, {{2, -0.5, 1.5}}}}); - auto htrk = registry.get(HIST("Tracks/Control/TrackCount")); - auto* x = htrk->GetXaxis(); - x->SetBinLabel(0, "All"); - x->SetBinLabel(1, "Reass"); - x->SetBinLabel(2, "Not Reass"); - x->SetBinLabel(3, "Amb"); - x->SetBinLabel(4, "Amb+Not-reass"); - x->SetBinLabel(5, "Non-Amb"); - x->SetBinLabel(6, "Not-Reass+Non-Amb"); - x->SetBinLabel(7, "Amb+Non-Amb"); - x->SetBinLabel(8, "colid<0"); - x->SetBinLabel(9, "wo orphan"); +auto htrk = registry.get(HIST("Tracks/Control/TrackCount")); +auto* x = htrk->GetXaxis(); +x->SetBinLabel(1, "All"); +x->SetBinLabel(2, "Reass"); +x->SetBinLabel(3, "Not Reass"); +x->SetBinLabel(4, "Amb"); +x->SetBinLabel(5, "Amb+Not-reass"); +x->SetBinLabel(6, "Non-Amb"); +x->SetBinLabel(7, "Not-Reass+Non-Amb"); +x->SetBinLabel(8, "Amb+Non-Amb"); +x->SetBinLabel(9, "colid<0"); +x->SetBinLabel(10, "wo orphan"); registry.add({"Tracks/Control/ReassignedTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -516,7 +516,16 @@ struct PseudorapidityDensityMFT { (aod::fwdtrack::eta > -3.9f) && (nabs(aod::fwdtrack::bestDCAXY) <= 2.f); using CollwEv = soa::Join; +// Forward declarations for reassociation processes +void processMultReassoc(CollwEv::iterator const& collision, + o2::aod::MFTTracks const& mft, + soa::SmallGroups const& retracks, + FiCentralTracks const& midtracks, aod::Tracks const& trk); +void processMultReassoc3d(CollwEv::iterator const& collision, + o2::aod::MFTTracks const& mft, + soa::SmallGroups const& retracks, + FiCentralTracks const& midtracks, aod::Tracks const& trk); expressions::Filter trackSelectionCentral = ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == From 419c42f82c134ed4c9ee5f4c8f17fe44ed7e17a6 Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Sat, 20 Sep 2025 10:18:38 +0100 Subject: [PATCH 07/10] Updated dndeta-mft-pp.cxx for 3d reass --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 281 +++++++++--------- 1 file changed, 143 insertions(+), 138 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 63898e6f129..d52045a49d3 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -1,76 +1,78 @@ -// Copyright 2020-2025 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -// \file dndeta-mft.cxx -// \author Sarah Herrmann -// -// \brief This code loops over MFT tracks and collisions and fills histograms -// useful to compute dNdeta -#include "PWGMM/Mult/DataModel/bestCollisionTable.h" - -#include "Common/DataModel/Centrality.h" -#include "Common/DataModel/EventSelection.h" -#include "Common/DataModel/Multiplicity.h" -#include "Common/DataModel/TrackSelectionTables.h" - -#include "CommonConstants/MathConstants.h" -#include "Framework/ASoAHelpers.h" -#include "Framework/AnalysisDataModel.h" -#include "Framework/AnalysisTask.h" -#include "Framework/Configurable.h" -#include "Framework/O2DatabasePDGPlugin.h" -#include "Framework/RuntimeError.h" -#include "Framework/runDataProcessing.h" -#include "MathUtils/Utils.h" -#include "ReconstructionDataFormats/GlobalTrackID.h" - -#include "TFile.h" - -#include -#include -#include -#include -#include -#include -#include - -using namespace o2; -using namespace o2::framework; -using namespace o2::framework::expressions; -using namespace o2::aod::track; - -AxisSpec PtAxis = {1001, -0.005, 10.005}; -AxisSpec DeltaZAxis = {61, -6.1, 6.1}; -AxisSpec ZAxis = {301, -30.1, 30.1}; -AxisSpec PhiAxis = {629, 0, o2::constants::math::TwoPI, "Rad", "phi axis"}; -// AxisSpec EtaAxis = {18, -4.6, -1.}; -AxisSpec DCAxyAxis = {5000, -1, 500}; -AxisSpec DCAzAxis = {5000, -251, 250}; -AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; - -static constexpr TrackSelectionFlags::flagtype trackSelectionITS = + + // Copyright 2020-2025 CERN and copyright holders of ALICE O2. + // See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. + // All rights not expressly granted are reserved. + // + // This software is distributed under the terms of the GNU General Public + // License v3 (GPL Version 3), copied verbatim in the file "COPYING". + // + // In applying this license, CERN does not waive the privileges and immunities + // granted to it by virtue of its status as an Intergovernmental Organization + // or submit itself to any jurisdiction. + + // \file dndeta-mft.cxx + // \author Sarah Herrmann + // + // \brief This code loops over MFT tracks and collisions and fills histograms + // useful to compute dNdeta + + #include "PWGMM/Mult/DataModel/bestCollisionTable.h" + + #include "Common/DataModel/Centrality.h" + #include "Common/DataModel/EventSelection.h" + #include "Common/DataModel/Multiplicity.h" + #include "Common/DataModel/TrackSelectionTables.h" + + #include "CommonConstants/MathConstants.h" + #include "Framework/ASoAHelpers.h" + #include "Framework/AnalysisDataModel.h" + #include "Framework/AnalysisTask.h" + #include "Framework/Configurable.h" + #include "Framework/O2DatabasePDGPlugin.h" + #include "Framework/RuntimeError.h" + #include "Framework/runDataProcessing.h" + #include "MathUtils/Utils.h" + #include "ReconstructionDataFormats/GlobalTrackID.h" + + #include "TFile.h" + + #include + #include + #include + #include + #include + #include + #include + + using namespace o2; + using namespace o2::framework; + using namespace o2::framework::expressions; + using namespace o2::aod::track; + + AxisSpec PtAxis = {1001, -0.005, 10.005}; + AxisSpec DeltaZAxis = {61, -6.1, 6.1}; + AxisSpec ZAxis = {301, -30.1, 30.1}; + AxisSpec PhiAxis = {629, 0, o2::constants::math::TwoPI, "Rad", "phi axis"}; + // AxisSpec EtaAxis = {18, -4.6, -1.}; + AxisSpec DCAxyAxis = {5000, -1, 500}; + AxisSpec DCAzAxis = {5000, -251, 250}; + AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; + + static constexpr TrackSelectionFlags::flagtype trackSelectionITS = TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | TrackSelectionFlags::kITSHits; -static constexpr TrackSelectionFlags::flagtype trackSelectionTPC = + static constexpr TrackSelectionFlags::flagtype trackSelectionTPC = TrackSelectionFlags::kTPCNCls | TrackSelectionFlags::kTPCCrossedRowsOverNCls | TrackSelectionFlags::kTPCChi2NDF; -static constexpr TrackSelectionFlags::flagtype trackSelectionDCA = + static constexpr TrackSelectionFlags::flagtype trackSelectionDCA = TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; -using MFTTracksLabeled = soa::Join; + using MFTTracksLabeled = soa::Join; -struct PseudorapidityDensityMFT { + struct PseudorapidityDensityMFT { SliceCache cache; Preslice perCol = o2::aod::fwdtrack::collisionId; Preslice perMcCol = aod::mcparticle::mcCollisionId; @@ -79,7 +81,7 @@ struct PseudorapidityDensityMFT { Service pdg; Configurable estimatorEta{"estimatorEta", 1.0, - "eta range for INEL>0 sample definition"}; + "eta range for INEL>0 sample definition"}; Configurable useEvSel{"useEvSel", true, "use event selection"}; Configurable disableITSROFCut{"disableITSROFCut", false, "Disable ITS ROF cut for event selection"}; @@ -94,12 +96,13 @@ struct PseudorapidityDensityMFT { Configurable usePhiCut{"usePhiCut", true, "use azimuthal angle cut"}; Configurable useDCAxyCut{"useDCAxyCut", false, "use DCAxy cut"}; Configurable useDCAzCut{"useDCAzCut", false, "use DCAz cut"}; + Configurable cfgPhiCut{"cfgPhiCut", 0.1f, "Cut on azimuthal angle of MFT tracks"}; Configurable cfgPhiCut1{"cfgPhiCut1", 0.0f, - "low Cut on azimuthal angle of MFT tracks"}; + "low Cut on azimuthal angle of MFT tracks"}; Configurable cfgPhiCut2{"cfgPhiCut2", 6.3f, - "high Cut on azimuthal angle of MFT tracks"}; + "high Cut on azimuthal angle of MFT tracks"}; Configurable cfgVzCut1{"cfgVzCut1", -30.0f, "Cut1 on vertex position of MFT tracks"}; Configurable cfgVzCut2{"cfgVzCut2", 30.0f, @@ -107,9 +110,9 @@ struct PseudorapidityDensityMFT { Configurable cfgnCluster{"cfgnCluster", 5.0f, "Cut on no of clusters per MFT track"}; Configurable cfgnEta1{"cfgnEta1", -4.5f, - "Cut on eta1"}; + "Cut on eta1"}; Configurable cfgnEta2{"cfgnEta2", -1.0f, - "Cut on eta1"}; + "Cut on eta1"}; Configurable cfgChi2NDFMax{"cfgChi2NDFMax", 2000.0f, "Max allowed chi2/NDF for MFT tracks"}; Configurable maxDCAxy{"maxDCAxy", 2.0f, "Cut on dcaXY"}; Configurable maxDCAz{"maxDCAz", 2.0f, "Cut on dcaZ"}; @@ -118,26 +121,26 @@ struct PseudorapidityDensityMFT { "registry", { {"TracksEtaZvtx", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // {"Tracks/EtaZvtx_gt0", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // {"TracksPhiEta", - "; #varphi; #eta; tracks", - {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // + "; #varphi; #eta; tracks", + {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // {"TracksPhiZvtx", - "; #varphi; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {PhiAxis, ZAxis}}}, // + "; #varphi; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {PhiAxis, ZAxis}}}, // {"TracksPtEta", - " ; p_{T} (GeV/c); #eta", - {HistType::kTH2F, {PtAxis, EtaAxis}}}, // + " ; p_{T} (GeV/c); #eta", + {HistType::kTH2F, {PtAxis, EtaAxis}}}, // {"EventSelection", - ";status;events", - {HistType::kTH1F, {{15, 0.5, 15.5}}}}, + ";status;events", + {HistType::kTH1F, {{15, 0.5, 15.5}}}}, {"EventCounts", - ";status;events", - {HistType::kTH1F, {{2, 0.5, 2.5}}}}, + ";status;events", + {HistType::kTH1F, {{2, 0.5, 2.5}}}}, {"Tracks/Control/TrackCount", ";status;Track counts", {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added }}; @@ -149,9 +152,9 @@ struct PseudorapidityDensityMFT { static_cast(doprocessCountingCentrality) > 1) { LOGP(fatal, - "Exactly one process function between processMult, " - "processMultReassoc, processMultReassoc3d, and processCountingCentrality should be " - "enabled!"); + "Exactly one process function between processMult, " + "processMultReassoc, processMultReassoc3d and processCountingCentrality should be " + "enabled!"); } AxisSpec MultAxis = {multBinning, "N_{trk}"}; auto hstat = registry.get(HIST("EventSelection")); @@ -266,18 +269,18 @@ struct PseudorapidityDensityMFT { " ; isAmbiguous", {HistType::kTH1I, {{2, -0.5, 1.5}}}}); -auto htrk = registry.get(HIST("Tracks/Control/TrackCount")); -auto* x = htrk->GetXaxis(); -x->SetBinLabel(1, "All"); -x->SetBinLabel(2, "Reass"); -x->SetBinLabel(3, "Not Reass"); -x->SetBinLabel(4, "Amb"); -x->SetBinLabel(5, "Amb+Not-reass"); -x->SetBinLabel(6, "Non-Amb"); -x->SetBinLabel(7, "Not-Reass+Non-Amb"); -x->SetBinLabel(8, "Amb+Non-Amb"); -x->SetBinLabel(9, "colid<0"); -x->SetBinLabel(10, "wo orphan"); + auto htrk = registry.get(HIST("Tracks/Control/TrackCount")); + auto* x = htrk->GetXaxis(); + x->SetBinLabel(0, "All"); + x->SetBinLabel(1, "Reass"); + x->SetBinLabel(2, "Not Reass"); + x->SetBinLabel(3, "Amb"); + x->SetBinLabel(4, "Amb+Not-reass"); + x->SetBinLabel(5, "Non-Amb"); + x->SetBinLabel(6, "Not-Reass+Non-Amb"); + x->SetBinLabel(7, "Amb+Non-Amb"); + x->SetBinLabel(8, "colid<0"); + x->SetBinLabel(9, "wo orphan"); registry.add({"Tracks/Control/ReassignedTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -324,7 +327,9 @@ x->SetBinLabel(10, "wo orphan"); registry.add({"Tracks/Control/amb/EtaZvtxAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/amb/DCAxy_amb", " ; DCA_{xy} (cm) ambiguous", {HistType::kTH1F, {DCAxyAxis}}}); + registry.add({"Tracks/Control/amb/DCAxy_amb", " ; DCA_{xy} (cm) ambiguous", + // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // + {HistType::kTH1F, {DCAxyAxis}}}); // registry.add({"Tracks/Control/nonamb/nonAmbTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -339,7 +344,9 @@ x->SetBinLabel(10, "wo orphan"); registry.add({"Tracks/Control/nonamb/EtaZvtxNonAmb_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", {HistType::kTH1F, {DCAxyAxis}}}); // + registry.add({"Tracks/Control/nonamb/DCAxy_nonamb", " ; DCA_{xy}(cm) non-ambiguous", + // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // + {HistType::kTH1F, {{DCAxyAxis}}}}); // registry.add({"Tracks/Control/woOrp/woOrpTracksEtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", @@ -347,7 +354,6 @@ x->SetBinLabel(10, "wo orphan"); registry.add({"Tracks/Control/woOrp/woOrpEtaZvtx_gt0", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // - registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", {HistType::kTH1F, {DCAxyAxis}}}); // registry.add({"Tracks/2Danalysis/EtaZvtx", "; #eta; #it{z}_{vtx} (cm); tracks", {HistType::kTH2F, {EtaAxis, ZAxis}}}); // @@ -366,7 +372,12 @@ x->SetBinLabel(10, "wo orphan"); registry.add({"Tracks/Control/woOrp/woOrpVertexCorr", "; #it{z}_{vtx}^{orig} (cm); #it{z}_{vtx}^{re} (cm)", {HistType::kTH2F, {ZAxis, ZAxis}}}); // + registry.add({"Tracks/Control/woOrp/DCAxy_woOrp", " ; DCA_{xy}(cm) w/o orphan", + // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // + {HistType::kTH1F, {{DCAxyAxis}}}}); // + if (doprocessMultReassoc3d) { + // DCAz histograms analogous to DCAxy, only for 3D reassociation registry.add({"Tracks/Control/DCAZ", " ; DCA_{Z} (cm)", {HistType::kTH1F, {DCAzAxis}}}); @@ -380,6 +391,7 @@ x->SetBinLabel(10, "wo orphan"); " ; DCA_{z}(cm) w/o orphan", {HistType::kTH1F, {DCAzAxis}}}); } + registry.add({"collisionID", " ; Collision ID", // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // @@ -452,7 +464,7 @@ x->SetBinLabel(10, "wo orphan"); x->SetBinLabel(2, "Selected"); registry.add("Events/Centrality/CentPercentileMCGen", - "CentPercentileMCGen", kTH1D, {CentAxis}, false); + "CentPercentileMCGen", kTH1D, {CentAxis}, false); registry.add({"Events/Centrality/NtrkZvtxGen", "; N_{trk}; Z_{vtx} (cm); centrality", {HistType::kTH3F, {MultAxis, ZAxis, CentAxis}}}); @@ -480,7 +492,7 @@ x->SetBinLabel(10, "wo orphan"); for (const auto& bc : bcs) { if (!useEvSel || (useEvSel && ((bc.selection_bit(aod::evsel::kIsBBT0A) && - bc.selection_bit(aod::evsel::kIsBBT0C)) != 0))) { + bc.selection_bit(aod::evsel::kIsBBT0C)) != 0))) { registry.fill(HIST("EventSelection"), 8); // added 5->12 cols.clear(); for (const auto& collision : collisions) { @@ -504,7 +516,7 @@ x->SetBinLabel(10, "wo orphan"); } PROCESS_SWITCH(PseudorapidityDensityMFT, processTagging, - "Collect event sample stats", true); + "Collect event sample stats", true); Partition sample = (aod::fwdtrack::eta < -2.8f) && (aod::fwdtrack::eta > -3.2f); @@ -516,23 +528,14 @@ x->SetBinLabel(10, "wo orphan"); (aod::fwdtrack::eta > -3.9f) && (nabs(aod::fwdtrack::bestDCAXY) <= 2.f); using CollwEv = soa::Join; -// Forward declarations for reassociation processes -void processMultReassoc(CollwEv::iterator const& collision, - o2::aod::MFTTracks const& mft, - soa::SmallGroups const& retracks, - FiCentralTracks const& midtracks, aod::Tracks const& trk); -void processMultReassoc3d(CollwEv::iterator const& collision, - o2::aod::MFTTracks const& mft, - soa::SmallGroups const& retracks, - FiCentralTracks const& midtracks, aod::Tracks const& trk); expressions::Filter trackSelectionCentral = ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == - (uint8_t)o2::aod::track::TPC, - (aod::track::trackCutFlag & trackSelectionTPC) == - trackSelectionTPC, - true) && + (uint8_t)o2::aod::track::TPC, + (aod::track::trackCutFlag & trackSelectionTPC) == + trackSelectionTPC, + true) && ((aod::track::trackCutFlag & trackSelectionDCA) == trackSelectionDCA) && (nabs(aod::track::eta) < estimatorEta); @@ -541,8 +544,8 @@ void processMultReassoc3d(CollwEv::iterator const& collision, aod::TracksDCA>>; // central tracks for INEL>0 void processMult(CollwEv::iterator const& collision, - aod::MFTTracks const& tracks, - FiCentralTracks const& midtracks, aod::Tracks const&) + aod::MFTTracks const& tracks, + FiCentralTracks const& midtracks, aod::Tracks const&) { registry.fill(HIST("EventSelection"), 1.); @@ -572,7 +575,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, ((phi > o2::constants::math::PI - cfgPhiCut) && (phi < o2::constants::math::PI + cfgPhiCut)) || (phi > o2::constants::math::TwoPI - cfgPhiCut) || ((phi > ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) - cfgPhiCut) && - (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) + (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) continue; } @@ -595,7 +598,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, } PROCESS_SWITCH(PseudorapidityDensityMFT, processMult, - "Process reco or data info", true); + "Process reco or data info", true); // Common implementation for both BestCollisionsFwd and BestCollisionsFwd3d template void processMultReassocCommon(CollwEv::iterator const& collision, @@ -706,6 +709,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, float phi = track.phi(); float dcaxy_cut = retrack.bestDCAXY(); o2::math_utils::bringTo02Pi(phi); + // Declare dcaz_cut only if needed below. if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && track.nClusters() >= cfgnCluster && chi2ndf < cfgChi2NDFMax && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) { if (usePhiCut) { if ((phi <= 0.02) || ((phi >= 3.10) && (phi <= 3.23)) || (phi >= 6.21)) @@ -722,7 +726,6 @@ void processMultReassoc3d(CollwEv::iterator const& collision, continue; } } - registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); if (midtracks.size() > 0 && retrack.ambDegree() > 0) { registry.fill(HIST("Tracks/EtaZvtx_gt0"), track.eta(), z); @@ -842,6 +845,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, if constexpr (std::is_same_v>) { registry.fill(HIST("Tracks/Control/woOrp/DCAz_woOrp"), retrack.bestDCAZ()); } + } } } registry.fill(HIST("ambEventCounts"), 1, uniqueEventsAmb.size()); @@ -859,6 +863,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, registry.fill(HIST("EventSelection"), 7); } } + void processMultReassoc(CollwEv::iterator const& collision, o2::aod::MFTTracks const& mft, soa::SmallGroups const& retracks, @@ -875,15 +880,15 @@ void processMultReassoc3d(CollwEv::iterator const& collision, processMultReassocCommon(collision, mft, retracks, midtracks, trk); } PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc, - "Process reco or data info", false); + "Process reco or data info", false); PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc3d, - "Process reco or data info (3d)", false); + "Process reco or data info (3d)", false); using ExColsCent = soa::Join; void processCountingCentrality(ExColsCent::iterator const& collision, - aod::MFTTracks const& tracks) + aod::MFTTracks const& tracks) { auto c = collision.centFT0C(); registry.fill(HIST("Events/Centrality/Selection"), 1., c); @@ -907,7 +912,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, ((phi > o2::constants::math::PI - cfgPhiCut) && (phi < o2::constants::math::PI + cfgPhiCut)) || (phi > o2::constants::math::TwoPI - cfgPhiCut) || ((phi > ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) - cfgPhiCut) && - (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) + (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) continue; } @@ -922,12 +927,12 @@ void processMultReassoc3d(CollwEv::iterator const& collision, } PROCESS_SWITCH(PseudorapidityDensityMFT, processCountingCentrality, - "Count tracks in centrality bins", false); + "Count tracks in centrality bins", false); using Particles = soa::Filtered; expressions::Filter primaries = (aod::mcparticle::flags & - (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == + (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary; Partition mcSample = nabs(aod::mcparticle::eta) < 1.1f; Partition mcSampleCentral = @@ -936,7 +941,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, void processGen( aod::McCollisions::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, + aod::McCollisionLabels>> const& collisions, Particles const& particles, aod::MFTTracks const& /*tracks*/, FiCentralTracks const& midtracks) { @@ -986,7 +991,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, int moreThanOne = 0; LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), - collisions.size()); + collisions.size()); for (const auto& collision : collisions) { registry.fill(HIST("EventEfficiency"), 3.); if (!disableITSROFCut && !collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) { @@ -1073,11 +1078,11 @@ void processMultReassoc3d(CollwEv::iterator const& collision, } PROCESS_SWITCH(PseudorapidityDensityMFT, processGen, - "Process generator-level info", false); + "Process generator-level info", false); using ExColsGenCent = soa::SmallGroups>; + aod::CentFT0Cs, aod::EvSels>>; void processGenCent(aod::McCollisions::iterator const& mcCollision, ExColsGenCent const& collisions, @@ -1086,7 +1091,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, { LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), - collisions.size()); + collisions.size()); float c_gen = -1; bool atLeastOne = false; @@ -1165,7 +1170,7 @@ void processMultReassoc3d(CollwEv::iterator const& collision, } PROCESS_SWITCH(PseudorapidityDensityMFT, processGenCent, - "Process generator-level info in centrality bins", false); + "Process generator-level info in centrality bins", false); void processGenPt( soa::Join::iterator const& collision, @@ -1186,10 +1191,10 @@ void processMultReassoc3d(CollwEv::iterator const& collision, } PROCESS_SWITCH(PseudorapidityDensityMFT, processGenPt, - "Process particle-level info of pt", false); -}; + "Process particle-level info of pt", false); + }; -WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) -{ + WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) + { return WorkflowSpec{adaptAnalysisTask(cfgc)}; -} + } From 11cf7ab5c51907d6b45ecb649f8fc060ad9bbec1 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Sat, 20 Sep 2025 09:19:14 +0000 Subject: [PATCH 08/10] Please consider the following formatting changes --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 228 +++++++++--------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index d52045a49d3..77b1764ff02 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -1,78 +1,78 @@ - // Copyright 2020-2025 CERN and copyright holders of ALICE O2. - // See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. - // All rights not expressly granted are reserved. - // - // This software is distributed under the terms of the GNU General Public - // License v3 (GPL Version 3), copied verbatim in the file "COPYING". - // - // In applying this license, CERN does not waive the privileges and immunities - // granted to it by virtue of its status as an Intergovernmental Organization - // or submit itself to any jurisdiction. - - // \file dndeta-mft.cxx - // \author Sarah Herrmann - // - // \brief This code loops over MFT tracks and collisions and fills histograms - // useful to compute dNdeta - - #include "PWGMM/Mult/DataModel/bestCollisionTable.h" - - #include "Common/DataModel/Centrality.h" - #include "Common/DataModel/EventSelection.h" - #include "Common/DataModel/Multiplicity.h" - #include "Common/DataModel/TrackSelectionTables.h" - - #include "CommonConstants/MathConstants.h" - #include "Framework/ASoAHelpers.h" - #include "Framework/AnalysisDataModel.h" - #include "Framework/AnalysisTask.h" - #include "Framework/Configurable.h" - #include "Framework/O2DatabasePDGPlugin.h" - #include "Framework/RuntimeError.h" - #include "Framework/runDataProcessing.h" - #include "MathUtils/Utils.h" - #include "ReconstructionDataFormats/GlobalTrackID.h" - - #include "TFile.h" - - #include - #include - #include - #include - #include - #include - #include - - using namespace o2; - using namespace o2::framework; - using namespace o2::framework::expressions; - using namespace o2::aod::track; - - AxisSpec PtAxis = {1001, -0.005, 10.005}; - AxisSpec DeltaZAxis = {61, -6.1, 6.1}; - AxisSpec ZAxis = {301, -30.1, 30.1}; - AxisSpec PhiAxis = {629, 0, o2::constants::math::TwoPI, "Rad", "phi axis"}; - // AxisSpec EtaAxis = {18, -4.6, -1.}; - AxisSpec DCAxyAxis = {5000, -1, 500}; - AxisSpec DCAzAxis = {5000, -251, 250}; - AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; - - static constexpr TrackSelectionFlags::flagtype trackSelectionITS = +// Copyright 2020-2025 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license, CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +// \file dndeta-mft.cxx +// \author Sarah Herrmann +// +// \brief This code loops over MFT tracks and collisions and fills histograms +// useful to compute dNdeta + +#include "PWGMM/Mult/DataModel/bestCollisionTable.h" + +#include "Common/DataModel/Centrality.h" +#include "Common/DataModel/EventSelection.h" +#include "Common/DataModel/Multiplicity.h" +#include "Common/DataModel/TrackSelectionTables.h" + +#include "CommonConstants/MathConstants.h" +#include "Framework/ASoAHelpers.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" +#include "Framework/Configurable.h" +#include "Framework/O2DatabasePDGPlugin.h" +#include "Framework/RuntimeError.h" +#include "Framework/runDataProcessing.h" +#include "MathUtils/Utils.h" +#include "ReconstructionDataFormats/GlobalTrackID.h" + +#include "TFile.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace o2; +using namespace o2::framework; +using namespace o2::framework::expressions; +using namespace o2::aod::track; + +AxisSpec PtAxis = {1001, -0.005, 10.005}; +AxisSpec DeltaZAxis = {61, -6.1, 6.1}; +AxisSpec ZAxis = {301, -30.1, 30.1}; +AxisSpec PhiAxis = {629, 0, o2::constants::math::TwoPI, "Rad", "phi axis"}; +// AxisSpec EtaAxis = {18, -4.6, -1.}; +AxisSpec DCAxyAxis = {5000, -1, 500}; +AxisSpec DCAzAxis = {5000, -251, 250}; +AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; + +static constexpr TrackSelectionFlags::flagtype trackSelectionITS = TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | TrackSelectionFlags::kITSHits; - static constexpr TrackSelectionFlags::flagtype trackSelectionTPC = +static constexpr TrackSelectionFlags::flagtype trackSelectionTPC = TrackSelectionFlags::kTPCNCls | TrackSelectionFlags::kTPCCrossedRowsOverNCls | TrackSelectionFlags::kTPCChi2NDF; - static constexpr TrackSelectionFlags::flagtype trackSelectionDCA = +static constexpr TrackSelectionFlags::flagtype trackSelectionDCA = TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; - using MFTTracksLabeled = soa::Join; +using MFTTracksLabeled = soa::Join; - struct PseudorapidityDensityMFT { +struct PseudorapidityDensityMFT { SliceCache cache; Preslice perCol = o2::aod::fwdtrack::collisionId; Preslice perMcCol = aod::mcparticle::mcCollisionId; @@ -81,7 +81,7 @@ Service pdg; Configurable estimatorEta{"estimatorEta", 1.0, - "eta range for INEL>0 sample definition"}; + "eta range for INEL>0 sample definition"}; Configurable useEvSel{"useEvSel", true, "use event selection"}; Configurable disableITSROFCut{"disableITSROFCut", false, "Disable ITS ROF cut for event selection"}; @@ -100,9 +100,9 @@ Configurable cfgPhiCut{"cfgPhiCut", 0.1f, "Cut on azimuthal angle of MFT tracks"}; Configurable cfgPhiCut1{"cfgPhiCut1", 0.0f, - "low Cut on azimuthal angle of MFT tracks"}; + "low Cut on azimuthal angle of MFT tracks"}; Configurable cfgPhiCut2{"cfgPhiCut2", 6.3f, - "high Cut on azimuthal angle of MFT tracks"}; + "high Cut on azimuthal angle of MFT tracks"}; Configurable cfgVzCut1{"cfgVzCut1", -30.0f, "Cut1 on vertex position of MFT tracks"}; Configurable cfgVzCut2{"cfgVzCut2", 30.0f, @@ -110,9 +110,9 @@ Configurable cfgnCluster{"cfgnCluster", 5.0f, "Cut on no of clusters per MFT track"}; Configurable cfgnEta1{"cfgnEta1", -4.5f, - "Cut on eta1"}; + "Cut on eta1"}; Configurable cfgnEta2{"cfgnEta2", -1.0f, - "Cut on eta1"}; + "Cut on eta1"}; Configurable cfgChi2NDFMax{"cfgChi2NDFMax", 2000.0f, "Max allowed chi2/NDF for MFT tracks"}; Configurable maxDCAxy{"maxDCAxy", 2.0f, "Cut on dcaXY"}; Configurable maxDCAz{"maxDCAz", 2.0f, "Cut on dcaZ"}; @@ -121,26 +121,26 @@ "registry", { {"TracksEtaZvtx", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // {"Tracks/EtaZvtx_gt0", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // {"TracksPhiEta", - "; #varphi; #eta; tracks", - {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // + "; #varphi; #eta; tracks", + {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // {"TracksPhiZvtx", - "; #varphi; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {PhiAxis, ZAxis}}}, // + "; #varphi; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {PhiAxis, ZAxis}}}, // {"TracksPtEta", - " ; p_{T} (GeV/c); #eta", - {HistType::kTH2F, {PtAxis, EtaAxis}}}, // + " ; p_{T} (GeV/c); #eta", + {HistType::kTH2F, {PtAxis, EtaAxis}}}, // {"EventSelection", - ";status;events", - {HistType::kTH1F, {{15, 0.5, 15.5}}}}, + ";status;events", + {HistType::kTH1F, {{15, 0.5, 15.5}}}}, {"EventCounts", - ";status;events", - {HistType::kTH1F, {{2, 0.5, 2.5}}}}, + ";status;events", + {HistType::kTH1F, {{2, 0.5, 2.5}}}}, {"Tracks/Control/TrackCount", ";status;Track counts", {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added }}; @@ -152,9 +152,9 @@ static_cast(doprocessCountingCentrality) > 1) { LOGP(fatal, - "Exactly one process function between processMult, " - "processMultReassoc, processMultReassoc3d and processCountingCentrality should be " - "enabled!"); + "Exactly one process function between processMult, " + "processMultReassoc, processMultReassoc3d and processCountingCentrality should be " + "enabled!"); } AxisSpec MultAxis = {multBinning, "N_{trk}"}; auto hstat = registry.get(HIST("EventSelection")); @@ -464,7 +464,7 @@ x->SetBinLabel(2, "Selected"); registry.add("Events/Centrality/CentPercentileMCGen", - "CentPercentileMCGen", kTH1D, {CentAxis}, false); + "CentPercentileMCGen", kTH1D, {CentAxis}, false); registry.add({"Events/Centrality/NtrkZvtxGen", "; N_{trk}; Z_{vtx} (cm); centrality", {HistType::kTH3F, {MultAxis, ZAxis, CentAxis}}}); @@ -492,7 +492,7 @@ for (const auto& bc : bcs) { if (!useEvSel || (useEvSel && ((bc.selection_bit(aod::evsel::kIsBBT0A) && - bc.selection_bit(aod::evsel::kIsBBT0C)) != 0))) { + bc.selection_bit(aod::evsel::kIsBBT0C)) != 0))) { registry.fill(HIST("EventSelection"), 8); // added 5->12 cols.clear(); for (const auto& collision : collisions) { @@ -516,7 +516,7 @@ } PROCESS_SWITCH(PseudorapidityDensityMFT, processTagging, - "Collect event sample stats", true); + "Collect event sample stats", true); Partition sample = (aod::fwdtrack::eta < -2.8f) && (aod::fwdtrack::eta > -3.2f); @@ -532,10 +532,10 @@ expressions::Filter trackSelectionCentral = ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == - (uint8_t)o2::aod::track::TPC, - (aod::track::trackCutFlag & trackSelectionTPC) == - trackSelectionTPC, - true) && + (uint8_t)o2::aod::track::TPC, + (aod::track::trackCutFlag & trackSelectionTPC) == + trackSelectionTPC, + true) && ((aod::track::trackCutFlag & trackSelectionDCA) == trackSelectionDCA) && (nabs(aod::track::eta) < estimatorEta); @@ -544,8 +544,8 @@ aod::TracksDCA>>; // central tracks for INEL>0 void processMult(CollwEv::iterator const& collision, - aod::MFTTracks const& tracks, - FiCentralTracks const& midtracks, aod::Tracks const&) + aod::MFTTracks const& tracks, + FiCentralTracks const& midtracks, aod::Tracks const&) { registry.fill(HIST("EventSelection"), 1.); @@ -575,7 +575,7 @@ ((phi > o2::constants::math::PI - cfgPhiCut) && (phi < o2::constants::math::PI + cfgPhiCut)) || (phi > o2::constants::math::TwoPI - cfgPhiCut) || ((phi > ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) - cfgPhiCut) && - (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) + (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) continue; } @@ -598,7 +598,7 @@ } PROCESS_SWITCH(PseudorapidityDensityMFT, processMult, - "Process reco or data info", true); + "Process reco or data info", true); // Common implementation for both BestCollisionsFwd and BestCollisionsFwd3d template void processMultReassocCommon(CollwEv::iterator const& collision, @@ -880,15 +880,15 @@ processMultReassocCommon(collision, mft, retracks, midtracks, trk); } PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc, - "Process reco or data info", false); + "Process reco or data info", false); PROCESS_SWITCH(PseudorapidityDensityMFT, processMultReassoc3d, - "Process reco or data info (3d)", false); + "Process reco or data info (3d)", false); using ExColsCent = soa::Join; void processCountingCentrality(ExColsCent::iterator const& collision, - aod::MFTTracks const& tracks) + aod::MFTTracks const& tracks) { auto c = collision.centFT0C(); registry.fill(HIST("Events/Centrality/Selection"), 1., c); @@ -912,7 +912,7 @@ ((phi > o2::constants::math::PI - cfgPhiCut) && (phi < o2::constants::math::PI + cfgPhiCut)) || (phi > o2::constants::math::TwoPI - cfgPhiCut) || ((phi > ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) - cfgPhiCut) && - (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) + (phi < ((o2::constants::math::PIHalf - 0.1) * o2::constants::math::PI) + cfgPhiCut))) continue; } @@ -927,12 +927,12 @@ } PROCESS_SWITCH(PseudorapidityDensityMFT, processCountingCentrality, - "Count tracks in centrality bins", false); + "Count tracks in centrality bins", false); using Particles = soa::Filtered; expressions::Filter primaries = (aod::mcparticle::flags & - (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == + (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary; Partition mcSample = nabs(aod::mcparticle::eta) < 1.1f; Partition mcSampleCentral = @@ -941,7 +941,7 @@ void processGen( aod::McCollisions::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, + aod::McCollisionLabels>> const& collisions, Particles const& particles, aod::MFTTracks const& /*tracks*/, FiCentralTracks const& midtracks) { @@ -991,7 +991,7 @@ int moreThanOne = 0; LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), - collisions.size()); + collisions.size()); for (const auto& collision : collisions) { registry.fill(HIST("EventEfficiency"), 3.); if (!disableITSROFCut && !collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) { @@ -1078,11 +1078,11 @@ } PROCESS_SWITCH(PseudorapidityDensityMFT, processGen, - "Process generator-level info", false); + "Process generator-level info", false); using ExColsGenCent = soa::SmallGroups>; + aod::CentFT0Cs, aod::EvSels>>; void processGenCent(aod::McCollisions::iterator const& mcCollision, ExColsGenCent const& collisions, @@ -1091,7 +1091,7 @@ { LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), - collisions.size()); + collisions.size()); float c_gen = -1; bool atLeastOne = false; @@ -1170,7 +1170,7 @@ } PROCESS_SWITCH(PseudorapidityDensityMFT, processGenCent, - "Process generator-level info in centrality bins", false); + "Process generator-level info in centrality bins", false); void processGenPt( soa::Join::iterator const& collision, @@ -1191,10 +1191,10 @@ } PROCESS_SWITCH(PseudorapidityDensityMFT, processGenPt, - "Process particle-level info of pt", false); - }; + "Process particle-level info of pt", false); +}; - WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) - { +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ return WorkflowSpec{adaptAnalysisTask(cfgc)}; - } +} From 2f481429984d40ec706294c3a4d4fbfd9eea6011 Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Sat, 20 Sep 2025 10:39:22 +0100 Subject: [PATCH 09/10] Update dndeta-mft-pp.cxx --- PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 77b1764ff02..defc8c53cf0 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -6,7 +6,7 @@ // This software is distributed under the terms of the GNU General Public // License v3 (GPL Version 3), copied verbatim in the file "COPYING". // -// In applying this license, CERN does not waive the privileges and immunities +// In applying this license CERN does not waive the privileges and immunities // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. From 76e3b1a8b547a09e07db7e17d0a90c1e18fb8574 Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Sat, 20 Sep 2025 10:45:14 +0100 Subject: [PATCH 10/10] Update dndeta-mft-pp.cxx --- PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index defc8c53cf0..e75c5e32371 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -1,4 +1,3 @@ - // Copyright 2020-2025 CERN and copyright holders of ALICE O2. // See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. // All rights not expressly granted are reserved.