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
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_)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
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]