Skip to content

Commit 548e28a

Browse files
murionialibuild
andauthored
[PWGLF] Light ions multiplicity at midrapidy - heavyionMultiplicity.cxx (#14101)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 144fe02 commit 548e28a

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ static constexpr TrackSelectionFlags::flagtype TrackSelectionDcaxyOnly =
131131
AxisSpec axisEvent{10, 0.5, 10.5, "#Event", "EventAxis"};
132132
AxisSpec axisVtxZ{40, -20, 20, "Vertex Z", "VzAxis"};
133133
AxisSpec axisEta{40, -2, 2, "#eta", "EtaAxis"};
134+
AxisSpec axisEtaExtended{100, -5, 5, "#eta", "EtaAxisExtended"};
134135
AxisSpec axisPhi{{0, o2::constants::math::PIQuarter, o2::constants::math::PIHalf, o2::constants::math::PIQuarter * 3., o2::constants::math::PI, o2::constants::math::PIQuarter * 5., o2::constants::math::PIHalf * 3., o2::constants::math::PIQuarter * 7., o2::constants::math::TwoPI}, "#phi", "PhiAxis"};
135136
AxisSpec axisPhi2{629, 0, o2::constants::math::TwoPI, "#phi"};
136137
AxisSpec axisCent{100, 0, 100, "#Cent"};
@@ -178,6 +179,7 @@ struct HeavyionMultiplicity {
178179
ConfigurableAxis occupancyBin{"occupancyBin", {VARIABLE_WIDTH, 0, 500, 1000, 2000, 5000, 10000}, ""};
179180
ConfigurableAxis centBinGen{"centBinGen", {VARIABLE_WIDTH, 0, 500, 1000, 2000, 5000, 10000}, ""};
180181
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}, ""};
181183

182184
Configurable<bool> isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"};
183185
Configurable<bool> isApplyGoodZvtxFT0vsPV{"isApplyGoodZvtxFT0vsPV", true, "Enable GoodZvtxFT0vsPV cut"};
@@ -211,6 +213,7 @@ struct HeavyionMultiplicity {
211213
AxisSpec axisOccupancy = {occupancyBin, "occupancy", "OccupancyAxis"};
212214
AxisSpec axisCentBinGen = {centBinGen, "GenCentrality", "CentGenAxis"};
213215
AxisSpec impactParAxis = {binsImpactPar, "Impact Parameter"};
216+
AxisSpec multAxis = {binsMult, "Multiplicity #eta<0.5"};
214217

215218
histos.add("EventHist", "EventHist", kTH1D, {axisEvent}, false);
216219
histos.add("VtxZHist", "VtxZHist", kTH1D, {axisVtxZ}, false);
@@ -313,6 +316,22 @@ struct HeavyionMultiplicity {
313316
x->SetBinLabel(1, "All MC events");
314317
x->SetBinLabel(2, "MC events with reco event after event selection");
315318
x->SetBinLabel(3, "MC events with no reco events");
319+
histos.add("hgendndetaVscentGenwithNOreco", "dndeta vs impact parameter, gen events with no reco", kTH2F, {axisEtaExtended, impactParAxis});
320+
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+
316335
histos.add("hImpactParameterGenwithNoreco", "Impact parameter of generated MC events, with no recoevent", kTH1F, {impactParAxis});
317336
histos.add("hImpactParameterGen", "Impact parameter of generated MC events", kTH1F, {impactParAxis});
318337
histos.add("hImpactParameterRec", "Impact parameter of selected MC events", kTH1F, {impactParAxis});
@@ -415,6 +434,19 @@ struct HeavyionMultiplicity {
415434
return cent;
416435
}
417436

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+
418450
template <typename CheckColOccu>
419451
float selColOccu(CheckColOccu const& col)
420452
{
@@ -916,10 +948,13 @@ struct HeavyionMultiplicity {
916948
// All generated events
917949
histos.fill(HIST("MCEventHist"), 1);
918950
histos.fill(HIST("hImpactParameterGen"), mcCollision.impactParameter());
951+
histos.fill(HIST("hMultEta05Gen"), mcCollision.multMCNParticlesEta05());
952+
histos.fill(HIST("hMultGen"), selColMultMC(mcCollision));
919953

920954
if (RecCols.size() == 0) {
921955
histos.fill(HIST("MCEventHist"), 3);
922956
histos.fill(HIST("hImpactParameterGenwithNoreco"), mcCollision.impactParameter());
957+
histos.fill(HIST("hMultEta05GenwithNoreco"), mcCollision.multMCNParticlesEta05());
923958
}
924959

925960
bool atLeastOne = false;
@@ -945,23 +980,37 @@ struct HeavyionMultiplicity {
945980
if (atLeastOne) {
946981
histos.fill(HIST("MCEventHist"), 2);
947982
histos.fill(HIST("hImpactParameterRec"), mcCollision.impactParameter());
983+
histos.fill(HIST("hMultEta05Rec"), mcCollision.multMCNParticlesEta05());
984+
histos.fill(HIST("hMultRec"), selColMultMC(mcCollision));
948985
histos.fill(HIST("hImpactParvsCentrRec"), centrality, mcCollision.impactParameter());
986+
histos.fill(HIST("hMultEta05vsCentrRec"), centrality, mcCollision.multMCNParticlesEta05());
987+
histos.fill(HIST("hMultvsCentrRec"), centrality, selColMultMC(mcCollision));
949988
}
950989

951990
for (const auto& particle : GenParticles) {
952991

992+
if (RecCols.size() == 0) {
993+
histos.fill(HIST("hgendndetaVscentGenwithNOreco"), particle.eta(), mcCollision.impactParameter());
994+
} else {
995+
histos.fill(HIST("hgendndetaVscentGenwithReco"), particle.eta(), mcCollision.impactParameter());
996+
}
997+
953998
if (!isGenTrackSelected(particle)) {
954999
continue;
9551000
}
9561001

9571002
// All generated particles
9581003
histos.fill(HIST("hgendndetaBeforeEvtSel"), particle.eta());
9591004
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));
9601007

9611008
if (atLeastOne) {
9621009
// All generated particles with at least one reconstructed collision (signal loss estimation)
9631010
histos.fill(HIST("hgendndetaAfterEvtSel"), particle.eta());
9641011
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));
9651014
}
9661015
}
9671016
}

0 commit comments

Comments
 (0)