Skip to content

Commit bb64d99

Browse files
authored
[PWGLF] Add selection QA mode and update MC rec/true (#14317)
1 parent 5a0bb91 commit bb64d99

File tree

1 file changed

+142
-55
lines changed

1 file changed

+142
-55
lines changed

PWGLF/Tasks/Resonances/f0980analysis.cxx

Lines changed: 142 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
#include "Math/LorentzVector.h"
3232
#include "Math/Vector4D.h"
3333
#include "TVector2.h"
34-
#include <TLorentzVector.h>
3534

3635
#include <vector>
3736

@@ -53,10 +52,9 @@ struct f0980analysis {
5352
Configurable<float> cfgMaxDCAzToPVcut{"cfgMaxDCAzToPVcut", 2.0, "Maximum longitudinal DCA"};
5453
Configurable<float> cfgMinRap{"cfgMinRap", -0.5, "Minimum rapidity for pair"};
5554
Configurable<float> cfgMaxRap{"cfgMaxRap", 0.5, "Maximum rapidity for pair"};
56-
Configurable<bool> cfgFindRT{"cfgFindRT", false, "boolean for RT analysis"};
5755

5856
// Track selections
59-
Configurable<bool> cfgPrimaryTrack{"cfgPrimaryTrack", true, "Primary track selection"}; // kGoldenChi2 | kDCAxy | kDCAz
57+
Configurable<bool> cfgPrimaryTrack{"cfgPrimaryTrack", false, "Primary track selection"}; // kGoldenChi2 | kDCAxy | kDCAz
6058
Configurable<bool> cfgGlobalTrack{"cfgGlobalTrack", false, "Global track selection"}; // kGoldenChi2 | kDCAxy | kDCAz
6159
Configurable<bool> cfgGlobalWoDCATrack{"cfgGlobalWoDCATrack", true, "Global track selection without DCA"}; // kQualityTracks (kTrackType |
6260
// kTPCNCls | kTPCCrossedRows |
@@ -77,54 +75,92 @@ struct f0980analysis {
7775
Configurable<double> cMaxTPCnSigmaPion{"cMaxTPCnSigmaPion", 5.0, "TPC nSigma cut for Pion"};
7876
Configurable<double> cMaxTPCnSigmaPionWoTOF{"cMaxTPCnSigmaPionWoTOF", 2.0, "TPC nSigma cut without TOF for Pion"};
7977
Configurable<double> nsigmaCutCombinedPion{"nsigmaCutCombinedPion", -999, "Combined nSigma cut for Pion"};
80-
Configurable<int> selectType{"SelectType", 0, "PID selection type"};
78+
Configurable<int> selectType{"selectType", 0, "PID selection type"};
8179

8280
// Axis
8381
ConfigurableAxis massAxis{"massAxis", {400, 0.2, 2.2}, "Invariant mass axis"};
8482
ConfigurableAxis pTAxis{"pTAxis", {VARIABLE_WIDTH, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10.0, 13.0, 20.0}, "Transverse momentum Binning"};
8583
ConfigurableAxis centAxis{"centAxis", {VARIABLE_WIDTH, 0.0, 1.0, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0, 80.0, 95.0, 100.0, 105.0, 110.0}, "Centrality Binning"};
8684

85+
Configurable<bool> cfgFindRT{"cfgFindRT", false, "boolean for RT analysis"};
86+
Configurable<bool> cfgFindEP{"cfgFindEP", false, "boolean for Event plane analysis"};
87+
Configurable<bool> cfgQAEPLT{"cfgQAEPLT", false, "Fill QA histograms for Event Plane and Leading Track"};
88+
Configurable<bool> cfgQASelection{"cfgQASelection", true, "Fill QA histograms for Selection"};
89+
Configurable<bool> cfgQAMCTrue{"cfgQAMCTrue", false, "Fill QA histograms for MC True Selection"};
90+
8791
void init(o2::framework::InitContext&)
8892
{
8993
std::vector<double> lptBinning = {0, 5.0, 13.0, 20.0, 50.0, 1000.0};
9094

9195
AxisSpec rtAxis = {3, 0, 3};
92-
AxisSpec lptAxis = {lptBinning}; // Minimum leading hadron pT selection
93-
94-
AxisSpec pidqaAxis = {60, -6, 6};
95-
AxisSpec pTqaAxis = {200, 0, 20};
96-
AxisSpec phiqaAxis = {72, 0, o2::constants::math::TwoPI}; // Azimuthal angle axis
97-
96+
AxisSpec lptAxis = {lptBinning}; // Minimum leading hadron pT selection
9897
AxisSpec epAxis = {10, 0, o2::constants::math::PI}; // Event Plane
9998
AxisSpec epqaAxis = {200, -o2::constants::math::PI, o2::constants::math::PI};
10099
AxisSpec epResAxis = {200, -2, 2};
101100

101+
AxisSpec pidqaAxis = {60, -6, 6, "#sigma"};
102+
AxisSpec pTqaAxis = {200, 0, 20, "#it{p}_{T} (GeV/#it{c})"};
103+
AxisSpec phiqaAxis = {72, 0, o2::constants::math::TwoPI, "#Phi"}; // Azimuthal angle axis
104+
AxisSpec etaqaAxis = {150, -2, 2, "#eta"}; // Pseudorapidity axis
105+
AxisSpec rapqaAxis = {60, -1.5, 1.5, "#it{y}"}; // Rapidity axis
106+
AxisSpec dcaxyAxis = {200, -5.0, 5.0, "DCA_{xy} (cm)"}; // DCAxy axis
107+
AxisSpec dcazAxis = {200, -5.0, 5.0, "DCA_{z} (cm)"}; // DCAz axis
108+
109+
AxisSpec collCutAxis = {4, -0.5, 3.5, "Collision cut index for MC"};
110+
102111
if (cfgFindRT) {
103-
histos.add("hInvMass_f0980_US", "unlike invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, rtAxis, lptAxis}});
104-
histos.add("hInvMass_f0980_LSpp", "++ invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, rtAxis, lptAxis}});
105-
histos.add("hInvMass_f0980_LSmm", "-- invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, rtAxis, lptAxis}});
106-
} else {
112+
histos.add("hInvMass_f0980_US_RT", "unlike invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, rtAxis, lptAxis}});
113+
histos.add("hInvMass_f0980_LSpp_RT", "++ invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, rtAxis, lptAxis}});
114+
histos.add("hInvMass_f0980_LSmm_RT", "-- invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, rtAxis, lptAxis}});
115+
} else if (cfgFindEP) {
107116
histos.add("hInvMass_f0980_US_EPA", "unlike invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, epAxis}});
108117
histos.add("hInvMass_f0980_LSpp_EPA", "++ invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, epAxis}});
109118
histos.add("hInvMass_f0980_LSmm_EPA", "-- invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis, epAxis}});
119+
} else {
120+
histos.add("hInvMass_f0980_US", "unlike invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis}});
121+
histos.add("hInvMass_f0980_LSpp", "++ invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis}});
122+
histos.add("hInvMass_f0980_LSmm", "-- invariant mass", {HistType::kTHnSparseF, {massAxis, pTAxis, centAxis}});
110123
}
111124

112-
histos.add("QA/EPhist", "", {HistType::kTH2F, {centAxis, epqaAxis}});
113-
histos.add("QA/hEPResAB", "", {HistType::kTH2F, {centAxis, epResAxis}});
114-
histos.add("QA/hEPResBC", "", {HistType::kTH2F, {centAxis, epResAxis}});
115-
histos.add("QA/hEPResAC", "", {HistType::kTH2F, {centAxis, epResAxis}});
116-
117-
histos.add("QA/LTpt", "", {HistType::kTH3F, {pTqaAxis, centAxis, phiqaAxis}});
118-
119-
histos.add("QA/Nsigma_TPC", "", {HistType::kTH2F, {pTqaAxis, pidqaAxis}});
120-
histos.add("QA/Nsigma_TOF", "", {HistType::kTH2F, {pTqaAxis, pidqaAxis}});
121-
histos.add("QA/Nsigma_TPC_TOF", "", {HistType::kTH2F, {pidqaAxis, pidqaAxis}});
122-
123-
if (doprocessMCLight) {
124-
histos.add("MCL/hpT_f0980_GEN", "generated f0 signals", HistType::kTH1F, {pTqaAxis});
125-
histos.add("MCL/hpT_f0980_REC", "reconstructed f0 signals", HistType::kTH3F, {massAxis, pTqaAxis, centAxis});
125+
if (cfgQAEPLT) {
126+
// Event Plane QA
127+
histos.add("QA/EPhist", "", {HistType::kTH2F, {centAxis, epqaAxis}});
128+
histos.add("QA/hEPResAB", "", {HistType::kTH2F, {centAxis, epResAxis}});
129+
histos.add("QA/hEPResBC", "", {HistType::kTH2F, {centAxis, epResAxis}});
130+
histos.add("QA/hEPResAC", "", {HistType::kTH2F, {centAxis, epResAxis}});
131+
// Leading track pT QA
132+
histos.add("QA/LTpt", "", {HistType::kTH3F, {pTqaAxis, centAxis, phiqaAxis}});
133+
}
134+
if (cfgQASelection) {
135+
// General QA
136+
histos.add("QA/TrackPt", "", {HistType::kTH1F, {pTqaAxis}});
137+
histos.add("QA/TrackEta", "", {HistType::kTH1F, {etaqaAxis}});
138+
histos.add("QA/TrackPhi", "", {HistType::kTH1F, {phiqaAxis}});
139+
// Track selection QA
140+
histos.add("QA/trkDCAxy_BC", "DCA_{xy} for pion tracks (before cuts)", HistType::kTH2F, {pTqaAxis, dcaxyAxis});
141+
histos.add("QA/trkDCAz_BC", "DCA_{z} for pion tracks (before cuts)", HistType::kTH2F, {pTqaAxis, dcazAxis});
142+
histos.add("QA/trkDCAxy", "DCA_{xy} for pion tracks (after cuts)", HistType::kTH2F, {pTqaAxis, dcaxyAxis});
143+
histos.add("QA/trkDCAz", "DCA_{z} for pion tracks (after cuts)", HistType::kTH2F, {pTqaAxis, dcazAxis});
144+
// PID QA
145+
histos.add("QA/Nsigma_TPC_BC", "TPC n#sigma^{#pi} (before PID cuts); p_{T} (GeV/c); n#sigma_{TPC}^{#pi}", {HistType::kTH2F, {pTqaAxis, pidqaAxis}});
146+
histos.add("QA/Nsigma_TOF_BC", "TOF n#sigma^{#pi} (before PID cuts); p_{T} (GeV/c); n#sigma_{TOF}^{#pi}", {HistType::kTH2F, {pTqaAxis, pidqaAxis}});
147+
histos.add("QA/Nsigma_TPC_TOF_BC", "", {HistType::kTH2F, {pidqaAxis, pidqaAxis}});
148+
histos.add("QA/Nsigma_TPC", "TPC n#sigma^{#pi} (after PID cuts); p_{T} (GeV/c); n#sigma_{TPC}^{#pi}", {HistType::kTH2F, {pTqaAxis, pidqaAxis}});
149+
histos.add("QA/Nsigma_TOF", "TOF n#sigma^{#pi} (after PID cuts); p_{T} (GeV/c); n#sigma_{TOF}^{#pi}", {HistType::kTH2F, {pTqaAxis, pidqaAxis}});
150+
histos.add("QA/Nsigma_TPC_TOF", "", {HistType::kTH2F, {pidqaAxis, pidqaAxis}});
126151
}
127152

153+
if (doprocessMCRec) {
154+
histos.add("MCL/hpT_f0980_REC", "Reconstructed f0 signals", HistType::kTH3F, {massAxis, pTqaAxis, centAxis});
155+
}
156+
if (doprocessMCTrue) {
157+
// histos.add("MCL/hpT_f0980_GEN", "Generated f0 signals", HistType::kTH2F, {pTqaAxis, centAxis});
158+
histos.add("MCL/hpT_f0980_GEN", "Generated f0 signals; selIdx; p_{T} (GeV/c); Centrality (%)", HistType::kTH3F, {collCutAxis, pTqaAxis, centAxis});
159+
if (cfgQAMCTrue) {
160+
histos.add("QAMCTrue/f0_pt_y", "Generated f0 ; #it{p}_{T} (GeV/#it{c}) ; #it{y}", HistType::kTH2F, {pTqaAxis, rapqaAxis});
161+
histos.add("QAMCTrue/f0_pt_cent", "Generated f0 ; #it{p}_{T} (GeV/#it{c}); Centrality (%)", HistType::kTH2F, {pTqaAxis, centAxis});
162+
}
163+
}
128164
histos.print();
129165
}
130166

@@ -221,41 +257,71 @@ struct f0980analysis {
221257
lhphi = trk.phi();
222258
}
223259
}
260+
if (cfgQAEPLT)
261+
histos.fill(HIST("QA/LTpt"), lhpT, collision.cent(), lhphi);
262+
} else if (cfgFindEP) {
263+
if (cfgQAEPLT) {
264+
histos.fill(HIST("QA/EPhist"), collision.cent(), collision.evtPl());
265+
histos.fill(HIST("QA/hEPResAB"), collision.cent(), collision.evtPlResAB());
266+
histos.fill(HIST("QA/hEPResBC"), collision.cent(), collision.evtPlResBC());
267+
histos.fill(HIST("QA/hEPResAC"), collision.cent(), collision.evtPlResAC());
268+
}
224269
}
225-
histos.fill(HIST("QA/EPhist"), collision.cent(), collision.evtPl());
226-
histos.fill(HIST("QA/hEPResAB"), collision.cent(), collision.evtPlResAB());
227-
histos.fill(HIST("QA/hEPResBC"), collision.cent(), collision.evtPlResBC());
228-
histos.fill(HIST("QA/hEPResAC"), collision.cent(), collision.evtPlResAC());
229-
histos.fill(HIST("QA/LTpt"), lhpT, collision.cent(), lhphi);
230270

231271
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzM4D<float>> pion1, pion2, reco;
232272
for (const auto& [trk1, trk2] : combinations(CombinationsStrictlyUpperIndexPolicy(dTracks, dTracks))) {
233-
273+
if (cfgQASelection) {
274+
histos.fill(HIST("QA/trkDCAxy_BC"), trk1.pt(), trk1.dcaXY());
275+
histos.fill(HIST("QA/trkDCAz_BC"), trk1.pt(), trk1.dcaZ());
276+
}
234277
if (!selTrack(trk1) || !selTrack(trk2))
235278
continue;
236-
histos.fill(HIST("QA/Nsigma_TPC"), trk1.pt(), trk1.tpcNSigmaPi());
237-
histos.fill(HIST("QA/Nsigma_TOF"), trk1.pt(), trk1.tofNSigmaPi());
238-
histos.fill(HIST("QA/Nsigma_TPC_TOF"), trk1.tpcNSigmaPi(), trk1.tofNSigmaPi());
239-
279+
if (cfgQASelection) {
280+
histos.fill(HIST("QA/trkDCAxy"), trk1.pt(), trk1.dcaXY());
281+
histos.fill(HIST("QA/trkDCAz"), trk1.pt(), trk1.dcaZ());
282+
283+
histos.fill(HIST("QA/Nsigma_TPC_BC"), trk1.pt(), trk1.tpcNSigmaPi());
284+
if (trk1.hasTOF()) {
285+
histos.fill(HIST("QA/Nsigma_TOF_BC"), trk1.pt(), trk1.tofNSigmaPi());
286+
histos.fill(HIST("QA/Nsigma_TPC_TOF_BC"), trk1.tpcNSigmaPi(), trk1.tofNSigmaPi());
287+
}
288+
}
240289
if (!selPion(trk1) || !selPion(trk2))
241290
continue;
291+
if (cfgQASelection) {
292+
histos.fill(HIST("QA/Nsigma_TPC"), trk1.pt(), trk1.tpcNSigmaPi());
293+
if (trk1.hasTOF()) {
294+
histos.fill(HIST("QA/Nsigma_TOF"), trk1.pt(), trk1.tofNSigmaPi());
295+
histos.fill(HIST("QA/Nsigma_TPC_TOF"), trk1.tpcNSigmaPi(), trk1.tofNSigmaPi());
296+
}
297+
298+
histos.fill(HIST("QA/TrackPt"), trk1.pt());
299+
histos.fill(HIST("QA/TrackEta"), trk1.eta());
300+
histos.fill(HIST("QA/TrackPhi"), trk1.phi());
301+
}
242302

243303
pion1 = ROOT::Math::PxPyPzMVector(trk1.px(), trk1.py(), trk1.pz(), massPi);
244304
pion2 = ROOT::Math::PxPyPzMVector(trk2.px(), trk2.py(), trk2.pz(), massPi);
245305
reco = pion1 + pion2;
246306
if (reco.Rapidity() > cfgMaxRap || reco.Rapidity() < cfgMinRap)
247307
continue;
248308

249-
relphi = TVector2::Phi_0_2pi(reco.Phi() - collision.evtPl());
250-
if (relphi > o2::constants::math::PI) {
251-
relphi -= o2::constants::math::PI;
309+
if (cfgFindEP) {
310+
relphi = TVector2::Phi_0_2pi(reco.Phi() - collision.evtPl());
311+
if (relphi > o2::constants::math::PI) {
312+
relphi -= o2::constants::math::PI;
313+
}
252314
}
253315

254316
if (trk1.sign() * trk2.sign() < 0) {
255317
if (cfgFindRT) {
256-
histos.fill(HIST("hInvMass_f0980_US"), reco.M(), reco.Pt(), collision.cent(), rtIndex(reco.Phi(), lhphi), lhpT);
318+
histos.fill(HIST("hInvMass_f0980_US_RT"), reco.M(), reco.Pt(), collision.cent(), rtIndex(reco.Phi(), lhphi), lhpT);
319+
} else if (cfgFindEP) {
320+
histos.fill(HIST("hInvMass_f0980_US_EPA"), reco.M(), reco.Pt(), collision.cent(), relphi);
321+
} else {
322+
histos.fill(HIST("hInvMass_f0980_US"), reco.M(), reco.Pt(), collision.cent());
257323
}
258-
histos.fill(HIST("hInvMass_f0980_US_EPA"), reco.M(), reco.Pt(), collision.cent(), relphi);
324+
259325
if constexpr (IsMC) {
260326
if (std::abs(trk1.pdgCode()) != kPiPlus || std::abs(trk2.pdgCode()) != kPiPlus)
261327
continue;
@@ -267,14 +333,20 @@ struct f0980analysis {
267333
}
268334
} else if (trk1.sign() > 0 && trk2.sign() > 0) {
269335
if (cfgFindRT) {
270-
histos.fill(HIST("hInvMass_f0980_LSpp"), reco.M(), reco.Pt(), collision.cent(), rtIndex(reco.Phi(), lhphi), lhpT);
336+
histos.fill(HIST("hInvMass_f0980_LSpp_RT"), reco.M(), reco.Pt(), collision.cent(), rtIndex(reco.Phi(), lhphi), lhpT);
337+
} else if (cfgFindEP) {
338+
histos.fill(HIST("hInvMass_f0980_LSpp_EPA"), reco.M(), reco.Pt(), collision.cent(), relphi);
339+
} else {
340+
histos.fill(HIST("hInvMass_f0980_LSpp"), reco.M(), reco.Pt(), collision.cent());
271341
}
272-
histos.fill(HIST("hInvMass_f0980_LSpp_EPA"), reco.M(), reco.Pt(), collision.cent(), relphi);
273342
} else if (trk1.sign() < 0 && trk2.sign() < 0) {
274343
if (cfgFindRT) {
275-
histos.fill(HIST("hInvMass_f0980_LSmm"), reco.M(), reco.Pt(), collision.cent(), rtIndex(reco.Phi(), lhphi), lhpT);
344+
histos.fill(HIST("hInvMass_f0980_LSmm_RT"), reco.M(), reco.Pt(), collision.cent(), rtIndex(reco.Phi(), lhphi), lhpT);
345+
} else if (cfgFindEP) {
346+
histos.fill(HIST("hInvMass_f0980_LSmm_EPA"), reco.M(), reco.Pt(), collision.cent(), relphi);
347+
} else {
348+
histos.fill(HIST("hInvMass_f0980_LSmm"), reco.M(), reco.Pt(), collision.cent());
276349
}
277-
histos.fill(HIST("hInvMass_f0980_LSmm_EPA"), reco.M(), reco.Pt(), collision.cent(), relphi);
278350
}
279351
}
280352
}
@@ -286,15 +358,15 @@ struct f0980analysis {
286358
}
287359
PROCESS_SWITCH(f0980analysis, processData, "Process Event for data", true);
288360

289-
void processMCLight(
290-
o2::soa::Join<o2::aod::ResoCollisions, o2::aod::ResoEvtPlCollisions>::iterator const& collision,
291-
o2::soa::Join<o2::aod::ResoTracks, o2::aod::ResoMCTracks> const& resotracks)
361+
void processMCRec(o2::soa::Join<o2::aod::ResoCollisions, o2::aod::ResoEvtPlCollisions>::iterator const& collision,
362+
o2::soa::Join<o2::aod::ResoTracks, o2::aod::ResoMCTracks> const& resotracks)
292363
{
293364
fillHistograms<true>(collision, resotracks);
294365
}
295-
PROCESS_SWITCH(f0980analysis, processMCLight, "Process Event for MC", false);
366+
PROCESS_SWITCH(f0980analysis, processMCRec, "Process Event for MC", false);
296367

297-
void processMCTrue(const o2::aod::ResoMCParents& resoParents)
368+
void processMCTrue(o2::soa::Join<o2::aod::ResoCollisions, o2::aod::ResoMCCollisions>::iterator const& resoCollision,
369+
o2::aod::ResoMCParents const& resoParents)
298370
{
299371
for (const auto& part : resoParents) { // loop over all pre-filtered MC particles
300372
if (std::abs(part.pdgCode()) != 9010221)
@@ -305,14 +377,29 @@ struct f0980analysis {
305377
continue;
306378
}
307379
bool pass = false;
308-
if ((std::abs(part.daughterPDG1()) == kPiPlus &&
309-
std::abs(part.daughterPDG2()) == kPiPlus)) {
380+
if ((std::abs(part.daughterPDG1()) == kPiPlus && std::abs(part.daughterPDG2()) == kPiPlus)) {
310381
pass = true;
311382
}
312383
if (!pass) // If we have both decay products
313384
continue;
314385

315-
histos.fill(HIST("MCL/hpT_f0980_GEN"), part.pt());
386+
// no event selection
387+
histos.fill(HIST("MCL/hpT_f0980_GEN"), 0, part.pt(), resoCollision.cent());
388+
// |zvtx|<10 cm
389+
if (resoCollision.isVtxIn10()) {
390+
histos.fill(HIST("MCL/hpT_f0980_GEN"), 1, part.pt(), resoCollision.cent());
391+
}
392+
// |zvtx|<10 cm & TVX trigger
393+
if (resoCollision.isVtxIn10() && resoCollision.isTriggerTVX()) {
394+
histos.fill(HIST("MCL/hpT_f0980_GEN"), 2, part.pt(), resoCollision.cent());
395+
}
396+
if (resoCollision.isInAfterAllCuts()) {
397+
histos.fill(HIST("MCL/hpT_f0980_GEN"), 3, part.pt(), resoCollision.cent());
398+
}
399+
if (cfgQAMCTrue) {
400+
histos.fill(HIST("QAMCTrue/f0_pt_y"), part.pt(), part.y());
401+
histos.fill(HIST("QAMCTrue/f0_pt_cent"), part.pt(), resoCollision.cent());
402+
}
316403
}
317404
};
318405
PROCESS_SWITCH(f0980analysis, processMCTrue, "Process Event for MC", false);

0 commit comments

Comments
 (0)