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"))
247 float MIN[] = { PVMin, 0.5, LUMIMin, LUMIMin };
249 std::string NAME[] = {
"",
"VsBX",
"VsLUMI",
"VsLUMI" };
251 auto logBins = makeLogBins<float,LUMIBin>(LUMIMin,LUMIMax);
259 for (
int i=0;
i<monQuantity::END;
i++) {
263 if (useInac) mon+=monQuantity::END;
276 const char * dets[] = {
"None",
"PXB",
"PXF",
"TIB",
"TID",
"TOB",
"TEC"};
282 const char * hit_category[] = {
"valid",
"missing",
"inactive",
"bad",
"total"};
286 for (
unsigned int det = 1; det <
sizeof(dets)/
sizeof(
char*); ++det ) {
287 for (
unsigned int sub_det = 1;
289 for (
unsigned int cat = 0;
290 cat <
sizeof(hit_category)/
sizeof(
char *); ++
cat) {
291 memset(title, 0,
sizeof(title));
292 snprintf(title,
sizeof(title),
"Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[
cat], dets[det], sub_det);
296 Key(det, sub_det, mon), logQ?
297 ibooker.
book1D(title, title, nbins, &logBins[0]) :
298 ibooker.
book1D(title, title, nbins, min, max)));
302 Key(det, sub_det, mon), logQ?
303 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";
323 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
376 histname =
"NumberOfRecHitsPerTrack_";
381 histname =
"NumberOfValidRecHitsPerTrack_";
387 histname =
"NumberOfLostRecHitsPerTrack_";
392 histname =
"NumberOfMissingInnerRecHitsPerTrack_";
397 histname =
"NumberOfMissingOuterRecHitsPerTrack_";
402 histname =
"ValidFractionPerTrack_";
411 histname =
"NumberOfValidRecHitVsPhiVsEtaPerTrack_";
413 Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax, 0, 40.,
"");
417 histname =
"NumberOfLostRecHitVsPhiVsEtaPerTrack_";
419 Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax, 0, 5.,
"");
424 histname =
"NumberMIRecHitVsPhiVsEtaPerTrack_";
426 Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax, 0, 15.,
"");
430 histname =
"NumberMORecHitVsPhiVsEtaPerTrack_";
432 Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax, 0, 15.,
"");
436 histname =
"ValidFractionVsPhiVsEtaPerTrack_";
438 Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax, 0, 2.,
"");
446 histname =
"NumberOfValidRecHitVsPtVsEtaPerTrack_";
448 Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 40.,
"");
452 histname =
"NumberOfLostRecHitVsPtVsEtaPerTrack_";
454 Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 5.,
"");
459 histname =
"NumberMIRecHitVsPtVsEtaPerTrack_";
461 Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
465 histname =
"NumberMORecHitVsPtVsEtaPerTrack_";
467 Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15.,
"");
473 histname =
"NumberOfValidRecHitsPerTrackVsPt_";
478 histname =
"NumberOfLostRecHitsPerTrackVsPt_";
484 histname =
"NumberMIRecHitsPerTrackVsPt_";
489 histname =
"NumberMORecHitsPerTrackVsPt_";
494 std::string layerTypeName[5] = {
"",
"Off",
"3D",
"Missing",
"Pixel"};
495 for (
int i=0;
i<4; ++
i) {
496 histname =
"NumberOf"+ layerTypeName[
i] +
"LayersPerTrack_";
502 for (
int i=0;
i<5; ++
i) {
503 histname =
"NumberOf"+ layerTypeName[
i] +
"LayersVsPhiVsEtaPerTrack_";
505 Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax, 0, 40.,
"");
544 Chi2->setAxisTitle(
"Track #chi^{2}" ,1);
545 Chi2->setAxisTitle(
"Number of Tracks",2);
608 histname =
"xPointOfClosestApproach_";
613 histname =
"yPointOfClosestApproach_";
618 histname =
"zPointOfClosestApproach_";
623 histname =
"xPointOfClosestApproachToPV_";
628 histname =
"yPointOfClosestApproachToPV_";
633 histname =
"zPointOfClosestApproachToPV_";
664 EtaBin, EtaMin, EtaMax, 2, 0., 2.);
670 PhiBin, PhiMin, PhiMax, 2, 0., 2.);
674 for (
size_t ibin=0; ibin<StopReasonNameSize; ibin++) {
689 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
708 histname =
"NumberOfRecHitsPerTrack_lumiFlag_";
728 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
777 histname =
"DistanceOfClosestApproachError_";
782 histname =
"DistanceOfClosestApproachErrorVsPt_";
787 histname =
"DistanceOfClosestApproachErrorVsEta_";
792 histname =
"DistanceOfClosestApproachErrorVsPhi_";
797 histname =
"DistanceOfClosestApproachErrorVsDxy_";
802 histname =
"DistanceOfClosestApproachToBS_";
807 histname =
"AbsDistanceOfClosestApproachToBS_";
812 histname =
"DistanceOfClosestApproachToBSVsPhi_";
818 histname =
"xPointOfClosestApproachVsZ0wrt000_";
823 histname =
"yPointOfClosestApproachVsZ0wrt000_";
828 histname =
"xPointOfClosestApproachVsZ0wrtBS_";
833 histname =
"yPointOfClosestApproachVsZ0wrtBS_";
838 histname =
"zPointOfClosestApproachVsPhi_";
868 histname =
"DistanceOfClosestApproachToPV_";
873 histname =
"DistanceOfClosestApproachToPVZoom_";
890 histname =
"DistanceOfClosestApproachToPVVsPhi_";
896 histname =
"xPointOfClosestApproachVsZ0wrtPV_";
901 histname =
"yPointOfClosestApproachVsZ0wrtPV_";
919 histname =
"TESTDistanceOfClosestApproachToBS_";
924 histname =
"TESTDistanceOfClosestApproachToBSVsPhi_";
958 histname =
"DistanceOfClosestApproachVsTheta_";
964 histname =
"DistanceOfClosestApproachVsEta_";
970 histname =
"DistanceOfClosestApproach_";
975 histname =
"DistanceOfClosestApproachVsPhi_";
985 const double sipBins = 200;
986 const double sipMin = -20;
987 const double sipMax = 20;
1033 if (recoPrimaryVerticesHandle.
isValid())
1034 if (!recoPrimaryVerticesHandle->empty())
1035 for (
auto v : *recoPrimaryVerticesHandle)
1050 if ( lumiScalers.
isValid() && !lumiScalers->empty() ) {
1051 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1058 if ( pixelClusters.
isValid() ) {
1066 size_t numClusters = 0;
1070 for ( ; pixCluDet!=pixelClusters->end(); ++pixCluDet) {
1072 DetId detid = pixCluDet->detId();
1073 size_t subdetid = detid.
subdetId();
1076 if ( tTopo->
layer(detid)==1 )
1080 for ( ; pixClu != pixCluDet->
end(); ++pixClu ) {
1096 auto pt = track.
pt();
1097 auto phi = track.
phi();
1111 auto chi2prob = TMath::Prob(track.
chi2(),(
int)track.
ndof());
1193 double stop = track.
stopReason() > max ? double(max-1) :
static_cast<double>(track.
stopReason());
1239 if (recoPrimaryVerticesHandle.
isValid() && !recoPrimaryVerticesHandle->empty()) {
1249 double longDCAsig = 0, transDCAsig = 0;
1252 if(zerr2 > 0) longDCAsig = track.
dz(pv.
position())/zerr2;
1253 if(xyerr2 > 0) transDCAsig = track.
dxy(pv.
position())/xyerr2;
1293 if(ip3d.first)
sip3dToPV->
Fill(ip3d.second.value() / ip3d.second.error());
1294 if(ip2d.first)
sip2dToPV->
Fill(ip2d.second.value() / ip2d.second.error());
1342 for (
int i=0;
i<monQuantity::END;
i++) {
1345 if (useInac) mon+=monQuantity::END;
1348 if (track.
pt() > 1.0 && track.
dxy() < 0.1 and monitoring > -9.) {
1357 bool valid =
hp.validHitFilter(
pattern);
1358 bool missing =
hp.missingHitFilter(
pattern);
1359 bool inactive =
hp.inactiveHitFilter(
pattern);
1361 hit_type = valid ? 0 :
1363 ( inactive ? 2 : 3));
1365 LogDebug(
"TrackAnalyzer") <<
"Invalid combination of detector and subdetector: (" 1367 <<
hp.getSubSubStructure(
pattern) <<
", " 1369 <<
"): ignoring it.\n";
1378 if (!useInac)
break;
1383 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " << hit_type <<
" ignored\n";
1401 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
1491 std::string histTag = (sname ==
"default") ? CategoryName : sname +
"_" + CategoryName;
1499 histname =
"Chi2oNDFVsTheta_" + histTag;
1504 histname =
"Chi2oNDFVsPhi_" + histTag;
1509 histname =
"Chi2ProbVsPhi_" + histTag;
1514 histname =
"Chi2ProbVsEta_" + histTag;
1525 histname =
"Chi2oNDFVsEta_" + histTag;
1530 histname =
"Chi2oNDFVsPt_" + histTag;
1535 histname =
"Chi2oNDFVsNHits_" + histTag;
1576 histname =
"TrackEtaPhi_" + histTag;
1581 histname =
"TrackEtaPhiInner_" + histTag;
1586 histname =
"TrackEtaPhiOuter_" + histTag;
1594 histname =
"TrackTheta_" + histTag;
1604 histname =
"TrackPErrOverP_" + histTag;
1609 histname =
"TrackPtErrOverPt_" + histTag;
1614 histname =
"TrackPtErrOverPtVsEta_" + histTag;
1620 histname =
"TrackPxErrOverPx_" + histTag;
1625 histname =
"TrackPyErrOverPy_" + histTag;
1630 histname =
"TrackPzErrOverPz_" + histTag;
1635 histname =
"TrackPhiErr_" + histTag;
1640 histname =
"TrackEtaErr_" + histTag;
1647 histname =
"NumberOfRecHitsPerTrackVsPhi_" + histTag;
1653 histname =
"NumberOfRecHitsPerTrackVsTheta_" + histTag;
1658 histname =
"NumberOfRecHitsPerTrackVsEta_" + histTag;
1663 histname =
"NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1668 histname =
"NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1673 histname =
"NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1679 histname =
"NumberOfLayersPerTrackVsPhi_" + histTag;
1685 histname =
"NumberOfLayersPerTrackVsTheta_" + histTag;
1690 histname =
"NumberOfLayersPerTrackVsEta_" + histTag;
1696 histname =
"Chi2oNDFVsTheta_" + histTag;
1702 histname =
"Chi2oNDFVsPhi_" + histTag;
1707 histname =
"Chi2oNDFVsEta_" + histTag;
1712 histname =
"Chi2ProbVsPhi_" + histTag;
1717 histname =
"Chi2ProbVsEta_" + histTag;
1735 double pxerror, pyerror, pzerror, pterror, perror, phierror,
etaerror;
1743 if (sname ==
"default") {
1751 theta = track.
theta();
1798 std::map<std::string, TkParameterMEs>::iterator iPos =
TkParameterMEMap.find(sname);
1857 double chi2prob = TMath::Prob(track.
chi2(),(
int)track.
ndof());
1888 std::string CategoryName = !QualName.empty() ? AlgoName +
"_" + QualName : AlgoName;
1908 std::vector<std::string> subdetectors =
conf_->
getParameter<std::vector<std::string> >(
"subdetectors");
1911 for (
auto det : subdetectors ) {
1926 if ( det ==
"Pixel" ) detID = 0;
1927 if ( det ==
"Strip" ) detID = 7;
1931 histname =
"NumberOfRecHitsPerTrack_" + det +
"_" + CategoryName;
1936 histname =
"NumberOfRecHitsPerTrackVsPhi_" + det +
"_" + CategoryName;
1941 histname =
"NumberOfRecHitsPerTrackVsEta_" + det +
"_" + CategoryName;
1946 histname =
"NumberOfRecHitsPerTrackVsPt_" + det +
"_" + CategoryName;
1951 histname =
"NumberOfLayersPerTrack_" + det +
"_" + CategoryName;
1956 histname =
"NumberOfLayersPerTrackVsPhi_" + det +
"_" + CategoryName;
1961 histname =
"NumberOfLayersPerTrackVsEta_" + det +
"_" + CategoryName;
1966 histname =
"NumberOfLayersPerTrackVsPt_" + det +
"_" + CategoryName;
1983 double phi = track.
phi();
1984 double eta = track.
eta();
1985 double pt = track.
pt();
1990 int nValidLayers = 0;
1991 int nValidRecHits = 0;
1992 int substr = it->second.detectorId;
2039 it->second.NumberOfRecHitsPerTrack ->
Fill(nValidRecHits);
2040 it->second.NumberOfRecHitsPerTrackVsPhi ->
Fill(phi, nValidRecHits);
2041 it->second.NumberOfRecHitsPerTrackVsEta ->
Fill(eta, nValidRecHits);
2042 it->second.NumberOfRecHitsPerTrackVsPt ->
Fill(pt, nValidRecHits);
2044 it->second.NumberOfLayersPerTrack ->
Fill(nValidLayers);
2045 it->second.NumberOfLayersPerTrackVsPhi ->
Fill(phi, nValidLayers);
2046 it->second.NumberOfLayersPerTrackVsEta ->
Fill(eta, nValidLayers);
2047 it->second.NumberOfLayersPerTrackVsPt ->
Fill(pt, nValidLayers);
2081 dqmStore_->disableSoftReset(
Chi2oNDF);
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
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 * 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
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 * 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
data_type const * const_iterator
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
int numberOfValidPixelBarrelHits() const
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 * 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
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
TrajectoryStateOnSurface outermostMeasurementState() const
std::array< T, N+1 > makeLogBins(const T min, const T max)
MonitorElement * DistanceOfClosestApproachVsPhi
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
MonitorElement * TESTDistanceOfClosestApproachToBS
void undoSoftReset(DQMStore *dqmStore_)
std::string monName[monQuantity::END]
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
float minPixelClusterCharge_
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * DeltaZToPVZoom
MonitorElement * DistanceOfClosestApproachErrorVsDxy
edm::EDGetTokenT< reco::VertexCollection > pvToken_
const AlgebraicSymMatrix66 & matrix() const
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
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 * 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
bool doGeneralPropertiesPlots_
static TrackQuality qualityByName(const std::string &name)
double xError() const
error on x
void setCurrentFolder(const std::string &fullpath)
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 * 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
MonitorElement * TrackPyErr
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
void Reset(std::vector< TH2F > &depth)
int getNbinsX() const
get # of bins in X-axis
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
std::string qualityString_
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * NumberOfLayersPerTrack
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)
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
int minNumberOfPixelsPerCluster_
MonitorElement * DistanceOfClosestApproachVsEta
T const * product() const
MonitorElement * Chi2ProbVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
MonitorElement * sip3dToPV
MonitorElement * Chi2ProbVsEta
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * Chi2Prob
MonitorElement * NumberOfRecHitsPerTrackVsPhi
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
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 * NumberOfLostRecHitsPerTrack
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
static double SECONDS_PER_LS
MonitorElement * Chi2oNDFVsEta
MonitorElement * NumberOfLayersPerTrack[4]