From 5ac918df5e378c4f387c0fc77f840e9ed2c9d228 Mon Sep 17 00:00:00 2001 From: Anton Alkin Date: Tue, 5 Sep 2023 08:13:24 +0200 Subject: [PATCH 1/2] response study --- PWGMM/Mult/Tasks/dndeta.cxx | 59 ++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/PWGMM/Mult/Tasks/dndeta.cxx b/PWGMM/Mult/Tasks/dndeta.cxx index 93c6e7a160b..891758d5172 100644 --- a/PWGMM/Mult/Tasks/dndeta.cxx +++ b/PWGMM/Mult/Tasks/dndeta.cxx @@ -86,6 +86,7 @@ struct MultiplicityCounter { Configurable estimatorEta{"estimatorEta", 1.0, "eta range for INEL>0 sample definition"}; Configurable useEvSel{"useEvSel", true, "use event selection"}; Configurable fillResponse{"fillResponse", false, "Fill response matrix"}; + Configurable responseStudy{"responseStudy", false, "Fill multi-estimator response"}; ConfigurableAxis multBinning{"multBinning", {301, -0.5, 300.5}, ""}; ConfigurableAxis centBinning{"centBinning", {VARIABLE_WIDTH, 0, 10, 20, 30, 40, 50, 60, 70, 80, 100}, ""}; @@ -103,8 +104,9 @@ struct MultiplicityCounter { void init(InitContext&) { - AxisSpec MultAxis = {multBinning, "N_{trk}"}; + AxisSpec MultAxis = {multBinning}; AxisSpec CentAxis = {centBinning, "centrality"}; + AxisSpec FT0Axis = {1001, -0.5, 1000.5}; auto hstat = registry.get(HIST("Events/BCSelection")); auto* x = hstat->GetXaxis(); @@ -195,6 +197,10 @@ struct MultiplicityCounter { registry.add({"Events/Response", " ; N_{rec}; N_{gen}; Z_{vtx} (cm)", {HistType::kTHnSparseF, {MultAxis, MultAxis, ZAxis}}}); registry.add({"Events/EfficiencyMult", " ; N_{gen}; Z_{vtx} (cm)", {HistType::kTH2F, {MultAxis, ZAxis}}}); registry.add({"Events/SplitMult", " ; N_{gen} ; Z_{vtx} (cm)", {HistType::kTH2F, {MultAxis, ZAxis}}}); + if (responseStudy) { + registry.add({"Events/Control/MultiResponse", " ; N_{gen}; N_{rec}; N_{PV cont}; N_{FT0A}; N_{FT0C}; Z_{vtx} (cm)", + {HistType::kTHnSparseF, {MultAxis, MultAxis, MultAxis, FT0Axis, FT0Axis, ZAxis}}}); + } } auto heff = registry.get(HIST("Events/Efficiency")); @@ -226,6 +232,10 @@ struct MultiplicityCounter { registry.add({"Events/Centrality/Response", " ; N_{rec}; N_{gen}; Z_{vtx} (cm); centrality", {HistType::kTHnSparseF, {MultAxis, MultAxis, ZAxis, CentAxis}}}); registry.add({"Events/Centrality/EfficiencyMult", " ; N_{gen}; Z_{vtx} (cm); centrality", {HistType::kTHnSparseF, {MultAxis, ZAxis, CentAxis}}}); registry.add({"Events/Centrality/SplitMult", " ; N_{gen} ; Z_{vtx} (cm); centrality", {HistType::kTHnSparseF, {MultAxis, ZAxis, CentAxis}}}); + if (responseStudy) { + registry.add({"Events/Centrality/Control/MultiResponse", " ; N_{gen}; N_{rec}, N_{PV cont}; N_{FT0A}; N_{FT0C}; Z_{vtx} (cm); centrality", + {HistType::kTHnSparseF, {MultAxis, MultAxis, MultAxis, FT0Axis, FT0Axis, ZAxis, CentAxis}}}); + } } auto heff = registry.get(HIST("Events/Centrality/Efficiency")); @@ -863,6 +873,9 @@ struct MultiplicityCounter { auto Nrec = 0; std::vector NrecPerCol; std::vector c_recPerCol; + std::vector NPVPerCol; + std::vector NFT0APerCol; + std::vector NFT0CPerCol; for (auto& collision : collisions) { usedTracksIds.clear(); @@ -911,6 +924,24 @@ struct MultiplicityCounter { } } NrecPerCol.emplace_back(Nrec); + NPVPerCol.emplace_back(collision.numContrib()); + if (collision.has_foundFT0()) { + auto ft0 = collision.foundFT0(); + float tA = 0; + float tC = 0; + for (auto i=0u; i < ft0.amplitudeA().size(); ++i) { + tA += ft0.amplitudeA()[i]; + } + for (auto i=0u; i < ft0.amplitudeC().size(); ++i) { + tC += ft0.amplitudeC()[i]; + } + NFT0APerCol.emplace_back(tA); + NFT0CPerCol.emplace_back(tC); + } else { + NFT0APerCol.emplace_back(-1); + NFT0CPerCol.emplace_back(-1); + } + if constexpr (hasCentrality) { registry.fill(HIST("Events/Centrality/Efficiency"), 4., c_gen); @@ -940,9 +971,15 @@ struct MultiplicityCounter { if constexpr (hasCentrality) { registry.fill(HIST("Events/Centrality/Response"), NrecPerCol[i], nCharged, mcCollision.posZ(), c_recPerCol[i]); registry.fill(HIST("Events/Centrality/EfficiencyMult"), nCharged, mcCollision.posZ(), c_recPerCol[i]); + if (responseStudy) { + registry.fill(HIST("Events/Centrality/Control/MultiResponse"), nCharged, NrecPerCol[i], NPVPerCol[i], NFT0APerCol[i], NFT0CPerCol[i], mcCollision.posZ(), c_recPerCol[i]); + } } else { registry.fill(HIST("Events/Response"), NrecPerCol[i], nCharged, mcCollision.posZ()); registry.fill(HIST("Events/EfficiencyMult"), nCharged, mcCollision.posZ()); + if (responseStudy) { + registry.fill(HIST("Events/Control/MultiResponse"), nCharged, NrecPerCol[i], NPVPerCol[i], NFT0APerCol[i], NFT0CPerCol[i], mcCollision.posZ()); + } } } if (moreThanOne > 1) { @@ -1007,7 +1044,7 @@ struct MultiplicityCounter { void processGen( MC::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks) + Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, &atracks); } @@ -1017,7 +1054,7 @@ struct MultiplicityCounter { void processGenNoAmb( MC::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks) + Particles const& particles, FiTracks const& tracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, nullptr); } @@ -1027,7 +1064,7 @@ struct MultiplicityCounter { void processGenFT0C( MC::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks) + Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, &atracks); } @@ -1037,7 +1074,7 @@ struct MultiplicityCounter { void processGenFT0CNoAmb( MC::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks) + Particles const& particles, FiTracks const& tracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, nullptr); } @@ -1047,7 +1084,7 @@ struct MultiplicityCounter { void processGenFT0M( MC::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks) + Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, &atracks); } @@ -1057,7 +1094,7 @@ struct MultiplicityCounter { void processGenFT0MNoAmb( MC::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks) + Particles const& particles, FiTracks const& tracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, nullptr); } @@ -1069,7 +1106,7 @@ struct MultiplicityCounter { void processGenFT0Chi( MChi::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks) + Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, &atracks); } @@ -1079,7 +1116,7 @@ struct MultiplicityCounter { void processGenFT0ChiNoAmb( MChi::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks) + Particles const& particles, FiTracks const& tracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, nullptr); } @@ -1089,7 +1126,7 @@ struct MultiplicityCounter { void processGenFT0Mhi( MChi::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks) + Particles const& particles, FiTracks const& tracks, FiReTracks const& atracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, &atracks); } @@ -1099,7 +1136,7 @@ struct MultiplicityCounter { void processGenFT0MhiNoAmb( MChi::iterator const& mcCollision, o2::soa::SmallGroups> const& collisions, - Particles const& particles, FiTracks const& tracks) + Particles const& particles, FiTracks const& tracks, aod::FT0s const&) { processGenGeneral(mcCollision, collisions, particles, tracks, nullptr); } From 04a93683b60a6c75d17a9676ebc47dbd7ede96aa Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 5 Sep 2023 06:15:01 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- PWGMM/Mult/Tasks/dndeta.cxx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/PWGMM/Mult/Tasks/dndeta.cxx b/PWGMM/Mult/Tasks/dndeta.cxx index 891758d5172..df8116008c2 100644 --- a/PWGMM/Mult/Tasks/dndeta.cxx +++ b/PWGMM/Mult/Tasks/dndeta.cxx @@ -198,8 +198,7 @@ struct MultiplicityCounter { registry.add({"Events/EfficiencyMult", " ; N_{gen}; Z_{vtx} (cm)", {HistType::kTH2F, {MultAxis, ZAxis}}}); registry.add({"Events/SplitMult", " ; N_{gen} ; Z_{vtx} (cm)", {HistType::kTH2F, {MultAxis, ZAxis}}}); if (responseStudy) { - registry.add({"Events/Control/MultiResponse", " ; N_{gen}; N_{rec}; N_{PV cont}; N_{FT0A}; N_{FT0C}; Z_{vtx} (cm)", - {HistType::kTHnSparseF, {MultAxis, MultAxis, MultAxis, FT0Axis, FT0Axis, ZAxis}}}); + registry.add({"Events/Control/MultiResponse", " ; N_{gen}; N_{rec}; N_{PV cont}; N_{FT0A}; N_{FT0C}; Z_{vtx} (cm)", {HistType::kTHnSparseF, {MultAxis, MultAxis, MultAxis, FT0Axis, FT0Axis, ZAxis}}}); } } @@ -233,8 +232,7 @@ struct MultiplicityCounter { registry.add({"Events/Centrality/EfficiencyMult", " ; N_{gen}; Z_{vtx} (cm); centrality", {HistType::kTHnSparseF, {MultAxis, ZAxis, CentAxis}}}); registry.add({"Events/Centrality/SplitMult", " ; N_{gen} ; Z_{vtx} (cm); centrality", {HistType::kTHnSparseF, {MultAxis, ZAxis, CentAxis}}}); if (responseStudy) { - registry.add({"Events/Centrality/Control/MultiResponse", " ; N_{gen}; N_{rec}, N_{PV cont}; N_{FT0A}; N_{FT0C}; Z_{vtx} (cm); centrality", - {HistType::kTHnSparseF, {MultAxis, MultAxis, MultAxis, FT0Axis, FT0Axis, ZAxis, CentAxis}}}); + registry.add({"Events/Centrality/Control/MultiResponse", " ; N_{gen}; N_{rec}, N_{PV cont}; N_{FT0A}; N_{FT0C}; Z_{vtx} (cm); centrality", {HistType::kTHnSparseF, {MultAxis, MultAxis, MultAxis, FT0Axis, FT0Axis, ZAxis, CentAxis}}}); } } @@ -929,10 +927,10 @@ struct MultiplicityCounter { auto ft0 = collision.foundFT0(); float tA = 0; float tC = 0; - for (auto i=0u; i < ft0.amplitudeA().size(); ++i) { + for (auto i = 0u; i < ft0.amplitudeA().size(); ++i) { tA += ft0.amplitudeA()[i]; } - for (auto i=0u; i < ft0.amplitudeC().size(); ++i) { + for (auto i = 0u; i < ft0.amplitudeC().size(); ++i) { tC += ft0.amplitudeC()[i]; } NFT0APerCol.emplace_back(tA); @@ -942,7 +940,6 @@ struct MultiplicityCounter { NFT0CPerCol.emplace_back(-1); } - if constexpr (hasCentrality) { registry.fill(HIST("Events/Centrality/Efficiency"), 4., c_gen); } else {