39 #define COUT(x) std::cout << x << ' '
41 #define COUT(x) LogDebug(x)
48 : confID_(iConfig.
id()),
50 NumberOfTracks(nullptr),
51 NumberOfMeanRecHitsPerTrack(nullptr),
52 NumberOfMeanLayersPerTrack(nullptr)
55 FractionOfGoodTracks(nullptr),
56 NumberOfTrackingRegions(nullptr),
57 NumberOfSeeds(nullptr),
58 NumberOfSeeds_lumiFlag(nullptr),
59 NumberOfTrackCandidates(nullptr),
60 FractionCandidatesOverSeeds(nullptr)
63 NumberEventsOfVsLS(nullptr),
64 NumberOfTracksVsLS(nullptr)
67 GoodTracksFractionVsLS(nullptr)
72 NumberOfGoodPVtxVsLS(nullptr),
73 NumberOfGoodPVtxWO0VsLS(nullptr),
74 NumberEventsOfVsBX(nullptr),
75 NumberOfTracksVsBX(nullptr),
76 GoodTracksFractionVsBX(nullptr),
77 NumberOfRecHitsPerTrackVsBX(nullptr),
78 NumberOfGoodPVtxVsBX(nullptr),
79 NumberOfGoodPVtxWO0VsBX(nullptr),
80 NumberOfTracksVsBXlumi(nullptr),
81 NumberOfTracksVsGoodPVtx(nullptr),
82 NumberOfTracksVsPUPVtx(nullptr),
83 NumberEventsOfVsGoodPVtx(nullptr),
84 GoodTracksFractionVsGoodPVtx(nullptr),
85 NumberOfRecHitsPerTrackVsGoodPVtx(nullptr),
86 NumberOfPVtxVsGoodPVtx(nullptr),
87 NumberOfPixelClustersVsGoodPVtx(nullptr),
88 NumberOfStripClustersVsGoodPVtx(nullptr),
89 NumberEventsOfVsLUMI(nullptr),
90 NumberOfTracksVsLUMI(nullptr),
91 GoodTracksFractionVsLUMI(nullptr),
92 NumberOfRecHitsPerTrackVsLUMI(nullptr),
93 NumberOfGoodPVtxVsLUMI(nullptr),
94 NumberOfGoodPVtxWO0VsLUMI(nullptr),
95 NumberOfPixelClustersVsLUMI(nullptr),
96 NumberOfStripClustersVsLUMI(nullptr),
97 NumberOfTracks_lumiFlag(nullptr)
101 builderName(iConfig.getParameter<std::
string>(
"TTRHBuilder")),
102 doTrackerSpecific_(iConfig.getParameter<bool>(
"doTrackerSpecific")),
104 doProfilesVsLS_(iConfig.getParameter<bool>(
"doProfilesVsLS")),
105 doAllSeedPlots(iConfig.getParameter<bool>(
"doSeedParameterHistos")),
106 doAllPlots(iConfig.getParameter<bool>(
"doAllPlots")),
107 doGeneralPropertiesPlots_(iConfig.getParameter<bool>(
"doGeneralPropertiesPlots")),
108 doHitPropertiesPlots_(iConfig.getParameter<bool>(
"doHitPropertiesPlots")),
109 doTkCandPlots(iConfig.getParameter<bool>(
"doTrackCandHistos")),
110 doPUmonitoring_(iConfig.getParameter<bool>(
"doPUmonitoring")),
112 iConfig.getParameter<edm::
ParameterSet>(
"genericTriggerEventPSet"), consumesCollector(), *this)),
113 numSelection_(iConfig.getParameter<std::
string>(
"numCut")),
114 denSelection_(iConfig.getParameter<std::
string>(
"denCut")),
115 pvNDOF_(iConfig.getParameter<int>(
"pvNDOF")),
116 forceSCAL_(iConfig.getParameter<bool>(
"forceSCAL")) {
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")));
149 doRegionPlots =
iConfig.getParameter<
bool>(
"doRegionPlots");
150 doRegionCandidatePlots =
iConfig.getParameter<
bool>(
"doRegionCandidatePlots");
153 if (!regionTag.label().empty()) {
154 regionToken_ = consumes<edm::OwnVector<TrackingRegion> >(regionTag);
156 const auto& regionLayersTag =
iConfig.getParameter<
edm::InputTag>(
"RegionSeedingLayersProducer");
157 if (!regionLayersTag.label().empty()) {
158 if (!regionToken_.isUninitialized()) {
160 <<
"Only one of 'RegionProducer' and 'RegionSeedingLayersProducer' can be non-empty, now both are.";
162 regionLayerSetsToken_ = consumes<TrackingRegionsSeedingLayerSets>(regionLayersTag);
163 }
else if (regionToken_.isUninitialized()) {
164 throw cms::Exception(
"Configuration") <<
"With doRegionPlots=True either 'RegionProducer' or "
165 "'RegionSeedingLayersProducer' must be non-empty, now both are empty.";
168 if (doRegionCandidatePlots) {
169 regionCandidateToken_ = consumes<reco::CandidateView>(
iConfig.getParameter<
edm::InputTag>(
"RegionCandidates"));
175 stripClustersToken_ = mayConsume<edmNew::DetSetVector<SiStripCluster> >(stripClusterInputTag_);
176 pixelClustersToken_ = mayConsume<edmNew::DetSetVector<SiPixelCluster> >(pixelClusterInputTag_);
178 runTrackBuildingAnalyzerForSeed =
179 (doAllSeedPlots ||
iConfig.getParameter<
bool>(
"doSeedPTHisto") ||
iConfig.getParameter<
bool>(
"doSeedETAHisto") ||
180 iConfig.getParameter<
bool>(
"doSeedPHIHisto") ||
iConfig.getParameter<
bool>(
"doSeedPHIVsETAHisto") ||
181 iConfig.getParameter<
bool>(
"doSeedThetaHisto") ||
iConfig.getParameter<
bool>(
"doSeedQHisto") ||
182 iConfig.getParameter<
bool>(
"doSeedDxyHisto") ||
iConfig.getParameter<
bool>(
"doSeedDzHisto") ||
183 iConfig.getParameter<
bool>(
"doSeedNRecHitsHisto") ||
iConfig.getParameter<
bool>(
"doSeedNVsPhiProf") ||
184 iConfig.getParameter<
bool>(
"doSeedNVsEtaProf"));
186 if (doTkCandPlots || doAllSeedPlots || runTrackBuildingAnalyzerForSeed) {
187 magneticFieldToken_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
188 transientTrackingRecHitBuilderToken_ =
189 esConsumes<TransientTrackingRecHitBuilder, TransientRecHitRecord>(
edm::ESInputTag(
"", builderName));
192 doFractionPlot_ =
true;
194 doFractionPlot_ =
false;
200 doPlotsVsBXlumi_ =
iConfig.getParameter<
bool>(
"doPlotsVsBXlumi");
201 if (doPlotsVsBXlumi_)
203 doPlotsVsGoodPVtx_ =
iConfig.getParameter<
bool>(
"doPlotsVsGoodPVtx");
204 doPlotsVsLUMI_ =
iConfig.getParameter<
bool>(
"doPlotsVsLUMI");
205 doPlotsVsBX_ =
iConfig.getParameter<
bool>(
"doPlotsVsBX");
207 if (doPUmonitoring_) {
208 std::vector<edm::InputTag> primaryVertexInputTags =
209 iConfig.getParameter<std::vector<edm::InputTag> >(
"primaryVertexInputTags");
210 std::vector<edm::InputTag> selPrimaryVertexInputTags =
211 iConfig.getParameter<std::vector<edm::InputTag> >(
"selPrimaryVertexInputTags");
212 std::vector<std::string> pvLabels =
iConfig.getParameter<std::vector<std::string> >(
"pvLabels");
214 if (primaryVertexInputTags.size() == pvLabels.size() and
215 primaryVertexInputTags.size() == selPrimaryVertexInputTags.size()) {
216 for (
size_t i = 0;
i < primaryVertexInputTags.size();
i++) {
252 edm::LogWarning(
"TrackingMonitor") <<
"Qualty Name is invalid, using no quality criterea by default";
261 int TKNoBin = conf->getParameter<
int>(
"TkSizeBin");
262 double TKNoMin = conf->getParameter<
double>(
"TkSizeMin");
263 double TKNoMax = conf->getParameter<
double>(
"TkSizeMax");
265 int TCNoBin = conf->getParameter<
int>(
"TCSizeBin");
266 double TCNoMin = conf->getParameter<
double>(
"TCSizeMin");
267 double TCNoMax = conf->getParameter<
double>(
"TCSizeMax");
269 int TKNoSeedBin = conf->getParameter<
int>(
"TkSeedSizeBin");
270 double TKNoSeedMin = conf->getParameter<
double>(
"TkSeedSizeMin");
271 double TKNoSeedMax = conf->getParameter<
double>(
"TkSeedSizeMax");
274 double RecHitMin = conf->getParameter<
double>(
"RecHitMin");
275 double RecHitMax = conf->getParameter<
double>(
"RecHitMax");
277 int MeanHitBin = conf->getParameter<
int>(
"MeanHitBin");
278 double MeanHitMin = conf->getParameter<
double>(
"MeanHitMin");
279 double MeanHitMax = conf->getParameter<
double>(
"MeanHitMax");
281 int MeanLayBin = conf->getParameter<
int>(
"MeanLayBin");
282 double MeanLayMin = conf->getParameter<
double>(
"MeanLayMin");
283 double MeanLayMax = conf->getParameter<
double>(
"MeanLayMax");
285 int LSBin = conf->getParameter<
int>(
"LSBin");
286 int LSMin = conf->getParameter<
double>(
"LSMin");
287 int LSMax = conf->getParameter<
double>(
"LSMax");
290 if (StateName !=
"OuterSurface" && StateName !=
"InnerSurface" && StateName !=
"ImpactPoint" &&
291 StateName !=
"default" && StateName !=
"All") {
293 edm::LogWarning(
"TrackingMonitor") <<
"State Name is invalid, using 'ImpactPoint' by default";
304 histname =
"NumberOfTracks_" + CategoryName;
310 if (Folder ==
"Tr") {
311 histname =
"NumberOfTracks_PUvtx_" + CategoryName;
316 histname =
"NumberofTracks_Hardvtx_" + CategoryName;
322 histname =
"NumberofTracks_Hardvtx_PUvtx_" + CategoryName;
330 histname =
"NumberOfMeanRecHitsPerTrack_" + CategoryName;
335 histname =
"NumberOfMeanLayersPerTrack_" + CategoryName;
341 histname =
"FractionOfGoodTracks_" + CategoryName;
353 histname =
"NumberOfTracks_lumiFlag_" + CategoryName;
365 histname =
"NumberOfTracksVsLS_" + CategoryName;
371 histname =
"NumberOfRecHitsPerTrackVsLS_" + CategoryName;
378 histname =
"NumberEventsVsLS_" + CategoryName;
386 double GoodPVtxMin = ParametersGoodPVtx.
getParameter<
double>(
"GoodPVtxMin");
387 double GoodPVtxMax = ParametersGoodPVtx.
getParameter<
double>(
"GoodPVtxMax");
389 histname =
"NumberOfGoodPVtxVsLS_" + CategoryName;
391 ibooker.
bookProfile(histname, histname, LSBin, LSMin, LSMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
396 histname =
"NumberOfGoodPVtxWO0VsLS_" + CategoryName;
398 ibooker.
bookProfile(histname, histname, LSBin, LSMin, LSMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
403 histname =
"GoodTracksFractionVsLS_" + CategoryName;
414 double BXMax = 3564.5;
416 histname =
"NumberEventsVsBX_" + CategoryName;
421 histname =
"NumberOfTracksVsBX_" + CategoryName;
426 histname =
"NumberOfRecHitsPerTrackVsBX_" + CategoryName;
428 ibooker.
bookProfile(histname, histname, BXBin, BXMin, BXMax, RecHitMin, RecHitMax * 5,
"");
432 histname =
"NumberOfGoodPVtxVsBX_" + CategoryName;
434 ibooker.
bookProfile(histname, histname, BXBin, BXMin, BXMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
438 histname =
"NumberOfGoodPVtxWO0VsBX_" + CategoryName;
440 ibooker.
bookProfile(histname, histname, BXBin, BXMin, BXMax, GoodPVtxMin, 3. * GoodPVtxMax,
"");
445 histname =
"GoodTracksFractionVsBX_" + CategoryName;
464 int PVBin = conf->getParameter<
int>(
"PVBin");
465 float PVMin = conf->getParameter<
double>(
"PVMin");
466 float PVMax = conf->getParameter<
double>(
"PVMax");
468 histname =
"NumberOfTracksVsGoodPVtx";
473 histname =
"NumberOfTracksVsPUPVtx";
478 histname =
"NumberEventsVsGoodPVtx";
484 histname =
"GoodTracksFractionVsGoodPVtx";
490 histname =
"NumberOfRecHitsPerTrackVsGoodPVtx";
495 histname =
"NumberOfPVtxVsGoodPVtx";
500 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
501 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
502 histname =
"NumberOfPixelClustersVsGoodPVtx";
504 ibooker.
bookProfile(histname, histname, PVBin, PVMin, PVMax, NClusPxMin, 3. * NClusPxMax,
"");
508 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
509 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
510 histname =
"NumberOfStripClustersVsGoodPVtx";
512 ibooker.
bookProfile(histname, histname, PVBin, PVMin, PVMax, NClusStrMin, 3. * NClusStrMax,
"");
519 int LUMIBin = conf->getParameter<
int>(
"LUMIBin");
520 float LUMIMin = conf->getParameter<
double>(
"LUMIMin");
521 float LUMIMax = conf->getParameter<
double>(
"LUMIMax");
528 histname =
"NumberOfTracksVsLUMI";
534 histname =
"GoodTracksFractionVsLUMI";
540 histname =
"NumberOfRecHitsPerTrackVsLUMI";
542 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, RecHitMin, RecHitMax * 5,
"");
546 double PVMin = conf->getParameter<
double>(
"PVMin");
547 double PVMax = conf->getParameter<
double>(
"PVMax");
549 histname =
"NumberOfGoodPVtxVsLUMI";
554 histname =
"NumberOfGoodPVtxWO0VsLUMI";
556 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, PVMin, 3. * PVMax,
"");
560 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
561 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
562 histname =
"NumberOfPixelClustersVsGoodPVtx";
564 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, NClusPxMin, 3. * NClusPxMax,
"");
568 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
569 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
570 histname =
"NumberOfStripClustersVsLUMI";
572 ibooker.
bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, NClusStrMin, 3. * NClusStrMax,
"");
577 if (doPlotsVsBXlumi_) {
581 int BXlumiBin = BXlumiParameters.
getParameter<
int>(
"BXlumiBin");
582 double BXlumiMin = BXlumiParameters.
getParameter<
double>(
"BXlumiMin");
583 double BXlumiMax = BXlumiParameters.
getParameter<
double>(
"BXlumiMax");
585 histname =
"NumberOfTracksVsBXlumi_" + CategoryName;
587 ibooker.
bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, TKNoMin, 3. * TKNoMax,
"");
612 histname =
"NumberOfSeeds_" + seedProducer.label() +
"_" + CategoryName;
617 if (doSeedLumiAnalysis_) {
620 histname =
"NumberOfSeeds_lumiFlag_" + seedProducer.label() +
"_" + CategoryName;
630 ClusterLabels = conf->getParameter<std::vector<std::string> >(
"ClusterLabels");
632 std::vector<double> histoMin, histoMax;
633 std::vector<int> histoBin;
635 int NClusPxBin = conf->getParameter<
int>(
"NClusPxBin");
636 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
637 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
639 int NClusStrBin = conf->getParameter<
int>(
"NClusStrBin");
640 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
641 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
644 histoMin, histoMax, histoBin, NClusStrMin, NClusStrMax, NClusStrBin, NClusPxMin, NClusPxMax, NClusPxBin);
649 histname,
histname, histoBin[
i], histoMin[i], histoMax[i], TKNoSeedBin, TKNoSeedMin, TKNoSeedMax)));
659 int regionBin = conf->getParameter<
int>(
"RegionSizeBin");
660 double regionMin = conf->getParameter<
double>(
"RegionSizeMin");
661 double regionMax = conf->getParameter<
double>(
"RegionSizeMax");
663 histname =
"TrackingRegionsNumberOf_" + seedProducer.label() +
"_" + CategoryName;
674 histname =
"NumberOfTrackCandidates_" + tcProducer.
label() +
"_" + CategoryName;
679 histname =
"FractionOfCandOverSeeds_" + tcProducer.
label() +
"_" + CategoryName;
688 ClusterLabels = conf->getParameter<std::vector<std::string> >(
"ClusterLabels");
690 std::vector<double> histoMin, histoMax;
691 std::vector<int> histoBin;
693 int NClusStrBin = conf->getParameter<
int>(
"NClusStrBin");
694 double NClusStrMin = conf->getParameter<
double>(
"NClusStrMin");
695 double NClusStrMax = conf->getParameter<
double>(
"NClusStrMax");
697 int NClusPxBin = conf->getParameter<
int>(
"NClusPxBin");
698 double NClusPxMin = conf->getParameter<
double>(
"NClusPxMin");
699 double NClusPxMax = conf->getParameter<
double>(
"NClusPxMax");
702 int NTrk2DBin = ParametersNTrk2D.
getParameter<
int>(
"NTrk2DBin");
703 double NTrk2DMin = ParametersNTrk2D.getParameter<
double>(
"NTrk2DMin");
704 double NTrk2DMax = ParametersNTrk2D.getParameter<
double>(
"NTrk2DMax");
707 histoMin, histoMax, histoBin, NClusStrMin, NClusStrMax, NClusStrBin, NClusPxMin, NClusPxMax, NClusPxBin);
718 title =
"# of Clusters in (Pixel+Strip) Detectors";
751 if (lumiScalers.
isValid() && !lumiScalers->empty()) {
752 LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
753 lumi = scalit->instantLumi();
758 lumi = metaData->instLumi();
775 int numberOfTracks_den = 0;
777 if (allTrackHandle.
isValid()) {
781 numberOfTracks_den++;
788 pv0 = &pvHandle->front();
798 int numberOfTracks = trackHandle->size();
799 int numberOfTracks_num = 0;
800 int numberOfTracks_pv0 = 0;
804 int totalRecHits = 0, totalLayers = 0;
814 numberOfTracks_num++;
816 ++numberOfTracks_pv0;
821 track->numberOfValidHits());
826 totalRecHits +=
track->numberOfValidHits();
827 totalLayers +=
track->hitPattern().trackerLayersWithMeasurement();
835 if (numberOfTracks_den > 0)
836 frac =
static_cast<double>(numberOfTracks_num) / static_cast<double>(numberOfTracks_den);
841 if (Folder ==
"Tr") {
862 if (numberOfTracks > 0) {
863 double meanRecHits =
static_cast<double>(totalRecHits) / static_cast<double>(numberOfTracks);
864 double meanLayers =
static_cast<double>(totalLayers) / static_cast<double>(numberOfTracks);
909 for (TrackCandidateCollection::const_iterator cand = theTCCollection.begin(); cand != theTCCollection.end();
914 edm::LogWarning(
"TrackingMonitor") <<
"No Track Candidates in the event. Not filling associated histograms";
919 std::vector<const MVACollection*> mvaCollections;
920 std::vector<const QualityMaskCollection*> qualityMaskCollections;
927 hmva = iEvent.
getHandle(std::get<0>(tokenTpl));
928 hqual = iEvent.
getHandle(std::get<1>(tokenTpl));
929 mvaCollections.push_back(hmva.
product());
930 qualityMaskCollections.push_back(hqual.
product());
944 const auto& seedCollection = *seedHandle;
953 std::vector<int> NClus;
962 const auto& seedStopInfo = *stopHandle;
964 if (seedStopInfo.size() == seedCollection.size()) {
974 for (
size_t i = 0;
i < seedCollection.size(); ++
i) {
976 iEvent, iSetup, seedCollection[
i], seedStopInfo[i], bs, theMF, theTTRHBuilder);
980 <<
"Seed collection size (" << seedCollection.size()
981 <<
") differs from seed stop info collection size (" << seedStopInfo.size()
982 <<
"). This is a sign of inconsistency in the configuration. Not filling associated histograms.";
987 edm::LogWarning(
"TrackingMonitor") <<
"No Trajectory seeds in the event. Not filling associated histograms";
995 const auto&
regions = *hregions;
1001 const auto&
regions = *hregions;
1014 std::vector<int> NClus;
1027 size_t totalNumGoodPV = 0;
1029 for (reco::VertexCollection::const_iterator
pv = pvHandle->begin();
pv != pvHandle->end(); ++
pv) {
1031 if (
pv->isFake() ||
pv->tracksSize() == 0)
1042 if (totalNumGoodPV > 1)
1044 double(numberOfTracks - numberOfTracks_pv0) /
double(totalNumGoodPV - 1));
1064 std::vector<int> NClus;
1066 std::ostringstream
ss;
1067 ss <<
"VI stat " << totalNumGoodPV <<
' ' << numberOfTracks;
1069 ss <<
' ' << NClus[
i];
1082 if (doPlotsVsBXlumi_) {
1088 if (totalNumGoodPV != 0)
1091 if (totalNumGoodPV != 0)
1094 if (totalNumGoodPV != 0)
1103 std::vector<double>& arrayMax,
1104 std::vector<int>& arrayBin,
1126 arrayMax[
i] = smax + pmax;
1130 <<
" not defined, using strip parameters ";
1139 int ncluster_pix = -1;
1140 int ncluster_strip = -1;
1146 ncluster_pix = (*pixel_clusters).dataSize();
1147 ncluster_strip = (*strip_clusters).dataSize();
1153 arrayNclus[
i] = ncluster_pix;
1155 arrayNclus[
i] = ncluster_strip;
1157 arrayNclus[
i] = ncluster_pix + ncluster_strip;
1160 <<
" not defined using stri parametrs ";
1161 arrayNclus[
i] = ncluster_strip;
edm::EDGetTokenT< std::vector< SeedStopInfo > > seedStopInfoToken_
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
StringCutObjectSelector< reco::Track, true > denSelection_
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)
const edm::EventSetup & c
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const SeedStopInfo &stopInfo, const reco::BeamSpot &bs, const MagneticField &theMF, const TransientTrackingRecHitBuilder &theTTRHBuilder)
MonitorElement * NumberOfTracksVsBX
edm::EDGetTokenT< OnlineLuminosityRecord > metaDataToken_
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
uint16_t *__restrict__ id
virtual void setNclus(const edm::Event &, std::vector< int > &)
virtual void setCurrentFolder(std::string const &fullpath)
~TrackingMonitor() override
MonitorElement * NumberEventsOfVsGoodPVtx
GetLumi * theLumiDetails_
#define DEFINE_FWK_MODULE(type)
std::vector< TrackCandidate > TrackCandidateCollection
constexpr bool isUninitialized() const noexcept
MonitorElement * FractionCandidatesOverSeeds
int bunchCrossing() const
void setBX(const edm::Event &)
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 &)
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 >
LuminosityBlockNumber_t luminosityBlock() const
const Point & position() const
position
void analyze(const edm::Event &, const edm::EventSetup &) override
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
MonitorElement * NumberofTracks_Hardvtx_PUvtx
edm::EDGetTokenT< edm::View< reco::Track > > mvaTrackToken_
bool getData(T &iHolder) const
double getValue(const edm::Event &)
MonitorElement * NumberOfGoodPVtxWO0VsLUMI
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
MonitorElement * NumberOfSeeds
const_iterator begin() const
MonitorElement * NumberOfTrackingRegions
MonitorElement * NumberOfGoodPVtxVsLS
edm::EDGetTokenT< edm::View< reco::Track > > allTrackToken_
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
MonitorElement * 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 * NumberOfTracks_PUvtx
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_
UseScope< MonitorElementData::Scope::LUMI > UseLumiScope
MonitorElement * NumberEventsOfVsBX
MonitorElement * NumberOfStripClustersVsGoodPVtx
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
size_t tracksSize() const
number of tracks
MonitorElement * NumberOfPixelClustersVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsLS
MonitorElement * GoodTracksFractionVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
edm::EDGetTokenT< TrackingRegionsSeedingLayerSets > regionLayerSetsToken_
edm::ParameterSetID confID_
MonitorElement * NumberOfPixelClustersVsLUMI
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTracksVsBXlumi
bool doGeneralPropertiesPlots_
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > transientTrackingRecHitBuilderToken_
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
void setNumberOfGoodVertices(const edm::Event &)
T const * product() const
edm::EDGetTokenT< TrackCandidateCollection > trackCandidateToken_
MonitorElement * NumberOfMeanLayersPerTrack
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
T getParameter(std::string const &) const
tadqm::TrackAnalyzer * theTrackAnalyzer
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< reco::CandidateView > regionCandidateToken_
MonitorElement * GoodTracksFractionVsBX
MonitorElement * NumberOfSeeds_lumiFlag
TrackingMonitor(const edm::ParameterSet &)
MonitorElement * NumberofTracks_Hardvtx
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
MonitorElement * NumberOfTrackCandidates
const_iterator end() const
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
Log< level::Warning, false > LogWarning
MonitorElement * NumberOfGoodPVtxVsBX
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * NumberEventsOfVsLUMI
std::vector< MonitorElement * > SeedsVsClusters
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
MonitorElement * NumberOfTracks_lumiFlag
StringCutObjectSelector< reco::Track, true > numSelection_
edm::EDGetTokenT< reco::BeamSpot > bsSrcToken_
MonitorElement * NumberOfTracks
static Registry * instance()
edm::EDGetTokenT< reco::VertexCollection > pvSrcToken_
MonitorElement * NumberEventsOfVsLS
MonitorElement * NumberOfTracksVsLUMI
std::vector< std::string > ClusterLabels
MonitorElement * NumberOfGoodPVtxWO0VsBX
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)