@@ -82,13 +82,15 @@ struct CreateResolutionMap {
8282 ConfigurableAxis ConfEtaCBGenBins{" ConfEtaCBGenBins" , {30 , -1.5 , +1.5 }, " gen. eta bins at midrapidity for output histograms" };
8383 ConfigurableAxis ConfEtaFWDGenBins{" ConfEtaFWDGenBins" , {40 , -5.5 , -1.5 }, " gen. eta bins at forward rapidity for output histograms" };
8484 ConfigurableAxis ConfPhiGenBins{" ConfPhiGenBins" , {36 , 0 , 2 .f * M_PI}, " gen. phi bins at forward rapidity for output histograms" };
85- ConfigurableAxis ConfPhiPositionCBGenBins{" ConfPhiPositionCBGenBins" , {VARIABLE_WIDTH, 2.3 - M_PI, 0.85 , 2.3 , 0.85 + M_PI, 2.3 + M_PI}, " gen. phi psotion bins at forward rapidity for output histograms" }; // default is adjusted at R = 0.50 m
86- ConfigurableAxis ConfPhiPositionFWDGenBins{" ConfPhiPositionFWDGenBins" , {1 , 0 , 2 * M_PI}, " gen. phi psotion bins at forward rapidity for output histograms" };
85+ // ConfigurableAxis ConfPhiPositionCBGenBins{"ConfPhiPositionCBGenBins", {VARIABLE_WIDTH, 2.3 - M_PI, 0.85, 2.3, 0.85 + M_PI, 2.3 + M_PI}, "gen. phi psotion bins at forward rapidity for output histograms"}; // default is adjusted at R = 0.50 m
86+ // ConfigurableAxis ConfPhiPositionFWDGenBins{"ConfPhiPositionFWDGenBins", {1, 0, 2 * M_PI}, "gen. phi psotion bins at forward rapidity for output histograms"};
8787 Configurable<float > cfgRefR{" cfgRefR" , 0.50 , " ref. radius (m) for calculating phi position" }; // 0.50 +/- 0.06 can be syst. unc.
8888
89- ConfigurableAxis ConfRelDeltaPtBins{" ConfRelDeltaPtBins" , {200 , -1 .f , +1 .f }, " rel. dpt for output histograms" };
90- ConfigurableAxis ConfDeltaEtaCBBins{" ConfDeltaEtaCBBins" , {200 , -0 .5f , +0 .5f }, " deta bins for output histograms" };
91- ConfigurableAxis ConfDeltaEtaFWDBins{" ConfDeltaEtaFWDBins" , {200 , -0 .5f , +0 .5f }, " deta bins for output histograms" };
89+ ConfigurableAxis ConfRelDeltaPtCBBins{" ConfRelDeltaPtCBBins" , {200 , -1 .f , +1 .f }, " rel. dpt for output histograms at midrapidity" };
90+ ConfigurableAxis ConfRelDeltaPtFWDBins{" ConfRelDeltaPtFWDBins" , {200 , -1 .f , +1 .f }, " rel. dpt for output histograms at fwd rapidity" };
91+
92+ ConfigurableAxis ConfDeltaEtaCBBins{" ConfDeltaEtaCBBins" , {200 , -0 .5f , +0 .5f }, " deta bins for output histograms at midrapidity" };
93+ ConfigurableAxis ConfDeltaEtaFWDBins{" ConfDeltaEtaFWDBins" , {200 , -0 .5f , +0 .5f }, " deta bins for output histograms at fwd rapidity" };
9294 ConfigurableAxis ConfDeltaPhiBins{" ConfDeltaPhiBins" , {200 , -0 .5f , +0 .5f }, " dphi bins for output histograms" };
9395
9496 Configurable<bool > cfgFillTHnSparse{" cfgFillTHnSparse" , true , " fill THnSparse for output" };
@@ -193,12 +195,12 @@ struct CreateResolutionMap {
193195 o2::dataformats::VertexBase mVtx ;
194196 const o2::dataformats::MeanVertexObject* mMeanVtx = nullptr ;
195197 o2::base::MatLayerCylSet* lut = nullptr ;
196- std::vector<float > phiPosition_bin_edges;
198+ // std::vector<float> phiPosition_bin_edges;
197199
198200 ~CreateResolutionMap ()
199201 {
200- phiPosition_bin_edges.clear ();
201- phiPosition_bin_edges.shrink_to_fit ();
202+ // phiPosition_bin_edges.clear();
203+ // phiPosition_bin_edges.shrink_to_fit();
202204 }
203205
204206 void init (o2::framework::InitContext&)
@@ -224,35 +226,36 @@ struct CreateResolutionMap {
224226 d_bz = 0 ;
225227 mBzMFT = 0 ;
226228
227- if (ConfPhiPositionCBGenBins.value [0 ] == VARIABLE_WIDTH) {
228- phiPosition_bin_edges = std::vector<float >(ConfPhiPositionCBGenBins.value .begin (), ConfPhiPositionCBGenBins.value .end ());
229- phiPosition_bin_edges.erase (phiPosition_bin_edges.begin ());
230- // for (const auto& edge : phiPosition_bin_edges) {
231- // LOGF(info, "VARIABLE_WIDTH: phiPosition_bin_edges = %f", edge);
232- // }
233- } else { // FIXED bin width
234- int nbins = static_cast <int >(ConfPhiPositionCBGenBins.value [0 ]);
235- float xmin = static_cast <float >(ConfPhiPositionCBGenBins.value [1 ]);
236- float xmax = static_cast <float >(ConfPhiPositionCBGenBins.value [2 ]);
237- phiPosition_bin_edges.resize (nbins + 1 );
238- for (int i = 0 ; i < nbins + 1 ; i++) {
239- phiPosition_bin_edges[i] = (xmax - xmin) / (nbins)*i + xmin;
240- // LOGF(info, "FIXED_WIDTH: phiPosition_bin_edges[%d] = %f", i, phiPosition_bin_edges[i]);
241- }
242- }
229+ // if (ConfPhiPositionCBGenBins.value[0] == VARIABLE_WIDTH) {
230+ // phiPosition_bin_edges = std::vector<float>(ConfPhiPositionCBGenBins.value.begin(), ConfPhiPositionCBGenBins.value.end());
231+ // phiPosition_bin_edges.erase(phiPosition_bin_edges.begin());
232+ // // for (const auto& edge : phiPosition_bin_edges) {
233+ // // LOGF(info, "VARIABLE_WIDTH: phiPosition_bin_edges = %f", edge);
234+ // // }
235+ // } else { // FIXED bin width
236+ // int nbins = static_cast<int>(ConfPhiPositionCBGenBins.value[0]);
237+ // float xmin = static_cast<float>(ConfPhiPositionCBGenBins.value[1]);
238+ // float xmax = static_cast<float>(ConfPhiPositionCBGenBins.value[2]);
239+ // phiPosition_bin_edges.resize(nbins + 1);
240+ // for (int i = 0; i < nbins + 1; i++) {
241+ // phiPosition_bin_edges[i] = (xmax - xmin) / (nbins)*i + xmin;
242+ // // LOGF(info, "FIXED_WIDTH: phiPosition_bin_edges[%d] = %f", i, phiPosition_bin_edges[i]);
243+ // }
244+ // }
243245
244246 const AxisSpec axis_cent{ConfCentBins, " centrality (%)" };
245247 const AxisSpec axis_pt_gen{ConfPtGenBins, " p_{T,l}^{gen} (GeV/c)" };
246248 const AxisSpec axis_eta_cb_gen{ConfEtaCBGenBins, " #eta_{l}^{gen}" };
247249 const AxisSpec axis_eta_fwd_gen{ConfEtaFWDGenBins, " #eta_{l}^{gen}" };
248250 const AxisSpec axis_phi_gen{ConfPhiGenBins, " #varphi_{l}^{gen} (rad.)" };
249- const AxisSpec axis_dpt{ConfRelDeltaPtBins, " (p_{T,l}^{gen} - p_{T,l}^{rec})/p_{T,l}^{gen}" };
251+ const AxisSpec axis_dpt_cb{ConfRelDeltaPtCBBins, " (p_{T,l}^{gen} - p_{T,l}^{rec})/p_{T,l}^{gen}" };
252+ const AxisSpec axis_dpt_fwd{ConfRelDeltaPtFWDBins, " (p_{T,l}^{gen} - p_{T,l}^{rec})/p_{T,l}^{gen}" };
250253 const AxisSpec axis_deta_cb{ConfDeltaEtaCBBins, " #eta_{l}^{gen} - #eta_{l}^{rec}" };
251254 const AxisSpec axis_deta_fwd{ConfDeltaEtaFWDBins, " #eta_{l}^{gen} - #eta_{l}^{rec}" };
252255 const AxisSpec axis_dphi{ConfDeltaPhiBins, " #varphi_{l}^{gen} - #varphi_{l}^{rec} (rad.)" };
253256 const AxisSpec axis_charge_gen{3 , -1.5 , +1.5 , " true sign" };
254- const AxisSpec axis_phiPositionCB_gen{ConfPhiPositionCBGenBins, Form (" #varphi^{*, gen} (rad.) at r_{xy} = %3.2f m" , cfgRefR.value )};
255- const AxisSpec axis_phiPositionFWD_gen{ConfPhiPositionFWDGenBins, " #varphi^{*, gen} (rad.)" };
257+ // const AxisSpec axis_phiPositionCB_gen{ConfPhiPositionCBGenBins, Form("#varphi^{*, gen} (rad.) at r_{xy} = %3.2f m", cfgRefR.value)};
258+ // const AxisSpec axis_phiPositionFWD_gen{ConfPhiPositionFWDGenBins, "#varphi^{*, gen} (rad.)"};
256259
257260 // registry.add("Event/Electron/hImpPar_Centrality", "true imapact parameter vs. estimated centrality;impact parameter (fm);centrality (%)", kTH2F, {{200, 0, 20}, {110, 0, 110}}, true);
258261 // registry.add("Event/Electron/hImpPar_Centrality", "true imapact parameter vs. estimated centrality;impact parameter (fm);centrality (%)", kTH2F, {{200, 0, 20}, {110, 0, 110}}, true);
@@ -262,24 +265,24 @@ struct CreateResolutionMap {
262265 if (cfgFillTH2) {
263266 registry.add (" Electron/hPt" , " rec. p_{T,e};p_{T,e} (GeV/c)" , kTH1F , {{1000 , 0 , 10 }}, false );
264267 registry.add (" Electron/hEtaPhi" , " rec. #eta vs. #varphi;#varphi_{e} (rad.);#eta_{e}" , kTH2F , {{90 , 0 , 2 * M_PI}, {100 , -5 , +5 }}, false );
265- registry.add (" Electron/Ptgen_RelDeltaPt" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dpt }}, true );
268+ registry.add (" Electron/Ptgen_RelDeltaPt" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dpt_cb }}, true );
266269 registry.add (" Electron/Ptgen_DeltaEta" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_deta_cb}}, true );
267270 registry.add (" Electron/Ptgen_DeltaPhi_Pos" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dphi}}, true );
268271 registry.add (" Electron/Ptgen_DeltaPhi_Neg" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dphi}}, true );
269272
270273 registry.add (" StandaloneMuon/hPt" , " rec. p_{T,#mu};p_{T,#mu} (GeV/c)" , kTH1F , {{1000 , 0 , 10 }}, false );
271274 registry.add (" StandaloneMuon/hEtaPhi" , " rec. #eta vs. #varphi;#varphi_{#mu} (rad.);#eta_{#mu}" , kTH2F , {{90 , 0 , 2 * M_PI}, {100 , -5 , +5 }}, false );
272- registry.add (" StandaloneMuon/Ptgen_RelDeltaPt" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dpt }}, true );
275+ registry.add (" StandaloneMuon/Ptgen_RelDeltaPt" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dpt_fwd }}, true );
273276 registry.add (" StandaloneMuon/Ptgen_DeltaEta" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_deta_fwd}}, true );
274277 registry.add (" StandaloneMuon/Ptgen_DeltaPhi_Pos" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dphi}}, true );
275278 registry.add (" StandaloneMuon/Ptgen_DeltaPhi_Neg" , " resolution" , kTH2F , {{axis_pt_gen}, {axis_dphi}}, true );
276279 registry.addClone (" StandaloneMuon/" , " GlobalMuon/" );
277280 }
278281
279282 if (cfgFillTHnSparse) {
280- registry.add (" Electron/hs_reso" , " 9D resolution" , kTHnSparseF , {axis_cent, axis_pt_gen, axis_eta_cb_gen, axis_phi_gen, axis_phiPositionCB_gen, axis_charge_gen, axis_dpt , axis_deta_cb, axis_dphi}, true );
281- registry.add (" StandaloneMuon/hs_reso" , " 9D resolution" , kTHnSparseF , {axis_cent, axis_pt_gen, axis_eta_fwd_gen, axis_phi_gen, axis_phiPositionFWD_gen, axis_charge_gen, axis_dpt , axis_deta_fwd, axis_dphi}, true );
282- registry.add (" GlobalMuon/hs_reso" , " 9D resolution" , kTHnSparseF , {axis_cent, axis_pt_gen, axis_eta_fwd_gen, axis_phi_gen, axis_phiPositionFWD_gen, axis_charge_gen, axis_dpt , axis_deta_fwd, axis_dphi}, true );
283+ registry.add (" Electron/hs_reso" , " 8D resolution" , kTHnSparseF , {axis_cent, axis_pt_gen, axis_eta_cb_gen, axis_phi_gen, axis_charge_gen, axis_dpt_cb , axis_deta_cb, axis_dphi}, true );
284+ registry.add (" StandaloneMuon/hs_reso" , " 8D resolution" , kTHnSparseF , {axis_cent, axis_pt_gen, axis_eta_fwd_gen, axis_phi_gen, axis_charge_gen, axis_dpt_fwd , axis_deta_fwd, axis_dphi}, true );
285+ registry.add (" GlobalMuon/hs_reso" , " 8D resolution" , kTHnSparseF , {axis_cent, axis_pt_gen, axis_eta_fwd_gen, axis_phi_gen, axis_charge_gen, axis_dpt_fwd , axis_deta_fwd, axis_dphi}, true );
283286 }
284287 }
285288
@@ -697,7 +700,7 @@ struct CreateResolutionMap {
697700 return ;
698701 }
699702 if (cfgFillTHnSparse) {
700- registry.fill (HIST (" StandaloneMuon/hs_reso" ), centrality, mcparticle.pt (), mcparticle.eta (), mcparticle.phi (), 1 . f , -mcparticle.pdgCode () / 13 , (mcparticle.pt () - pt) / mcparticle.pt (), mcparticle.eta () - eta, mcparticle.phi () - phi);
703+ registry.fill (HIST (" StandaloneMuon/hs_reso" ), centrality, mcparticle.pt (), mcparticle.eta (), mcparticle.phi (), -mcparticle.pdgCode () / 13 , (mcparticle.pt () - pt) / mcparticle.pt (), mcparticle.eta () - eta, mcparticle.phi () - phi);
701704 }
702705
703706 if (cfgFillTH2) {
@@ -716,7 +719,7 @@ struct CreateResolutionMap {
716719 return ;
717720 }
718721 if (cfgFillTHnSparse) {
719- registry.fill (HIST (" GlobalMuon/hs_reso" ), centrality, mcparticle.pt (), mcparticle.eta (), mcparticle.phi (), 1 . f , -mcparticle.pdgCode () / 13 , (mcparticle.pt () - pt) / mcparticle.pt (), mcparticle.eta () - eta, mcparticle.phi () - phi);
722+ registry.fill (HIST (" GlobalMuon/hs_reso" ), centrality, mcparticle.pt (), mcparticle.eta (), mcparticle.phi (), -mcparticle.pdgCode () / 13 , (mcparticle.pt () - pt) / mcparticle.pt (), mcparticle.eta () - eta, mcparticle.phi () - phi);
720723 }
721724 if (cfgFillTH2) {
722725 registry.fill (HIST (" GlobalMuon/hPt" ), pt);
@@ -840,15 +843,15 @@ struct CreateResolutionMap {
840843 float phi = trackParCov.getPhi ();
841844 o2::math_utils::bringTo02Pi (phi);
842845
843- float phiPosition = mcparticle.phi () + std::asin (-0.30282 * (-mcparticle.pdgCode () / 11 ) * (d_bz * 0.1 ) * cfgRefR / (2 .f * mcparticle.pt ()));
844- phiPosition = RecoDecay::constrainAngle (phiPosition, phiPosition_bin_edges[0 ], 1U );
846+ // float phiPosition = mcparticle.phi() + std::asin(-0.30282 * (-mcparticle.pdgCode() / 11) * (d_bz * 0.1) * cfgRefR / (2.f * mcparticle.pt()));
847+ // phiPosition = RecoDecay::constrainAngle(phiPosition, phiPosition_bin_edges[0], 1U);
845848
846849 if (!isSelectedTrackWithKine (track, pt, eta, trackParCov.getTgl (), dcaXY, dcaZ)) {
847850 return ;
848851 }
849852
850853 if (cfgFillTHnSparse) {
851- registry.fill (HIST (" Electron/hs_reso" ), centrality, mcparticle.pt (), mcparticle.eta (), mcparticle.phi (), phiPosition, -mcparticle.pdgCode () / 11 , (mcparticle.pt () - pt) / mcparticle.pt (), mcparticle.eta () - eta, mcparticle.phi () - phi);
854+ registry.fill (HIST (" Electron/hs_reso" ), centrality, mcparticle.pt (), mcparticle.eta (), mcparticle.phi (), -mcparticle.pdgCode () / 11 , (mcparticle.pt () - pt) / mcparticle.pt (), mcparticle.eta () - eta, mcparticle.phi () - phi);
852855 }
853856 if (cfgFillTH2) {
854857 registry.fill (HIST (" Electron/hPt" ), pt);
0 commit comments