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";
278 ibooker.setCurrentFolder(MEFolderName);
284 ibooker.setCurrentFolder(MEFolderName +
"/GeneralProperties");
286 histname =
"NumberOfTracks_" + CategoryName;
292 if (Folder ==
"Tr") {
293 histname =
"NumberOfTracks_PUvtx_" + CategoryName;
298 histname =
"NumberofTracks_Hardvtx_" + CategoryName;
300 ibooker.book1D(
histname,
histname, TKNoBin / 10, TKNoMin, (TKNoMax / 10 + 0.5) * 3. - 0.5);
304 histname =
"NumberofTracks_Hardvtx_PUvtx_" + CategoryName;
312 histname =
"NumberOfMeanRecHitsPerTrack_" + CategoryName;
317 histname =
"NumberOfMeanLayersPerTrack_" + CategoryName;
323 histname =
"FractionOfGoodTracks_" + CategoryName;
332 ibooker.setCurrentFolder(MEFolderName +
"/LSanalysis");
334 histname =
"NumberOfTracks_lumiFlag_" + CategoryName;
344 ibooker.setCurrentFolder(MEFolderName +
"/GeneralProperties");
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;
389 ibooker.setCurrentFolder(MEFolderName +
"/BXanalysis");
392 double BXMax = 3564.5;
394 histname =
"NumberEventsVsBX_" + CategoryName;
399 histname =
"NumberOfTracksVsBX_" + CategoryName;
400 NumberOfTracksVsBX = ibooker.bookProfile(histname, histname, BXBin, BXMin, BXMax, TKNoMin, TKNoMax * 3.,
"");
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;
439 ibooker.setCurrentFolder(MEFolderName +
"/PUmonitoring");
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";
451 NumberOfTracksVsPUPVtx = ibooker.bookProfile(histname, histname, PVBin, PVMin, PVMax, 0., TKNoMax * 5.,
"");
455 histname =
"NumberEventsVsGoodPVtx";
461 histname =
"GoodTracksFractionVsGoodPVtx";
467 histname =
"NumberOfRecHitsPerTrackVsGoodPVtx";
472 histname =
"NumberOfPVtxVsGoodPVtx";
473 NumberOfPVtxVsGoodPVtx = ibooker.bookProfile(histname, histname, PVBin, PVMin, PVMax, 0., 3. * PVMax,
"");
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,
"");
495 ibooker.setCurrentFolder(MEFolderName +
"/LUMIanalysis");
496 int LUMIBin = conf->getParameter<
int>(
"LUMIBin");
497 float LUMIMin = conf->getParameter<
double>(
"LUMIMin");
498 float LUMIMax = conf->getParameter<
double>(
"LUMIMax");
500 histname =
"NumberEventsVsLUMI";
505 histname =
"NumberOfTracksVsLUMI";
506 NumberOfTracksVsLUMI = ibooker.bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, 0., 2000.,
"");
511 histname =
"GoodTracksFractionVsLUMI";
517 histname =
"NumberOfRecHitsPerTrackVsLUMI";
522 double PVMin = conf->getParameter<
double>(
"PVMin");
523 double PVMax = conf->getParameter<
double>(
"PVMax");
525 histname =
"NumberOfGoodPVtxVsLUMI";
526 NumberOfGoodPVtxVsLUMI = ibooker.bookProfile(histname, histname, LUMIBin, LUMIMin, LUMIMax, PVMin, 3. * PVMax,
"");
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,
"");
554 ibooker.setCurrentFolder(MEFolderName +
"/PUmonitoring");
561 histname =
"NumberOfTracksVsBXlumi_" + CategoryName;
563 ibooker.bookProfile(histname, histname, BXlumiBin, BXlumiMin, BXlumiMax, TKNoMin, 3. * TKNoMax,
"");
573 ibooker.setCurrentFolder(MEFolderName +
"/TrackBuilding");
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"));
592 ibooker.setCurrentFolder(MEFolderName +
"/TrackBuilding");
593 histname =
"NumberOfSeeds_" + seedProducer.
label() +
"_" + CategoryName;
594 NumberOfSeeds = ibooker.book1D(histname, histname, TKNoSeedBin, TKNoSeedMin, TKNoSeedMax);
598 if (doSeedLumiAnalysis_) {
599 ibooker.setCurrentFolder(MEFolderName +
"/LSanalysis");
600 histname =
"NumberOfSeeds_lumiFlag_" + seedProducer.
label() +
"_" + CategoryName;
608 ibooker.setCurrentFolder(MEFolderName +
"/TrackBuilding");
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);
627 histname =
"SeedsVsClusters_" + seedProducer.
label() +
"_Vs_" +
ClusterLabels[
i] +
"_" + CategoryName;
628 SeedsVsClusters.push_back(dynamic_cast<MonitorElement*>(ibooker.book2D(
629 histname, histname, histoBin[
i], histoMin[i], histoMax[i], TKNoSeedBin, TKNoSeedMin, TKNoSeedMax)));
637 ibooker.setCurrentFolder(MEFolderName +
"/TrackBuilding");
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");
653 ibooker.setCurrentFolder(MEFolderName +
"/TrackBuilding");
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);
702 ibooker.setCurrentFolder(MEFolderName +
"/HitProperties");
705 ibooker.setCurrentFolder(MEFolderName +
"/HitProperties");
706 histname =
"TracksVs" +
ClusterLabels[
i] +
"Cluster_" + CategoryName;
708 ibooker.book2D(histname, histname, histoBin[i], histoMin[i], histoMax[i], NTrk2DBin, NTrk2DMin, NTrk2DMax)));
711 title =
"# of Clusters in (Pixel+Strip) Detectors";
T getParameter(std::string const &) const
std::vector< MonitorElement * > NumberOfTrkVsClusters
MonitorElement * FractionOfGoodTracks
virtual void setMaxMinBin(std::vector< double > &, std::vector< double > &, std::vector< int > &, double, double, int, double, double, int)
MonitorElement * NumberOfTracksVsBX
TrackAnalyzer * theTrackAnalyzer
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
MonitorElement * NumberEventsOfVsGoodPVtx
MonitorElement * FractionCandidatesOverSeeds
void setLumiFlag()
this ME is meant to be stored for each luminosity section
MonitorElement * GoodTracksFractionVsLUMI
MonitorElement * NumberOfPVtxVsGoodPVtx
MonitorElement * NumberOfMeanRecHitsPerTrack
MonitorElement * NumberOfTracksVsGoodPVtx
void initHisto(DQMStore::IBooker &ibooker, const edm::ParameterSet &)
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
MonitorElement * NumberofTracks_Hardvtx_PUvtx
MonitorElement * NumberOfGoodPVtxWO0VsLUMI
MonitorElement * NumberOfSeeds
MonitorElement * NumberOfTrackingRegions
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
MonitorElement * NumberOfGoodPVtxVsLS
MonitorElement * NumberOfGoodPVtxVsLUMI
MonitorElement * NumberOfTracks_PUvtx
MonitorElement * NumberOfTracksVsLS
MonitorElement * NumberOfGoodPVtxWO0VsLS
bool getMapped(key_type const &k, value_type &result) const
MonitorElement * NumberOfTracksVsPUPVtx
MonitorElement * NumberEventsOfVsBX
bool runTrackBuildingAnalyzerForSeed
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)
MonitorElement * NumberOfPixelClustersVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsLS
MonitorElement * GoodTracksFractionVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
edm::ParameterSetID confID_
MonitorElement * NumberOfPixelClustersVsLUMI
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTracksVsBXlumi
bool doGeneralPropertiesPlots_
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
MonitorElement * NumberOfMeanLayersPerTrack
GenericTriggerEventFlag * genTriggerEventFlag_
MonitorElement * GoodTracksFractionVsBX
MonitorElement * NumberOfSeeds_lumiFlag
MonitorElement * NumberofTracks_Hardvtx
MonitorElement * NumberOfTrackCandidates
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
MonitorElement * NumberOfGoodPVtxVsBX
MonitorElement * NumberEventsOfVsLUMI
std::vector< MonitorElement * > SeedsVsClusters
MonitorElement * NumberOfTracks_lumiFlag
MonitorElement * NumberOfTracks
static Registry * instance()
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)