1 #ifndef Validation_DTRecHits_Histograms_h 2 #define Validation_DTRecHits_Histograms_h 24 TH1 *numH = numerator->
getTH1();
25 TH1 *denH = denominator->
getTH1();
26 effH->Divide(numH, denH);
29 int bins = effH->GetNbinsX();
31 float den = denH->GetBinContent(
bin);
32 float eff = effH->GetBinContent(
bin);
35 err =
sqrt(eff * (1 - eff) / den);
37 effH->SetBinError(
bin, err);
52 hDist = booker.
book1D(pre +
"_hDist",
"1D RHit distance from wire", 100, 0, 2.5);
54 booker.
book2D(pre +
"_hResVsAngle",
"1D RHit residual vs impact angle", 100, -1.2, 1.2, 100, -0.2, 0.2);
56 booker.
book2D(pre +
"_hResVsDistFE",
"1D RHit residual vs FE distance", 100, 0., 400., 150, -0.5, 0.5);
58 hPullVsPos = booker.
book2D(pre +
"_hPullVsPos",
"1D RHit pull vs position", 100, 0, 2.5, 100, -5, 5);
59 hPullVsAngle = booker.
book2D(pre +
"_hPullVsAngle",
"1D RHit pull vs impact angle", 100, -1.2, 1.2, 100, -5, 5);
60 hPullVsDistFE = booker.
book2D(pre +
"_hPullVsDistFE",
"1D RHit pull vs FE distance", 100, 0., 400., 100, -5, 5);
63 hRes = booker.
book1D(pre +
"_hRes",
"1D RHit residual", 300, -0.5, 0.5);
64 hResSt[0] = booker.
book1D(pre +
"_hResMB1",
"1D RHit residual", 300, -0.5, 0.5);
65 hResSt[1] = booker.
book1D(pre +
"_hResMB2",
"1D RHit residual", 300, -0.5, 0.5);
66 hResSt[2] = booker.
book1D(pre +
"_hResMB3",
"1D RHit residual", 300, -0.5, 0.5);
67 hResSt[3] = booker.
book1D(pre +
"_hResMB4",
"1D RHit residual", 300, -0.5, 0.5);
68 hResVsEta = booker.
book2D(pre +
"_hResVsEta",
"1D RHit residual vs eta", 50, -1.25, 1.25, 150, -0.5, 0.5);
69 hResVsPhi = booker.
book2D(pre +
"_hResVsPhi",
"1D RHit residual vs phi", 100, -3.2, 3.2, 150, -0.5, 0.5);
70 hResVsPos = booker.
book2D(pre +
"_hResVsPos",
"1D RHit residual vs position", 100, 0, 2.5, 150, -0.5, 0.5);
73 hPull = booker.
book1D(pre +
"_hPull",
"1D RHit pull", 100, -5, 5);
74 hPullSt[0] = booker.
book1D(pre +
"_hPullMB1",
"1D RHit residual", 100, -5, 5);
75 hPullSt[1] = booker.
book1D(pre +
"_hPullMB2",
"1D RHit residual", 100, -5, 5);
76 hPullSt[2] = booker.
book1D(pre +
"_hPullMB3",
"1D RHit residual", 100, -5, 5);
77 hPullSt[3] = booker.
book1D(pre +
"_hPullMB4",
"1D RHit residual", 100, -5, 5);
80 void fill(
float distSimHit,
89 float res = distRecHit - distSimHit;
100 if (errRecHit != 0) {
101 float pull = res / errRecHit;
110 std::cout <<
"Error: RecHit error = 0" << std::endl;
142 hEtaMuSimHit = booker.
book1D(pre +
"_hEtaMuSimHit",
"SimHit Eta distribution", 100, -1.5, 1.5);
143 hEtaRecHit = booker.
book1D(pre +
"_hEtaRecHit",
"SimHit Eta distribution with 1D RecHit", 100, -1.5, 1.5);
144 hPhiMuSimHit = booker.
book1D(pre +
"_hPhiMuSimHit",
"SimHit Phi distribution", 100, -
M_PI,
M_PI);
145 hPhiRecHit = booker.
book1D(pre +
"_hPhiRecHit",
"SimHit Phi distribution with 1D RecHit", 100, -
M_PI,
M_PI);
146 hDistMuSimHit = booker.
book1D(pre +
"_hDistMuSimHit",
"SimHit Distance from wire distribution", 100, 0, 2.5);
148 booker.
book1D(pre +
"_hDistRecHit",
"SimHit Distance from wire distribution with 1D RecHit", 100, 0, 2.5);
151 void fill(
float distSimHit,
float etaSimHit,
float phiSimHit,
bool fillRecHit) {
152 hEtaMuSimHit.fill(etaSimHit);
153 hPhiMuSimHit.fill(phiSimHit);
154 hDistMuSimHit.fill(distSimHit);
156 hEtaRecHit.fill(etaSimHit);
157 hPhiRecHit.fill(phiSimHit);
158 hDistRecHit.fill(distSimHit);
184 hEffVsEta = booker.
book1D(pre +
"_hEffVsEta",
"1D RecHit Efficiency as a function of Eta", 100, -1.5, 1.5);
185 hEffVsPhi = booker.
book1D(pre +
"_hEffVsPhi",
"1D RecHit Efficiency as a function of Phi", 100, -
M_PI,
M_PI);
186 hEffVsDist = booker.
book1D(pre +
"_hEffVsDist",
"1D RecHit Efficiency as a function of Dist", 100, 0, 2.5);
188 computeEfficiency(getter);
193 divide(hEffVsEta, getter.
get(pre +
"_hEtaMuRecHit"), getter.
get(pre +
"_hEtaMuSimHit"));
194 divide(hEffVsPhi, getter.
get(pre +
"_hPhiMuRecHit"), getter.
get(pre +
"_hPhiMuSimHit"));
195 divide(hEffVsDist, getter.
get(pre +
"_hDistMuRecHit"), getter.
get(pre +
"_hDistMuSimHit"));
216 hRecAngle = booker.
book1D(pre +
"_hRecAngle",
"Distribution of Rec segment angles;angle (rad)", 100, -1.5, 1.5);
218 booker.
book1D(pre +
"_hSimAngle",
"Distribution of segment angles from SimHits;angle (rad)", 100, -1.5, 1.5);
220 booker.
book2D(pre +
"_hRecVsSimAngle",
"Rec angle vs sim angle;angle (rad)", 100, -1.5, 1.5, 100, -1.5, 1.5);
221 hResAngleVsEta = booker.
book2D(pre +
"_hResAngleVsEta",
222 "Residual on 2D segment angle vs Eta; #eta; res (rad)",
229 hResAngleVsPhi = booker.
book2D(pre +
"_hResAngleVsPhi",
230 "Residual on 2D segment angle vs Phi; #phi (rad);res (rad)",
237 hResPosVsEta = booker.
book2D(
238 pre +
"_hResPosVsEta",
"Residual on 2D segment position vs Eta;#eta;res (cm)", 100, -2.5, 2.5, 150, -0.2, 0.2);
239 hResPosVsPhi = booker.
book2D(pre +
"_hResPosVsPhi",
240 "Residual on 2D segment position vs Phi;#phi (rad);res (cm)",
247 hResPosVsResAngle = booker.
book2D(pre +
"_hResPosVsResAngle",
248 "Residual on 2D segment position vs Residual on 2D " 249 "segment angle;angle (rad);res (cm)",
257 hResAngle = booker.
book1D(
258 pre +
"_hResAngle",
"Residual on 2D segment angle;angle_{rec}-angle_{sim} (rad)", 50, -0.01, 0.01);
260 pre +
"_hResPos",
"Residual on 2D segment position (x at SL center);x_{rec}-x_{sim} (cm)", 150, -0.2, 0.2);
263 hPullAngle = booker.
book1D(
264 pre +
"_hPullAngle",
"Pull on 2D segment angle;(angle_{rec}-angle_{sim})/#sigma (rad)", 150, -5, 5);
265 hPullPos = booker.
book1D(pre +
"_hPullPos",
266 "Pull on 2D segment position (x at SL " 267 "center);(x_{rec}-x_{sim} (cm))/#sigma",
273 void fill(
float angleSimSegment,
274 float angleRecSegment,
281 float resAngle = angleRecSegment - angleSimSegment;
282 hResAngle.fill(resAngle);
283 float resPos = posRecSegment - posSimSegment;
284 hResPos.fill(resPos);
285 hPullAngle.fill(resAngle / sigmaAngle);
286 hPullPos.fill(resPos / sigmaPos);
288 hRecAngle.fill(angleRecSegment);
289 hSimAngle.fill(angleSimSegment);
290 hRecVsSimAngle.fill(angleSimSegment, angleRecSegment);
291 hResAngleVsEta.fill(etaSimSegment, resAngle);
292 hResAngleVsPhi.fill(phiSimSegment, resAngle);
293 hResPosVsEta.fill(etaSimSegment, resPos);
294 hResPosVsPhi.fill(phiSimSegment, resPos);
295 hResPosVsResAngle.fill(resAngle, resPos);
326 hEtaSimSegm = booker.
book1D(pre +
"_hEtaSimSegm",
"Eta of SimHit segment", 100, -1.5, 1.5);
328 booker.
book1D(pre +
"_hEtaRecHit",
"Eta distribution of SimHit segment with 2D RecHit", 100, -1.5, 1.5);
329 hPhiSimSegm = booker.
book1D(pre +
"_hPhiSimSegm",
"Phi of SimHit segment", 100, -
M_PI,
M_PI);
331 booker.
book1D(pre +
"_hPhiRecHit",
"Phi distribution of SimHit segment with 2D RecHit", 100, -
M_PI,
M_PI);
332 hPosSimSegm = booker.
book1D(pre +
"_hPosSimSegm",
"Position in SL of SimHit segment (cm)", 100, -250, 250);
334 booker.
book1D(pre +
"_hPosRecHit",
"Position in SL of SimHit segment with 2D RecHit (cm)", 100, -250, 250);
335 hAngleSimSegm = booker.
book1D(pre +
"_hAngleSimSegm",
"Angle of SimHit segment (rad)", 100, -2, 2);
336 hAngleRecHit = booker.
book1D(pre +
"_hAngleRecHit",
"Angle of SimHit segment with 2D RecHit (rad)", 100, -2, 2);
339 void fill(
float etaSimSegm,
float phiSimSegm,
float posSimSegm,
float angleSimSegm,
bool fillRecHit) {
340 hEtaSimSegm.fill(etaSimSegm);
341 hPhiSimSegm.fill(phiSimSegm);
342 hPosSimSegm.fill(posSimSegm);
343 hAngleSimSegm.fill(angleSimSegm);
346 hEtaRecHit.fill(etaSimSegm);
347 hPhiRecHit.fill(phiSimSegm);
348 hPosRecHit.fill(posSimSegm);
349 hAngleRecHit.fill(angleSimSegm);
375 hEffVsEta = booker.
book1D(pre +
"_hEffVsEta",
"2D RecHit Efficiency as a function of Eta", 100, -1.5, 1.5);
376 hEffVsPhi = booker.
book1D(pre +
"_hEffVsPhi",
"2D RecHit Efficiency as a function of Phi", 100, -
M_PI,
M_PI);
378 booker.
book1D(pre +
"_hEffVsPos",
"2D RecHit Efficiency as a function of position in SL", 100, -250, 250);
379 hEffVsAngle = booker.
book1D(pre +
"_hEffVsAngle",
"2D RecHit Efficiency as a function of angle", 100, -2, 2);
381 computeEfficiency(getter);
386 divide(hEffVsEta, getter.
get(pre +
"_hEtaRecHit"), getter.
get(pre +
"_hEtaSimSegm"));
387 divide(hEffVsPhi, getter.
get(pre +
"_hPhiRecHit"), getter.
get(pre +
"_hPhiSimSegm"));
388 divide(hEffVsPos, getter.
get(pre +
"_hPosRecHit"), getter.
get(pre +
"_hPosSimSegm"));
389 divide(hEffVsAngle, getter.
get(pre +
"_hAngleRecHit"), getter.
get(pre +
"_hAngleSimSegm"));
414 booker.
book1D(pre +
"_hRecAlpha",
"4D RecHit alpha (RPhi) distribution;#alpha^{x} (rad)", 100, -1.5, 1.5);
415 hRecBeta = booker.
book1D(pre +
"_hRecBeta",
"4D RecHit beta distribution:#alpha^{y} (rad)", 100, -1.5, 1.5);
417 hSimAlpha = booker.
book1D(
418 pre +
"_hSimAlpha",
"4D segment from SimHit alpha (RPhi) distribution;i#alpha^{x} (rad)", 100, -1.5, 1.5);
420 booker.
book1D(pre +
"_hSimBeta",
"4D segment from SimHit beta distribution;#alpha^{y} (rad)", 100, -1.5, 1.5);
421 hRecVsSimAlpha = booker.
book2D(pre +
"_hRecVsSimAlpha",
422 "4D segment rec alpha {v}s sim alpha (RPhi);#alpha^{x} (rad)",
429 hRecVsSimBeta = booker.
book2D(pre +
"_hRecVsSimBeta",
430 "4D segment rec beta vs sim beta (RZ);#alpha^{y} (rad)",
438 hResAlphaVsEta = booker.
book2D(pre +
"_hResAlphaVsEta",
439 "4D RecHit residual on #alpha_x direction vs " 440 "eta;#eta;#alpha^{x}_{rec}-#alpha^{x}_{sim} (rad)",
447 hResAlphaVsPhi = booker.
book2D(pre +
"_hResAlphaVsPhi",
448 "4D RecHit residual on #alpha_x direction vs phi (rad);#phi " 449 "(rad);#alpha^{x}_{rec}-#alpha^{x}_{sim} (rad)",
456 hResBetaVsEta = booker.
book2D(pre +
"_hResBetaVsEta",
457 "4D RecHit residual on beta direction vs " 458 "eta;#eta;#alpha^{y}_{rec}-#alpha^{y}_{sim} (rad)",
465 hResBetaVsPhi = booker.
book2D(pre +
"_hResBetaVsPhi",
466 "4D RecHit residual on beta direction vs phi;#phi " 467 "(rad);#alpha^{y}_{rec}-#alpha^{y}_{sim} (rad)",
475 hResXVsEta = booker.
book2D(pre +
"_hResXVsEta",
476 "4D RecHit residual on position (x) in " 477 "chamber vs eta;#eta;x_{rec}-x_{sim} (cm)",
484 hResXVsPhi = booker.
book2D(pre +
"_hResXVsPhi",
485 "4D RecHit residual on position (x) in chamber vs " 486 "phi;#phi (rad);x_{rec}-x_{sim} (cm)",
494 hResYVsEta = booker.
book2D(pre +
"_hResYVsEta",
495 "4D RecHit residual on position (y) in " 496 "chamber vs eta;#eta;y_{rec}-y_{sim} (cm)",
503 hResYVsPhi = booker.
book2D(pre +
"_hResYVsPhi",
504 "4D RecHit residual on position (y) in chamber vs " 505 "phi;#phi (rad);y_{rec}-y_{sim} (cm)",
513 hResAlphaVsResBeta = booker.
book2D(pre +
"_hResAlphaVsResBeta",
514 "4D RecHit residual on alpha vs residual on beta",
521 hResXVsResY = booker.
book2D(
522 pre +
"_hResXVsResY",
"4D RecHit residual on X vs residual on Y", 150, -0.6, 0.6, 50, -0.3, 0.3);
523 hResAlphaVsResX = booker.
book2D(
524 pre +
"_hResAlphaVsResX",
"4D RecHit residual on alpha vs residual on x", 150, -0.3, 0.3, 500, -0.15, 0.15);
526 hResAlphaVsResY = booker.
book2D(
527 pre +
"_hResAlphaVsResY",
"4D RecHit residual on alpha vs residual on y", 150, -0.6, 0.6, 500, -0.15, 0.15);
529 hRecBetaRZ = booker.
book1D(pre +
"_hRecBetaRZ",
"4D RecHit beta distribution:#alpha^{y} (rad)", 100, -1.5, 1.5);
531 hSimBetaRZ = booker.
book1D(
532 pre +
"_hSimBetaRZ",
"4D segment from SimHit beta distribution in RZ SL;#alpha^{y} (rad)", 100, -1.5, 1.5);
533 hRecVsSimBetaRZ = booker.
book2D(pre +
"_hRecVsSimBetaRZ",
534 "4D segment rec beta vs sim beta (RZ) in RZ SL;#alpha^{y} (rad)",
542 hResBetaVsEtaRZ = booker.
book2D(pre +
"_hResBetaVsEtaRZ",
543 "4D RecHit residual on beta direction vs eta;#eta in " 544 "RZ SL;#alpha^{y}_{rec}-#alpha^{y}_{sim} (rad)",
551 hResBetaVsPhiRZ = booker.
book2D(pre +
"_hResBetaVsPhiRZ",
552 "4D RecHit residual on beta direction vs phi in RZ " 553 "SL;#phi (rad);#alpha^{y}_{rec}-#alpha^{y}_{sim} (rad)",
560 hResYVsEtaRZ = booker.
book2D(pre +
"_hResYVsEtaRZ",
561 "4D RecHit residual on position (y) in chamber vs eta " 562 "in RZ SL;#eta;y_{rec}-y_{sim} (cm)",
569 hResYVsPhiRZ = booker.
book2D(pre +
"_hResYVsPhiRZ",
570 "4D RecHit residual on position (y) in chamber vs phi " 571 "in RZ SL;#phi (rad);y_{rec}-y_{sim} (cm)",
580 hPullAlphaVsEta = booker.
book2D(pre +
"_hPullAlphaVsEta",
581 "4D RecHit pull on #alpha_x direction vs " 582 "eta;#eta;(#alpha^{x}_{rec}-#alpha^{x}_{sim})/#sigma",
589 hPullAlphaVsPhi = booker.
book2D(pre +
"_hPullAlphaVsPhi",
590 "4D RecHit pull on #alpha_x direction vs phi (rad);#phi " 591 "(rad);(#alpha^{x}_{rec}-#alpha^{x}_{sim})/#sigma",
598 hPullBetaVsEta = booker.
book2D(pre +
"_hPullBetaVsEta",
599 "4D RecHit pull on beta direction vs " 600 "eta;#eta;(#alpha^{y}_{rec}-#alpha^{y}_{sim})/#sigma",
607 hPullBetaVsPhi = booker.
book2D(pre +
"_hPullBetaVsPhi",
608 "4D RecHit pull on beta direction vs phi;#phi " 609 "(rad);(#alpha^{y}_{rec}-#alpha^{y}_{sim})/#sigma",
616 hPullXVsEta = booker.
book2D(pre +
"_hPullXVsEta",
617 "4D RecHit pull on position (x) in chamber " 618 "vs eta;#eta;(x_{rec}-x_{sim})#sigma",
625 hPullXVsPhi = booker.
book2D(pre +
"_hPullXVsPhi",
626 "4D RecHit pull on position (x) in chamber " 627 "vs phi;#phi (rad);(x_{rec}-x_{sim})/#sigma",
634 hPullYVsEta = booker.
book2D(pre +
"_hPullYVsEta",
635 "4D RecHit pull on position (y) in chamber " 636 "vs eta;#eta;(y_{rec}-y_{sim})/#sigma",
643 hPullYVsPhi = booker.
book2D(pre +
"_hPullYVsPhi",
644 "4D RecHit pull on position (y) in chamber " 645 "vs phi;#phi (rad);(y_{rec}-y_{sim})/#sigma",
652 hPullBetaVsEtaRZ = booker.
book2D(pre +
"_hPullBetaVsEtaRZ",
653 "4D RecHit pull on beta direction vs eta;#eta in RZ " 654 "SL;(#alpha^{y}_{rec}-#alpha^{y}_{sim})/#sigma",
661 hPullBetaVsPhiRZ = booker.
book2D(pre +
"_hPullBetaVsPhiRZ",
662 "4D RecHit pull on beta direction vs phi in RZ SL;#phi " 663 "(rad);(#alpha^{y}_{rec}-#alpha^{y}_{sim})/#sigma",
670 hPullYVsEtaRZ = booker.
book2D(pre +
"_hPullYVsEtaRZ",
671 "4D RecHit pull on position (y) in chamber vs eta in " 672 "RZ SL;#eta;(y_{rec}-y_{sim})/#sigma",
679 hPullYVsPhiRZ = booker.
book2D(pre +
"_hPullYVsPhiRZ",
680 "4D RecHit pull on position (y) in chamber vs phi in " 681 "RZ SL;#phi (rad);(y_{rec}-y_{sim})/#sigma",
690 hResAlpha = booker.
book1D(pre +
"_hResAlpha",
691 "4D RecHit residual on #alpha_x " 692 "direction;#alpha^{x}_{rec}-#alpha^{x}_{sim} (rad)",
697 hResBeta = booker.
book1D(pre +
"_hResBeta",
698 "4D RecHit residual on beta " 699 "direction;#alpha^{y}_{rec}-#alpha^{y}_{sim} (rad)",
704 pre +
"_hResX",
"4D RecHit residual on position (x) in chamber;x_{rec}-x_{sim} (cm)", 150, -0.15, 0.15);
706 pre +
"_hResY",
"4D RecHit residual on position (y) in chamber;y_{rec}-y_{sim} (cm)", 150, -0.6, 0.6);
709 hResBetaRZ = booker.
book1D(pre +
"_hResBetaRZ",
710 "4D RecHit residual on beta direction in RZ " 711 "SL;#alpha^{y}_{rec}-#alpha^{y}_{sim} (rad)",
716 hResYRZ = booker.
book1D(pre +
"_hResYRZ",
717 "4D RecHit residual on position (y) in chamber in " 718 "RZ SL;y_{rec}-y_{sim} (cm)",
726 hPullAlpha = booker.
book1D(pre +
"_hPullAlpha",
727 "4D RecHit pull on #alpha_x " 728 "direction;(#alpha^{x}_{rec}-#alpha^{x}_{sim})/#sigma",
732 hPullBeta = booker.
book1D(pre +
"_hPullBeta",
733 "4D RecHit pull on beta " 734 "direction;(#alpha^{y}_{rec}-#alpha^{y}_{sim})/#sigma",
740 booker.
book1D(pre +
"_hPullX",
"4D RecHit pull on position (x) in chamber;(x_{rec}-x_{sim})#sigma", 150, -5, 5);
743 pre +
"_hPullY",
"4D RecHit pull on position (y) in chamber;(y_{rec}-y_{sim})/#sigma", 150, -5, 5);
745 hPullBetaRZ = booker.
book1D(pre +
"_hPullBetaRZ",
746 "4D RecHit pull on beta direction in RZ " 747 "SL;(#alpha^{y}_{rec}-#alpha^{y}_{sim})/#sigma",
752 hPullYRZ = booker.
book1D(pre +
"_hPullYRZ",
753 "4D RecHit pull on position (y) in chamber in RZ " 754 "SL;(y_{rec}-y_{sim})/#sigma",
762 hHitMult = booker.
book2D(pre +
"_hNHits",
"NHits", 12, 0, 12, 6, 0, 6);
763 ht0 = booker.
book2D(pre +
"_ht0",
"t0", 200, -25, 25, 200, -25, 25);
767 void fill(
float simDirectionAlpha,
768 float recDirectionAlpha,
769 float simDirectionBeta,
770 float recDirectionBeta,
791 float resAlpha = recDirectionAlpha - simDirectionAlpha;
792 hResAlpha.fill(resAlpha);
793 hPullAlpha.fill(resAlpha / sigmaAlpha);
794 float resBeta = recDirectionBeta - simDirectionBeta;
795 hResBeta.fill(resBeta);
796 hPullBeta.fill(resBeta / sigmaBeta);
797 float resX = recX - simX;
799 hPullX.fill(resX / sigmaX);
800 float resY = recY - simY;
802 hPullY.fill(resY / sigmaY);
804 float resBetaRZ = recBetaRZ - simBetaRZ;
805 hResBetaRZ.fill(resBetaRZ);
806 hPullBetaRZ.fill(resBetaRZ / sigmaBetaRZ);
807 float resYRZ = recYRZ - simYRZ;
808 hResYRZ.fill(resYRZ);
809 hPullYRZ.fill(resYRZ / sigmaYRZ);
811 hRecAlpha.fill(recDirectionAlpha);
812 hRecBeta.fill(recDirectionBeta);
813 hSimAlpha.fill(simDirectionAlpha);
814 hSimBeta.fill(simDirectionBeta);
815 hRecVsSimAlpha.fill(simDirectionAlpha, recDirectionAlpha);
816 hRecVsSimBeta.fill(simDirectionBeta, recDirectionBeta);
817 hResAlphaVsEta.fill(simEta, resAlpha);
818 hResAlphaVsPhi.fill(simPhi, resAlpha);
819 hPullAlphaVsEta.fill(simEta, resAlpha / sigmaAlpha);
820 hPullAlphaVsPhi.fill(simPhi, resAlpha / sigmaAlpha);
821 hResBetaVsEta.fill(simEta, resBeta);
822 hResBetaVsPhi.fill(simPhi, resBeta);
823 hPullBetaVsEta.fill(simEta, resBeta / sigmaBeta);
824 hPullBetaVsPhi.fill(simPhi, resBeta / sigmaBeta);
825 hResXVsEta.fill(simEta, resX);
826 hResXVsPhi.fill(simPhi, resX);
827 hPullXVsEta.fill(simEta, resX / sigmaX);
828 hPullXVsPhi.fill(simPhi, resX / sigmaX);
829 hResYVsEta.fill(simEta, resY);
830 hResYVsPhi.fill(simPhi, resY);
831 hPullYVsEta.fill(simEta, resY / sigmaY);
832 hPullYVsPhi.fill(simPhi, resY / sigmaY);
833 hResAlphaVsResBeta.fill(resBeta, resAlpha);
834 hResXVsResY.fill(resY, resX);
835 hResAlphaVsResX.fill(resX, resAlpha);
836 hResAlphaVsResY.fill(resY, resAlpha);
839 hRecBetaRZ.fill(recBetaRZ);
840 hSimBetaRZ.fill(simBetaRZ);
841 hRecVsSimBetaRZ.fill(simBetaRZ, recBetaRZ);
842 hResBetaVsEtaRZ.fill(simEta, resBetaRZ);
843 hResBetaVsPhiRZ.fill(simPhi, resBetaRZ);
844 hPullBetaVsEtaRZ.fill(simEta, resBetaRZ / sigmaBetaRZ);
845 hPullBetaVsPhiRZ.fill(simPhi, resBetaRZ / sigmaBetaRZ);
846 hResYVsEtaRZ.fill(simEta, resYRZ);
847 hResYVsPhiRZ.fill(simPhi, resYRZ);
848 hPullYVsEtaRZ.fill(simEta, resYRZ / sigmaYRZ);
849 hPullYVsPhiRZ.fill(simPhi, resYRZ / sigmaYRZ);
852 hHitMult.fill(nHitsPhi, nHitsTheta);
853 ht0.fill(t0Phi, t0Theta);
927 hEtaSimSegm = booker.
book1D(pre +
"_hEtaSimSegm",
"Eta of SimHit segment", 100, -1.5, 1.5);
929 booker.
book1D(pre +
"_hEtaRecHit",
"Eta distribution of SimHit segment with 4D RecHit", 100, -1.5, 1.5);
931 hPhiSimSegm = booker.
book1D(pre +
"_hPhiSimSegm",
"Phi of SimHit segment", 100, -
M_PI,
M_PI);
933 booker.
book1D(pre +
"_hPhiRecHit",
"Phi distribution of SimHit segment with 4D RecHit", 100, -
M_PI,
M_PI);
935 hXSimSegm = booker.
book1D(pre +
"_hXSimSegm",
"X position in Chamber of SimHit segment (cm)", 100, -200, 200);
937 booker.
book1D(pre +
"_hXRecHit",
"X position in Chamber of SimHit segment with 4D RecHit (cm)", 100, -200, 200);
939 hYSimSegm = booker.
book1D(pre +
"_hYSimSegm",
"Y position in Chamber of SimHit segment (cm)", 100, -200, 200);
941 booker.
book1D(pre +
"_hYRecHit",
"Y position in Chamber of SimHit segment with 4D RecHit (cm)", 100, -200, 200);
943 hAlphaSimSegm = booker.
book1D(pre +
"_hAlphaSimSegm",
"Alpha of SimHit segment (rad)", 100, -1.5, 1.5);
944 hAlphaRecHit = booker.
book1D(pre +
"_hAlphaRecHit",
"Alpha of SimHit segment with 4D RecHit (rad)", 100, -1.5, 1.5);
946 hBetaSimSegm = booker.
book1D(pre +
"_hBetaSimSegm",
"Beta of SimHit segment (rad)", 100, -2, 2);
947 hBetaRecHit = booker.
book1D(pre +
"_hBetaRecHit",
"Beta of SimHit segment with 4D RecHit (rad)", 100, -2, 2);
949 hNSeg = booker.
book1D(pre +
"_hNSeg",
"Number of rec segment per sim seg", 20, 0, 20);
960 hEtaSimSegm.fill(etaSimSegm);
961 hPhiSimSegm.fill(phiSimSegm);
962 hXSimSegm.fill(xSimSegm);
963 hYSimSegm.fill(ySimSegm);
964 hAlphaSimSegm.fill(alphaSimSegm);
965 hBetaSimSegm.fill(betaSimSegm);
969 hEtaRecHit.fill(etaSimSegm);
970 hPhiRecHit.fill(phiSimSegm);
971 hXRecHit.fill(xSimSegm);
972 hYRecHit.fill(ySimSegm);
973 hAlphaRecHit.fill(alphaSimSegm);
974 hBetaRecHit.fill(betaSimSegm);
1006 hEffVsEta = booker.
book1D(pre +
"_hEffVsEta",
"4D RecHit Efficiency as a function of Eta", 100, -1.5, 1.5);
1007 hEffVsPhi = booker.
book1D(pre +
"_hEffVsPhi",
"4D RecHit Efficiency as a function of Phi", 100, -
M_PI,
M_PI);
1009 booker.
book1D(pre +
"_hEffVsX",
"4D RecHit Efficiency as a function of x position in Chamber", 100, -200, 200);
1011 booker.
book1D(pre +
"_hEffVsY",
"4D RecHit Efficiency as a function of y position in Chamber", 100, -200, 200);
1012 hEffVsAlpha = booker.
book1D(pre +
"_hEffVsAlpha",
"4D RecHit Efficiency as a function of alpha", 100, -1.5, 1.5);
1013 hEffVsBeta = booker.
book1D(pre +
"_hEffVsBeta",
"4D RecHit Efficiency as a function of beta", 100, -2, 2);
1015 computeEfficiency(getter);
1020 divide(hEffVsEta, getter.
get(pre +
"_hEtaRecHit"), getter.
get(pre +
"_hEtaSimSegm"));
1021 divide(hEffVsPhi, getter.
get(pre +
"_hPhiRecHit"), getter.
get(pre +
"_hPhiSimSegm"));
1022 divide(hEffVsX, getter.
get(pre +
"_hXRecHit"), getter.
get(pre +
"_hXSimSegm"));
1023 divide(hEffVsY, getter.
get(pre +
"_hYRecHit"), getter.
get(pre +
"_hYSimSegm"));
1024 divide(hEffVsAlpha, getter.
get(pre +
"_hAlphaRecHit"), getter.
get(pre +
"_hAlphaSimSegm"));
1025 divide(hEffVsBeta, getter.
get(pre +
"_hBetaRecHit"), getter.
get(pre +
"_hBetaSimSegm"));
1041 #endif // Validation_DTRecHits_Histograms_h MonitorElement * hEffVsEta
void computeEfficiency(DQMStore::IGetter &getter)
ConcurrentMonitorElement hResBetaVsPhiRZ
ConcurrentMonitorElement hResAngleVsEta
ConcurrentMonitorElement hResYVsPhiRZ
void fill(float angleSimSegment, float angleRecSegment, float posSimSegment, float posRecSegment, float etaSimSegment, float phiSimSegment, float sigmaPos, float sigmaAngle)
ConcurrentMonitorElement hEtaSimSegm
ConcurrentMonitorElement ht0
ConcurrentMonitorElement hPullX
ConcurrentMonitorElement hEtaRecHit
ConcurrentMonitorElement hResVsAngle
ConcurrentMonitorElement hNSeg
ConcurrentMonitorElement hRecVsSimBeta
ConcurrentMonitorElement hSimBeta
HRes4DHit(const std::string &name, DQMStore::ConcurrentBooker &booker, bool doall=true, bool local=true)
ConcurrentMonitorElement hAlphaRecHit
ConcurrentMonitorElement hResXVsPhi
A set of histograms for efficiency 4D RecHits (harvesting)
ConcurrentMonitorElement hPosSimSegm
ConcurrentMonitorElement hResAlphaVsResY
ConcurrentMonitorElement hPullVsAngle
ConcurrentMonitorElement hPhiSimSegm
ConcurrentMonitorElement hResBeta
ConcurrentMonitorElement hResPos
MonitorElement * hEffVsEta
A set of histograms fo efficiency computation for 1D RecHits (producer)
void fill(float etaSimSegm, float phiSimSegm, float posSimSegm, float angleSimSegm, bool fillRecHit)
ConcurrentMonitorElement hDistRecHit
ConcurrentMonitorElement hBetaSimSegm
ConcurrentMonitorElement hRecBeta
ConcurrentMonitorElement hResVsEta
ConcurrentMonitorElement hEtaRecHit
ConcurrentMonitorElement hSimBetaRZ
ConcurrentMonitorElement hResPosVsEta
ConcurrentMonitorElement hRes
ConcurrentMonitorElement hResAlphaVsPhi
MonitorElement * hEffVsPhi
ConcurrentMonitorElement hAngleSimSegm
ConcurrentMonitorElement hPosRecHit
ConcurrentMonitorElement hRecBetaRZ
ConcurrentMonitorElement hPullAlphaVsPhi
MonitorElement * hEffVsPhi
ConcurrentMonitorElement hYSimSegm
ConcurrentMonitorElement hDist
MonitorElement * hEffVsEta
ConcurrentMonitorElement hPhiRecHit
ConcurrentMonitorElement hResVsDistFE
ConcurrentMonitorElement hPullYVsEtaRZ
ConcurrentMonitorElement hSimAlpha
ConcurrentMonitorElement hPullXVsEta
MonitorElement * hEffVsAngle
ConcurrentMonitorElement hPullAlphaVsEta
ConcurrentMonitorElement hResBetaVsEta
ConcurrentMonitorElement hPhiSimSegm
void fill(float distSimHit, float thetaSimHit, float distFESimHit, float distRecHit, float etaSimHit, float phiSimHit, float errRecHit, int station)
ConcurrentMonitorElement hRecAlpha
void setCurrentFolder(std::string const &fullpath)
ConcurrentMonitorElement book2D(Args &&...args)
ConcurrentMonitorElement hResAlpha
void fill(float etaSimSegm, float phiSimSegm, float xSimSegm, float ySimSegm, float alphaSimSegm, float betaSimSegm, bool fillRecHit, int nSeg)
ConcurrentMonitorElement hPullBeta
ConcurrentMonitorElement hPullYVsPhi
ConcurrentMonitorElement hPullYVsPhiRZ
ConcurrentMonitorElement hXRecHit
ConcurrentMonitorElement hRecAngle
A set of histograms for efficiency 4D RecHits (producer)
MonitorElement * book1D(Args &&...args)
ConcurrentMonitorElement hResXVsEta
ConcurrentMonitorElement book1D(Args &&...args)
ConcurrentMonitorElement hResBetaVsPhi
ConcurrentMonitorElement hRecVsSimBetaRZ
ConcurrentMonitorElement hRecVsSimAlpha
ConcurrentMonitorElement hPullAngle
MonitorElement * hEffVsAlpha
ConcurrentMonitorElement hXSimSegm
ConcurrentMonitorElement hPullBetaVsPhi
A set of histograms of residuals and pulls for 1D RecHits.
MonitorElement * hEffVsPhi
ConcurrentMonitorElement hAngleRecHit
HRes2DHit(const std::string &name, DQMStore::ConcurrentBooker &booker, bool doall=true, bool local=true)
ConcurrentMonitorElement hYRecHit
ConcurrentMonitorElement hEtaRecHit
MonitorElement * get(std::string const &path)
ConcurrentMonitorElement hPullAlpha
ConcurrentMonitorElement hResAlphaVsResBeta
bin
set the eta bin as selection string.
ConcurrentMonitorElement hPullBetaRZ
ConcurrentMonitorElement hPullY
ConcurrentMonitorElement hResAlphaVsEta
HEff2DHit(const std::string &name, DQMStore::ConcurrentBooker &booker)
ConcurrentMonitorElement hResYVsEtaRZ
ConcurrentMonitorElement hResYRZ
void computeEfficiency(DQMStore::IGetter &getter)
ConcurrentMonitorElement hResYVsPhi
ConcurrentMonitorElement hResPosVsPhi
ConcurrentMonitorElement hResAngle
ConcurrentMonitorElement hHitMult
ConcurrentMonitorElement hPullBetaVsPhiRZ
ConcurrentMonitorElement hResXVsResY
ConcurrentMonitorElement hResBetaRZ
void fill(float simDirectionAlpha, float recDirectionAlpha, float simDirectionBeta, float recDirectionBeta, float simX, float recX, float simY, float recY, float simEta, float simPhi, float recYRZ, float simYRZ, float recBetaRZ, float simBetaRZ, float sigmaAlpha, float sigmaBeta, float sigmaX, float sigmaY, float sigmaBetaRZ, float sigmaYRZ, int nHitsPhi, int nHitsTheta, float t0Phi, float t0Theta)
ConcurrentMonitorElement hResSt[4]
ConcurrentMonitorElement hResVsPos
ConcurrentMonitorElement hResY
ConcurrentMonitorElement hEtaMuSimHit
void divide(MonitorElement *eff, const MonitorElement *numerator, const MonitorElement *denominator)
Function to fill an efficiency histograms with binomial errors.
ConcurrentMonitorElement hResAngleVsPhi
MonitorElement * hEffVsBeta
ConcurrentMonitorElement hPullXVsPhi
ConcurrentMonitorElement hPull
ConcurrentMonitorElement hResX
MonitorElement * hEffVsDist
HEff1DHit(const std::string &name, DQMStore::ConcurrentBooker &booker)
ConcurrentMonitorElement hPullSt[4]
ConcurrentMonitorElement hDistMuSimHit
ConcurrentMonitorElement hPhiRecHit
ConcurrentMonitorElement hResYVsEta
HEff2DHitHarvest(const std::string &name, DQMStore::IBooker &booker, DQMStore::IGetter &getter)
ConcurrentMonitorElement hPullYVsEta
MonitorElement * hEffVsPos
ConcurrentMonitorElement hPhiRecHit
void fill(Args &&...args) const
ConcurrentMonitorElement hAlphaSimSegm
ConcurrentMonitorElement hPullVsDistFE
ConcurrentMonitorElement hPullBetaVsEta
ConcurrentMonitorElement hRecVsSimAngle
void fill(float distSimHit, float etaSimHit, float phiSimHit, bool fillRecHit)
void computeEfficiency(DQMStore::IGetter &getter)
HEff4DHit(const std::string &name, DQMStore::ConcurrentBooker &booker)
HRes1DHit(const std::string &name, DQMStore::ConcurrentBooker &booker, bool doall=true, bool local=true)
HEff4DHitHarvest(const std::string &name, DQMStore::IBooker &booker, DQMStore::IGetter &getter)
ConcurrentMonitorElement hPullBetaVsEtaRZ
double sigmaAngle(double Angle, double sigma2TanAngle)
ConcurrentMonitorElement hPullVsPos
ConcurrentMonitorElement hSimAngle
ConcurrentMonitorElement hResAlphaVsResX
ConcurrentMonitorElement hResVsPhi
ConcurrentMonitorElement hResPosVsResAngle
HEff1DHitHarvest(const std::string &name, DQMStore::IBooker &booker, DQMStore::IGetter &getter)
ConcurrentMonitorElement hBetaRecHit
ConcurrentMonitorElement hResBetaVsEtaRZ
ConcurrentMonitorElement hPullYRZ
ConcurrentMonitorElement hEtaSimSegm
A set of histograms fo efficiency computation for 1D RecHits (harvesting)
ConcurrentMonitorElement hPhiMuSimHit
ConcurrentMonitorElement hPullPos