27 template <
typename T,
size_t N>
29 const double minLog10 = std::log10(min);
30 const double maxLog10 = std::log10(max);
31 const double width = (maxLog10 - minLog10) /
N;
32 std::array<T, N + 1> ret;
34 const double mult =
std::pow(10, width);
35 for (
size_t i = 1;
i <=
N; ++
i) {
36 ret[
i] = ret[
i - 1] * mult;
44 stateName_(iConfig.getParameter<
std::
string>(
"MeasurementState")),
45 doTrackerSpecific_(iConfig.getParameter<
bool>(
"doTrackerSpecific")),
46 doAllPlots_(iConfig.getParameter<
bool>(
"doAllPlots")),
47 doBSPlots_(iConfig.getParameter<
bool>(
"doBeamSpotPlots")),
48 doPVPlots_(iConfig.getParameter<
bool>(
"doPrimaryVertexPlots")),
49 doDCAPlots_(iConfig.getParameter<
bool>(
"doDCAPlots")),
50 doGeneralPropertiesPlots_(iConfig.getParameter<
bool>(
"doGeneralPropertiesPlots")),
51 doMeasurementStatePlots_(iConfig.getParameter<
bool>(
"doMeasurementStatePlots")),
52 doHitPropertiesPlots_(iConfig.getParameter<
bool>(
"doHitPropertiesPlots")),
53 doRecHitVsPhiVsEtaPerTrack_(iConfig.getParameter<
bool>(
"doRecHitVsPhiVsEtaPerTrack")),
54 doRecHitVsPtVsEtaPerTrack_(iConfig.getParameter<
bool>(
"doRecHitVsPtVsEtaPerTrack")),
55 doLayersVsPhiVsEtaPerTrack_(iConfig.getParameter<
bool>(
"doLayersVsPhiVsEtaPerTrack")),
56 doRecHitsPerTrackProfile_(iConfig.getParameter<
bool>(
"doRecHitsPerTrackProfile")),
57 doThetaPlots_(iConfig.getParameter<
bool>(
"doThetaPlots")),
58 doTrackPxPyPlots_(iConfig.getParameter<
bool>(
"doTrackPxPyPlots")),
59 doDCAwrtPVPlots_(iConfig.getParameter<
bool>(
"doDCAwrtPVPlots")),
60 doDCAwrt000Plots_(iConfig.getParameter<
bool>(
"doDCAwrt000Plots")),
61 doLumiAnalysis_(iConfig.getParameter<
bool>(
"doLumiAnalysis")),
62 doTestPlots_(iConfig.getParameter<
bool>(
"doTestPlots")),
63 doHIPlots_(iConfig.getParameter<
bool>(
"doHIPlots")),
64 doSIPPlots_(iConfig.getParameter<
bool>(
"doSIPPlots")),
65 doEffFromHitPatternVsPU_(iConfig.getParameter<
bool>(
"doEffFromHitPatternVsPU")),
66 doEffFromHitPatternVsBX_(iConfig.getParameter<
bool>(
"doEffFromHitPatternVsBX")),
67 doEffFromHitPatternVsLUMI_(iConfig.getParameter<
bool>(
"doEffFromHitPatternVsLUMI")),
68 pvNDOF_(iConfig.getParameter<
int>(
"pvNDOF")),
69 useBPixLayer1_(iConfig.getParameter<
bool>(
"useBPixLayer1")),
70 minNumberOfPixelsPerCluster_(iConfig.getParameter<
int>(
"minNumberOfPixelsPerCluster")),
71 minPixelClusterCharge_(iConfig.getParameter<double>(
"minPixelClusterCharge")),
72 qualityString_(iConfig.getParameter<
std::
string>(
"qualityString")),
239 float MIN[] = {PVMin, 0.5, LUMIMin, LUMIMin};
241 std::string NAME[] = {
"",
"VsBX",
"VsLUMI",
"VsLUMI"};
243 auto logBins = makeLogBins<float, LUMIBin>(LUMIMin, LUMIMax);
251 for (
int i = 0;
i < monQuantity::END;
i++) {
256 mon += monQuantity::END;
269 const char* dets[] = {
"None",
"PXB",
"PXF",
"TIB",
"TID",
"TOB",
"TEC"};
275 const char* hit_category[] = {
"valid",
"missing",
"inactive",
"bad",
"total"};
279 for (
unsigned int det = 1; det <
sizeof(dets) /
sizeof(
char*); ++det) {
280 for (
unsigned int sub_det = 1; sub_det <= trackerGeometry->
numberOfLayers(det); ++sub_det) {
281 for (
unsigned int cat = 0;
cat <
sizeof(hit_category) /
sizeof(
char*); ++
cat) {
282 memset(title, 0,
sizeof(title));
283 snprintf(title,
sizeof(title),
"Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[
cat], dets[det], sub_det);
287 logQ ? ibooker.
book1D(title, title, nbins, &logBins[0])
288 : ibooker.
book1D(title, title, nbins, min, max)));
292 logQ ? ibooker.
book1D(title, title, nbins, &logBins[0])
293 : ibooker.
book1D(title, title, nbins, min, max)));
296 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " <<
cat <<
" ignored\n";
311 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
363 histname =
"NumberOfRecHitsPerTrack_";
369 histname =
"NumberOfValidRecHitsPerTrack_";
376 histname =
"NumberOfLostRecHitsPerTrack_";
382 histname =
"NumberOfMissingInnerRecHitsPerTrack_";
387 histname =
"NumberOfMissingOuterRecHitsPerTrack_";
392 histname =
"ValidFractionPerTrack_";
398 histname =
"NumberOfValidRecHitVsPhiVsEtaPerTrack_";
413 histname =
"NumberOfLostRecHitVsPhiVsEtaPerTrack_";
428 histname =
"NumberMIRecHitVsPhiVsEtaPerTrack_";
443 histname =
"NumberMORecHitVsPhiVsEtaPerTrack_";
458 histname =
"ValidFractionVsPhiVsEtaPerTrack_";
475 histname =
"NumberOfValidRecHitVsPtVsEtaPerTrack_";
477 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 40.,
"");
481 histname =
"NumberOfLostRecHitVsPtVsEtaPerTrack_";
483 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 5.,
"");
487 histname =
"NumberMIRecHitVsPtVsEtaPerTrack_";
489 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
493 histname =
"NumberMORecHitVsPtVsEtaPerTrack_";
495 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
500 histname =
"NumberOfValidRecHitsPerTrackVsPt_";
502 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
506 histname =
"NumberOfLostRecHitsPerTrackVsPt_";
508 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
512 histname =
"NumberMIRecHitsPerTrackVsPt_";
514 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
518 histname =
"NumberMORecHitsPerTrackVsPt_";
520 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
524 std::string layerTypeName[5] = {
"",
"Off",
"3D",
"Missing",
"Pixel"};
525 for (
int i = 0;
i < 4; ++
i) {
526 histname =
"NumberOf" + layerTypeName[
i] +
"LayersPerTrack_";
533 for (
int i = 0;
i < 5; ++
i) {
534 histname =
"NumberOf" + layerTypeName[
i] +
"LayersVsPhiVsEtaPerTrack_";
581 Chi2->setAxisTitle(
"Track #chi^{2}", 1);
582 Chi2->setAxisTitle(
"Number of Tracks", 2);
645 histname =
"xPointOfClosestApproach_";
650 histname =
"yPointOfClosestApproach_";
655 histname =
"zPointOfClosestApproach_";
660 histname =
"xPointOfClosestApproachToPV_";
666 histname =
"yPointOfClosestApproachToPV_";
672 histname =
"zPointOfClosestApproachToPV_";
707 histname + CategoryName,
histname + CategoryName, StopReasonNameSize, 0.,
double(StopReasonNameSize));
723 for (
size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
735 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
752 histname =
"NumberOfRecHitsPerTrack_lumiFlag_";
772 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
820 histname =
"DistanceOfClosestApproachError_";
826 histname =
"DistanceOfClosestApproachErrorVsPt_";
832 histname =
"DistanceOfClosestApproachErrorVsEta_";
838 histname =
"DistanceOfClosestApproachErrorVsPhi_";
844 histname =
"DistanceOfClosestApproachErrorVsDxy_";
850 histname =
"DistanceOfClosestApproachToBS_";
856 if (Folder ==
"Tr") {
857 histname =
"DistanceOfClosestApproachToBSdz_";
863 histname =
"DistanceOfClosestApproachToBSVsEta_";
865 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax,
"");
870 histname =
"AbsDistanceOfClosestApproachToBS_";
876 histname =
"DistanceOfClosestApproachToBSVsPhi_";
878 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
882 histname =
"xPointOfClosestApproachVsZ0wrt000_";
884 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
888 histname =
"yPointOfClosestApproachVsZ0wrt000_";
890 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
894 histname =
"xPointOfClosestApproachVsZ0wrtBS_";
896 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
900 histname =
"yPointOfClosestApproachVsZ0wrtBS_";
902 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
906 histname =
"zPointOfClosestApproachVsPhi_";
908 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf,
"");
936 histname =
"DistanceOfClosestApproachToPV_";
942 histname =
"DistanceOfClosestApproachToPVZoom_";
958 histname =
"DistanceOfClosestApproachToPVVsPhi_";
960 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
964 histname =
"xPointOfClosestApproachVsZ0wrtPV_";
966 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
970 histname =
"yPointOfClosestApproachVsZ0wrtPV_";
972 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
987 histname =
"TESTDistanceOfClosestApproachToBS_";
989 ibooker.
book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
993 histname =
"TESTDistanceOfClosestApproachToBSVsPhi_";
995 histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
1023 histname =
"DistanceOfClosestApproachVsTheta_";
1025 histname + CategoryName,
histname + CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin, DxyMax,
"");
1030 histname =
"DistanceOfClosestApproachVsEta_";
1032 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax,
"");
1037 histname =
"DistanceOfClosestApproach_";
1043 histname =
"DistanceOfClosestApproachVsPhi_";
1045 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyMin, DxyMax,
"");
1052 const double sipBins = 200;
1053 const double sipMin = -20;
1054 const double sipMax = 20;
1099 if (recoPrimaryVerticesHandle.
isValid())
1100 if (!recoPrimaryVerticesHandle->empty())
1101 for (
auto v : *recoPrimaryVerticesHandle)
1114 if (lumiScalers.
isValid() && !lumiScalers->empty()) {
1115 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1122 if (pixelClusters.
isValid()) {
1129 size_t numClusters = 0;
1133 for (; pixCluDet != pixelClusters->end(); ++pixCluDet) {
1134 DetId detid = pixCluDet->detId();
1135 size_t subdetid = detid.
subdetId();
1138 if (tTopo->
layer(detid) == 1)
1142 for (; pixClu != pixCluDet->
end(); ++pixClu) {
1155 auto pt = track.
pt();
1156 auto phi = track.
phi();
1170 auto chi2prob = TMath::Prob(track.
chi2(), (
int)track.
ndof());
1211 for (
int i = 0;
i < 4; ++
i)
1216 for (
int i = 0; i < 5; ++
i)
1258 double stop = track.
stopReason() > max ? double(max - 1) :
static_cast<double>(track.
stopReason());
1283 if (Folder ==
"Tr") {
1309 if (recoPrimaryVerticesHandle.
isValid() && !recoPrimaryVerticesHandle->empty()) {
1317 double longDCAsig = 0, transDCAsig = 0;
1321 longDCAsig = track.
dz(pv.
position()) / zerr2;
1403 for (
int i = 0;
i < monQuantity::END;
i++) {
1408 mon += monQuantity::END;
1411 if (track.
pt() > 1.0 && track.
dxy() < 0.1 and monitoring > -9.) {
1420 bool valid =
hp.validHitFilter(
pattern);
1421 bool missing =
hp.missingHitFilter(
pattern);
1422 bool inactive =
hp.inactiveHitFilter(
pattern);
1424 hit_type = valid ? 0 : (missing ? 1 : (inactive ? 2 : 3));
1427 LogDebug(
"TrackAnalyzer") <<
"Invalid combination of detector and subdetector: (" 1429 << mon <<
"): ignoring it.\n";
1444 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " << hit_type <<
" ignored\n";
1460 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
1548 std::string histTag = (sname ==
"default") ? CategoryName : sname +
"_" + CategoryName;
1555 histname =
"Chi2oNDFVsTheta_" + histTag;
1561 histname =
"Chi2oNDFVsPhi_" + histTag;
1566 histname =
"Chi2ProbVsPhi_" + histTag;
1568 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1572 histname =
"Chi2ProbVsEta_" + histTag;
1574 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1582 histname =
"Chi2oNDFVsEta_" + histTag;
1587 histname =
"Chi2oNDFVsPt_" + histTag;
1593 histname =
"Chi2oNDFVsNHits_" + histTag;
1634 if (Folder ==
"Tr") {
1635 histname =
"TrackPtHighPurity_" + histTag;
1640 histname =
"TrackPtTight_" + histTag;
1645 histname =
"TrackPtLoose_" + histTag;
1655 for (
size_t ibin = 0; ibin < 3; ibin++) {
1659 histname =
"TrackPt_NegEta_Phi_btw_neg16_neg32_" + histTag;
1664 histname =
"TrackPt_NegEta_Phi_btw_0_neg16_" + histTag;
1669 histname =
"TrackPt_NegEta_Phi_btw_16_0_" + histTag;
1674 histname =
"TrackPt_NegEta_Phi_btw_32_16_" + histTag;
1679 histname =
"TrackPt_PosEta_Phi_btw_neg16_neg32_" + histTag;
1684 histname =
"TrackPt_PosEta_Phi_btw_0_neg16_" + histTag;
1689 histname =
"TrackPt_PosEta_Phi_btw_16_0_" + histTag;
1694 histname =
"TrackPt_PosEta_Phi_btw_32_16_" + histTag;
1699 histname =
"Ratio_byFolding_" + histTag;
1703 histname =
"Ratio_byFolding2_" + histTag;
1707 histname =
"TrackEtaHighpurity_" + histTag;
1712 histname =
"TrackEtaTight_" + histTag;
1717 histname =
"TrackEtaLoose_" + histTag;
1722 histname =
"TrackEtaPhiInverted_" + histTag;
1727 histname =
"TrackEtaPhiInvertedoutofphase_" + histTag;
1733 histname =
"TkEtaPhi_Ratio_byFoldingmap_" + histTag;
1739 histname =
"TkEtaPhi_Ratio_byFoldingmap_op_" + histTag;
1745 histname =
"TkEtaPhi_RelativeDifference_byFoldingmap_" + histTag;
1751 histname =
"TkEtaPhi_RelativeDifference_byFoldingmap_op_" + histTag;
1757 histname =
"TrackQoverP_" + histTag;
1763 histname =
"TrackEtaPhi_" + histTag;
1768 histname =
"TrackEtaPhiInner_" + histTag;
1773 histname =
"TrackEtaPhiOuter_" + histTag;
1779 histname =
"TrackTheta_" + histTag;
1789 histname =
"TrackPErrOverP_" + histTag;
1794 histname =
"TrackPtErrOverPt_" + histTag;
1799 histname =
"TrackPtErrOverPtVsEta_" + histTag;
1805 histname =
"TrackPxErrOverPx_" + histTag;
1810 histname =
"TrackPyErrOverPy_" + histTag;
1815 histname =
"TrackPzErrOverPz_" + histTag;
1820 histname =
"TrackPhiErr_" + histTag;
1825 histname =
"TrackEtaErr_" + histTag;
1832 histname =
"NumberOfRecHitsPerTrackVsPhi_" + histTag;
1839 histname =
"NumberOfRecHitsPerTrackVsTheta_" + histTag;
1845 histname =
"NumberOfRecHitsPerTrackVsEta_" + histTag;
1851 histname =
"NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1857 histname =
"NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1863 histname =
"NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1870 histname =
"NumberOfLayersPerTrackVsPhi_" + histTag;
1877 histname =
"NumberOfLayersPerTrackVsTheta_" + histTag;
1883 histname =
"NumberOfLayersPerTrackVsEta_" + histTag;
1890 histname =
"Chi2oNDFVsTheta_" + histTag;
1897 histname =
"Chi2oNDFVsPhi_" + histTag;
1902 histname =
"Chi2oNDFVsEta_" + histTag;
1907 histname =
"Chi2ProbVsPhi_" + histTag;
1909 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1913 histname =
"Chi2ProbVsEta_" + histTag;
1915 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1929 double pxerror, pyerror, pzerror, pterror, perror, phierror,
etaerror;
1938 if (sname ==
"default") {
1945 theta = track.
theta();
1949 pterror = (
pt) ? track.
ptError() / (pt *
pt) : 0.0;
1964 if (sname ==
"OuterSurface")
1966 else if (sname ==
"InnerSurface")
1968 else if (sname ==
"ImpactPoint")
1983 double partialPterror =
1994 std::map<std::string, TkParameterMEs>::iterator iPos =
TkParameterMEMap.find(sname);
2012 if (Folder ==
"Tr") {
2024 for (
int ii = 1;
ii <= nx;
ii++) {
2025 for (
int jj = 1;
jj <= ny;
jj++) {
2036 if (Sum1 == 0 || Sum2 == 0) {
2040 double ratio1 = Sub1 / Sum1;
2041 double ratio2 = Sub2 / Sum2;
2050 if (eta < 0. && phi < -1.6) {
2053 if (eta < 0. && phi < 0 && phi >= -1.6) {
2056 if (eta < 0. && phi < 1.6 && phi >= 0) {
2059 if (eta < 0. && phi >= 1.6) {
2062 if (eta >= 0. && phi < -1.6) {
2065 if (eta >= 0. && phi < 0 && phi >= -1.6) {
2068 if (eta >= 0. && phi < 1.6 && phi >= 0) {
2071 if (eta >= 0. && phi >= 1.6) {
2088 for (
int w = 1;
w < 8;
w++) {
2239 double chi2prob = TMath::Prob(track.
chi2(), (
int)track.
ndof());
2264 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
2282 std::vector<std::string> subdetectors =
conf_->
getParameter<std::vector<std::string> >(
"subdetectors");
2285 for (
auto det : subdetectors) {
2301 if (det ==
"PixBarrel")
2303 if (det ==
"PixEndcap")
2312 histname =
"NumberOfRecHitsPerTrack_" + det +
"_" + CategoryName;
2318 histname =
"NumberOfRecHitsPerTrackVsPhi_" + det +
"_" + CategoryName;
2325 histname =
"NumberOfRecHitsPerTrackVsEta_" + det +
"_" + CategoryName;
2332 histname =
"NumberOfRecHitsPerTrackVsPt_" + det +
"_" + CategoryName;
2339 histname =
"NumberOfLayersPerTrack_" + det +
"_" + CategoryName;
2345 histname =
"NumberOfLayersPerTrackVsPhi_" + det +
"_" + CategoryName;
2352 histname =
"NumberOfLayersPerTrackVsEta_" + det +
"_" + CategoryName;
2359 histname =
"NumberOfLayersPerTrackVsPt_" + det +
"_" + CategoryName;
2371 double phi = track.
phi();
2372 double eta = track.
eta();
2373 double pt = track.
pt();
2378 int nValidLayers = 0;
2379 int nValidRecHits = 0;
2380 int substr = it->second.detectorId;
2426 it->second.NumberOfRecHitsPerTrack->Fill(nValidRecHits);
2427 it->second.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2428 it->second.NumberOfRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2429 it->second.NumberOfRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2431 it->second.NumberOfLayersPerTrack->Fill(nValidLayers);
2432 it->second.NumberOfLayersPerTrackVsPhi->Fill(phi, nValidLayers);
2433 it->second.NumberOfLayersPerTrackVsEta->Fill(eta, nValidLayers);
2434 it->second.NumberOfLayersPerTrackVsPt->Fill(pt, nValidLayers);
2470 dqmStore_->disableSoftReset(
Chi2oNDF);
MonitorElement * Ratio_byFolding2
MonitorElement * sipDzToPV
std::map< std::string, TkParameterMEs > TkParameterMEMap
MonitorElement * NumberOfValidRecHitsPerTrack
MonitorElement * Ptdist_HighPurity
MonitorElement * TrackPhi
double p() const
momentum vector magnitude
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
bool doEffFromHitPatternVsBX_
int stripTOBLayersWithMeasurement() const
T getParameter(std::string const &) const
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
MonitorElement * TrackPtErr
MonitorElement * DistanceOfClosestApproachErrorVsEta
MonitorElement * sip2dToPV
const Point & referencePoint() const
Reference point on the track.
MonitorElement * Chi2oNDFVsTheta
double d0Error() const
error on d0
bool doHitPropertiesPlots_
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * NumberOfRecHitsPerTrack
const_iterator end(bool update=false) const
MonitorElement * NumberOfLayersPerTrackVsPt
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
void fillHistosForEfficiencyFromHitPatter(const reco::Track &track, const std::string suffix, const float monitoring, bool useInac)
MonitorElement * NumberOfLayersPerTrackVsEta
MonitorElement * dNdPt_HighPurity
MonitorElement * TkEtaPhi_RelativeDifference_byFoldingmap
MonitorElement * TrackPt_NegEta_Phi_btw_16_0
TrackCharge charge() const
MonitorElement * sipDxyToPV
double validFraction() const
fraction of valid hits on the track
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
MonitorElement * TrackEtaLoose
MonitorElement * Chi2oNDFVsPhi
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
int stripTIBLayersWithMeasurement() const
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
MonitorElement * bookProfile(Args &&...args)
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * LongDCASig
bool getByToken(EDGetToken token, Handle< PROD > &result) const
double zError() const
error on z
MonitorElement * yPointOfClosestApproach
double theta() const
polar angle
double dxyError() const
error on dxy
MonitorElement * TrackEtaErr
void doSoftReset(DQMStore *dqmStore_)
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
const CurvilinearTrajectoryError & curvilinearError() const
bool doEffFromHitPatternVsLUMI_
Sin< T >::type sin(const T &t)
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
unsigned int good_vertices_
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
uint8_t stopReason() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Geom::Phi< T > phi() const
MonitorElement * DistanceOfClosestApproachToBSVsPhi
const CartesianTrajectoryError cartesianError() const
MonitorElement * zPointOfClosestApproachToPV
Geom::Theta< T > theta() const
reco::TransientTrack build(const reco::Track *p) const
double etaError() const
error on eta
int bunchCrossing() const
MonitorElement * TrackPtHighPurity
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 * TrackPt_NegEta_Phi_btw_neg16_neg32
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
std::vector< Vertex > VertexCollection
collection of Vertex objects
MonitorElement * TrackPt_PosEta_Phi_btw_32_16
data_type const * const_iterator
MonitorElement * TrackEtaPhiInvertedoutofphase
const double EtaMax[kNumberCalorimeter]
double px() const
x coordinate of momentum vector
static const std::string StopReasonName[]
int pixelLayersWithMeasurement() const
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
const math::XYZPoint & outerPosition() const
position of the outermost hit
MonitorElement * NumberOfRecHitsPerTrackVsTheta
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
int trackerLayersWithMeasurement() const
MonitorElement * sipDxyToBS
const Point & position() const
position
int pixelEndcapLayersWithMeasurement() const
MonitorElement * TrackPhiErr
int numberOfValidStripTOBHits() const
MonitorElement * DistanceOfClosestApproachError
MonitorElement * algorithm
MonitorElement * NumberOfLayersPerTrackVsTheta
TrajectoryStateOnSurface innermostMeasurementState() const
static double XSEC_PIXEL_CLUSTER
unsigned int numberOfLayers(int subdet) const
int numberOfLostTrackerHits(HitCategory category) const
MonitorElement * NumberOfRecHitsPerTrackVsEta
Geom::Theta< T > theta() const
const math::XYZPoint & innerPosition() const
position of the innermost hit
TrackAlgorithm algo() const
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
MonitorElement * yPointOfClosestApproachToPV
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
MonitorElement * xPointOfClosestApproach
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * DistanceOfClosestApproach
MonitorElement * Chi2oNDF
MonitorElement * NumberOfRecHitsPerTrackVsPhi
static const unsigned int lastBunchCrossing
MonitorElement * ValidFractionPerTrack
bool doRecHitVsPtVsEtaPerTrack_
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
double eta() const
pseudorapidity of momentum vector
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
MonitorElement * TrackPtTight
int numberOfValidPixelBarrelHits() const
void setLumiFlag()
this ME is meant to be stored for each luminosity section
void setCurrentFolder(std::string const &fullpath)
static const std::string qualityNames[]
MonitorElement * TrackEtaPhi
void setBX(const edm::Event &)
double chi2() const
chi-squared of the fit
TrackAnalyzer(const edm::ParameterSet &)
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[5]
MonitorElement * bookProfile2D(Args &&...args)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * NumberOfLayersPerTrackVsEta
double ndof() const
number of degrees of freedom of the fit
MonitorElement * NumberOfMORecHitsPerTrackVsPt
int stripTIDLayersWithMeasurement() const
MonitorElement * NumberOfLayersPerTrackVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
double pt() const
track transverse momentum
MonitorElement * Chi2ProbVsEta
MonitorElement * TkEtaPhi_Ratio_byFoldingmap
MonitorElement * stoppingSourceVSeta
void bookHistosForLScertification(DQMStore::IBooker &ibooker)
MonitorElement * DistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
double phiError() const
error on phi
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
int numberOfAllHits(HitCategory category) const
MonitorElement * book1D(Args &&...args)
void fillHistosForTrackerSpecific(const reco::Track &track)
Abs< T >::type abs(const T &t)
edm::ParameterSet const * conf_
int numberOfValidStripTIDHits() const
MonitorElement * TrackEta
MonitorElement * NumberOfRecHitsPerTrackVsPt
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
const double EtaMin[kNumberCalorimeter]
unsigned short numberOfValidHits() const
number of valid hits found
int numberOfValidStripTECHits() const
static double CM2_TO_NANOBARN
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix, bool useInac)
MonitorElement * NumberOfLayersPerTrackVsPhi
MonitorElement * dNhitdPt_HighPurity
MonitorElement * sipDzToBS
MonitorElement * xPointOfClosestApproachVsZ0wrt000
MonitorElement * TkEtaPhi_Ratio_byFoldingmap_op
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
TrajectoryStateOnSurface outermostMeasurementState() const
std::array< T, N+1 > makeLogBins(const T min, const T max)
MonitorElement * DistanceOfClosestApproachVsPhi
MonitorElement * TESTDistanceOfClosestApproachToBS
void Reset()
reset ME (ie. contents, errors, etc)
void undoSoftReset(DQMStore *dqmStore_)
std::string monName[monQuantity::END]
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
float minPixelClusterCharge_
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * DeltaZToPVZoom
MonitorElement * DistanceOfClosestApproachErrorVsDxy
MonitorElement * TrackEtaPhiInverted
edm::EDGetTokenT< reco::VertexCollection > pvToken_
const AlgebraicSymMatrix66 & matrix() const
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachToBSVsEta
double pz() const
z coordinate of momentum vector
MonitorElement * NhitVsEta_HighPurity
MonitorElement * stoppingSourceVSphi
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
void setNumberOfGoodVertices(const edm::Event &)
double dzError() const
error on dz
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
MonitorElement * Chi2oNDFVsPt
MonitorElement * TkEtaPhi_RelativeDifference_byFoldingmap_op
MonitorElement * TrackPt_PosEta_Phi_btw_16_0
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
MonitorElement * dNdPhi_HighPurity
double vz() const
z coordinate of the reference point on track
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
TrackAlgorithm originalAlgo() const
TrajectoryStateOnSurface TSOS
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * TrackQoverP
bool doGeneralPropertiesPlots_
static TrackQuality qualityByName(const std::string &name)
double xError() const
error on x
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * book2D(Args &&...args)
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * TrackPErr
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * TrackPxErr
MonitorElement * TrackTheta
bool doRecHitVsPhiVsEtaPerTrack_
float lumi_factor_per_bx_
int pixelBarrelLayersWithMeasurement() const
MonitorElement * TrackPt_PosEta_Phi_btw_0_neg16
MonitorElement * TrackPt_PosEta_Phi_btw_neg16_neg32
MonitorElement * TrackPtErrVsEta
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachErrorVsPt
MonitorElement * NumberOfRecHitsPerTrackVsEta
bool doMeasurementStatePlots_
static double rXSEC_PIXEL_CLUSTER
int numberOfValidStripTIBHits() const
static const std::string algoNames[]
bool quality(const TrackQuality) const
Track quality.
unsigned int layer(const DetId &id) const
MonitorElement * Chi2oNDFVsPhi
int numberOfValidPixelEndcapHits() const
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
bool doEffFromHitPatternVsPU_
int trackerLayersWithoutMeasurement(HitCategory category) const
MonitorElement * xPointOfClosestApproachToPV
double vy() const
y coordinate of the reference point on track
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * dNdEta_HighPurity
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
MonitorElement * TrackPyErr
MonitorElement * TrackEtaHighPurity
int stripTECLayersWithMeasurement() const
MonitorElement * stoppingSource
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
MonitorElement * TrackEtaPhiOuter
std::vector< LumiScalers > LumiScalersCollection
MonitorElement * DistanceOfClosestApproachToPVZoom
int charge() const
track electric charge
const Point & position() const
position
TrajectoryStateOnSurface impactPointState() const
MonitorElement * DeltaZToPV
MonitorElement * Chi2oNDFVsTheta
MonitorElement * TrackPzErr
MonitorElement * zPointOfClosestApproachVsPhi
MonitorElement * Chi2oNDFVsEta
int getNbinsX() const
get # of bins in X-axis
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
std::string qualityString_
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * NumberOfLayersPerTrack
MonitorElement * TrackPt_NegEta_Phi_btw_0_neg16
MonitorElement * Chi2oNDFVsNHits
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
MonitorElement * zPointOfClosestApproach
MonitorElement * Chi2ProbVsPhi
MonitorElement * AbsDistanceOfClosestApproachToBS
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
MonitorElement * DistanceOfClosestApproachErrorVsPhi
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
int minNumberOfPixelsPerCluster_
MonitorElement * TrackPt_NegEta_Phi_btw_32_16
MonitorElement * DistanceOfClosestApproachVsEta
T const * product() const
MonitorElement * Chi2ProbVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
MonitorElement * sip3dToPV
MonitorElement * Chi2ProbVsEta
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * Ratio_byFolding
MonitorElement * Chi2Prob
MonitorElement * NumberOfRecHitsPerTrackVsPhi
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
MonitorElement * DistanceOfClosestApproachToBSdz
Power< A, B >::type pow(const A &a, const B &b)
double yError() const
error on y
MonitorElement * DistanceOfClosestApproachToPV
const_iterator begin(bool update=false) const
MonitorElement * TransDCASig
MonitorElement * TrackPtLoose
double py() const
y coordinate of momentum vector
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
MonitorElement * TrackEtaPhiInner
double vx() const
x coordinate of the reference point on track
bool doLayersVsPhiVsEtaPerTrack_
MonitorElement * TrackEtaTight
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
static double SECONDS_PER_LS
MonitorElement * Chi2oNDFVsEta
MonitorElement * NumberOfLayersPerTrack[4]