CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
Phase2TrackerMonitorDigi Class Reference

#include <Phase2TrackerMonitorDigi.h>

Inheritance diagram for Phase2TrackerMonitorDigi:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

struct  DigiMEs
 
struct  Ph2DigiCluster
 

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
void bookHistograms (DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
 
void dqmBeginRun (const edm::Run &iRun, const edm::EventSetup &iSetup) override
 
std::string getHistoId (uint32_t det_id, bool flag)
 
 Phase2TrackerMonitorDigi (const edm::ParameterSet &)
 
 ~Phase2TrackerMonitorDigi () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Public Attributes

MonitorElementRZOccupancyMap
 
MonitorElementRZPositionMap
 
MonitorElementXYOccupancyMap
 
MonitorElementXYPositionMap
 

Private Member Functions

void bookLayerHistos (DQMStore::IBooker &ibooker, unsigned int det_id)
 
void fillDigiClusters (DigiMEs &mes, std::vector< Ph2DigiCluster > &digi_clusters)
 
void fillITPixelDigiHistos (const edm::Handle< edm::DetSetVector< PixelDigi >> handle)
 
void fillOTDigiHistos (const edm::Handle< edm::DetSetVector< Phase2TrackerDigi >> handle)
 

Private Attributes

bool clsFlag_
 
edm::ParameterSet config_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
std::string geomType_
 
edm::InputTag itPixelDigiSrc_
 
const edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > itPixelDigiToken_
 
std::map< std::string, DigiMEslayerMEs
 
edm::InputTag otDigiSrc_
 
const edm::EDGetTokenT< edm::DetSetVector< Phase2TrackerDigi > > otDigiToken_
 
bool pixelFlag_
 
const TrackerGeometrytkGeom_ = nullptr
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoToken_
 
const TrackerTopologytTopo_ = nullptr
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description: It generates various histograms of digi properties. Manual switching is enabled for each histogram. Seperate Histograms are there for P type and S type sensors of the outer Tracker

Definition at line 20 of file Phase2TrackerMonitorDigi.h.

Constructor & Destructor Documentation

◆ Phase2TrackerMonitorDigi()

Phase2TrackerMonitorDigi::Phase2TrackerMonitorDigi ( const edm::ParameterSet iConfig)
explicit

Definition at line 48 of file Phase2TrackerMonitorDigi.cc.

49  : config_(iConfig),
50  pixelFlag_(config_.getParameter<bool>("PixelPlotFillingFlag")),
51  clsFlag_(config_.getParameter<bool>("StandAloneClusteriserFlag")),
52  geomType_(config_.getParameter<std::string>("GeometryType")),
53  otDigiSrc_(config_.getParameter<edm::InputTag>("OuterTrackerDigiSource")),
54  itPixelDigiSrc_(config_.getParameter<edm::InputTag>("InnerPixelDigiSource")),
57  geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()),
58  topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()) {
59  edm::LogInfo("Phase2TrackerMonitorDigi") << ">>> Construct Phase2TrackerMonitorDigi ";
60 }

◆ ~Phase2TrackerMonitorDigi()

Phase2TrackerMonitorDigi::~Phase2TrackerMonitorDigi ( )
override

Definition at line 65 of file Phase2TrackerMonitorDigi.cc.

65  {
66  // do anything here that needs to be done at desctruction time
67  // (e.g. close files, deallocate resources etc.)
68  edm::LogInfo("Phase2TrackerMonitorDigi") << ">>> Destroy Phase2TrackerMonitorDigi ";
69 }

Member Function Documentation

◆ analyze()

void Phase2TrackerMonitorDigi::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 80 of file Phase2TrackerMonitorDigi.cc.

80  {
81  using namespace edm;
82 
83  // Get digis
85  iEvent.getByToken(itPixelDigiToken_, pixDigiHandle);
86 
88  iEvent.getByToken(otDigiToken_, otDigiHandle);
89 
90  // Tracker Topology
91  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
92  if (theTkDigiGeomWatcher.check(iSetup)) {
93  if (pixelFlag_)
94  fillITPixelDigiHistos(pixDigiHandle);
95  else
96  fillOTDigiHistos(otDigiHandle);
97  }
98 }

References edm::ESWatcher< T >::check(), fillITPixelDigiHistos(), fillOTDigiHistos(), iEvent, itPixelDigiToken_, otDigiToken_, and pixelFlag_.

◆ bookHistograms()

void Phase2TrackerMonitorDigi::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 341 of file Phase2TrackerMonitorDigi.cc.

343  {
344  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
345  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
346 
347  if (theTkDigiGeomWatcher.check(iSetup)) {
348  for (auto const& det_u : tkGeom_->detUnits()) {
349  unsigned int detId_raw = det_u->geographicalId().rawId();
350  bookLayerHistos(ibooker, detId_raw);
351  }
352  }
353  ibooker.cd();
354  std::stringstream folder_name;
355  folder_name << top_folder << "/"
356  << "DigiMonitor";
357  ibooker.setCurrentFolder(folder_name.str());
358 
360  edm::ParameterSet ParametersOcc = config_.getParameter<edm::ParameterSet>("DigiOccupancyPH");
361  if (Parameters.getParameter<bool>("switch"))
362  XYPositionMap = ibooker.book2D("DigiXPosVsYPos",
363  "DigiXPosVsYPos",
364  Parameters.getParameter<int32_t>("Nxbins"),
365  Parameters.getParameter<double>("xmin"),
366  Parameters.getParameter<double>("xmax"),
367  Parameters.getParameter<int32_t>("Nybins"),
368  Parameters.getParameter<double>("ymin"),
369  Parameters.getParameter<double>("ymax"));
370  else
371  XYPositionMap = nullptr;
372 
373  if (Parameters.getParameter<bool>("switch") && ParametersOcc.getParameter<bool>("switch"))
374  XYOccupancyMap = ibooker.bookProfile2D("OccupancyInXY",
375  "OccupancyInXY",
376  Parameters.getParameter<int32_t>("Nxbins"),
377  Parameters.getParameter<double>("xmin"),
378  Parameters.getParameter<double>("xmax"),
379  Parameters.getParameter<int32_t>("Nybins"),
380  Parameters.getParameter<double>("ymin"),
381  Parameters.getParameter<double>("ymax"),
382  ParametersOcc.getParameter<double>("xmin"),
383  ParametersOcc.getParameter<double>("xmax"));
384  else
385  XYOccupancyMap = nullptr;
386 
387  Parameters = config_.getParameter<edm::ParameterSet>("RZPositionMapH");
388  if (Parameters.getParameter<bool>("switch"))
389  RZPositionMap = ibooker.book2D("DigiRPosVsZPos",
390  "DigiRPosVsZPos",
391  Parameters.getParameter<int32_t>("Nxbins"),
392  Parameters.getParameter<double>("xmin"),
393  Parameters.getParameter<double>("xmax"),
394  Parameters.getParameter<int32_t>("Nybins"),
395  Parameters.getParameter<double>("ymin"),
396  Parameters.getParameter<double>("ymax"));
397  else
398  RZPositionMap = nullptr;
399 
400  if (Parameters.getParameter<bool>("switch") && ParametersOcc.getParameter<bool>("switch"))
401  RZOccupancyMap = ibooker.bookProfile2D("OccupancyInRZ",
402  "OccupancyInRZ",
403  Parameters.getParameter<int32_t>("Nxbins"),
404  Parameters.getParameter<double>("xmin"),
405  Parameters.getParameter<double>("xmax"),
406  Parameters.getParameter<int32_t>("Nybins"),
407  Parameters.getParameter<double>("ymin"),
408  Parameters.getParameter<double>("ymax"),
409  ParametersOcc.getParameter<double>("xmin"),
410  ParametersOcc.getParameter<double>("xmax"));
411  else
412  RZOccupancyMap = nullptr;
413 }

References dqm::implementation::IBooker::book2D(), bookLayerHistos(), dqm::implementation::IBooker::bookProfile2D(), dqm::implementation::NavigatorBase::cd(), config_, TrackerGeometry::detUnits(), fed_dqm_sourceclient-live_cfg::folder_name, edm::ParameterSet::getParameter(), RZOccupancyMap, RZPositionMap, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, tkGeom_, XYOccupancyMap, and XYPositionMap.

◆ bookLayerHistos()

void Phase2TrackerMonitorDigi::bookLayerHistos ( DQMStore::IBooker ibooker,
unsigned int  det_id 
)
private

Definition at line 417 of file Phase2TrackerMonitorDigi.cc.

417  {
418  int layer;
419  if (pixelFlag_)
420  layer = tTopo_->getITPixelLayerNumber(det_id);
421  else
422  layer = tTopo_->getOTLayerNumber(det_id);
423 
424  if (layer < 0)
425  return;
427  std::map<std::string, DigiMEs>::iterator pos = layerMEs.find(key);
428 
429  if (pos == layerMEs.end()) {
430  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
431  std::stringstream folder_name;
432 
433  //For endCap: P-type sensors are present only upto ring 10 for discs 1&2 (TEDD-1) and upto ring 7 for discs 3,4&5 (TEDD-2)
434  bool isPStypeModForTEDD_1 =
435  (!pixelFlag_ && layer > 100 && tTopo_->tidWheel(det_id) < 3 && tTopo_->tidRing(det_id) <= 10) ? true : false;
436  bool isPStypeModForTEDD_2 =
437  (!pixelFlag_ && layer > 100 && tTopo_->tidWheel(det_id) >= 3 && tTopo_->tidRing(det_id) <= 7) ? true : false;
438 
439  bool isPtypeSensor =
440  (pixelFlag_ || (layer < 4 || (layer > 6 && (isPStypeModForTEDD_1 || isPStypeModForTEDD_2)))) ? true : false;
441 
442  ibooker.cd();
443  ibooker.setCurrentFolder(top_folder + "/DigiMonitor/" + key);
444  edm::LogInfo("Phase2TrackerMonitorDigi") << " Booking Histograms in : " << key;
445 
446  std::ostringstream HistoName;
447  DigiMEs local_mes;
448 
449  local_mes.nDigiPerLayer = 0;
450  local_mes.nHitDetsPerLayer = 0;
451 
453  edm::ParameterSet EtaParameters = config_.getParameter<edm::ParameterSet>("EtaH");
454  HistoName.str("");
455  HistoName << "NumberOfDigisPerDet";
456  if (Parameters.getParameter<bool>("switch"))
457  local_mes.NumberOfDigisPerDet = ibooker.book1D(HistoName.str(),
458  HistoName.str(),
459  Parameters.getParameter<int32_t>("Nbins"),
460  Parameters.getParameter<double>("xmin"),
461  Parameters.getParameter<double>("xmax"));
462  else
463  local_mes.NumberOfDigisPerDet = nullptr;
464 
465  Parameters = config_.getParameter<edm::ParameterSet>("TotalNumberOfDigisPerLayerH");
466  HistoName.str("");
467  HistoName << "TotalNumberOfDigisPerLayer";
468  if (Parameters.getParameter<bool>("switch"))
469  local_mes.TotalNumberOfDigisPerLayer = ibooker.book1D(HistoName.str(),
470  HistoName.str(),
471  Parameters.getParameter<int32_t>("Nbins"),
472  Parameters.getParameter<double>("xmin"),
473  Parameters.getParameter<double>("xmax"));
474  else
475  local_mes.TotalNumberOfDigisPerLayer = nullptr;
476 
477  Parameters = config_.getParameter<edm::ParameterSet>("NumberOfHitDetsPerLayerH");
478  HistoName.str("");
479  HistoName << "NumberOfHitDetectorsPerLayer";
480  if (Parameters.getParameter<bool>("switch"))
481  local_mes.NumberOfHitDetectorsPerLayer = ibooker.book1D(HistoName.str(),
482  HistoName.str(),
483  Parameters.getParameter<int32_t>("Nbins"),
484  Parameters.getParameter<double>("xmin"),
485  Parameters.getParameter<double>("xmax"));
486  else
487  local_mes.NumberOfHitDetectorsPerLayer = nullptr;
488 
489  // Plots only for the inner pixel
490  if (pixelFlag_) {
492  HistoName.str("");
493  HistoName << "ChargeXYMap";
494  if (Parameters.getParameter<bool>("switch"))
495  local_mes.ChargeXYMap = ibooker.book2D(HistoName.str(),
496  HistoName.str(),
497  Parameters.getParameter<int32_t>("Nxbins"),
498  Parameters.getParameter<double>("xmin"),
499  Parameters.getParameter<double>("xmax"),
500  Parameters.getParameter<int32_t>("Nybins"),
501  Parameters.getParameter<double>("ymin"),
502  Parameters.getParameter<double>("ymax"));
503  else
504  local_mes.ChargeXYMap = nullptr;
505 
507  HistoName.str("");
508  HistoName << "ChargeOfDigis";
509  if (Parameters.getParameter<bool>("switch"))
510  local_mes.ChargeOfDigis = ibooker.book1D(HistoName.str(),
511  HistoName.str(),
512  Parameters.getParameter<int32_t>("Nbins"),
513  Parameters.getParameter<double>("xmin"),
514  Parameters.getParameter<double>("xmax"));
515  else
516  local_mes.ChargeOfDigis = nullptr;
517 
518  // For standalone clusteriser
519  if (clsFlag_) {
520  edm::ParameterSet WidthParameters = config_.getParameter<edm::ParameterSet>("ClusterWidthH");
521  HistoName.str("");
522  HistoName << "ChargeOfDigisVsWidth";
523  if (Parameters.getParameter<bool>("switch") && WidthParameters.getParameter<bool>("switch"))
524  local_mes.ChargeOfDigisVsWidth = ibooker.book2D(HistoName.str(),
525  HistoName.str(),
526  Parameters.getParameter<int32_t>("Nbins"),
527  Parameters.getParameter<double>("xmin"),
528  Parameters.getParameter<double>("xmax"),
529  WidthParameters.getParameter<int32_t>("Nbins"),
530  WidthParameters.getParameter<double>("xmin"),
531  WidthParameters.getParameter<double>("xmax"));
532  else
533  local_mes.ChargeOfDigisVsWidth = nullptr;
534  }
535  }
536  // For outer tracker modules (S-type histograms)
537  else {
538  Parameters = config_.getParameter<edm::ParameterSet>("DigiOccupancySH");
539  HistoName.str("");
540  HistoName << "DigiOccupancyS";
541  if (Parameters.getParameter<bool>("switch"))
542  local_mes.DigiOccupancyS = ibooker.book1D(HistoName.str(),
543  HistoName.str(),
544  Parameters.getParameter<int32_t>("Nbins"),
545  Parameters.getParameter<double>("xmin"),
546  Parameters.getParameter<double>("xmax"));
547  else
548  local_mes.DigiOccupancyS = nullptr;
549 
550  HistoName.str("");
551  HistoName << "DigiOccupancyVsEtaS";
552  if (Parameters.getParameter<bool>("switch") && EtaParameters.getParameter<bool>("switch"))
553  local_mes.EtaOccupancyProfS = ibooker.bookProfile(HistoName.str(),
554  HistoName.str(),
555  EtaParameters.getParameter<int32_t>("Nbins"),
556  EtaParameters.getParameter<double>("xmin"),
557  EtaParameters.getParameter<double>("xmax"),
558  Parameters.getParameter<double>("xmin"),
559  Parameters.getParameter<double>("xmax"),
560  "");
561  else
562  local_mes.EtaOccupancyProfS = nullptr;
563 
564  Parameters = config_.getParameter<edm::ParameterSet>("PositionOfDigisSH");
565  HistoName.str("");
566  HistoName << "PositionOfDigisS";
567  if (Parameters.getParameter<bool>("switch"))
568  local_mes.PositionOfDigisS = ibooker.book2D(HistoName.str(),
569  HistoName.str(),
570  Parameters.getParameter<int32_t>("Nxbins"),
571  Parameters.getParameter<double>("xmin"),
572  Parameters.getParameter<double>("xmax"),
573  Parameters.getParameter<int32_t>("Nybins"),
574  Parameters.getParameter<double>("ymin"),
575  Parameters.getParameter<double>("ymax"));
576  else
577  local_mes.PositionOfDigisS = nullptr;
578 
579  // For standalone clusteriser
580  if (clsFlag_) {
581  Parameters = config_.getParameter<edm::ParameterSet>("ClusterPositionSH");
582  HistoName.str("");
583  HistoName << "ClusterPositionS";
584  if (Parameters.getParameter<bool>("switch"))
585  local_mes.ClusterPositionS = ibooker.book2D(HistoName.str(),
586  HistoName.str(),
587  Parameters.getParameter<int32_t>("Nxbins"),
588  Parameters.getParameter<double>("xmin"),
589  Parameters.getParameter<double>("xmax"),
590  Parameters.getParameter<int32_t>("Nybins"),
591  Parameters.getParameter<double>("ymin"),
592  Parameters.getParameter<double>("ymax"));
593  else
594  local_mes.ClusterPositionS = nullptr;
595  }
596  // Only for the S-type sensor of PS module
597  // FracOfOverThresholdBits is only available for S-type sensor of PS module
598  if (isPStypeModForTEDD_1 || isPStypeModForTEDD_2) {
599  HistoName.str("");
600  HistoName << "FractionOfOverThresholdDigis";
601  local_mes.FractionOfOvTBits = ibooker.book1D(HistoName.str(), HistoName.str(), 11, -0.05, 1.05);
602 
603  Parameters = config_.getParameter<edm::ParameterSet>("NumberOfDigisPerDetH");
604  HistoName.str("");
605  HistoName << "FractionOfOverThresholdDigisVaEta";
606  if (Parameters.getParameter<bool>("switch") && EtaParameters.getParameter<bool>("switch"))
607  local_mes.FractionOfOvTBitsVsEta = ibooker.bookProfile(HistoName.str(),
608  HistoName.str(),
609  EtaParameters.getParameter<int32_t>("Nbins"),
610  EtaParameters.getParameter<double>("xmin"),
611  EtaParameters.getParameter<double>("xmax"),
612  Parameters.getParameter<double>("xmin"),
613  Parameters.getParameter<double>("xmax"),
614  "");
615  else
616  local_mes.FractionOfOvTBitsVsEta = nullptr;
617  }
618  }
619 
620  // Plots for P-type sensor (Pixel or P-side of PS module)
621  if (isPtypeSensor) {
622  Parameters = config_.getParameter<edm::ParameterSet>("DigiOccupancyPH");
623  HistoName.str("");
624  HistoName << "DigiOccupancyP";
625  if (Parameters.getParameter<bool>("switch"))
626  local_mes.DigiOccupancyP = ibooker.book1D(HistoName.str(),
627  HistoName.str(),
628  Parameters.getParameter<int32_t>("Nbins"),
629  Parameters.getParameter<double>("xmin"),
630  Parameters.getParameter<double>("xmax"));
631  else
632  local_mes.DigiOccupancyP = nullptr;
633 
634  HistoName.str("");
635  HistoName << "DigiOccupancyVsEtaP";
636  if (Parameters.getParameter<bool>("switch") && EtaParameters.getParameter<bool>("switch"))
637  local_mes.EtaOccupancyProfP = ibooker.bookProfile(HistoName.str(),
638  HistoName.str(),
639  EtaParameters.getParameter<int32_t>("Nbins"),
640  EtaParameters.getParameter<double>("xmin"),
641  EtaParameters.getParameter<double>("xmax"),
642  Parameters.getParameter<double>("xmin"),
643  Parameters.getParameter<double>("xmax"),
644  "");
645  else
646  local_mes.EtaOccupancyProfP = nullptr;
647 
648  Parameters = config_.getParameter<edm::ParameterSet>("PositionOfDigisPH");
649  HistoName.str("");
650  HistoName << "PositionOfDigisP";
651  if (Parameters.getParameter<bool>("switch"))
652  local_mes.PositionOfDigisP = ibooker.book2D(HistoName.str(),
653  HistoName.str(),
654  Parameters.getParameter<int32_t>("Nxbins"),
655  Parameters.getParameter<double>("xmin"),
656  Parameters.getParameter<double>("xmax"),
657  Parameters.getParameter<int32_t>("Nybins"),
658  Parameters.getParameter<double>("ymin"),
659  Parameters.getParameter<double>("ymax"));
660  else
661  local_mes.PositionOfDigisP = nullptr;
662 
663  if (clsFlag_) {
664  Parameters = config_.getParameter<edm::ParameterSet>("ClusterPositionPH");
665  HistoName.str("");
666  HistoName << "ClusterPositionP";
667  if (Parameters.getParameter<bool>("switch"))
668  local_mes.ClusterPositionP = ibooker.book2D(HistoName.str(),
669  HistoName.str(),
670  Parameters.getParameter<int32_t>("Nxbins"),
671  Parameters.getParameter<double>("xmin"),
672  Parameters.getParameter<double>("xmax"),
673  Parameters.getParameter<int32_t>("Nybins"),
674  Parameters.getParameter<double>("ymin"),
675  Parameters.getParameter<double>("ymax"));
676  else
677  local_mes.ClusterPositionP = nullptr;
678  }
679  }
680 
681  // Plots for Standalone clusters (Can be switched on from configs)
682  if (clsFlag_) {
683  Parameters = config_.getParameter<edm::ParameterSet>("NumberOfClustersPerDetH");
684  HistoName.str("");
685  HistoName << "NumberOfClustersPerDet";
686  if (Parameters.getParameter<bool>("switch"))
687  local_mes.NumberOfClustersPerDet = ibooker.book1D(HistoName.str(),
688  HistoName.str(),
689  Parameters.getParameter<int32_t>("Nbins"),
690  Parameters.getParameter<double>("xmin"),
691  Parameters.getParameter<double>("xmax"));
692  else
693  local_mes.NumberOfClustersPerDet = nullptr;
694 
695  Parameters = config_.getParameter<edm::ParameterSet>("ClusterWidthH");
696  HistoName.str("");
697  HistoName << "ClusterWidth";
698  if (Parameters.getParameter<bool>("switch"))
699  local_mes.ClusterWidth = ibooker.book1D(HistoName.str(),
700  HistoName.str(),
701  Parameters.getParameter<int32_t>("Nbins"),
702  Parameters.getParameter<double>("xmin"),
703  Parameters.getParameter<double>("xmax"));
704  else
705  local_mes.ClusterWidth = nullptr;
706  }
707 
708  layerMEs.insert(std::make_pair(key, local_mes));
709  }
710 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), dqm::implementation::NavigatorBase::cd(), Phase2TrackerMonitorDigi::DigiMEs::ChargeOfDigis, Phase2TrackerMonitorDigi::DigiMEs::ChargeOfDigisVsWidth, Phase2TrackerMonitorDigi::DigiMEs::ChargeXYMap, clsFlag_, Phase2TrackerMonitorDigi::DigiMEs::ClusterPositionP, Phase2TrackerMonitorDigi::DigiMEs::ClusterPositionS, Phase2TrackerMonitorDigi::DigiMEs::ClusterWidth, config_, Phase2TrackerMonitorDigi::DigiMEs::DigiOccupancyP, Phase2TrackerMonitorDigi::DigiMEs::DigiOccupancyS, Phase2TrackerMonitorDigi::DigiMEs::EtaOccupancyProfP, Phase2TrackerMonitorDigi::DigiMEs::EtaOccupancyProfS, fed_dqm_sourceclient-live_cfg::folder_name, Phase2TrackerMonitorDigi::DigiMEs::FractionOfOvTBits, Phase2TrackerMonitorDigi::DigiMEs::FractionOfOvTBitsVsEta, getHistoId(), TrackerTopology::getITPixelLayerNumber(), TrackerTopology::getOTLayerNumber(), edm::ParameterSet::getParameter(), crabWrapper::key, layerMEs, Phase2TrackerMonitorDigi::DigiMEs::nDigiPerLayer, Phase2TrackerMonitorDigi::DigiMEs::nHitDetsPerLayer, Phase2TrackerMonitorDigi::DigiMEs::NumberOfClustersPerDet, Phase2TrackerMonitorDigi::DigiMEs::NumberOfDigisPerDet, Phase2TrackerMonitorDigi::DigiMEs::NumberOfHitDetectorsPerLayer, pixelFlag_, Phase2TrackerMonitorDigi::DigiMEs::PositionOfDigisP, Phase2TrackerMonitorDigi::DigiMEs::PositionOfDigisS, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, TrackerTopology::tidRing(), TrackerTopology::tidWheel(), Phase2TrackerMonitorDigi::DigiMEs::TotalNumberOfDigisPerLayer, funct::true, and tTopo_.

Referenced by bookHistograms().

◆ dqmBeginRun()

void Phase2TrackerMonitorDigi::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 71 of file Phase2TrackerMonitorDigi.cc.

71  {
73  tkGeom_ = &(*geomHandle);
75  tTopo_ = tTopoHandle.product();
76 }

References geomToken_, edm::EventSetup::getHandle(), edm::ESHandle< T >::product(), tkGeom_, topoToken_, and tTopo_.

◆ fillDigiClusters()

void Phase2TrackerMonitorDigi::fillDigiClusters ( DigiMEs mes,
std::vector< Ph2DigiCluster > &  digi_clusters 
)
private

Definition at line 719 of file Phase2TrackerMonitorDigi.cc.

719  {
720  int nclus = digi_clusters.size();
721  if (mes.NumberOfClustersPerDet)
722  mes.NumberOfClustersPerDet->Fill(nclus);
723  for (auto& iclus : digi_clusters) {
724  if (mes.ClusterWidth)
725  mes.ClusterWidth->Fill(iclus.width);
726  if (pixelFlag_ && mes.ChargeOfDigisVsWidth)
727  mes.ChargeOfDigisVsWidth->Fill(iclus.charge, iclus.width);
728  if (mes.ClusterPositionP)
729  mes.ClusterPositionP->Fill(iclus.position, iclus.column + 1);
730  if (!pixelFlag_ && mes.ClusterPositionS && iclus.column <= 2)
731  mes.ClusterPositionS->Fill(iclus.position, iclus.column + 1);
732  }
733 }

References Phase2TrackerMonitorDigi::DigiMEs::ChargeOfDigisVsWidth, Phase2TrackerMonitorDigi::DigiMEs::ClusterPositionP, Phase2TrackerMonitorDigi::DigiMEs::ClusterPositionS, Phase2TrackerMonitorDigi::DigiMEs::ClusterWidth, dqm::impl::MonitorElement::Fill(), Phase2TrackerMonitorDigi::DigiMEs::NumberOfClustersPerDet, and pixelFlag_.

Referenced by fillITPixelDigiHistos(), and fillOTDigiHistos().

◆ fillITPixelDigiHistos()

void Phase2TrackerMonitorDigi::fillITPixelDigiHistos ( const edm::Handle< edm::DetSetVector< PixelDigi >>  handle)
private

Definition at line 99 of file Phase2TrackerMonitorDigi.cc.

99  {
100  const edm::DetSetVector<PixelDigi>* digis = handle.product();
101 
102  for (typename edm::DetSetVector<PixelDigi>::const_iterator DSViter = digis->begin(); DSViter != digis->end();
103  DSViter++) {
104  unsigned int rawid = DSViter->id;
105  edm::LogInfo("Phase2TrackerMonitorDigi") << " Det Id = " << rawid;
106 
107  int layer = tTopo_->getITPixelLayerNumber(rawid);
108 
109  if (layer < 0)
110  continue;
111  const DetId detId(rawid);
112 
114  std::map<std::string, DigiMEs>::iterator pos = layerMEs.find(key);
115 
116  if (pos == layerMEs.end())
117  continue;
118 
119  if (DetId(detId).det() != DetId::Detector::Tracker)
120  continue;
121 
122  const GeomDetUnit* gDetUnit = tkGeom_->idToDetUnit(detId);
123  const GeomDet* geomDet = tkGeom_->idToDet(detId);
124 
125  const Phase2TrackerGeomDetUnit* tkDetUnit = dynamic_cast<const Phase2TrackerGeomDetUnit*>(gDetUnit);
126  int nRows = tkDetUnit->specificTopology().nrows();
127  int nColumns = tkDetUnit->specificTopology().ncolumns();
128  if (nRows * nColumns == 0)
129  continue;
130 
131  DigiMEs& local_mes = pos->second;
132 
133  local_mes.nHitDetsPerLayer++;
134 
135  int nDigi = 0;
136  int row_last = -1;
137  int col_last = -1;
138  std::vector<Ph2DigiCluster> digiClusters;
139  for (typename edm::DetSet<PixelDigi>::const_iterator di = DSViter->begin(); di != DSViter->end(); di++) {
140  int col = di->column(); // column
141  int row = di->row(); // row
142  int adc = di->adc(); // digi charge
143  if (geomDet) {
144  MeasurementPoint mp(row + 0.5, col + 0.5);
145  GlobalPoint pdPos = geomDet->surface().toGlobal(gDetUnit->topology().localPosition(mp));
146  if (XYPositionMap)
147  XYPositionMap->Fill(pdPos.x() * 10., pdPos.y() * 10.);
148  if (RZPositionMap)
149  RZPositionMap->Fill(pdPos.z() * 10., std::hypot(pdPos.x(), pdPos.y()) * 10.);
150  }
151  nDigi++;
152  edm::LogInfo("Phase2TrackerMonitorDigi") << " column " << col << " row " << row << std::dec << std::endl;
153  if (local_mes.ChargeXYMap)
154  local_mes.ChargeXYMap->Fill(col, row, adc);
155  if (local_mes.PositionOfDigisP)
156  local_mes.PositionOfDigisP->Fill(row + 1, col + 1);
157  if (local_mes.ChargeOfDigis)
158  local_mes.ChargeOfDigis->Fill(adc);
159  if (clsFlag_) {
160  if (row_last == -1 || abs(row - row_last) != 1 || col != col_last) {
161  Ph2DigiCluster dClus;
162  dClus.position = row + 1;
163  dClus.column = col;
164  dClus.width = 1;
165  dClus.charge = 255;
166  digiClusters.push_back(dClus);
167  } else {
168  int pos = digiClusters.back().position + row + 1;
169  int width = digiClusters.back().width + 1;
170  pos /= width;
171 
172  digiClusters.back().position = pos;
173  digiClusters.back().width += 1;
174  }
175  edm::LogInfo("Phase2TrackerMonitorDigi") << " row " << row << " col " << col << " row_last " << row_last
176  << " col_last " << col_last << " width " << digiClusters.back().width;
177  row_last = row;
178  col_last = col;
179  }
180  }
181  if (local_mes.NumberOfDigisPerDet)
182  local_mes.NumberOfDigisPerDet->Fill(nDigi);
183  if (clsFlag_)
184  fillDigiClusters(local_mes, digiClusters);
185  local_mes.nDigiPerLayer += nDigi;
186  float occupancy = 1.0;
187  if (nRows * nColumns > 0)
188  occupancy = nDigi * 1.0 / (nRows * nColumns);
189  if (geomDet) {
190  GlobalPoint gp = geomDet->surface().toGlobal(
191  gDetUnit->topology().localPosition(MeasurementPoint(nRows / 2.0, nColumns / 2.0)));
192  if (XYOccupancyMap)
193  XYOccupancyMap->Fill(gp.x() * 10., gp.y() * 10, occupancy);
194  if (RZOccupancyMap)
195  RZOccupancyMap->Fill(gp.z() * 10., std::hypot(gp.x(), gp.y()) * 10., occupancy);
196  if (local_mes.EtaOccupancyProfP)
197  local_mes.EtaOccupancyProfP->Fill(gp.eta(), occupancy);
198  }
199 
200  if (local_mes.DigiOccupancyP)
201  local_mes.DigiOccupancyP->Fill(occupancy);
202  }
203  // Fill histograms after loop over digis are complete
204  for (auto& ilayer : layerMEs) {
205  DigiMEs& local_mes = ilayer.second;
206  if (local_mes.TotalNumberOfDigisPerLayer)
207  local_mes.TotalNumberOfDigisPerLayer->Fill(local_mes.nDigiPerLayer);
208  if (local_mes.NumberOfHitDetectorsPerLayer)
209  local_mes.NumberOfHitDetectorsPerLayer->Fill(local_mes.nHitDetsPerLayer);
210  local_mes.nDigiPerLayer = 0;
211  local_mes.nHitDetsPerLayer = 0;
212  }
213 }

References funct::abs(), ecalLiteDTU::adc(), edm::DetSetVector< T >::begin(), Phase2TrackerMonitorDigi::Ph2DigiCluster::charge, Phase2TrackerMonitorDigi::DigiMEs::ChargeOfDigis, Phase2TrackerMonitorDigi::DigiMEs::ChargeXYMap, clsFlag_, cuy::col, Phase2TrackerMonitorDigi::Ph2DigiCluster::column, TauDecayModes::dec, DetId::det(), Phase2TrackerMonitorDigi::DigiMEs::DigiOccupancyP, edm::DetSetVector< T >::end(), Phase2TrackerMonitorDigi::DigiMEs::EtaOccupancyProfP, dqm::impl::MonitorElement::Fill(), fillDigiClusters(), getHistoId(), TrackerTopology::getITPixelLayerNumber(), runTauDisplay::gp, patZpeak::handle, TrackerGeometry::idToDet(), TrackerGeometry::idToDetUnit(), crabWrapper::key, layerMEs, Topology::localPosition(), PixelTopology::ncolumns(), Phase2TrackerMonitorDigi::DigiMEs::nDigiPerLayer, Phase2TrackerMonitorDigi::DigiMEs::nHitDetsPerLayer, PixelTopology::nrows(), Phase2TrackerMonitorDigi::DigiMEs::NumberOfDigisPerDet, Phase2TrackerMonitorDigi::DigiMEs::NumberOfHitDetectorsPerLayer, pixelFlag_, Phase2TrackerMonitorDigi::Ph2DigiCluster::position, Phase2TrackerMonitorDigi::DigiMEs::PositionOfDigisP, RZOccupancyMap, RZPositionMap, PixelGeomDetUnit::specificTopology(), AlCaHLTBitMon_QueryRunRegistry::string, GeomDet::surface(), tkGeom_, Surface::toGlobal(), GeomDet::topology(), Phase2TrackerMonitorDigi::DigiMEs::TotalNumberOfDigisPerLayer, align::Tracker, tTopo_, ApeEstimator_cff::width, Phase2TrackerMonitorDigi::Ph2DigiCluster::width, PV3DBase< T, PVType, FrameType >::x(), XYOccupancyMap, XYPositionMap, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

◆ fillOTDigiHistos()

void Phase2TrackerMonitorDigi::fillOTDigiHistos ( const edm::Handle< edm::DetSetVector< Phase2TrackerDigi >>  handle)
private

Definition at line 214 of file Phase2TrackerMonitorDigi.cc.

214  {
215  const edm::DetSetVector<Phase2TrackerDigi>* digis = handle.product();
216 
217  for (typename edm::DetSetVector<Phase2TrackerDigi>::const_iterator DSViter = digis->begin(); DSViter != digis->end();
218  DSViter++) {
219  unsigned int rawid = DSViter->id;
220  DetId detId(rawid);
221  edm::LogInfo("Phase2TrackerMonitorDigi") << " Det Id = " << rawid;
222  int layer = tTopo_->getOTLayerNumber(rawid);
223  if (layer < 0)
224  continue;
226  std::map<std::string, DigiMEs>::iterator pos = layerMEs.find(key);
227  if (pos == layerMEs.end())
228  continue;
229  DigiMEs& local_mes = pos->second;
230 
231  local_mes.nHitDetsPerLayer++;
232  if (DetId(detId).det() != DetId::Detector::Tracker)
233  continue;
234 
235  const GeomDetUnit* gDetUnit = tkGeom_->idToDetUnit(detId);
236  const GeomDet* geomDet = tkGeom_->idToDet(detId);
237 
238  const Phase2TrackerGeomDetUnit* tkDetUnit = dynamic_cast<const Phase2TrackerGeomDetUnit*>(gDetUnit);
239  int nRows = tkDetUnit->specificTopology().nrows();
240  int nColumns = tkDetUnit->specificTopology().ncolumns();
241  if (nRows * nColumns == 0)
242  continue;
243 
244  int nDigi = 0;
245  int row_last = -1;
246  int col_last = -1;
247  float frac_ot = 0.;
248  std::vector<Ph2DigiCluster> digiClusters;
249  for (typename edm::DetSet<Phase2TrackerDigi>::const_iterator di = DSViter->begin(); di != DSViter->end(); di++) {
250  int col = di->column(); // column
251  int row = di->row(); // row
252  const DetId detId(rawid);
253 
254  if (geomDet) {
255  MeasurementPoint mp(row + 0.5, col + 0.5);
256  GlobalPoint pdPos = geomDet->surface().toGlobal(gDetUnit->topology().localPosition(mp));
257  if (XYPositionMap)
258  XYPositionMap->Fill(pdPos.x() * 10., pdPos.y() * 10.);
259  if (RZPositionMap)
260  RZPositionMap->Fill(pdPos.z() * 10., std::hypot(pdPos.x(), pdPos.y()) * 10.);
261  }
262  nDigi++;
263  if (di->overThreshold())
264  frac_ot++;
265  edm::LogInfo("Phase2TrackerMonitorDigi") << " column " << col << " row " << row << std::dec << std::endl;
266  if (nColumns > 2 && local_mes.PositionOfDigisP)
267  local_mes.PositionOfDigisP->Fill(row + 1, col + 1);
268  if (nColumns <= 2 && local_mes.PositionOfDigisS)
269  local_mes.PositionOfDigisS->Fill(row + 1, col + 1);
270 
271  if (clsFlag_) {
272  if (row_last == -1 || abs(row - row_last) != 1 || col != col_last) {
273  Ph2DigiCluster dClus;
274  dClus.position = row + 1;
275  dClus.column = col;
276  dClus.width = 1;
277  dClus.charge = 255;
278  digiClusters.push_back(dClus);
279  } else {
280  int pos = digiClusters.back().position + row + 1;
281  int width = digiClusters.back().width + 1;
282  pos /= width;
283 
284  digiClusters.back().position = pos;
285  digiClusters.back().width += 1;
286  }
287  row_last = row;
288  col_last = col;
289  edm::LogInfo("Phase2TrackerMonitorDigi") << " row " << row << " col " << col << " row_last " << row_last
290  << " col_last " << col_last << " width " << digiClusters.back().width;
291  }
292  }
293  if (local_mes.NumberOfDigisPerDet)
294  local_mes.NumberOfDigisPerDet->Fill(nDigi);
295  if (clsFlag_)
296  fillDigiClusters(local_mes, digiClusters);
297  local_mes.nDigiPerLayer += nDigi;
298  if (nDigi)
299  frac_ot /= nDigi;
300  if (local_mes.FractionOfOvTBits && nColumns <= 2)
301  local_mes.FractionOfOvTBits->Fill(frac_ot);
302 
303  float occupancy = 1.0;
304  if (nRows * nColumns > 0)
305  occupancy = nDigi * 1.0 / (nRows * nColumns);
306  if (geomDet) {
307  GlobalPoint gp = geomDet->surface().toGlobal(gDetUnit->topology().localPosition(MeasurementPoint(0.0, 0.0)));
308  if (XYOccupancyMap)
309  XYOccupancyMap->Fill(gp.x() * 10., gp.y() * 10., occupancy);
310  if (RZOccupancyMap)
311  RZOccupancyMap->Fill(gp.z() * 10., std::hypot(gp.x(), gp.y()) * 10., occupancy);
312  if (nColumns > 2) {
313  if (local_mes.DigiOccupancyP)
314  local_mes.DigiOccupancyP->Fill(occupancy);
315  if (local_mes.EtaOccupancyProfP)
316  local_mes.EtaOccupancyProfP->Fill(gp.eta(), occupancy);
317  } else {
318  if (local_mes.DigiOccupancyS)
319  local_mes.DigiOccupancyS->Fill(occupancy);
320  if (local_mes.EtaOccupancyProfS)
321  local_mes.EtaOccupancyProfS->Fill(gp.eta(), occupancy);
322  if (local_mes.FractionOfOvTBitsVsEta)
323  local_mes.FractionOfOvTBitsVsEta->Fill(gp.eta(), frac_ot);
324  }
325  }
326  }
327  // Fill histograms after loop over digis are complete
328  for (auto& ilayer : layerMEs) {
329  DigiMEs& local_mes = ilayer.second;
330  if (local_mes.TotalNumberOfDigisPerLayer)
331  local_mes.TotalNumberOfDigisPerLayer->Fill(local_mes.nDigiPerLayer);
332  if (local_mes.NumberOfHitDetectorsPerLayer)
333  local_mes.NumberOfHitDetectorsPerLayer->Fill(local_mes.nHitDetsPerLayer);
334  local_mes.nDigiPerLayer = 0;
335  local_mes.nHitDetsPerLayer = 0;
336  }
337 }

References funct::abs(), edm::DetSetVector< T >::begin(), Phase2TrackerMonitorDigi::Ph2DigiCluster::charge, clsFlag_, cuy::col, Phase2TrackerMonitorDigi::Ph2DigiCluster::column, TauDecayModes::dec, DetId::det(), Phase2TrackerMonitorDigi::DigiMEs::DigiOccupancyP, Phase2TrackerMonitorDigi::DigiMEs::DigiOccupancyS, edm::DetSetVector< T >::end(), Phase2TrackerMonitorDigi::DigiMEs::EtaOccupancyProfP, Phase2TrackerMonitorDigi::DigiMEs::EtaOccupancyProfS, dqm::impl::MonitorElement::Fill(), fillDigiClusters(), Phase2TrackerMonitorDigi::DigiMEs::FractionOfOvTBits, Phase2TrackerMonitorDigi::DigiMEs::FractionOfOvTBitsVsEta, getHistoId(), TrackerTopology::getOTLayerNumber(), runTauDisplay::gp, patZpeak::handle, TrackerGeometry::idToDet(), TrackerGeometry::idToDetUnit(), crabWrapper::key, layerMEs, Topology::localPosition(), PixelTopology::ncolumns(), Phase2TrackerMonitorDigi::DigiMEs::nDigiPerLayer, Phase2TrackerMonitorDigi::DigiMEs::nHitDetsPerLayer, PixelTopology::nrows(), Phase2TrackerMonitorDigi::DigiMEs::NumberOfDigisPerDet, Phase2TrackerMonitorDigi::DigiMEs::NumberOfHitDetectorsPerLayer, pixelFlag_, Phase2TrackerMonitorDigi::Ph2DigiCluster::position, Phase2TrackerMonitorDigi::DigiMEs::PositionOfDigisP, Phase2TrackerMonitorDigi::DigiMEs::PositionOfDigisS, RZOccupancyMap, RZPositionMap, PixelGeomDetUnit::specificTopology(), AlCaHLTBitMon_QueryRunRegistry::string, GeomDet::surface(), tkGeom_, Surface::toGlobal(), GeomDet::topology(), Phase2TrackerMonitorDigi::DigiMEs::TotalNumberOfDigisPerLayer, align::Tracker, tTopo_, ApeEstimator_cff::width, Phase2TrackerMonitorDigi::Ph2DigiCluster::width, PV3DBase< T, PVType, FrameType >::x(), XYOccupancyMap, XYPositionMap, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

◆ getHistoId()

std::string Phase2TrackerMonitorDigi::getHistoId ( uint32_t  det_id,
bool  flag 
)

Definition at line 712 of file Phase2TrackerMonitorDigi.cc.

712  {
713  if (flag)
714  return phase2tkutil::getITHistoId(det_id, tTopo_);
715  else
716  return phase2tkutil::getOTHistoId(det_id, tTopo_);
717 }

References RemoveAddSevLevel::flag, phase2tkutil::getITHistoId(), phase2tkutil::getOTHistoId(), and tTopo_.

Referenced by bookLayerHistos(), fillITPixelDigiHistos(), and fillOTDigiHistos().

Member Data Documentation

◆ clsFlag_

bool Phase2TrackerMonitorDigi::clsFlag_
private

◆ config_

edm::ParameterSet Phase2TrackerMonitorDigi::config_
private

Definition at line 70 of file Phase2TrackerMonitorDigi.h.

Referenced by bookHistograms(), and bookLayerHistos().

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> Phase2TrackerMonitorDigi::geomToken_
private

Definition at line 79 of file Phase2TrackerMonitorDigi.h.

Referenced by dqmBeginRun().

◆ geomType_

std::string Phase2TrackerMonitorDigi::geomType_
private

Definition at line 74 of file Phase2TrackerMonitorDigi.h.

◆ itPixelDigiSrc_

edm::InputTag Phase2TrackerMonitorDigi::itPixelDigiSrc_
private

Definition at line 76 of file Phase2TrackerMonitorDigi.h.

◆ itPixelDigiToken_

const edm::EDGetTokenT<edm::DetSetVector<PixelDigi> > Phase2TrackerMonitorDigi::itPixelDigiToken_
private

Definition at line 78 of file Phase2TrackerMonitorDigi.h.

Referenced by analyze().

◆ layerMEs

std::map<std::string, DigiMEs> Phase2TrackerMonitorDigi::layerMEs
private

◆ otDigiSrc_

edm::InputTag Phase2TrackerMonitorDigi::otDigiSrc_
private

Definition at line 75 of file Phase2TrackerMonitorDigi.h.

◆ otDigiToken_

const edm::EDGetTokenT<edm::DetSetVector<Phase2TrackerDigi> > Phase2TrackerMonitorDigi::otDigiToken_
private

Definition at line 77 of file Phase2TrackerMonitorDigi.h.

Referenced by analyze().

◆ pixelFlag_

bool Phase2TrackerMonitorDigi::pixelFlag_
private

◆ RZOccupancyMap

MonitorElement* Phase2TrackerMonitorDigi::RZOccupancyMap

◆ RZPositionMap

MonitorElement* Phase2TrackerMonitorDigi::RZPositionMap

◆ tkGeom_

const TrackerGeometry* Phase2TrackerMonitorDigi::tkGeom_ = nullptr
private

◆ topoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> Phase2TrackerMonitorDigi::topoToken_
private

Definition at line 80 of file Phase2TrackerMonitorDigi.h.

Referenced by dqmBeginRun().

◆ tTopo_

const TrackerTopology* Phase2TrackerMonitorDigi::tTopo_ = nullptr
private

◆ XYOccupancyMap

MonitorElement* Phase2TrackerMonitorDigi::XYOccupancyMap

◆ XYPositionMap

MonitorElement* Phase2TrackerMonitorDigi::XYPositionMap
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
edm::DetSetVector
Definition: DetSetVector.h:61
Point2DBase
Definition: Point2DBase.h:9
Phase2TrackerMonitorDigi::otDigiToken_
const edm::EDGetTokenT< edm::DetSetVector< Phase2TrackerDigi > > otDigiToken_
Definition: Phase2TrackerMonitorDigi.h:77
ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
Phase2TrackerMonitorDigi::config_
edm::ParameterSet config_
Definition: Phase2TrackerMonitorDigi.h:70
GeomDet
Definition: GeomDet.h:27
Phase2TrackerMonitorDigi::RZOccupancyMap
MonitorElement * RZOccupancyMap
Definition: Phase2TrackerMonitorDigi.h:62
edm::ESWatcher< TrackerDigiGeometryRecord >
edm::DetSetVector::end
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:325
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
Phase2TrackerMonitorDigi::geomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
Definition: Phase2TrackerMonitorDigi.h:79
patZpeak.handle
handle
Definition: patZpeak.py:23
TrackerTopology::getITPixelLayerNumber
int getITPixelLayerNumber(const DetId &id) const
Definition: TrackerTopology.cc:436
TrackerTopology::getOTLayerNumber
int getOTLayerNumber(const DetId &id) const
Definition: TrackerTopology.cc:421
edm
HLT enums.
Definition: AlignableModifier.h:19
dqm::implementation::IBooker::bookProfile2D
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
cuy.col
col
Definition: cuy.py:1010
pos
Definition: PixelAliasList.h:18
Phase2TrackerMonitorDigi::geomType_
std::string geomType_
Definition: Phase2TrackerMonitorDigi.h:74
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
edm::DetSetVector::begin
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:314
GeomDet::topology
virtual const Topology & topology() const
Definition: GeomDet.cc:67
Phase2TrackerMonitorDigi::clsFlag_
bool clsFlag_
Definition: Phase2TrackerMonitorDigi.h:73
Phase2TrackerMonitorDigi::otDigiSrc_
edm::InputTag otDigiSrc_
Definition: Phase2TrackerMonitorDigi.h:75
Topology::localPosition
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
Phase2TrackerMonitorDigi::fillOTDigiHistos
void fillOTDigiHistos(const edm::Handle< edm::DetSetVector< Phase2TrackerDigi >> handle)
Definition: Phase2TrackerMonitorDigi.cc:214
Phase2TrackerMonitorDigi::itPixelDigiSrc_
edm::InputTag itPixelDigiSrc_
Definition: Phase2TrackerMonitorDigi.h:76
Phase2TrackerMonitorDigi::XYOccupancyMap
MonitorElement * XYOccupancyMap
Definition: Phase2TrackerMonitorDigi.h:61
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
edm::Handle
Definition: AssociativeIterator.h:50
TrackerTopology::tidRing
unsigned int tidRing(const DetId &id) const
Definition: TrackerTopology.h:218
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
align::Tracker
Definition: StructureType.h:70
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
ecalLiteDTU::adc
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
Definition: EcalLiteDTUSample.h:12
Phase2TrackerMonitorDigi::XYPositionMap
MonitorElement * XYPositionMap
Definition: Phase2TrackerMonitorDigi.h:59
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrackerGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: TrackerGeometry.h:61
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
edm::ESHandle< TrackerGeometry >
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
dqm::implementation::IBooker::bookProfile
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())
Definition: DQMStore.h:322
PixelTopology::ncolumns
virtual int ncolumns() const =0
Phase2TrackerMonitorDigi::tTopo_
const TrackerTopology * tTopo_
Definition: Phase2TrackerMonitorDigi.h:82
Point3DBase< float, GlobalTag >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Phase2TrackerMonitorDigi::fillITPixelDigiHistos
void fillITPixelDigiHistos(const edm::Handle< edm::DetSetVector< PixelDigi >> handle)
Definition: Phase2TrackerMonitorDigi.cc:99
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
funct::true
true
Definition: Factorize.h:173
edm::ParameterSet
Definition: ParameterSet.h:47
edm::DetSetVector::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
PixelGeomDetUnit::specificTopology
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
Definition: PixelGeomDetUnit.cc:17
Phase2TrackerMonitorDigi::getHistoId
std::string getHistoId(uint32_t det_id, bool flag)
Definition: Phase2TrackerMonitorDigi.cc:712
fed_dqm_sourceclient-live_cfg.folder_name
folder_name
Definition: fed_dqm_sourceclient-live_cfg.py:42
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
iEvent
int iEvent
Definition: GenABIO.cc:224
cscdqm::HistoName
std::string HistoName
Definition: CSCDQM_HistoDef.h:32
Phase2TrackerMonitorDigi::layerMEs
std::map< std::string, DigiMEs > layerMEs
Definition: Phase2TrackerMonitorDigi.h:71
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
Phase2TrackerMonitorDigi::bookLayerHistos
void bookLayerHistos(DQMStore::IBooker &ibooker, unsigned int det_id)
Definition: Phase2TrackerMonitorDigi.cc:417
Phase2TrackerMonitorDigi::itPixelDigiToken_
const edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > itPixelDigiToken_
Definition: Phase2TrackerMonitorDigi.h:78
Phase2TrackerMonitorDigi::fillDigiClusters
void fillDigiClusters(DigiMEs &mes, std::vector< Ph2DigiCluster > &digi_clusters)
Definition: Phase2TrackerMonitorDigi.cc:719
phase2tkutil::getITHistoId
std::string getITHistoId(uint32_t det_id, const TrackerTopology *tTopo)
Definition: TrackerPhase2DQMUtil.cc:2
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
Phase2TrackerMonitorDigi::tkGeom_
const TrackerGeometry * tkGeom_
Definition: Phase2TrackerMonitorDigi.h:81
Phase2TrackerMonitorDigi::topoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Definition: Phase2TrackerMonitorDigi.h:80
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
PixelTopology::nrows
virtual int nrows() const =0
Parameters
vector< ParameterSet > Parameters
Definition: HLTMuonPlotter.cc:25
crabWrapper.key
key
Definition: crabWrapper.py:19
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
phase2tkutil::getOTHistoId
std::string getOTHistoId(uint32_t det_id, const TrackerTopology *tTopo)
Definition: TrackerPhase2DQMUtil.cc:25
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
Phase2TrackerMonitorDigi::pixelFlag_
bool pixelFlag_
Definition: Phase2TrackerMonitorDigi.h:72
Phase2TrackerMonitorDigi::RZPositionMap
MonitorElement * RZPositionMap
Definition: Phase2TrackerMonitorDigi.h:60
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31