From 901d20751ac34b898ca6bbaa72d3e4e90da6e900 Mon Sep 17 00:00:00 2001 From: murioni Date: Wed, 3 Dec 2025 17:51:12 +0100 Subject: [PATCH 1/3] adding QA plots --- .../Tasks/GlobalEventProperties/heavyionMultiplicity.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index 9a496f78016..cae9c3d24d8 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -131,6 +131,7 @@ static constexpr TrackSelectionFlags::flagtype TrackSelectionDcaxyOnly = AxisSpec axisEvent{10, 0.5, 10.5, "#Event", "EventAxis"}; AxisSpec axisVtxZ{40, -20, 20, "Vertex Z", "VzAxis"}; AxisSpec axisEta{40, -2, 2, "#eta", "EtaAxis"}; +AxisSpec axisEtaExtended{100, -5, 5, "#eta", "EtaAxisExtended"}; 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"}; AxisSpec axisPhi2{629, 0, o2::constants::math::TwoPI, "#phi"}; AxisSpec axisCent{100, 0, 100, "#Cent"}; @@ -313,6 +314,8 @@ struct HeavyionMultiplicity { x->SetBinLabel(1, "All MC events"); x->SetBinLabel(2, "MC events with reco event after event selection"); x->SetBinLabel(3, "MC events with no reco events"); + histos.add("hgendndetaVscentGenwithNOreco", "dndeta vs impact parameter, gen events with no reco", kTH2F, {axisEtaExtended, impactParAxis}); + histos.add("hgendndetaVscentGenwithReco" , "dndeta vs impact parameter, gen events with at least one reco", kTH2F, {axisEtaExtended, impactParAxis}); histos.add("hImpactParameterGenwithNoreco", "Impact parameter of generated MC events, with no recoevent", kTH1F, {impactParAxis}); histos.add("hImpactParameterGen", "Impact parameter of generated MC events", kTH1F, {impactParAxis}); histos.add("hImpactParameterRec", "Impact parameter of selected MC events", kTH1F, {impactParAxis}); @@ -949,6 +952,12 @@ struct HeavyionMultiplicity { } for (const auto& particle : GenParticles) { + + if (RecCols.size() == 0) { + histos.fill(HIST("hgendndetaVscentGenwithNOreco"), particle.eta(), mcCollision.impactParameter()); + } else { + histos.fill(HIST("hgendndetaVscentGenwithReco"), particle.eta(), mcCollision.impactParameter()); + } if (!isGenTrackSelected(particle)) { continue; From f7b6ca714ed85a33720fc9478ea2c9355a528e40 Mon Sep 17 00:00:00 2001 From: murioni Date: Fri, 5 Dec 2025 16:10:39 +0100 Subject: [PATCH 2/3] adding histos vs multiplicity for evt sig loss --- .../heavyionMultiplicity.cxx | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index cae9c3d24d8..59527104ac3 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -179,6 +179,7 @@ struct HeavyionMultiplicity { ConfigurableAxis occupancyBin{"occupancyBin", {VARIABLE_WIDTH, 0, 500, 1000, 2000, 5000, 10000}, ""}; ConfigurableAxis centBinGen{"centBinGen", {VARIABLE_WIDTH, 0, 500, 1000, 2000, 5000, 10000}, ""}; 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"}; + ConfigurableAxis binsMult{"binsMult", {500, 0.0f, +500.0f}, ""}; Configurable isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"}; Configurable isApplyGoodZvtxFT0vsPV{"isApplyGoodZvtxFT0vsPV", true, "Enable GoodZvtxFT0vsPV cut"}; @@ -212,6 +213,7 @@ struct HeavyionMultiplicity { AxisSpec axisOccupancy = {occupancyBin, "occupancy", "OccupancyAxis"}; AxisSpec axisCentBinGen = {centBinGen, "GenCentrality", "CentGenAxis"}; AxisSpec impactParAxis = {binsImpactPar, "Impact Parameter"}; + AxisSpec multAxis = {binsMult, "Multiplicity #eta<0.5"}; histos.add("EventHist", "EventHist", kTH1D, {axisEvent}, false); histos.add("VtxZHist", "VtxZHist", kTH1D, {axisVtxZ}, false); @@ -316,6 +318,20 @@ struct HeavyionMultiplicity { x->SetBinLabel(3, "MC events with no reco events"); histos.add("hgendndetaVscentGenwithNOreco", "dndeta vs impact parameter, gen events with no reco", kTH2F, {axisEtaExtended, impactParAxis}); histos.add("hgendndetaVscentGenwithReco" , "dndeta vs impact parameter, gen events with at least one reco", kTH2F, {axisEtaExtended, impactParAxis}); + + histos.add("hMultEta05GenwithNoreco", "multiplicity in eta<0.5 of generated MC events, with no recoevent", kTH1F, {multAxis}); + histos.add("hMultEta05Gen", "multiplicity in eta<0.5 of generated MC events", kTH1F, {multAxis}); + histos.add("hMultEta05Rec", "multiplicity in eta<0.5 of selected MC events", kTH1F, {multAxis}); + histos.add("hMultEta05vsCentrRec", "multiplicity in eta<0.5 of selected MC events vs centrality", kTH2F, {axisCent, multAxis}); + histos.add("hgendndetaVsMultEta05BeforeEvtSel", "hgendndetaBeforeEvtSel vs multiplicity in eta<0.5", kTH2F, {axisEta, multAxis}); + histos.add("hgendndetaVsMultEta05AfterEvtSel", "hgendndetaAfterEvtSel vs multiplicity in eta<0.5", kTH2F, {axisEta, multAxis}); + + histos.add("hMultGen", "multiplicity of generated MC events", kTH1F, {axisFt0cMult}); + histos.add("hMultRec", "multiplicity of selected MC events", kTH1F, {axisFt0cMult}); + histos.add("hMultvsCentrRec", "multiplicity of selected MC events vs centrality", kTH2F, {axisCent, axisFt0cMult}); + histos.add("hgendndetaVsMultBeforeEvtSel", "hgendndetaBeforeEvtSel vs multiplicity", kTH2F, {axisEta, axisFt0cMult}); + histos.add("hgendndetaVsMultAfterEvtSel", "hgendndetaAfterEvtSel vs multiplicity", kTH2F, {axisEta, axisFt0cMult}); + histos.add("hImpactParameterGenwithNoreco", "Impact parameter of generated MC events, with no recoevent", kTH1F, {impactParAxis}); histos.add("hImpactParameterGen", "Impact parameter of generated MC events", kTH1F, {impactParAxis}); histos.add("hImpactParameterRec", "Impact parameter of selected MC events", kTH1F, {impactParAxis}); @@ -418,6 +434,19 @@ struct HeavyionMultiplicity { return cent; } + template + float selColMultMC(CheckColCent const& col) + { + auto cent = -1; + if (isApplyCentFT0C) { + cent = col.multMCFT0C(); + } + if (isApplyCentFV0A) { + cent = col.multMCFV0A(); + } + return cent; + } + template float selColOccu(CheckColOccu const& col) { @@ -919,10 +948,13 @@ struct HeavyionMultiplicity { // All generated events histos.fill(HIST("MCEventHist"), 1); histos.fill(HIST("hImpactParameterGen"), mcCollision.impactParameter()); + histos.fill(HIST("hMultEta05Gen"), mcCollision.multMCNParticlesEta05()); + histos.fill(HIST("hMultGen"), selColMultMC(mcCollision)); if (RecCols.size() == 0) { histos.fill(HIST("MCEventHist"), 3); histos.fill(HIST("hImpactParameterGenwithNoreco"), mcCollision.impactParameter()); + histos.fill(HIST("hMultEta05GenwithNoreco"), mcCollision.multMCNParticlesEta05()); } bool atLeastOne = false; @@ -948,15 +980,19 @@ struct HeavyionMultiplicity { if (atLeastOne) { histos.fill(HIST("MCEventHist"), 2); histos.fill(HIST("hImpactParameterRec"), mcCollision.impactParameter()); + histos.fill(HIST("hMultEta05Rec"), mcCollision.multMCNParticlesEta05()); + histos.fill(HIST("hMultRec"), selColMultMC(mcCollision)); histos.fill(HIST("hImpactParvsCentrRec"), centrality, mcCollision.impactParameter()); + histos.fill(HIST("hMultEta05vsCentrRec"), centrality, mcCollision.multMCNParticlesEta05()); + histos.fill(HIST("hMultvsCentrRec"), centrality, selColMultMC(mcCollision)); } for (const auto& particle : GenParticles) { if (RecCols.size() == 0) { - histos.fill(HIST("hgendndetaVscentGenwithNOreco"), particle.eta(), mcCollision.impactParameter()); + histos.fill(HIST("hgendndetaVscentGenwithNOreco"), particle.eta(), mcCollision.impactParameter()); } else { - histos.fill(HIST("hgendndetaVscentGenwithReco"), particle.eta(), mcCollision.impactParameter()); + histos.fill(HIST("hgendndetaVscentGenwithReco"), particle.eta(), mcCollision.impactParameter()); } if (!isGenTrackSelected(particle)) { @@ -966,11 +1002,15 @@ struct HeavyionMultiplicity { // All generated particles histos.fill(HIST("hgendndetaBeforeEvtSel"), particle.eta()); histos.fill(HIST("hgendndetaVscentBeforeEvtSel"), particle.eta(), mcCollision.impactParameter()); + histos.fill(HIST("hgendndetaVsMultEta05BeforeEvtSel"), particle.eta(), mcCollision.multMCNParticlesEta05()); + histos.fill(HIST("hgendndetaVsMultBeforeEvtSel"), particle.eta(), selColMultMC(mcCollision)); if (atLeastOne) { // All generated particles with at least one reconstructed collision (signal loss estimation) histos.fill(HIST("hgendndetaAfterEvtSel"), particle.eta()); histos.fill(HIST("hgendndetaVscentAfterEvtSel"), particle.eta(), mcCollision.impactParameter()); + histos.fill(HIST("hgendndetaVsMultEta05AfterEvtSel"), particle.eta(), mcCollision.multMCNParticlesEta05()); + histos.fill(HIST("hgendndetaVsMultAfterEvtSel"), particle.eta(), selColMultMC(mcCollision)); } } } From f5f9f173c5f37b06ba50931027792888623dc121 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Fri, 5 Dec 2025 15:17:25 +0000 Subject: [PATCH 3/3] Please consider the following formatting changes --- .../GlobalEventProperties/heavyionMultiplicity.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx index 59527104ac3..d57b7a6539c 100644 --- a/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx @@ -317,15 +317,15 @@ struct HeavyionMultiplicity { x->SetBinLabel(2, "MC events with reco event after event selection"); x->SetBinLabel(3, "MC events with no reco events"); histos.add("hgendndetaVscentGenwithNOreco", "dndeta vs impact parameter, gen events with no reco", kTH2F, {axisEtaExtended, impactParAxis}); - histos.add("hgendndetaVscentGenwithReco" , "dndeta vs impact parameter, gen events with at least one reco", kTH2F, {axisEtaExtended, impactParAxis}); - + histos.add("hgendndetaVscentGenwithReco", "dndeta vs impact parameter, gen events with at least one reco", kTH2F, {axisEtaExtended, impactParAxis}); + histos.add("hMultEta05GenwithNoreco", "multiplicity in eta<0.5 of generated MC events, with no recoevent", kTH1F, {multAxis}); histos.add("hMultEta05Gen", "multiplicity in eta<0.5 of generated MC events", kTH1F, {multAxis}); histos.add("hMultEta05Rec", "multiplicity in eta<0.5 of selected MC events", kTH1F, {multAxis}); histos.add("hMultEta05vsCentrRec", "multiplicity in eta<0.5 of selected MC events vs centrality", kTH2F, {axisCent, multAxis}); histos.add("hgendndetaVsMultEta05BeforeEvtSel", "hgendndetaBeforeEvtSel vs multiplicity in eta<0.5", kTH2F, {axisEta, multAxis}); histos.add("hgendndetaVsMultEta05AfterEvtSel", "hgendndetaAfterEvtSel vs multiplicity in eta<0.5", kTH2F, {axisEta, multAxis}); - + histos.add("hMultGen", "multiplicity of generated MC events", kTH1F, {axisFt0cMult}); histos.add("hMultRec", "multiplicity of selected MC events", kTH1F, {axisFt0cMult}); histos.add("hMultvsCentrRec", "multiplicity of selected MC events vs centrality", kTH2F, {axisCent, axisFt0cMult}); @@ -988,11 +988,11 @@ struct HeavyionMultiplicity { } for (const auto& particle : GenParticles) { - + if (RecCols.size() == 0) { - histos.fill(HIST("hgendndetaVscentGenwithNOreco"), particle.eta(), mcCollision.impactParameter()); + histos.fill(HIST("hgendndetaVscentGenwithNOreco"), particle.eta(), mcCollision.impactParameter()); } else { - histos.fill(HIST("hgendndetaVscentGenwithReco"), particle.eta(), mcCollision.impactParameter()); + histos.fill(HIST("hgendndetaVscentGenwithReco"), particle.eta(), mcCollision.impactParameter()); } if (!isGenTrackSelected(particle)) {