25 template <
typename T,
size_t N>
27 const double minLog10 = std::log10(min);
28 const double maxLog10 = std::log10(max);
29 const double width = (maxLog10 - minLog10) /
N;
30 std::array<T, N + 1>
ret;
33 for (
size_t i = 1;
i <=
N; ++
i) {
34 ret[
i] = ret[
i - 1] *
mult;
42 stateName_(iConfig.getParameter<
std::
string>(
"MeasurementState")),
43 doTrackerSpecific_(iConfig.getParameter<
bool>(
"doTrackerSpecific")),
44 doAllPlots_(iConfig.getParameter<
bool>(
"doAllPlots")),
45 doBSPlots_(iConfig.getParameter<
bool>(
"doBeamSpotPlots")),
46 doPVPlots_(iConfig.getParameter<
bool>(
"doPrimaryVertexPlots")),
47 doDCAPlots_(iConfig.getParameter<
bool>(
"doDCAPlots")),
48 doGeneralPropertiesPlots_(iConfig.getParameter<
bool>(
"doGeneralPropertiesPlots")),
49 doMeasurementStatePlots_(iConfig.getParameter<
bool>(
"doMeasurementStatePlots")),
50 doHitPropertiesPlots_(iConfig.getParameter<
bool>(
"doHitPropertiesPlots")),
51 doRecHitVsPhiVsEtaPerTrack_(iConfig.getParameter<
bool>(
"doRecHitVsPhiVsEtaPerTrack")),
52 doRecHitVsPtVsEtaPerTrack_(iConfig.getParameter<
bool>(
"doRecHitVsPtVsEtaPerTrack")),
53 doLayersVsPhiVsEtaPerTrack_(iConfig.getParameter<
bool>(
"doLayersVsPhiVsEtaPerTrack")),
54 doRecHitsPerTrackProfile_(iConfig.getParameter<
bool>(
"doRecHitsPerTrackProfile")),
55 doThetaPlots_(iConfig.getParameter<
bool>(
"doThetaPlots")),
56 doTrackPxPyPlots_(iConfig.getParameter<
bool>(
"doTrackPxPyPlots")),
57 doDCAwrtPVPlots_(iConfig.getParameter<
bool>(
"doDCAwrtPVPlots")),
58 doDCAwrt000Plots_(iConfig.getParameter<
bool>(
"doDCAwrt000Plots")),
59 doLumiAnalysis_(iConfig.getParameter<
bool>(
"doLumiAnalysis")),
60 doTestPlots_(iConfig.getParameter<
bool>(
"doTestPlots")),
61 doHIPlots_(iConfig.getParameter<
bool>(
"doHIPlots")),
62 doSIPPlots_(iConfig.getParameter<
bool>(
"doSIPPlots")),
63 doEffFromHitPatternVsPU_(iConfig.getParameter<
bool>(
"doEffFromHitPatternVsPU")),
64 doEffFromHitPatternVsBX_(iConfig.getParameter<
bool>(
"doEffFromHitPatternVsBX")),
65 doEffFromHitPatternVsLUMI_(iConfig.getParameter<
bool>(
"doEffFromHitPatternVsLUMI")),
66 pvNDOF_(iConfig.getParameter<
int>(
"pvNDOF")),
67 useBPixLayer1_(iConfig.getParameter<
bool>(
"useBPixLayer1")),
68 minNumberOfPixelsPerCluster_(iConfig.getParameter<
int>(
"minNumberOfPixelsPerCluster")),
69 minPixelClusterCharge_(iConfig.getParameter<double>(
"minPixelClusterCharge")),
70 qualityString_(iConfig.getParameter<
std::
string>(
"qualityString")),
239 std::string NAME[] = {
"",
"VsBX",
"VsLUMI",
"VsLUMI"};
249 for (
int i = 0;
i < monQuantity::END;
i++) {
254 mon += monQuantity::END;
267 const char* dets[] = {
"None",
"PXB",
"PXF",
"TIB",
"TID",
"TOB",
"TEC"};
273 const char* hit_category[] = {
"valid",
"missing",
"inactive",
"bad",
"total"};
277 for (
unsigned int det = 1; det <
sizeof(dets) /
sizeof(
char*); ++det) {
278 for (
unsigned int sub_det = 1; sub_det <= trackerGeometry->
numberOfLayers(det); ++sub_det) {
279 for (
unsigned int cat = 0;
cat <
sizeof(hit_category) /
sizeof(
char*); ++
cat) {
280 memset(title, 0,
sizeof(title));
281 snprintf(title,
sizeof(title),
"Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[
cat], dets[det], sub_det);
285 logQ ? ibooker.
book1D(title, title, nbins, &logBins[0])
286 : ibooker.
book1D(title, title, nbins, min, max)));
290 logQ ? ibooker.
book1D(title, title, nbins, &logBins[0])
291 : ibooker.
book1D(title, title, nbins, min, max)));
294 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " <<
cat <<
" ignored\n";
361 histname =
"NumberOfRecHitsPerTrack_";
367 histname =
"NumberOfValidRecHitsPerTrack_";
374 histname =
"NumberOfLostRecHitsPerTrack_";
380 histname =
"NumberOfMissingInnerRecHitsPerTrack_";
385 histname =
"NumberOfMissingOuterRecHitsPerTrack_";
390 histname =
"ValidFractionPerTrack_";
396 histname =
"NumberOfValidRecHitVsPhiVsEtaPerTrack_";
411 histname =
"NumberOfLostRecHitVsPhiVsEtaPerTrack_";
426 histname =
"NumberMIRecHitVsPhiVsEtaPerTrack_";
441 histname =
"NumberMORecHitVsPhiVsEtaPerTrack_";
456 histname =
"ValidFractionVsPhiVsEtaPerTrack_";
473 histname =
"NumberOfValidRecHitVsPtVsEtaPerTrack_";
475 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 40.,
"");
479 histname =
"NumberOfLostRecHitVsPtVsEtaPerTrack_";
481 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 5.,
"");
485 histname =
"NumberMIRecHitVsPtVsEtaPerTrack_";
487 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
491 histname =
"NumberMORecHitVsPtVsEtaPerTrack_";
493 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
498 histname =
"NumberOfValidRecHitsPerTrackVsPt_";
500 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
504 histname =
"NumberOfLostRecHitsPerTrackVsPt_";
506 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
510 histname =
"NumberMIRecHitsPerTrackVsPt_";
512 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
516 histname =
"NumberMORecHitsPerTrackVsPt_";
518 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
522 std::string layerTypeName[5] = {
"",
"Off",
"3D",
"Missing",
"Pixel"};
523 for (
int i = 0;
i < 4; ++
i) {
524 histname =
"NumberOf" + layerTypeName[
i] +
"LayersPerTrack_";
531 for (
int i = 0;
i < 5; ++
i) {
532 histname =
"NumberOf" + layerTypeName[
i] +
"LayersVsPhiVsEtaPerTrack_";
579 Chi2->setAxisTitle(
"Track #chi^{2}", 1);
580 Chi2->setAxisTitle(
"Number of Tracks", 2);
643 histname =
"xPointOfClosestApproach_";
648 histname =
"yPointOfClosestApproach_";
653 histname =
"zPointOfClosestApproach_";
658 histname =
"xPointOfClosestApproachToPV_";
664 histname =
"yPointOfClosestApproachToPV_";
670 histname =
"zPointOfClosestApproachToPV_";
705 histname + CategoryName,
histname + CategoryName, StopReasonNameSize, 0.,
double(StopReasonNameSize));
721 for (
size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
750 histname =
"NumberOfRecHitsPerTrack_lumiFlag_";
818 histname =
"DistanceOfClosestApproachError_";
824 histname =
"DistanceOfClosestApproachErrorVsPt_";
830 histname =
"DistanceOfClosestApproachErrorVsEta_";
836 histname =
"DistanceOfClosestApproachErrorVsPhi_";
842 histname =
"DistanceOfClosestApproachErrorVsDxy_";
848 histname =
"DistanceOfClosestApproachToBS_";
854 if (Folder ==
"Tr") {
855 histname =
"DistanceOfClosestApproachToBSdz_";
861 histname =
"DistanceOfClosestApproachToBSVsEta_";
863 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax,
"");
868 histname =
"AbsDistanceOfClosestApproachToBS_";
874 histname =
"DistanceOfClosestApproachToBSVsPhi_";
876 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
880 histname =
"xPointOfClosestApproachVsZ0wrt000_";
882 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
886 histname =
"yPointOfClosestApproachVsZ0wrt000_";
888 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
892 histname =
"xPointOfClosestApproachVsZ0wrtBS_";
894 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
898 histname =
"yPointOfClosestApproachVsZ0wrtBS_";
900 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
904 histname =
"zPointOfClosestApproachVsPhi_";
906 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf,
"");
934 histname =
"DistanceOfClosestApproachToPV_";
940 histname =
"DistanceOfClosestApproachToPVZoom_";
956 histname =
"DistanceOfClosestApproachToPVVsPhi_";
958 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
962 histname =
"xPointOfClosestApproachVsZ0wrtPV_";
964 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
968 histname =
"yPointOfClosestApproachVsZ0wrtPV_";
970 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
985 histname =
"TESTDistanceOfClosestApproachToBS_";
987 ibooker.
book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
991 histname =
"TESTDistanceOfClosestApproachToBSVsPhi_";
993 histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
1021 histname =
"DistanceOfClosestApproachVsTheta_";
1023 histname + CategoryName,
histname + CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin, DxyMax,
"");
1028 histname =
"DistanceOfClosestApproachVsEta_";
1030 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax,
"");
1035 histname =
"DistanceOfClosestApproach_";
1041 histname =
"DistanceOfClosestApproachVsPhi_";
1043 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyMin, DxyMax,
"");
1050 const double sipBins = 200;
1051 const double sipMin = -20;
1052 const double sipMax = 20;
1097 if (recoPrimaryVerticesHandle.
isValid())
1098 if (!recoPrimaryVerticesHandle->empty())
1099 for (
auto v : *recoPrimaryVerticesHandle)
1112 if (lumiScalers.
isValid() && !lumiScalers->empty()) {
1113 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1120 if (pixelClusters.
isValid()) {
1127 size_t numClusters = 0;
1131 for (; pixCluDet != pixelClusters->end(); ++pixCluDet) {
1132 DetId detid = pixCluDet->detId();
1133 size_t subdetid = detid.
subdetId();
1136 if (tTopo->
layer(detid) == 1)
1140 for (; pixClu != pixCluDet->
end(); ++pixClu) {
1153 auto pt = track.
pt();
1168 auto chi2prob = TMath::Prob(track.
chi2(), (
int)track.
ndof());
1209 for (
int i = 0;
i < 4; ++
i)
1214 for (
int i = 0; i < 5; ++
i)
1256 double stop = track.
stopReason() > max ? double(max - 1) :
static_cast<double>(track.
stopReason());
1281 if (Folder ==
"Tr") {
1307 if (recoPrimaryVerticesHandle.
isValid() && !recoPrimaryVerticesHandle->empty()) {
1315 double longDCAsig = 0, transDCAsig = 0;
1319 longDCAsig = track.
dz(pv.
position()) / zerr2;
1401 for (
int i = 0;
i < monQuantity::END;
i++) {
1406 mon += monQuantity::END;
1409 if (track.
pt() > 1.0 && track.
dxy() < 0.1 and monitoring > -9.) {
1420 bool inactive =
hp.inactiveHitFilter(
pattern);
1422 hit_type = valid ? 0 : (missing ? 1 : (inactive ? 2 : 3));
1425 LogDebug(
"TrackAnalyzer") <<
"Invalid combination of detector and subdetector: (" 1427 << mon <<
"): ignoring it.\n";
1443 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " << hit_type <<
" ignored\n";
1547 std::string histTag = (sname ==
"default") ? CategoryName : sname +
"_" + CategoryName;
1554 histname =
"Chi2oNDFVsTheta_" + histTag;
1560 histname =
"Chi2oNDFVsPhi_" + histTag;
1565 histname =
"Chi2ProbVsPhi_" + histTag;
1567 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1571 histname =
"Chi2ProbVsEta_" + histTag;
1573 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1581 histname =
"Chi2oNDFVsEta_" + histTag;
1586 histname =
"Chi2oNDFVsPt_" + histTag;
1592 histname =
"Chi2oNDFVsNHits_" + histTag;
1633 if (Folder ==
"Tr") {
1634 histname =
"TrackPtHighPurity_" + histTag;
1639 histname =
"TrackPtTight_" + histTag;
1644 histname =
"TrackPtLoose_" + histTag;
1654 for (
size_t ibin = 0; ibin < 3; ibin++) {
1658 histname =
"TrackPt_NegEta_Phi_btw_neg16_neg32_" + histTag;
1663 histname =
"TrackPt_NegEta_Phi_btw_0_neg16_" + histTag;
1668 histname =
"TrackPt_NegEta_Phi_btw_16_0_" + histTag;
1673 histname =
"TrackPt_NegEta_Phi_btw_32_16_" + histTag;
1678 histname =
"TrackPt_PosEta_Phi_btw_neg16_neg32_" + histTag;
1683 histname =
"TrackPt_PosEta_Phi_btw_0_neg16_" + histTag;
1688 histname =
"TrackPt_PosEta_Phi_btw_16_0_" + histTag;
1693 histname =
"TrackPt_PosEta_Phi_btw_32_16_" + histTag;
1698 histname =
"Ratio_byFolding_" + histTag;
1702 histname =
"Ratio_byFolding2_" + histTag;
1706 histname =
"TrackEtaHighpurity_" + histTag;
1711 histname =
"TrackEtaTight_" + histTag;
1716 histname =
"TrackEtaLoose_" + histTag;
1721 histname =
"TrackEtaPhiInverted_" + histTag;
1726 histname =
"TrackEtaPhiInvertedoutofphase_" + histTag;
1732 histname =
"TkEtaPhi_Ratio_byFoldingmap_" + histTag;
1738 histname =
"TkEtaPhi_Ratio_byFoldingmap_op_" + histTag;
1744 histname =
"TkEtaPhi_RelativeDifference_byFoldingmap_" + histTag;
1750 histname =
"TkEtaPhi_RelativeDifference_byFoldingmap_op_" + histTag;
1756 histname =
"TrackQoverP_" + histTag;
1762 histname =
"TrackEtaPhi_" + histTag;
1767 histname =
"TrackEtaPhiInner_" + histTag;
1772 histname =
"TrackEtaPhiOuter_" + histTag;
1778 histname =
"TrackTheta_" + histTag;
1788 histname =
"TrackPErrOverP_" + histTag;
1793 histname =
"TrackPtErrOverPt_" + histTag;
1798 histname =
"TrackPtErrOverPtVsEta_" + histTag;
1804 histname =
"TrackPxErrOverPx_" + histTag;
1809 histname =
"TrackPyErrOverPy_" + histTag;
1814 histname =
"TrackPzErrOverPz_" + histTag;
1819 histname =
"TrackPhiErr_" + histTag;
1824 histname =
"TrackEtaErr_" + histTag;
1831 histname =
"NumberOfRecHitsPerTrackVsPhi_" + histTag;
1838 histname =
"NumberOfRecHitsPerTrackVsTheta_" + histTag;
1844 histname =
"NumberOfRecHitsPerTrackVsEta_" + histTag;
1850 histname =
"NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1856 histname =
"NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1862 histname =
"NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1869 histname =
"NumberOfLayersPerTrackVsPhi_" + histTag;
1876 histname =
"NumberOfLayersPerTrackVsTheta_" + histTag;
1882 histname =
"NumberOfLayersPerTrackVsEta_" + histTag;
1889 histname =
"Chi2oNDFVsTheta_" + histTag;
1896 histname =
"Chi2oNDFVsPhi_" + histTag;
1901 histname =
"Chi2oNDFVsEta_" + histTag;
1906 histname =
"Chi2ProbVsPhi_" + histTag;
1908 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1912 histname =
"Chi2ProbVsEta_" + histTag;
1914 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1928 double pxerror, pyerror, pzerror, pterror, perror, phierror,
etaerror;
1937 if (sname ==
"default") {
1944 theta = track.
theta();
1948 pterror = (
pt) ? track.
ptError() / (pt *
pt) : 0.0;
1963 if (sname ==
"OuterSurface")
1965 else if (sname ==
"InnerSurface")
1967 else if (sname ==
"ImpactPoint")
1982 double partialPterror =
1993 std::map<std::string, TkParameterMEs>::iterator iPos =
TkParameterMEMap.find(sname);
2011 if (Folder ==
"Tr") {
2023 for (
int ii = 1;
ii <= nx;
ii++) {
2024 for (
int jj = 1;
jj <= ny;
jj++) {
2035 if (Sum1 == 0 || Sum2 == 0) {
2039 double ratio1 = Sub1 / Sum1;
2040 double ratio2 = Sub2 / Sum2;
2049 if (eta < 0. && phi < -1.6) {
2052 if (eta < 0. && phi < 0 && phi >= -1.6) {
2055 if (eta < 0. && phi < 1.6 && phi >= 0) {
2058 if (eta < 0. && phi >= 1.6) {
2061 if (eta >= 0. && phi < -1.6) {
2064 if (eta >= 0. && phi < 0 && phi >= -1.6) {
2067 if (eta >= 0. && phi < 1.6 && phi >= 0) {
2070 if (eta >= 0. && phi >= 1.6) {
2087 for (
int w = 1;
w < 8;
w++) {
2238 double chi2prob = TMath::Prob(track.
chi2(), (
int)track.
ndof());
2284 for (
auto det : subdetectors) {
2300 if (det ==
"PixBarrel")
2302 if (det ==
"PixEndcap")
2311 histname =
"NumberOfRecHitsPerTrack_" + det +
"_" + CategoryName;
2317 histname =
"NumberOfRecHitsPerTrackVsPhi_" + det +
"_" + CategoryName;
2324 histname =
"NumberOfRecHitsPerTrackVsEta_" + det +
"_" + CategoryName;
2331 histname =
"NumberOfRecHitsPerTrackVsPt_" + det +
"_" + CategoryName;
2338 histname =
"NumberOfLayersPerTrack_" + det +
"_" + CategoryName;
2344 histname =
"NumberOfLayersPerTrackVsPhi_" + det +
"_" + CategoryName;
2351 histname =
"NumberOfLayersPerTrackVsEta_" + det +
"_" + CategoryName;
2358 histname =
"NumberOfLayersPerTrackVsPt_" + det +
"_" + CategoryName;
2370 double phi = track.
phi();
2371 double eta = track.
eta();
2372 double pt = track.
pt();
2377 int nValidLayers = 0;
2378 int nValidRecHits = 0;
2379 int substr = it->second.detectorId;
2425 it->second.NumberOfRecHitsPerTrack->Fill(nValidRecHits);
2426 it->second.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2427 it->second.NumberOfRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2428 it->second.NumberOfRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2430 it->second.NumberOfLayersPerTrack->Fill(nValidLayers);
2431 it->second.NumberOfLayersPerTrackVsPhi->Fill(phi, nValidLayers);
2432 it->second.NumberOfLayersPerTrackVsEta->Fill(eta, nValidLayers);
2433 it->second.NumberOfLayersPerTrackVsPt->Fill(pt, nValidLayers);
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * stoppingSourceVSphi
MonitorElement * TrackEtaPhiInvertedoutofphase
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * Chi2ProbVsPhi
double p() const
momentum vector magnitude
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
MonitorElement * NumberOfLayersPerTrackVsPhi
int stripTOBLayersWithMeasurement() const
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
T getParameter(std::string const &) const
static constexpr auto TEC
MonitorElement * TrackEtaPhi
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * Chi2oNDFVsPt
const Point & referencePoint() const
Reference point on the track.
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
MonitorElement * TrackPErr
double d0Error() const
error on d0
MonitorElement * dNhitdPt_HighPurity
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
void fillHistosForTrackerSpecific(const reco::Track &track)
virtual TH2F * getTH2F() const
const_iterator end(bool update=false) const
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * DistanceOfClosestApproachError
void bookHistosForLScertification(DQMStore::IBooker &ibooker)
MonitorElement * DistanceOfClosestApproachToBSdz
MonitorElement * stoppingSourceVSeta
void fillHistosForEfficiencyFromHitPatter(const reco::Track &track, const std::string suffix, const float monitoring, bool useInac)
TrackCharge charge() const
double validFraction() const
fraction of valid hits on the track
MonitorElement * DeltaZToPVZoom
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
MonitorElement * NumberOfValidRecHitsPerTrack
MonitorElement * DistanceOfClosestApproachErrorVsPhi
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 * Ratio_byFolding
MonitorElement * TrackPtLoose
bool getByToken(EDGetToken token, Handle< PROD > &result) const
double zError() const
error on z
MonitorElement * Chi2oNDF_lumiFlag
double theta() const
polar angle
double dxyError() const
error on dxy
ret
prodAgent to be discontinued
void setCurrentFolder(std::string const &fullpath)
MonitorElement * xPointOfClosestApproachToPV
const CurvilinearTrajectoryError & curvilinearError() const
MonitorElement * TkEtaPhi_RelativeDifference_byFoldingmap
MonitorElement * TrackEta
MonitorElement * TrackPtErr
MonitorElement * sip3dToPV
Sin< T >::type sin(const T &t)
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * TrackPyErr
uint8_t stopReason() const
DxyErrBin
it might need to be adjust if CMS asks to have lumi levelling at lower values
Geom::Phi< T > phi() const
const CartesianTrajectoryError cartesianError() const
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[5]
Geom::Theta< T > theta() const
reco::TransientTrack build(const reco::Track *p) const
void setLumiFlag()
this ME is meant to be stored for each luminosity section
bool doGeneralPropertiesPlots_
double etaError() const
error on eta
MonitorElement * Chi2oNDFVsPhi
int bunchCrossing() const
MonitorElement * Chi2ProbVsPhi
MonitorElement * NumberOfMORecHitsPerTrackVsPt
MonitorElement * DistanceOfClosestApproachErrorVsPt
MonitorElement * DistanceOfClosestApproachVsPhi
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
bool doEffFromHitPatternVsBX_
MonitorElement * sipDzToBS
std::map< std::string, TkParameterMEs > TkParameterMEMap
MonitorElement * NumberOfLayersPerTrack[4]
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * NumberOfRecHitsPerTrackVsTheta
data_type const * const_iterator
MonitorElement * algorithm
double px() const
x coordinate of momentum vector
static const std::string StopReasonName[]
int pixelLayersWithMeasurement() const
bool doHitPropertiesPlots_
MonitorElement * DistanceOfClosestApproach
const math::XYZPoint & outerPosition() const
position of the outermost hit
bool doRecHitVsPhiVsEtaPerTrack_
MonitorElement * NumberOfLayersPerTrackVsTheta
MonitorElement * TkEtaPhi_Ratio_byFoldingmap
bool doRecHitVsPtVsEtaPerTrack_
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
int trackerLayersWithMeasurement() const
const Point & position() const
position
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
int pixelEndcapLayersWithMeasurement() const
MonitorElement * TrackPt_NegEta_Phi_btw_32_16
int numberOfValidStripTOBHits() const
bool doMeasurementStatePlots_
MonitorElement * DeltaZToPV
TrajectoryStateOnSurface innermostMeasurementState() const
MonitorElement * NumberOfRecHitsPerTrack
static double XSEC_PIXEL_CLUSTER
MonitorElement * Ptdist_HighPurity
unsigned int numberOfLayers(int subdet) const
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
MonitorElement * DistanceOfClosestApproachToBSVsEta
MonitorElement * TrackPtHighPurity
int numberOfLostTrackerHits(HitCategory category) const
Geom::Theta< T > theta() const
const math::XYZPoint & innerPosition() const
position of the innermost hit
TrackAlgorithm algo() const
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
virtual void Reset()
reset ME (ie. contents, errors, etc)
static const unsigned int lastBunchCrossing
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * Chi2oNDFVsEta
MonitorElement * TransDCASig
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * xPointOfClosestApproachVsZ0wrt000
double eta() const
pseudorapidity of momentum vector
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
std::string qualityString_
MonitorElement * TrackPt_NegEta_Phi_btw_16_0
int numberOfValidPixelBarrelHits() const
bool doEffFromHitPatternVsPU_
static const std::string qualityNames[]
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
virtual int getNbinsX() const
get # of bins in X-axis
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
MonitorElement * xPointOfClosestApproach
MonitorElement * Chi2oNDFVsTheta
double chi2() const
chi-squared of the fit
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * NumberOfLayersPerTrackVsPt
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
double ndof() const
number of degrees of freedom of the fit
int stripTIDLayersWithMeasurement() const
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * TrackPt_PosEta_Phi_btw_16_0
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * TrackEtaHighPurity
MonitorElement * NumberOfRecHitsPerTrackVsPt
double pt() const
track transverse momentum
MonitorElement * dNdPt_HighPurity
void setBX(const edm::Event &)
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, char const *option="s")
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
double phiError() const
error on phi
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
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 * dNdPhi_HighPurity
Abs< T >::type abs(const T &t)
int numberOfValidStripTIDHits() const
MonitorElement * yPointOfClosestApproachToPV
MonitorElement * NumberOfRecHitsPerTrackVsEta
unsigned short numberOfValidHits() const
number of valid hits found
int numberOfValidStripTECHits() const
static double CM2_TO_NANOBARN
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s")
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
MonitorElement * sip2dToPV
MonitorElement * Chi2oNDFVsTheta
static constexpr auto TOB
TrajectoryStateOnSurface outermostMeasurementState() const
MonitorElement * DistanceOfClosestApproachErrorVsDxy
MonitorElement * sipDzToPV
MonitorElement * sipDxyToBS
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 * NumberOfValidRecHitsPerTrackVsPt
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
MonitorElement * TrackEtaErr
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
MonitorElement * TrackPxErr
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * zPointOfClosestApproachVsPhi
const AlgebraicSymMatrix66 & matrix() const
double pz() const
z coordinate of momentum vector
MonitorElement * TrackPzErr
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...
MonitorElement * NumberOfLayersPerTrackVsEta
edm::ParameterSet const * conf_
double dzError() const
error on dz
MonitorElement * dNdEta_HighPurity
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
MonitorElement * TrackEtaPhiInverted
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * TrackPhiErr
double vz() const
z coordinate of the reference point on track
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
MonitorElement * stoppingSource
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
TrackAlgorithm originalAlgo() const
TrajectoryStateOnSurface TSOS
MonitorElement * TrackPt_PosEta_Phi_btw_32_16
static TrackQuality qualityByName(const std::string &name)
double xError() const
error on x
static constexpr auto TIB
MonitorElement * NumberOfLayersPerTrackVsEta
MonitorElement * DistanceOfClosestApproachErrorVsEta
MonitorElement * TkEtaPhi_RelativeDifference_byFoldingmap_op
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
MonitorElement * sipDxyToPV
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
bool doEffFromHitPatternVsLUMI_
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
std::array< T, N+1 > makeLogBins(const T &min, const T &max)
int minNumberOfPixelsPerCluster_
int pixelBarrelLayersWithMeasurement() const
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * TrackPt_NegEta_Phi_btw_neg16_neg32
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
static double rXSEC_PIXEL_CLUSTER
MonitorElement * Chi2ProbVsEta
int numberOfValidStripTIBHits() const
MonitorElement * TrackPhi
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
static const std::string algoNames[]
bool quality(const TrackQuality) const
Track quality.
unsigned int layer(const DetId &id) const
int numberOfValidPixelEndcapHits() const
MonitorElement * zPointOfClosestApproachToPV
MonitorElement * Ratio_byFolding2
int trackerLayersWithoutMeasurement(HitCategory category) const
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
MonitorElement * DistanceOfClosestApproachToPV
double vy() const
y coordinate of the reference point on track
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix, bool useInac)
MonitorElement * NumberOfLayersPerTrack
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
MonitorElement * DistanceOfClosestApproachToBSVsPhi
bool doLayersVsPhiVsEtaPerTrack_
TransDCABins
FOR HI PLOTS#####################.
MonitorElement * ValidFractionPerTrack
MonitorElement * NhitVsEta_HighPurity
int stripTECLayersWithMeasurement() const
MonitorElement * yPointOfClosestApproachVsZ0wrt000
unsigned int good_vertices_
MonitorElement * TrackPtErrVsEta
MonitorElement * TrackPt_NegEta_Phi_btw_0_neg16
MonitorElement * TESTDistanceOfClosestApproachToBS
std::vector< LumiScalers > LumiScalersCollection
MonitorElement * NumberOfRecHitsPerTrackVsEta
int charge() const
track electric charge
const Point & position() const
position
TrajectoryStateOnSurface impactPointState() const
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
MonitorElement * yPointOfClosestApproach
float minPixelClusterCharge_
MonitorElement * Chi2oNDFVsNHits
MonitorElement * Chi2Prob
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
MonitorElement * TrackEtaPhiOuter
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
void setNumberOfGoodVertices(const edm::Event &)
MonitorElement * AbsDistanceOfClosestApproachToBS
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 * TrackTheta
MonitorElement * zPointOfClosestApproach
MonitorElement * TrackPt_PosEta_Phi_btw_0_neg16
TrackAnalyzer(const edm::ParameterSet &)
float lumi_factor_per_bx_
MonitorElement * Chi2ProbVsEta
static constexpr auto TID
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
T const * product() const
MonitorElement * TrackEtaPhiInner
MonitorElement * TkEtaPhi_Ratio_byFoldingmap_op
MonitorElement * TrackQoverP
virtual TH1 * getTH1() const
MonitorElement * TrackEtaLoose
MonitorElement * DistanceOfClosestApproachToBS
std::string monName[monQuantity::END]
MonitorElement * Chi2oNDF
Power< A, B >::type pow(const A &a, const B &b)
double yError() const
error on y
const_iterator begin(bool update=false) const
MonitorElement * Chi2oNDFVsEta
MonitorElement * TrackPt_PosEta_Phi_btw_neg16_neg32
double py() const
y coordinate of momentum vector
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
double vx() const
x coordinate of the reference point on track
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
static double SECONDS_PER_LS
monitoring
[optional] : when omitted the verbosity level is set to STANDARD
MonitorElement * TrackPtTight
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * TrackEtaTight
MonitorElement * NumberOfLayersPerTrackVsPhi
MonitorElement * DistanceOfClosestApproachToPVZoom
MonitorElement * LongDCASig
edm::EDGetTokenT< reco::VertexCollection > pvToken_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * Chi2oNDFVsPhi