@@ -59,6 +59,7 @@ struct PCMQCMC {
5959 Configurable<float > maxRgen{" maxRgen" , 90 .f , " maximum radius for generated particles" };
6060 Configurable<float > margin_z_mc{" margin_z_mc" , 7.0 , " margin for z cut in cm for MC" };
6161 Configurable<bool > cfgRequireTrueAssociation{" cfgRequireTrueAssociation" , false , " flag to require true mc collision association" };
62+ Configurable<bool > cfg_fill_resolution{" cfg_fill_resoltion" , false , " flag to fill resolution histogram" };
6263
6364 EMPhotonEventCut fEMEventCut ;
6465 struct : ConfigurableGroup {
@@ -207,9 +208,23 @@ struct PCMQCMC {
207208 fRegistry .add (" V0/primary/hPtGen_DeltaPtOverPtGen" , " photon p_{T} resolution;p_{T}^{gen} (GeV/c);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}" , kTH2F , {{1000 , 0 , 10 }, {200 , -1 .0f , 1 .0f }}, true );
208209 fRegistry .add (" V0/primary/hPtGen_DeltaEta" , " photon #eta resolution;p_{T}^{gen} (GeV/c);#eta^{rec} - #eta^{gen}" , kTH2F , {{1000 , 0 , 10 }, {100 , -0 .5f , 0 .5f }}, true );
209210 fRegistry .add (" V0/primary/hPtGen_DeltaPhi" , " photon #varphi resolution;p_{T}^{gen} (GeV/c);#varphi^{rec} - #varphi^{gen} (rad.)" , kTH2F , {{1000 , 0 , 10 }, {100 , -0 .5f , 0 .5f }}, true );
210- fRegistry .add (" V0/primary/hRxyGen_DeltaPtOverPtGen" , " photon p_{T} resolution; R_{xy}^{gen} (cm);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}" , kTH2F , {{1000 , 0 , 90 }, {200 , -1 .0f , 1 .0f }}, true );
211- fRegistry .add (" V0/primary/hRxyGen_DeltaEta" , " photon #eta resolution;R_{xy}^{gen} (cm);#eta^{rec} - #eta^{gen}" , kTH2F , {{1000 , 0 , 90 }, {100 , -0 .5f , 0 .5f }}, true );
212- fRegistry .add (" V0/primary/hRxyGen_DeltaPhi" , " photon #varphi resolution;R_{xy}^{gen} (cm);#varphi^{rec} - #varphi^{gen} (rad.)" , kTH2F , {{1000 , 0 , 90 }, {100 , -0 .5f , 0 .5f }}, true );
211+ fRegistry .add (" V0/primary/hRxyGen_DeltaPtOverPtGen" , " photon p_{T} resolution; R_{xy}^{gen} (cm);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}" , kTH2F , {{100 , 0 , 100 }, {200 , -1 .0f , 1 .0f }}, true );
212+ fRegistry .add (" V0/primary/hsPhotonResolution" ,
213+ " Photon resolution;p_{T};#eta;R_{xy};Z_{conv};Z_{vtx};#Deltap_{T}/p_{T};#Delta#eta;#Delta#phi" ,
214+ kTHnSparseF ,
215+ {{100 , 0 , 10 },
216+ {80 , -1.6 , 1.6 },
217+ {100 , 0 , 100 },
218+ {100 , -50 , 50 },
219+ {100 , -50 , 50 },
220+ {200 , -1 , 1 },
221+ {100 , -0.5 , 0.5 },
222+ {100 , -0.5 , 0.5 }},
223+ false );
224+ fRegistry .add (" V0/primary/hRxyGen_DeltaEta" , " photon #eta resolution;R_{xy}^{gen} (cm);#eta^{rec} - #eta^{gen}" , kTH2F , {{100 , 0 , 100 }, {100 , -0 .5f , 0 .5f }}, true );
225+ fRegistry .add (" V0/primary/hRxyGen_DeltaPhi" , " photon #varphi resolution;R_{xy}^{gen} (cm);#varphi^{rec} - #varphi^{gen} (rad.)" , kTH2F , {{100 , 0 , 100 }, {100 , -0 .5f , 0 .5f }}, true );
226+ fRegistry .add (" V0/primary/hRxyGen_DeltaR" , " photon #varphi resolution;R_{xy}^{gen} (cm);#varphi^{rec} - #varphi^{gen} (rad.)" , kTH2F , {{100 , 0 , 100 }, {100 , 0 , 100 }}, true );
227+ fRegistry .add (" V0/primary/hsConvVtxZPtR" , " z_{vtx} vs p_{T} vs R_{xy};z_{vtx} (cm);p_{T} (GeV/c);R_{xy} (cm)" , kTHnSparseF , {{100 , -20 .0f , +20 .0f }, {100 , 0 .0f , 10 .0f }, {100 , 0 , 100 }}, false );
213228 fRegistry .add (" V0/primary/hXY_MC" , " X vs. Y of true photon conversion point.;X (cm);Y (cm)" , kTH2F , {{400 , -100 .0f , +100 }, {400 , -100 , +100 }}, true );
214229 fRegistry .add (" V0/primary/hRZ_MC" , " R vs. Z of true photon conversion point;Z (cm);R_{xy} (cm)" , kTH2F , {{200 , -100 .0f , +100 }, {200 , 0 , 100 }}, true );
215230 fRegistry .add (" V0/primary/hsConvPoint" , " photon conversion point;r_{xy} (cm);#varphi (rad.);#eta;" , kTHnSparseF , {{100 , 0 .0f , 100 }, {90 , 0 , 2 * M_PI}, {80 , -2 , +2 }}, false );
@@ -243,7 +258,27 @@ struct PCMQCMC {
243258 fRegistry .add (" V0Leg/primary/hZY" , " Z vs. Y;Z (cm);Y (cm)" , kTH2F , {{200 , -100 , 100 }, {40 , -20 , 20 }}, false );
244259 fRegistry .add (" V0Leg/primary/hPtGen_DeltaPtOverPtGen" , " electron p_{T} resolution;p_{T}^{gen} (GeV/c);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}" , kTH2F , {{1000 , 0 , 10 }, {200 , -1 .0f , 1 .0f }}, true );
245260 fRegistry .add (" V0Leg/primary/hPtGen_DeltaEta" , " electron #eta resolution;p_{T}^{gen} (GeV/c);#eta^{rec} - #eta^{gen}" , kTH2F , {{1000 , 0 , 10 }, {100 , -0 .5f , 0 .5f }}, true );
261+ if (cfg_fill_resolution) {
262+ fRegistry .add (" V0Leg/primary/hsPhotonResolution" ,
263+ " Photon resolution;p_{T};#eta;R_{xy};Z_{conv};Z_{vtx};#Deltap_{T}/p_{T};#Delta#eta;#Delta#phi" ,
264+ kTHnSparseF ,
265+ {{100 , 0 , 10 },
266+ {80 , -1.6 , 1.6 },
267+ {100 , 0 , 100 },
268+ {100 , -50 , 50 },
269+ {100 , -50 , 50 },
270+ {200 , -1 , 1 },
271+ {100 , -0.5 , 0.5 },
272+ {100 , -0.5 , 0.5 }},
273+ false );
274+ }
275+
246276 fRegistry .add (" V0Leg/primary/hPtGen_DeltaPhi" , " electron #varphi resolution;p_{T}^{gen} (GeV/c);#varphi^{rec} - #varphi^{gen} (rad.)" , kTH2F , {{1000 , 0 , 10 }, {100 , -0 .5f , 0 .5f }}, true );
277+ fRegistry .add (" V0Leg/primary/hRxyGen_DeltaPtOverPtGen" , " photon p_{T} resolution; R_{xy}^{gen} (cm);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}" , kTH2F , {{100 , 0 , 100 }, {200 , -1 .0f , 1 .0f }}, true );
278+ fRegistry .add (" V0Leg/primary/hRxyGen_DeltaEta" , " photon #eta resolution;R_{xy}^{gen} (cm);#eta^{rec} - #eta^{gen}" , kTH2F , {{100 , 0 , 100 }, {100 , -0 .5f , 0 .5f }}, true );
279+ fRegistry .add (" V0Leg/primary/hRxyGen_DeltaPhi" , " photon #varphi resolution;R_{xy}^{gen} (cm);#varphi^{rec} - #varphi^{gen} (rad.)" , kTH2F , {{100 , 0 , 100 }, {100 , 0 , 100 }}, true );
280+ fRegistry .add (" V0Leg/primary/hRxyGen_DeltaR" , " photon p_{T} resolution; R_{xy}^{gen} (cm);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}" , kTH2F , {{100 , 0 , 100 }, {200 , -1 .0f , 1 .0f }}, true );
281+
247282 fRegistry .addClone (" V0Leg/primary/" , " V0Leg/fromWD/" ); // from weak decay
248283 fRegistry .addClone (" V0Leg/primary/" , " V0Leg/fromHS/" ); // from hadronic shower in detector materials
249284 fRegistry .addClone (" V0Leg/primary/" , " V0Leg/fromPi0Dalitz/" ); // misidentified dielectron from pi0 dalitz decay
@@ -361,6 +396,9 @@ struct PCMQCMC {
361396 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hMassGamma" ), v0.v0radius (), v0.mGamma ());
362397 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hKFChi2vsM" ), v0.mGamma (), v0.chiSquareNDF ());
363398 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hKFChi2vsR" ), v0.v0radius (), v0.chiSquareNDF ());
399+ fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hsConvVtxZPtR" ),
400+ v0.vz (), v0.pt (), v0.v0radius ());
401+
364402 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hKFChi2vsX" ), v0.vx (), v0.chiSquareNDF ());
365403 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hKFChi2vsY" ), v0.vy (), v0.chiSquareNDF ());
366404 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hKFChi2vsZ" ), v0.vz (), v0.chiSquareNDF ());
@@ -372,10 +410,21 @@ struct PCMQCMC {
372410 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hPtGen_DeltaPtOverPtGen" ), mcphoton.pt (), (v0.pt () - mcphoton.pt ()) / mcphoton.pt ());
373411 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hPtGen_DeltaEta" ), mcphoton.pt (), v0.eta () - mcphoton.eta ());
374412 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hPtGen_DeltaPhi" ), mcphoton.pt (), v0.phi () - mcphoton.phi ());
375- fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaPtOverPtGen" ), v0.v0radius (), (v0.pt () - mcphoton.pt ()) / mcphoton.pt ());
376- fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaEta" ), v0.v0radius (), v0.eta () - mcphoton.eta ());
377- fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaPhi" ), v0.v0radius (), v0.phi () - mcphoton.phi ());
378-
413+ fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaPtOverPtGen" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), (v0.pt () - mcphoton.pt ()) / mcphoton.pt ());
414+ fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaEta" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), v0.eta () - mcphoton.eta ());
415+ if (cfg_fill_resolution) {
416+ fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hsPhotonResolution" ),
417+ mcphoton.pt (),
418+ mcphoton.eta (),
419+ std::sqrt (mcleg.vx () * mcleg.vx () + mcleg.vy () * mcleg.vy ()),
420+ mcleg.vz (),
421+ v0.vz (),
422+ (v0.pt () - mcphoton.pt ()) / mcphoton.pt (),
423+ v0.eta () - mcphoton.eta (),
424+ TVector2::Phi_mpi_pi (v0.phi () - mcphoton.phi ()));
425+ }
426+ fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaPhi" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), v0.phi () - mcphoton.phi ());
427+ fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaR" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), v0.v0radius () - std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )));
379428 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hConvPoint_diffX" ), mcleg.vx (), v0.vx () - mcleg.vx ());
380429 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hConvPoint_diffY" ), mcleg.vy (), v0.vy () - mcleg.vy ());
381430 fRegistry .fill (HIST (" V0/" ) + HIST (mcphoton_types[mctype]) + HIST (" hConvPoint_diffZ" ), mcleg.vz (), v0.vz () - mcleg.vz ());
@@ -417,6 +466,20 @@ struct PCMQCMC {
417466 fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hPtGen_DeltaPtOverPtGen" ), mcleg.pt (), (leg.pt () - mcleg.pt ()) / mcleg.pt ());
418467 fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hPtGen_DeltaEta" ), mcleg.pt (), leg.eta () - mcleg.eta ());
419468 fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hPtGen_DeltaPhi" ), mcleg.pt (), leg.phi () - mcleg.phi ());
469+ fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaPtOverPtGen" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), (leg.pt () - mcleg.pt ()) / mcleg.pt ());
470+ if (cfg_fill_resolution) {
471+ fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hsPhotonResolution" ),
472+ mcleg.pt (),
473+ mcleg.eta (),
474+ std::sqrt (mcleg.vx () * mcleg.vx () + mcleg.vy () * mcleg.vy ()),
475+ mcleg.vz (),
476+ leg.z (),
477+ (leg.pt () - mcleg.pt ()) / mcleg.pt (),
478+ leg.eta () - mcleg.eta (),
479+ TVector2::Phi_mpi_pi (leg.phi () - mcleg.phi ()));
480+ }
481+ fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaEta" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), leg.eta () - mcleg.eta ());
482+ fRegistry .fill (HIST (" V0Leg/" ) + HIST (mcphoton_types[mctype]) + HIST (" hRxyGen_DeltaPhi" ), std::sqrt (std::pow (mcleg.vx (), 2 ) + std::pow (mcleg.vy (), 2 )), leg.phi () - mcleg.phi ());
420483 }
421484
422485 Filter collisionFilter_centrality = (cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < cfgCentMax);
0 commit comments