87 double tmp_absResPt = 0.5;
95 double tmp_maxEta = 5.;
96 double tmp_absResEta = 0.04;
99 double tmp_maxPhi = 3.142;
100 double tmp_absResPhi = 0.02;
108 const int etaResBins = int(600*binConfig.
eta_NScale);
110 const int phiBins = int(30*binConfig.
phi_NScale);
113 const int zBins = int(150*binConfig.
z0_NScale);
114 const double zMax = binConfig.
z0Max;
116 const int zresBins = 100;
117 const double zresMax = 10;
119 const int d0Bins = int(100*binConfig.
d0_NScale);
120 const double d0Max = binConfig.
d0Max;
122 const int d0resBins = 100;
123 const double d0resMax = 5;
126 const int a0Bins = int(300*binConfig.
a0_NScale);
127 const double a0Max = binConfig.
a0Max;
129 const int a0resBins = 100;
130 const double a0resMax = 5;
155 const int ptnbins = Npt;
156 std::vector<double> ptbinlimsv(ptnbins+1);
157 double* ptbinlims = &ptbinlimsv[0];
160 for (
int i=0 ; i<=ptnbins ; i++ ) ptbinlims[i] = std::pow(10, pt_a*i/ptnbins+pt_b)/1000;
165 const int ptnbins2 = (2*ptnbins);
167 std::vector<double> ptbinlims2v(ptnbins2 + 1);
168 double* ptbinlims2 = &ptbinlims2v[0];
170 int ptnbin_counter = 0;
171 for (
int i=ptnbins; i>0 ; i-- ) {
172 ptbinlims2[ptnbin_counter] = std::pow(10, pt_a*i/ptnbins+pt_b)/(-2000);
177 for (
int i=0 ; i<ptnbins+1 ; i++ ) {
178 ptbinlims2[ptnbin_counter] = std::pow(10, pt_a*i/ptnbins+pt_b)/2000;
184 const int iptnbins = 20;
185 const double minmaxipt=0.5;
186 std::vector<double> iptbinlimsv(iptnbins+1);
187 double* iptbinlims = &iptbinlimsv[0];
188 for (
int i=0 ; i<=iptnbins ; i++ ) {
189 iptbinlims[i] = -minmaxipt+i*minmaxipt*2./iptnbins;
194 TDirectory* dir = gDirectory;
205 if (
name() != gDirectory->GetName() ) std::cerr <<
"ConfAnalysis::initialize() Directory: problem with directory " << gDirectory->GetName() <<
" " <<
name() << std::endl;
213 m_res.push_back(
m_rnpix_eta =
new Resplot(
"npix_eta", 2*etaBins, -tmp_maxEta, tmp_maxEta, 22, -0.5, 21.5 ) );
214 m_res.push_back(
m_rnsct_eta =
new Resplot(
"nsct_eta", 2*etaBins, -tmp_maxEta, tmp_maxEta, 22, -0.5, 21.5 ) );
215 m_res.push_back(
m_rntrt_eta =
new Resplot(
"ntrt_eta", 2*etaBins, -tmp_maxEta, tmp_maxEta, 100, -0.5, 99.5 ) );
275 double d0bins[40] = { -5.0, -4.0, -3.0, -2.5,
276 -2.0, -1.8, -1.6, -1.4, -1.2,
277 -1.05, -0.95, -0.85, -0.75, -0.65, -0.55, -0.45, -0.35, -0.25, -0.15, -0.05,
278 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 1.05,
279 1.2, 1.4, 1.6, 1.8, 2.0,
280 2.5, 3.0, 4.0, 5.0 };
297 m_res.push_back(
m_rnsi_eta =
new Resplot(
"nsi_eta", etaBins, -tmp_maxEta, tmp_maxEta, 22, -0.5, 21.5 ) );
320 addHistogram(
new TH1F(
"pT",
"pT", ptnbins, ptbinlims ) );
321 addHistogram(
new TH1F(
"eta",
"eta", etaBins, -tmp_maxEta, tmp_maxEta ) );
322 addHistogram(
new TH1F(
"phi",
"phi", phiBins, -tmp_maxPhi, tmp_maxPhi ) );
323 addHistogram(
new TH1F(
"z0",
"z0", zBins, -zMax, zMax ) );
324 addHistogram(
new TH1F(
"d0",
"d0", d0Bins, -d0Max, d0Max ) );
325 addHistogram(
new TH1F(
"a0",
"a0", a0Bins, -a0Max, a0Max ) );
335 addHistogram(
new TH1F(
"roi_deta",
"roi_deta", 50, -1, 1 ) );
336 addHistogram(
new TH1F(
"roi_dphi",
"roi_dphi", 50, -1, 1 ) );
337 addHistogram(
new TH1F(
"roi_dR",
"roi_dR", 50, 0, 1 ) );
341 m_invmass =
new TH1F(
"invmass",
"invariant mass;mass [GeV]", 320, 0, 200 );
342 m_invmassObj =
new TH1F(
"invmassObj",
"invariant mass;mass [GeV]", 320, 0, 200 );
348 TH2F* heta_vs_pt =
new TH2F(
"eta_vs_pt",
"p_{T} [GeV],#eta", ptnbins, ptbinlims, 10, -3, 3 );
349 TH2F* hd0_vs_pt =
new TH2F(
"d0_vs_pt",
"p_{T} [GeV],d_{0} [mm]", ptnbins, ptbinlims, 30, -300, 300 );
361 m_eff_pt->Hist()->GetXaxis()->SetTitle(
"P_{T} [GeV]");
362 m_eff_pt->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
365 m_eff_eta->Hist()->GetXaxis()->SetTitle(
"#eta");
366 m_eff_eta->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
369 m_eff_phi->Hist()->GetXaxis()->SetTitle(
"#phi");
370 m_eff_phi->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
373 m_eff_z0->Hist()->GetXaxis()->SetTitle(
"z0");
374 m_eff_z0->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
377 m_eff_d0->Hist()->GetXaxis()->SetTitle(
"d0");
378 m_eff_d0->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
381 m_eff_a0->Hist()->GetXaxis()->SetTitle(
"a0");
382 m_eff_a0->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
385 m_eff_ptm->Hist()->GetXaxis()->SetTitle(
"Negative P_{T} [GeV]");
386 m_eff_ptm->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
389 m_eff_ptp->Hist()->GetXaxis()->SetTitle(
"Positive P_{T} [GeV]");
390 m_eff_ptp->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
401 m_eff_roi_dR->Hist()->GetXaxis()->SetTitle(
"RoI #Delta R");
402 m_eff_roi_dR->Hist()->GetYaxis()->SetTitle(
"Efficiency [%]");
415 addHistogram(
new TH1F(
"pT_rec",
"pT_rec", ptnbins, ptbinlims ) );
416 addHistogram(
new TH1F(
"eta_rec",
"eta_rec", etaBins, -tmp_maxEta, tmp_maxEta ) );
417 addHistogram(
new TH1F(
"phi_rec",
"phi_rec", phiBins, -tmp_maxPhi, tmp_maxPhi ) );
418 addHistogram(
new TH1F(
"z0_rec",
"z0_rec", zBins, -zMax, zMax ) );
419 addHistogram(
new TH1F(
"d0_rec",
"d0_rec", d0Bins, -d0Max, d0Max ) );
420 addHistogram(
new TH1F(
"a0_rec",
"a0_rec", a0Bins, -a0Max, a0Max ) );
422 addHistogram2D(
new TH2F(
"eta_phi_rec",
"eta_phi_rec", (tmp_maxEta+1)*30 , -tmp_maxEta-1, tmp_maxEta+1, (tmp_maxPhi+1)*30, -tmp_maxPhi-1, tmp_maxPhi+1 ) );
423 addHistogram2D(
new TH2F(
"phi_d0_rec",
"phi_d0_rec", (2*tmp_maxPhi+2)*15, -tmp_maxPhi-1, tmp_maxPhi+1 ,d0Bins+20, -d0Max+7, d0Max-7 ));
426 addHistogram(
new TH1F(
"dpT_rec",
"dpT_rec", 80, 0, 20.00 ) );
427 addHistogram(
new TH1F(
"deta_rec",
"deta_rec", 50, 0, 0.02 ) );
428 addHistogram(
new TH1F(
"dphi_rec",
"dphi_rec", 50, 0, 0.02 ) );
429 addHistogram(
new TH1F(
"dz0_rec",
"dz0_rec", 100, 0, 1.5 ) );
430 addHistogram(
new TH1F(
"dd0_rec",
"dd0_rec", 50, 0, 0.5 ) );
431 addHistogram(
new TH1F(
"da0_rec",
"da0_rec", 50, 0, 0.5 ) );
436 addHistogram(
new TH1F(
"pT_pull",
"pT_pull", 100, -10, 10) );
437 addHistogram(
new TH1F(
"eta_pull",
"eta_pull", 100, -10, 10) );
438 addHistogram(
new TH1F(
"phi_pull",
"phi_pull", 100, -10, 10) );
439 addHistogram(
new TH1F(
"z0_pull",
"z0_pull", 100, -10, 10) );
440 addHistogram(
new TH1F(
"d0_pull",
"d0_pull", 100, -10, 10) );
441 addHistogram(
new TH1F(
"a0_pull",
"a0_pull", 100, -10, 10) );
444 addHistogram(
new TH1F(
"pT_pull_simple",
"pT_pull_simple", 100, -10, 10) );
445 addHistogram(
new TH1F(
"eta_pull_simple",
"eta_pull_simple", 100, -10, 10) );
446 addHistogram(
new TH1F(
"phi_pull_simple",
"phi_pull_simple", 100, -10, 10) );
447 addHistogram(
new TH1F(
"z0_pull_simple",
"z0_pull_simple", 100, -10, 10) );
448 addHistogram(
new TH1F(
"d0_pull_simple",
"d0_pull_simple", 100, -10, 10) );
449 addHistogram(
new TH1F(
"a0_pull_simple",
"a0_pull_simple", 100, -10, 10) );
453 TH1F* pT_res =
new TH1F(
"pT_res",
"pT_res", 4*pTResBins, -0.1, 0.1 );
454 pT_res->GetXaxis()->SetTitle(
"#Delta P_{T} [GeV]");
455 pT_res->GetYaxis()->SetTitle(
"Entries");
459 TH1F* spT_res =
new TH1F(
"spT_res",
"spT_res", 4*pTResBins, -0.1, 0.1 );
460 spT_res->GetXaxis()->SetTitle(
"#Delta sP_{T} [GeV]");
461 spT_res->GetYaxis()->SetTitle(
"Entries");
465 TH1F* ipT_res =
new TH1F(
"ipT_res",
"ipT_res", 4*pTResBins, -0.4, 0.4 );
466 ipT_res->GetXaxis()->SetTitle(
"#Delta 1/P_{T} [GeV^{-1}]");
467 ipT_res->GetYaxis()->SetTitle(
"Entries");
470 TH1F* eta_res =
new TH1F(
"eta_res",
"eta_res", etaResBins, -2*tmp_absResEta, 2*tmp_absResEta );
471 eta_res->GetXaxis()->SetTitle(
"#Delta #eta");
472 eta_res->GetYaxis()->SetTitle(
"Entries");
474 addHistogram(
new TH1F(
"etai_res",
"etai_res", 1000, -0.04, 0.04 ) );
481 addHistogram(
new TH1F(
"phi_res",
"phi_res;#Delta #phi;Entries", 2*phiResBins, -2*tmp_absResPhi, 2*tmp_absResPhi ) );
482 addHistogram(
new TH1F(
"z0_res",
"z0_res;#Deltaz_{0};Entries", 16*zresBins, -8*zresMax, 8*zresMax ) );
483 addHistogram(
new TH1F(
"d0_res",
"d0_res;#Deltad_{0};Entries", 4*d0resBins, -0.2*d0resMax, 0.2*d0resMax ) );
484 addHistogram(
new TH1F(
"a0_res",
"a0_res;#Deltaa_{0};Entries", 4*a0resBins, -0.2*a0resMax, 0.2*a0resMax ) );
487 addHistogram(
new TH1F(
"dphi_res",
"dphi_res;#Delta #phi;Entries", 2*phiResBins, -0.2*tmp_absResPhi, 0.2*tmp_absResPhi ) );
488 addHistogram(
new TH1F(
"dz0_res",
"dz0_res;#Deltaz_{0};Entries", 8*zresBins, -0.8*zresMax, 0.8*zresMax ) );
489 addHistogram(
new TH1F(
"dd0_res",
"dd0_res;#Deltad_{0};Entries", 4*d0resBins, -0.05*d0resMax, 0.05*d0resMax ) );
490 addHistogram(
new TH1F(
"da0_res",
"da0_res;#Deltaa_{0};Entries", 4*a0resBins, -0.05*a0resMax, 0.05*a0resMax ) );
501 m_rDd0res.push_back(
new Resplot(
"rDd0_vs_pt", ptnbins, ptbinlims, 1200, -0.1, 0.1 ) );
502 m_rDd0res.push_back(
new Resplot(
"rDd0_vs_eta", 5*etaBins, -tmp_maxEta, tmp_maxEta, 1200, -0.1, 0.1 ) );
503 m_rDd0res.push_back(
new Resplot(
"rDd0_vs_zed", zBins, -zMax, zMax, 1200, -0.1, 0.1 ) );
504 m_rDd0res.push_back(
new Resplot(
"rDd0_vs_d0", 20, -1.5, 1.5, 1200, -0.1, 0.1 ) );
509 m_rDa0res.push_back(
new Resplot(
"rDa0_vs_pt", ptnbins, ptbinlims, 100, -0.1, 0.1 ) );
510 m_rDa0res.push_back(
new Resplot(
"rDa0_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 100, -0.1, 0.1 ) );
511 m_rDa0res.push_back(
new Resplot(
"rDa0_vs_zed", 0.2*zBins, -zMax, zMax, 100, -0.1, 0.1 ) );
512 m_rDa0res.push_back(
new Resplot(
"rDa0_vs_da0", 20, -1.5, 1.5, 100, -0.1, 0.1 ) );
523 m_rDz0res.push_back(
new Resplot(
"rDz0_vs_pt", ptnbins, ptbinlims, 501, -1, 1 ) );
524 m_rDz0res.push_back(
new Resplot(
"rDz0_vs_eta", 5*etaBins, -tmp_maxEta, tmp_maxEta, 500, -1, 1 ) );
525 m_rDz0res.push_back(
new Resplot(
"rDz0_vs_zed", zBins, -zMax, zMax, 500, -1, 1 ) );
532 m_retares.push_back(
new Resplot(
"reta_vs_ipt", iptnbins, iptbinlims, 2*etaResBins, -wfactor*tmp_absResEta, wfactor*tmp_absResEta ) );
533 m_rphires.push_back(
new Resplot(
"rphi_vs_ipt", iptnbins, iptbinlims, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
534 m_rzedres.push_back(
new Resplot(
"rzed_vs_ipt", iptnbins, iptbinlims, 8*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
535 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_ipt", iptnbins, iptbinlims, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
536 m_riptres.push_back(
new Resplot(
"ript_vs_ipt", iptnbins, iptbinlims, 16*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
537 m_rptres.push_back(
new Resplot(
"rpt_vs_ipt", iptnbins, iptbinlims, 8*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
538 m_rd0res.push_back(
new Resplot(
"rd0_vs_ipt", iptnbins, iptbinlims, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
541 m_retares.push_back(
new Resplot(
"reta_vs_pt", ptnbins, ptbinlims, 8*etaResBins, -wfactor*tmp_absResEta, wfactor*tmp_absResEta ) );
542 m_rphires.push_back(
new Resplot(
"rphi_vs_pt", ptnbins, ptbinlims, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
543 m_rzedres.push_back(
new Resplot(
"rzed_vs_pt", ptnbins, ptbinlims, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
544 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_pt", ptnbins, ptbinlims, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
545 m_riptres.push_back(
new Resplot(
"ript_vs_pt", ptnbins, ptbinlims, 16*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
546 m_rptres.push_back(
new Resplot(
"rpt_vs_pt", ptnbins, ptbinlims, 8*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
547 m_rd0res.push_back(
new Resplot(
"rd0_vs_pt", ptnbins, ptbinlims, factor*24*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
549 m_retares.push_back(
new Resplot(
"reta_vs_ET", ptnbins, ptbinlims, 8*etaResBins, -wfactor*tmp_absResEta, wfactor*tmp_absResEta ) );
550 m_rphires.push_back(
new Resplot(
"rphi_vs_ET", ptnbins, ptbinlims, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
551 m_rzedres.push_back(
new Resplot(
"rzed_vs_ET", ptnbins, ptbinlims, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
552 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_ET", ptnbins, ptbinlims, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
553 m_riptres.push_back(
new Resplot(
"ript_vs_ET", ptnbins, ptbinlims, 16*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
554 m_rptres.push_back(
new Resplot(
"rpt_vs_ET", ptnbins, ptbinlims, 8*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
555 m_rd0res.push_back(
new Resplot(
"rd0_vs_ET", ptnbins, ptbinlims, factor*24*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
559 m_retares.push_back(
new Resplot(
"reta_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 4*etaResBins, -wfactor*tmp_absResEta, wfactor*tmp_absResEta ) );
560 m_rphires.push_back(
new Resplot(
"rphi_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
561 m_rzedres.push_back(
new Resplot(
"rzed_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 12*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
563 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 24*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
565 m_riptres.push_back(
new Resplot(
"ript_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 16*pTResBins, -tmp_absResPt, tmp_absResPt ) );
566 m_rptres.push_back(
new Resplot(
"rpt_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 8*pTResBins, -tmp_absResPt, tmp_absResPt ) );
567 m_rd0res.push_back(
new Resplot(
"rd0_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, factor*24*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
571 m_hphivsDd0res[0] =
new TH1F(
"hphi_vs_Dd0_0",
"phi for Dd0<0.1",
int(2*
M_PI/0.02), -0.02*
int(
M_PI/0.02), 0.02*
int(
M_PI/0.02) );
572 m_hphivsDd0res[1] =
new TH1F(
"hphi_vs_Dd0_1",
"phi for Dd0>0.1",
int(2*
M_PI/0.02), -0.02*
int(
M_PI/0.02), 0.02*
int(
M_PI/0.02) );
575 m_hphivsDa0res[0] =
new TH1F(
"hphi_vs_Da0_0",
"phi for Da0<0.1",
int(2*
M_PI/0.02), -0.02*
int(
M_PI/0.02), 0.02*
int(
M_PI/0.02) );
576 m_hphivsDa0res[1] =
new TH1F(
"hphi_vs_Da0_1",
"phi for Da0>0.1",
int(2*
M_PI/0.02), -0.02*
int(
M_PI/0.02), 0.02*
int(
M_PI/0.02) );
580 for (
unsigned ih=0 ; ih<3 ; ih++ ) {
585 m_retares.push_back(
new Resplot(
"reta_vs_zed", 0.2*zBins, -zMax, zMax, 2*etaResBins, -tmp_absResEta, tmp_absResEta ) );
586 m_rphires.push_back(
new Resplot(
"rphi_vs_zed", 0.2*zBins, -zMax, zMax, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
587 m_rzedres.push_back(
new Resplot(
"rzed_vs_zed", 0.2*zBins, -zMax, zMax, 8*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
588 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_zed", 0.2*zBins, -zMax, zMax, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
591 m_riptres.push_back(
new Resplot(
"ript_vs_zed", 0.2*zBins, -zMax, zMax, 2*pTResBins, -2*tmp_absResPt, 2*tmp_absResPt ) );
592 m_rptres.push_back(
new Resplot(
"rpt_vs_zed", 0.2*zBins, -zMax, zMax, 8*pTResBins, -tmp_absResPt, tmp_absResPt ) );
593 m_rd0res.push_back(
new Resplot(
"rd0_vs_zed", 0.2*zBins, -zMax, zMax, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
596 m_retares.push_back(
new Resplot(
"reta_vs_nvtx", 24, 0, 72, 4*etaResBins, -tmp_absResEta, tmp_absResEta ) );
597 m_rphires.push_back(
new Resplot(
"rphi_vs_nvtx", 24, 0, 72, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
598 m_rzedres.push_back(
new Resplot(
"rzed_vs_nvtx", 24, 0, 72, 4*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
599 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_nvtx", 24, 0, 72, 24*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
600 m_riptres.push_back(
new Resplot(
"ript_vs_nvtx", 24, 0, 72, 4*pTResBins, -tmp_absResPt, tmp_absResPt ) );
601 m_rptres.push_back(
new Resplot(
"rpt_vs_nvtx", 24, 0, 72, 8*pTResBins, -tmp_absResPt, tmp_absResPt ) );
602 m_rd0res.push_back(
new Resplot(
"rd0_vs_nvtx", 24, 0, 72, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
605 m_retares.push_back(
new Resplot(
"reta_vs_ntracks", 60, 0, 600, 4*etaResBins, -tmp_absResEta, tmp_absResEta ) );
606 m_rphires.push_back(
new Resplot(
"rphi_vs_ntracks", 60, 0, 600, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
607 m_rzedres.push_back(
new Resplot(
"rzed_vs_ntracks", 60, 0, 600, 4*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
608 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_ntracks", 60, 0, 600, 24*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
610 m_riptres.push_back(
new Resplot(
"ript_vs_ntracks", 60, 0, 600, 4*pTResBins, -tmp_absResPt, tmp_absResPt ) );
611 m_rptres.push_back(
new Resplot(
"rpt_vs_ntracks", 60, 0, 600, 8*pTResBins, -tmp_absResPt, tmp_absResPt ) );
612 m_rd0res.push_back(
new Resplot(
"rd0_vs_ntracks", 60, 0, 600, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
615 m_retares.push_back(
new Resplot(
"reta_vs_phi", 128, -
M_PI,
M_PI, 2*etaResBins, -wfactor*tmp_absResEta, wfactor*tmp_absResEta ) );
616 m_rphires.push_back(
new Resplot(
"rphi_vs_phi", 128, -
M_PI,
M_PI, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
617 m_rzedres.push_back(
new Resplot(
"rzed_vs_phi", 128, -
M_PI,
M_PI, 8*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
619 m_riptres.push_back(
new Resplot(
"ript_vs_phi", 128, -
M_PI,
M_PI, 16*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
620 m_rptres.push_back(
new Resplot(
"rpt_vs_phi", 128, -
M_PI,
M_PI, 8*pTResBins, -wfactor*tmp_absResPt, wfactor*tmp_absResPt ) );
621 m_rd0res.push_back(
new Resplot(
"rd0_vs_phi", 128, -
M_PI,
M_PI, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
625 m_retares.push_back(
new Resplot(
"reta_vs_mu", 24, 0, 72, 4*etaResBins, -tmp_absResEta, tmp_absResEta ) );
626 m_rphires.push_back(
new Resplot(
"rphi_vs_mu", 24, 0, 72, 8*phiResBins, -wfactor*tmp_absResPhi, wfactor*tmp_absResPhi ) );
627 m_rzedres.push_back(
new Resplot(
"rzed_vs_mu", 24, 0, 72, 4*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
628 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_mu", 24, 0, 72, 24*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
629 m_riptres.push_back(
new Resplot(
"ript_vs_mu", 24, 0, 72, 4*pTResBins, -tmp_absResPt, tmp_absResPt ) );
630 m_rptres.push_back(
new Resplot(
"rpt_vs_mu", 24, 0, 72, 8*pTResBins, -tmp_absResPt, tmp_absResPt ) );
631 m_rd0res.push_back(
new Resplot(
"rd0_vs_mu", 24, 0, 72, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
636 m_rzedres.push_back(
new Resplot(
"rzed_vs_signed_pt", ptnbins2, ptbinlims2, 4*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
637 m_rzedres.push_back(
new Resplot(
"rzed_vs_ABS_pt", ptnbins, ptbinlims, 4*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
638 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_signed_pt", ptnbins2, ptbinlims2, 24*zfactor*zresBins, -zfactor*zresMax, zfactor*zresMax ) );
639 m_rzedthetares.push_back(
new Resplot(
"rzedtheta_vs_ABS_pt", ptnbins, ptbinlims, 24*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax ) );
642 m_rd0res.push_back(
new Resplot(
"rd0_vs_signed_pt", ptnbins2, ptbinlims2, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
643 m_rd0res.push_back(
new Resplot(
"rd0_vs_ABS_pt", ptnbins, ptbinlims, factor*8*a0resBins, -wfactor*a0resMax, wfactor*a0resMax ) );
649 m_retaresPull.push_back(
new Resplot(
"retaPull_vs_ipt", iptnbins, iptbinlims, 2*etaResBins, -5,5));
650 m_rphiresPull.push_back(
new Resplot(
"rphiPull_vs_ipt", iptnbins, iptbinlims, 8*phiResBins, -5,5));
651 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_ipt", iptnbins, iptbinlims, 4*zfactor*zresBins, -5,5));
653 m_rptresPull.push_back(
new Resplot(
"rptPull_vs_ipt", iptnbins, iptbinlims, 8*pTResBins, -5,5));
654 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_ipt", iptnbins, iptbinlims, factor*8*a0resBins, -5,5));
656 m_retaresPull.push_back(
new Resplot(
"retaPull_vs_pt", ptnbins, ptbinlims, 2*etaResBins, -5,5));
657 m_rphiresPull.push_back(
new Resplot(
"rphiPull_vs_pt", ptnbins, ptbinlims, 8*phiResBins, -5,5));
658 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_pt", ptnbins, ptbinlims, 4*zfactor*zresBins, -5,5));
661 m_rptresPull.push_back(
new Resplot(
"rptPull_vs_pt", ptnbins, ptbinlims, 8*pTResBins, -5,5));
662 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_pt", ptnbins, ptbinlims, factor*8*a0resBins, -5,5));
664 m_retaresPull.push_back(
new Resplot(
"retaPull_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 4*etaResBins, -5,5));
665 m_rphiresPull.push_back(
new Resplot(
"rphiPull_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 8*phiResBins, -5,5));
666 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 4*zfactor*zresBins, -5,5));
669 m_rptresPull.push_back(
new Resplot(
"rptPull_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, 8*pTResBins, -5,5));
670 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_eta", etaBins, -tmp_maxEta, tmp_maxEta, factor*8*a0resBins, -5,5));
671 m_retaresPull.push_back(
new Resplot(
"retaPull_vs_zed", 0.2*zBins, -zMax, zMax, 2*etaResBins, -5,5));
672 m_rphiresPull.push_back(
new Resplot(
"rphiPull_vs_zed", 0.2*zBins, -zMax, zMax, 8*phiResBins, -5,5));
673 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_zed", 0.2*zBins, -zMax, zMax, 4*zfactor*zresBins, -5,5));
677 m_rptresPull.push_back(
new Resplot(
"rptPull_vs_zed", 0.2*zBins, -zMax, zMax, 8*pTResBins, -5,5));
678 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_zed", 0.2*zBins, -zMax, zMax, factor*8*a0resBins, -5,5));
687 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_nvtx", 12, 0, 36, factor*8*a0resBins, -5,5));
691 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_ntracks", 60, 0, 600, 4*zfactor*zresBins, -5,5));
695 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_ntracks", 60, 0, 600, factor*8*a0resBins, -5,5));
697 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_signed_pt", ptnbins2, ptbinlims2, 4*zfactor*zresBins, -5,5));
698 m_rzedresPull.push_back(
new Resplot(
"rzedPull_vs_ABS_pt", ptnbins, ptbinlims, 4*zfactor*zresBins, -5,5));
701 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_signed_pt", ptnbins2, ptbinlims2, factor*8*a0resBins, -5,5));
702 m_rd0resPull.push_back(
new Resplot(
"rd0Pull_vs_ABS_pt", ptnbins, ptbinlims, factor*8*a0resBins, -5,5));
704 m_rzedreslb =
new Resplot(
"rzed_vs_lb", 301, -0.5, 3009.5, 8*zfactor*zresBins, -2*zfactor*zresMax, 2*zfactor*zresMax );
706 m_rzedlb =
new Resplot(
"zed_vs_lb", 301, -0.5, 3009.5, 100, -300, 300 );
728 addHistogram(
new TH1F(
"nsct",
"nsct", NHits, -0.5,
float(NHits-0.5) ) );
729 addHistogram(
new TH1F(
"nsct_rec",
"nsct_rec", NHits, -0.5,
float(NHits-0.5) ) );
731 addHistogram(
new TH1F(
"npix",
"npix", NHits, -0.5,
float(NHits-0.5) ) );
732 addHistogram(
new TH1F(
"npix_rec",
"npix_rec", NHits, -0.5,
float(NHits-0.5) ) );
734 addHistogram(
new TH1F(
"nsi",
"nsi", NHits, -0.5,
float(NHits-0.5) ) );
735 addHistogram(
new TH1F(
"nsi_rec",
"nsi_rec", NHits, -0.5,
float(NHits-0.5) ) );
736 addHistogram(
new TH1F(
"nsi_matched",
"nsi_matched", NHits, -0.5,
float(NHits-0.5) ) );
739 addHistogram(
new TH1F(
"ntrt",
"ntrt", NHits, -0.5,
float(NHits-0.5) ) );
740 addHistogram(
new TH1F(
"ntrt_rec",
"ntrt_rec", NHits, -0.5,
float(NHits-0.5) ) );
742 addHistogram(
new TH1F(
"nstraw",
"nstraw", NHits*4, -0.5,
float(4*NHits-0.5) ) );
743 addHistogram(
new TH1F(
"nstraw_rec",
"nstraw_rec", NHits*4, -0.5,
float(4*NHits-0.5) ) );
745 addHistogram(
new TH1F(
"ntracks",
"ntracks", Ntracks+1, -0.5,
float(Ntracks+0.5) ) );
746 addHistogram(
new TH1F(
"ntracks_rec",
"ntracks_rec", Ntracks+1, -0.5,
float(Ntracks+0.5) ) );
750 m_h2 =
new Resplot(
"d0vphi", phiBins, -3.142, 3.142, d0Bins, -d0Max, d0Max );
751 m_h2r =
new Resplot(
"d0vphi_rec", phiBins, -3.142, 3.142, d0Bins, -d0Max, d0Max );
752 m_h2m =
new Resplot(
"d0vphi_match", phiBins, -3.142, 3.142, d0Bins, -d0Max, d0Max );
754 m_h2a0 =
new Resplot(
"a0vphi", phiBins, -3.142, 3.142, d0Bins, -d0Max, d0Max );
755 m_h2a0r =
new Resplot(
"a0vphi_rec", phiBins, -3.142, 3.142, d0Bins, -d0Max, d0Max );
760 TH1F heffvlb(
"eff vs lb",
"eff vs lb", 301, -0.5, 3009.5 );
795 TH1F* eff_vs_mult =
new TH1F(
"eff_vs_mult",
"eff_vs_mult", 25, 0, 25 );
800 m_n_vtx_tracks =
new TH1F(
"nvtxtracks",
"nvtxtracks", 150, 0, 600);
815 double nbins[23] = { 0, 29.5, 39.5, 48.5, 56.5, 63.5, 70.5, 77.5,
816 83.5, 91.5, 97.5, 106.5, 114.5, 121.5, 129.5, 140.5,
817 151.5, 164.5, 200.5, 250.5, 300.5, 400.5, 600 };
819 TH1F* n_vtx_tracks2 =
new TH1F(
"nvtxtracks2",
"nvtxtracks2", 22, nbins);
821 delete n_vtx_tracks2;
823 m_n_vtx =
new TH1F(
"nvtx",
"nvtx", 81, -0.5, 80.5);
826 m_mu =
new TH1F(
"mu",
"mu", 90, 0, 90);
832 double etovpt_bins[39] = {
833 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
834 1, 1.08571, 1.17877, 1.2798, 1.3895, 1.50859, 1.63789, 1.77828, 1.9307, 2.09618,
835 2.27585, 2.47091, 2.6827, 2.91263, 3.16228, 3.43332, 3.72759, 4.04709, 4.39397, 4.77058,
836 5.17947, 5.62341, 6.1054, 6.6287, 7.19686, 7.81371, 8.48343, 9.21055, 10
839 m_etovpt_raw =
new TH1F(
"etovpt_raw",
"ET / pT", 100, 0, 10 );
841 m_etovpt =
new TH1F(
"etovpt",
"ET / pT", 38, etovpt_bins );
845 m_et =
new TH1F(
"ET",
"ET; E_{T} [GeV]", ptnbins, ptbinlims );
1229 const std::vector<TIDA::Track*>& testtracks,
1239 std::cout <<
"ConfAnalysis::execute() \t " <<
name()
1240 <<
"\tref " << reftracks.size()
1241 <<
"\ttest " << testtracks.size();
1242 if (
groi ) std::cout <<
"\tgroi " <<
groi <<
" " << *
groi;
1243 std::cout << std::endl;
1249 static std::string varName[16] = {
"pT",
"eta",
"phi",
"z0",
"d0",
"a0",
1250 "nsct",
"npix",
"nsi",
"ntrt",
"nstraw",
1251 "dd0",
"da0",
"dz0",
"deta",
"dphi" };
1253 std::map<std::string, TH1F*>::iterator hmitr =
m_histos.find(
"ntracks");
1254 if ( hmitr!=
m_histos.end() ) hmitr->second->Fill( reftracks.size() );
1256 hmitr =
m_histos.find(
"ntracks_rec");
1257 if ( hmitr!=
m_histos.end() ) hmitr->second->Fill( testtracks.size() );
1262 m_Nref += reftracks.size();
1277 for (
int i=reftracks.size() ; i-- ; ) {
1284 double deta = reftracks[i]->eta() -
groi->eta();
1286 double dzed = reftracks[i]->z0() -
groi->zed();
1294 double ipTt = 1./(reftracks[i]->pT()/1000.);
1295 double pTt = reftracks[i]->pT()/1000;
1297 double etat = reftracks[i]->eta();
1298 double phit = reftracks[i]->phi();
1300 double thetat = 2*std::atan( exp( (-1)*etat ) );
1309 double z0t = reftracks[i]->z0();
1311 double a0t = reftracks[i]->a0();
1317 d0t = reftracks[i]->a0();
1332 m_rChi2prob->Fill( pTt, TMath::Prob(reftracks[i]->
chi2(),reftracks[i]->dof()) );
1334 m_rChi2dof->Fill( pTt, reftracks[i]->
chi2()/reftracks[i]->dof() );
1344 double dpTt = reftracks[i]->dpT()/1000;
1345 double detat = reftracks[i]->deta();
1346 double dphit = reftracks[i]->dphi();
1349 float droi_detat = 0.f;
1350 float droi_dphit = 0.f;
1351 float droi_dRt = 0.f;
1353 droi_detat =
groi->eta() - reftracks[i]->eta();
1354 droi_dphit =
groi->phi() - reftracks[i]->phi();
1355 if ( droi_dphit<-
M_PI ) droi_dphit +=2*
M_PI;
1356 if ( droi_dphit>
M_PI ) droi_dphit -=2*
M_PI;
1357 droi_dRt = std::sqrt(droi_dphit*droi_dphit + droi_detat*droi_detat);
1362 double dz0t = reftracks[i]->dz0();
1367 double da0t = reftracks[i]->da0();
1370 std::cout <<
"etat = " << etat <<
" +/- " << detat << std::endl;
1371 std::cout <<
"phit = " << phit <<
" +/- " << dphit << std::endl;
1372 std::cout <<
"z0t = " << z0t <<
" +/- " << dz0t << std::endl;
1373 std::cout <<
"d0t = " << d0t <<
" +/- " << dd0t << std::endl;
1374 std::cout <<
"a0t = " << a0t <<
" +/- " << da0t << std::endl;
1375 std::cout <<
"pTt = " << pTt <<
" +/- " << dpTt << std::endl;
1378 if ( std::fabs(a0t)>
a0 )
continue;
1383 double nsctt = reftracks[i]->sctHits();
1384 double npixt = reftracks[i]->pixelHits()*0.5;
1385 double nsit = reftracks[i]->pixelHits()*0.5 + reftracks[i]->sctHits();
1387 double nsctht = reftracks[i]->sctHoles();
1388 double npixht = reftracks[i]->pixelHoles();
1389 double nsiht = reftracks[i]->pixelHoles() + reftracks[i]->sctHoles();
1391 double nbl = reftracks[i]->bLayerHits();
1392 double nblh = ( ( reftracks[i]->expectBL() && reftracks[i]->bLayerHits()<1 ) ? 1 : 0 );
1395 double nstrawt = reftracks[i]->strawHits();
1401 m_h2->Fill( phit, d0t );
1402 m_h2a0->Fill( phit, a0t );
1406 double mu_val =
gevent->mu();
1408 m_mu->Fill( mu_val );
1416 double vpart[16] = { std::fabs(pTt), etat, phit, z0t, d0t, a0t, nsctt, npixt, nsctt, nsit, nstrawt, dd0t, da0t, dz0t, detat, dphit };
1420 for (
int it=0 ; it<11 ; it++ ) {
1425 if ( TH1F* hptr =
find( varName[it] ) ) hptr->Fill( vpart[it] );
1426 else std::cerr <<
"hmmm histo " << varName[it] <<
" not found" << std::endl;
1439 m_rnpix_pt->Fill( std::fabs(pTt), npixt*1.0 );
1440 m_rnsct_pt->Fill( std::fabs(pTt), nsctt*1.0 );
1441 m_rntrt_pt->Fill( std::fabs(pTt), nstrawt*1.0 );
1451 m_rnsi_pt->Fill( std::fabs(pTt), nsit );
1473 double etovpt_val = 0;
1479 tobj = objects->object( reftracks[i]->
id() );
1483 etovpt_val = std::fabs( tobj->
pt()/reftracks[i]->pT() );
1486 m_et->Fill( tobj->
pt()*0.001 );
1487 ET = std::fabs(tobj->
pt()*0.001);
1492 if ( matchedreco ) {
1508 if ( pTt<0 )
m_eff_ptm->Fill(std::fabs(pTt));
1534 double pTr = matchedreco->
pT()/1000;
1535 double etar = matchedreco->
eta();
1536 double phir = matchedreco->
phi();
1538 double thetar = 2*std::atan( exp( (-1)*etar) );
1560 a0r = matchedreco->
a0();
1561 z0r = matchedreco->
z0();
1564 d0r = matchedreco->
a0();
1583 double nsctr = matchedreco->
sctHits();
1584 double npixr = matchedreco->
pixelHits()*0.5;
1587 double nscthr = matchedreco->
sctHoles();
1596 double nstrawr = matchedreco->
strawHits();
1600 double dpTr = matchedreco->
dpT()/1000;
1601 double detar = matchedreco->
deta();
1602 double dphir = matchedreco->
dphi();
1608 double dz0r = matchedreco->
dz0();
1610 double da0r = matchedreco->
da0();
1613 std::cout <<
"etar = " << etar <<
" +/- " << detar << std::endl;
1614 std::cout <<
"phir = " << phir <<
" +/- " << dphir << std::endl;
1615 std::cout <<
"pTr = " << pTr <<
" +/- " << dpTr << std::endl;
1616 std::cout <<
"a0r = " << a0r <<
" +/- " << da0r << std::endl;
1617 std::cout <<
"d0r = " << d0r <<
" +/- " << dd0r << std::endl;
1618 std::cout <<
"z0r = " << z0r <<
" +/- " << dz0r << std::endl;
1627 double resfiller[9] = { std::fabs(ipTt), std::fabs(pTt), ET, etat, z0t, double(
NvtxCount), double(
Nvtxtracks), phit, mu_val };
1629 double Delta_ipt = 1.0/pTr - 1.0/pTt;
1630 double Delta_pt = pTr - pTt;
1637 for (
int irfill=0 ; irfill<9 ; irfill++ ) {
1638 m_retares[irfill]->Fill( resfiller[irfill], etar-etat );
1639 m_rphires[irfill]->Fill( resfiller[irfill], phir-phit );
1640 m_rzedres[irfill]->Fill( resfiller[irfill], z0r-z0t );
1641 m_rzedthetares[irfill]->Fill( resfiller[irfill], z0r*std::sin(thetar)-z0t*std::sin(thetat) );
1642 m_riptres[irfill]->Fill( resfiller[irfill], Delta_ipt );
1643 m_rptres[irfill]->Fill( resfiller[irfill], Delta_pt );
1644 m_rd0res[irfill]->Fill( resfiller[irfill], a0r-a0t );
1653 for (
int irfill=0 ; irfill<6 ; irfill++ ) {
1654 m_rphiresPull[irfill]->Fill( resfiller[irfill], (phir - phit) / sqrt( (dphit*dphit) + (dphir*dphir) ) );
1655 m_retaresPull[irfill]->Fill( resfiller[irfill], (etar - etat) / sqrt( (detat*detat) + (detar*detar) ) );
1656 m_rptresPull[irfill]->Fill( resfiller[irfill], Delta_pt / sqrt( (dpTt*dpTt) + (dpTr*dpTr) ) );
1657 m_rzedresPull[irfill]->Fill( resfiller[irfill], (z0r - z0t) / sqrt( (dz0t*dz0t) + (dz0r*dz0r) ) );
1658 m_rd0resPull[irfill]->Fill( resfiller[irfill], (a0r - a0t) / sqrt( (da0t*da0t) + (da0r*da0r) ) );
1661 m_rDz0res[0]->Fill( std::fabs(pTt), dz0r-dz0t );
1667 std::ostream& dumpstream =
dumpfile;
1668 if ( dz0t>0 && std::fabs( dz0r-dz0t )>0.04 ) {
1670 dumpstream <<
"POOR sigma(z0) agreement \n\trefrack: " << *reftracks[i] <<
"\n\ttestrack: " << *matchedreco << std::endl;
1676 m_rDd0res[0]->Fill( std::fabs(pTt), dd0r-dd0t );
1682 m_rDa0res[0]->Fill( std::fabs(pTt), da0r-da0t );
1687 const double Deltaphi = 2*
M_PI/
NMod;
1689 double phistart = 11.0819;
1690 if (
NMod==22 ) phistart = 7.05803;
1692 double phit_wrap = phit - phistart*
M_PI/180;
1694 if ( phit_wrap<-
M_PI ) phit_wrap += 2*
M_PI;
1696 double iphi = phit_wrap - (Deltaphi*int((phit_wrap+
M_PI)/Deltaphi) -
M_PI);
1720 m_rzedresPull[
m_rphires.size()-3]->Fill( resfiller[1], (z0r - z0t) / std::sqrt( (dz0t*dz0t) + (dz0r*dz0r) ) );
1721 m_rzedresPull[
m_rphires.size()-2]->Fill( fabs(resfiller[1]), (z0r - z0t) / std::sqrt( (dz0t*dz0t) + (dz0r*dz0r) ) );
1722 m_rd0resPull[
m_rphires.size()-3]->Fill( resfiller[1], (a0r - a0t) / std::sqrt( (da0t*da0t) + (da0r*da0r) ) );
1723 m_rd0resPull[
m_rphires.size()-2]->Fill( fabs(resfiller[1]), (a0r - a0t) / std::sqrt( (da0t*da0t) + (da0r*da0r) ) );
1756 double vres[6] = { Delta_ipt, etar-etat, phir-phit, z0r-z0t, d0r-d0t, a0r-a0t };
1757 for (
int it=0 ; it<6 ; it++ ) {
1759 find(
"ipT_res")->Fill( vres[0] );
1760 find(
"spT_res")->Fill( 1.0/pTr-1.0/pTt );
1762 if ( TH1F* hptr =
find(varName[it]+
"_res") ) hptr->Fill( vres[it] );
1763 else std::cerr <<
"hmmm histo " << varName[it]+
"_res" <<
" not found" << std::endl;
1766 if ( TH2F* hptr =
find2D(
"eta_phi_rec") ) {
1767 hptr->Fill( etar,phir );
1768 hptr->GetXaxis()->SetTitle(
"#eta");
1769 hptr->GetYaxis()->SetTitle(
"#phi");
1772 if ( TH2F* hptr =
find2D(
"phi_d0_Rec") ) {
1773 hptr->Fill( phir,d0r );
1774 hptr->GetXaxis()->SetTitle(
"#phi");
1775 hptr->GetYaxis()->SetTitle(
"d_{0} [mm]");
1780 if ( TH1F* hptr =
find(
"dpT_rec") ) hptr->Fill(dpTr);
1781 if ( TH1F* hptr =
find(
"deta_rec")) hptr->Fill(detar);
1782 if ( TH1F* hptr =
find(
"dphi_rec")) hptr->Fill(dphir);
1783 if ( TH1F* hptr =
find(
"dz0_rec")) hptr->Fill(dz0r);
1784 if ( TH1F* hptr =
find(
"dd0_rec")) hptr->Fill(dd0r);
1785 if ( TH1F* hptr =
find(
"da0_rec")) hptr->Fill(da0r);
1788 if ( TH1F* hptr =
find(
"dpT") ) hptr->Fill(dpTt);
1789 if ( TH1F* hptr =
find(
"deta")) hptr->Fill(detat);
1790 if ( TH1F* hptr =
find(
"dphi")) hptr->Fill(dphit);
1791 if ( TH1F* hptr =
find(
"dz0")) hptr->Fill(dz0t);
1792 if ( TH1F* hptr =
find(
"dd0")) hptr->Fill(dd0t);
1793 if ( TH1F* hptr =
find(
"da0")) hptr->Fill(da0t);
1796 if ( TH1F* hptr =
find(
"dd0_res")) hptr->Fill(dd0r-dd0t);
1797 if ( TH1F* hptr =
find(
"da0_res")) hptr->Fill(da0r-da0t);
1798 if ( TH1F* hptr =
find(
"dz0_res")) hptr->Fill(dz0r-dz0t);
1800 double Dd0 = dd0r-dd0t;
1801 double Da0 = da0r-da0t;
1803 double Ddphi = dphir - dphit;
1813 if ( matchedreco->
bLayerHits()<=3 ) std::cout <<
"\nov2\t" << Dd0 <<
" " << *matchedreco << std::endl;
1814 else std::cout <<
"\nov4\t" << Dd0 <<
" " << *matchedreco << std::endl;
1817 if ( std::fabs(Dd0)<0.01 ) {
1821 std::cout <<
"close residual " << Dd0 <<
" " << Ddphi
1822 <<
" "<< reftracks[i]->bLayerHits()-matchedreco->
bLayerHits()
1823 <<
" "<< reftracks[i]->pixelHits()-matchedreco->
pixelHits();
1824 std::cout <<
"\nccr\t" << Dd0 <<
" " << Ddphi <<
" " << *reftracks[i];
1825 std::cout <<
"\ncct\t" << Dd0 <<
" " << Ddphi <<
" " << *matchedreco << std::endl;
1831 std::cout <<
"far residual " << Dd0 <<
" " << Ddphi
1832 <<
" "<< reftracks[i]->bLayerHits()-matchedreco->
bLayerHits()
1833 <<
" "<< reftracks[i]->pixelHits()-matchedreco->
pixelHits();
1834 std::cout <<
"\nffr\t" << Dd0 <<
" " << Ddphi <<
" " << *reftracks[i];
1835 std::cout <<
"\nfft\t" << Dd0 <<
" " << Ddphi <<
" " << *matchedreco << std::endl;
1846 double pull_pt = Delta_pt / std::sqrt( (dpTt*dpTt) + (dpTr*dpTr) );
1847 double pull_eta = (etar - etat) / std::sqrt( (detat*detat) + (detar*detar) );
1848 double pull_phi = (phir - phit) / std::sqrt( (dphit*dphit) + (dphir*dphir) );
1849 double pull_z0 = (z0r - z0t) / std::sqrt( (dz0t*dz0t) + (dz0r*dz0r) );
1850 double pull_d0 = (d0r - d0t) / std::sqrt( (dd0t*dd0t) + (dd0r*dd0r) );
1851 double pull_a0 = (a0r - a0t) / std::sqrt( (da0t*da0t) + (da0r*da0r) );
1853 if ( TH1F* hptr =
find(
"pT_pull") ) hptr->Fill(pull_pt);
1854 if ( TH1F* hptr =
find(
"eta_pull")) hptr->Fill(pull_eta);
1855 if ( TH1F* hptr =
find(
"phi_pull")) hptr->Fill(pull_phi);
1856 if ( TH1F* hptr =
find(
"z0_pull")) hptr->Fill(pull_z0);
1857 if ( TH1F* hptr =
find(
"d0_pull")) hptr->Fill(pull_d0);
1858 if ( TH1F* hptr =
find(
"a0_pull")) hptr->Fill(pull_a0);
1861 double pull_pt_simp = Delta_pt / sqrt( dpTr*dpTr );
1862 double pull_eta_simp = (etar - etat) / sqrt( detar*detar );
1863 double pull_phi_simp = (phir - phit) / sqrt( dphir*dphir );
1864 double pull_z0_simp = (z0r - z0t) / sqrt( dz0r*dz0r );
1865 double pull_d0_simp = (d0r - d0t) / sqrt( dd0r*dd0r );
1866 double pull_a0_simp = (a0r - a0t) / sqrt( da0r*da0r );
1868 if ( TH1F* hptr =
find(
"pT_pull_simple") ) hptr->Fill(pull_pt_simp);
1869 if ( TH1F* hptr =
find(
"eta_pull_simple")) hptr->Fill(pull_eta_simp);
1870 if ( TH1F* hptr =
find(
"phi_pull_simple")) hptr->Fill(pull_phi_simp);
1871 if ( TH1F* hptr =
find(
"z0_pull_simple")) hptr->Fill(pull_z0_simp);
1872 if ( TH1F* hptr =
find(
"d0_pull_simple")) hptr->Fill(pull_d0_simp);
1873 if ( TH1F* hptr =
find(
"a0_pull_simple")) hptr->Fill(pull_a0_simp);
1876 if ( TH1F* hptr =
find(
"etai_res") ) hptr->Fill( etat-etar );
1879 double Delphi = phit-phir;
1880 double Deleta = etat-etar;
1882 if ( Delphi<-
M_PI ) Delphi+=2*
M_PI;
1883 if ( Delphi>
M_PI ) Delphi -=2*
M_PI;
1885 double DeltaR = std::sqrt(Delphi*Delphi+Deleta*Deleta);
1897 if ( TH1F* hptr =
find(
"nsi_matched")) hptr->Fill(nsir);
1907 matchedreco->
chi2()/matchedreco->
dof() );
1910 (matchedreco->
chi2()/matchedreco->
dof())-(reftracks[i]->chi2()/reftracks[i]->dof()) );
1921 m_rChi2prob_bad->Fill( std::fabs(pTt), TMath::Prob(reftracks[i]->
chi2(),reftracks[i]->dof()) );
1928 m_eff_pt->FillDenom(std::fabs(pTt));
1936 if ( pTt<0 )
m_eff_ptm->FillDenom(std::fabs(pTt));
1937 else m_eff_ptp->FillDenom(std::fabs(pTt));
1958 double mu_val =
gevent->mu();
1968 std::ostream& dumpstream =
dumpfile;
1970 if ( std::fabs(pTt)>1 ) {
1974 dumpstream <<
m_name <<
"\tMISSING TRACK run " <<
r <<
"\tevent " <<
ev
1975 <<
"\tlb " <<
lb <<
"\tN vertices " <<
NvtxCount << std::endl;
1976 dumpstream <<
m_name <<
"\tMISSING TRACK RoI " << *
groi << std::endl;
1977 dumpstream <<
m_name <<
"\tMISSING TRACK Track " << *reftracks[i];
1978 if ( std::fabs(pTt)>=30 ) dumpstream <<
"\tvery high pt";
1979 if ( std::fabs(pTt)>4 &&
1980 std::fabs(pTt)<30 ) dumpstream <<
"\t high pt";
1981 dumpstream << std::endl;
1983 if ( std::fabs(pTt)>=20 ){
1984 dumpstream <<
"Test tracks " << std::endl;
1985 for (
unsigned int ii=0; ii<testtracks.size(); ii++){
1986 dumpstream << *testtracks[ii] << std::endl;
2006 static int icount = 0;
2010 if (
m_print ) std::cout <<
"ConfAnalysis::execute() \t " <<
name() <<
"\t " << icount <<
" events\t " << testtracks.size() <<
" tracks (" <<
m_Nreco <<
")" <<
"\n---------------" << std::endl;
2014 for (
int i=testtracks.size() ; i-- ; ) {
2019 double pTr = testtracks[i]->pT()/1000;
2020 double etar = testtracks[i]->eta();
2021 double phir = testtracks[i]->phi();
2022 double thetar = 2*std::atan( exp( (-1)*etar) );
2024 double z0r = testtracks[i]->z0();
2026 double a0r = testtracks[i]->a0();
2030 d0r = testtracks[i]->a0();
2038 double nsctr = testtracks[i]->sctHits();
2039 double npixr = testtracks[i]->pixelHits()*0.5;
2040 double nsir = testtracks[i]->pixelHits()*0.5 + testtracks[i]->sctHits();
2042 double ntrtr = testtracks[i]->trHits();
2043 double nstrawr = testtracks[i]->strawHits();
2050 double dpTr_b = testtracks[i]->dpT()/1000;
2051 double detar_b = testtracks[i]->deta();
2052 double dphir_b = testtracks[i]->dphi();
2053 double dz0r_b = testtracks[i]->dz0();
2055 double da0r_b = testtracks[i]->da0();
2058 std::cout <<
"pTr_b = " << pTr <<
" +/- " << dpTr_b << std::endl;
2059 std::cout <<
"phir_b = " << phir <<
" +/- " << dphir_b << std::endl;
2060 std::cout <<
"z0r_b = " << z0r <<
" +/- " << dz0r_b << std::endl;
2061 std::cout <<
"d0r_b = " << d0r <<
" +/- " << dd0r_b << std::endl;
2062 std::cout <<
"a0r_b = " << a0r <<
" +/- " << da0r_b << std::endl;
2063 std::cout <<
"etar_b = " << etar <<
" +/- " << detar_b << std::endl;
2084 double vpart[11] = { std::fabs(pTr), etar, phir, z0r, d0r, a0r, nsctr, npixr, nsir, ntrtr, nstrawr };
2085 for (
int it=0 ; it<11 ; it++ ) {
2091 if ( TH1F* hptr =
find(varName[it]+
"_rec") ) hptr->Fill( vpart[it] );
2092 else std::cerr <<
"hmmm histo " << varName[it]+
"_rec" <<
" not found" << std::endl;
2095 if ( TH2F* hptr =
find2D(
"eta_phi_rec") ) {
2096 hptr->Fill( etar,phir );
2097 hptr->GetXaxis()->SetTitle(
"#eta");
2098 hptr->GetYaxis()->SetTitle(
"#phi");
2101 if ( TH2F* hptr =
find2D(
"phi_d0_rec") ) {
2102 hptr->Fill( phir,d0r );
2103 hptr->GetXaxis()->SetTitle(
"#phi");
2104 hptr->GetYaxis()->SetTitle(
"d_{0} [mm]");
2139 std::cout <<
"ConfAnalysis::execute() missed a high pT track - dumping tracks" << std::endl;
2141 for (
int i=reftracks.size() ; i-- ; ) {
2143 if ( std::fabs( reftracks[i]->pT() ) > 1000 ) {
2144 std::cout <<
"\t dump " << *reftracks[i];
2146 if ( matchedreco ) std::cout <<
" <--> " << *matchedreco << std::endl;
2147 else std::cout << std::endl;
2152 for (
int i=testtracks.size() ; i-- ; ) {
2154 if ( matchedref==0 ) std::cout <<
"\t\t\t\t\t " << *testtracks[i] << std::endl;
2159 if (
m_print ) std::cout <<
"ConfAnalysis::execute() exiting" << std::endl;