ATLAS Offline Software
TruthTrkExtrapolationPlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <utility>
6 
7 
8 
11 
12 namespace Trk {
14  m_CaloEntry(this, "", "CaloEntry"),
15  m_MuonEntry(this, "", "MuonEntry"),
16  m_MuonExit(this, "", "MuonExit")
17  {// ,
18  // m_Calo(this,"Scattering/CaloOnly","CaloEntryLayer", "MuonEntryLayer"),
19  // m_MS(this,"/Scattering/MSOnly","MuonEntryLayer", "MuonExitLayer"),
20  // m_IP(this,"/Scattering/IPOnly","IP","CaloEntryLayer"),
21  // m_IP_Calo(this, "/Scattering/IP_Calo","IP","MuonEntryLayer"),
22  // m_Calo_MS(this, "/Scattering/Calo_MS","CaloEntryLayer","MuonExitLayer"),
23  // m_IP_MS(this, "/Scattering/IP_Calo_Ms","IP","MuonExitLayer")
24  }
25 
26  void
28  m_CaloEntry.fill(truthprt, "CaloEntryLayer", weight);
29  m_MuonEntry.fill(truthprt, "MuonEntryLayer", weight);
30  m_MuonExit.fill(truthprt, "MuonExitLayer", weight);
31 
32  // m_Calo.fill(truthprt,"CaloEntryLayer_","MuonEntryLayer_");
33  // m_MS.fill(truthprt, "MuonEntryLayer_","MuonExitLayer_");
34  // m_IP.fill(truthprt, "","CaloEntryLayer_");
35  // m_IP_Calo.fill(truthprt,"","MuonEntryLayer_");
36  // m_Calo_MS.fill(truthprt,"CaloEntryLayer_","MuonExitLayer_");
37  // m_IP_MS.fill(truthprt, "","MuonExitLayer_");
38  }
39 
40  ExtrLayerPlots::ExtrLayerPlots(PlotBase *pParent, const std::string& sDir, std::string sLayerName) : PlotBase(pParent, sDir),
41  m_sLayerName(std::move(sLayerName)),
42  p{},px{},py{},pz{},p_extr{},px_extr{},py_extr{},pz_extr{},dp_truth{},dpx_truth{},dpy_truth{},dpz_truth{},
43  pt{},eta{},phi{},theta{}{
44  //nop
45  }
46 
47  void
49  p = Book1D(m_sLayerName + "_p", m_sLayerName + " truth_p;Momentum [GeV];Entries", 100, 0., 400);
50  p_extr = Book1D(m_sLayerName + "_pExtr", m_sLayerName + " truth_p_extr;Momentum [GeV];Entries", 100, 0., 400);
51  dp_truth = Book1D(m_sLayerName + "_dp", m_sLayerName + " truth_dp;Momentum difference p-p_{extr} [GeV];Entries",
52  100, -10, 10);
53 
54  // px = Book1D(m_sLayerName+"_truth_px", m_sLayerName+ " truth_px;Momentum [GeV];Entries / 2.5 GeV",200,-250.,250);
55  // py = Book1D(m_sLayerName+"_truth_py", m_sLayerName+ " truth_py;Momentum [GeV];Entries / 2.5 GeV",200,-250.,250);
56  // pz = Book1D(m_sLayerName+"_truth_pz", m_sLayerName+ " truth_pz;Momentum [GeV];Entries / 2.5 GeV",200,-250.,250);
57 
58  // px_extr = Book1D(m_sLayerName+"_truth_px_extr", m_sLayerName+ " truth_px_extr;Momentum [GeV];Entries / 2.5
59  // GeV",200,-250.,250);
60  // py_extr = Book1D(m_sLayerName+"_truth_py_extr", m_sLayerName+ " truth_py_extr;Momentum [GeV];Entries / 2.5
61  // GeV",200,-250.,250);
62  // pz_extr = Book1D(m_sLayerName+"_truth_pz_extr", m_sLayerName+ " truth_pz_extr;Momentum [GeV];Entries / 2.5
63  // GeV",200,-250.,250);
64 
65  // dpx_truth = Book1D(m_sLayerName+"_truth_dpx", m_sLayerName+ " truth_dpx;Momentum difference
66  // px-px_extr[GeV];Entries / 2.5 GeV",250,-25,25);
67  // dpy_truth = Book1D(m_sLayerName+"_truth_dpy", m_sLayerName+ " truth_dpy;Momentum difference
68  // py-py_extr[GeV];Entries / 2.5 GeV",250,-25,25);
69  // dpz_truth = Book1D(m_sLayerName+"_truth_dpz", m_sLayerName+ " truth_dpz;Momentum difference
70  // pz-pz_extr[GeV];Entries / 2.5 GeV",250,-25,25);
71  // pt = Book1D(m_sLayerName+"_truth_pt", m_sLayerName+ " truth_pt;Transverse Momentum [GeV];Entries / 2.5
72  // GeV",100,0.,250);
73  // eta = Book1D(m_sLayerName+"_truth_eta",m_sLayerName+ " truth_eta;Pseudo-Rapidity;Entries / 0.1",64,-3.2,3.2);
74  // phi = Book1D(m_sLayerName+"_truth_phi",m_sLayerName+ " truth_phi;Azimuthal Angle;Entries / 0.1",64,-3.2,3.2);
75  // theta = Book1D(m_sLayerName+"_truth_theta",m_sLayerName+ " truth_theta;polar Angle;Entries / 0.1",32,0,3.2);
76  }
77 
78  void
79  ExtrLayerPlots::fill(const xAOD::TruthParticle &truthprt, const std::string& sNom, float weight) {
80  SG::ConstAccessor<float> pxAcc (sNom + "_px");
81  SG::ConstAccessor<float> pyAcc (sNom + "_py");
82  SG::ConstAccessor<float> pzAcc (sNom + "_pz");
83  if (!pxAcc.isAvailable(truthprt) ||
84  !pyAcc.isAvailable(truthprt) ||
85  !pzAcc.isAvailable(truthprt)) {
86  return;
87  }
88 
89  TVector3 vec(pxAcc(truthprt), pyAcc(truthprt), pzAcc(truthprt));
90 
91  SG::ConstAccessor<float> px_extrAcc (sNom + "_px_extr");
92  SG::ConstAccessor<float> py_extrAcc (sNom + "_py_extr");
93  SG::ConstAccessor<float> pz_extrAcc (sNom + "_pz_extr");
94  TVector3 vec_extr;
95  if (!px_extrAcc.isAvailable(truthprt) ||
96  !py_extrAcc.isAvailable(truthprt) ||
97  !pz_extrAcc.isAvailable(truthprt)) {
98  return;
99  }
100 
101  vec_extr.SetXYZ(px_extrAcc(truthprt), py_extrAcc(truthprt), pz_extrAcc(truthprt));
102 
103  p->Fill(vec.Mag() * 0.001, weight);
104  // px->Fill(vec.Px()*0.001);
105  // py->Fill(vec.Py()*0.001);
106  // pz->Fill(vec.Pz()*0.001);
107  p_extr->Fill(vec_extr.Mag() * 0.001, weight);
108  // px_extr->Fill(vec_extr.Px()*0.001);
109  // py_extr->Fill(vec_extr.Py()*0.001);
110  // pz_extr->Fill(vec_extr.Pz()*0.001);
111  dp_truth->Fill((vec.Mag() - vec_extr.Mag()) * 0.001, weight);
112  // dpx_truth->Fill((vec.Px()-vec_extr.Px())*0.001);
113  // dpy_truth->Fill((vec.Py()-vec_extr.Py())*0.001);
114  // dpz_truth->Fill((vec.Pz()-vec_extr.Pz())*0.001);
115  // pt->Fill(vec.Perp()*0.001);
116  // eta->Fill(vec.PseudoRapidity());
117  // phi->Fill(vec.Phi());
118  // theta->Fill(vec.Theta());
119  }
120 
121  ExtrRegionPlots::ExtrRegionPlots(PlotBase *pParent, const std::string& sDir, std::string sRegionBegin,
122  std::string sRegionEnd) : PlotBase(pParent, sDir),
123  m_sRegionBegin(std::move(sRegionBegin)),
124  m_sRegionEnd(std::move(sRegionEnd)),
125  dp{},dpt{},dpx{},dpy{},dpz{},dp_extr{},dpx_extr{},dpy_extr{},dpz_extr{},
126  dp_vs_p{},dp_vs_phi{},dp_vs_eta{},dp_vs_eta_phi{},p_vs_p{},p_extr_vs_p_extr{},dp_extr_vs_eta{},
127  dR{},dR_vs_p{},dR_vs_dp{},dR_vs_eta{},dR_vs_phi{},dR_vs_eta_phi{},dphi{},dtheta{},dAngle{},
128  dp_CaloEntry_IP_dp_CaloEntry_etxr{} {
129  //nop
130  }
131 
132  void
134  // histogram definitions for scattering plots
135  // variables within subdetector(s)
136  // energy loss related quantities
137  dp = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp",
138  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth p: p_{begin} vs p_{end}; #Delta p=p_{begin}-p_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
139  20.);
140  dpt = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpt",
141  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth pt;#Delta pt=pt_{begin}-pt_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
142  20.);
143  dpx = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpx",
144  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth px;#Delta px=px_{begin}-px_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
145  20.);
146  dpy = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpy",
147  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth py;#Delta py=py_{begin}-py_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
148  20.);
149  dpz = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpz",
150  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth pz;#Delta pz=pz_{begin}-pz_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
151  20.);
152 
153  // extrapolated quantities: CaloEntryLayer_p_extr=extrapolated value from IP to CaloEntryLayer using e-loss
154  // parametrization
155  // if comparison to IP, truth_p_extr=truth_p
156  dp_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_extr",
157  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth p, extrapolated from IP to current layer; #Delta p=p_extr_{begin}-p_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
158  20.);
159  dpx_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpx_extr",
160  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth px, extrapolated from IP to current layer; #Delta px=px_extr_{begin}-px_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
161  20.);
162  dpy_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpy_extr",
163  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth py, extrapolated from IP to current layer; #Delta py=py_extr_{begin}-py_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
164  20.);
165  dpz_extr = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dpz_extr",
166  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in truth pz, extrapolated from IP to current layer; #Delta pz=pz_extr_{begin}-pz_extr_{end} [GeV];Entries / 0.5 GeV", 80, -20.,
167  20.);
168 
169  // 2D plots
170  dp_vs_p = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_p",
171  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p (#Delta p=p_{begin}-p_{end}) vs p_{begin};p_{begin} [GeV];#Delta p=p_{begin}-p_{end} [GeV]", 250, 0., 250., 80, 0.,
172  20);
173  dp_vs_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_phi",
174  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p(#Delta p=p_{begin}-p_{end}) vs phi_{begin};phi_{begin};#Delta p=p_{begin}-p_{end} [GeV]", 128, -3.2, 3.2, 80, 0.,
175  20);
176  dp_vs_eta = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_eta",
177  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p(#Delta p=p_{begin}-p_{end}) vs eta_{begin};#eta_{begin};#Delta p=p_{begin}-p_{end} [GeV]", 128, -3.2, 3.2, 80, 0.,
178  20);
179  p_vs_p = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_p_vs_p",
180  m_sRegionBegin + " vs " + m_sRegionEnd + " p_{begin} vs p_{end};p_{begin} [GeV]; p_{end} [GeV]",
181  250, 0., 250, 250, 0., 250);
182  p_extr_vs_p_extr = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_p_extr_vs_p_extr",
183  m_sRegionBegin + " vs " + m_sRegionEnd + " p_{begin extr} vs p_{end extr};p_{begin extr} [GeV]; p_{end extr} [GeV]", 250, 0., 250, 250, 0.,
184  250);
185  dp_extr_vs_eta = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_extr_vs_eta",
186  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in p_{extr}(#Delta p_{extr}=p_{begin extr}-p_{end extr}) vs eta_{begin};#eta__{begin};#Delta p_{extr}=p_{begin extr}-p_{end extr} [GeV]", 128, -3.2, 3.2, 80, 0.,
187  20);
188 
189  // 3D
190  dp_vs_eta_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dp_vs_eta_phi",
191  m_sRegionBegin + " vs " + m_sRegionEnd + " sum of bin entries: difference in p(#Delta p=p_{begin}-p_{end}) vs eta_{begin} and phi_{begin};#eta__{begin};#phi__{begin};#Delta p=p_{begin}-p_{end} [GeV]", 128, -3.2, 3.2, 128, -3.2,
192  -3.2);
193 
194  // measure for multiple scattering
195  dR = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR",
196  m_sRegionBegin + " vs " + m_sRegionEnd + " dR between the two positions in the detector;pt_{begin}->dR(pt_{end});Entries / 0.05", 100, 0.,
197  0.5);
198  // 2D
199  dR_vs_p = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_p",
200  m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs p_{begin};p_{begin} [GeV];_{begin}->dR(p_{end})",
201  250, 0., 250, 100, 0., 0.5);
202  dR_vs_dp = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_dp",
203  m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs difference in p;#Delta p=p_{begin}-p_{end} [GeV];p_{begin}->dR(p_{end})", 80, 0., 20, 100, 0.,
204  0.5);
205  dR_vs_eta = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_eta",
206  m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs eta;#eta_{begin};p_{begin}->dR(p_{end})", 128,
207  -3.2, 3.2, 100, 0., 0.5);
208  dR_vs_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_phi",
209  m_sRegionBegin + " vs " + m_sRegionEnd + " dR vs phi;#phi_{begin};p_{begin}->dR(p_{end})", 128,
210  -3.2, 3.2, 100, 0., 0.5);
211  dR_vs_eta_phi = Book2D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dR_vs_eta_phi",
212  m_sRegionBegin + " vs " + m_sRegionEnd + " sum of bin entries: dR vs eta and phi;#eta_{begin};#phi_{begin};#DeltaR", 128, -3.2, 3.2, 128, -3.2,
213  3.2);
214 
215  dphi = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dphi",
216  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in phi;#Delta phi;Entries / 0.05", 100, -0.25,
217  0.25);
218  dtheta = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dtheta",
219  m_sRegionBegin + " vs " + m_sRegionEnd + " difference in theta;#Delta theta;Entries / 0.002", 100,
220  -0.25, 0.25);
221  dAngle = Book1D(m_sRegionBegin + "_vs_" + m_sRegionEnd + "_dAngle",
222  m_sRegionBegin + " vs " + m_sRegionEnd + " total angle difference;#Delta angle;Entries / 0.002",
223  100, -0.25, 0.25);
224  }
225 
226  void
227  ExtrRegionPlots::fill(const xAOD::TruthParticle &truthprt, const std::string& sDetBegin, const std::string& sDetEnd, float weight) {
228  SG::ConstAccessor<float> pxBeginAcc (sDetBegin + "_px");
229  SG::ConstAccessor<float> pyBeginAcc (sDetBegin + "_py");
230  SG::ConstAccessor<float> pzBeginAcc (sDetBegin + "_pz");
231  SG::ConstAccessor<float> pxEndAcc (sDetEnd + "_px");
232  SG::ConstAccessor<float> pyEndAcc (sDetEnd + "_py");
233  SG::ConstAccessor<float> pzEndAcc (sDetEnd + "_pz");
234  if (!pxBeginAcc.isAvailable(truthprt) ||
235  !pyBeginAcc.isAvailable(truthprt) ||
236  !pzBeginAcc.isAvailable(truthprt) ||
237  !pxEndAcc.isAvailable(truthprt) ||
238  !pyEndAcc.isAvailable(truthprt) ||
239  !pzEndAcc.isAvailable(truthprt)) {
240  return;
241  }
242 
243  TVector3 vecDetBegin(pxBeginAcc(truthprt), pyBeginAcc(truthprt), pzBeginAcc(truthprt));
244  TVector3 vecDetEnd(pxEndAcc(truthprt), pyEndAcc(truthprt), pzEndAcc(truthprt));
245 
246 
247  // check if IP, since extr is not available there (sDetBegin="")
248  TVector3 vecDetBegin_extr;
249  if (!sDetBegin.empty()) {
250  SG::ConstAccessor<float> px_extrAcc (sDetBegin + "_px_extr");
251  SG::ConstAccessor<float> py_extrAcc (sDetBegin + "_py_extr");
252  SG::ConstAccessor<float> pz_extrAcc (sDetBegin + "_pz_extr");
253  if (!px_extrAcc.isAvailable(truthprt) ||
254  !py_extrAcc.isAvailable(truthprt) ||
255  !pz_extrAcc.isAvailable(truthprt)) {
256  return;
257  }
258 
259  vecDetBegin_extr.SetXYZ(px_extrAcc(truthprt), py_extrAcc(truthprt), pz_extrAcc(truthprt));
260  }else {
261  vecDetBegin_extr = vecDetBegin;
262  }
263 
264  TVector3 vecDetEnd_extr;
265  if (!sDetEnd.empty()) {
266  SG::ConstAccessor<float> px_extrAcc (sDetEnd + "_px_extr");
267  SG::ConstAccessor<float> py_extrAcc (sDetEnd + "_py_extr");
268  SG::ConstAccessor<float> pz_extrAcc (sDetEnd + "_pz_extr");
269  if (!px_extrAcc.isAvailable(truthprt) ||
270  !py_extrAcc.isAvailable(truthprt) ||
271  !pz_extrAcc.isAvailable(truthprt)) {
272  return;
273  }
274 
275  vecDetEnd_extr.SetXYZ(px_extrAcc(truthprt), py_extrAcc(truthprt), pz_extrAcc(truthprt));
276  }else {
277  vecDetEnd_extr = vecDetEnd;
278  }
279 
280  dp->Fill((vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
281  dpt->Fill((vecDetBegin.Perp() - vecDetEnd.Perp()) * 0.001, weight);
282  dpx->Fill((vecDetBegin.Px() - vecDetEnd.Px()) * 0.001, weight);
283  dpy->Fill((vecDetBegin.Py() - vecDetEnd.Py()) * 0.001, weight);
284  dpz->Fill((vecDetBegin.Pz() - vecDetEnd.Pz()) * 0.001, weight);
285  dp_extr->Fill((vecDetBegin_extr.Mag() - vecDetEnd_extr.Mag()) * 0.001, weight);
286  dpx_extr->Fill((vecDetBegin_extr.Px() - vecDetEnd_extr.Px()) * 0.001, weight);
287  dpy_extr->Fill((vecDetBegin_extr.Py() - vecDetEnd_extr.Py()) * 0.001, weight);
288  dpz_extr->Fill((vecDetBegin_extr.Pz() - vecDetEnd_extr.Pz()) * 0.001, weight);
289  // 2D
290  dp_vs_p->Fill(vecDetBegin.Mag() * 0.001, (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
291  dp_vs_phi->Fill(vecDetBegin.Phi(), (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
292  dp_vs_eta->Fill(vecDetBegin.Eta(), (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, weight);
293  // not sure how to weight this
294  dp_vs_eta_phi->Fill(vecDetBegin.Eta(), vecDetBegin.Phi(), (vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001);
295  p_vs_p->Fill(vecDetBegin.Mag() * 0.001, vecDetEnd.Mag() * 0.001, weight);
296  p_extr_vs_p_extr->Fill(vecDetBegin_extr.Mag() * 0.001, vecDetEnd_extr.Mag() * 0.001, weight);
297  dp_extr_vs_eta->Fill(vecDetBegin_extr.Eta(), (vecDetBegin_extr.Mag() - vecDetEnd_extr.Mag()) * 0.001, weight);
298 
299  // multiple scattering
300  dR->Fill(vecDetBegin.DeltaR(vecDetEnd),weight);
301  // 2D
302  dR_vs_p->Fill(vecDetBegin.Mag() * 0.001, vecDetBegin.DeltaR(vecDetEnd),weight);
303  dR_vs_dp->Fill((vecDetBegin.Mag() - vecDetEnd.Mag()) * 0.001, vecDetBegin.DeltaR(vecDetEnd), weight);
304  dR_vs_eta->Fill(vecDetBegin.Eta(), vecDetBegin.DeltaR(vecDetEnd), weight);
305  dR_vs_phi->Fill(vecDetBegin.Phi(), vecDetBegin.DeltaR(vecDetEnd), weight);
306  // not sure how to weight this
307  dR_vs_eta_phi->Fill(vecDetBegin.Eta(), vecDetBegin.Phi(), vecDetBegin.DeltaR(vecDetEnd) );
308 
309  dphi->Fill(vecDetBegin.DeltaPhi(vecDetEnd), weight);
310  dtheta->Fill(vecDetBegin.Theta() - vecDetEnd.Theta(), weight);
311 
312  dAngle->Fill(vecDetBegin.Angle(vecDetEnd), weight);
313  }
314 }// namespace trk
TH2::Fill
int Fill(double, double)
Definition: rootspy.cxx:382
Trk::py
@ py
Definition: ParamDefs.h:66
TileDCSDataPlotter.dp
dp
Definition: TileDCSDataPlotter.py:840
Trk::ExtrRegionPlots::dp_vs_phi
TH2 * dp_vs_phi
Definition: TruthTrkExtrapolationPlots.h:61
Trk::ExtrRegionPlots::dR_vs_phi
TH2 * dR_vs_phi
Definition: TruthTrkExtrapolationPlots.h:73
Trk::ExtrRegionPlots::m_sRegionEnd
std::string m_sRegionEnd
Definition: TruthTrkExtrapolationPlots.h:48
PlotBase::Book1D
TH1F * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:88
Trk::ExtrRegionPlots::dpz_extr
TH1 * dpz_extr
Definition: TruthTrkExtrapolationPlots.h:58
Trk::TruthTrkExtrapolationPlots::TruthTrkExtrapolationPlots
TruthTrkExtrapolationPlots(PlotBase *pParent, const std::string &sDir)
Definition: TruthTrkExtrapolationPlots.cxx:13
Trk::ExtrRegionPlots::dp_vs_eta
TH2 * dp_vs_eta
Definition: TruthTrkExtrapolationPlots.h:62
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::ExtrRegionPlots::dp_vs_p
TH2 * dp_vs_p
Definition: TruthTrkExtrapolationPlots.h:60
PlotBase
Definition: PlotBase.h:33
Trk::ExtrRegionPlots::dp
TH1 * dp
Definition: TruthTrkExtrapolationPlots.h:50
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Trk::ExtrRegionPlots::dpx
TH1 * dpx
Definition: TruthTrkExtrapolationPlots.h:52
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
Trk::ExtrRegionPlots::dtheta
TH1 * dtheta
Definition: TruthTrkExtrapolationPlots.h:77
Trk::ExtrRegionPlots::dpx_extr
TH1 * dpx_extr
Definition: TruthTrkExtrapolationPlots.h:56
Trk::ExtrRegionPlots::dpy
TH1 * dpy
Definition: TruthTrkExtrapolationPlots.h:53
Trk::ExtrLayerPlots::p
TH1 * p
Definition: TruthTrkExtrapolationPlots.h:21
Trk::ExtrRegionPlots::dp_extr
TH1 * dp_extr
Definition: TruthTrkExtrapolationPlots.h:55
TruthTrkExtrapolationPlots.h
Trk::ExtrRegionPlots::initializePlots
void initializePlots()
Definition: TruthTrkExtrapolationPlots.cxx:133
test_pyathena.pt
pt
Definition: test_pyathena.py:11
PlotBase::Book2D
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2D histogram.
Definition: PlotBase.cxx:117
Trk::TruthTrkExtrapolationPlots::fill
void fill(const xAOD::TruthParticle &truthprt, float weight=1.0)
Definition: TruthTrkExtrapolationPlots.cxx:27
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
SG::ConstAccessor< float >
Trk::TruthTrkExtrapolationPlots::m_CaloEntry
ExtrLayerPlots m_CaloEntry
Definition: TruthTrkExtrapolationPlots.h:92
Trk::ExtrRegionPlots::dR
TH1 * dR
Definition: TruthTrkExtrapolationPlots.h:69
Trk::pz
@ pz
global momentum (cartesian)
Definition: ParamDefs.h:67
Trk::ExtrRegionPlots::p_extr_vs_p_extr
TH2 * p_extr_vs_p_extr
Definition: TruthTrkExtrapolationPlots.h:65
Trk::ExtrRegionPlots::dR_vs_eta
TH2 * dR_vs_eta
Definition: TruthTrkExtrapolationPlots.h:72
Trk::TruthTrkExtrapolationPlots::m_MuonExit
ExtrLayerPlots m_MuonExit
Definition: TruthTrkExtrapolationPlots.h:94
Trk::ExtrLayerPlots::m_sLayerName
std::string m_sLayerName
Definition: TruthTrkExtrapolationPlots.h:19
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
Trk::ExtrRegionPlots::ExtrRegionPlots
ExtrRegionPlots(PlotBase *pParent, const std::string &sDir, std::string sRegionBegin, std::string sRegionEnd)
Definition: TruthTrkExtrapolationPlots.cxx:121
Trk::theta
@ theta
Definition: ParamDefs.h:72
Trk::ExtrRegionPlots::fill
void fill(const xAOD::TruthParticle &truthprt, const std::string &sRegionBegin, const std::string &sRegionEnd, float weight=1.0)
Definition: TruthTrkExtrapolationPlots.cxx:227
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:41
Trk::ExtrRegionPlots::dpy_extr
TH1 * dpy_extr
Definition: TruthTrkExtrapolationPlots.h:57
Trk::ExtrRegionPlots::m_sRegionBegin
std::string m_sRegionBegin
Definition: TruthTrkExtrapolationPlots.h:47
Trk::ExtrRegionPlots::dpz
TH1 * dpz
Definition: TruthTrkExtrapolationPlots.h:54
Trk::px
@ px
Definition: ParamDefs.h:65
Trk::ExtrLayerPlots::fill
void fill(const xAOD::TruthParticle &truthprt, const std::string &sLayerName, float weight=1.0)
Definition: TruthTrkExtrapolationPlots.cxx:79
Trk::ExtrRegionPlots::dp_extr_vs_eta
TH2 * dp_extr_vs_eta
Definition: TruthTrkExtrapolationPlots.h:66
Trk::ExtrRegionPlots::dp_vs_eta_phi
TH2 * dp_vs_eta_phi
Definition: TruthTrkExtrapolationPlots.h:63
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ExtrRegionPlots::dR_vs_p
TH2 * dR_vs_p
Definition: TruthTrkExtrapolationPlots.h:70
Trk::ExtrLayerPlots::ExtrLayerPlots
ExtrLayerPlots(PlotBase *pParent, const std::string &sDir, std::string sLayerName)
Definition: TruthTrkExtrapolationPlots.cxx:40
Trk::ExtrRegionPlots::dphi
TH1 * dphi
Definition: TruthTrkExtrapolationPlots.h:76
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Trk::phi
@ phi
Definition: ParamDefs.h:81
Trk::ExtrLayerPlots::p_extr
TH1 * p_extr
Definition: TruthTrkExtrapolationPlots.h:25
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
Trk::ExtrRegionPlots::dpt
TH1 * dpt
Definition: TruthTrkExtrapolationPlots.h:51
Trk::ExtrRegionPlots::dAngle
TH1 * dAngle
Definition: TruthTrkExtrapolationPlots.h:78
Trk::ExtrRegionPlots::dR_vs_eta_phi
TH2 * dR_vs_eta_phi
Definition: TruthTrkExtrapolationPlots.h:74
Trk::ExtrLayerPlots::initializePlots
void initializePlots()
Definition: TruthTrkExtrapolationPlots.cxx:48
Trk::ExtrRegionPlots::dR_vs_dp
TH2 * dR_vs_dp
Definition: TruthTrkExtrapolationPlots.h:71
Trk::ExtrRegionPlots::p_vs_p
TH2 * p_vs_p
Definition: TruthTrkExtrapolationPlots.h:64
Trk::TruthTrkExtrapolationPlots::m_MuonEntry
ExtrLayerPlots m_MuonEntry
Definition: TruthTrkExtrapolationPlots.h:93
Trk::ExtrLayerPlots::dp_truth
TH1 * dp_truth
Definition: TruthTrkExtrapolationPlots.h:29