From 53c24e8dcf40102286a987fea176890d57aa5fa1 Mon Sep 17 00:00:00 2001 From: m-rasa Date: Thu, 22 Oct 2026 23:24:34 +0200 Subject: [PATCH 1/4] Fixing VertexZ and Occupancy selection cut --- PWGUD/Tasks/sgDeuteronSpectra.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/PWGUD/Tasks/sgDeuteronSpectra.cxx b/PWGUD/Tasks/sgDeuteronSpectra.cxx index 93c697908f8..9397ff078aa 100644 --- a/PWGUD/Tasks/sgDeuteronSpectra.cxx +++ b/PWGUD/Tasks/sgDeuteronSpectra.cxx @@ -53,6 +53,8 @@ struct SgDeuteronSpectra { Configurable etaCut{"etaCut", 0.9, "Track Pseudorapidity"}; Configurable ptCut{"ptCut", 0.1, "Track Pt"}; Configurable nsigmatpcPreselCut{"nsigmatpcPreselCut", 3.0, "nsigma TPC preselection cut for TOF analysis"}; + Configurable occupancyCut{"occupancyCut", 1000, "Occupancy cut"}; + Configurable vertexZCut{"vertexZCut", 10, "VertexZ cut"}; // Configurable axis for histograms ConfigurableAxis ptAxis{"ptAxis", {200, 0.0, 10.0}, "p_{T}"}; @@ -68,6 +70,7 @@ struct SgDeuteronSpectra { const AxisSpec axistof{nSigmaAxis, "n#sigma_{TOF}"}; // Collision histograms + registry.add("collisions/VertexZ", "", {HistType::kTH1F, {{800, -20, 20}}}); registry.add("collisions/GapSide", "Gap Side: A, C, A+C", {HistType::kTH1F, {{3, -0.5, 2.5}}}); registry.add("collisions/TrueGapSide", "Gap Side: A, C, A+C", {HistType::kTH1F, {{4, -1.5, 2.5}}}); registry.add("tracks/Deut_Pt_TPC_GapA", "", {HistType::kTH2F, {axispt, axistpc}}); @@ -91,12 +94,21 @@ struct SgDeuteronSpectra { } // Define data types - using UDCollisionsFull = soa::Join; // UDCollisions + using UDCollisionsFull = soa::Join; void process(UDCollisionFull const& coll, UDTracksFull const& tracks) { + registry.fill(HIST("collisions/VertexZ"), coll.posZ()); + // applying event cuts + if (std::abs(coll.posZ()) > vertexZCut) { + return; + } + if (coll.occupancyInTime() > occupancyCut) { + return; + } + // fill gapside registry.fill(HIST("collisions/GapSide"), coll.gapSide(), 1.); std::vector fitCut = {fv0Cut, ft0aCut, ft0cCut, fddaCut, fddcCut}; int truegapSide = sgSelector.trueGap(coll, fitCut[0], fitCut[1], fitCut[2], zdcCut); From 0756d9de3a505fc2d3f74c6893d7cc0a13983f59 Mon Sep 17 00:00:00 2001 From: m-rasa Date: Thu, 22 Oct 2026 23:31:02 +0200 Subject: [PATCH 2/4] Fixing declaration of data type --- PWGUD/Tasks/sgDeuteronSpectra.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGUD/Tasks/sgDeuteronSpectra.cxx b/PWGUD/Tasks/sgDeuteronSpectra.cxx index 9397ff078aa..64f10e8d23a 100644 --- a/PWGUD/Tasks/sgDeuteronSpectra.cxx +++ b/PWGUD/Tasks/sgDeuteronSpectra.cxx @@ -94,7 +94,7 @@ struct SgDeuteronSpectra { } // Define data types - using UDCollisionsFull = soa::Join; // UDCollisions using UDCollisionFull = UDCollisionsFull::iterator; using UDTracksFull = soa::Join; From f57a814c477073195abd259089940c18ba30abc0 Mon Sep 17 00:00:00 2001 From: m-rasa Date: Tue, 27 Oct 2026 12:13:07 +0100 Subject: [PATCH 3/4] Add proper event selection cuts --- PWGUD/Tasks/sgDeuteronSpectra.cxx | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/PWGUD/Tasks/sgDeuteronSpectra.cxx b/PWGUD/Tasks/sgDeuteronSpectra.cxx index 64f10e8d23a..109afa51a79 100644 --- a/PWGUD/Tasks/sgDeuteronSpectra.cxx +++ b/PWGUD/Tasks/sgDeuteronSpectra.cxx @@ -55,6 +55,8 @@ struct SgDeuteronSpectra { Configurable nsigmatpcPreselCut{"nsigmatpcPreselCut", 3.0, "nsigma TPC preselection cut for TOF analysis"}; Configurable occupancyCut{"occupancyCut", 1000, "Occupancy cut"}; Configurable vertexZCut{"vertexZCut", 10, "VertexZ cut"}; + Configurable maxTracks{"maxTracks", 100, "Maximum number of tracks in the event"}; + Configurable useVtxFT0Cut{"useVtxFT0Cut", true, "Use zVtxFT0vPV cut in event selection"}; // Configurable axis for histograms ConfigurableAxis ptAxis{"ptAxis", {200, 0.0, 10.0}, "p_{T}"}; @@ -70,6 +72,7 @@ struct SgDeuteronSpectra { const AxisSpec axistof{nSigmaAxis, "n#sigma_{TOF}"}; // Collision histograms + registry.add("collisions/selectionCuts", "", {HistType::kTH1F, {{8, -0.5, 7.5}}}); registry.add("collisions/VertexZ", "", {HistType::kTH1F, {{800, -20, 20}}}); registry.add("collisions/GapSide", "Gap Side: A, C, A+C", {HistType::kTH1F, {{3, -0.5, 2.5}}}); registry.add("collisions/TrueGapSide", "Gap Side: A, C, A+C", {HistType::kTH1F, {{4, -1.5, 2.5}}}); @@ -101,13 +104,44 @@ struct SgDeuteronSpectra { void process(UDCollisionFull const& coll, UDTracksFull const& tracks) { registry.fill(HIST("collisions/VertexZ"), coll.posZ()); + registry.fill(HIST("collisions/selectionCuts"), 0); // applying event cuts + if (!coll.tfb()) { + return; + } + registry.fill(HIST("collisions/selectionCuts"), 1); + if (!coll.itsROFb()) { + return; + } + registry.fill(HIST("collisions/selectionCuts"), 2); + if (!coll.sbp()) { + return; + } + registry.fill(HIST("collisions/selectionCuts"), 3); + if (useVtxFT0Cut) { + if (!coll.zVtxFT0vPV()) { + return; + } + registry.fill(HIST("collisions/selectionCuts"), 4); + } else { + registry.fill(HIST("collisions/selectionCuts"), 4); + } + if (!coll.vtxITSTPC()) { + return; + } + registry.fill(HIST("collisions/selectionCuts"), 5); if (std::abs(coll.posZ()) > vertexZCut) { return; } + registry.fill(HIST("collisions/selectionCuts"), 6); if (coll.occupancyInTime() > occupancyCut) { return; } + registry.fill(HIST("collisions/selectionCuts"), 7); + if (tracks.size() > maxTracks) { + return; + } + registry.fill(HIST("collisions/selectionCuts"), 8); // fill gapside registry.fill(HIST("collisions/GapSide"), coll.gapSide(), 1.); std::vector fitCut = {fv0Cut, ft0aCut, ft0cCut, fddaCut, fddcCut}; From 1a6b99595efc0097dee8f804082f26b6037b7484 Mon Sep 17 00:00:00 2001 From: m-rasa Date: Tue, 27 Oct 2026 15:19:34 +0100 Subject: [PATCH 4/4] Cancel repeated line (redefinition) --- PWGUD/Tasks/sgDeuteronSpectra.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGUD/Tasks/sgDeuteronSpectra.cxx b/PWGUD/Tasks/sgDeuteronSpectra.cxx index 9b0e09f83b2..109afa51a79 100644 --- a/PWGUD/Tasks/sgDeuteronSpectra.cxx +++ b/PWGUD/Tasks/sgDeuteronSpectra.cxx @@ -98,7 +98,6 @@ struct SgDeuteronSpectra { // Define data types using UDCollisionsFull = soa::Join; // UDCollisions - using UDCollisionsFull = soa::Join; // UDCollisions using UDCollisionFull = UDCollisionsFull::iterator; using UDTracksFull = soa::Join;