From 0867f0c451dae641a3d8ab58cc2294c4e6df8f71 Mon Sep 17 00:00:00 2001 From: Debadatta3337 Date: Tue, 28 Oct 2025 17:16:56 +0530 Subject: [PATCH 1/2] [PWGDQ] Central Barrel MC Multiplcity added --- PWGDQ/Core/HistogramsLibrary.cxx | 6 ++++++ PWGDQ/Core/VarManager.cxx | 6 ++++++ PWGDQ/Core/VarManager.h | 6 ++++++ PWGDQ/DataModel/ReducedInfoTables.h | 3 ++- PWGDQ/TableProducer/tableMakerMC.cxx | 4 ++-- PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx | 15 ++++++++------- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/PWGDQ/Core/HistogramsLibrary.cxx b/PWGDQ/Core/HistogramsLibrary.cxx index c103d576840..2b4f58a7128 100644 --- a/PWGDQ/Core/HistogramsLibrary.cxx +++ b/PWGDQ/Core/HistogramsLibrary.cxx @@ -120,6 +120,9 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "VtxZ_MultFT0C", "VtxZ vs MultFT0C", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFT0C); hm->AddHistogram(histClass, "VtxZ_MultFDDA", "VtxZ vs MultFDDA", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFDDA); hm->AddHistogram(histClass, "VtxZ_MultFDDC", "VtxZ vs MultFDDC", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFDDC); + hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta05", "VtxNcontribReal vs MultMCNParticlesEta05", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta05); + hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta08", "VtxNcontribReal vs MultMCNParticlesEta08", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta08); + hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta10", "VtxNcontribReal vs MultMCNParticlesEta10", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta10); } else { hm->AddHistogram(histClass, "MultTPC", "MultTPC", false, 200, 0.0, 50000.0, VarManager::kMultTPC); @@ -223,6 +226,9 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "MCVtxX_VtxY", "Vtx X vs Vtx Y", false, 200, 15.0, 15.0, VarManager::kMCVtxZ, 200, -0.2, 0.2, VarManager::kMCVtxY); hm->AddHistogram(histClass, "MCImpPar", "MC impact param", false, 20, 0.0, 20.0, VarManager::kMCEventImpParam); hm->AddHistogram(histClass, "MCCentrFT0C", "MC Centrality FT0C", false, 100, 0.0, 100.0, VarManager::kMCEventCentrFT0C); + hm->AddHistogram(histClass, "MultMCNParticlesEta05", "MultMCNParticlesEta05", false, 150, 0.0, 150.0, VarManager::kMultMCNParticlesEta05); + hm->AddHistogram(histClass, "MultMCNParticlesEta08", "MultMCNParticlesEta08", false, 150, 0.0, 150.0, VarManager::kMultMCNParticlesEta08); + hm->AddHistogram(histClass, "MultMCNParticlesEta10", "MultMCNParticlesEta10", false, 150, 0.0, 150.0, VarManager::kMultMCNParticlesEta10); } if (subGroupStr.Contains("subgen")) { hm->AddHistogram(histClass, "SubGenID", "SubGenerator ID", false, 11, -0.5, 10.5, VarManager::kMCEventSubGeneratorId); diff --git a/PWGDQ/Core/VarManager.cxx b/PWGDQ/Core/VarManager.cxx index 496a6ca18ae..30f68fdd03e 100644 --- a/PWGDQ/Core/VarManager.cxx +++ b/PWGDQ/Core/VarManager.cxx @@ -446,6 +446,9 @@ void VarManager::SetDefaultVarNames() fgVariableNames[kMCEventWeight] = "MC event weight"; fgVariableNames[kMCEventImpParam] = "MC impact parameter"; fgVariableNames[kMCEventCentrFT0C] = "MC Centrality FT0C"; + fgVariableNames[kMultMCNParticlesEta05] = "MC Multiplicity Central Barrel for |eta| < 0.5"; + fgVariableNames[kMultMCNParticlesEta08] = "MC Multiplicity Central Barrel for |eta| < 0.8"; + fgVariableNames[kMultMCNParticlesEta10] = "MC Multiplicity Central Barrel for |eta| < 1.0"; fgVariableUnits[kMCEventGeneratorId] = ""; fgVariableUnits[kMCEventSubGeneratorId] = ""; fgVariableUnits[kMCVtxX] = "cm"; @@ -455,6 +458,9 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kMCEventWeight] = ""; fgVariableUnits[kMCEventImpParam] = "b"; fgVariableUnits[kMCEventCentrFT0C] = "%"; + fgVariableUnits[kMultMCNParticlesEta05] = "Multiplicity_eta05"; + fgVariableUnits[kMultMCNParticlesEta08] = "Multiplicity_eta08"; + fgVariableUnits[kMultMCNParticlesEta10] = "Multiplicity_eta10"; fgVariableNames[kTwoEvPosZ1] = "vtx-z_{1}"; fgVariableUnits[kTwoEvPosZ1] = "cm"; fgVariableNames[kTwoEvPosZ2] = "vtx-z_{2}"; diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 42531168bad..2e19c26ad9c 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -283,6 +283,9 @@ class VarManager : public TObject kMCEventWeight, kMCEventImpParam, kMCEventCentrFT0C, + kMultMCNParticlesEta10, + kMultMCNParticlesEta08, + kMultMCNParticlesEta05, kQ1ZNAX, kQ1ZNAY, kQ1ZNCX, @@ -1989,6 +1992,9 @@ void VarManager::FillEvent(T const& event, float* values) if constexpr ((fillMap & CollisionCent) > 0) { // WARNING: temporary solution, ongoing work to provide proper MC gen. centrality values[kMCEventCentrFT0C] = event.bestCollisionCentFT0C(); + values[kMultMCNParticlesEta05] = event.multMCNParticlesEta05(); + values[kMultMCNParticlesEta08] = event.multMCNParticlesEta08(); + values[kMultMCNParticlesEta10] = event.multMCNParticlesEta10(); } } diff --git a/PWGDQ/DataModel/ReducedInfoTables.h b/PWGDQ/DataModel/ReducedInfoTables.h index 40449639d1f..61074b2215e 100644 --- a/PWGDQ/DataModel/ReducedInfoTables.h +++ b/PWGDQ/DataModel/ReducedInfoTables.h @@ -221,7 +221,8 @@ DECLARE_SOA_TABLE(ReducedEventsInfo, "AOD", "REDUCEVENTINFO", //! Main event i DECLARE_SOA_TABLE(ReducedMCEvents, "AOD", "REDUCEDMCEVENT", //! Event level MC truth information o2::soa::Index<>, mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ, - mccollision::T, mccollision::Weight, mccollision::ImpactParameter); + mccollision::T, mccollision::Weight, mccollision::ImpactParameter, + mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10); using ReducedEvent = ReducedEvents::iterator; using StoredReducedEvent = StoredReducedEvents::iterator; diff --git a/PWGDQ/TableProducer/tableMakerMC.cxx b/PWGDQ/TableProducer/tableMakerMC.cxx index 1d43d196f9d..f7f4f0939e4 100644 --- a/PWGDQ/TableProducer/tableMakerMC.cxx +++ b/PWGDQ/TableProducer/tableMakerMC.cxx @@ -461,7 +461,7 @@ struct TableMakerMC { // make an entry for this MC event only if it was not already added to the table if (!(fEventLabels.find(mcCollision.globalIndex()) != fEventLabels.end())) { eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), - mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter()); + mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(), 1, 1, 1); fEventLabels[mcCollision.globalIndex()] = fCounters[1]; fCounters[1]++; } @@ -1096,7 +1096,7 @@ struct TableMakerMC { // make an entry for this MC event only if it was not already added to the table if (!(fEventLabels.find(mcCollision.globalIndex()) != fEventLabels.end())) { eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), - mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter()); + mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(), 1, 1, 1); fEventLabels[mcCollision.globalIndex()] = fCounters[1]; fCounters[1]++; } diff --git a/PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx b/PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx index 262be9de78b..e0d27b6a099 100644 --- a/PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx +++ b/PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx @@ -99,7 +99,7 @@ using MyEventsWithMultsAndRapidityGapFilter = soa::Join; using MyEventsWithCentAndMults = soa::Join; using MFTTrackLabeled = soa::Join; -using MyEventsMcWithMults = soa::Join; +using MyEventsMcWithMults = soa::Join; // Declare bit maps containing information on the table joins content (used as argument in templated functions) constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision; @@ -469,7 +469,8 @@ struct TableMakerMC { fHistMan->FillHistClass("Event_MCTruth", VarManager::fgValues); // Create the skimmed table entry for this collision eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), - mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter()); + mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(), + mcCollision.multMCNParticlesEta05(), mcCollision.multMCNParticlesEta08(), mcCollision.multMCNParticlesEta10()); } } @@ -563,7 +564,7 @@ struct TableMakerMC { } // end loop over mc stack } - template + template void skimCollisions(TEvents const& collisions, BCsWithTimestamps const& /*bcs*/) { // Skim reconstructed collisions which are selected by the user specified cuts @@ -623,7 +624,7 @@ struct TableMakerMC { VarManager::FillEvent(collision); // extract event information and place it in the fValues array if (collision.has_mcCollision()) { auto mcCollision = collision.template mcCollision_as(); - VarManager::FillEvent(mcCollision); + VarManager::FillEvent(mcCollision); } if (fDoDetailedQA) { fHistMan->FillHistClass("Event_BeforeCuts", VarManager::fgValues); @@ -1178,11 +1179,11 @@ struct TableMakerMC { } // end skimMuons template + typename TMuons, typename TMFTTracks, typename TTrackAssoc, typename TFwdTrackAssoc, typename TMFTTrackAssoc, typename TMFTCov, typename MyEventsMcWithMults> void fullSkimming(TEvents const& collisions, BCsWithTimestamps const& bcs, TTracks const& tracksBarrel, TMuons const& muons, TMFTTracks const& mftTracks, TTrackAssoc const& trackAssocs, TFwdTrackAssoc const& fwdTrackAssocs, TMFTTrackAssoc const& mftAssocs, - TEventsMC const& mcCollisions, aod::McParticles const& mcParticles, TMFTCov const& mftCovs) + MyEventsMcWithMults const& mcCollisions, aod::McParticles const& mcParticles, TMFTCov const& mftCovs) { // Check whether the run changed and update CCDB if it did if (bcs.size() > 0 && fCurrentRun != bcs.begin().runNumber()) { @@ -1224,7 +1225,7 @@ struct TableMakerMC { eventVtxCov.reserve(collisions.size()); eventMClabels.reserve(collisions.size()); eventInfo.reserve(collisions.size()); - skimCollisions(collisions, bcs); + skimCollisions(collisions, bcs); if (fCollIndexMap.size() == 0) { return; } From f35bdc3c16e997af841bcc728098189175c2c941 Mon Sep 17 00:00:00 2001 From: Debadatta3337 Date: Tue, 28 Oct 2025 17:46:31 +0530 Subject: [PATCH 2/2] [PWGDQ] Replace VtxNcontribReal histograms with MultNTracksPVetaHalf and MultNTracksPVeta1 histograms Replace VtxNcontribReal histograms with MultNTracksPVetaHalf [L-123]and MultNTracksPVeta1[L-125] histograms --- PWGDQ/Core/HistogramsLibrary.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGDQ/Core/HistogramsLibrary.cxx b/PWGDQ/Core/HistogramsLibrary.cxx index 2b4f58a7128..f76b92b1b3c 100644 --- a/PWGDQ/Core/HistogramsLibrary.cxx +++ b/PWGDQ/Core/HistogramsLibrary.cxx @@ -120,9 +120,9 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "VtxZ_MultFT0C", "VtxZ vs MultFT0C", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFT0C); hm->AddHistogram(histClass, "VtxZ_MultFDDA", "VtxZ vs MultFDDA", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFDDA); hm->AddHistogram(histClass, "VtxZ_MultFDDC", "VtxZ vs MultFDDC", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFDDC); - hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta05", "VtxNcontribReal vs MultMCNParticlesEta05", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta05); + hm->AddHistogram(histClass, "MultNTracksPVetaHalf_MultMCNParticlesEta05", "MultNTracksPVetaHalf vs MultMCNParticlesEta05", false, 150, 0, 150.0, VarManager::kMultNTracksPVetaHalf, 150, 0, 150.0, VarManager::kMultMCNParticlesEta05); hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta08", "VtxNcontribReal vs MultMCNParticlesEta08", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta08); - hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta10", "VtxNcontribReal vs MultMCNParticlesEta10", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta10); + hm->AddHistogram(histClass, "MultNTracksPVeta1_MultMCNParticlesEta10", "MultNTracksPVeta1 vs MultMCNParticlesEta10", false, 150, 0, 150.0, VarManager::kMultNTracksPVeta1, 150, 0, 150.0, VarManager::kMultMCNParticlesEta10); } else { hm->AddHistogram(histClass, "MultTPC", "MultTPC", false, 200, 0.0, 50000.0, VarManager::kMultTPC);