@@ -179,6 +179,7 @@ struct HeavyionMultiplicity {
179179 ConfigurableAxis occupancyBin{" occupancyBin" , {VARIABLE_WIDTH, 0 , 500 , 1000 , 2000 , 5000 , 10000 }, " " };
180180 ConfigurableAxis centBinGen{" centBinGen" , {VARIABLE_WIDTH, 0 , 500 , 1000 , 2000 , 5000 , 10000 }, " " };
181181 ConfigurableAxis binsImpactPar{" binsImpactPar" , {VARIABLE_WIDTH, 0.0 , 3.00065 , 4.28798 , 6.14552 , 7.6196 , 8.90942 , 10.0897 , 11.2002 , 12.2709 , 13.3167 , 14.4173 , 23.2518 }, " Binning of the impact parameter axis" };
182+ ConfigurableAxis binsMult{" binsMult" , {500 , 0 .0f , +500 .0f }, " " };
182183
183184 Configurable<bool > isApplySameBunchPileup{" isApplySameBunchPileup" , true , " Enable SameBunchPileup cut" };
184185 Configurable<bool > isApplyGoodZvtxFT0vsPV{" isApplyGoodZvtxFT0vsPV" , true , " Enable GoodZvtxFT0vsPV cut" };
@@ -212,6 +213,7 @@ struct HeavyionMultiplicity {
212213 AxisSpec axisOccupancy = {occupancyBin, " occupancy" , " OccupancyAxis" };
213214 AxisSpec axisCentBinGen = {centBinGen, " GenCentrality" , " CentGenAxis" };
214215 AxisSpec impactParAxis = {binsImpactPar, " Impact Parameter" };
216+ AxisSpec multAxis = {binsMult, " Multiplicity #eta<0.5" };
215217
216218 histos.add (" EventHist" , " EventHist" , kTH1D , {axisEvent}, false );
217219 histos.add (" VtxZHist" , " VtxZHist" , kTH1D , {axisVtxZ}, false );
@@ -316,6 +318,20 @@ struct HeavyionMultiplicity {
316318 x->SetBinLabel (3 , " MC events with no reco events" );
317319 histos.add (" hgendndetaVscentGenwithNOreco" , " dndeta vs impact parameter, gen events with no reco" , kTH2F , {axisEtaExtended, impactParAxis});
318320 histos.add (" hgendndetaVscentGenwithReco" , " dndeta vs impact parameter, gen events with at least one reco" , kTH2F , {axisEtaExtended, impactParAxis});
321+
322+ histos.add (" hMultEta05GenwithNoreco" , " multiplicity in eta<0.5 of generated MC events, with no recoevent" , kTH1F , {multAxis});
323+ histos.add (" hMultEta05Gen" , " multiplicity in eta<0.5 of generated MC events" , kTH1F , {multAxis});
324+ histos.add (" hMultEta05Rec" , " multiplicity in eta<0.5 of selected MC events" , kTH1F , {multAxis});
325+ histos.add (" hMultEta05vsCentrRec" , " multiplicity in eta<0.5 of selected MC events vs centrality" , kTH2F , {axisCent, multAxis});
326+ histos.add (" hgendndetaVsMultEta05BeforeEvtSel" , " hgendndetaBeforeEvtSel vs multiplicity in eta<0.5" , kTH2F , {axisEta, multAxis});
327+ histos.add (" hgendndetaVsMultEta05AfterEvtSel" , " hgendndetaAfterEvtSel vs multiplicity in eta<0.5" , kTH2F , {axisEta, multAxis});
328+
329+ histos.add (" hMultGen" , " multiplicity of generated MC events" , kTH1F , {axisFt0cMult});
330+ histos.add (" hMultRec" , " multiplicity of selected MC events" , kTH1F , {axisFt0cMult});
331+ histos.add (" hMultvsCentrRec" , " multiplicity of selected MC events vs centrality" , kTH2F , {axisCent, axisFt0cMult});
332+ histos.add (" hgendndetaVsMultBeforeEvtSel" , " hgendndetaBeforeEvtSel vs multiplicity" , kTH2F , {axisEta, axisFt0cMult});
333+ histos.add (" hgendndetaVsMultAfterEvtSel" , " hgendndetaAfterEvtSel vs multiplicity" , kTH2F , {axisEta, axisFt0cMult});
334+
319335 histos.add (" hImpactParameterGenwithNoreco" , " Impact parameter of generated MC events, with no recoevent" , kTH1F , {impactParAxis});
320336 histos.add (" hImpactParameterGen" , " Impact parameter of generated MC events" , kTH1F , {impactParAxis});
321337 histos.add (" hImpactParameterRec" , " Impact parameter of selected MC events" , kTH1F , {impactParAxis});
@@ -418,6 +434,19 @@ struct HeavyionMultiplicity {
418434 return cent;
419435 }
420436
437+ template <typename CheckColCent>
438+ float selColMultMC (CheckColCent const & col)
439+ {
440+ auto cent = -1 ;
441+ if (isApplyCentFT0C) {
442+ cent = col.multMCFT0C ();
443+ }
444+ if (isApplyCentFV0A) {
445+ cent = col.multMCFV0A ();
446+ }
447+ return cent;
448+ }
449+
421450 template <typename CheckColOccu>
422451 float selColOccu (CheckColOccu const & col)
423452 {
@@ -919,10 +948,13 @@ struct HeavyionMultiplicity {
919948 // All generated events
920949 histos.fill (HIST (" MCEventHist" ), 1 );
921950 histos.fill (HIST (" hImpactParameterGen" ), mcCollision.impactParameter ());
951+ histos.fill (HIST (" hMultEta05Gen" ), mcCollision.multMCNParticlesEta05 ());
952+ histos.fill (HIST (" hMultGen" ), selColMultMC (mcCollision));
922953
923954 if (RecCols.size () == 0 ) {
924955 histos.fill (HIST (" MCEventHist" ), 3 );
925956 histos.fill (HIST (" hImpactParameterGenwithNoreco" ), mcCollision.impactParameter ());
957+ histos.fill (HIST (" hMultEta05GenwithNoreco" ), mcCollision.multMCNParticlesEta05 ());
926958 }
927959
928960 bool atLeastOne = false ;
@@ -948,15 +980,19 @@ struct HeavyionMultiplicity {
948980 if (atLeastOne) {
949981 histos.fill (HIST (" MCEventHist" ), 2 );
950982 histos.fill (HIST (" hImpactParameterRec" ), mcCollision.impactParameter ());
983+ histos.fill (HIST (" hMultEta05Rec" ), mcCollision.multMCNParticlesEta05 ());
984+ histos.fill (HIST (" hMultRec" ), selColMultMC (mcCollision));
951985 histos.fill (HIST (" hImpactParvsCentrRec" ), centrality, mcCollision.impactParameter ());
986+ histos.fill (HIST (" hMultEta05vsCentrRec" ), centrality, mcCollision.multMCNParticlesEta05 ());
987+ histos.fill (HIST (" hMultvsCentrRec" ), centrality, selColMultMC (mcCollision));
952988 }
953989
954990 for (const auto & particle : GenParticles) {
955991
956992 if (RecCols.size () == 0 ) {
957- histos.fill (HIST (" hgendndetaVscentGenwithNOreco" ), particle.eta (), mcCollision.impactParameter ());
993+ histos.fill (HIST (" hgendndetaVscentGenwithNOreco" ), particle.eta (), mcCollision.impactParameter ());
958994 } else {
959- histos.fill (HIST (" hgendndetaVscentGenwithReco" ), particle.eta (), mcCollision.impactParameter ());
995+ histos.fill (HIST (" hgendndetaVscentGenwithReco" ), particle.eta (), mcCollision.impactParameter ());
960996 }
961997
962998 if (!isGenTrackSelected (particle)) {
@@ -966,11 +1002,15 @@ struct HeavyionMultiplicity {
9661002 // All generated particles
9671003 histos.fill (HIST (" hgendndetaBeforeEvtSel" ), particle.eta ());
9681004 histos.fill (HIST (" hgendndetaVscentBeforeEvtSel" ), particle.eta (), mcCollision.impactParameter ());
1005+ histos.fill (HIST (" hgendndetaVsMultEta05BeforeEvtSel" ), particle.eta (), mcCollision.multMCNParticlesEta05 ());
1006+ histos.fill (HIST (" hgendndetaVsMultBeforeEvtSel" ), particle.eta (), selColMultMC (mcCollision));
9691007
9701008 if (atLeastOne) {
9711009 // All generated particles with at least one reconstructed collision (signal loss estimation)
9721010 histos.fill (HIST (" hgendndetaAfterEvtSel" ), particle.eta ());
9731011 histos.fill (HIST (" hgendndetaVscentAfterEvtSel" ), particle.eta (), mcCollision.impactParameter ());
1012+ histos.fill (HIST (" hgendndetaVsMultEta05AfterEvtSel" ), particle.eta (), mcCollision.multMCNParticlesEta05 ());
1013+ histos.fill (HIST (" hgendndetaVsMultAfterEvtSel" ), particle.eta (), selColMultMC (mcCollision));
9741014 }
9751015 }
9761016 }
0 commit comments