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"))
242 float MIN[] = { PVMin, 0.5, LUMIMin, LUMIMin };
244 std::string NAME[] = {
"",
"VsBX",
"VsLUMI",
"VsLUMI" };
246 auto logBins = makeLogBins<float,LUMIBin>(LUMIMin,LUMIMax);
254 for (
int i=0;
i<monQuantity::END;
i++) {
258 if (useInac) mon+=monQuantity::END;
271 const char * dets[] = {
"None",
"PXB",
"PXF",
"TIB",
"TID",
"TOB",
"TEC"};
277 const char * hit_category[] = {
"valid",
"missing",
"inactive",
"bad",
"total"};
281 for (
unsigned int det = 1; det <
sizeof(dets)/
sizeof(
char*); ++det ) {
282 for (
unsigned int sub_det = 1;
284 for (
unsigned int cat = 0;
285 cat <
sizeof(hit_category)/
sizeof(
char *); ++
cat) {
286 memset(title, 0,
sizeof(title));
287 snprintf(title,
sizeof(title),
"Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[
cat], dets[det], sub_det);
291 Key(det, sub_det, mon), logQ?
292 ibooker.
book1D(title, title, nbins, &logBins[0]) :
293 ibooker.
book1D(title, title, nbins, min, max)));
297 Key(det, sub_det, mon), logQ?
298 ibooker.
book1D(title, title, nbins, &logBins[0]) :
299 ibooker.
book1D(title, title, nbins, min, max)));
302 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " <<
cat <<
" ignored\n";
318 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
367 histname =
"NumberOfRecHitsPerTrack_";
372 histname =
"NumberOfValidRecHitsPerTrack_";
378 histname =
"NumberOfLostRecHitsPerTrack_";
383 histname =
"NumberOfMissingInnerRecHitsPerTrack_";
388 histname =
"NumberOfMissingOuterRecHitsPerTrack_";
393 histname =
"ValidFractionPerTrack_";
402 histname =
"NumberOfValidRecHitVsPhiVsEtaPerTrack_";
404 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40.,
"");
408 histname =
"NumberOfLostRecHitVsPhiVsEtaPerTrack_";
410 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 5.,
"");
415 histname =
"NumberMIRecHitVsPhiVsEtaPerTrack_";
417 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 15.,
"");
421 histname =
"NumberMORecHitVsPhiVsEtaPerTrack_";
423 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 15.,
"");
427 histname =
"ValidFractionVsPhiVsEtaPerTrack_";
429 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 2.,
"");
437 histname =
"NumberOfValidRecHitVsPtVsEtaPerTrack_";
439 EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 40.,
"");
443 histname =
"NumberOfLostRecHitVsPtVsEtaPerTrack_";
445 EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 5.,
"");
450 histname =
"NumberMIRecHitVsPtVsEtaPerTrack_";
452 EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 15.,
"");
456 histname =
"NumberMORecHitVsPtVsEtaPerTrack_";
458 EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 15.,
"");
464 histname =
"NumberOfValidRecHitsPerTrackVsPt_";
469 histname =
"NumberOfLostRecHitsPerTrackVsPt_";
475 histname =
"NumberMIRecHitsPerTrackVsPt_";
480 histname =
"NumberMORecHitsPerTrackVsPt_";
485 std::string layerTypeName[5] = {
"",
"Off",
"3D",
"Missing",
"Pixel"};
486 for (
int i=0;
i<4; ++
i) {
487 histname =
"NumberOf"+ layerTypeName[
i] +
"LayersPerTrack_";
493 for (
int i=0;
i<5; ++
i) {
494 histname =
"NumberOf"+ layerTypeName[
i] +
"LayersVsPhiVsEtaPerTrack_";
496 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40.,
"");
535 Chi2->setAxisTitle(
"Track #chi^{2}" ,1);
536 Chi2->setAxisTitle(
"Number of Tracks",2);
599 histname =
"xPointOfClosestApproach_";
604 histname =
"yPointOfClosestApproach_";
609 histname =
"zPointOfClosestApproach_";
614 histname =
"xPointOfClosestApproachToPV_";
619 histname =
"yPointOfClosestApproachToPV_";
624 histname =
"zPointOfClosestApproachToPV_";
655 EtaBin, EtaMin, EtaMax, 2, 0., 2.);
661 PhiBin, PhiMin, PhiMax, 2, 0., 2.);
665 for (
size_t ibin=0; ibin<StopReasonNameSize; ibin++) {
680 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
699 histname =
"NumberOfRecHitsPerTrack_lumiFlag_";
719 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
757 histname =
"DistanceOfClosestApproachToBS_";
762 histname =
"AbsDistanceOfClosestApproachToBS_";
767 histname =
"DistanceOfClosestApproachToBSVsPhi_";
773 histname =
"xPointOfClosestApproachVsZ0wrt000_";
778 histname =
"yPointOfClosestApproachVsZ0wrt000_";
783 histname =
"xPointOfClosestApproachVsZ0wrtBS_";
788 histname =
"yPointOfClosestApproachVsZ0wrtBS_";
793 histname =
"zPointOfClosestApproachVsPhi_";
823 histname =
"DistanceOfClosestApproachToPV_";
828 histname =
"DistanceOfClosestApproachToPVZoom_";
845 histname =
"DistanceOfClosestApproachToPVVsPhi_";
851 histname =
"xPointOfClosestApproachVsZ0wrtPV_";
856 histname =
"yPointOfClosestApproachVsZ0wrtPV_";
874 histname =
"TESTDistanceOfClosestApproachToBS_";
879 histname =
"TESTDistanceOfClosestApproachToBSVsPhi_";
913 histname =
"DistanceOfClosestApproachVsTheta_";
919 histname =
"DistanceOfClosestApproachVsEta_";
925 histname =
"DistanceOfClosestApproach_";
930 histname =
"DistanceOfClosestApproachVsPhi_";
940 const double sipBins = 200;
941 const double sipMin = -20;
942 const double sipMax = 20;
988 if (recoPrimaryVerticesHandle.
isValid())
989 if (!recoPrimaryVerticesHandle->empty())
990 for (
auto v : *recoPrimaryVerticesHandle)
1005 if ( lumiScalers.
isValid() && !lumiScalers->empty() ) {
1006 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1013 if ( pixelClusters.
isValid() ) {
1021 size_t numClusters = 0;
1025 for ( ; pixCluDet!=pixelClusters->end(); ++pixCluDet) {
1027 DetId detid = pixCluDet->detId();
1028 size_t subdetid = detid.
subdetId();
1031 if ( tTopo->
layer(detid)==1 )
1035 for ( ; pixClu != pixCluDet->
end(); ++pixClu ) {
1051 auto pt = track.
pt();
1052 auto phi = track.
phi();
1066 auto chi2prob = TMath::Prob(track.
chi2(),(
int)track.
ndof());
1148 double stop = track.
stopReason() > max ? double(max-1) :
static_cast<double>(track.
stopReason());
1188 if (recoPrimaryVerticesHandle.
isValid() && !recoPrimaryVerticesHandle->empty()) {
1198 double longDCAsig = 0, transDCAsig = 0;
1201 if(zerr2 > 0) longDCAsig = track.
dz(pv.
position())/zerr2;
1202 if(xyerr2 > 0) transDCAsig = track.
dxy(pv.
position())/xyerr2;
1242 if(ip3d.first)
sip3dToPV->
Fill(ip3d.second.value() / ip3d.second.error());
1243 if(ip2d.first)
sip2dToPV->
Fill(ip2d.second.value() / ip2d.second.error());
1291 for (
int i=0;
i<monQuantity::END;
i++) {
1294 if (useInac) mon+=monQuantity::END;
1297 if (track.
pt() > 1.0 && track.
dxy() < 0.1 and monitoring > -9.) {
1306 bool valid =
hp.validHitFilter(
pattern);
1307 bool missing =
hp.missingHitFilter(
pattern);
1308 bool inactive =
hp.inactiveHitFilter(
pattern);
1310 hit_type = valid ? 0 :
1312 ( inactive ? 2 : 3));
1314 LogDebug(
"TrackAnalyzer") <<
"Invalid combination of detector and subdetector: (" 1316 <<
hp.getSubSubStructure(
pattern) <<
", " 1318 <<
"): ignoring it.\n";
1327 if (!useInac)
break;
1332 LogDebug(
"TrackAnalyzer") <<
"Invalid hit category used " << hit_type <<
" ignored\n";
1350 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
1437 std::string histTag = (sname ==
"default") ? CategoryName : sname +
"_" + CategoryName;
1445 histname =
"Chi2oNDFVsTheta_" + histTag;
1450 histname =
"Chi2oNDFVsPhi_" + histTag;
1455 histname =
"Chi2ProbVsPhi_" + histTag;
1460 histname =
"Chi2ProbVsEta_" + histTag;
1471 histname =
"Chi2oNDFVsEta_" + histTag;
1476 histname =
"Chi2oNDFVsPt_" + histTag;
1481 histname =
"Chi2oNDFVsNHits_" + histTag;
1522 histname =
"TrackEtaPhi_" + histTag;
1527 histname =
"TrackEtaPhiInner_" + histTag;
1532 histname =
"TrackEtaPhiOuter_" + histTag;
1540 histname =
"TrackTheta_" + histTag;
1550 histname =
"TrackPErrOverP_" + histTag;
1555 histname =
"TrackPtErrOverPt_" + histTag;
1560 histname =
"TrackPtErrOverPtVsEta_" + histTag;
1566 histname =
"TrackPxErrOverPx_" + histTag;
1571 histname =
"TrackPyErrOverPy_" + histTag;
1576 histname =
"TrackPzErrOverPz_" + histTag;
1581 histname =
"TrackPhiErr_" + histTag;
1586 histname =
"TrackEtaErr_" + histTag;
1593 histname =
"NumberOfRecHitsPerTrackVsPhi_" + histTag;
1599 histname =
"NumberOfRecHitsPerTrackVsTheta_" + histTag;
1604 histname =
"NumberOfRecHitsPerTrackVsEta_" + histTag;
1609 histname =
"NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1614 histname =
"NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1619 histname =
"NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1625 histname =
"NumberOfLayersPerTrackVsPhi_" + histTag;
1631 histname =
"NumberOfLayersPerTrackVsTheta_" + histTag;
1636 histname =
"NumberOfLayersPerTrackVsEta_" + histTag;
1642 histname =
"Chi2oNDFVsTheta_" + histTag;
1648 histname =
"Chi2oNDFVsPhi_" + histTag;
1653 histname =
"Chi2oNDFVsEta_" + histTag;
1658 histname =
"Chi2ProbVsPhi_" + histTag;
1663 histname =
"Chi2ProbVsEta_" + histTag;
1681 double pxerror, pyerror, pzerror, pterror, perror, phierror,
etaerror;
1689 if (sname ==
"default") {
1697 theta = track.
theta();
1744 std::map<std::string, TkParameterMEs>::iterator iPos =
TkParameterMEMap.find(sname);
1803 double chi2prob = TMath::Prob(track.
chi2(),(
int)track.
ndof());
1834 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
1854 std::vector<std::string> subdetectors =
conf_->
getParameter<std::vector<std::string> >(
"subdetectors");
1857 for (
auto det : subdetectors ) {
1872 if ( det ==
"Pixel" ) detID = 0;
1873 if ( det ==
"Strip" ) detID = 7;
1877 histname =
"NumberOfRecHitsPerTrack_" + det +
"_" + CategoryName;
1882 histname =
"NumberOfRecHitsPerTrackVsPhi_" + det +
"_" + CategoryName;
1887 histname =
"NumberOfRecHitsPerTrackVsEta_" + det +
"_" + CategoryName;
1892 histname =
"NumberOfRecHitsPerTrackVsPt_" + det +
"_" + CategoryName;
1897 histname =
"NumberOfLayersPerTrack_" + det +
"_" + CategoryName;
1902 histname =
"NumberOfLayersPerTrackVsPhi_" + det +
"_" + CategoryName;
1907 histname =
"NumberOfLayersPerTrackVsEta_" + det +
"_" + CategoryName;
1912 histname =
"NumberOfLayersPerTrackVsPt_" + det +
"_" + CategoryName;
1929 double phi = track.
phi();
1930 double eta = track.
eta();
1931 double pt = track.
pt();
1936 int nValidLayers = 0;
1937 int nValidRecHits = 0;
1938 int substr = it->second.detectorId;
1985 it->second.NumberOfRecHitsPerTrack ->
Fill(nValidRecHits);
1986 it->second.NumberOfRecHitsPerTrackVsPhi ->
Fill(phi, nValidRecHits);
1987 it->second.NumberOfRecHitsPerTrackVsEta ->
Fill(eta, nValidRecHits);
1988 it->second.NumberOfRecHitsPerTrackVsPt ->
Fill(pt, nValidRecHits);
1990 it->second.NumberOfLayersPerTrack ->
Fill(nValidLayers);
1991 it->second.NumberOfLayersPerTrackVsPhi ->
Fill(phi, nValidLayers);
1992 it->second.NumberOfLayersPerTrackVsEta ->
Fill(eta, nValidLayers);
1993 it->second.NumberOfLayersPerTrackVsPt ->
Fill(pt, nValidLayers);
2027 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 * 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 * 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
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 * 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)
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]