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