47 #include "TLorentzVector.h" 373 desc.addUntracked<
std::string>(
"moduleName",
"StandaloneTrackMonitor");
375 desc.addUntracked<
bool>(
"isRECO",
false);
384 desc.addUntracked<
bool>(
"doPUCorrection",
false);
385 desc.addUntracked<
bool>(
"doTrackCorrection",
false);
386 desc.addUntracked<
bool>(
"isMC",
false);
387 desc.addUntracked<
bool>(
"haveAllHistograms",
false);
388 desc.addUntracked<
std::string>(
"puScaleFactorFile",
"PileupScaleFactor.root");
389 desc.addUntracked<
std::string>(
"trackScaleFactorFile",
"PileupScaleFactor.root");
390 desc.addUntracked<std::vector<std::string> >(
"MVAProducers", {
"initialStepClassifier1",
"initialStepClassifier2"});
395 desc.addUntracked<
bool>(
"verbose",
false);
399 TrackEtaHistoPar.
add<
int>(
"Xbins", 60);
400 TrackEtaHistoPar.
add<
double>(
"Xmin", -3.0);
401 TrackEtaHistoPar.
add<
double>(
"Xmax", 3.0);
407 TrackPtHistoPar.
add<
int>(
"Xbins", 60);
408 TrackPtHistoPar.
add<
double>(
"Xmin", 0.0);
409 TrackPtHistoPar.
add<
double>(
"Xmax", 100.0);
415 TrackPhiHistoPar.
add<
int>(
"Xbins", 100);
416 TrackPhiHistoPar.
add<
double>(
"Xmin", -
M_PI);
417 TrackPhiHistoPar.
add<
double>(
"Xmax",
M_PI);
421 descriptions.
add(
"standaloneTrackMonitorDefault",
desc);
428 : moduleName_(ps.getUntrackedParameter<
std::
string>(
"moduleName",
"StandaloneTrackMonitor")),
429 folderName_(ps.getUntrackedParameter<
std::
string>(
"folderName",
"highPurityTracks")),
430 isRECO_(ps.getUntrackedParameter<
bool>(
"isRECO",
false)),
431 siStripClusterInfo_(consumesCollector()),
434 vertexTag_(ps.getUntrackedParameter<
edm::
InputTag>(
"vertexTag",
edm::
InputTag(
"offlinePrimaryVertices"))),
444 trackQuality_(ps.getUntrackedParameter<
std::
string>(
"trackQuality",
"highPurity")),
445 doPUCorrection_(ps.getUntrackedParameter<
bool>(
"doPUCorrection",
false)),
446 doTrackCorrection_(ps.getUntrackedParameter<
bool>(
"doTrackCorrection",
false)),
447 isMC_(ps.getUntrackedParameter<
bool>(
"isMC",
false)),
448 haveAllHistograms_(ps.getUntrackedParameter<
bool>(
"haveAllHistograms",
false)),
449 puScaleFactorFile_(ps.getUntrackedParameter<
std::
string>(
"puScaleFactorFile",
"PileupScaleFactor.root")),
450 trackScaleFactorFile_(ps.getUntrackedParameter<
std::
string>(
"trackScaleFactorFile",
"PileupScaleFactor.root")),
452 mvaTrackTag_(ps.getUntrackedParameter<
edm::
InputTag>(
"TrackProducerForMVA")),
453 mvaTrackToken_(consumes<
edm::
View<
reco::Track> >(mvaTrackTag_)),
454 tcProducer_(ps.getUntrackedParameter<
edm::
InputTag>(
"TCProducer")),
455 algoName_(ps.getUntrackedParameter<
std::
string>(
"AlgoName")),
456 verbose_(ps.getUntrackedParameter<
bool>(
"verbose",
false)),
463 for (
const auto&
v : mvaProducers_) {
464 mvaQualityTokens_.push_back(std::make_tuple(consumes<MVACollection>(
edm::InputTag(
v,
"MVAValues")),
465 consumes<QualityMaskCollection>(
edm::InputTag(
v,
"QualityMasks"))));
468 trackEtaH_ =
nullptr;
469 trackEtaerrH_ =
nullptr;
470 trackCosThetaH_ =
nullptr;
471 trackThetaerrH_ =
nullptr;
472 trackPhiH_ =
nullptr;
473 trackPhierrH_ =
nullptr;
476 trackPtUpto2GeVH_ =
nullptr;
477 trackPtOver10GeVH_ =
nullptr;
478 trackPterrH_ =
nullptr;
479 trackqOverpH_ =
nullptr;
480 trackqOverperrH_ =
nullptr;
481 trackChargeH_ =
nullptr;
482 nlostHitsH_ =
nullptr;
483 nvalidTrackerHitsH_ =
nullptr;
484 nvalidPixelHitsH_ =
nullptr;
485 nvalidStripHitsH_ =
nullptr;
486 trkLayerwithMeasurementH_ =
nullptr;
487 pixelLayerwithMeasurementH_ =
nullptr;
488 stripLayerwithMeasurementH_ =
nullptr;
489 beamSpotXYposH_ =
nullptr;
490 beamSpotXYposerrH_ =
nullptr;
491 beamSpotZposH_ =
nullptr;
492 beamSpotZposerrH_ =
nullptr;
493 trackChi2H_ =
nullptr;
494 tracknDOFH_ =
nullptr;
496 trackChi2bynDOFH_ =
nullptr;
497 vertexXposH_ =
nullptr;
498 vertexYposH_ =
nullptr;
499 vertexZposH_ =
nullptr;
501 nPixBarrelH_ =
nullptr;
502 nPixEndcapH_ =
nullptr;
503 nStripTIBH_ =
nullptr;
504 nStripTOBH_ =
nullptr;
505 nStripTECH_ =
nullptr;
506 nStripTIDH_ =
nullptr;
511 bunchCrossingH_ =
nullptr;
513 trueNIntH_ =
nullptr;
515 nLostHitsVspTH_ =
nullptr;
516 nLostHitsVsEtaH_ =
nullptr;
517 nLostHitsVsCosThetaH_ =
nullptr;
518 nLostHitsVsPhiH_ =
nullptr;
519 nLostHitsVsIterationH_ =
nullptr;
521 nHitsTIBSVsEtaH_ =
nullptr;
522 nHitsTOBSVsEtaH_ =
nullptr;
523 nHitsTECSVsEtaH_ =
nullptr;
524 nHitsTIDSVsEtaH_ =
nullptr;
525 nHitsStripSVsEtaH_ =
nullptr;
527 nHitsTIBDVsEtaH_ =
nullptr;
528 nHitsTOBDVsEtaH_ =
nullptr;
529 nHitsTECDVsEtaH_ =
nullptr;
530 nHitsTIDDVsEtaH_ =
nullptr;
531 nHitsStripDVsEtaH_ =
nullptr;
533 nValidHitsVspTH_ =
nullptr;
534 nValidHitsVsEtaH_ =
nullptr;
535 nValidHitsVsCosThetaH_ =
nullptr;
536 nValidHitsVsPhiH_ =
nullptr;
537 nValidHitsVsnVtxH_ =
nullptr;
539 nValidHitsPixVsEtaH_ =
nullptr;
540 nValidHitsPixBVsEtaH_ =
nullptr;
541 nValidHitsPixEVsEtaH_ =
nullptr;
542 nValidHitsStripVsEtaH_ =
nullptr;
543 nValidHitsTIBVsEtaH_ =
nullptr;
544 nValidHitsTOBVsEtaH_ =
nullptr;
545 nValidHitsTECVsEtaH_ =
nullptr;
546 nValidHitsTIDVsEtaH_ =
nullptr;
548 nValidHitsPixVsPhiH_ =
nullptr;
549 nValidHitsPixBVsPhiH_ =
nullptr;
550 nValidHitsPixEVsPhiH_ =
nullptr;
551 nValidHitsStripVsPhiH_ =
nullptr;
552 nValidHitsTIBVsPhiH_ =
nullptr;
553 nValidHitsTOBVsPhiH_ =
nullptr;
554 nValidHitsTECVsPhiH_ =
nullptr;
555 nValidHitsTIDVsPhiH_ =
nullptr;
557 nLostHitsPixVsEtaH_ =
nullptr;
558 nLostHitsPixBVsEtaH_ =
nullptr;
559 nLostHitsPixEVsEtaH_ =
nullptr;
560 nLostHitsStripVsEtaH_ =
nullptr;
561 nLostHitsTIBVsEtaH_ =
nullptr;
562 nLostHitsTOBVsEtaH_ =
nullptr;
563 nLostHitsTECVsEtaH_ =
nullptr;
564 nLostHitsTIDVsEtaH_ =
nullptr;
566 nLostHitsPixVsPhiH_ =
nullptr;
567 nLostHitsPixBVsPhiH_ =
nullptr;
568 nLostHitsPixEVsPhiH_ =
nullptr;
569 nLostHitsStripVsPhiH_ =
nullptr;
570 nLostHitsTIBVsPhiH_ =
nullptr;
571 nLostHitsTOBVsPhiH_ =
nullptr;
572 nLostHitsTECVsPhiH_ =
nullptr;
573 nLostHitsTIDVsPhiH_ =
nullptr;
575 nLostHitsPixVsIterationH_ =
nullptr;
576 nLostHitsPixBVsIterationH_ =
nullptr;
577 nLostHitsPixEVsIterationH_ =
nullptr;
578 nLostHitsStripVsIterationH_ =
nullptr;
579 nLostHitsTIBVsIterationH_ =
nullptr;
580 nLostHitsTOBVsIterationH_ =
nullptr;
581 nLostHitsTECVsIterationH_ =
nullptr;
582 nLostHitsTIDVsIterationH_ =
nullptr;
584 hOnTrkClusChargeThinH_ =
nullptr;
585 hOnTrkClusWidthThinH_ =
nullptr;
586 hOnTrkClusChargeThickH_ =
nullptr;
587 hOnTrkClusWidthThickH_ =
nullptr;
589 hOffTrkClusChargeThinH_ =
nullptr;
590 hOffTrkClusWidthThinH_ =
nullptr;
591 hOffTrkClusChargeThickH_ =
nullptr;
592 hOffTrkClusWidthThickH_ =
nullptr;
594 cosPhi3DdileptonH_ =
nullptr;
595 ip3dToPV2validpixelhitsH_ =
nullptr;
596 ip3dToBS2validpixelhitsH_ =
nullptr;
597 iperr3dToPV2validpixelhitsH_ =
nullptr;
598 iperr3dToBS2validpixelhitsH_ =
nullptr;
599 sip3dToPV2validpixelhitsH_ =
nullptr;
600 sip3dToBS2validpixelhitsH_ =
nullptr;
604 if (isMC_ && doPUCorrection_ && doTrackCorrection_) {
605 throw std::runtime_error(
"if isMC is true, only one of doPUCorrection and doTrackCorrection can be true");
608 if (isMC_ && doPUCorrection_) {
610 TFile*
f1 = TFile::Open(puScaleFactorFile_.c_str());
611 TH1F* h1 =
dynamic_cast<TH1F*
>(
f1->Get(
"pileupweight"));
612 for (
int i = 1;
i <= h1->GetNbinsX(); ++
i)
613 vpu_.push_back(h1->GetBinContent(
i));
617 if (isMC_ && doTrackCorrection_) {
619 TFile*
f1 = TFile::Open(trackScaleFactorFile_.c_str());
620 TH1F* h1 =
dynamic_cast<TH1F*
>(
f1->Get(
"trackweight"));
621 for (
int i = 1;
i <= h1->GetNbinsX(); ++
i)
622 vtrack_.push_back(h1->GetBinContent(
i));
680 for (
unsigned int i = 0;
i < StopReasonNameSize; ++
i) {
685 ibook.
book1DD(
"DistanceOfClosestApproachToPV",
"DistanceOfClosestApproachToPV", 1000, -1.0, 1.0);
687 ibook.
book1DD(
"DistanceOfClosestApproachToPVZoomed",
"DistanceOfClosestApproachToPV", 1000, -0.1, 0.1);
689 "DistanceOfClosestApproachToPVVsPhi",
"DistanceOfClosestApproachToPVVsPhi", 100, -3.5, 3.5, 0.0, 0.0,
"g");
691 "xPointOfClosestApproachVsZ0wrtPV",
"xPointOfClosestApproachVsZ0wrtPV", 120, -60, 60, 0.0, 0.0,
"g");
693 "yPointOfClosestApproachVsZ0wrtPV",
"yPointOfClosestApproachVsZ0wrtPV", 120, -60, 60, 0.0, 0.0,
"g");
695 ibook.
book1DD(
"trackDeltaRwrtClosestTrack",
"min#DeltaR(considered track,other tracks)", 500, 0, 10);
698 unsigned int niperrbins = 100;
699 float iperrbinning[niperrbins + 1];
700 float miniperr = 0.0001, maxiperr = 5;
701 iperrbinning[0] = miniperr;
702 for (
unsigned int i = 1;
i != niperrbins + 1;
i++) {
703 iperrbinning[
i] = iperrbinning[
i - 1] *
pow(maxiperr / miniperr, 1. / niperrbins);
712 sip3dToPVH_ = ibook.
book1DD(
"sip3dToPV",
"IP significance in 3d To PV", 200, -10, 10);
713 sip3dToBSH_ = ibook.
book1DD(
"sip3dToBS",
"IP significance in 3d To BS", 200, -10, 10);
716 ibook.
book1DD(
"ip3dToPV2validpixelhits",
"IP in 3d To PV (nValidPixelHits>2)", 200, -0.20, 0.20);
718 ibook.
book1DD(
"ip3dToBS2validpixelhits",
"IP in 3d To BS (nValidPixelHits>2)", 200, -0.20, 0.20);
720 "iperr3dToPV2validpixelhits",
"IP error in 3d To PV (nValidPixelHits>2)", niperrbins, iperrbinning);
722 "iperr3dToBS2validpixelhits",
"IP error in 3d To BS (nValidPixelHits>2)", niperrbins, iperrbinning);
724 ibook.
book1DD(
"sip3dToPV2validpixelhits",
"IP significance in 3d To PV (nValidPixelHits>2)", 200, -10, 10);
726 ibook.
book1DD(
"sip3dToBS2validpixelhits",
"IP significance in 3d To BS (nValidPixelHits>2)", 200, -10, 10);
730 sip2dToBSH_ = ibook.
book1DD(
"sip2dToBS",
"IP significance in 2d To BS", 200, -10, 10);
733 sip2dToPVH_ = ibook.
book1DD(
"sip2dToPV",
"IP significance in 2d To PV", 200, -10, 10);
737 sipDzToPVH_ = ibook.
book1DD(
"sipDzToPV",
"IP significance in dz To PV", 100, -10, 10);
764 ibook.
book1DD(
"pixelLayerwithMeasurement",
"No. of Pixel Layers per Track", 10, 0.0, 10.0);
766 ibook.
book1DD(
"pixelBLayerwithMeasurement",
"No. of Pixel Barrel Layers per Track", 5, 0.0, 5.0);
768 ibook.
book1DD(
"pixelELayerwithMeasurement",
"No. of Pixel Endcap Layers per Track", 5, 0.0, 5.0);
770 ibook.
book1DD(
"stripLayerwithMeasurement",
"No. of Strip Layers per Track", 20, 0.0, 20.0);
772 ibook.
book1DD(
"stripTIBLayerwithMeasurement",
"No. of Strip TIB Layers per Track", 10, 0.0, 10.0);
774 ibook.
book1DD(
"stripTOBLayerwithMeasurement",
"No. of Strip TOB Layers per Track", 10, 0.0, 10.0);
776 ibook.
book1DD(
"stripTIDLayerwithMeasurement",
"No. of Strip TID Layers per Track", 5, 0.0, 5.0);
778 ibook.
book1DD(
"stripTECLayerwithMeasurement",
"No. of Strip TEC Layers per Track", 15, 0.0, 15.0);
782 ibook.
book1DD(
"nMissingExpectedInnerHits",
"No. of Missing Expected Inner Hits", 10, -0.5, 9.5);
784 ibook.
book1DD(
"nMissingExpectedOuterHits",
"No. of Missing Expected Outer Hits", 10, -0.5, 9.5);
795 nVtxH_ = ibook.
book1DD(
"nVtx",
"# of vtxs", 120, -0.5, 119.5);
800 ibook.
book1DD(
"nMissingOuterHitB",
"No. missing outer hit per Track in Barrel", 11, -0.5, 10.5);
802 ibook.
book1DD(
"nMissingOuterHitE",
"No. missing outer hit per Track in Endcap", 11, -0.5, 10.5);
803 nPixBarrelH_ = ibook.
book1DD(
"nHitPixelBarrel",
"No. of hits in Pixel Barrel per Track", 20, 0, 20.0);
804 nPixEndcapH_ = ibook.
book1DD(
"nHitPixelEndcap",
"No. of hits in Pixel Endcap per Track", 20, 0, 20.0);
805 nStripTIBH_ = ibook.
book1DD(
"nHitStripTIB",
"No. of hits in Strip TIB per Track", 30, 0, 30.0);
806 nStripTOBH_ = ibook.
book1DD(
"nHitStripTOB",
"No. of hits in Strip TOB per Track", 30, 0, 30.0);
807 nStripTECH_ = ibook.
book1DD(
"nHitStripTEC",
"No. of hits in Strip TEC per Track", 30, 0, 30.0);
808 nStripTIDH_ = ibook.
book1DD(
"nHitStripTID",
"No. of hits in Strip TID per Tracks", 30, 0, 30.0);
810 nJet_ = ibook.
book1DD(
"nJet",
"Number of Jets", 101, -0.5, 100.5);
815 ibook.
book1DD(
"Jet_chargedMultiplicity",
"Jet charged Hadron Multiplicity", 201, -0.5, 200.5);
816 Zpt_ = ibook.
book1DD(
"Zpt",
"Z-boson transverse momentum", 100, 0, 100);
822 nPUH_ = ibook.
book1DD(
"nPU",
"No of Pileup", 100, 0, 100.0);
823 trueNIntH_ = ibook.
book1DD(
"trueNInt",
"True no of Interactions", 100, 0, 100.0);
830 ibook.
book1DD(
"nLostHitByLayerPix",
"No. of Lost Hit per Layer for Pixel detector", 7, 0.5, 7.5);
833 ibook.
book1DD(
"nLostHitByLayerStrip",
"No. of Lost Hit per Layer for SiStrip detector", 22, 0.5, 22.5);
836 "Number of Lost Hits Vs pT",
844 "Number of Lost Hits Vs Eta",
852 ibook.
bookProfile(
"nLostHitsVsCosTheta",
"Number of Lost Hits Vs Cos(Theta)", 50, -1.0, 1.0, 0.0, 0.0,
"g");
855 ibook.
bookProfile(
"nLostHitsVsIteration",
"Number of Lost Hits Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
858 "Number of Hits in TIB Vs Eta (Single-sided)",
866 "Number of Hits in TOB Vs Eta (Single-sided)",
874 "Number of Hits in TEC Vs Eta (Single-sided)",
882 "Number of Hits in TID Vs Eta (Single-sided)",
891 "Number of Strip Hits Vs Eta (Single-sided)",
900 "Number of Hits in TIB Vs Eta (Double-sided)",
908 "Number of Hits in TOB Vs Eta (Double-sided)",
916 "Number of Hits in TEC Vs Eta (Double-sided)",
924 "Number of Hits in TID Vs Eta (Double-sided)",
932 "Number of Strip Hits Vs Eta (Double-sided)",
941 "Number of Valid Hits Vs pT",
949 ibook.
bookProfile(
"nValidHitsVsnVtx",
"Number of Valid Hits Vs Number of Vertex", 100, 0., 100., 0.0, 0.0,
"g");
951 "Number of Hits Vs Eta",
960 ibook.
bookProfile(
"nValidHitsVsCosTheta",
"Number of Valid Hits Vs Cos(Theta)", 50, -1.0, 1.0, 0.0, 0.0,
"g");
962 ibook.
bookProfile(
"nValidHitsVsPhi",
"Number of Valid Hits Vs Phi", 100, -3.5, 3.5, 0.0, 0.0,
"g");
965 "Number of Valid Hits in Pixel Vs Eta",
973 "Number of Valid Hits in Pixel Barrel Vs Eta",
981 "Number of Valid Hits in Pixel Endcap Vs Eta",
989 "Number of Valid Hits in SiStrip Vs Eta",
997 "Number of Valid Hits in TIB Vs Eta",
1005 "Number of Valid Hits in TOB Vs Eta",
1013 "Number of Valid Hits in TEC Vs Eta",
1021 "Number of Valid Hits in TID Vs Eta",
1030 "Number of Valid Hits in Pixel Vs Phi",
1038 "Number of Valid Hits in Pixel Barrel Vs Phi",
1046 "Number of Valid Hits in Pixel Endcap Vs Phi",
1054 "Number of Valid Hits in SiStrip Vs Phi",
1062 "Number of Valid Hits in TIB Vs Phi",
1070 "Number of Valid Hits in TOB Vs Phi",
1078 "Number of Valid Hits in TEC Vs Phi",
1086 "Number of Valid Hits in TID Vs Phi",
1095 "Number of Lost Hits in Pixel Vs Eta",
1103 "Number of Lost Hits in Pixel Barrel Vs Eta",
1111 "Number of Lost Hits in Pixel Endcap Vs Eta",
1119 "Number of Lost Hits in SiStrip Vs Eta",
1127 "Number of Lost Hits in TIB Vs Eta",
1135 "Number of Lost Hits in TOB Vs Eta",
1143 "Number of Lost Hits in TEC Vs Eta",
1151 "Number of Lost Hits in TID Vs Eta",
1160 "Number of Lost Hits in Pixel Vs Phi",
1168 "Number of Lost Hits in Pixel Barrel Vs Phi",
1176 "Number of Lost Hits in Pixel Endcap Vs Phi",
1184 "Number of Lost Hits in SiStrip Vs Phi",
1192 "Number of Lost Hits in TIB Vs Phi",
1200 "Number of Lost Hits in TOB Vs Phi",
1208 "Number of Lost Hits in TEC Vs Phi",
1216 "Number of Lost Hits in TID Vs Phi",
1225 "nLostHitsPixVsIteration",
"Number of Lost Hits in Pixel Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1227 "nLostHitsPixBVsIteration",
"Number of Lost Hits in Pixel Barrel Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1229 "nLostHitsPixEVsIteration",
"Number of Lost Hits in Pixel Endcap Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1231 "nLostHitsStripVsIteration",
"Number of Lost Hits in SiStrip Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1233 "nLostHitsTIBVsIteration",
"Number of Lost Hits in TIB Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1235 "nLostHitsTOBVsIteration",
"Number of Lost Hits in TOB Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1237 "nLostHitsTECVsIteration",
"Number of Lost Hits in TEC Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1239 "nLostHitsTIDVsIteration",
"Number of Lost Hits in TID Vs Iteration", 47, -0.5, 46.5, 0.0, 0.0,
"g");
1242 "chi2/ndof of Tracks Vs Eta",
1250 "chi2/ndof of Tracks Vs Phi",
1259 "chi2 probability of Tracks Vs Eta",
1267 "chi2 probability of Tracks Vs Phi",
1276 ibook.
bookProfile(
"trackIperr3dVsEta",
"ip3d error of Tracks Vs Eta", 80, -4., 4., 0.0, 0.0,
"g");
1281 ibook.
book2D(
"trackIperr3dVsEta2D",
"ip3d error of Tracks Vs Eta 2d", 80, -4., 4., 100, 0., 5.);
1283 ibook.
book2D(
"trackIperr3dVsChi2prob2D",
"ip3d error of Tracks Vs chi2prob 2d", 50, 0., 1., 100, 0., 5.);
1286 ibook.
book2D(
"trackSip2dVsChi2prob2D",
"sip2d of Tracks Vs chi2prob 2d", 50, 0., 1., 200, -10., 10.);
1292 ibook.
book1DD(
"hOnTrkClusChargeThick",
"On-track Cluster Charge (Thick Sensor)", 100, 0, 1000);
1294 ibook.
book1DD(
"hOnTrkClusWidthThick",
"On-track Cluster Width (Thick Sensor)", 20, -0.5, 19.5);
1297 ibook.
book1DD(
"hOffTrkClusChargeThin",
"Off-track Cluster Charge (Thin Sensor)", 100, 0, 1000);
1299 ibook.
book1DD(
"hOffTrkClusWidthThin",
"Off-track Cluster Width (Thin Sensor)", 20, -0.5, 19.5);
1301 ibook.
book1DD(
"hOffTrkClusChargeThick",
"Off-track Cluster Charge (Thick Sensor)", 100, 0, 1000);
1303 ibook.
book1DD(
"hOffTrkClusWidthThick",
"Off-track Cluster Width (Thick Sensor)", 20, -0.5, 19.5);
1307 edm::LogInfo(
"StandaloneTrackMonitor") <<
"Begin StandaloneTrackMonitor" << std::endl;
1321 if (vertexColl->empty()) {
1322 edm::LogError(
"StandalonaTrackMonitor") <<
"No good vertex in the event!!" << std::endl;
1331 edm::LogError(
"StandalonaTrackMonitor") <<
"Beamspot for input tag: " <<
bsTag_ <<
" not found!!";
1339 edm::LogError(
"StandalonaTrackMonitor") <<
"TrackCollection for input tag: " <<
trackTag_ <<
" not found!!";
1345 if (!
iEvent.isRealData()) {
1350 edm::LogInfo(
"StandaloneTrackMonitor") <<
"nPUColl = " << PupInfo->size();
1352 for (
auto const&
v : *PupInfo) {
1353 int bx =
v.getBunchCrossing();
1359 int ntrueInt =
v.getTrueNumInteractions();
1387 edm::LogInfo(
"StandaloneTrackMonitor") <<
"PU reweight factor = " << wfac;
1390 int nvtx = (vertexColl.
isValid() ? vertexColl->size() : 0);
1397 std::vector<TLorentzVector> list;
1401 std::vector<reco::TransientTrack> tks;
1414 tks.push_back(trajectory);
1426 double muonmass = 0.1056583745;
1427 TLorentzVector trackpmu;
1428 trackpmu.SetPtEtaPhiM(
track.pt(),
track.eta(),
track.phi(), muonmass);
1429 for (
auto const& TRACK : *
tracks) {
1430 if (&
track == &TRACK)
1433 if (tmpdr < trackdeltaR)
1434 trackdeltaR = tmpdr;
1437 list.push_back(trackpmu);
1476 int nLostHits =
track.numberOfLostHits();
1488 int nIteration =
track.originalAlgo();
1534 double losthitBylayer = -1.0;
1535 double losthitBylayerPix = -1.0;
1536 double losthitBylayerStrip = -1.0;
1539 losthitBylayer =
layer;
1540 losthitBylayerPix =
layer;
1542 losthitBylayer =
layer + 4;
1543 losthitBylayerPix =
layer + 4;
1545 losthitBylayer =
layer + 7;
1546 losthitBylayerStrip =
layer;
1548 losthitBylayer =
layer + 11;
1549 losthitBylayerStrip =
layer + 4;
1551 losthitBylayer =
layer + 14;
1552 losthitBylayerStrip =
layer + 7;
1554 losthitBylayer =
layer + 20;
1555 losthitBylayerStrip =
layer + 13;
1557 if (losthitBylayer > -1)
1559 if (losthitBylayerPix > -1)
1561 if (losthitBylayerStrip > -1)
1568 double thetaError =
track.thetaError();
1571 double ptError =
track.ptError();
1581 double trkd0 =
track.d0();
1584 double chi2prob = TMath::Prob(
track.chi2(), (
int)
track.ndof());
1585 double chi2oNDF =
track.normalizedChi2();
1590 unsigned int track_algo =
track.algo();
1591 unsigned int track_origalgo =
track.originalAlgo();
1594 double stop =
track.stopReason() > ssmax ? double(ssmax - 1) :
static_cast<double>(
track.stopReason());
1595 double distanceOfClosestApproachToPV =
track.dxy(
pv.position());
1596 double xPointOfClosestApproachwrtPV =
track.vx() -
pv.position().x();
1597 double yPointOfClosestApproachwrtPV =
track.vy() -
pv.position().y();
1598 double positionZ0 =
track.dz(
pv.position());
1602 double ip3dToPV = 0, iperr3dToPV = 0, sip3dToPV = 0, sip2dToPV = 0;
1607 sip3dToPV =
ip3d.second.value() /
ip3d.second.error();
1608 ip3dToPV =
ip3d.second.value();
1609 iperr3dToPV =
ip3d.second.error();
1612 double ip3dToBS = 0, iperr3dToBS = 0, sip3dToBS = 0, sip2dToBS = 0;
1613 reco::Vertex beamspotvertex((*beamSpot).position(), (*beamSpot).covariance3D());
1615 std::pair<bool, Measurement1D> ip2dbs =
1618 sip3dToBS = ip3dbs.second.value() / ip3dbs.second.error();
1619 ip3dToBS = ip3dbs.second.value();
1620 iperr3dToBS = ip3dbs.second.error();
1623 double ip2dToPV = 0, iperr2dToPV = 0;
1625 ip2dToPV = ip2d.second.value();
1626 iperr2dToPV = ip2d.second.error();
1627 sip2dToPV = ip2d.second.value() / ip2d.second.error();
1630 double ip2dToBS = 0, iperr2dToBS = 0;
1632 ip2dToBS = ip2dbs.second.value();
1633 iperr2dToBS = ip2dbs.second.error();
1634 sip2dToBS = ip2d.second.value() / ip2d.second.error();
1638 sip2dToPV = ip2d.second.value() / ip2d.second.error();
1639 double sipDxyToPV =
track.dxy(
pv.position()) /
track.dxyError();
1640 double sipDzToPV =
track.dz(
pv.position()) /
track.dzError();
1685 int nPixBarrel = 0, nPixEndcap = 0, nStripTIB = 0, nStripTOB = 0, nStripTEC = 0, nStripTID = 0;
1689 if (
hit.isValid()) {
1691 int subdetId =
hit.geographicalId().subdetId();
1713 <<
" >>> HITs: nPixBarrel: " << nPixBarrel <<
" nPixEndcap: " << nPixEndcap <<
" nStripTIB: " << nStripTIB
1714 <<
" nStripTOB: " << nStripTOB <<
" nStripTEC: " << nStripTEC <<
" nStripTID: " << nStripTID;
1819 for (
auto const&
jet : *jetsColl) {
1825 if (list.size() >= 2) {
1826 TLorentzVector Zp = list[0] + list[1];
1830 mumuTransientVtx = kalman.
vertex(tks);
1831 if (mumuTransientVtx.
isValid()) {
1838 if (theClosestVertex ==
nullptr) {
1839 theMainVtx = vertexHandle.
product()->front();
1841 theMainVtx = *theClosestVertex;
1844 const auto& mainVertexPos = theMainVtx.
position();
1845 const auto& myVertexPos = mumuTransientVtx.
position();
1847 const double deltaX = myVertexPos.
x() - mainVertexPos.x();
1848 const double deltaY = myVertexPos.y() - mainVertexPos.y();
1849 const double deltaZ = myVertexPos.z() - mainVertexPos.z();
1851 const double deltaNorm =
sqrt(deltaX * deltaX + deltaY * deltaY +
deltaZ *
deltaZ);
1852 const double zpNorm =
sqrt(Zp.Px() * Zp.Px() + Zp.Py() * Zp.Py() + Zp.Pz() * Zp.Pz());
1854 const double cosPhi3D = (Zp.Px() * deltaX + Zp.Py() * deltaY + Zp.Pz() *
deltaZ) / (zpNorm * deltaNorm);
1868 edm::LogInfo(
"StandaloneTrackMonitor") <<
"Ends StandaloneTrackMonitor successfully";
1878 if (clusterHandle.
isValid()) {
1881 dsvit != clusterHandle->end();
1883 uint32_t
detId = dsvit->id();
1884 std::map<uint32_t, std::set<const SiStripCluster*> >::iterator jt =
clusterMap_.find(
detId);
1885 bool detid_found = (jt !=
clusterMap_.end()) ?
true :
false;
1890 std::set<const SiStripCluster*>&
s = jt->second;
1891 if (
s.find(&*clusit) !=
s.end())
1918 uint32_t detid =
recHit.geographicalId();
1923 if (!thit.isValid())
1926 auto const& clus = thit.firstClusterRef();
1927 if (!clus.isValid())
1929 if (!clus.isStrip())
1932 if (thit.isMatched()) {
1959 auto& cluster = clus.stripCluster();
1973 std::map<uint32_t, std::set<const SiStripCluster*> >::iterator
it =
clusterMap_.find(detid);
1975 std::set<const SiStripCluster*>
s;
1977 clusterMap_.insert(std::pair<uint32_t, std::set<const SiStripCluster*> >(detid,
s));
1979 std::set<const SiStripCluster*>&
s =
it->second;
1995 int closestVtxIndex = 0;
1999 if (dist3D < minD) {
2006 if ((*vertices).at(closestVtxIndex).isValid()) {
2007 return &(
vertices->at(closestVtxIndex));
MonitorElement * nValidHitsPixEVsPhiH_
MonitorElement * pixelLayerwithMeasurementH_
int numberOfLostTrackerHits(HitCategory category) const
const TrackerGeometry * tkGeom_
MonitorElement * nLostHitByLayerPixH_
MonitorElement * nLostHitsPixBVsIterationH_
int numberOfValidPixelHits() const
MonitorElement * hOnTrkClusChargeThickH_
std::vector< int > lumivec2
const edm::InputTag trackTag_
static constexpr auto TEC
MonitorElement * sip2dToBSH_
MonitorElement * nallHitsH_
MonitorElement * nValidHitsPixBVsPhiH_
static bool stripTECHitFilter(uint16_t pattern)
static uint32_t getLayer(uint16_t pattern)
MonitorElement * nLostHitsPixEVsIterationH_
MonitorElement * trackDeltaRwrtClosestTrack_
void analyze(edm::Event const &iEvent, edm::EventSetup const &iSetup) override
T getParameter(std::string const &) const
int numberOfLostHits(HitCategory category) const
MonitorElement * hOnTrkClusChargeThinH_
MonitorElement * stripTOBLayerwithMeasurementH_
MonitorElement * trackqOverpH_
MonitorElement * nLostHitsVsPhiH_
MonitorElement * trackPtOver10GeVH_
MonitorElement * nlostTOBHitsH_
const std::string trackQuality_
const std::string algoName_
void setCluster(const SiStripCluster &cluster, int detId)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
GlobalPoint position() const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
MonitorElement * nStripTIDH_
std::vector< float > vpu_
MonitorElement * trackStoppingSourceH_
MonitorElement * trackChi2oNDFVsEtaH_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
MonitorElement * trackPt_ZoomH_
MonitorElement * iperr2dToPVH_
virtual void setCurrentFolder(std::string const &fullpath)
StandaloneTrackMonitor(const edm::ParameterSet &)
MonitorElement * iperr2dToPVWtH_
const bool haveAllHistograms_
MonitorElement * iperr3dToPVH_
MonitorElement * trackChi2bynDOFH_
std::vector< int > lumivec1
MonitorElement * trackChi2probVsPhiH_
TrackQuality
track quality
MonitorElement * hOffTrkClusWidthThickH_
const edm::EDGetTokenT< reco::TrackCollection > trackToken_
const Point & position() const
position
MonitorElement * nMissingOuterHitEH_
int trackerLayersWithMeasurement() const
MonitorElement * nLostHitsTIBVsIterationH_
int numberOfAllHits(HitCategory category) const
const edm::EDGetTokenT< std::vector< PileupSummaryInfo > > puSummaryToken_
MonitorElement * ip2dToBSH_
T const * product() const
MonitorElement * ip2dToPVH_
int stripLayersWithMeasurement() const
std::vector< Track > TrackCollection
collection of Tracks
MonitorElement * beamSpotZposH_
MonitorElement * nValidHitsVspTH_
MonitorElement * stripLayerwithMeasurementH_
int numberOfValidStripTIBHits() const
MonitorElement * sip3dToBS2validpixelhitsH_
MonitorElement * ntrackerHitsH_
int stripTIDLayersWithMeasurement() const
int pixelEndcapLayersWithMeasurement() const
int numberOfValidStripTECHits() const
std::vector< Vertex > VertexCollection
collection of Vertex objects
MonitorElement * nValidHitsTOBVsPhiH_
int numberOfLostPixelBarrelHits(HitCategory category) const
MonitorElement * cosPhi3DdileptonH_
MonitorElement * yPointOfClosestApproachVsZ0wrtPVH_
MonitorElement * nHitsTIDDVsEtaH_
data_type const * const_iterator
MonitorElement * sipDxyToPVH_
Log< level::Error, false > LogError
std::vector< Vertex > VertexCollection
MonitorElement * hOnTrkClusWidthThinH_
static bool missingHitFilter(uint16_t pattern)
int numberOfAllTrackerHits(HitCategory category) const
MonitorElement * sip3dToPVH_
MonitorElement * iperr3dToBS2validpixelhitsH_
MonitorElement * trackChi2probVsEtaH_
MonitorElement * nStripTECH_
MonitorElement * nHitsTOBSVsEtaH_
MonitorElement * Jet_chargedMultiplicity_
static bool pixelBarrelHitFilter(uint16_t pattern)
MonitorElement * nHitsTIBDVsEtaH_
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transTrackToken_
MonitorElement * hOffTrkClusWidthThinH_
const std::string puScaleFactorFile_
MonitorElement * hOffTrkClusChargeThinH_
int stripTECLayersWithMeasurement() const
SiStripClusterInfo siStripClusterInfo_
MonitorElement * nHitsTIDSVsEtaH_
MonitorElement * trackChi2H_
MonitorElement * nLostHitsTECVsIterationH_
MonitorElement * nlostPixelEHitsH_
const edm::InputTag mvaTrackTag_
MonitorElement * trackSip2dVsEtaH_
static bool pixelEndcapHitFilter(uint16_t pattern)
int numberOfLostStripHits(HitCategory category) const
int numberOfValidStripHits() const
const edm::InputTag jetsTag_
MonitorElement * sipDzToPVH_
MonitorElement * trackIperr3dVsEtaH_
MonitorElement * nMissingExpectedInnerHitsH_
CachingVertex< 5 > vertex(const std::vector< reco::TransientTrack > &tracks) const override
MonitorElement * nLostHitsTOBVsIterationH_
const edm::InputTag vertexTag_
reco::TransientTrack build(const reco::Track *p) const
virtual float thickness() const =0
MonitorElement * nlostHitsH_
MonitorElement * beamSpotXYposH_
MonitorElement * nLostHitsTIDVsEtaH_
int numberOfLostStripTECHits(HitCategory category) const
const edm::ParameterSet TrackPtHistoPar_
MonitorElement * book1DD(TString const &name, TString const &title, int nchX, double lowX, double highX, FUNC onbooking=NOOP())
MonitorElement * nLostHitsPixEVsEtaH_
MonitorElement * nMissingInnerHitEH_
MonitorElement * nlostTIBHitsH_
MonitorElement * nlostTECHitsH_
MonitorElement * nvalidTECHitsH_
const bool doPUCorrection_
MonitorElement * nLostHitsTIBVsEtaH_
MonitorElement * nLostHitsTIDVsIterationH_
std::vector< float > MVACollection
MonitorElement * nValidHitsPixVsEtaH_
MonitorElement * nTracksH_
MonitorElement * hOnTrkClusWidthThickH_
MonitorElement * trackorigalgoH_
MonitorElement * trackqOverperrH_
MonitorElement * stripTIBLayerwithMeasurementH_
MonitorElement * nValidHitsTIDVsEtaH_
MonitorElement * nValidHitsStripVsPhiH_
MonitorElement * iperr3dToBSWtH_
SiStripCluster const & monoCluster() const
MonitorElement * nValidHitsTECVsEtaH_
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
std::vector< MonitorElement * > trackMVAs
MonitorElement * trackThetaerrH_
MonitorElement * bunchCrossingH_
MonitorElement * nHitsTECDVsEtaH_
MonitorElement * nHitsTOBDVsEtaH_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * nStripTIBH_
int numberOfValidPixelEndcapHits() const
MonitorElement * trackSip2dVsChi2prob2DH_
Cos< T >::type cos(const T &t)
const std::string StopReasonName[]
MonitorElement * nvalidPixelBHitsH_
int numberOfLostPixelEndcapHits(HitCategory category) const
MonitorElement * nlostTrackerHitsH_
MonitorElement * trackPterrH_
MonitorElement * sip2dToPVWtH_
const bool doTrackCorrection_
const edm::InputTag puSummaryTag_
MonitorElement * nValidHitsPixVsPhiH_
MonitorElement * DistanceOfClosestApproachToPVH_
Abs< T >::type abs(const T &t)
MonitorElement * ip3dToPVH_
int stripTOBLayersWithMeasurement() const
MonitorElement * nvalidStripHitsH_
MonitorElement * nMissingOuterHitBH_
int numberOfValidStripTIDHits() const
const edm::ParameterSet TrackPhiHistoPar_
#define DEFINE_FWK_MODULE(type)
MonitorElement * trackPhiH_
MonitorElement * nValidHitsVsCosThetaH_
MonitorElement * nLostHitsTOBVsEtaH_
MonitorElement * nlostStripHitsH_
MonitorElement * pixelELayerwithMeasurementH_
MonitorElement * nValidHitsVsnVtxH_
MonitorElement * vertexXposH_
static constexpr auto TOB
MonitorElement * ip3dToPV2validpixelhitsH_
int numberOfLostStripTIDHits(HitCategory category) const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * beamSpotZposerrH_
MonitorElement * nLostHitsTIDVsPhiH_
std::vector< MonitorElement * > trackMVAsVsPtProfile
MonitorElement * nvalidPixelEHitsH_
uint16_t getHitPattern(HitCategory category, int position) const
const std::string folderName_
std::vector< MonitorElement * > trackMVAsHP
MonitorElement * trackIperr3dVsChi2prob2DH_
MonitorElement * stripTECLayerwithMeasurementH_
MonitorElement * trackIperr3dVsChi2probH_
std::vector< unsigned char > QualityMaskCollection
int numberOfLostStripTOBHits(HitCategory category) const
MonitorElement * nLostHitsVsCosThetaH_
MonitorElement * trackPtH_
const std::string moduleName_
MonitorElement * nlostTIDHitsH_
MonitorElement * nValidHitsTIBVsEtaH_
MonitorElement * beamSpotXYposerrH_
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
MonitorElement * trackChargeH_
MonitorElement * iperr2dToBSH_
MonitorElement * hOffTrkClusChargeThickH_
Log< level::Info, false > LogInfo
const edm::InputTag tcProducer_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * iperr3dToPVWtH_
MonitorElement * nMissingExpectedOuterHitsH_
MonitorElement * trackCosThetaH_
const edm::InputTag clusterTag_
MonitorElement * nvalidTrackerHitsH_
MonitorElement * nValidHitsPixBVsEtaH_
void addClusterToMap(uint32_t detid, const SiStripCluster *cluster)
static TrackQuality qualityByName(const std::string &name)
MonitorElement * nLostHitsTECVsEtaH_
static constexpr auto TIB
const Plane & surface() const
The nominal surface of the GeomDet.
MonitorElement * trackChi2ProbH_
MonitorElement * nValidHitsVsPhiH_
MonitorElement * nlostPixelHitsH_
MonitorElement * trackChi2oNDFVsPhiH_
MonitorElement * nLostHitsStripVsEtaH_
const edm::EDGetTokenT< reco::BeamSpot > bsToken_
const edm::EDGetTokenT< edm::View< reco::Track > > mvaTrackToken_
MonitorElement * trkLayerwithMeasurementH_
MonitorElement * Jet_energy_
MonitorElement * trackd0H_
MonitorElement * sip2dToPVH_
MonitorElement * trackEtaerrH_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * trueNIntH_
MonitorElement * nLostHitByLayerH_
MonitorElement * nHitsTECSVsEtaH_
MonitorElement * DistanceOfClosestApproachToPVZoomedH_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::map< uint32_t, std::set< const SiStripCluster * > > clusterMap_
MonitorElement * nvalidTIBHitsH_
SiStripCluster const & stereoCluster() const
MonitorElement * trackSip2dVsEta2DH_
const edm::InputTag bsTag_
static const std::string algoNames[]
static bool stripTOBHitFilter(uint16_t pattern)
MonitorElement * xPointOfClosestApproachVsZ0wrtPVH_
MonitorElement * vertexYposH_
MonitorElement * nLostHitByLayerStripH_
MonitorElement * trackChi2oNDFH_
int numberOfLostPixelHits(HitCategory category) const
static bool stripTIBHitFilter(uint16_t pattern)
std::vector< float > vtrack_
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
MonitorElement * iperr3dToPV2validpixelhitsH_
MonitorElement * nvalidTIDHitsH_
MonitorElement * ZInvMass_
const edm::ParameterSet TrackEtaHistoPar_
MonitorElement * trackPH_
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
static std::atomic< unsigned int > counter
MonitorElement * nLostHitsPixVsPhiH_
MonitorElement * sip3dToPV2validpixelhitsH_
void processClusters(edm::Event const &iEvent, edm::EventSetup const &iSetup, const TrackerGeometry &tkGeom, double wfac=1)
MonitorElement * nPixBarrelH_
MonitorElement * nLostHitsVsIterationH_
MonitorElement * nValidHitsStripVsEtaH_
const edm::EDGetTokenT< std::vector< reco::PFJet > > jetsToken_
MonitorElement * nPixEndcapH_
std::vector< MonitorElement * > trackMVAsHPVsEtaProfile
int numberOfValidPixelBarrelHits() const
MonitorElement * iperr3dToBSH_
MonitorElement * nValidHitsTOBVsEtaH_
MonitorElement * nLostHitsTIBVsPhiH_
int pixelBarrelLayersWithMeasurement() const
MonitorElement * nLostHitsVspTH_
MonitorElement * trackIperr3dVsEta2DH_
virtual int getNbinsX() const
get # of bins in X-axis
MonitorElement * nHitsStripSVsEtaH_
MonitorElement * nvalidPixelHitsH_
MonitorElement * sip3dToBSH_
MonitorElement * Jet_eta_
MonitorElement * nLostHitsPixBVsEtaH_
int pixelLayersWithMeasurement() const
MonitorElement * tracknDOFH_
MonitorElement * trackPtUpto2GeVH_
MonitorElement * nLostHitsStripVsIterationH_
MonitorElement * pixelBLayerwithMeasurementH_
MonitorElement * ip3dToBS2validpixelhitsH_
MonitorElement * nlostPixelBHitsH_
MonitorElement * trackEtaH_
MonitorElement * nLostHitsTOBVsPhiH_
MonitorElement * nLostHitsTECVsPhiH_
static bool stripTIDHitFilter(uint16_t pattern)
const reco::Vertex * findClosestVertex(const TransientVertex aTransVtx, const reco::VertexCollection *vertices) const
void processHit(const TrackingRecHit &recHit, edm::EventSetup const &iSetup, const TrackerGeometry &tkGeom, double wfac=1)
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
std::vector< MonitorElement * > trackMVAsVsEtaProfile
MonitorElement * nLostHitsPixBVsPhiH_
MonitorElement * nLostHitsVsEtaH_
MonitorElement * nValidHitsTIBVsPhiH_
const std::string trackScaleFactorFile_
MonitorElement * nHitsTIBSVsEtaH_
static constexpr auto TID
MonitorElement * nLostHitsPixVsIterationH_
Geom::Theta< T > theta() const
int numberOfValidTrackerHits() const
MonitorElement * stripTIDLayerwithMeasurementH_
MonitorElement * nValidHitsPixEVsEtaH_
MonitorElement * nLostHitsPixVsEtaH_
MonitorElement * ip3dToBSH_
MonitorElement * nVertexH_
MonitorElement * nLostHitsPixEVsPhiH_
MonitorElement * nvalidTOBHitsH_
int numberOfLostStripTIBHits(HitCategory category) const
Power< A, B >::type pow(const A &a, const B &b)
MonitorElement * DistanceOfClosestApproachToPVVsPhiH_
MonitorElement * nValidHitsVsEtaH_
bool isValid() const
Tells whether the vertex is valid.
MonitorElement * nValidHitsTIDVsPhiH_
MonitorElement * nHitsStripDVsEtaH_
MonitorElement * nValidHitsTECVsPhiH_
MonitorElement * vertexZposH_
std::vector< MonitorElement * > trackMVAsHPVsPtProfile
MonitorElement * nLostHitsStripVsPhiH_
const std::vector< std::string > mvaProducers_
MonitorElement * trackalgoH_
MonitorElement * trackPhierrH_
int numberOfValidStripTOBHits() const
MonitorElement * nStripTOBH_
int stripTIBLayersWithMeasurement() const
MonitorElement * nMissingInnerHitBH_
const Bounds & bounds() const