43 #define COUT(x) std::cout << x << ' ' 45 #define COUT(x) LogDebug(x) 52 : confID_(iConfig.
id()),
55 NumberOfMeanRecHitsPerTrack(
nullptr),
56 NumberOfMeanLayersPerTrack(
nullptr)
60 NumberOfTrackingRegions(
nullptr),
62 NumberOfSeeds_lumiFlag(
nullptr),
63 NumberOfTrackCandidates(
nullptr),
64 FractionCandidatesOverSeeds(
nullptr)
77 NumberOfGoodPVtxWO0VsLS(
nullptr),
80 GoodTracksFractionVsBX(
nullptr),
81 NumberOfRecHitsPerTrackVsBX(
nullptr),
83 NumberOfGoodPVtxWO0VsBX(
nullptr),
84 NumberOfTracksVsBXlumi(
nullptr),
85 NumberOfTracksVsGoodPVtx(
nullptr),
86 NumberOfTracksVsPUPVtx(
nullptr),
87 NumberEventsOfVsGoodPVtx(
nullptr),
88 GoodTracksFractionVsGoodPVtx(
nullptr),
89 NumberOfRecHitsPerTrackVsGoodPVtx(
nullptr),
90 NumberOfPVtxVsGoodPVtx(
nullptr),
91 NumberOfPixelClustersVsGoodPVtx(
nullptr),
92 NumberOfStripClustersVsGoodPVtx(
nullptr),
95 GoodTracksFractionVsLUMI(
nullptr),
96 NumberOfRecHitsPerTrackVsLUMI(
nullptr),
97 NumberOfGoodPVtxVsLUMI(
nullptr),
98 NumberOfGoodPVtxWO0VsLUMI(
nullptr),
99 NumberOfPixelClustersVsLUMI(
nullptr),
100 NumberOfStripClustersVsLUMI(
nullptr),
101 NumberOfTracks_lumiFlag(
nullptr)
105 builderName(iConfig.getParameter<
std::
string>(
"TTRHBuilder")),
106 doTrackerSpecific_(iConfig.getParameter<
bool>(
"doTrackerSpecific")),
107 doLumiAnalysis(iConfig.getParameter<
bool>(
"doLumiAnalysis")),
108 doProfilesVsLS_(iConfig.getParameter<
bool>(
"doProfilesVsLS")),
109 doAllPlots(iConfig.getParameter<
bool>(
"doAllPlots")),
110 doGeneralPropertiesPlots_(iConfig.getParameter<
bool>(
"doGeneralPropertiesPlots")),
111 doHitPropertiesPlots_(iConfig.getParameter<
bool>(
"doHitPropertiesPlots")),
112 doPUmonitoring_(iConfig.getParameter<
bool>(
"doPUmonitoring")),
114 iConfig.getParameter<
edm::
ParameterSet>(
"genericTriggerEventPSet"), consumesCollector(), *this)),
115 numSelection_(iConfig.getParameter<
std::
string>(
"numCut")),
116 denSelection_(iConfig.getParameter<
std::
string>(
"denCut")),
117 pvNDOF_(iConfig.getParameter<
int>(
"pvNDOF")) {
133 allTrackToken_ = consumes<edm::View<reco::Track> >(alltrackProducer);
136 seedToken_ = consumes<edm::View<TrajectorySeed> >(seedProducer);
143 return std::make_tuple(consumes<MVACollection>(edm::InputTag(tag,
"MVAValues")),
144 consumes<QualityMaskCollection>(edm::InputTag(tag,
"QualityMasks")));
153 if (!regionTag.label().empty()) {
154 regionToken_ = consumes<edm::OwnVector<TrackingRegion> >(regionTag);
157 if (!regionLayersTag.label().empty()) {
160 <<
"Only one of 'RegionProducer' and 'RegionSeedingLayersProducer' can be non-empty, now both are.";
164 throw cms::Exception(
"Configuration") <<
"With doRegionPlots=True either 'RegionProducer' or " 165 "'RegionSeedingLayersProducer' must be non-empty, now both are empty.";
168 if (doRegionCandidatePlots) {
179 if (alltrackProducer.
label() == trackProducer.label())
180 doFractionPlot_ =
false;
187 if (doPlotsVsBXlumi_)
194 std::vector<edm::InputTag> primaryVertexInputTags =
195 iConfig.
getParameter<std::vector<edm::InputTag> >(
"primaryVertexInputTags");
196 std::vector<edm::InputTag> selPrimaryVertexInputTags =
197 iConfig.
getParameter<std::vector<edm::InputTag> >(
"selPrimaryVertexInputTags");
198 std::vector<std::string> pvLabels = iConfig.
getParameter<std::vector<std::string> >(
"pvLabels");
200 if (primaryVertexInputTags.size() == pvLabels.size() and
201 primaryVertexInputTags.size() == selPrimaryVertexInputTags.size()) {
202 for (
size_t i = 0;
i < primaryVertexInputTags.size();
i++) {
229 assert(conf !=
nullptr);
238 edm::LogWarning(
"TrackingMonitor") <<
"Qualty Name is invalid, using no quality criterea by default";
247 int TKNoBin = conf->getParameter<
int>(
"TkSizeBin");
248 double TKNoMin = conf->getParameter<
double>(
"TkSizeMin");
249 double TKNoMax = conf->getParameter<
double>(
"TkSizeMax");
251 int TCNoBin = conf->getParameter<
int>(
"TCSizeBin");
252 double TCNoMin = conf->getParameter<
double>(
"TCSizeMin");
253 double TCNoMax = conf->getParameter<
double>(
"TCSizeMax");
255 int TKNoSeedBin = conf->getParameter<
int>(
"TkSeedSizeBin");
256 double TKNoSeedMin = conf->getParameter<
double>(
"TkSeedSizeMin");
257 double TKNoSeedMax = conf->getParameter<
double>(
"TkSeedSizeMax");
259 int MeanHitBin = conf->getParameter<
int>(
"MeanHitBin");
260 double MeanHitMin = conf->getParameter<
double>(
"MeanHitMin");
261 double MeanHitMax = conf->getParameter<
double>(
"MeanHitMax");
263 int MeanLayBin = conf->getParameter<
int>(
"MeanLayBin");
264 double MeanLayMin = conf->getParameter<
double>(
"MeanLayMin");
265 double MeanLayMax = conf->getParameter<
double>(
"MeanLayMax");
267 int LSBin = conf->getParameter<
int>(
"LSBin");
268 int LSMin = conf->getParameter<
double>(
"LSMin");
269 int LSMax = conf->getParameter<
double>(
"LSMax");
272 if (StateName !=
"OuterSurface" && StateName !=
"InnerSurface" && StateName !=
"ImpactPoint" &&
273 StateName !=
"default" && StateName !=
"All") {
275 edm::LogWarning(
"TrackingMonitor") <<
"State Name is invalid, using 'ImpactPoint' by default";
286 histname =
"NumberOfTracks_" + CategoryName;
292 if (Folder ==
"Tr") {
293 histname =
"NumberOfTracks_PUvtx_" + CategoryName;
298 histname =
"NumberofTracks_Hardvtx_" + CategoryName;
304 histname =
"NumberofTracks_Hardvtx_PUvtx_" + CategoryName;
312 histname =
"NumberOfMeanRecHitsPerTrack_" + CategoryName;
317 histname =
"NumberOfMeanLayersPerTrack_" + CategoryName;
323 histname =
"FractionOfGoodTracks_" + CategoryName;
334 histname =
"NumberOfTracks_lumiFlag_" + CategoryName;
346 histname =
"NumberOfTracksVsLS_" + CategoryName;
352 histname =
"NumberOfRecHitsPerTrackVsLS_" + CategoryName;
358 histname =
"NumberEventsVsLS_" + CategoryName;
364 double GoodPVtxMin = conf->getParameter<
double>(
"GoodPVtxMin");
365 double GoodPVtxMax = conf->getParameter<
double>(
"GoodPVtxMax");
367 histname =
"NumberOfGoodPVtxVsLS_" + CategoryName;
369 ibooker.
bookProfile(histname, histname, LSBin, LSMin, LSMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
374 histname =
"NumberOfGoodPVtxWO0VsLS_" + CategoryName;
376 ibooker.
bookProfile(histname, histname, LSBin, LSMin, LSMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
381 histname =
"GoodTracksFractionVsLS_" + CategoryName;
392 double BXMax = 3564.5;
394 histname =
"NumberEventsVsBX_" + CategoryName;
399 histname =
"NumberOfTracksVsBX_" + CategoryName;
404 histname =
"NumberOfRecHitsPerTrackVsBX_" + CategoryName;
409 histname =
"NumberOfGoodPVtxVsBX_" + CategoryName;
411 ibooker.
bookProfile(histname, histname, BXBin, BXMin, BXMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
415 histname =
"NumberOfGoodPVtxWO0VsBX_" + CategoryName;
417 ibooker.
bookProfile(histname, histname, BXBin, BXMin, BXMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
422 histname =
"GoodTracksFractionVsBX_" + CategoryName;
441 int PVBin = conf->getParameter<
int>(
"PVBin");
442 float PVMin = conf->getParameter<
double>(
"PVMin");
443 float PVMax = conf->getParameter<
double>(
"PVMax");
445 histname =
"NumberOfTracksVsGoodPVtx";
450 histname =
"NumberOfTracksVsPUPVtx";
455 histname =
"NumberEventsVsGoodPVtx";
461 histname =
"GoodTracksFractionVsGoodPVtx";
467 histname =
"NumberOfRecHitsPerTrackVsGoodPVtx";
472 histname =
"NumberOfPVtxVsGoodPVtx";
477 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
478 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
479 histname =
"NumberOfPixelClustersVsGoodPVtx";
481 ibooker.
bookProfile(histname, histname, PVBin, PVMin, PVMax, NClusPxMin, 3. * NClusPxMax,
"");
485 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
486 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
487 histname =
"NumberOfStripClustersVsGoodPVtx";
489 ibooker.
bookProfile(histname, histname, PVBin, PVMin, PVMax, NClusStrMin, 3. * NClusStrMax,
"");
496 int LUMIBin = conf->getParameter<
int>(
"LUMIBin");
497 float LUMIMin = conf->getParameter<
double>(
"LUMIMin");
498 float LUMIMax = conf->getParameter<
double>(
"LUMIMax");
505 histname =
"NumberOfTracksVsLUMI";
511 histname =
"GoodTracksFractionVsLUMI";
517 histname =
"NumberOfRecHitsPerTrackVsLUMI";
522 double PVMin = conf->getParameter<
double>(
"PVMin");
523 double PVMax = conf->getParameter<
double>(
"PVMax");
525 histname =
"NumberOfGoodPVtxVsLUMI";
530 histname =
"NumberOfGoodPVtxWO0VsLUMI";
532 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, PVMin, 3. * PVMax,
"");
536 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
537 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
538 histname =
"NumberOfPixelClustersVsGoodPVtx";
540 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, NClusPxMin, 3. * NClusPxMax,
"");
544 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
545 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
546 histname =
"NumberOfStripClustersVsLUMI";
548 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, NClusStrMin, 3. * NClusStrMax,
"");
557 int BXlumiBin = BXlumiParameters.
getParameter<
int>(
"BXlumiBin");
558 double BXlumiMin = BXlumiParameters.
getParameter<
double>(
"BXlumiMin");
559 double BXlumiMax = BXlumiParameters.
getParameter<
double>(
"BXlumiMax");
561 histname =
"NumberOfTracksVsBXlumi_" + CategoryName;
563 ibooker.
bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, TKNoMin, 3. * TKNoMax,
"");
575 doAllSeedPlots = conf->getParameter<
bool>(
"doSeedParameterHistos");
582 (
doAllSeedPlots || conf->getParameter<
bool>(
"doSeedPTHisto") || conf->getParameter<
bool>(
"doSeedETAHisto") ||
583 conf->getParameter<
bool>(
"doSeedPHIHisto") || conf->getParameter<
bool>(
"doSeedPHIVsETAHisto") ||
584 conf->getParameter<
bool>(
"doSeedThetaHisto") || conf->getParameter<
bool>(
"doSeedQHisto") ||
585 conf->getParameter<
bool>(
"doSeedDxyHisto") || conf->getParameter<
bool>(
"doSeedDzHisto") ||
586 conf->getParameter<
bool>(
"doSeedNRecHitsHisto") || conf->getParameter<
bool>(
"doSeedNVsPhiProf") ||
587 conf->getParameter<
bool>(
"doSeedNVsEtaProf"));
593 histname =
"NumberOfSeeds_" + seedProducer.
label() +
"_" + CategoryName;
598 if (doSeedLumiAnalysis_) {
600 histname =
"NumberOfSeeds_lumiFlag_" + seedProducer.
label() +
"_" + CategoryName;
610 ClusterLabels = conf->getParameter<std::vector<std::string> >(
"ClusterLabels");
612 std::vector<double> histoMin, histoMax;
613 std::vector<int> histoBin;
615 int NClusPxBin = conf->getParameter<
int>(
"NClusPxBin");
616 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
617 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
619 int NClusStrBin = conf->getParameter<
int>(
"NClusStrBin");
620 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
621 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
624 histoMin, histoMax, histoBin, NClusStrMin, NClusStrMax, NClusStrBin, NClusPxMin, NClusPxMax, NClusPxBin);
629 histname,
histname, histoBin[
i], histoMin[i], histoMax[i], TKNoSeedBin, TKNoSeedMin, TKNoSeedMax)));
639 int regionBin = conf->getParameter<
int>(
"RegionSizeBin");
640 double regionMin = conf->getParameter<
double>(
"RegionSizeMin");
641 double regionMax = conf->getParameter<
double>(
"RegionSizeMax");
643 histname =
"TrackingRegionsNumberOf_" + seedProducer.
label() +
"_" + CategoryName;
649 doTkCandPlots = conf->getParameter<
bool>(
"doTrackCandHistos");
657 histname =
"NumberOfTrackCandidates_" + tcProducer.
label() +
"_" + CategoryName;
662 histname =
"FractionOfCandOverSeeds_" + tcProducer.
label() +
"_" + CategoryName;
677 if (doSeedLumiAnalysis_)
682 ClusterLabels = conf->getParameter<std::vector<std::string> >(
"ClusterLabels");
684 std::vector<double> histoMin, histoMax;
685 std::vector<int> histoBin;
687 int NClusStrBin = conf->getParameter<
int>(
"NClusStrBin");
688 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
689 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
691 int NClusPxBin = conf->getParameter<
int>(
"NClusPxBin");
692 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
693 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
695 int NTrk2DBin = conf->getParameter<
int>(
"NTrk2DBin");
696 double NTrk2DMin = conf->getParameter<
double>(
"NTrk2DMin");
697 double NTrk2DMax = conf->getParameter<
double>(
"NTrk2DMax");
700 histoMin, histoMax, histoBin, NClusStrMin, NClusStrMax, NClusStrBin, NClusPxMin, NClusPxMax, NClusPxBin);
711 title =
"# of Clusters in (Pixel+Strip) Detectors";
758 if (lumiScalers.
isValid() && !lumiScalers->empty()) {
759 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
760 lumi = scalit->instantLumi();
779 int numberOfTracks_den = 0;
782 if (allTrackHandle.
isValid()) {
786 numberOfTracks_den++;
794 pv0 = &pvHandle->front();
804 int numberOfTracks = trackHandle->size();
805 int numberOfTracks_num = 0;
806 int numberOfTracks_pv0 = 0;
810 int totalRecHits = 0, totalLayers = 0;
820 numberOfTracks_num++;
822 ++numberOfTracks_pv0;
827 track->numberOfValidHits());
832 totalRecHits +=
track->numberOfValidHits();
833 totalLayers +=
track->hitPattern().trackerLayersWithMeasurement();
841 if (numberOfTracks_den > 0)
842 frac =
static_cast<double>(numberOfTracks_num) / static_cast<double>(numberOfTracks_den);
847 if (Folder ==
"Tr") {
868 if (numberOfTracks > 0) {
869 double meanRecHits =
static_cast<double>(totalRecHits) / static_cast<double>(numberOfTracks);
870 double meanLayers =
static_cast<double>(totalLayers) / static_cast<double>(numberOfTracks);
919 for (TrackCandidateCollection::const_iterator
cand = theTCCollection.begin();
cand != theTCCollection.end();
924 edm::LogWarning(
"TrackingMonitor") <<
"No Track Candidates in the event. Not filling associated histograms";
929 std::vector<const MVACollection*> mvaCollections;
930 std::vector<const QualityMaskCollection*> qualityMaskCollections;
938 iEvent.
getByToken(std::get<0>(tokenTpl), hmva);
939 iEvent.
getByToken(std::get<1>(tokenTpl), hqual);
941 mvaCollections.push_back(hmva.
product());
942 qualityMaskCollections.push_back(hqual.
product());
966 std::vector<int> NClus;
976 const auto& seedStopInfo = *stopHandle;
997 <<
") differs from seed stop info collection size (" << seedStopInfo.size()
998 <<
"). This is a sign of inconsistency in the configuration. Not filling associated histograms.";
1003 edm::LogWarning(
"TrackingMonitor") <<
"No Trajectory seeds in the event. Not filling associated histograms";
1012 const auto&
regions = *hregions;
1019 const auto&
regions = *hregions;
1033 std::vector<int> NClus;
1046 size_t totalNumGoodPV = 0;
1048 for (reco::VertexCollection::const_iterator
pv = pvHandle->begin();
pv != pvHandle->end(); ++
pv) {
1050 if (
pv->isFake() ||
pv->tracksSize() == 0)
1061 if (totalNumGoodPV > 1)
1063 double(numberOfTracks - numberOfTracks_pv0) /
double(totalNumGoodPV - 1));
1083 std::vector<int> NClus;
1085 std::ostringstream ss;
1086 ss <<
"VI stat " << totalNumGoodPV <<
' ' << numberOfTracks;
1088 ss <<
' ' << NClus[
i];
1107 if (totalNumGoodPV != 0)
1110 if (totalNumGoodPV != 0)
1113 if (totalNumGoodPV != 0)
1124 std::vector<double>& arrayMax,
1125 std::vector<int>& arrayBin,
1147 arrayMax[
i] = smax + pmax;
1151 <<
" not defined, using strip parameters ";
1160 int ncluster_pix = -1;
1161 int ncluster_strip = -1;
1169 ncluster_pix = (*pixel_clusters).dataSize();
1170 ncluster_strip = (*strip_clusters).dataSize();
1176 arrayNclus[
i] = ncluster_pix;
1178 arrayNclus[
i] = ncluster_strip;
1180 arrayNclus[
i] = ncluster_pix + ncluster_strip;
1183 <<
" not defined using stri parametrs ";
1184 arrayNclus[
i] = ncluster_strip;
edm::EDGetTokenT< std::vector< SeedStopInfo > > seedStopInfoToken_
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
StringCutObjectSelector< reco::Track, true > denSelection_
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::OwnVector< TrackingRegion > > regionToken_
edm::EDGetTokenT< edm::View< TrajectorySeed > > seedToken_
std::vector< MonitorElement * > NumberOfTrkVsClusters
MonitorElement * FractionOfGoodTracks
virtual void setMaxMinBin(std::vector< double > &, std::vector< double > &, std::vector< int > &, double, double, int, double, double, int)
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const SeedStopInfo &stopInfo, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
MonitorElement * NumberOfTracksVsBX
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
virtual void setNclus(const edm::Event &, std::vector< int > &)
~TrackingMonitor() override
MonitorElement * bookProfile(Args &&...args)
MonitorElement * NumberEventsOfVsGoodPVtx
GetLumi * theLumiDetails_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
std::vector< TrackCandidate > TrackCandidateCollection
MonitorElement * FractionCandidatesOverSeeds
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 * GoodTracksFractionVsLUMI
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
MonitorElement * NumberOfPVtxVsGoodPVtx
MonitorElement * NumberOfMeanRecHitsPerTrack
MonitorElement * NumberOfTracksVsGoodPVtx
void initHisto(DQMStore::IBooker &ibooker, const edm::ParameterSet &)
LuminosityBlockNumber_t luminosityBlock() const
const Point & position() const
position
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
MonitorElement * NumberofTracks_Hardvtx_PUvtx
edm::EDGetTokenT< edm::View< reco::Track > > mvaTrackToken_
double getValue(const edm::Event &)
MonitorElement * NumberOfGoodPVtxWO0VsLUMI
MonitorElement * NumberOfSeeds
#define DEFINE_FWK_MODULE(type)
const_iterator begin() const
MonitorElement * NumberOfTrackingRegions
void setLumiFlag()
this ME is meant to be stored for each luminosity section
void setCurrentFolder(std::string const &fullpath)
void setBX(const edm::Event &)
MonitorElement * NumberOfGoodPVtxVsLS
edm::EDGetTokenT< edm::View< reco::Track > > allTrackToken_
MonitorElement * NumberOfGoodPVtxVsLUMI
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
MonitorElement * book1D(Args &&...args)
MonitorElement * NumberOfTracks_PUvtx
void endRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * NumberOfTracksVsLS
Abs< T >::type abs(const T &t)
MonitorElement * NumberOfGoodPVtxWO0VsLS
double z() const
z coordinate
bool getMapped(key_type const &k, value_type &result) const
bool doRegionCandidatePlots
MonitorElement * NumberOfTracksVsPUPVtx
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
MonitorElement * NumberEventsOfVsBX
bool runTrackBuildingAnalyzerForSeed
void Reset()
reset ME (ie. contents, errors, etc)
MonitorElement * NumberOfStripClustersVsGoodPVtx
MonitorElement * NumberOfPixelClustersVsGoodPVtx
dqm::TrackAnalyzer * theTrackAnalyzer
MonitorElement * NumberOfRecHitsPerTrackVsLS
MonitorElement * GoodTracksFractionVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
edm::EDGetTokenT< TrackingRegionsSeedingLayerSets > regionLayerSetsToken_
edm::ParameterSetID confID_
MonitorElement * NumberOfPixelClustersVsLUMI
void setNumberOfGoodVertices(const edm::Event &)
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTracksVsBXlumi
edm::InputTag stripClusterInputTag_
bool doGeneralPropertiesPlots_
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
T const * product() const
MonitorElement * book2D(Args &&...args)
edm::EDGetTokenT< TrackCandidateCollection > trackCandidateToken_
MonitorElement * NumberOfMeanLayersPerTrack
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< reco::CandidateView > regionCandidateToken_
MonitorElement * GoodTracksFractionVsBX
edm::InputTag pixelClusterInputTag_
MonitorElement * NumberOfSeeds_lumiFlag
void beginLuminosityBlock(const edm::LuminosityBlock &lumi, const edm::EventSetup &eSetup) override
TrackingMonitor(const edm::ParameterSet &)
MonitorElement * NumberofTracks_Hardvtx
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
MonitorElement * NumberOfTrackCandidates
bool isUninitialized() const
const_iterator end() const
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
MonitorElement * NumberOfGoodPVtxVsBX
MonitorElement * NumberEventsOfVsLUMI
std::vector< MonitorElement * > SeedsVsClusters
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
MonitorElement * NumberOfTracks_lumiFlag
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
StringCutObjectSelector< reco::Track, true > numSelection_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
edm::EDGetTokenT< reco::BeamSpot > bsSrcToken_
MonitorElement * NumberOfTracks
size_t tracksSize() const
number of tracks
static Registry * instance()
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
edm::EDGetTokenT< reco::VertexCollection > pvSrcToken_
MonitorElement * NumberEventsOfVsLS
MonitorElement * NumberOfTracksVsLUMI
std::vector< std::string > ClusterLabels
MonitorElement * NumberOfGoodPVtxWO0VsBX