24 template <
typename T,
size_t N>
26 const double minLog10 = std::log10(min);
27 const double maxLog10 = std::log10(max);
28 const double width = (maxLog10 - minLog10) /
N;
29 std::array<T, N + 1>
ret;
32 for (
size_t i = 1;
i <=
N; ++
i) {
33 ret[
i] = ret[
i - 1] *
mult;
39 using namespace tadqm;
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 forceSCAL_(iConfig.getParameter<bool>(
"forceSCAL")),
68 useBPixLayer1_(iConfig.getParameter<bool>(
"useBPixLayer1")),
69 minNumberOfPixelsPerCluster_(iConfig.getParameter<int>(
"minNumberOfPixelsPerCluster")),
70 minPixelClusterCharge_(iConfig.getParameter<double>(
"minPixelClusterCharge")),
71 qualityString_(iConfig.getParameter<std::
string>(
"qualityString")),
242 constexpr
int LUMIBin = 300;
251 float MIN[] = {PVMin, 0.5, LUMIMin, LUMIMin};
253 std::string NAME[] = {
"",
"VsBX",
"VsLUMI",
"VsLUMI"};
255 auto logBins = makeLogBins<float, LUMIBin>(LUMIMin, LUMIMax);
263 for (
int i = 0;
i < monQuantity::END;
i++) {
268 mon += monQuantity::END;
280 const char* dets[] = {
"None",
"PXB",
"PXF",
"TIB",
"TID",
"TOB",
"TEC"};
286 const char* hit_category[] = {
"valid",
"missing",
"inactive",
"bad",
"total"};
290 for (
unsigned int det = 1; det <
sizeof(dets) /
sizeof(
char*); ++det) {
291 for (
unsigned int sub_det = 1; sub_det <= trackerGeometry.
numberOfLayers(det); ++sub_det) {
292 for (
unsigned int cat = 0;
cat <
sizeof(hit_category) /
sizeof(
char*); ++
cat) {
293 memset(title, 0,
sizeof(title));
294 snprintf(title,
sizeof(title),
"Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[
cat], dets[det], sub_det);
298 logQ ? ibooker.
book1D(title, title, nbins, &logBins[0])
299 : ibooker.
book1D(title, title, nbins, min, max)));
303 logQ ? ibooker.
book1D(title, title, nbins, &logBins[0])
304 : ibooker.
book1D(title, title, nbins, min, max)));
307 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " <<
cat <<
" ignored\n";
374 histname =
"NumberOfRecHitsPerTrack_";
380 histname =
"NumberOfValidRecHitsPerTrack_";
387 histname =
"NumberOfLostRecHitsPerTrack_";
393 histname =
"NumberOfMissingInnerRecHitsPerTrack_";
398 histname =
"NumberOfMissingOuterRecHitsPerTrack_";
403 histname =
"ValidFractionPerTrack_";
409 histname =
"NumberOfValidRecHitVsPhiVsEtaPerTrack_";
424 histname =
"NumberOfLostRecHitVsPhiVsEtaPerTrack_";
439 histname =
"NumberMIRecHitVsPhiVsEtaPerTrack_";
454 histname =
"NumberMORecHitVsPhiVsEtaPerTrack_";
469 histname =
"ValidFractionVsPhiVsEtaPerTrack_";
486 histname =
"NumberOfValidRecHitVsPtVsEtaPerTrack_";
488 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 40.,
"");
492 histname =
"NumberOfLostRecHitVsPtVsEtaPerTrack_";
494 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 5.,
"");
498 histname =
"NumberMIRecHitVsPtVsEtaPerTrack_";
500 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
504 histname =
"NumberMORecHitVsPtVsEtaPerTrack_";
506 histname + CategoryName,
histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
511 histname =
"NumberOfValidRecHitsPerTrackVsPt_";
513 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
517 histname =
"NumberOfLostRecHitsPerTrackVsPt_";
519 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
523 histname =
"NumberMIRecHitsPerTrackVsPt_";
525 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
529 histname =
"NumberMORecHitsPerTrackVsPt_";
531 histname + CategoryName,
histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,
"");
535 std::string layerTypeName[5] = {
"",
"Off",
"3D",
"Missing",
"Pixel"};
536 for (
int i = 0;
i < 4; ++
i) {
537 histname =
"NumberOf" + layerTypeName[
i] +
"LayersPerTrack_";
544 for (
int i = 0;
i < 5; ++
i) {
545 histname =
"NumberOf" + layerTypeName[
i] +
"LayersVsPhiVsEtaPerTrack_";
592 Chi2->setAxisTitle(
"Track #chi^{2}", 1);
593 Chi2->setAxisTitle(
"Number of Tracks", 2);
656 histname =
"xPointOfClosestApproach_";
661 histname =
"yPointOfClosestApproach_";
666 histname =
"zPointOfClosestApproach_";
671 histname =
"xPointOfClosestApproachToPV_";
677 histname =
"yPointOfClosestApproachToPV_";
683 histname =
"zPointOfClosestApproachToPV_";
718 histname + CategoryName,
histname + CategoryName, StopReasonNameSize, 0.,
double(StopReasonNameSize));
734 for (
size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
763 histname =
"NumberOfRecHitsPerTrack_lumiFlag_";
831 histname =
"DistanceOfClosestApproachError_";
837 histname =
"DistanceOfClosestApproachErrorVsPt_";
843 histname =
"DistanceOfClosestApproachErrorVsEta_";
849 histname =
"DistanceOfClosestApproachErrorVsPhi_";
855 histname =
"DistanceOfClosestApproachErrorVsDxy_";
861 histname =
"DistanceOfClosestApproachToBS_";
867 if (Folder ==
"Tr") {
868 histname =
"DistanceOfClosestApproachToBSdz_";
874 histname =
"DistanceOfClosestApproachToBSVsEta_";
876 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax,
"");
881 histname =
"AbsDistanceOfClosestApproachToBS_";
887 histname =
"DistanceOfClosestApproachToBSVsPhi_";
889 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
893 histname =
"xPointOfClosestApproachVsZ0wrt000_";
895 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
899 histname =
"yPointOfClosestApproachVsZ0wrt000_";
901 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
905 histname =
"xPointOfClosestApproachVsZ0wrtBS_";
907 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
911 histname =
"yPointOfClosestApproachVsZ0wrtBS_";
913 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
917 histname =
"zPointOfClosestApproachVsPhi_";
919 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf,
"");
947 histname =
"DistanceOfClosestApproachToPV_";
953 histname =
"DistanceOfClosestApproachToPVZoom_";
969 histname =
"DistanceOfClosestApproachToPVVsPhi_";
971 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
975 histname =
"xPointOfClosestApproachVsZ0wrtPV_";
977 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,
"");
981 histname =
"yPointOfClosestApproachVsZ0wrtPV_";
983 histname + CategoryName,
histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,
"");
998 histname =
"TESTDistanceOfClosestApproachToBS_";
1000 ibooker.
book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
1004 histname =
"TESTDistanceOfClosestApproachToBSVsPhi_";
1006 histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,
"");
1034 histname =
"DistanceOfClosestApproachVsTheta_";
1036 histname + CategoryName,
histname + CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin, DxyMax,
"");
1041 histname =
"DistanceOfClosestApproachVsEta_";
1043 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax,
"");
1048 histname =
"DistanceOfClosestApproach_";
1054 histname =
"DistanceOfClosestApproachVsPhi_";
1056 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyMin, DxyMax,
"");
1063 const double sipBins = 200;
1064 const double sipMin = -20;
1065 const double sipMax = 20;
1109 if (recoPrimaryVerticesHandle.
isValid())
1110 if (!recoPrimaryVerticesHandle->empty())
1111 for (
const auto&
v : *recoPrimaryVerticesHandle)
1123 if (lumiScalers.
isValid() && !lumiScalers->empty()) {
1124 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1137 if (pixelClusters.
isValid()) {
1142 size_t numClusters = 0;
1146 for (; pixCluDet != pixelClusters->end(); ++pixCluDet) {
1147 DetId detid = pixCluDet->detId();
1148 size_t subdetid = detid.
subdetId();
1151 if (tTopo.
layer(detid) == 1)
1155 for (; pixClu != pixCluDet->
end(); ++pixClu) {
1168 auto pt = track.
pt();
1169 auto phi = track.
phi();
1183 auto chi2prob = TMath::Prob(track.
chi2(), (int)track.
ndof());
1224 for (
int i = 0;
i < 4; ++
i)
1229 for (
int i = 0; i < 5; ++
i)
1271 double stop = track.
stopReason() > max ? double(max - 1) :
static_cast<double>(track.
stopReason());
1295 if (Folder ==
"Tr") {
1320 if (recoPrimaryVerticesHandle.
isValid() && !recoPrimaryVerticesHandle->empty()) {
1328 double longDCAsig = 0, transDCAsig = 0;
1332 longDCAsig = track.
dz(pv.
position()) / zerr2;
1409 const float monitoring,
1412 for (
int i = 0;
i < monQuantity::END;
i++) {
1417 mon += monQuantity::END;
1420 if (track.
pt() > 1.0 && track.
dxy() < 0.1 and monitoring > -9.) {
1429 bool valid = hp.validHitFilter(pattern);
1430 bool missing = hp.missingHitFilter(pattern);
1431 bool inactive = hp.inactiveHitFilter(pattern);
1433 hit_type = valid ? 0 : (missing ? 1 : (inactive ? 2 : 3));
1434 if (
hits_valid_.find(
Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern),
mon)) ==
1436 LogDebug(
"TrackAnalyzer") <<
"Invalid combination of detector and subdetector: ("
1437 << hp.getSubStructure(pattern) <<
", " << hp.getSubSubStructure(pattern) <<
", "
1438 << mon <<
"): ignoring it.\n";
1443 hits_valid_[
Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern),
mon)]->
Fill(monitoring);
1444 hits_total_[
Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern),
mon)]->
Fill(monitoring);
1451 hits_total_[
Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern),
mon)]->
Fill(monitoring);
1454 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " << hit_type <<
" ignored\n";
1558 std::string histTag = (sname ==
"default") ? CategoryName : sname +
"_" + CategoryName;
1565 histname =
"Chi2oNDFVsTheta_" + histTag;
1571 histname =
"Chi2oNDFVsPhi_" + histTag;
1576 histname =
"Chi2ProbVsPhi_" + histTag;
1578 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1582 histname =
"Chi2ProbVsEta_" + histTag;
1584 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1592 histname =
"Chi2oNDFVsEta_" + histTag;
1597 histname =
"Chi2oNDFVsPt_" + histTag;
1603 histname =
"Chi2oNDFVsNHits_" + histTag;
1644 if (Folder ==
"Tr") {
1645 histname =
"TrackPtHighPurity_" + histTag;
1650 histname =
"TrackPtTight_" + histTag;
1655 histname =
"TrackPtLoose_" + histTag;
1665 for (
size_t ibin = 0; ibin < 3; ibin++) {
1669 histname =
"TrackPt_NegEta_Phi_btw_neg16_neg32_" + histTag;
1674 histname =
"TrackPt_NegEta_Phi_btw_0_neg16_" + histTag;
1679 histname =
"TrackPt_NegEta_Phi_btw_16_0_" + histTag;
1684 histname =
"TrackPt_NegEta_Phi_btw_32_16_" + histTag;
1689 histname =
"TrackPt_PosEta_Phi_btw_neg16_neg32_" + histTag;
1694 histname =
"TrackPt_PosEta_Phi_btw_0_neg16_" + histTag;
1699 histname =
"TrackPt_PosEta_Phi_btw_16_0_" + histTag;
1704 histname =
"TrackPt_PosEta_Phi_btw_32_16_" + histTag;
1709 histname =
"Ratio_byFolding_" + histTag;
1713 histname =
"Ratio_byFolding2_" + histTag;
1717 histname =
"TrackEtaHighpurity_" + histTag;
1722 histname =
"TrackEtaTight_" + histTag;
1727 histname =
"TrackEtaLoose_" + histTag;
1732 histname =
"TrackEtaPhiInverted_" + histTag;
1737 histname =
"TrackEtaPhiInvertedoutofphase_" + histTag;
1743 histname =
"TrackQoverP_" + histTag;
1749 histname =
"TrackEtaPhi_" + histTag;
1754 histname =
"TrackEtaPhiInner_" + histTag;
1759 histname =
"TrackEtaPhiOuter_" + histTag;
1765 histname =
"TrackTheta_" + histTag;
1775 histname =
"TrackPErrOverP_" + histTag;
1780 histname =
"TrackPtErrOverPt_" + histTag;
1785 histname =
"TrackPtErrOverPtVsEta_" + histTag;
1791 histname =
"TrackPxErrOverPx_" + histTag;
1796 histname =
"TrackPyErrOverPy_" + histTag;
1801 histname =
"TrackPzErrOverPz_" + histTag;
1806 histname =
"TrackPhiErr_" + histTag;
1811 histname =
"TrackEtaErr_" + histTag;
1818 histname =
"NumberOfRecHitsPerTrackVsPhi_" + histTag;
1825 histname =
"NumberOfRecHitsPerTrackVsTheta_" + histTag;
1831 histname =
"NumberOfRecHitsPerTrackVsEta_" + histTag;
1837 histname =
"NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1843 histname =
"NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1849 histname =
"NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1856 histname =
"NumberOfLayersPerTrackVsPhi_" + histTag;
1863 histname =
"NumberOfLayersPerTrackVsTheta_" + histTag;
1869 histname =
"NumberOfLayersPerTrackVsEta_" + histTag;
1876 histname =
"Chi2oNDFVsTheta_" + histTag;
1883 histname =
"Chi2oNDFVsPhi_" + histTag;
1888 histname =
"Chi2oNDFVsEta_" + histTag;
1893 histname =
"Chi2ProbVsPhi_" + histTag;
1895 histname + CategoryName,
histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1899 histname =
"Chi2ProbVsEta_" + histTag;
1901 histname + CategoryName,
histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1915 double pxerror, pyerror, pzerror, pterror, perror, phierror,
etaerror;
1924 if (sname ==
"default") {
1931 theta = track.
theta();
1935 pterror = (
pt) ? track.
ptError() / (pt *
pt) : 0.0;
1949 if (sname ==
"OuterSurface")
1951 else if (sname ==
"InnerSurface")
1953 else if (sname ==
"ImpactPoint")
1968 double partialPterror =
1979 std::map<std::string, TkParameterMEs>::iterator iPos =
TkParameterMEMap.find(sname);
1997 if (Folder ==
"Tr") {
2003 if (eta < 0. && phi < -1.6) {
2006 if (eta < 0. && phi < 0 && phi >= -1.6) {
2009 if (eta < 0. && phi < 1.6 && phi >= 0) {
2012 if (eta < 0. && phi >= 1.6) {
2015 if (eta >= 0. && phi < -1.6) {
2018 if (eta >= 0. && phi < 0 && phi >= -1.6) {
2021 if (eta >= 0. && phi < 1.6 && phi >= 0) {
2024 if (eta >= 0. && phi >= 1.6) {
2041 for (
int w = 1;
w < 8;
w++) {
2168 double chi2prob = TMath::Prob(track.
chi2(), (int)track.
ndof());
2211 std::vector<std::string> subdetectors =
conf_->
getParameter<std::vector<std::string> >(
"subdetectors");
2214 for (
const auto& det : subdetectors) {
2230 if (det ==
"PixBarrel")
2232 if (det ==
"PixEndcap")
2241 histname =
"NumberOfRecHitsPerTrack_" + det +
"_" + CategoryName;
2247 histname =
"NumberOfRecHitsPerTrackVsPhi_" + det +
"_" + CategoryName;
2254 histname =
"NumberOfRecHitsPerTrackVsEta_" + det +
"_" + CategoryName;
2261 histname =
"NumberOfRecHitsPerTrackVsPt_" + det +
"_" + CategoryName;
2268 histname =
"NumberOfLayersPerTrack_" + det +
"_" + CategoryName;
2274 histname =
"NumberOfLayersPerTrackVsPhi_" + det +
"_" + CategoryName;
2281 histname =
"NumberOfLayersPerTrackVsEta_" + det +
"_" + CategoryName;
2288 histname =
"NumberOfLayersPerTrackVsPt_" + det +
"_" + CategoryName;
2300 double phi = track.
phi();
2301 double eta = track.
eta();
2302 double pt = track.
pt();
2307 int nValidLayers = 0;
2308 int nValidRecHits = 0;
2309 int substr = it->second.detectorId;
2355 it->second.NumberOfRecHitsPerTrack->Fill(nValidRecHits);
2356 it->second.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2357 it->second.NumberOfRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2358 it->second.NumberOfRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2360 it->second.NumberOfLayersPerTrack->Fill(nValidLayers);
2361 it->second.NumberOfLayersPerTrackVsPhi->Fill(phi, nValidLayers);
2362 it->second.NumberOfLayersPerTrackVsEta->Fill(eta, nValidLayers);
2363 it->second.NumberOfLayersPerTrackVsPt->Fill(pt, nValidLayers);
MonitorElement * dNdPhi_HighPurity
double p() const
momentum vector magnitude
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
int stripTOBLayersWithMeasurement() const
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
static constexpr auto TEC
const Point & referencePoint() const
Reference point on the track.
tuple ret
prodAgent to be discontinued
double d0Error() const
error on d0
MonitorElement * TrackPtTight
const_iterator end(bool update=false) const
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", FUNC onbooking=NOOP())
std::string monName[monQuantity::END]
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * NumberOfLayersPerTrack[4]
MonitorElement * TrackQoverP
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
virtual double integral() const
get integral of bins
TrackCharge charge() const
double validFraction() const
fraction of valid hits on the track
MonitorElement * TrackEtaHighPurity
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
MonitorElement * LongDCASig
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * algorithm
MonitorElement * TrackPt_NegEta_Phi_btw_32_16
MonitorElement * sipDxyToPV
MonitorElement * TrackEtaPhiInverted
virtual void setCurrentFolder(std::string const &fullpath)
int stripTIBLayersWithMeasurement() const
bool doEffFromHitPatternVsLUMI_
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
MonitorElement * TrackPyErr
MonitorElement * TrackPErr
static const char category[]
MonitorElement * Chi2ProbVsEta
MonitorElement * DistanceOfClosestApproach
MonitorElement * Ratio_byFolding
double zError() const
error on z
MonitorElement * Chi2oNDFVsTheta
std::string qualityString_
double theta() const
polar angle
double dxyError() const
error on dxy
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
MonitorElement * TrackPzErr
bool doEffFromHitPatternVsPU_
MonitorElement * stoppingSource
const CurvilinearTrajectoryError & curvilinearError() const
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
MonitorElement * NumberOfLayersPerTrack
Sin< T >::type sin(const T &t)
MonitorElement * TrackPtErr
MonitorElement * TrackEtaPhiInner
uint8_t stopReason() const
MonitorElement * TrackEta
Geom::Phi< T > phi() const
Class to contain the online luminosity from soft FED 1022.
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
const CartesianTrajectoryError cartesianError() const
Geom::Theta< T > theta() const
bool doRecHitVsPhiVsEtaPerTrack_
reco::TransientTrack build(const reco::Track *p) const
double etaError() const
error on eta
int bunchCrossing() const
MonitorElement * TrackPtLoose
void setBX(const edm::Event &)
MonitorElement * DistanceOfClosestApproachToBSdz
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
std::vector< Vertex > VertexCollection
collection of Vertex objects
MonitorElement * DistanceOfClosestApproachError
MonitorElement * Chi2oNDFVsPhi
MonitorElement * NumberOfLayersPerTrackVsPhi
int minNumberOfPixelsPerCluster_
MonitorElement * DeltaZToPVZoom
data_type const * const_iterator
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
double px() const
x coordinate of momentum vector
static const std::string StopReasonName[]
MonitorElement * sip2dToPV
MonitorElement * TrackEtaTight
int pixelLayersWithMeasurement() const
MonitorElement * Chi2oNDF
TrackAnalyzer(const edm::ParameterSet &)
MonitorElement * TrackPxErr
MonitorElement * DeltaZToPV
const math::XYZPoint & outerPosition() const
position of the outermost hit
MonitorElement * NumberOfLostRecHitsPerTrack
float lumi_factor_per_bx_
bool doHitPropertiesPlots_
MonitorElement * yPointOfClosestApproach
int trackerLayersWithMeasurement() const
const Point & position() const
position
MonitorElement * sipDxyToBS
int pixelEndcapLayersWithMeasurement() const
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
MonitorElement * xPointOfClosestApproach
static constexpr double FREQ_ORBIT
MonitorElement * DistanceOfClosestApproachErrorVsEta
int numberOfValidStripTOBHits() const
edm::EDGetTokenT< OnlineLuminosityRecord > metaDataToken_
MonitorElement * TrackEtaPhi
MonitorElement * TrackPt_NegEta_Phi_btw_16_0
TrajectoryStateOnSurface innermostMeasurementState() const
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
unsigned int numberOfLayers(int subdet) const
MonitorElement * NumberOfLayersPerTrackVsEta
MonitorElement * TransDCASig
int numberOfLostTrackerHits(HitCategory category) const
MonitorElement * TrackPhiErr
Geom::Theta< T > theta() const
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix, bool useInac)
MonitorElement * DistanceOfClosestApproachVsPhi
const math::XYZPoint & innerPosition() const
position of the innermost hit
TrackAlgorithm algo() const
MonitorElement * Chi2oNDFVsTheta
bool getData(T &iHolder) const
MonitorElement * TrackTheta
MonitorElement * TrackPhi
static const unsigned int lastBunchCrossing
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachToPVVsPhi
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
MonitorElement * stoppingSourceVSeta
MonitorElement * dNdPt_HighPurity
double eta() const
pseudorapidity of momentum vector
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
MonitorElement * Chi2oNDF_lumiFlag
int numberOfValidPixelBarrelHits() const
MonitorElement * stoppingSourceVSphi
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
static constexpr double SECONDS_PER_LS
static const std::string qualityNames[]
MonitorElement * NumberOfLayersPerTrackVsTheta
virtual int getNbinsX() const
get # of bins in X-axis
double chi2() const
chi-squared of the fit
MonitorElement * DistanceOfClosestApproachErrorVsPt
MonitorElement * sip3dToPV
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
MonitorElement * xPointOfClosestApproachToPV
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())
MonitorElement * NumberOfMORecHitsPerTrack
bool doGeneralPropertiesPlots_
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 * Chi2Prob
MonitorElement * dNhitdPt_HighPurity
unsigned int good_vertices_
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
double pt() const
track transverse momentum
MonitorElement * NumberOfRecHitsPerTrackVsPt
MonitorElement * Chi2ProbVsEta
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
MonitorElement * TrackPt_PosEta_Phi_btw_16_0
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 * NumberOfLayersPerTrackVsPhi
void fillHistosForTrackerSpecific(const reco::Track &track)
bool doRecHitVsPtVsEtaPerTrack_
Abs< T >::type abs(const T &t)
int numberOfValidStripTIDHits() const
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
bool doMeasurementStatePlots_
MonitorElement * zPointOfClosestApproachToPV
const double EtaMin[kNumberCalorimeter]
unsigned short numberOfValidHits() const
number of valid hits found
int numberOfValidStripTECHits() const
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * NhitVsEta_HighPurity
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * TrackPtHighPurity
static constexpr auto TOB
TrajectoryStateOnSurface outermostMeasurementState() const
MonitorElement * Chi2ProbVsPhi
MonitorElement * TrackEtaErr
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)
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
std::map< std::string, TkParameterMEs > TkParameterMEMap
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[5]
const AlgebraicSymMatrix66 & matrix() const
double pz() const
z coordinate of momentum vector
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
MonitorElement * zPointOfClosestApproach
edm::ParameterSet const * conf_
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...
double dzError() const
error on dz
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
MonitorElement * sipDzToPV
MonitorElement * sipDzToBS
float minPixelClusterCharge_
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
double vz() const
z coordinate of the reference point on track
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
TrackAlgorithm originalAlgo() const
TrajectoryStateOnSurface TSOS
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
MonitorElement * DistanceOfClosestApproachErrorVsPhi
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
static TrackQuality qualityByName(const std::string &name)
double xError() const
error on x
static constexpr auto TIB
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * TrackPtErrVsEta
MonitorElement * NumberOfLayersPerTrackVsEta
void setNumberOfGoodVertices(const edm::Event &)
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * DistanceOfClosestApproachToBS
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
MonitorElement * NhitVsPhi_HighPurity
std::array< T, N+1 > makeLogBins(const T &min, const T &max)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
int pixelBarrelLayersWithMeasurement() const
T getParameter(std::string const &) const
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
edm::EDGetTokenT< reco::VertexCollection > pvToken_
MonitorElement * Ptdist_HighPurity
int numberOfValidStripTIBHits() const
static const std::string algoNames[]
bool quality(const TrackQuality) const
Track quality.
MonitorElement * DistanceOfClosestApproachToPVZoom
unsigned int layer(const DetId &id) const
int numberOfValidPixelEndcapHits() const
MonitorElement * DistanceOfClosestApproachToBSVsEta
MonitorElement * DistanceOfClosestApproachErrorVsDxy
int trackerLayersWithoutMeasurement(HitCategory category) const
MonitorElement * NumberOfValidRecHitsPerTrack
double vy() const
y coordinate of the reference point on track
static constexpr double rXSEC_PIXEL_CLUSTER
void fillHistosForEfficiencyFromHitPatter(const reco::Track &track, const std::string suffix, const float monitoring, bool useInac)
const AlgebraicSymMatrix55 & matrix() const
MonitorElement * AbsDistanceOfClosestApproachToBS
GlobalVector globalMomentum() const
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachToPV
MonitorElement * NumberOfRecHitsPerTrack
static constexpr double CM2_TO_NANOBARN
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * TrackPt_NegEta_Phi_btw_neg16_neg32
int stripTECLayersWithMeasurement() const
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
MonitorElement * Chi2ProbVsPhi
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
MonitorElement * Chi2oNDFVsEta
std::vector< LumiScalers > LumiScalersCollection
bool doLayersVsPhiVsEtaPerTrack_
int charge() const
track electric charge
const Point & position() const
position
TrajectoryStateOnSurface impactPointState() const
bool doEffFromHitPatternVsBX_
MonitorElement * NumberOfLayersPerTrackVsPt
MonitorElement * TrackEtaLoose
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * Chi2oNDFVsPhi
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * NumberOfMORecHitsPerTrackVsPt
MonitorElement * dNdEta_HighPurity
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
uint16_t getHitPattern(HitCategory category, int position) const
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * xPointOfClosestApproachVsZ0wrt000
MonitorElement * Ratio_byFolding2
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
MonitorElement * TrackPt_PosEta_Phi_btw_neg16_neg32
MonitorElement * TrackEtaPhiInvertedoutofphase
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 * NumberOfMIRecHitsPerTrack
static constexpr double XSEC_PIXEL_CLUSTER
MonitorElement * TrackEtaPhiOuter
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * zPointOfClosestApproachVsPhi
MonitorElement * TrackPt_NegEta_Phi_btw_0_neg16
static constexpr auto TID
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * Chi2oNDFVsNHits
MonitorElement * Chi2oNDFVsEta
Power< A, B >::type pow(const A &a, const B &b)
double yError() const
error on y
MonitorElement * NumberOfRecHitsPerTrackVsTheta
const_iterator begin(bool update=false) const
virtual void divide(const MonitorElement *, const MonitorElement *, double, double, const char *)
Replace entries with results of dividing num by denom.
double py() const
y coordinate of momentum vector
double vx() const
x coordinate of the reference point on track
MonitorElement * DistanceOfClosestApproachToBSVsPhi
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * Chi2oNDFVsPt
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * ValidFractionPerTrack
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
void bookHistosForLScertification(DQMStore::IBooker &ibooker)
MonitorElement * TrackPt_PosEta_Phi_btw_0_neg16
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * TrackPt_PosEta_Phi_btw_32_16