ATLAS Offline Software
Analysis_Tier0.cxx
Go to the documentation of this file.
1 
11 #include <cmath>
12 
15 
17 
19  double /*pTCut*/,
20  double /*etaCut*/,
21  double /*d0Cut*/,
22  double /*z0Cut*/)
24  // m_pTCut(pTCut), /// left in commented for development purposes
25  // m_etaCut(etaCut),
26  // m_d0Cut(d0Cut),
27  // m_z0Cut(z0Cut),
28  m_debug(false),
29  m_eventid(0),
30  m_monTool(0)
31 {}
32 
34 
35  ChainString cname = name();
36 
37  // std::cout << "Analysis_Tier0::initialise() name " << name() << std::endl;
38 
39 #if 0
40  std::cout << "\nAnalysis_Tier0:: chain specification: " << cname << "\t" << cname.raw() << std::endl;
41  std::cout << "\tchain: " << cname.head() << std::endl;
42  std::cout << "\tkey: " << cname.tail() << std::endl;
43  std::cout << "\troi: " << cname.roi() << std::endl;
44  std::cout << "\tvtx: " << cname.vtx() << std::endl;
45  std::cout << "\tte: " << cname.element() << std::endl;
46 #endif
47 
48  m_debug = false;
49 
50  m_h_chain = new TH1F( "Chain", cname.c_str(), 5, 0, 5 );
51  m_h_chain->GetXaxis()->SetBinLabel(1, "Nrois" );
52  m_h_chain->GetXaxis()->SetBinLabel(2, "Nevents" );
53  m_h_chain->GetXaxis()->SetBinLabel(3, "N ref tracks" );
54  m_h_chain->GetXaxis()->SetBinLabel(4, "N matched tracks" );
55  m_h_chain->GetXaxis()->SetBinLabel(5, "N total test tracks" );
56 
57 
59 
61 
63 
64 #if 0
65 
66  double vnbins[81] = {
67  -0.5,
68  0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,
69  10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5,
70  20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5,
71  31.5, 32.5, 33.5, 34.5, 36.5, 37.5, 39.5,
72  40.5, 42.5, 43.5, 45.5, 47.5, 49.5,
73  50.5, 52.5, 54.5, 57.5, 59.5,
74  61.5, 63.5, 66.5, 69.5,
75  71.5, 74.5, 77.5,
76  80.5, 83.5, 86.5,
77  90.5, 93.5, 97.5,
78  100.5, 104.5, 108.5,
79  113.5, 117.5,
80  122.5, 126.5,
81  131.5, 136.5,
82  142.5, 147.5,
83  153.5, 159.5,
84  165.5,
85  171.5, 178.5,
86  185.5,
87  192.5,
88  200.5 };
89 #endif
90 
91  double vnbins[101] = {
92  -0.5,
93  0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 17.5, 18.5, 19.5, 21.5,
94  23.5, 24.5, 26.5, 28.5, 30.5, 32.5, 35.5, 37.5, 40.5, 43.5, 46.5, 50.5, 53.5, 57.5, 61.5, 66.5, 71.5, 76.5, 81.5, 87.5,
95  93.5, 100.5, 107.5, 114.5, 123.5, 131.5, 141.5, 150.5, 161.5, 172.5, 185.5, 198.5, 211.5, 226.5, 242.5, 259.5, 277.5, 297.5, 317.5, 340.5,
96  363.5, 389.5, 416.5, 445.5, 476.5, 509.5,
97  544.5, 582.5, 623.5, 666.5, 713.5, 762.5, 815.5, 872.5, 933.5, 998.5, 1067.5,
98  1141.5, 1221.5, 1305.5, 1396.5, 1493.5, 1597.5,
99  1708.5, 1827.5, 1953.5, 2089.5,
100  2234.5, 2389.5, 2555.5,
101  2733.5, 2923.5, 3125.5,
102  3342.5, 3574.5,
103  3823.5, 4088.5,
104  4372.5, 4675.5,
105  5000.5
106  };
107 
108 
111  // m_h_ntrk = new TH1F( "reftrk_N", "Reference tracks", 100, vnbins );
112  m_h_ntrk = new TH1F( "reftrk_N", "Reference tracks", 77, vnbins );
113 
115 
117 
118  // double pt_bins[25] = { 0, 1, 2, 3, 4, 8, 10, 12, 14, 16, 18, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100 };
119 
120  std::vector<double> ptbins;
121 
122  for ( int i=0 ; i<=25 ; i++ ) {
123 
124  double y = std::log10(1) + i*( std::log10(100)-std::log10(1) )/25;
125 
126  double x = std::pow(10, y);
127  ptbins.push_back(x);
128 
129  }
130 
131  // m_h_trkpT = new TH1F("reftrk_pT" , "Reference track pT", 50, 0., 100.);
132  m_h_trkpT = new TH1F("reftrk_pT" , "Reference track pT", 25, &ptbins[0] );
133  m_h_trkphi = new TH1F("reftrk_phi", "Reference track Phi", 25, -M_PI, M_PI);
134  m_h_trketa = new TH1F("reftrk_eta", "Reference track Eta", 25, -2.5, 2.5) ;
135  if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
136  m_h_trkd0 = new TH1F("reftrk_d0" , "Reference track d0", 201, -100.0, 100.0 );
137  } else {
138  m_h_trkd0 = new TH1F("reftrk_d0" , "Reference track d0", 101, -5.0, 5.0 );
139  }
140  m_h_trkz0 = new TH1F("reftrk_z0" , "Reference track z0", 50, -225., 225.);
141 
143  m_h_trkdd0 = new TH1F("reftrk_dd0" , "Reference track sigma(d0)", 50, 0, 0.5);
144  m_h_trkdz0 = new TH1F("reftrk_dz0" , "Reference track sigma(z0)", 50, 0, 2.5);
145 
146  m_h_trkd0sig = new TH1F("reftrk_d0sig" , "Reference track d0 significance", 101, -5., 5.);
147 
153 
154 
157 
159 
161 
164  // m_h_ntrk_rec = new TH1F( "testtrk_N", "Test tracks", 100, vnbins );
165  m_h_ntrk_rec = new TH1F( "testtrk_N", "Test tracks", 77, vnbins );
166 
168 
169  // m_h_trkpT_rec = new TH1F("testtrk_pT" , "Test track pT", 25, 0., 100.);
170  m_h_trkpT_rec = new TH1F("testtrk_pT" , "Test track pT", 25, &ptbins[0] );
171  m_h_trkphi_rec = new TH1F("testtrk_phi", "Test track Phi", 25, -M_PI, M_PI);
172  m_h_trketa_rec = new TH1F("testtrk_eta", "Test track Eta", 25, -2.5, 2.5) ;
173  if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
174  m_h_trkd0_rec = new TH1F("testtrk_d0" , "Test track d0", 201, -100.0, 100.0 );
175  } else {
176  m_h_trkd0_rec = new TH1F("testtrk_d0" , "Test track d0", 101, -5.0, 5.0 );
177  }
178  m_h_trkz0_rec = new TH1F("testtrk_z0" , "Test track z0", 50, -225., 225.);
179 
180  m_h_trkdd0_rec = new TH1F("testtrk_dd0" , "Test track sigma(d0)", 50, 0, 0.5);
181  m_h_trkdz0_rec = new TH1F("testtrk_dz0" , "Test track sigma(z0)", 50, 0, 2.5);
182 
183  m_h_trkd0sig_rec = new TH1F("testtrk_d0sig" , "Test track d0 significance", 101, -5.0, 5.0);
184 
185 
191 
194 
196 
198 
199  double d0bins_LRT[124] = { -100.5,
200  -97.5, -93.5, -90.5,
201  -86.5, -83.5, -80.5,
202  -77.5, -74.5, -71.5,
203  -69.5, -66.5, -63.5, -61.5,
204  -59.5, -57.5, -54.5, -52.5, -50.5,
205  -49.5, -47.5, -45.5, -43.5, -42.5, -40.5,
206  -39.5, -37.5, -36.5, -34.5, -33.5, -32.5, -31.5,
207  -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5,
208  -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5,
209  -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
210  0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,
211  10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5,
212  20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5,
213  31.5, 32.5, 33.5, 34.5, 36.5, 37.5, 39.5,
214  40.5, 42.5, 43.5, 45.5, 47.5, 49.5,
215  50.5, 52.5, 54.5, 57.5, 59.5,
216  61.5, 63.5, 66.5, 69.5,
217  71.5, 74.5, 77.5,
218  80.5, 83.5, 86.5,
219  90.5, 93.5, 97.5,
220  100.5 };
221 
222  double d0bins[40] = { -5.0, -4.0, -3.0, -2.5,
223  -2.0, -1.8, -1.6, -1.4, -1.2,
224  -1.05, -0.95, -0.85, -0.75, -0.65, -0.55, -0.45, -0.35, -0.25, -0.15, -0.05,
225  0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 1.05,
226  1.2, 1.4, 1.6, 1.8, 2.0,
227  2.5, 3.0, 4.0, 5.0 };
228 
229 
230 
231  m_h_total_efficiency = new TProfile ("Eff_overall", "total efficiency", 1, 0., 1.);
232 
233  // m_h_pTeff = new TProfile( "Eff_pT", "pT efficiency", 25, 0., 100. );
234  m_h_pTeff = new TProfile( "Eff_pT", "pT efficiency", 25, &ptbins[0] );
235  m_h_etaeff = new TProfile( "Eff_Eta", "eta efficiency", 25, -2.5, 2.5 );
236  m_h_phieff = new TProfile( "Eff_Phi", "phi efficiency", 25, -M_PI, M_PI );
237  if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
238  m_h_d0eff = new TProfile( "Eff_d0", "d0 efficiency", 123, d0bins_LRT );
239  } else {
240  m_h_d0eff = new TProfile( "Eff_d0", "d0 efficiency", 39, d0bins );
241  }
242  m_h_z0eff = new TProfile( "Eff_z0", "z0 efficiency", 50, -225., 225. );
243  m_h_nVtxeff = new TProfile( "Eff_nVtx", "nVtx efficiency", 101, -0.5, 100.5 );
244 
245 
246  m_h_lbeff = new TProfile( "Eff_lb", "efficinecy vs lumiblock", 301, -0.5, 3009.5 );
247 
249 
250  m_h_trkvtx_x_lb = new TProfile( "trkvtx_x_vs_lb", "track vertex x vs lumiblock", 301, -0.5, 3009.5 );
251  m_h_trkvtx_y_lb = new TProfile( "trkvtx_y_vs_lb", "track vertex y vs lumiblock", 301, -0.5, 3009.5 );
252  m_h_trkvtx_z_lb = new TProfile( "trkvtx_z_vs_lb", "track vertex z vs lumiblock", 301, -0.5, 3009.5 );
253 
257 
259  m_h_npixvseta = new TProfile("npix_vs_eta", "offline npix vs eta;offline #eta;# mean number of offline pixel hits", 30, -2.5, 2.5);
260  m_h_npixvseta_rec = new TProfile("npix_vs_eta_rec", "trigger npix vs eta;offline #eta;# mean number of trigger pixel hits", 30, -2.5, 2.5);
261 
262  m_h_nsctvseta = new TProfile("nsct_vs_eta", "offline nsct vs eta;offline #eta;# mean number of offline sct hits", 30, -2.5, 2.5);
263  m_h_nsctvseta_rec = new TProfile("nsct_vs_eta_rec", "trigger nsct vs eta;offline #eta;# mean number of trigger sct hits", 30, -2.5, 2.5);
264 
265  m_h_ntrtvseta = new TProfile("ntrt_vs_eta", "offline ntrt vs eta;offline #eta;# mean number of offline trt hits", 30, -2.5, 2.5 );
266  m_h_ntrtvseta_rec = new TProfile("ntrt_vs_eta_rec", "trigger ntrt vs eta;offline #eta;# mean number of trigger trt hits", 30, -2.5, 2.5 );
267 
268  m_h_npixvsphi = new TProfile("npix_vs_phi", "offline npix vs phi;offline #phi;# mean number of offline pixel hits", 30, -M_PI, M_PI);
269  m_h_npixvsphi_rec = new TProfile("npix_vs_phi_rec", "trigger npix vs phi;offline #phi;# mean number of trigger pixel hits", 30, -M_PI, M_PI);
270 
271  m_h_nsctvsphi = new TProfile("nsct_vs_phi", "offline nsct vs phi;offline #phi;# mean number of offline sct hits", 30, -M_PI, M_PI);
272  m_h_nsctvsphi_rec = new TProfile("nsct_vs_phi_rec", "trigger nsct vs phi;offline #phi;# mean number of trigger sct hits", 30, -M_PI, M_PI);
273 
274  m_h_ntrtvsphi = new TProfile("ntrt_vs_phi", "offline ntrt vs phi;offline #phi;# mean number of offline trt hits", 30, -M_PI, M_PI );
275  m_h_ntrtvsphi_rec = new TProfile("ntrt_vs_phi_rec", "trigger ntrt vs phi;offline #phi;# mean number of trigger trt hits", 30, -M_PI, M_PI );
276 
277  if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
278  m_h_npixvsd0 = new TProfile("npix_vs_d0", "offline npix vs d0;offline #d0;# mean number of offline pixel hits", 123, d0bins_LRT );
279  m_h_npixvsd0_rec = new TProfile("npix_vs_d0_rec", "trigger npix vs d0;offline #d0;# mean number of trigger pixel hits", 123, d0bins_LRT );
280 
281  m_h_nsctvsd0 = new TProfile("nsct_vs_d0", "offline nsct vs d0;offline #d0;# mean number of offline sct hits", 123, d0bins_LRT );
282  m_h_nsctvsd0_rec = new TProfile("nsct_vs_d0_rec", "trigger nsct vs d0;offline #d0;# mean number of trigger sct hits", 123, d0bins_LRT );
283  } else {
284  m_h_npixvsd0 = new TProfile("npix_vs_d0", "offline npix vs d0;offline #d0;# mean number of offline pixel hits", 39, d0bins );
285  m_h_npixvsd0_rec = new TProfile("npix_vs_d0_rec", "trigger npix vs d0;offline #d0;# mean number of trigger pixel hits", 39, d0bins );
286 
287  m_h_nsctvsd0 = new TProfile("nsct_vs_d0", "offline nsct vs d0;offline #d0;# mean number of offline sct hits", 39, d0bins );
288  m_h_nsctvsd0_rec = new TProfile("nsct_vs_d0_rec", "trigger nsct vs d0;offline #d0;# mean number of trigger sct hits", 39, d0bins );
289  }
290 
291  m_h_npixvspT = new TProfile("npix_vs_pT", "offline npix vs pT;offline #p_{T};# mean number of offline pixel hits", 25, &ptbins[0] );
292  m_h_npixvspT_rec = new TProfile("npix_vs_pT_rec", "trigger npix vs pT;offline #p_{T};# mean number of trigger pixel hits", 25, &ptbins[0] );
293 
294  m_h_nsctvspT = new TProfile("nsct_vs_pT", "offline nsct vs pT;offline #p_{T} [GeV];# mean number of offline pixel hits", 25, &ptbins[0] );
295  m_h_nsctvspT_rec = new TProfile("nsct_vs_pT_rec", "trigger nsct vs pT;offline #p_{T} [GeV];# mean number of trigger pixel hits", 25, &ptbins[0] );
296 
297 
298  m_h_nsihits_lb = new TProfile( "nsihits_lb", "offline n sihits vs lumiblock", 301, -0.5, 3009.5 );
299  m_h_nsihits_lb_rec = new TProfile( "nsihits_lb_rec", "trigger n sihits vs lumiblock", 301, -0.5, 3009.5 );
300 
303 
304  m_h_layer_rec = new TH1F("layer_rec" , "hit layers", 32, -0.5, 31.5 );
305  m_h_layer = new TH1F("layer", "hit layers", 32, -0.5, 31.5 );
306 
309 
310 
311 
319 
322 
325 
328 
331 
334 
337 
340 
343 
346 
349 
351 
353 
354  // m_h_pTres = new TProfile("Res_pT", "pT residual;pT [Gev];pT_{trig}-pT_{ref} [GeV]", 25, 0., 100.);
355  // m_h_pTres = new TProfile("Res_pT", "pT residual;pT [Gev];pT_{trig}-pT_{ref} [GeV]", 25, &ptbins[0] );
356  // m_h_ipTres = new TProfile("Res_ipT", "ipT residual;pT^{-1} [Gev^{-1}];1/pT_{trig}-1/pT_{ref} [GeV^{-1}]", 55, -5, 5 );
357  // m_h_etares = new TProfile("Res_eta", "Eta residual;#eta;#eta_{trig}-#eta_{ref}", 25, -2.5, 2.5);
358  // m_h_phires = new TProfile("Res_phi", "Phi residual;#phi;#phi_{trig}-#phi_{ref}", 25, -M_PI, M_PI);
359  // m_h_d0res = new TProfile("Res_d0", "d0 residual;d0 [mm];d0_{trig}-d0_{ref} [mm]", 50, -10., 10.);
360  // m_h_z0res = new TProfile("Res_z0", "z0 residual;z0 [mm];z0_{trig}-z0_{ref} [mm]", 50, -225., 225.);
361 
362  m_h_pTres = new TProfile("Res_pT", "pT residual;#eta_{ref};#Delta pT [Gev]", 25, -2.5, 2.5 );
363  m_h_ipTres = new TProfile("Res_ipT", "ipT residual;#eta_{ref};#Delta pT^{-1} [Gev^{-1}]", 25, -2.5, 2.5);
364  m_h_etares = new TProfile("Res_eta", "Eta residual;#eta_{ref};#Delta #eta", 25, -2.5, 2.5);
365  m_h_phires = new TProfile("Res_phi", "Phi residual;#eta_{ref};#Delta #phi", 25, -2.5, 2.5);
366  m_h_d0res = new TProfile("Res_d0", "d0 residual;#eta_{ref};#Delta d0 [mm]", 25, -2.5, 2.5);
367  m_h_z0res = new TProfile("Res_z0", "z0 residual;#eta_{ref};#Delta z0 [mm]", 25, -2.5, 2.5);
368 
375 
377 
378  m_h_trkpT_residual = new TH1F("residual_pT" , "track pT residual", 201, -100.0, 100.0 );
379  m_h_trkipT_residual = new TH1F("residual_ipT", "track ipT residual", 55, -5.5, 5.5 );
380  m_h_trkphi_residual = new TH1F("residual_phi", "track Phi residual", 50, -0.02, 0.02 );
381  m_h_trketa_residual = new TH1F("residual_eta", "track Eta residual", 50, -0.02, 0.02 );
382  m_h_trkd0_residual = new TH1F("residual_d0" , "track d0 residual ", 251, -2.5, 2.5 );
383  m_h_trkz0_residual = new TH1F("residual_z0" , "track z0 residual", 401, -20.0, 20.0 );
384 
385  m_h_trkdd0_residual = new TH1F("residual_dd0" , "track sigma d0 residual ", 251, -0.5, 0.5 );
386  m_h_trkdz0_residual = new TH1F("residual_dz0" , "track sigma z0 residual", 401, -1.0, 1.0 );
387 
394 
397 
398  m_h_npix = new TH1F("npix", "npix", 26, -0.5, 25.5 );
399  m_h_npix_rec = new TH1F("npix_rec", "npix_rec", 26, -0.5, 25.5 );
400 
401  m_h_nsct = new TH1F("nsct", "nsct", 31, -0.5, 30.5 );
402  m_h_nsct_rec = new TH1F("nsct_rec", "nsct_rec", 31, -0.5, 30.5 );
403 
404  m_h_nsihits = new TH1F("nsiHits", "nsiHits", 41, -0.5, 40.5 );
405  m_h_nsihits_rec = new TH1F("nsiHits_rec", "nsiHits_rec", 41, -0.5, 40.5 );
406 
407  m_h_ntrt = new TH1F("ntrt", "ntrt", 91, -0.5, 91.5 );
408  m_h_ntrt_rec = new TH1F("ntrt_rec", "ntrt_rec", 91, -0.5, 91.5 );
409 
414 
419 
421 
422  m_h_d0vsphi = new TProfile( "d0_vs_phi_prof", "d0 vs phi_prof", 25, -M_PI, M_PI );
423  m_h_d0vsphi_rec = new TProfile( "d0_vs_phi_rec_prof", "d0 vs phi_rec_prof", 25, -M_PI, M_PI );
424 
427 
432 
433  // h2d_d0vsphi = 0; // new TH2D( "d0_vs_phi", "d0 vs phi", 25, -M_PI, M_PI, 50, -2.6, 2.6 );
434  // h2d_d0vsphi_rec = 0; // new TH2D( "d0_vs_phi_rec", "d0 vs phi rec", 25, -M_PI, M_PI, 50, -2.6, 2.6 );
435 
436  // addHistogram( h2d_d0vsphi );
437  // addHistogram( h2d_d0vsphi_rec );
438 
439  m_vtxanal = 0;
440 
441 #if 1
442 
443  // std::cout << "Analysis_Tier0 vertex info: " << name() << std::endl;
444 
446  if ( name().find("vtx")!=std::string::npos || name().find("Vtx")!=std::string::npos ||
447  name().find("vx")!=std::string::npos || name().find("Vx")!=std::string::npos ) {
448 
449  // std::cout << "Analysis_Tier0 vertex info: " << name() << std::endl;
450 
451  m_vtxanal = new VtxAnalysis("VTX");
452 
454  store().insert( m_vtxanal, "VTX" );
455 
458 
459  // std::cout << "vtxanal obj size() " << m_vtxanal->objects().size() << std::endl;
460  // std::cout << "vtxanal prof size() " << m_vtxanal->profs().size() << std::endl;
461 
463  for ( unsigned i=0 ; i<m_vtxanal->objects().size() ; i++ ) addHistogram( m_vtxanal->objects()[i] );
464  for ( unsigned i=0 ; i<m_vtxanal->profs().size() ; i++ ) addHistogram( m_vtxanal->profs()[i] );
465  }
466 #endif
467 
468 }
469 
470 extern TIDARoiDescriptor* agroi;
471 
472 
473 void Analysis_Tier0::execute(const std::vector<TIDA::Track*>& referenceTracks,
474  const std::vector<TIDA::Track*>& testTracks,
475  TrackAssociator* associator ) {
476 
478  std::vector<TIDA::Track*>::const_iterator reference = referenceTracks.begin();
479  std::vector<TIDA::Track*>::const_iterator referenceEnd = referenceTracks.end();
480 
483  m_h_chain->Fill( 0.5 );
484 
485  if ( m_eventid != event()->event_number() ) {
488  m_eventid = event()->event_number();
489  m_h_chain->Fill( 1.5 );
490  }
491 
492  m_h_ntrk->Fill( referenceTracks.size() );
493  m_h_ntrk_rec->Fill( testTracks.size() );
494 
496  m_h_chain->Fill(4.5, testTracks.size() );
497 
498 
499  for( ; reference!=referenceEnd ; ++reference ) {
500 
501  // Get reference parameters
502  double referenceEta = (*reference)->eta();
503  double referencePhi = phi((*reference)->phi());
504  double referenceZ0 = (*reference)->z0();
505  double referenceD0 = (*reference)->a0();
506  double referencePT = (*reference)->pT();
507 
508  double referenceDZ0 = (*reference)->dz0();
509  double referenceDD0 = (*reference)->da0();
510 
511  // Find matched tracks
512  const TIDA::Track* test = associator->matched(*reference);
513 
514  double eff_weight = 0;
515  if (test) eff_weight = 1;
516 
517  m_h_total_efficiency->Fill(0.5, eff_weight );
518 
519  m_h_pTeff->Fill( std::fabs(referencePT)*0.001, eff_weight );
520  m_h_z0eff->Fill( referenceZ0, eff_weight );
521  m_h_d0eff->Fill( referenceD0, eff_weight );
522  m_h_etaeff->Fill( referenceEta, eff_weight );
523  m_h_phieff->Fill( referencePhi, eff_weight );
524  m_h_nVtxeff->Fill( m_nVtx, eff_weight );
525 
526  m_h_lbeff->Fill( event()->lumi_block(), eff_weight );
527 
528  m_h_trkpT->Fill( std::fabs(referencePT)*0.001 );
529  m_h_trketa->Fill( referenceEta );
530  m_h_trkphi->Fill( referencePhi );
531  m_h_trkd0->Fill( referenceD0 );
532  m_h_trkz0->Fill( referenceZ0 );
533 
534  m_h_trkdd0->Fill( referenceDD0 );
535  m_h_trkdz0->Fill( referenceDZ0 );
536 
537  if ( referenceDD0!=0 ) m_h_trkd0sig->Fill( referenceD0/referenceDD0 );
538 
539  m_h_npixvseta->Fill( referenceEta, int(((*reference)->pixelHits()+0.5)*0.5) );
540  m_h_nsctvseta->Fill( referenceEta, (*reference)->sctHits() );
541  m_h_ntrtvseta->Fill( referenceEta, (*reference)->strawHits() );
542 
543 
544  m_h_npixvsphi->Fill( referencePhi, int(((*reference)->pixelHits()+0.5)*0.5) );
545  m_h_nsctvsphi->Fill( referencePhi, (*reference)->sctHits() );
546  m_h_ntrtvsphi->Fill( referencePhi, (*reference)->strawHits() );
547 
548  m_h_npixvsd0->Fill( referenceD0, int(((*reference)->pixelHits()+0.5)*0.5) );
549  m_h_nsctvsd0->Fill( referenceD0, (*reference)->sctHits() );
550 
551  m_h_npixvspT->Fill( std::fabs(referencePT)*0.001, int(((*reference)->pixelHits()+0.5)*0.5) );
552  m_h_nsctvspT->Fill( std::fabs(referencePT)*0.001, (*reference)->sctHits() );
553 
554 
555  m_h_npix->Fill( int(((*reference)->pixelHits()+0.5)*0.5) );
556  m_h_nsct->Fill( (*reference)->sctHits() );
557  m_h_nsihits->Fill( (*reference)->siHits() );
558  m_h_ntrt->Fill( (*reference)->strawHits() );
559 
560 
561  m_h_nsihits_lb->Fill( event()->lumi_block(), (*reference)->siHits() );
562 
563  m_h_d0vsphi->Fill(referencePhi, referenceD0 );
564 
566  m_h_chain->Fill(2.5);
567 
568 
569  for ( size_t ilayer=0 ; ilayer<32 ; ilayer++ ) {
570  if ( (*reference)->hitPattern()&(1U<<ilayer) ) m_h_layer->Fill( ilayer );
571  }
572 
573  if (test) {
574 
575  m_h_chain->Fill(3.5);
576 
579 
581  // m_h_pTres->Fill( referencePT*0.001, (test->pT() - referencePT)*0.001 );
582  // m_h_ipTres->Fill( 1000/referencePT, (1000/test->pT() - 1000/referencePT) );
583  // m_h_etares->Fill( referenceEta, test->eta() - referenceEta );
584  // m_h_phires->Fill( referencePhi, phi(test->phi() - referencePhi) );
585  // m_h_d0res->Fill( referenceD0, test->a0() - referenceD0 );
586  // m_h_z0res->Fill( referenceZ0, test->z0() - referenceZ0 );
587 
589  m_h_pTres->Fill( referenceEta, (test->pT() - referencePT)*0.001 );
590  m_h_ipTres->Fill( referenceEta, (1000/test->pT() - 1000/referencePT) );
591  m_h_etares->Fill( referenceEta, test->eta() - referenceEta );
592  m_h_phires->Fill( referenceEta, phi(test->phi() - referencePhi) );
593  m_h_d0res->Fill( referenceEta, test->a0() - referenceD0 );
594  m_h_z0res->Fill( referenceEta, test->z0() - referenceZ0 );
595 
596  m_h_trkvtx_x_lb->Fill( event()->lumi_block(), beamTestx() );
597  m_h_trkvtx_y_lb->Fill( event()->lumi_block(), beamTesty() );
598  m_h_trkvtx_z_lb->Fill( event()->lumi_block(), beamTestz() );
599 
600  for ( size_t ilayer=0 ; ilayer<32 ; ilayer++ ) {
601  if ( test->hitPattern()&(1U<<ilayer) ) m_h_layer_rec->Fill( ilayer );
602  }
603 
604  // std::cout << "SUTT beam x " << beamTestx() << " " << "\tx " << beamTesty() << " " << "\ty " << beamTestz() << std::endl;
605 
606 #if 0
607  m_h_trkpT_rec->Fill( referencePT*0.001 );
609  m_h_trketa_rec->Fill( referenceEta );
610  m_h_trkphi_rec->Fill( referencePhi );
611  m_h_trkd0_rec->Fill( referenceD0 );
612  m_h_trkz0_rec->Fill( referenceZ0 );
613 
614 #endif
615 
617  m_h_trkpT_rec->Fill( std::fabs(test->pT())*0.001 );
618  m_h_trketa_rec->Fill( test->eta() );
619  m_h_trkphi_rec->Fill( test->phi() );
620  m_h_trkd0_rec->Fill( test->a0() );
621  m_h_trkz0_rec->Fill( test->z0() );
622 
623  m_h_trkdd0_rec->Fill( test->da0() );
624  m_h_trkdz0_rec->Fill( test->dz0() );
625 
626  if ( test->da0()!=0 ) m_h_trkd0sig_rec->Fill( test->a0()/test->da0() );
627 
628 
630  m_h_trkpT_residual->Fill( (test->pT() - referencePT)*0.001 );
631  m_h_trkipT_residual->Fill( (1000/test->pT() - 1000/referencePT) );
632  m_h_trketa_residual->Fill( test->eta() - referenceEta );
633  m_h_trkphi_residual->Fill( phi(test->phi() - referencePhi) );
634 
635  m_h_trkd0_residual->Fill( test->a0() - referenceD0 );
636  m_h_trkz0_residual->Fill( test->z0() - referenceZ0 );
637 
638  m_h_trkdd0_residual->Fill( test->da0() - referenceDD0 );
639  m_h_trkdz0_residual->Fill( test->dz0() - referenceDZ0 );
640 
641  m_h_npixvseta_rec->Fill( referenceEta, int((test->pixelHits()+0.5)*0.5) );
642  m_h_nsctvseta_rec->Fill( referenceEta, test->sctHits() );
643 
644  m_h_npixvsphi_rec->Fill( referencePhi, int((test->pixelHits()+0.5)*0.5) );
645  m_h_nsctvsphi_rec->Fill( referencePhi, test->sctHits() );
646 
647  m_h_npixvsd0_rec->Fill( referenceD0, int((test->pixelHits()+0.5)*0.5) );
648  m_h_nsctvsd0_rec->Fill( referenceD0, test->sctHits() );
649 
650  m_h_npixvspT_rec->Fill( std::fabs(referencePT)*0.001, int((test->pixelHits()+0.5)*0.5) );
651  m_h_nsctvspT_rec->Fill( std::fabs(referencePT)*0.001, test->sctHits() );
652 
653  m_h_npix_rec->Fill( int((test->pixelHits()+0.5)*0.5) );
654  m_h_nsct_rec->Fill( test->sctHits() );
655  m_h_nsihits_rec->Fill( test->siHits() );
656 
657  m_h_nsihits_lb_rec->Fill( event()->lumi_block(), test->siHits() );
658 
659 
660  m_h_ntrt_rec->Fill( test->strawHits() );
661 
662  m_h_ntrtvseta_rec->Fill( referenceEta, test->strawHits() );
663  m_h_ntrtvsphi_rec->Fill( referencePhi, test->strawHits() );
664 
665  m_h_d0vsphi_rec->Fill( test->phi(), test->a0() );
666 
667  }
668 
669  }
670 }
671 
672 
673 
674 
675 void Analysis_Tier0::execute_vtx(const std::vector<TIDA::Vertex*>& vtx0,
676  const std::vector<TIDA::Vertex*>& vtx1,
677  const TIDA::Event* tevt ) {
678  if ( m_vtxanal ) m_vtxanal->execute( vtx0, vtx1, tevt );
679 }
680 
681 
683  if ( m_vtxanal ) m_vtxanal->finalise();
684 }
685 
686 
687 
688 double Analysis_Tier0::phi(double p) {
689  if(p < -M_PI) p += 2*M_PI;
690  if(p > M_PI) p -= 2*M_PI;
691  return p;
692 }
693 
694 
695 
696 
697 
Analysis_Tier0::m_h_npixvsphi_rec
TProfile * m_h_npixvsphi_rec
Definition: Analysis_Tier0.h:124
Analysis_Tier0::m_h_npixvspT_rec
TProfile * m_h_npixvspT_rec
Definition: Analysis_Tier0.h:126
Analysis_Tier0::m_h_trkd0
TH1F * m_h_trkd0
Definition: Analysis_Tier0.h:154
Analysis_Tier0::m_h_trkdd0_residual
TH1F * m_h_trkdd0_residual
Definition: Analysis_Tier0.h:204
Analysis_Tier0::m_h_nsctvseta
TProfile * m_h_nsctvseta
Definition: Analysis_Tier0.h:113
TIDA::Associator
Definition: TIDAAssociator.h:24
Analysis_Tier0::m_h_total_efficiency
TProfile * m_h_total_efficiency
Definition: Analysis_Tier0.h:87
Track.h
Analysis_Tier0::m_h_npix
TH1F * m_h_npix
Definition: Analysis_Tier0.h:167
Analysis_Tier0::m_h_phieff
TProfile * m_h_phieff
Definition: Analysis_Tier0.h:90
ChainString::tail
std::string tail() const
Definition: ChainString.h:34
Analysis_Tier0::m_h_npixvsphi
TProfile * m_h_npixvsphi
Definition: Analysis_Tier0.h:109
Analysis_Tier0::m_h_trkd0_residual
TH1F * m_h_trkd0_residual
Definition: Analysis_Tier0.h:201
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrackAnalysis::beamTesty
double beamTesty() const
Definition: TrackAnalysis.h:125
Analysis_Tier0::m_h_npixvspT
TProfile * m_h_npixvspT
Definition: Analysis_Tier0.h:111
VtxAnalysis
Definition: VtxAnalysis.h:25
Analysis_Tier0::phi
double phi(double p)
Definition: Analysis_Tier0.cxx:688
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
Analysis_Tier0::m_h_nsctvspT
TProfile * m_h_nsctvspT
Definition: Analysis_Tier0.h:116
Analysis_Tier0::m_h_trkz0_rec
TH1F * m_h_trkz0_rec
Definition: Analysis_Tier0.h:181
Analysis_Tier0::m_h_trketa
TH1F * m_h_trketa
Definition: Analysis_Tier0.h:152
Analysis_Tier0::m_h_trkvtx_y_lb
TProfile * m_h_trkvtx_y_lb
Definition: Analysis_Tier0.h:104
Analysis_Tier0::m_h_trkdz0
TH1F * m_h_trkdz0
Definition: Analysis_Tier0.h:163
Analysis_Tier0.h
Analysis_Tier0::m_h_ntrtvsphi_rec
TProfile * m_h_ntrtvsphi_rec
Definition: Analysis_Tier0.h:134
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
ChainString::head
std::string head() const
Definition: ChainString.h:33
Analysis_Tier0::m_h_z0eff
TProfile * m_h_z0eff
Definition: Analysis_Tier0.h:92
Analysis_Tier0::m_h_nsctvseta_rec
TProfile * m_h_nsctvseta_rec
Definition: Analysis_Tier0.h:128
Analysis_Tier0::m_debug
bool m_debug
Definition: Analysis_Tier0.h:218
VtxAnalysis::finalise
void finalise()
Definition: VtxAnalysis.cxx:228
Analysis_Tier0::m_h_ntrk
TH1F * m_h_ntrk
Definition: Analysis_Tier0.h:149
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Analysis_Tier0::execute_vtx
virtual void execute_vtx(const std::vector< TIDA::Vertex * > &vtx0, const std::vector< TIDA::Vertex * > &vtx1, const TIDA::Event *tevt=0)
Definition: Analysis_Tier0.cxx:675
Analysis_Tier0::m_h_npixvsd0_rec
TProfile * m_h_npixvsd0_rec
Definition: Analysis_Tier0.h:125
TIDARoiDescriptor
Describes the Region of Ineterest geometry It has basically 8 parameters.
Definition: TIDARoiDescriptor.h:42
Analysis_Tier0::m_h_d0eff
TProfile * m_h_d0eff
Definition: Analysis_Tier0.h:91
ChainString
Definition: ChainString.h:23
reference
Definition: hcg.cxx:437
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:146
TIDA::Event
Definition: TIDAEvent.h:33
Analysis_Tier0::m_h_ntrtvseta_rec
TProfile * m_h_ntrtvseta_rec
Definition: Analysis_Tier0.h:133
x
#define x
ChainString::roi
std::string roi() const
Definition: ChainString.h:35
VtxAnalysis::execute
void execute(const std::vector< TIDA::Vertex * > &vtx0, const std::vector< TIDA::Vertex * > &vtx1, const TIDA::Event *te=0)
Definition: VtxAnalysis.cxx:149
TIDA::Associator::matched
virtual const S * matched(T *t)
Definition: TIDAAssociator.h:45
TrackAnalysis::beamTestz
double beamTestz() const
Definition: TrackAnalysis.h:126
Analysis_Tier0::m_h_trkd0_rec
TH1F * m_h_trkd0_rec
Definition: Analysis_Tier0.h:180
Analysis_Tier0::m_h_d0vsphi_rec
TProfile * m_h_d0vsphi_rec
Definition: Analysis_Tier0.h:139
Analysis_Tier0::m_h_nsct
TH1F * m_h_nsct
Definition: Analysis_Tier0.h:168
Analysis_Tier0::m_h_layer
TH1F * m_h_layer
Definition: Analysis_Tier0.h:174
Analysis_Tier0::m_vtxanal
VtxAnalysis * m_vtxanal
Definition: Analysis_Tier0.h:222
Analysis_Tier0::execute
virtual void execute(const std::vector< TIDA::Track * > &referenceTracks, const std::vector< TIDA::Track * > &testTracks, TrackAssociator *associator)
Definition: Analysis_Tier0.cxx:473
Analysis_Tier0::m_h_nsihits_rec
TH1F * m_h_nsihits_rec
Definition: Analysis_Tier0.h:190
VertexAnalysis::profs
std::vector< TProfile * > profs()
Definition: VertexAnalysis.h:48
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
Analysis_Tier0::m_h_nsct_rec
TH1F * m_h_nsct_rec
Definition: Analysis_Tier0.h:189
Analysis_Tier0::m_h_d0res
TProfile * m_h_d0res
Definition: Analysis_Tier0.h:100
Analysis_Tier0::m_h_pTeff
TProfile * m_h_pTeff
Definition: Analysis_Tier0.h:88
Analysis_Tier0::m_h_nsctvspT_rec
TProfile * m_h_nsctvspT_rec
Definition: Analysis_Tier0.h:131
Analysis_Tier0::m_h_nsctvsd0
TProfile * m_h_nsctvsd0
Definition: Analysis_Tier0.h:115
Analysis_Tier0::m_h_trkpT_rec
TH1F * m_h_trkpT_rec
Definition: Analysis_Tier0.h:177
Analysis_Tier0::m_h_trkdd0
TH1F * m_h_trkdd0
Definition: Analysis_Tier0.h:162
Analysis_Tier0::m_h_ipTres
TProfile * m_h_ipTres
Definition: Analysis_Tier0.h:97
lumiFormat.i
int i
Definition: lumiFormat.py:92
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
Analysis_Tier0::Analysis_Tier0
Analysis_Tier0(const std::string &name, double pTCut, double etaCut, double d0Cut, double z0Cut)
Definition: Analysis_Tier0.cxx:18
Analysis_Tier0::m_h_trkpT
TH1F * m_h_trkpT
Definition: Analysis_Tier0.h:151
Analysis_Tier0::m_h_d0vsphi
TProfile * m_h_d0vsphi
Definition: Analysis_Tier0.h:138
Analysis_Tier0::m_h_pTres
TProfile * m_h_pTres
Definition: Analysis_Tier0.h:96
TIDA::Event::event_number
void event_number(unsigned long long e)
Definition: TIDAEvent.h:43
Analysis_Tier0::initialise
virtual void initialise()
standard operation interface
Definition: Analysis_Tier0.cxx:33
Analysis_Tier0::m_h_trketa_residual
TH1F * m_h_trketa_residual
Definition: Analysis_Tier0.h:199
agroi
TIDARoiDescriptor * agroi
Analysis_Tier0::m_h_nsihits_lb_rec
TProfile * m_h_nsihits_lb_rec
Definition: Analysis_Tier0.h:136
TrackAnalysis
Definition: TrackAnalysis.h:32
Analysis_Tier0::m_h_ntrt
TH1F * m_h_ntrt
Definition: Analysis_Tier0.h:170
TrackAnalysis::name
std::string name() const
return identifier
Definition: TrackAnalysis.h:48
Analysis_Tier0::m_h_npixvseta_rec
TProfile * m_h_npixvseta_rec
Definition: Analysis_Tier0.h:123
Analysis_Tier0::m_h_z0res
TProfile * m_h_z0res
Definition: Analysis_Tier0.h:101
Analysis_Tier0::m_h_trkphi
TH1F * m_h_trkphi
Definition: Analysis_Tier0.h:153
Analysis_Tier0::m_h_trkdz0_residual
TH1F * m_h_trkdz0_residual
Definition: Analysis_Tier0.h:205
TrackAnalysis::event
const TIDA::Event * event() const
Definition: TrackAnalysis.h:131
Analysis_Tier0::m_h_lbeff
TProfile * m_h_lbeff
Definition: Analysis_Tier0.h:94
TIDA::FeatureStore::insert
void insert(T *t, const std::string &key)
Definition: TIDAFeatureStore.h:44
Analysis_Tier0::m_h_trketa_rec
TH1F * m_h_trketa_rec
Definition: Analysis_Tier0.h:178
Analysis_Tier0::m_h_trkz0_residual
TH1F * m_h_trkz0_residual
Definition: Analysis_Tier0.h:202
Analysis_Tier0::m_h_layer_rec
TH1F * m_h_layer_rec
Definition: Analysis_Tier0.h:194
Analysis_Tier0::m_h_trkipT_residual
TH1F * m_h_trkipT_residual
Definition: Analysis_Tier0.h:198
Analysis_Tier0::m_h_phires
TProfile * m_h_phires
Definition: Analysis_Tier0.h:99
Analysis_Tier0::m_h_trkphi_residual
TH1F * m_h_trkphi_residual
Definition: Analysis_Tier0.h:200
VtxAnalysis::initialise
void initialise()
Definition: VtxAnalysis.cxx:19
Analysis_Tier0::m_h_nsihits_lb
TProfile * m_h_nsihits_lb
Definition: Analysis_Tier0.h:121
ChainString::raw
std::string raw() const
Definition: ChainString.h:53
ChainString::element
std::string element() const
Definition: ChainString.h:37
Analysis_Tier0::m_h_trkvtx_z_lb
TProfile * m_h_trkvtx_z_lb
Definition: Analysis_Tier0.h:105
Analysis_Tier0::m_h_etares
TProfile * m_h_etares
Definition: Analysis_Tier0.h:98
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ChainString.h
Analysis_Tier0::m_h_trkvtx_x_lb
TProfile * m_h_trkvtx_x_lb
Definition: Analysis_Tier0.h:103
Analysis_Tier0::m_h_nsctvsphi_rec
TProfile * m_h_nsctvsphi_rec
Definition: Analysis_Tier0.h:129
Analysis_Tier0::addHistogram
void addHistogram(TH1 *h)
Definition: Analysis_Tier0.h:70
Analysis_Tier0::m_nVtx
int m_nVtx
Definition: Analysis_Tier0.h:216
Analysis_Tier0::m_h_nsctvsphi
TProfile * m_h_nsctvsphi
Definition: Analysis_Tier0.h:114
Analysis_Tier0::m_h_trkd0sig
TH1F * m_h_trkd0sig
Definition: Analysis_Tier0.h:165
Analysis_Tier0::m_h_nVtxeff
TProfile * m_h_nVtxeff
Definition: Analysis_Tier0.h:93
VertexAnalysis::objects
std::vector< TH1 * > objects()
Definition: VertexAnalysis.h:47
Analysis_Tier0::m_h_nsctvsd0_rec
TProfile * m_h_nsctvsd0_rec
Definition: Analysis_Tier0.h:130
Analysis_Tier0::m_h_npixvsd0
TProfile * m_h_npixvsd0
Definition: Analysis_Tier0.h:110
Analysis_Tier0::m_h_trkdz0_rec
TH1F * m_h_trkdz0_rec
Definition: Analysis_Tier0.h:184
Analysis_Tier0::m_h_etaeff
TProfile * m_h_etaeff
Definition: Analysis_Tier0.h:89
y
#define y
TProfile::Fill
int Fill(double, double)
Definition: rootspy.cxx:523
ChainString::vtx
std::string vtx() const
Definition: ChainString.h:36
Analysis_Tier0::m_h_ntrk_rec
TH1F * m_h_ntrk_rec
Definition: Analysis_Tier0.h:172
Analysis_Tier0::m_h_npixvseta
TProfile * m_h_npixvseta
Definition: Analysis_Tier0.h:108
Analysis_Tier0::finalise
virtual void finalise()
Definition: Analysis_Tier0.cxx:682
dq_make_web_display.reference
reference
Definition: dq_make_web_display.py:44
TIDA::Track
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/Track.h:26
Analysis_Tier0::m_h_ntrtvseta
TProfile * m_h_ntrtvseta
Definition: Analysis_Tier0.h:118
Analysis_Tier0::m_h_trkphi_rec
TH1F * m_h_trkphi_rec
Definition: Analysis_Tier0.h:179
Analysis_Tier0::m_h_trkdd0_rec
TH1F * m_h_trkdd0_rec
Definition: Analysis_Tier0.h:183
TrackAnalysis::beamTestx
double beamTestx() const
Definition: TrackAnalysis.h:124
Analysis_Tier0::m_h_chain
TH1F * m_h_chain
Definition: Analysis_Tier0.h:147
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
Analysis_Tier0::m_h_npix_rec
TH1F * m_h_npix_rec
Definition: Analysis_Tier0.h:188
Analysis_Tier0::m_eventid
unsigned long long m_eventid
Definition: Analysis_Tier0.h:220
Analysis_Tier0::m_h_trkz0
TH1F * m_h_trkz0
Definition: Analysis_Tier0.h:155
Analysis_Tier0::m_h_ntrtvsphi
TProfile * m_h_ntrtvsphi
Definition: Analysis_Tier0.h:119
Analysis_Tier0::m_h_nsihits
TH1F * m_h_nsihits
Definition: Analysis_Tier0.h:169
Analysis_Tier0::m_h_ntrt_rec
TH1F * m_h_ntrt_rec
Definition: Analysis_Tier0.h:191
Analysis_Tier0::m_h_trkd0sig_rec
TH1F * m_h_trkd0sig_rec
Definition: Analysis_Tier0.h:186
TrackAnalysis::store
TIDA::FeatureStore & store()
Definition: TrackAnalysis.h:129
Analysis_Tier0::m_h_trkpT_residual
TH1F * m_h_trkpT_residual
Definition: Analysis_Tier0.h:197