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;
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" );
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,
91 double vnbins[101] = {
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,
112 m_h_ntrk =
new TH1F(
"reftrk_N",
"Reference tracks", 77, vnbins );
120 std::vector<double> ptbins;
122 for (
int i=0 ;
i<=25 ;
i++ ) {
124 double y = std::log10(1) +
i*( std::log10(100)-std::log10(1) )/25;
132 m_h_trkpT =
new TH1F(
"reftrk_pT" ,
"Reference track pT", 25, &ptbins[0] );
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 );
138 m_h_trkd0 =
new TH1F(
"reftrk_d0" ,
"Reference track d0", 101, -5.0, 5.0 );
140 m_h_trkz0 =
new TH1F(
"reftrk_z0" ,
"Reference track z0", 50, -225., 225.);
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);
146 m_h_trkd0sig =
new TH1F(
"reftrk_d0sig" ,
"Reference track d0 significance", 101, -5., 5.);
173 if (
name().
find(
"LRT")!=std::string::npos ||
name().
find(
"lrt")!=std::string::npos) {
199 double d0bins_LRT[124] = { -100.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,
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 };
237 if (
name().
find(
"LRT")!=std::string::npos ||
name().
find(
"lrt")!=std::string::npos) {
246 m_h_lbeff =
new TProfile(
"Eff_lb",
"efficinecy vs lumiblock", 301, -0.5, 3009.5 );
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);
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);
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 );
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 );
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 );
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 );
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 );
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] );
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] );
305 m_h_layer =
new TH1F(
"layer",
"hit layers", 32, -0.5, 31.5 );
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);
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 ) {
474 const std::vector<TIDA::Track*>& testTracks,
478 std::vector<TIDA::Track*>::const_iterator
reference = referenceTracks.begin();
479 std::vector<TIDA::Track*>::const_iterator referenceEnd = referenceTracks.end();
492 m_h_ntrk->Fill( referenceTracks.size() );
496 m_h_chain->Fill(4.5, testTracks.size() );
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();
508 double referenceDZ0 = (*reference)->dz0();
509 double referenceDD0 = (*reference)->da0();
514 double eff_weight = 0;
515 if (
test) eff_weight = 1;
528 m_h_trkpT->Fill( std::fabs(referencePT)*0.001 );
537 if ( referenceDD0!=0 )
m_h_trkd0sig->Fill( referenceD0/referenceDD0 );
548 m_h_npixvsd0->
Fill( referenceD0,
int(((*reference)->pixelHits()+0.5)*0.5) );
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() );
555 m_h_npix->Fill(
int(((*reference)->pixelHits()+0.5)*0.5) );
556 m_h_nsct->Fill( (*reference)->sctHits() );
558 m_h_ntrt->Fill( (*reference)->strawHits() );
569 for (
size_t ilayer=0 ; ilayer<32 ; ilayer++ ) {
570 if ( (*reference)->hitPattern()&(1U<<ilayer) )
m_h_layer->Fill( ilayer );
600 for (
size_t ilayer=0 ; ilayer<32 ; ilayer++ ) {
676 const std::vector<TIDA::Vertex*>& vtx1,