@@ -147,6 +147,7 @@ struct HeavyionMultiplicity {
147147 ConfigurableAxis ptHistBin{" ptHistBin" , {200 , 0 ., 20 .}, " " };
148148 ConfigurableAxis centralityBinning{" centralityBinning" , {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 }, " " };
149149 ConfigurableAxis occupancyBin{" occupancyBin" , {VARIABLE_WIDTH, 0 , 500 , 1000 , 2000 , 5000 , 10000 }, " " };
150+ ConfigurableAxis centBinGen{" centBinGen" , {VARIABLE_WIDTH, 0 , 500 , 1000 , 2000 , 5000 , 10000 }, " " };
150151
151152 Configurable<bool > isApplySameBunchPileup{" isApplySameBunchPileup" , true , " Enable SameBunchPileup cut" };
152153 Configurable<bool > isApplyGoodZvtxFT0vsPV{" isApplyGoodZvtxFT0vsPV" , true , " Enable GoodZvtxFT0vsPV cut" };
@@ -174,6 +175,7 @@ struct HeavyionMultiplicity {
174175 AxisSpec centAxis = {centralityBinning, " Centrality" , " CentralityAxis" };
175176 AxisSpec axisPt = {ptHistBin, " pT" , " pTAxis" };
176177 AxisSpec axisOccupancy = {occupancyBin, " occupancy" , " OccupancyAxis" };
178+ AxisSpec axisCentBinGen = {centBinGen, " GenCentrality" , " CentGenAxis" };
177179
178180 histos.add (" EventHist" , " EventHist" , kTH1D , {axisEvent}, false );
179181 histos.add (" VtxZHist" , " VtxZHist" , kTH1D , {axisVtxZ}, false );
@@ -252,6 +254,18 @@ struct HeavyionMultiplicity {
252254 histos.add (" hmcrecdndetapp" , " hmcrecdndetapp" , kTHnSparseD , {axisVtxZ, centAxis, axisEta, axisPhi, axisSpecies, axisTrackType}, false );
253255 histos.add (" hmcgendndetapp" , " hmcgendndetapp" , kTHnSparseD , {axisVtxZ, centAxis, axisEta, axisPhi, axisSpecies, axisGenPtVary}, false );
254256 }
257+
258+ if (doprocessGen) {
259+ histos.add (" MultBarrelEta10_vs_FT0A" , " MultBarrelEta10_vs_FT0A" , kTH2F , {axisMult, axisFt0aMult}, true );
260+ histos.add (" MultBarrelEta10_vs_FT0C" , " MultBarrelEta10_vs_FT0C" , kTH2F , {axisMult, axisFt0cMult}, true );
261+ histos.add (" MultBarrelEta10" , " MultBarrelEta10" , kTH1F , {axisMult}, true );
262+ histos.add (" MultFT0A" , " MultFT0A" , kTH1F , {axisFt0aMult}, true );
263+ histos.add (" MultFT0C" , " MultFT0C" , kTH1F , {axisFt0cMult}, true );
264+ histos.add (" dndeta10_vs_FT0C" , " dndeta10_vs_FT0C" , kTH2F , {axisEta, axisCentBinGen}, true );
265+ histos.add (" dndeta10_vs_FT0A" , " dndeta10_vs_FT0A" , kTH2F , {axisEta, axisCentBinGen}, true );
266+ histos.add (" mult10_vs_FT0C" , " mult10_vs_FT0C" , kTH2F , {axisMult, axisCentBinGen}, true );
267+ histos.add (" mult10_vs_FT0A" , " mult10_vs_FT0A" , kTH2F , {axisMult, axisCentBinGen}, true );
268+ }
255269 }
256270
257271 template <typename CheckCol>
@@ -791,6 +805,26 @@ struct HeavyionMultiplicity {
791805 } // collision loop
792806 }
793807 PROCESS_SWITCH (HeavyionMultiplicity, processppMonteCarlo, " process pp MC" , false );
808+
809+ void processGen (soa::Join<aod::McCollisions, aod::MultsExtraMC>::iterator const & mccols, aod::McParticles const & GenParticles)
810+ {
811+ histos.fill (HIST (" MultBarrelEta10_vs_FT0A" ), mccols.multMCNParticlesEta10 (), mccols.multMCFT0A ());
812+ histos.fill (HIST (" MultBarrelEta10_vs_FT0C" ), mccols.multMCNParticlesEta10 (), mccols.multMCFT0C ());
813+ histos.fill (HIST (" MultBarrelEta10" ), mccols.multMCNParticlesEta10 ());
814+ histos.fill (HIST (" MultFT0A" ), mccols.multMCFT0A ());
815+ histos.fill (HIST (" MultFT0C" ), mccols.multMCFT0C ());
816+ histos.fill (HIST (" mult10_vs_FT0A" ), mccols.multMCNParticlesEta10 (), mccols.multMCFT0A ());
817+ histos.fill (HIST (" mult10_vs_FT0C" ), mccols.multMCNParticlesEta10 (), mccols.multMCFT0C ());
818+
819+ for (const auto & particle : GenParticles) {
820+ if (!isGenTrackSelected (particle)) {
821+ continue ;
822+ }
823+ histos.fill (HIST (" dndeta10_vs_FT0A" ), particle.eta (), mccols.multMCFT0A ());
824+ histos.fill (HIST (" dndeta10_vs_FT0C" ), particle.eta (), mccols.multMCFT0C ());
825+ }
826+ }
827+ PROCESS_SWITCH (HeavyionMultiplicity, processGen, " process pure MC gen" , false );
794828};
795829
796830WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments