CMS 3D CMS Logo

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

#include <DQM/SiStripMonitorDigi/src/SiStripMonitorDigi.cc>

Inheritance diagram for SiStripMonitorDigi:
DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > > edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  DigiFailureMEs
 
struct  LayerMEs
 
struct  ModMEs
 
struct  SubDetMEs
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &r, const edm::EventSetup &c) override
 
std::shared_ptr< bool > globalBeginLuminosityBlock (const edm::LuminosityBlock &lumi, const edm::EventSetup &iSetup) const override
 
void globalEndLuminosityBlock (const edm::LuminosityBlock &lumi, const edm::EventSetup &iSetup) override
 
 SiStripMonitorDigi (const edm::ParameterSet &)
 
 ~SiStripMonitorDigi () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Public Attributes

MonitorElementNumberOfFEDDigis = nullptr
 
std::string topFolderName_
 

Private Member Functions

void AddApvShotsToSubDet (const std::vector< APVShot > &, std::vector< APVShot > &)
 
bool AllDigis (const edm::EventSetup &es)
 
void bookLayer (DQMStore::IBooker &ibooker)
 
MonitorElementbookME1D (DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName)
 
MonitorElementbookMETrend (DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName)
 
void bookTrendMEs (DQMStore::IBooker &ibooker, const TString &name, int32_t layer, uint32_t id, std::string flag)
 
void createLayerMEs (DQMStore::IBooker &ibooker, std::string label, int ndet)
 
void createMEs (DQMStore::IBooker &ibooker, const edm::EventSetup &es)
 
void createModuleMEs (DQMStore::IBooker &ibooker, ModMEs &mod_single, uint32_t detid)
 
void createSubDetMEs (DQMStore::IBooker &ibooker, std::string label)
 
void createSubDetTH2 (DQMStore::IBooker &ibooker, std::string label)
 
void FillApvShotsMap (TkHistoMap *, const std::vector< APVShot > &, uint32_t id, int)
 
void fillDigiADCsMEs (int value, std::string name)
 
void fillME (MonitorElement *ME, float value1)
 
void fillME (MonitorElement *ME, float value1, float value2)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3, float value4)
 
void fillTrend (MonitorElement *me, float value, float timeinorbit)
 
int getDigiSourceIndex (uint32_t id)
 
void ResetModuleMEs (uint32_t idet)
 

Private Attributes

edm::InputTag apvPhaseProducer_
 
edm::EDGetTokenT< APVCyclePhaseCollectionapvPhaseProducerToken_
 
bool calculate_strip_occupancy
 
edm::ParameterSet conf_
 
bool createTrendMEs
 
SiStripDCSStatusdcsStatus_
 
std::map< std::pair< std::string, int32_t >, bool > DetectedLayers
 
std::vector< const edm::DetSetVector< SiStripDigi > * > digi_detset_handles
 
DigiFailureMEs digiFailureMEs
 
std::map< uint32_t, ModMEsDigiMEs
 
std::vector< edm::InputTagdigiProducerList
 
std::vector< edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > > digiProducerTokenList
 
bool digitkhistomapon
 
int eventNb
 
int firstEvent
 
SiStripFolderOrganizer folder_organizer
 
bool globalsummaryapvshotson
 
bool globalswitchapvshotsApvon
 
bool globalswitchapvshotsonprof
 
bool globalswitchchargemedianapvshotson
 
bool globalswitchnapvshotson
 
bool globalswitchNDigisFEDID
 
bool globalswitchnstripsapvshotson
 
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecordgtEvmToken_
 
edm::InputTag historyProducer_
 
edm::EDGetTokenT< EventWithHistoryhistoryProducerToken_
 
int ignoreFirstNLumisections_
 
int integrateNLumisections_
 
std::map< std::string, std::vector< uint32_t > > LayerDetMap
 
std::map< std::string, LayerMEsLayerMEsMap
 
bool layerswitchadccooleston
 
bool layerswitchadchotteston
 
bool layerswitchdigiadcprofon
 
bool layerswitchdigiadcson
 
bool layerswitchnumdigisapvon
 
bool layerswitchnumdigison
 
bool layerswitchnumdigisprofon
 
bool layerswitchstripoccupancyon
 
unsigned long long m_cacheID_
 
bool m_trendVs10LS
 
MonitorElementMedianChargeApvShotsGlobal
 
bool Mod_On_
 
std::vector< uint32_t > ModulesToBeExcluded_
 
bool moduleswitchadccooleston
 
bool moduleswitchadchotteston
 
bool moduleswitchdigiadcson
 
bool moduleswitchnumdigison
 
bool moduleswitchnumdigispstripon
 
bool moduleswitchstripoccupancyon
 
TString name
 
MonitorElementNApvApvShotsGlobal
 
MonitorElementNApvShotsGlobal
 
MonitorElementNApvShotsGlobalProf
 
int nFedTECm
 
int nFedTECp
 
int nFedTIB
 
int nFedTIDm
 
int nFedTIDp
 
int nFedTOB
 
bool reset_each_run
 
edm::ESGetToken< RunInfo, RunInfoRcdrunInfoTokenRun_
 
int runNb
 
int SBDeclaredAt
 
bool SBTransitionDone
 
bool select_all_detectors
 
bool shotschargehistomapon
 
bool shotshistomapon
 
bool shotsstripshistomapon
 
MonitorElementShotsVsTimeApvShotsGlobal
 
bool show_control_view
 
bool show_mechanical_structure_view
 
bool show_readout_view
 
const SiStripDetCablingSiStripDetCabling_
 
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcdSiStripDetCablingTokenRun_
 
MonitorElementStripMultiplicityApvShotsGlobal
 
std::map< std::string, SubDetMEsSubDetMEsMap
 
std::map< std::string, std::string > SubDetPhasePartMap
 
bool subdetswitchapvcycleprofon
 
bool subdetswitchapvcycleth2on
 
bool subdetswitchapvshotsApvon
 
bool subdetswitchapvshotsonprof
 
bool subdetswitchchargemedianapvshotson
 
bool subdetswitchnapvshotson
 
bool subdetswitchnstripsapvshotson
 
bool subdetswitchtotdigifailureon
 
bool subdetswitchtotdigiprofon
 
edm::ESGetToken< TkDetMap, TrackerTopologyRcdtkDetMapTokenRun_
 
std::unique_ptr< TkHistoMaptkmapdigi
 
std::unique_ptr< TkHistoMaptkmapMedianChargeApvshots
 
std::unique_ptr< TkHistoMaptkmapNApvshots
 
std::unique_ptr< TkHistoMaptkmapNstripApvshot
 
int TotalNShots
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoTokenRun_
 
std::vector< float > vecSubDetTotDigiProfLS
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Data Quality Monitoring source of the Silicon Strip Tracker. Produces histograms related to digis.

DQM/SiStripMonitorDigi/src/SiStripMonitorDigi.cc

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 35 of file SiStripMonitorDigi.h.

Constructor & Destructor Documentation

◆ SiStripMonitorDigi()

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

Definition at line 50 of file SiStripMonitorDigi.cc.

References apvPhaseProducer_, apvPhaseProducerToken_, conf_, edm::EDConsumerBase::consumes(), edm::EDConsumerBase::consumesCollector(), createTrendMEs, dcsStatus_, digiProducerList, digiProducerTokenList, digitkhistomapon, edm::EDConsumerBase::esConsumes(), eventNb, firstEvent, edm::ParameterSet::getParameter(), globalsummaryapvshotson, globalswitchapvshotsApvon, globalswitchapvshotsonprof, globalswitchchargemedianapvshotson, globalswitchnapvshotson, globalswitchNDigisFEDID, globalswitchnstripsapvshotson, gtEvmToken_, historyProducer_, historyProducerToken_, ignoreFirstNLumisections_, ProducerED_cfi::InputTag, integrateNLumisections_, layerswitchadccooleston, layerswitchadchotteston, layerswitchdigiadcprofon, layerswitchdigiadcson, layerswitchnumdigison, layerswitchnumdigisprofon, layerswitchstripoccupancyon, m_trendVs10LS, METSkim_cff::Max, Mod_On_, moduleswitchadccooleston, moduleswitchadchotteston, moduleswitchdigiadcson, moduleswitchnumdigison, moduleswitchnumdigispstripon, moduleswitchstripoccupancyon, runInfoTokenRun_, SBDeclaredAt, SBTransitionDone, shotschargehistomapon, shotshistomapon, shotsstripshistomapon, show_mechanical_structure_view, SiStripDetCablingTokenRun_, AlCaHLTBitMon_QueryRunRegistry::string, SubDetPhasePartMap, subdetswitchapvcycleprofon, subdetswitchapvcycleth2on, subdetswitchapvshotsApvon, subdetswitchapvshotsonprof, subdetswitchchargemedianapvshotson, subdetswitchnapvshotson, subdetswitchnstripsapvshotson, subdetswitchtotdigifailureon, subdetswitchtotdigiprofon, makeGlobalPositionRcd_cfg::tag, tkDetMapTokenRun_, topFolderName_, tTopoToken_, tTopoTokenRun_, and vecSubDetTotDigiProfLS.

51  : //dqmStore_(edm::Service<DQMStore>().operator->()),
52  conf_(iConfig),
54  show_readout_view(false),
55  show_control_view(false),
57  reset_each_run(false),
59  m_cacheID_(0) {
60  firstEvent = -1;
61  eventNb = 0;
62 
63  // Detector Partitions
64  SubDetPhasePartMap["TIB"] = "TI";
65  SubDetPhasePartMap["TID__MINUS"] = "TI";
66  SubDetPhasePartMap["TID__PLUS"] = "TI";
67  SubDetPhasePartMap["TOB"] = "TO";
68  SubDetPhasePartMap["TEC__MINUS"] = "TM";
69  SubDetPhasePartMap["TEC__PLUS"] = "TP";
70 
71  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
72 
73  // get Digi Producer List
74  digiProducerList = conf_.getParameter<std::vector<edm::InputTag> >("DigiProducersList");
75  for (auto const& tag : digiProducerList) {
77  }
78 
79  //get on/off option for every cluster from cfi
80  edm::ParameterSet ParametersNumberOfDigis = conf_.getParameter<edm::ParameterSet>("TH1NumberOfDigis");
81  layerswitchnumdigison = ParametersNumberOfDigis.getParameter<bool>("layerswitchon");
82  moduleswitchnumdigison = ParametersNumberOfDigis.getParameter<bool>("moduleswitchon");
83 
84  edm::ParameterSet ParametersNumberOfDigisPerStrip = conf_.getParameter<edm::ParameterSet>("TH1NumberOfDigisPerStrip");
85  moduleswitchnumdigispstripon = ParametersNumberOfDigisPerStrip.getParameter<bool>("moduleswitchon");
86 
87  edm::ParameterSet ParametersADCsHottestStrip = conf_.getParameter<edm::ParameterSet>("TH1ADCsHottestStrip");
88  layerswitchadchotteston = ParametersADCsHottestStrip.getParameter<bool>("layerswitchon");
89  moduleswitchadchotteston = ParametersADCsHottestStrip.getParameter<bool>("moduleswitchon");
90 
91  edm::ParameterSet ParametersADCsCoolestStrip = conf_.getParameter<edm::ParameterSet>("TH1ADCsCoolestStrip");
92  layerswitchadccooleston = ParametersADCsCoolestStrip.getParameter<bool>("layerswitchon");
93  moduleswitchadccooleston = ParametersADCsCoolestStrip.getParameter<bool>("moduleswitchon");
94 
95  edm::ParameterSet ParametersDigiADCs = conf_.getParameter<edm::ParameterSet>("TH1DigiADCs");
96  layerswitchdigiadcson = ParametersDigiADCs.getParameter<bool>("layerswitchon");
97  moduleswitchdigiadcson = ParametersDigiADCs.getParameter<bool>("moduleswitchon");
98 
99  edm::ParameterSet ParametersStripOccupancy = conf_.getParameter<edm::ParameterSet>("TH1StripOccupancy");
100  layerswitchstripoccupancyon = ParametersStripOccupancy.getParameter<bool>("layerswitchon");
101  moduleswitchstripoccupancyon = ParametersStripOccupancy.getParameter<bool>("moduleswitchon");
102 
103  edm::ParameterSet ParametersDigiProf = conf_.getParameter<edm::ParameterSet>("TProfNumberOfDigi");
104  layerswitchnumdigisprofon = ParametersDigiProf.getParameter<bool>("layerswitchon");
105 
106  edm::ParameterSet ParametersDigiADC = conf_.getParameter<edm::ParameterSet>("TProfDigiADC");
107  layerswitchdigiadcprofon = ParametersDigiProf.getParameter<bool>("layerswitchon");
108 
109  edm::ParameterSet ParametersTotDigiProf = conf_.getParameter<edm::ParameterSet>("TProfTotalNumberOfDigis");
110  subdetswitchtotdigiprofon = ParametersTotDigiProf.getParameter<bool>("subdetswitchon");
111 
112  edm::ParameterSet ParametersTotDigiFailure = conf_.getParameter<edm::ParameterSet>("TotalNumberOfDigisFailure");
113  subdetswitchtotdigifailureon = ParametersTotDigiFailure.getParameter<bool>("subdetswitchon");
114 
115  edm::ParameterSet ParametersDigiApvProf = conf_.getParameter<edm::ParameterSet>("TProfDigiApvCycle");
116  subdetswitchapvcycleprofon = ParametersDigiApvProf.getParameter<bool>("subdetswitchon");
117 
118  edm::ParameterSet ParametersDigiApvTH2 = conf_.getParameter<edm::ParameterSet>("TH2DigiApvCycle");
119  subdetswitchapvcycleth2on = ParametersDigiApvTH2.getParameter<bool>("subdetswitchon");
120 
121  edm::ParameterSet ParametersNApvShots = conf_.getParameter<edm::ParameterSet>("TH1NApvShots");
122  subdetswitchnapvshotson = ParametersNApvShots.getParameter<bool>("subdetswitchon");
123 
124  edm::ParameterSet ParametersNStripApvShots = conf_.getParameter<edm::ParameterSet>("TH1NStripsApvShots");
125  subdetswitchnstripsapvshotson = ParametersNStripApvShots.getParameter<bool>("subdetswitchon");
126 
127  edm::ParameterSet ParametersChargeMedianApvShots = conf_.getParameter<edm::ParameterSet>("TH1ChargeMedianApvShots");
128  subdetswitchchargemedianapvshotson = ParametersChargeMedianApvShots.getParameter<bool>("subdetswitchon");
129 
130  edm::ParameterSet ParametersApvNumberApvShots = conf_.getParameter<edm::ParameterSet>("TH1ApvNumApvShots");
131  subdetswitchapvshotsApvon = ParametersChargeMedianApvShots.getParameter<bool>("subdetswitchon");
132 
133  edm::ParameterSet ParametersNApvShotsProf = conf_.getParameter<edm::ParameterSet>("TProfNShotsVsTime");
134  subdetswitchapvshotsonprof = ParametersNApvShotsProf.getParameter<bool>("subdetswitchon");
135 
136  //Global Histograms
137 
138  edm::ParameterSet ParametersGlobalNApvShots = conf_.getParameter<edm::ParameterSet>("TH1NApvShots");
139  globalswitchnapvshotson = ParametersGlobalNApvShots.getParameter<bool>("globalswitchon");
140 
141  edm::ParameterSet ParametersGlobalNApvShotsProf = conf_.getParameter<edm::ParameterSet>("TProfGlobalNShots");
142  globalsummaryapvshotson = ParametersGlobalNApvShotsProf.getParameter<bool>("globalswitchon");
143 
144  edm::ParameterSet ParametersGlobalNStripApvShots = conf_.getParameter<edm::ParameterSet>("TH1NStripsApvShots");
145  globalswitchnstripsapvshotson = ParametersGlobalNStripApvShots.getParameter<bool>("globalswitchon");
146 
147  edm::ParameterSet ParametersGlobalApvNumApvShots = conf_.getParameter<edm::ParameterSet>("TH1ApvNumApvShots");
148  globalswitchapvshotsApvon = ParametersGlobalApvNumApvShots.getParameter<bool>("globalswitchon");
149 
150  edm::ParameterSet ParametersGlobalChargeMedianApvShots =
151  conf_.getParameter<edm::ParameterSet>("TH1ChargeMedianApvShots");
152  globalswitchchargemedianapvshotson = ParametersGlobalChargeMedianApvShots.getParameter<bool>("globalswitchon");
153 
154  edm::ParameterSet ParametersGlobalNApvShotsTimeProf = conf_.getParameter<edm::ParameterSet>("TProfNShotsVsTime");
155  globalswitchapvshotsonprof = ParametersGlobalNApvShotsTimeProf.getParameter<bool>("globalswitchon");
156 
157  edm::ParameterSet ParametersGlobalNDigisFEDID = conf_.getParameter<edm::ParameterSet>("TProfNDigisFED");
158  globalswitchNDigisFEDID = ParametersGlobalNDigisFEDID.getParameter<bool>("globalswitchon");
159 
160  //Digi and APV Shots Maps
161 
162  digitkhistomapon = conf_.getParameter<bool>("TkHistoMap_On");
163 
164  shotshistomapon = conf_.getParameter<bool>("TkHistoMapNApvShots_On");
165  shotsstripshistomapon = conf_.getParameter<bool>("TkHistoMapNStripApvShots_On");
166  shotschargehistomapon = conf_.getParameter<bool>("TkHistoMapMedianChargeApvShots_On");
167 
168  createTrendMEs = conf_.getParameter<bool>("CreateTrendMEs");
169  Mod_On_ = conf_.getParameter<bool>("Mod_On");
170  m_trendVs10LS = conf_.getParameter<bool>("TrendVs10LS");
171  // xLumiProf = conf_.getParameter<int>("xLumiProf");
172  // Event History Producer
173  historyProducer_ = conf_.getParameter<edm::InputTag>("HistoryProducer");
174  historyProducerToken_ = consumes<EventWithHistory>(conf_.getParameter<edm::InputTag>("HistoryProducer"));
175 
176  // Apv Phase Producer
177  apvPhaseProducer_ = conf_.getParameter<edm::InputTag>("ApvPhaseProducer");
178  apvPhaseProducerToken_ = consumes<APVCyclePhaseCollection>(conf_.getParameter<edm::InputTag>("ApvPhaseProducer"));
179 
180  gtEvmToken_ = consumes<L1GlobalTriggerEvmReadoutRecord>(edm::InputTag("gtEvmDigis"));
181 
183  tTopoTokenRun_ = esConsumes<edm::Transition::BeginRun>();
184  tkDetMapTokenRun_ = esConsumes<edm::Transition::BeginRun>();
185  SiStripDetCablingTokenRun_ = esConsumes<edm::Transition::BeginRun>();
186  }
188  runInfoTokenRun_ = esConsumes<edm::Transition::BeginRun>();
189  }
191 
192  // Create DCS Status
193  bool checkDCS = conf_.getParameter<bool>("UseDCSFiltering");
194  if (checkDCS)
196  else
197  dcsStatus_ = nullptr;
198 
199  //initialize boolean for the data-presence check (needed for TotalNumberOfDigisFailure histogram)
200  SBTransitionDone = false;
201  SBDeclaredAt = 0;
202  ignoreFirstNLumisections_ = TMath::Max(0, ParametersTotDigiFailure.getParameter<int32_t>("ignoreFirstNLumisections"));
203  integrateNLumisections_ = TMath::Max(1, ParametersTotDigiFailure.getParameter<int32_t>("integrateNLumisections"));
204  vecSubDetTotDigiProfLS.reserve(7);
205 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::InputTag historyProducer_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoTokenRun_
std::map< std::string, std::string > SubDetPhasePartMap
edm::ESGetToken< RunInfo, RunInfoRcd > runInfoTokenRun_
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapTokenRun_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
unsigned long long m_cacheID_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
SiStripDCSStatus * dcsStatus_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< EventWithHistory > historyProducerToken_
std::vector< float > vecSubDetTotDigiProfLS
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > SiStripDetCablingTokenRun_
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > gtEvmToken_
std::vector< edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > > digiProducerTokenList
edm::InputTag apvPhaseProducer_
std::string topFolderName_
edm::ParameterSet conf_
std::vector< edm::InputTag > digiProducerList
edm::EDGetTokenT< APVCyclePhaseCollection > apvPhaseProducerToken_
SiStripFolderOrganizer folder_organizer

◆ ~SiStripMonitorDigi()

SiStripMonitorDigi::~SiStripMonitorDigi ( )
override

Definition at line 208 of file SiStripMonitorDigi.cc.

References dcsStatus_.

208  {
209  if (dcsStatus_)
210  delete dcsStatus_;
211 }
SiStripDCSStatus * dcsStatus_

Member Function Documentation

◆ AddApvShotsToSubDet()

void SiStripMonitorDigi::AddApvShotsToSubDet ( const std::vector< APVShot > &  moduleShots,
std::vector< APVShot > &  subdetShots 
)
private

Definition at line 1320 of file SiStripMonitorDigi.cc.

References mps_fire::i, and parallelization::uint.

Referenced by analyze().

1321  {
1322  for (uint i = 0; i < moduleShots.size(); i++) {
1323  subdetShots.push_back(moduleShots[i]);
1324  }
1325 }

◆ AllDigis()

bool SiStripMonitorDigi::AllDigis ( const edm::EventSetup es)
private

◆ analyze()

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

Reimplemented from DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >.

Definition at line 577 of file SiStripMonitorDigi.cc.

References EventWithHistory::absoluteBX(), gpuClustering::adc, SiStripMonitorDigi::ModMEs::ADCsCoolestStrip, SiStripMonitorDigi::ModMEs::ADCsHottestStrip, AddApvShotsToSubDet(), apvPhaseProducerToken_, L1GtfeExtWord::beamMode(), createTrendMEs, edm::DetSet< T >::data, dcsStatus_, digi_detset_handles, SiStripMonitorDigi::ModMEs::DigiADCs, digiFailureMEs, DigiMEs, digiProducerList, digiProducerTokenList, digitkhistomapon, eventNb, edm::HandleBase::failedToGet(), dqm::impl::MonitorElement::Fill(), HcalObjRepresent::Fill(), FillApvShotsMap(), fillME(), fillTrend(), folder_organizer, SiStripDetCabling::getConnections(), edm::EventSetup::getData(), getDigiSourceIndex(), APVCyclePhaseCollection::getPhase(), APVShotFinder::getShots(), SiStripDCSStatus::getStatus(), SiStripFolderOrganizer::getSubDetFolderAndTag(), globalsummaryapvshotson, globalswitchapvshotsApvon, globalswitchapvshotsonprof, globalswitchchargemedianapvshotson, globalswitchnapvshotson, globalswitchNDigisFEDID, globalswitchnstripsapvshotson, gtEvmToken_, L1GlobalTriggerEvmReadoutRecord::gtfeWord(), historyProducerToken_, mps_fire::i, iEvent, APVCyclePhaseCollection::invalid, edm::HandleBase::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, SiStripMonitorDigi::LayerMEs::LayerADCsCoolestStrip, SiStripMonitorDigi::LayerMEs::LayerADCsCoolestStripTrend, SiStripMonitorDigi::LayerMEs::LayerADCsHottestStrip, SiStripMonitorDigi::LayerMEs::LayerADCsHottestStripTrend, LayerDetMap, SiStripMonitorDigi::LayerMEs::LayerDigiADCProfile, SiStripMonitorDigi::LayerMEs::LayerDigiADCs, SiStripMonitorDigi::LayerMEs::LayerDigiADCsTrend, LayerMEsMap, SiStripMonitorDigi::LayerMEs::LayerNumberOfDigis, SiStripMonitorDigi::LayerMEs::LayerNumberOfDigisProfile, SiStripMonitorDigi::LayerMEs::LayerNumberOfDigisTrend, SiStripMonitorDigi::LayerMEs::LayerStripOccupancy, SiStripMonitorDigi::LayerMEs::LayerStripOccupancyTrend, layerswitchadccooleston, layerswitchadchotteston, layerswitchdigiadcprofon, layerswitchdigiadcson, layerswitchnumdigison, layerswitchnumdigisprofon, layerswitchstripoccupancyon, m_trendVs10LS, genParticles_cff::map, MedianChargeApvShotsGlobal, Mod_On_, moduleswitchadccooleston, moduleswitchadchotteston, moduleswitchdigiadcson, moduleswitchnumdigison, moduleswitchnumdigispstripon, moduleswitchstripoccupancyon, APVCyclePhaseCollection::multiphase, NApvApvShotsGlobal, SiStripDetCabling::nApvPairs(), NApvShotsGlobal, NApvShotsGlobalProf, APVCyclePhaseCollection::nopartition, SiStripMonitorDigi::ModMEs::NumberOfDigis, SiStripMonitorDigi::ModMEs::NumberOfDigisPerStrip, NumberOfFEDDigis, edm::Handle< T >::product(), runNb, shotschargehistomapon, shotshistomapon, shotsstripshistomapon, ShotsVsTimeApvShotsGlobal, SiStripDetCabling_, AlCaHLTBitMon_QueryRunRegistry::string, StripMultiplicityApvShotsGlobal, SiStripMonitorDigi::ModMEs::StripOccupancy, SiStripMonitorDigi::SubDetMEs::SubDetApvShots, SiStripMonitorDigi::SubDetMEs::SubDetChargeMedianApvShotsTH1, SiStripMonitorDigi::SubDetMEs::SubDetDigiApvProf, SiStripMonitorDigi::SubDetMEs::SubDetDigiApvTH2, SubDetMEsMap, SiStripMonitorDigi::SubDetMEs::SubDetNApvShotsNApvTH1, SiStripMonitorDigi::SubDetMEs::SubDetNApvShotsProf, SiStripMonitorDigi::SubDetMEs::SubDetNApvShotsTH1, SiStripMonitorDigi::SubDetMEs::SubDetNStripsApvShotsTH1, SubDetPhasePartMap, subdetswitchapvcycleprofon, subdetswitchapvcycleth2on, subdetswitchapvshotsApvon, subdetswitchapvshotsonprof, subdetswitchchargemedianapvshotson, subdetswitchnapvshotson, subdetswitchnstripsapvshotson, subdetswitchtotdigifailureon, subdetswitchtotdigiprofon, SiStripMonitorDigi::SubDetMEs::SubDetTotDigiProf, SiStripMonitorDigi::DigiFailureMEs::SubDetTotDigiProfLS, tkmapdigi, tkmapMedianChargeApvshots, tkmapNApvshots, tkmapNstripApvshot, TotalNShots, SiStripMonitorDigi::SubDetMEs::totNDigis, tTopoToken_, parallelization::uint, and x.

577  {
578  // Filter out events if DCS Event if requested
579  if (dcsStatus_ && !dcsStatus_->getStatus(iEvent, iSetup))
580  return;
581 
582  //Retrieve tracker topology from geometry
583  const TrackerTopology* const tTopo = &iSetup.getData(tTopoToken_);
584 
585  TotalNShots = 0;
586 
587  runNb = iEvent.id().run();
588  eventNb++;
589 
590  float iOrbitVar =
591  m_trendVs10LS ? iEvent.orbitNumber() / (10 * NORBITS_PER_LS) : iEvent.orbitNumber() / NORBITS_PER_LS;
592 
593  digi_detset_handles.clear();
594 
595  std::vector<edm::EDGetTokenT<edm::DetSetVector<SiStripDigi> > >::const_iterator iToken =
596  digiProducerTokenList.begin();
597  for (std::vector<edm::InputTag>::const_iterator iter = digiProducerList.begin(), iEnd = digiProducerList.end();
598  iter != iEnd;
599  ++iter, ++iToken) {
601  iEvent.getByToken(*iToken, digi_handle);
602  if (digi_handle.isValid())
603  digi_detset_handles.push_back(digi_handle.product());
604  }
605 
606  // initialise # of clusters to zero
607  for (std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.begin(); iSubdet != SubDetMEsMap.end();
608  iSubdet++) {
609  iSubdet->second.totNDigis = 0;
610  iSubdet->second.SubDetApvShots.clear();
611  }
612 
613  std::map<int, int> FEDID_v_digisum;
614 
615  for (std::map<std::string, std::vector<uint32_t> >::const_iterator iterLayer = LayerDetMap.begin();
616  iterLayer != LayerDetMap.end();
617  iterLayer++) {
618  std::string layer_label = iterLayer->first;
619 
620  std::vector<uint32_t> layer_dets = iterLayer->second;
621  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_label);
622 
623  //get Layer MEs
624  LayerMEs local_layermes;
625 
626  if (iLayerME == LayerMEsMap.end())
627  continue;
628  else
629  local_layermes = iLayerME->second;
630 
631  int largest_adc_layer = 0;
632  int smallest_adc_layer = 99999;
633 
634  int ndigi_layer = 0;
635 
636  uint16_t iDet = 0;
637 
638  std::string subdet_label = "";
639 
640  // loop over all modules in the layer
641  for (std::vector<uint32_t>::const_iterator iterDets = layer_dets.begin(); iterDets != layer_dets.end();
642  iterDets++) {
643  iDet++;
644 
645  // detid and type of ME
646  uint32_t detid = (*iterDets);
647 
648  // Get SubDet label once
649  if (subdet_label.empty())
650  subdet_label = folder_organizer.getSubDetFolderAndTag(detid, tTopo).second;
651 
652  // DetId and corresponding set of MEs
653 
654  std::map<uint32_t, ModMEs>::iterator pos = DigiMEs.find(detid);
655  ModMEs local_modmes = pos->second;
656 
657  // search digis of detid
658  int loc = getDigiSourceIndex(detid);
659 
660  int ndigi_det = 0;
661 
662  if (loc > -1) {
663  ndigi_det = (*(digi_detset_handles[loc]))[detid].size();
664 
666 
667  //Get all FED connections associated with given detID.
668  // All connections for a detid have same FED Id therefore one FEDID is associated with a given detID.
669  std::vector<const FedChannelConnection*> fedConnections = SiStripDetCabling_->getConnections(detid);
670 
671  // Filling FED Id associated clusters map.
672 
673  int good_fcc_index = -999;
674  for (unsigned int x = 0; x < fedConnections.size(); x++) {
675  if (fedConnections[x] != nullptr) {
676  good_fcc_index = x;
677  break;
678  }
679  }
680  if (fedConnections[good_fcc_index] != nullptr) {
681  int temp_fedid = fedConnections[good_fcc_index]->fedId();
682  if (FEDID_v_digisum.find(temp_fedid) != FEDID_v_digisum.end()) {
683  if (ndigi_det < 1000 && ndigi_det > 0) {
684  FEDID_v_digisum[temp_fedid] = FEDID_v_digisum.find(temp_fedid)->second + ndigi_det;
685  }
686  } else {
687  if (ndigi_det < 1000 && ndigi_det > 0) {
688  FEDID_v_digisum[temp_fedid] = ndigi_det;
689  }
690  }
691  } else {
692  edm::LogInfo("SiStripMonitorDigi")
693  << "SiStripMonitorDigi::analyze WARNING! no good connections for detid = " << detid << std::endl;
694  }
696 
697  APVShotFinder theShotFinder = APVShotFinder((*(digi_detset_handles[loc]))[detid]);
698  const std::vector<APVShot>& shots = theShotFinder.getShots();
699  AddApvShotsToSubDet(shots, SubDetMEsMap[subdet_label].SubDetApvShots);
700  if (shotshistomapon)
701  tkmapNApvshots->fill(detid, shots.size());
703  FillApvShotsMap(tkmapNstripApvshot.get(), shots, detid, 1);
705  FillApvShotsMap(tkmapMedianChargeApvshots.get(), shots, detid, 2);
706  }
707 
708  if (Mod_On_ && moduleswitchnumdigison && (local_modmes.NumberOfDigis != nullptr))
709  (local_modmes.NumberOfDigis)->Fill(ndigi_det);
710 
712  local_layermes.LayerNumberOfDigisProfile->Fill(iDet * 1.0, ndigi_det);
713 
714  if (digitkhistomapon)
715  tkmapdigi->fill(detid, ndigi_det);
716 
717  if (ndigi_det == 0)
718  continue; // no digis for this detid => jump to next step of loop
719 
720  const edm::DetSet<SiStripDigi>& digi_detset = (*(digi_detset_handles[loc]))[detid];
721 
722  ndigi_layer += ndigi_det;
723 
724  // ADCs
725  int largest_adc = (digi_detset.data.begin())->adc();
726  int smallest_adc = (digi_detset.data.begin())->adc();
727 
728  // Check if these parameters are really needed
729  float det_occupancy = 0.0;
730 
731  for (edm::DetSet<SiStripDigi>::const_iterator digiIter = digi_detset.data.begin();
732  digiIter != digi_detset.data.end();
733  digiIter++) {
734  int this_adc = digiIter->adc();
735 
736  if (this_adc > 0.0)
737  det_occupancy++;
738 
739  if (this_adc > largest_adc)
740  largest_adc = this_adc;
741  if (this_adc < smallest_adc)
742  smallest_adc = this_adc;
743 
744  if (Mod_On_ && moduleswitchnumdigispstripon && (local_modmes.NumberOfDigisPerStrip != nullptr) &&
745  (this_adc > 0.0))
746  (local_modmes.NumberOfDigisPerStrip)->Fill(digiIter->strip());
747 
748  if (Mod_On_ && moduleswitchdigiadcson && (local_modmes.DigiADCs != nullptr))
749  (local_modmes.DigiADCs)->Fill(static_cast<float>(this_adc));
750 
751  //Fill #ADCs for this digi at layer level
752  if (layerswitchdigiadcson) {
753  fillME(local_layermes.LayerDigiADCs, this_adc);
754  if (createTrendMEs)
755  fillTrend(local_layermes.LayerDigiADCsTrend, this_adc, iOrbitVar);
756  }
757 
759  local_layermes.LayerDigiADCProfile->Fill(iDet * 1.0, this_adc);
760 
761  } //end of loop over digis in this det
762 
763  // Occupancy
764  short nstrips = SiStripDetCabling_->nApvPairs(detid) * 2 * 128;
765  if (nstrips > 0 && det_occupancy > 0) {
766  det_occupancy = det_occupancy / nstrips;
767  if (Mod_On_ && moduleswitchstripoccupancyon && (local_modmes.StripOccupancy != nullptr))
768  (local_modmes.StripOccupancy)->Fill(det_occupancy);
770  fillME(local_layermes.LayerStripOccupancy, det_occupancy);
771  if (createTrendMEs)
772  fillTrend(local_layermes.LayerStripOccupancyTrend, det_occupancy, iOrbitVar);
773  }
774  }
775 
776  if (largest_adc > largest_adc_layer)
777  largest_adc_layer = largest_adc;
778  if (smallest_adc < smallest_adc_layer)
779  smallest_adc_layer = smallest_adc;
780 
781  // nr. of adcs for hottest strip
782  if (Mod_On_ && moduleswitchadchotteston && (local_modmes.ADCsHottestStrip != nullptr))
783  (local_modmes.ADCsHottestStrip)->Fill(static_cast<float>(largest_adc));
784 
785  // nr. of adcs for coolest strip
786  if (Mod_On_ && moduleswitchadccooleston && (local_modmes.ADCsCoolestStrip != nullptr))
787  (local_modmes.ADCsCoolestStrip)->Fill(static_cast<float>(smallest_adc));
788 
789  } //end of loop over DetIds
790 
791  if (layerswitchnumdigison) {
792  fillME(local_layermes.LayerNumberOfDigis, ndigi_layer);
793  if (createTrendMEs)
794  fillTrend(local_layermes.LayerNumberOfDigisTrend, ndigi_layer, iOrbitVar);
795  }
797  fillME(local_layermes.LayerADCsHottestStrip, largest_adc_layer);
798  if (createTrendMEs)
799  fillTrend(local_layermes.LayerADCsHottestStripTrend, largest_adc_layer, iOrbitVar);
800  }
802  fillME(local_layermes.LayerADCsCoolestStrip, smallest_adc_layer);
803  if (createTrendMEs)
804  fillTrend(local_layermes.LayerADCsCoolestStripTrend, smallest_adc_layer, iOrbitVar);
805  }
806 
807  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(subdet_label);
808  if (iSubdet != SubDetMEsMap.end()) {
809  iSubdet->second.totNDigis += ndigi_layer;
810  //std::cout << " totDigis" << iSubdet->second.totNDigis << " in " << subdet_label << std::endl;
811  }
812  }
813 
814  bool& isStableBeams = *luminosityBlockCache(iEvent.getLuminosityBlock().index());
816  //check Stable beams bit
818  iEvent.getByToken(gtEvmToken_, gtEvm_handle);
819  L1GlobalTriggerEvmReadoutRecord const* gtevm = gtEvm_handle.product();
820 
821  L1GtfeExtWord gtfeEvmExtWord;
822  if (gtevm) {
823  gtfeEvmExtWord = gtevm->gtfeWord();
824  } else
825  edm::LogInfo("DQMProvInfo") << " gtfeEvmWord inaccessible";
826 
827  /* mia: is there not a smarter way !?!?!?!? */
828  if (gtfeEvmExtWord.beamMode() == 11)
829  isStableBeams = true;
830  }
831 
832  for (std::map<std::string, SubDetMEs>::iterator it = SubDetMEsMap.begin(); it != SubDetMEsMap.end(); it++) {
834  if (strcmp(it->first.c_str(), "TEC__MINUS") == 0) {
835  digiFailureMEs.SubDetTotDigiProfLS->Fill(1, it->second.totNDigis);
836  } else if (strcmp(it->first.c_str(), "TEC__PLUS") == 0) {
837  digiFailureMEs.SubDetTotDigiProfLS->Fill(2, it->second.totNDigis);
838  } else if (strcmp(it->first.c_str(), "TIB") == 0) {
839  digiFailureMEs.SubDetTotDigiProfLS->Fill(3, it->second.totNDigis);
840  } else if (strcmp(it->first.c_str(), "TID__MINUS") == 0) {
841  digiFailureMEs.SubDetTotDigiProfLS->Fill(4, it->second.totNDigis);
842  } else if (strcmp(it->first.c_str(), "TID__PLUS") == 0) {
843  digiFailureMEs.SubDetTotDigiProfLS->Fill(5, it->second.totNDigis);
844  } else if (strcmp(it->first.c_str(), "TOB") == 0) {
845  digiFailureMEs.SubDetTotDigiProfLS->Fill(6, it->second.totNDigis);
846  }
847  }
848 
850  if (strcmp(it->first.c_str(), "TEC__MINUS") == 0) {
851  NApvShotsGlobalProf->Fill(1, it->second.SubDetApvShots.size());
852  } else if (strcmp(it->first.c_str(), "TEC__PLUS") == 0) {
853  NApvShotsGlobalProf->Fill(2, it->second.SubDetApvShots.size());
854  } else if (strcmp(it->first.c_str(), "TIB") == 0) {
855  NApvShotsGlobalProf->Fill(3, it->second.SubDetApvShots.size());
856  } else if (strcmp(it->first.c_str(), "TID__MINUS") == 0) {
857  NApvShotsGlobalProf->Fill(4, it->second.SubDetApvShots.size());
858  } else if (strcmp(it->first.c_str(), "TID__PLUS") == 0) {
859  NApvShotsGlobalProf->Fill(5, it->second.SubDetApvShots.size());
860  } else if (strcmp(it->first.c_str(), "TOB") == 0) {
861  NApvShotsGlobalProf->Fill(6, it->second.SubDetApvShots.size());
862  }
863  }
864 
865  SubDetMEs subdetmes = it->second;
866  std::string subdet = it->first;
867 
868  // Fill APV shots histograms for SubDet
869 
870  uint ShotsSize = subdetmes.SubDetApvShots.size();
871  TotalNShots += ShotsSize; //Counter for total Shots in the SiStrip Tracker
872 
874  subdetmes.SubDetNApvShotsTH1->Fill(ShotsSize); // N shots
876  subdetmes.SubDetNApvShotsProf->Fill(iOrbitVar, ShotsSize); //N shots vs time
877 
878  for (uint i = 0; i < ShotsSize;
879  ++i) { // Strip multiplicity, charge median and APV number distributions for APV shots
880 
882  subdetmes.SubDetNApvShotsNApvTH1->Fill(
883  (subdetmes.SubDetApvShots[i].apvNumber() + 1)); //APV are defined by 0 to 5 I want 1 to 6
885  NApvApvShotsGlobal->Fill((subdetmes.SubDetApvShots[i].apvNumber() + 1));
886 
888  subdetmes.SubDetNStripsApvShotsTH1->Fill(subdetmes.SubDetApvShots[i].nStrips());
890  StripMultiplicityApvShotsGlobal->Fill(subdetmes.SubDetApvShots[i].nStrips());
891 
893  subdetmes.SubDetChargeMedianApvShotsTH1->Fill(subdetmes.SubDetApvShots[i].median());
895  MedianChargeApvShotsGlobal->Fill(subdetmes.SubDetApvShots[i].median());
896  }
897 
899  subdetmes.SubDetTotDigiProf->Fill(iOrbitVar, subdetmes.totNDigis);
900  }
901 
906 
908  std::map<int, int>::iterator it;
909  for (it = FEDID_v_digisum.begin(); it != FEDID_v_digisum.end(); it++) {
910  NumberOfFEDDigis->Fill(it->first, it->second);
911  }
912  }
913 
914  // get EventHistory
915 
916  edm::Handle<EventWithHistory> event_history;
917  iEvent.getByToken(historyProducerToken_, event_history);
918 
919  // get Phase of APV
920  edm::Handle<APVCyclePhaseCollection> apv_phase_collection;
921  iEvent.getByToken(apvPhaseProducerToken_, apv_phase_collection);
922 
923  if (event_history.isValid() && !event_history.failedToGet() && apv_phase_collection.isValid() &&
924  !apv_phase_collection.failedToGet()) {
925  long long tbx = event_history->absoluteBX();
926 
927  for (std::map<std::string, SubDetMEs>::iterator it = SubDetMEsMap.begin(); it != SubDetMEsMap.end(); it++) {
928  SubDetMEs subdetmes;
929  std::string subdet = it->first;
930  subdetmes = it->second;
931 
932  int the_phase = APVCyclePhaseCollection::invalid;
933  long long tbx_corr = tbx;
934 
935  if (SubDetPhasePartMap.find(subdet) != SubDetPhasePartMap.end())
936  the_phase = apv_phase_collection->getPhase(SubDetPhasePartMap[subdet]);
939  the_phase = 30;
940  tbx_corr -= the_phase;
941 
943  subdetmes.SubDetDigiApvProf->Fill(tbx_corr % 70, subdetmes.totNDigis);
945  subdetmes.SubDetDigiApvTH2->Fill(tbx_corr % 70, subdetmes.totNDigis);
946  }
947  }
948 } //end of method analyze
std::map< std::string, LayerMEs > LayerMEsMap
const cms_uint16_t beamMode() const
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
T const * product() const
Definition: Handle.h:70
std::unique_ptr< TkHistoMap > tkmapNstripApvshot
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
MonitorElement * NApvShotsGlobalProf
std::map< uint32_t, ModMEs > DigiMEs
std::map< std::string, std::string > SubDetPhasePartMap
MonitorElement * MedianChargeApvShotsGlobal
MonitorElement * StripMultiplicityApvShotsGlobal
const SiStripDetCabling * SiStripDetCabling_
std::unique_ptr< TkHistoMap > tkmapMedianChargeApvshots
long long absoluteBX(const unsigned int ev1) const
void Fill(long long x)
bool failedToGet() const
Definition: HandleBase.h:72
bool getStatus(edm::Event const &e, edm::EventSetup const &eSetup)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
int iEvent
Definition: GenABIO.cc:224
SiStripDCSStatus * dcsStatus_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
DigiFailureMEs digiFailureMEs
edm::EDGetTokenT< EventWithHistory > historyProducerToken_
void fillME(MonitorElement *ME, float value1)
MonitorElement * NApvApvShotsGlobal
std::map< std::string, SubDetMEs > SubDetMEsMap
void fillTrend(MonitorElement *me, float value, float timeinorbit)
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > gtEvmToken_
MonitorElement * NApvShotsGlobal
std::vector< edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > > digiProducerTokenList
std::vector< const edm::DetSetVector< SiStripDigi > * > digi_detset_handles
Log< level::Info, false > LogInfo
int getDigiSourceIndex(uint32_t id)
std::unique_ptr< TkHistoMap > tkmapNApvshots
std::map< std::string, std::vector< uint32_t > > LayerDetMap
bool isValid() const
Definition: HandleBase.h:70
const std::vector< APVShot > & getShots() const
std::unique_ptr< TkHistoMap > tkmapdigi
std::vector< edm::InputTag > digiProducerList
edm::EDGetTokenT< APVCyclePhaseCollection > apvPhaseProducerToken_
const int getPhase(const std::string partition) const
collection_type data
Definition: DetSet.h:80
void AddApvShotsToSubDet(const std::vector< APVShot > &, std::vector< APVShot > &)
SiStripFolderOrganizer folder_organizer
MonitorElement * ShotsVsTimeApvShotsGlobal
collection_type::const_iterator const_iterator
Definition: DetSet.h:31
void FillApvShotsMap(TkHistoMap *, const std::vector< APVShot > &, uint32_t id, int)
MonitorElement * NumberOfFEDDigis
const uint16_t nApvPairs(uint32_t det_id) const
uint16_t *__restrict__ uint16_t const *__restrict__ adc

◆ bookHistograms()

void SiStripMonitorDigi::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >.

Definition at line 213 of file SiStripMonitorDigi.cc.

References createMEs(), DigiMEs, edm::EventSetup::get(), m_cacheID_, reset_each_run, ResetModuleMEs(), and show_mechanical_structure_view.

213  {
215  unsigned long long cacheID = es.get<SiStripDetCablingRcd>().cacheIdentifier();
216  if (m_cacheID_ != cacheID) {
217  m_cacheID_ = cacheID;
218  edm::LogInfo("SiStripMonitorDigi") << "SiStripMonitorDigi::bookHistograms: "
219  << " Creating MEs for new Cabling ";
220  createMEs(ibooker, es);
221  }
222  } else if (reset_each_run) {
223  edm::LogInfo("SiStripMonitorDigi") << "SiStripMonitorDigi::bookHistograms: "
224  << " Resetting MEs ";
225  for (std::map<uint32_t, ModMEs>::const_iterator idet = DigiMEs.begin(); idet != DigiMEs.end(); idet++) {
226  ResetModuleMEs(idet->first);
227  }
228  }
229 }
void ResetModuleMEs(uint32_t idet)
void createMEs(DQMStore::IBooker &ibooker, const edm::EventSetup &es)
std::map< uint32_t, ModMEs > DigiMEs
unsigned long long m_cacheID_
Log< level::Info, false > LogInfo

◆ bookLayer()

void SiStripMonitorDigi::bookLayer ( DQMStore::IBooker ibooker)
private

◆ bookME1D()

SiStripMonitorDigi::MonitorElement * SiStripMonitorDigi::bookME1D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
private

Definition at line 994 of file SiStripMonitorDigi.cc.

References dqm::implementation::IBooker::book1D(), conf_, and edm::ParameterSet::getParameter().

Referenced by createLayerMEs(), and createModuleMEs().

996  {
998  return ibooker.book1D(HistoName,
999  HistoName,
1000  Parameters.getParameter<int32_t>("Nbinx"),
1001  Parameters.getParameter<double>("xmin"),
1002  Parameters.getParameter<double>("xmax"));
1003 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::ParameterSet conf_
std::string HistoName
std::vector< AlignmentParameters * > Parameters
Definition: Utilities.h:32
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ bookMETrend()

SiStripMonitorDigi::MonitorElement * SiStripMonitorDigi::bookMETrend ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
private

Definition at line 968 of file SiStripMonitorDigi.cc.

References dqm::implementation::IBooker::bookProfile(), conf_, edm::ParameterSet::getParameter(), hlt_dqm_clientPB-live_cfg::me, and MonitorElementData::TPROFILE.

Referenced by createLayerMEs().

970  {
971  edm::ParameterSet ParametersTrend = conf_.getParameter<edm::ParameterSet>("Trending");
972  MonitorElement* me =
973  ibooker.bookProfile(HistoName,
974  HistoName,
975  ParametersTrend.getParameter<int32_t>("Nbins"),
976  // 0,
977  ParametersTrend.getParameter<double>("xmin"),
978  ParametersTrend.getParameter<double>("xmax"),
979  // ParametersTrend.getParameter<int32_t>("Nbins"),
980  100, //that parameter should not be there !?
981  ParametersTrend.getParameter<double>("ymin"),
982  ParametersTrend.getParameter<double>("ymax"),
983  "");
984  if (!me)
985  return me;
986 
987  me->setAxisTitle("Lumisection", 1);
988  if (me->kind() == MonitorElement::Kind::TPROFILE)
989  me->setCanExtend(TH1::kAllAxes);
990  return me;
991 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
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:408
edm::ParameterSet conf_
std::string HistoName

◆ bookTrendMEs()

void SiStripMonitorDigi::bookTrendMEs ( DQMStore::IBooker ibooker,
const TString &  name,
int32_t  layer,
uint32_t  id,
std::string  flag 
)
private

◆ createLayerMEs()

void SiStripMonitorDigi::createLayerMEs ( DQMStore::IBooker ibooker,
std::string  label,
int  ndet 
)
private

Definition at line 1069 of file SiStripMonitorDigi.cc.

References bookME1D(), bookMETrend(), dqm::implementation::IBooker::bookProfile(), SiStripHistoId::createHistoLayer(), createTrendMEs, label, SiStripMonitorDigi::LayerMEs::LayerADCsCoolestStrip, SiStripMonitorDigi::LayerMEs::LayerADCsCoolestStripTrend, SiStripMonitorDigi::LayerMEs::LayerADCsHottestStrip, SiStripMonitorDigi::LayerMEs::LayerADCsHottestStripTrend, SiStripMonitorDigi::LayerMEs::LayerDigiADCProfile, SiStripMonitorDigi::LayerMEs::LayerDigiADCs, SiStripMonitorDigi::LayerMEs::LayerDigiADCsTrend, LayerMEsMap, SiStripMonitorDigi::LayerMEs::LayerNumberOfDigis, SiStripMonitorDigi::LayerMEs::LayerNumberOfDigisProfile, SiStripMonitorDigi::LayerMEs::LayerNumberOfDigisTrend, SiStripMonitorDigi::LayerMEs::LayerStripOccupancy, SiStripMonitorDigi::LayerMEs::LayerStripOccupancyTrend, layerswitchadccooleston, layerswitchadchotteston, layerswitchdigiadcprofon, layerswitchdigiadcson, layerswitchnumdigison, layerswitchnumdigisprofon, layerswitchstripoccupancyon, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by createMEs().

1069  {
1070  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(label);
1071  if (iLayerME == LayerMEsMap.end()) {
1072  SiStripHistoId hidmanager;
1073  LayerMEs layerMEs;
1074  layerMEs.LayerNumberOfDigis = nullptr;
1075  layerMEs.LayerNumberOfDigisTrend = nullptr;
1076  layerMEs.LayerADCsHottestStrip = nullptr;
1077  layerMEs.LayerADCsHottestStripTrend = nullptr;
1078  layerMEs.LayerADCsCoolestStrip = nullptr;
1079  layerMEs.LayerADCsCoolestStripTrend = nullptr;
1080  layerMEs.LayerDigiADCs = nullptr;
1081  layerMEs.LayerDigiADCsTrend = nullptr;
1082  layerMEs.LayerStripOccupancy = nullptr;
1083  layerMEs.LayerStripOccupancyTrend = nullptr;
1084  layerMEs.LayerNumberOfDigisProfile = nullptr;
1085  layerMEs.LayerDigiADCProfile = nullptr;
1086 
1087  //#Digis
1088  if (layerswitchnumdigison) {
1089  layerMEs.LayerNumberOfDigis =
1090  bookME1D(ibooker,
1091  "TH1NumberOfDigis",
1092  hidmanager.createHistoLayer("Summary_TotalNumberOfDigis", "layer", label, "").c_str());
1093  if (createTrendMEs)
1094  layerMEs.LayerNumberOfDigisTrend =
1095  bookMETrend(ibooker,
1096  "TH1NumberOfDigis",
1097  hidmanager.createHistoLayer("Trend_NumberOfDigis", "layer", label, "").c_str());
1098  }
1099 
1100  //#ADCs for hottest strip
1102  layerMEs.LayerADCsHottestStrip =
1103  bookME1D(ibooker,
1104  "TH1ADCsHottestStrip",
1105  hidmanager.createHistoLayer("Summary_ADCsHottestStrip", "layer", label, "").c_str());
1106  if (createTrendMEs)
1107  layerMEs.LayerADCsHottestStripTrend =
1108  bookMETrend(ibooker,
1109  "TH1ADCsHottestStrip",
1110  hidmanager.createHistoLayer("Trend_ADCsHottestStrip", "layer", label, "").c_str());
1111  }
1112 
1113  //#ADCs for coolest strip
1115  layerMEs.LayerADCsCoolestStrip =
1116  bookME1D(ibooker,
1117  "TH1ADCsCoolestStrip",
1118  hidmanager.createHistoLayer("Summary_ADCsCoolestStrip", "layer", label, "").c_str());
1119  if (createTrendMEs)
1120  layerMEs.LayerADCsCoolestStripTrend =
1121  bookMETrend(ibooker,
1122  "TH1ADCsCoolestStrip",
1123  hidmanager.createHistoLayer("Trend_ADCsCoolestStrip", "layer", label, "").c_str());
1124  }
1125 
1126  //#ADCs for each digi
1127  if (layerswitchdigiadcson) {
1128  layerMEs.LayerDigiADCs =
1129  bookME1D(ibooker, "TH1DigiADCs", hidmanager.createHistoLayer("Summary_DigiADCs", "layer", label, "").c_str());
1130  if (createTrendMEs)
1131  layerMEs.LayerDigiADCsTrend = bookMETrend(
1132  ibooker, "TH1DigiADCs", hidmanager.createHistoLayer("Trend_DigiADCs", "layer", label, "").c_str());
1133  }
1134 
1135  //Strip Occupancy
1137  layerMEs.LayerStripOccupancy =
1138  bookME1D(ibooker,
1139  "TH1StripOccupancy",
1140  hidmanager.createHistoLayer("Summary_StripOccupancy", "layer", label, "").c_str());
1141  if (createTrendMEs)
1142  layerMEs.LayerStripOccupancyTrend =
1143  bookMETrend(ibooker,
1144  "TH1StripOccupancy",
1145  hidmanager.createHistoLayer("Trend_StripOccupancy", "layer", label, "").c_str());
1146  }
1147  // # of Digis
1149  std::string hid = hidmanager.createHistoLayer("NumberOfDigiProfile", "layer", label, "");
1150  layerMEs.LayerNumberOfDigisProfile = ibooker.bookProfile(hid, hid, ndets, 0.5, ndets + 0.5, 21, -0.5, 200.5);
1151  }
1152 
1153  // # of Digis
1155  std::string hid = hidmanager.createHistoLayer("DigiADCProfile", "layer", label, "");
1156  layerMEs.LayerDigiADCProfile = ibooker.bookProfile(hid, hid, ndets, 0.5, ndets + 0.5, 64, -0.5, 255.5);
1157  }
1158 
1159  LayerMEsMap[label] = layerMEs;
1160  }
1161 }
std::map< std::string, LayerMEs > LayerMEsMap
char const * label
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:408
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName)
MonitorElement * bookMETrend(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)

◆ createMEs()

void SiStripMonitorDigi::createMEs ( DQMStore::IBooker ibooker,
const edm::EventSetup es 
)
private

Definition at line 320 of file SiStripMonitorDigi.cc.

References funct::abs(), SiStripMonitorDigi::ModMEs::ADCsCoolestStrip, SiStripMonitorDigi::ModMEs::ADCsHottestStrip, SiStripDetCabling::addActiveDetectorsRawIds(), conf_, createLayerMEs(), createModuleMEs(), createSubDetMEs(), SiStripMonitorDigi::ModMEs::DigiADCs, digiFailureMEs, DigiMEs, digitkhistomapon, folder_organizer, edm::EventSetup::getData(), SiStripFolderOrganizer::getLayerFolderName(), edm::ParameterSet::getParameter(), SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), SiStripSubStructure::getTECDetectors(), SiStripSubStructure::getTIBDetectors(), SiStripSubStructure::getTIDDetectors(), SiStripSubStructure::getTOBDetectors(), globalsummaryapvshotson, globalswitchapvshotsApvon, globalswitchapvshotsonprof, globalswitchchargemedianapvshotson, globalswitchnapvshotson, globalswitchNDigisFEDID, globalswitchnstripsapvshotson, dqm::impl::MonitorElement::kind(), label, LayerDetMap, LayerMEsMap, MedianChargeApvShotsGlobal, Mod_On_, NApvApvShotsGlobal, NApvShotsGlobal, NApvShotsGlobalProf, SiStripMonitorDigi::ModMEs::NumberOfDigis, SiStripMonitorDigi::ModMEs::NumberOfDigisPerStrip, NumberOfFEDDigis, reset_each_run, ResetModuleMEs(), TrackerTopology::second(), dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::impl::MonitorElement::setCanExtend(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setLayerFolder(), shotschargehistomapon, shotshistomapon, shotsstripshistomapon, ShotsVsTimeApvShotsGlobal, show_mechanical_structure_view, SiStripDetCabling_, SiStripDetCablingTokenRun_, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, StripMultiplicityApvShotsGlobal, SiStripMonitorDigi::ModMEs::StripOccupancy, SiStripMonitorDigi::DigiFailureMEs::SubDetDigiFailures2D, SubDetMEsMap, subdetswitchtotdigifailureon, SiStripMonitorDigi::DigiFailureMEs::SubDetTotDigiProfLS, tkDetMapTokenRun_, tkmapdigi, tkmapMedianChargeApvshots, tkmapNApvshots, tkmapNstripApvshot, topFolderName_, MonitorElementData::TPROFILE, and tTopoTokenRun_.

Referenced by bookHistograms().

320  {
322  //Retrieve tracker topology from geometry
323  const TrackerTopology* const tTopo = &es.getData(tTopoTokenRun_);
324  const TkDetMap* tkDetMap = &es.getData(tkDetMapTokenRun_);
325 
326  // take from eventSetup the SiStripDetCabling object - here will use SiStripDetControl later on
328 
329  // get list of active detectors from SiStripDetCabling
330  std::vector<uint32_t> activeDets;
331  activeDets.clear(); // just in case
333 
334  // remove any eventual zero elements - there should be none, but just in case
335  for (std::vector<uint32_t>::iterator idets = activeDets.begin(); idets != activeDets.end(); idets++) {
336  if (*idets == 0)
337  activeDets.erase(idets);
338  }
339 
340  // create SiStripFolderOrganizer
342 
343  // Create TkHistoMap for Digi and APV shots properies
344 
345  if (digitkhistomapon)
346  tkmapdigi = std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_NumberOfDigi", 0.0, true);
347  if (shotshistomapon)
348  tkmapNApvshots = std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_NApvShots", 0.0, true);
351  std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_NStripApvShots", 0.0, true);
354  std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_MedianChargeApvShots", 0.0, true);
355 
356  std::vector<uint32_t> tibDetIds;
357 
358  // loop over detectors and book MEs
359  edm::LogInfo("SiStripTkDQM|SiStripMonitorDigi") << "nr. of activeDets: " << activeDets.size();
360  for (std::vector<uint32_t>::const_iterator detid_iterator = activeDets.begin(); detid_iterator != activeDets.end();
361  detid_iterator++) {
362  uint32_t detid = (*detid_iterator);
363 
364  ModMEs local_modmes;
365 
366  local_modmes.NumberOfDigis = nullptr;
367  local_modmes.NumberOfDigisPerStrip = nullptr;
368  local_modmes.ADCsHottestStrip = nullptr;
369  local_modmes.ADCsCoolestStrip = nullptr;
370  local_modmes.DigiADCs = nullptr;
371  local_modmes.StripOccupancy = nullptr;
372 
373  if (Mod_On_) {
374  // set appropriate folder using SiStripFolderOrganizer
375  folder_organizer.setDetectorFolder(detid, tTopo); // pass the detid to this method
376  if (reset_each_run)
377  ResetModuleMEs(detid);
378  createModuleMEs(ibooker, local_modmes, detid);
379 
380  // append to DigiMEs
381  DigiMEs.insert(std::make_pair(detid, local_modmes));
382  }
383 
384  // Create Layer Level MEs if they are not created already
385  std::pair<std::string, int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid, tTopo);
386  SiStripHistoId hidmanager;
387  std::string label = hidmanager.getSubdetid(detid, tTopo, false);
388 
389  // get detids for the layer
390  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(label);
391 
392  if (iLayerME == LayerMEsMap.end()) {
393  int32_t lnumber = det_layer_pair.second;
394  std::vector<uint32_t> layerDetIds;
395  if (det_layer_pair.first == "TIB") {
396  SiStripSubStructure::getTIBDetectors(activeDets, layerDetIds, tTopo, lnumber, 0, 0, 0);
397  } else if (det_layer_pair.first == "TOB") {
398  SiStripSubStructure::getTOBDetectors(activeDets, layerDetIds, tTopo, lnumber, 0, 0);
399  } else if (det_layer_pair.first == "TID" && lnumber > 0) {
400  SiStripSubStructure::getTIDDetectors(activeDets, layerDetIds, tTopo, 2, abs(lnumber), 0, 0);
401  } else if (det_layer_pair.first == "TID" && lnumber < 0) {
402  SiStripSubStructure::getTIDDetectors(activeDets, layerDetIds, tTopo, 1, abs(lnumber), 0, 0);
403  } else if (det_layer_pair.first == "TEC" && lnumber > 0) {
404  SiStripSubStructure::getTECDetectors(activeDets, layerDetIds, tTopo, 2, abs(lnumber), 0, 0, 0, 0);
405  } else if (det_layer_pair.first == "TEC" && lnumber < 0) {
406  SiStripSubStructure::getTECDetectors(activeDets, layerDetIds, tTopo, 1, abs(lnumber), 0, 0, 0, 0);
407  }
408 
409  LayerDetMap[label] = layerDetIds;
410 
411  // book Layer plots
412  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second);
413  createLayerMEs(ibooker, label, layerDetIds.size());
414  }
415 
416  // book sub-detector plots
417  auto sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
418  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()) {
419  ibooker.setCurrentFolder(sdet_pair.first);
420  createSubDetMEs(ibooker, sdet_pair.second);
421  }
422 
423  } //end of loop over detectors
424 
425  //book some Summary histograms on APV shots in the MechanicalView
426 
427  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
428 
430  const char* HistoName = "Summary Mean Apv shots for SubDets";
431  NApvShotsGlobalProf = ibooker.bookProfile(HistoName, HistoName, 6, 0.5, 6.5, 100, 0., 0., "");
438  NApvShotsGlobalProf->setAxisTitle(" mean APV shots # / evt", 2);
439  }
440 
441  //cumulative number of APV shots Vs Time
444  const char* HistoName = "NApv_Shots_vs_Time";
445  ShotsVsTimeApvShotsGlobal = ibooker.bookProfile(HistoName,
446  HistoName,
447  Parameters.getParameter<int32_t>("Nbins"),
448  Parameters.getParameter<double>("xmin"),
449  Parameters.getParameter<double>("xmax"),
450  200, //that parameter should not be there !?
451  Parameters.getParameter<double>("ymin"),
452  Parameters.getParameter<double>("ymax"),
453  "");
454  ShotsVsTimeApvShotsGlobal->setAxisTitle("Time (s)", 1);
455  ShotsVsTimeApvShotsGlobal->setAxisTitle("# Apv Shots", 2);
457  ShotsVsTimeApvShotsGlobal->setCanExtend(TH1::kAllAxes);
458  }
459 
460  //cumulative number of Strips in APV shots
463  const char* HistoName = "Number_of_Strips_in_Apv_Shots";
465  HistoName,
466  Parameters.getParameter<int32_t>("Nbins"),
467  Parameters.getParameter<double>("xmin"),
468  Parameters.getParameter<double>("xmax"));
469  StripMultiplicityApvShotsGlobal->setAxisTitle("# strips in Apv Shots", 1);
470  }
471 
472  //cumulative number of APV shots
475  const char* HistoName = "Number_of_Apv_Shots";
476  NApvShotsGlobal = ibooker.book1D(HistoName,
477  HistoName,
478  Parameters.getParameter<int32_t>("Nbins"),
479  Parameters.getParameter<double>("xmin"),
480  Parameters.getParameter<double>("xmax"));
481  NApvShotsGlobal->setAxisTitle("# Apv Shots", 1);
482  }
483 
484  //cumulative Median Charge in APV shots
486  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TH1ChargeMedianApvShots");
487  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
488  const char* HistoName = "Apv_Shots_Charge_Median";
489  MedianChargeApvShotsGlobal = ibooker.book1D(HistoName,
490  HistoName,
491  Parameters.getParameter<int32_t>("Nbins"),
492  Parameters.getParameter<double>("xmin"),
493  Parameters.getParameter<double>("xmax"));
494  MedianChargeApvShotsGlobal->setAxisTitle("Apv Shots Charge Median (ADC)", 1);
495  }
496 
497  //cmulative APV number with shots
500  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
501  const char* HistoName = "Apv_Shots_Apv_Number";
502  NApvApvShotsGlobal = ibooker.book1D(HistoName,
503  HistoName,
504  Parameters.getParameter<int32_t>("Nbins"),
505  Parameters.getParameter<double>("xmin"),
506  Parameters.getParameter<double>("xmax"));
507  NApvApvShotsGlobal->setAxisTitle("Apv Number", 1);
508  }
509 
511  // Number of digis per FED
512  edm::ParameterSet FEDDigi = conf_.getParameter<edm::ParameterSet>("TProfNDigisFED");
513  const char* HistoName = "NumberOfDigisinFED_v_FEDID";
514  //Using TProfile for average.
515  NumberOfFEDDigis = ibooker.bookProfile(HistoName,
516  HistoName,
517  FEDDigi.getParameter<int32_t>("Nbinsx"),
518  FEDDigi.getParameter<double>("xmin"),
519  FEDDigi.getParameter<double>("xmax"),
520  FEDDigi.getParameter<int32_t>("Nbinsy"),
521  FEDDigi.getParameter<double>("ymin"),
522  FEDDigi.getParameter<double>("ymax"),
523  "");
524  NumberOfFEDDigis->setAxisTitle("FED ID", 1);
525  NumberOfFEDDigis->setAxisTitle("Mean # of Digis in FED", 2);
526  }
527 
528  //
529  // Book new histogram to monitor digi in last LS
530  //
531 
534 
535  std::stringstream ss;
536 
538  ibooker.setCurrentFolder(ss.str());
539 
541  const char* HistoName = "NumberOfDigisInLastLS";
542  digiFailureMEs.SubDetTotDigiProfLS = ibooker.bookProfile(HistoName, HistoName, 6, 0.5, 6.5, 0., 0., "");
549  }
550 
552  std::string HistoName = "DataPresentInLS";
553  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TotalNumberOfDigisFailure");
554 
556  HistoName,
557  Parameters.getParameter<int32_t>("Nbins"), //bins X
558  1, //xmin
559  Parameters.getParameter<int32_t>("Nbins") + 1, //xmax
560  6, //bins Y
561  0, //ymin
562  6); //ymax
563 
570  digiFailureMEs.SubDetDigiFailures2D->setAxisTitle("Luminosity Section");
571  }
572  } //end of if
573 
574 } //end of method
void ResetModuleMEs(uint32_t idet)
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::map< std::string, LayerMEs > LayerMEsMap
void getTIBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tibDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t int_ext=0, uint32_t string=0)
virtual DQM_DEPRECATED void setCanExtend(unsigned int value)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
std::unique_ptr< TkHistoMap > tkmapNstripApvshot
Kind kind() const
Get the type of the monitor element.
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoTokenRun_
void getTIDDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tidDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t ring=0, uint32_t ster=0)
MonitorElement * NApvShotsGlobalProf
std::map< uint32_t, ModMEs > DigiMEs
void getLayerFolderName(std::stringstream &ss, uint32_t rawdetid, const TrackerTopology *tTopo, bool ring_flag=false)
MonitorElement * MedianChargeApvShotsGlobal
MonitorElement * StripMultiplicityApvShotsGlobal
const SiStripDetCabling * SiStripDetCabling_
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=false)
void getTECDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tecDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t petal_bkw_frw=0, uint32_t petal=0, uint32_t ring=0, uint32_t ster=0)
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapTokenRun_
std::unique_ptr< TkHistoMap > tkmapMedianChargeApvshots
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
void createSubDetMEs(DQMStore::IBooker &ibooker, std::string label)
char const * label
DigiFailureMEs digiFailureMEs
MonitorElement * NApvApvShotsGlobal
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > SiStripDetCablingTokenRun_
std::map< std::string, SubDetMEs > SubDetMEsMap
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
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)
void createLayerMEs(DQMStore::IBooker &ibooker, std::string label, int ndet)
MonitorElement * NApvShotsGlobal
Log< level::Info, false > LogInfo
std::unique_ptr< TkHistoMap > tkmapNApvshots
std::map< std::string, std::vector< uint32_t > > LayerDetMap
std::string topFolderName_
edm::ParameterSet conf_
std::string HistoName
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=false)
std::vector< AlignmentParameters * > Parameters
Definition: Utilities.h:32
std::unique_ptr< TkHistoMap > tkmapdigi
SiStripFolderOrganizer folder_organizer
MonitorElement * ShotsVsTimeApvShotsGlobal
void getTOBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tobDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t rod=0)
MonitorElement * NumberOfFEDDigis
void createModuleMEs(DQMStore::IBooker &ibooker, ModMEs &mod_single, uint32_t detid)
void addActiveDetectorsRawIds(std::vector< uint32_t > &) const
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ createModuleMEs()

void SiStripMonitorDigi::createModuleMEs ( DQMStore::IBooker ibooker,
ModMEs mod_single,
uint32_t  detid 
)
private

Definition at line 1015 of file SiStripMonitorDigi.cc.

References SiStripMonitorDigi::ModMEs::ADCsCoolestStrip, SiStripMonitorDigi::ModMEs::ADCsHottestStrip, dqm::implementation::IBooker::book1D(), bookME1D(), SiStripHistoId::createHistoId(), SiStripMonitorDigi::ModMEs::DigiADCs, moduleswitchadccooleston, moduleswitchadchotteston, moduleswitchdigiadcson, moduleswitchnumdigison, moduleswitchnumdigispstripon, moduleswitchstripoccupancyon, SiStripDetCabling::nApvPairs(), SiStripMonitorDigi::ModMEs::NumberOfDigis, SiStripMonitorDigi::ModMEs::NumberOfDigisPerStrip, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setStatOverflows(), SiStripDetCabling_, AlCaHLTBitMon_QueryRunRegistry::string, and SiStripMonitorDigi::ModMEs::StripOccupancy.

Referenced by createMEs().

1015  {
1016  // use SistripHistoId for producing histogram id (and title)
1017  SiStripHistoId hidmanager;
1018  std::string hid;
1019 
1020  //nr. of digis per module
1021  if (moduleswitchnumdigison) {
1022  hid = hidmanager.createHistoId("NumberOfDigis", "det", detid);
1023  mod_single.NumberOfDigis = ibooker.book1D(hid, hid, 21, -0.5, 20.5);
1024  mod_single.NumberOfDigis->setAxisTitle("number of digis in one detector module");
1025  mod_single.NumberOfDigis->setStatOverflows(kTRUE); // over/underflows in Mean calculation
1026  }
1027 
1028  //nr. of digis per strip in module
1030  hid = hidmanager.createHistoId("NumberOfDigisPerStrip", "det", detid);
1031  short nstrips = SiStripDetCabling_->nApvPairs(detid) * 2 * 128;
1032  mod_single.NumberOfDigisPerStrip = ibooker.book1D(hid, hid, nstrips, -0.5, nstrips + 0.5);
1033  mod_single.NumberOfDigisPerStrip->setAxisTitle("number of (digis > 0) per strip");
1034  mod_single.NumberOfDigisPerStrip->setStatOverflows(kTRUE); // over/underflows in Mean calculation
1035  }
1036  //#ADCs for hottest strip
1038  hid = hidmanager.createHistoId("ADCsHottestStrip", "det", detid);
1039  mod_single.ADCsHottestStrip = bookME1D(ibooker, "TH1ADCsHottestStrip", hid.c_str());
1040  mod_single.ADCsHottestStrip->setAxisTitle("number of ADCs for hottest strip");
1041  }
1042 
1043  //#ADCs for coolest strip
1045  hid = hidmanager.createHistoId("ADCsCoolestStrip", "det", detid);
1046  mod_single.ADCsCoolestStrip = bookME1D(ibooker, "TH1ADCsCoolestStrip", hid.c_str());
1047  mod_single.ADCsCoolestStrip->setAxisTitle("number of ADCs for coolest strip");
1048  }
1049 
1050  //#ADCs for each digi
1051  if (moduleswitchdigiadcson) {
1052  hid = hidmanager.createHistoId("DigiADCs", "det", detid);
1053  mod_single.DigiADCs = bookME1D(ibooker, "TH1DigiADCs", hid.c_str());
1054  mod_single.DigiADCs->setAxisTitle("number of ADCs for each digi");
1055  }
1056 
1057  //Strip occupancy
1059  hid = hidmanager.createHistoId("StripOccupancy", "det", detid);
1060  mod_single.StripOccupancy = bookME1D(ibooker, "TH1StripOccupancy", hid.c_str());
1061  mod_single.StripOccupancy->setAxisTitle("strip occupancy");
1062  }
1063 }
const SiStripDetCabling * SiStripDetCabling_
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName)
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
const uint16_t nApvPairs(uint32_t det_id) const
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ createSubDetMEs()

void SiStripMonitorDigi::createSubDetMEs ( DQMStore::IBooker ibooker,
std::string  label 
)
private

Definition at line 1165 of file SiStripMonitorDigi.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), conf_, edm::ParameterSet::getParameter(), dqm::impl::MonitorElement::kind(), label, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setCanExtend(), AlCaHLTBitMon_QueryRunRegistry::string, SiStripMonitorDigi::SubDetMEs::SubDetChargeMedianApvShotsTH1, SiStripMonitorDigi::SubDetMEs::SubDetDigiApvProf, SiStripMonitorDigi::SubDetMEs::SubDetDigiApvTH2, SubDetMEsMap, SiStripMonitorDigi::SubDetMEs::SubDetNApvShotsNApvTH1, SiStripMonitorDigi::SubDetMEs::SubDetNApvShotsProf, SiStripMonitorDigi::SubDetMEs::SubDetNApvShotsTH1, SiStripMonitorDigi::SubDetMEs::SubDetNStripsApvShotsTH1, subdetswitchapvcycleprofon, subdetswitchapvcycleth2on, subdetswitchapvshotsonprof, subdetswitchchargemedianapvshotson, subdetswitchnapvshotson, subdetswitchnstripsapvshotson, subdetswitchtotdigiprofon, SiStripMonitorDigi::SubDetMEs::SubDetTotDigiProf, and MonitorElementData::TPROFILE.

Referenced by createMEs().

1165  {
1166  SubDetMEs subdetMEs;
1167 
1169 
1170  // Total Number of Digi - Profile
1172  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProfTotalNumberOfDigis");
1173  HistoName = "TotalNumberOfDigiProfile__" + label;
1174  subdetMEs.SubDetTotDigiProf = ibooker.bookProfile(HistoName,
1175  HistoName,
1176  Parameters.getParameter<int32_t>("Nbins"),
1177  Parameters.getParameter<double>("xmin"),
1178  Parameters.getParameter<double>("xmax"),
1179  100, //that parameter should not be there !?
1180  Parameters.getParameter<double>("ymin"),
1181  Parameters.getParameter<double>("ymax"),
1182  "");
1183  subdetMEs.SubDetTotDigiProf->setAxisTitle("Lumisection", 1);
1184 
1185  if (subdetMEs.SubDetTotDigiProf->kind() == MonitorElement::Kind::TPROFILE)
1186  subdetMEs.SubDetTotDigiProf->setCanExtend(TH1::kAllAxes);
1187  }
1188 
1189  // Number of Digi vs Bx - Profile
1192  HistoName = "Digi_vs_ApvCycle__" + label;
1193  subdetMEs.SubDetDigiApvProf = ibooker.bookProfile(HistoName,
1194  HistoName,
1195  Parameters.getParameter<int32_t>("Nbins"),
1196  Parameters.getParameter<double>("xmin"),
1197  Parameters.getParameter<double>("xmax"),
1198  200, //that parameter should not be there !?
1199  Parameters.getParameter<double>("ymin"),
1200  Parameters.getParameter<double>("ymax"),
1201  "");
1202  subdetMEs.SubDetDigiApvProf->setAxisTitle("ApvCycle (Corrected Absolute Bx % 70)", 1);
1203  }
1204 
1205  // Number of Digi vs Bx - TH2
1208  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
1209  HistoName = "Digi_vs_ApvCycle_2D__" + label;
1210  // Adjusting the scale for 2D histogram
1211  double h2ymax = 9999.0;
1212  double yfact = Parameters.getParameter<double>("yfactor");
1213  if (label.find("TIB") != std::string::npos)
1214  h2ymax = (6984. * 256.) * yfact;
1215  else if (label.find("TID") != std::string::npos)
1216  h2ymax = (2208. * 256.) * yfact;
1217  else if (label.find("TOB") != std::string::npos)
1218  h2ymax = (12906. * 256.) * yfact;
1219  else if (label.find("TEC") != std::string::npos)
1220  h2ymax = (7552. * 2. * 256.) * yfact;
1221  subdetMEs.SubDetDigiApvTH2 =
1222  ibooker.book2D(HistoName,
1223  HistoName,
1224  Parameters.getParameter<int32_t>("Nbins"),
1225  Parameters.getParameter<double>("xmin"),
1226  Parameters.getParameter<double>("xmax"),
1227  Parameters.getParameter<int32_t>("Nbinsy"), //it was 100 that parameter should not be there !?
1228  Parameters.getParameter<double>("ymin"),
1229  h2ymax);
1230  subdetMEs.SubDetDigiApvTH2->setAxisTitle("absolute Bx mod(70)", 1);
1231  }
1232 
1233  //Number of APV Shots
1236  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
1237  HistoName = "Number_of_Apv_Shots_" + label;
1238  subdetMEs.SubDetNApvShotsTH1 = ibooker.book1D(HistoName,
1239  HistoName,
1240  Parameters.getParameter<int32_t>("Nbins"),
1241  Parameters.getParameter<double>("xmin"),
1242  Parameters.getParameter<double>("xmax"));
1243  subdetMEs.SubDetNApvShotsTH1->setAxisTitle("# Apv Shots", 1);
1244  }
1245 
1246  //Strip multiplicity of APV Shots
1249  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
1250  HistoName = "Number_of_Strips_in_Apv_Shots_" + label;
1251  subdetMEs.SubDetNStripsApvShotsTH1 = ibooker.book1D(HistoName,
1252  HistoName,
1253  Parameters.getParameter<int32_t>("Nbins"),
1254  Parameters.getParameter<double>("xmin"),
1255  Parameters.getParameter<double>("xmax"));
1256  subdetMEs.SubDetNStripsApvShotsTH1->setAxisTitle("# strips in Apv Shots", 1);
1257  }
1258 
1259  //Charge median of APV Shots
1261  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TH1ChargeMedianApvShots");
1262  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
1263  HistoName = "Apv_Shots_Charge_Median_" + label;
1264  subdetMEs.SubDetChargeMedianApvShotsTH1 = ibooker.book1D(HistoName,
1265  HistoName,
1266  Parameters.getParameter<int32_t>("Nbins"),
1267  Parameters.getParameter<double>("xmin"),
1268  Parameters.getParameter<double>("xmax"));
1269  subdetMEs.SubDetChargeMedianApvShotsTH1->setAxisTitle("Apv Shots Charge Median (ADC)", 1);
1270  }
1271 
1274  //dqmStore_->setCurrentFolder("SiStrip/MechanicalView/"+label);
1275  HistoName = "Apv_Shots_Apv_Number_" + label;
1276  subdetMEs.SubDetNApvShotsNApvTH1 = ibooker.book1D(HistoName,
1277  HistoName,
1278  Parameters.getParameter<int32_t>("Nbins"),
1279  Parameters.getParameter<double>("xmin"),
1280  Parameters.getParameter<double>("xmax"));
1281  subdetMEs.SubDetNApvShotsNApvTH1->setAxisTitle("Apv Number", 1);
1282  }
1283 
1284  //APV Shots number Vs time
1287  HistoName = "NApv_Shots_vs_Time_" + label;
1288  subdetMEs.SubDetNApvShotsProf = ibooker.bookProfile(HistoName,
1289  HistoName,
1290  Parameters.getParameter<int32_t>("Nbins"),
1291  Parameters.getParameter<double>("xmin"),
1292  Parameters.getParameter<double>("xmax"),
1293  200, //that parameter should not be there !?
1294  Parameters.getParameter<double>("ymin"),
1295  Parameters.getParameter<double>("ymax"),
1296  "");
1297  subdetMEs.SubDetNApvShotsProf->setAxisTitle("Time (s)", 1);
1298  subdetMEs.SubDetNApvShotsProf->setAxisTitle("# Apv Shots", 2);
1299  if (subdetMEs.SubDetNApvShotsProf->kind() == MonitorElement::Kind::TPROFILE)
1300  subdetMEs.SubDetNApvShotsProf->setCanExtend(TH1::kAllAxes);
1301  }
1302 
1303  SubDetMEsMap[label] = subdetMEs;
1304 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
char const * label
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:408
std::map< std::string, SubDetMEs > SubDetMEsMap
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:221
edm::ParameterSet conf_
std::string HistoName
std::vector< AlignmentParameters * > Parameters
Definition: Utilities.h:32
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ createSubDetTH2()

void SiStripMonitorDigi::createSubDetTH2 ( DQMStore::IBooker ibooker,
std::string  label 
)
private

◆ dqmBeginRun()

void SiStripMonitorDigi::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overridevirtual

Reimplemented from DQMOneEDAnalyzer< edm::LuminosityBlockCache< bool > >.

Definition at line 232 of file SiStripMonitorDigi.cc.

References edm::EventSetup::get(), edm::ESHandleBase::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, m_cacheID_, RunInfo::m_fed_in, nFedTECm, nFedTECp, nFedTIB, nFedTIDm, nFedTIDp, nFedTOB, runInfoTokenRun_, subdetswitchtotdigifailureon, and edm::EventSetup::tryToGet().

232  {
234  //get FED cabling to know if SiStrip is in DAQ or no
235  unsigned long long cacheID = es.get<SiStripDetCablingRcd>().cacheIdentifier();
236  if (m_cacheID_ != cacheID) {
237  m_cacheID_ = cacheID;
238  }
239 
240  //nFEDConnected = 0;
241  nFedTIB = 0;
242  nFedTIDm = 0;
243  nFedTIDp = 0;
244  nFedTECm = 0;
245  nFedTECp = 0;
246  nFedTOB = 0;
247 
248  //const int siStripFedIdMin = FEDNumbering::MINSiStripFEDID;
249  //const int siStripFedIdMax = FEDNumbering::MAXSiStripFEDID;
250 
251  if (auto runInfoRec = es.tryToGet<RunInfoRcd>()) {
252  edm::ESHandle<RunInfo> sumFED = runInfoRec->getHandle(runInfoTokenRun_);
253 
254  if (sumFED.isValid()) {
255  std::vector<int> FedsInIds = sumFED->m_fed_in;
256  for (unsigned int it = 0; it < FedsInIds.size(); ++it) {
257  int fedID = FedsInIds[it];
258  // if(fedID>=siStripFedIdMin && fedID<=siStripFedIdMax) ++nFEDConnected;
259  /* mia: but is there not a smarter way !?!?!? */
260  if (fedID >= 50 && fedID <= 133)
261  ++nFedTIB;
262  if (fedID >= 134 && fedID <= 148)
263  ++nFedTIDm;
264  if (fedID >= 149 && fedID <= 163)
265  ++nFedTIDp;
266  if (fedID >= 164 && fedID <= 259)
267  ++nFedTECm;
268  if (fedID >= 260 && fedID <= 355)
269  ++nFedTECp;
270  if (fedID >= 356 && fedID <= 489)
271  ++nFedTOB;
272  }
273  }
274  }
275  }
276 }
edm::ESGetToken< RunInfo, RunInfoRcd > runInfoTokenRun_
unsigned long long m_cacheID_
std::vector< int > m_fed_in
Definition: RunInfo.h:25
bool isValid() const
Definition: ESHandle.h:44

◆ FillApvShotsMap()

void SiStripMonitorDigi::FillApvShotsMap ( TkHistoMap the_map,
const std::vector< APVShot > &  shots,
uint32_t  id,
int  mode 
)
private

Definition at line 1327 of file SiStripMonitorDigi.cc.

References TkHistoMap::fill(), mps_fire::i, median(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, me0TriggerPseudoDigis_cff::nStrips, and parallelization::uint.

Referenced by analyze().

1327  {
1328  for (uint i = 0; i < shots.size(); i++) {
1329  if (mode == 1)
1330  the_map->fill(id, shots[i].nStrips()); //mode == 1 fill with strip multiplicity
1331  if (mode == 2)
1332  the_map->fill(id, shots[i].median()); // mode == 2 fill with charge median
1333  }
1334 }
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
void fill(DetId detid, float value)
Definition: TkHistoMap.cc:187
T median(std::vector< T > values)
Definition: median.h:16

◆ fillDigiADCsMEs()

void SiStripMonitorDigi::fillDigiADCsMEs ( int  value,
std::string  name 
)
private

◆ fillME() [1/4]

void SiStripMonitorDigi::fillME ( MonitorElement ME,
float  value1 
)
inlineprivate

Definition at line 103 of file SiStripMonitorDigi.h.

References HLT_2024v13_cff::value1.

Referenced by analyze().

103  {
104  if (ME != nullptr)
105  ME->Fill(value1);
106  }
Definition: ME.h:11

◆ fillME() [2/4]

void SiStripMonitorDigi::fillME ( MonitorElement ME,
float  value1,
float  value2 
)
inlineprivate

Definition at line 107 of file SiStripMonitorDigi.h.

References HLT_2024v13_cff::value1, and HLT_2024v13_cff::value2.

107  {
108  if (ME != nullptr)
109  ME->Fill(value1, value2);
110  }
Definition: ME.h:11

◆ fillME() [3/4]

void SiStripMonitorDigi::fillME ( MonitorElement ME,
float  value1,
float  value2,
float  value3 
)
inlineprivate

Definition at line 111 of file SiStripMonitorDigi.h.

References HLT_2024v13_cff::value1, and HLT_2024v13_cff::value2.

111  {
112  if (ME != nullptr)
113  ME->Fill(value1, value2, value3);
114  }
Definition: ME.h:11

◆ fillME() [4/4]

void SiStripMonitorDigi::fillME ( MonitorElement ME,
float  value1,
float  value2,
float  value3,
float  value4 
)
inlineprivate

Definition at line 115 of file SiStripMonitorDigi.h.

References HLT_2024v13_cff::value1, and HLT_2024v13_cff::value2.

115  {
116  if (ME != nullptr)
117  ME->Fill(value1, value2, value3, value4);
118  }
Definition: ME.h:11

◆ fillTrend()

void SiStripMonitorDigi::fillTrend ( MonitorElement me,
float  value,
float  timeinorbit 
)
private

Definition at line 1006 of file SiStripMonitorDigi.cc.

References hlt_dqm_clientPB-live_cfg::me.

Referenced by analyze().

1006  {
1007  if (!me)
1008  return;
1009  me->Fill(timeinorbit, value);
1010 }
Definition: value.py:1

◆ getDigiSourceIndex()

int SiStripMonitorDigi::getDigiSourceIndex ( uint32_t  id)
private

Definition at line 1308 of file SiStripMonitorDigi.cc.

References digi_detset_handles, mps_fire::end, and EcalCondDBWriter_cfi::location.

Referenced by analyze().

1308  {
1309  int location = -1;
1310  for (unsigned int ival = 0; ival < digi_detset_handles.size(); ++ival) {
1312  if (isearch != digi_detset_handles[ival]->end()) {
1313  location = ival;
1314  break;
1315  }
1316  }
1317  return location;
1318 }
std::vector< const edm::DetSetVector< SiStripDigi > * > digi_detset_handles
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102

◆ globalBeginLuminosityBlock()

std::shared_ptr< bool > SiStripMonitorDigi::globalBeginLuminosityBlock ( const edm::LuminosityBlock lumi,
const edm::EventSetup iSetup 
) const
override

Definition at line 279 of file SiStripMonitorDigi.cc.

280  {
281  bool isStableBeams = false;
282  return std::make_shared<bool>(isStableBeams);
283 }

◆ globalEndLuminosityBlock()

void SiStripMonitorDigi::globalEndLuminosityBlock ( const edm::LuminosityBlock lumi,
const edm::EventSetup iSetup 
)
override

Definition at line 286 of file SiStripMonitorDigi.cc.

References currentLS, digiFailureMEs, dqm::impl::MonitorElement::Fill(), dqm::impl::MonitorElement::getBinContent(), edm::LuminosityBlockBase::id(), ignoreFirstNLumisections_, edm::LuminosityBlock::index(), createfilelist::int, integrateNLumisections_, edm::LuminosityBlockID::luminosityBlock(), nFedTECm, nFedTECp, nFedTIB, nFedTIDm, nFedTIDp, nFedTOB, SBDeclaredAt, SBTransitionDone, SiStripMonitorDigi::DigiFailureMEs::SubDetDigiFailures2D, subdetswitchtotdigifailureon, SiStripMonitorDigi::DigiFailureMEs::SubDetTotDigiProfLS, and vecSubDetTotDigiProfLS.

286  {
287  unsigned int currentLS = lb.id().luminosityBlock();
288  const bool isStableBeams = luminosityBlockCache(lb.index());
289  if (subdetswitchtotdigifailureon && isStableBeams && !SBTransitionDone) {
291  SBTransitionDone = true;
292  }
293 
295  int nFeds[6] = {96, 96, 84, 15, 15, 134}; // tec- , tec+ , tib , tid- , tid+ , tob
296  int nFedsConnected[6] = {nFedTECm, nFedTECp, nFedTIB, nFedTIDm, nFedTIDp, nFedTOB};
297 
299  for (int ibin = 1; ibin < 7; ibin++) {
300  //the vector now has the sum from previous integrateNLumisections_
301  //whereas digiFailureMEs.SubDetTotDigiProfLS now has sum for all LS upto now.
304 
305  float fillvalue = 2;
306  if (isStableBeams
307  // && (int)lb.id().luminosityBlock() > ignoreFirstNLumisections_ //ignore first X lumisections for HV rampup
309  (float)nFedsConnected[ibin - 1] / nFeds[ibin - 1] > 0.5 && value < 50.) {
310  fillvalue = 1.01;
311  }
312  //account for integrated LS: fill previous bins as well
313  for (int fillbin = (int)currentLS - integrateNLumisections_ + 1; fillbin <= (int)currentLS; fillbin++)
314  digiFailureMEs.SubDetDigiFailures2D->Fill(fillbin, ibin - 1, fillvalue);
315  }
316  }
317  }
318 }
void Fill(long long x)
DigiFailureMEs digiFailureMEs
std::vector< float > vecSubDetTotDigiProfLS
Definition: value.py:1
int currentLS
virtual double getBinContent(int binx) const
get content of bin (1-D)

◆ ResetModuleMEs()

void SiStripMonitorDigi::ResetModuleMEs ( uint32_t  idet)
private

Definition at line 950 of file SiStripMonitorDigi.cc.

References SiStripMonitorDigi::ModMEs::ADCsCoolestStrip, SiStripMonitorDigi::ModMEs::ADCsHottestStrip, SiStripMonitorDigi::ModMEs::DigiADCs, DigiMEs, Mod_On_, moduleswitchadccooleston, moduleswitchadchotteston, moduleswitchdigiadcson, moduleswitchnumdigison, moduleswitchnumdigispstripon, moduleswitchstripoccupancyon, SiStripMonitorDigi::ModMEs::NumberOfDigis, SiStripMonitorDigi::ModMEs::NumberOfDigisPerStrip, dqm::impl::MonitorElement::Reset(), and SiStripMonitorDigi::ModMEs::StripOccupancy.

Referenced by bookHistograms(), and createMEs().

950  {
951  std::map<uint32_t, ModMEs>::iterator pos = DigiMEs.find(idet);
952  ModMEs mod_me = pos->second;
953 
955  mod_me.NumberOfDigis->Reset();
957  mod_me.NumberOfDigisPerStrip->Reset();
959  mod_me.ADCsHottestStrip->Reset();
961  mod_me.ADCsCoolestStrip->Reset();
963  mod_me.DigiADCs->Reset();
965  mod_me.StripOccupancy->Reset();
966 }
std::map< uint32_t, ModMEs > DigiMEs

Member Data Documentation

◆ apvPhaseProducer_

edm::InputTag SiStripMonitorDigi::apvPhaseProducer_
private

Definition at line 226 of file SiStripMonitorDigi.h.

Referenced by SiStripMonitorDigi().

◆ apvPhaseProducerToken_

edm::EDGetTokenT<APVCyclePhaseCollection> SiStripMonitorDigi::apvPhaseProducerToken_
private

Definition at line 229 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ calculate_strip_occupancy

bool SiStripMonitorDigi::calculate_strip_occupancy
private

Definition at line 135 of file SiStripMonitorDigi.h.

◆ conf_

edm::ParameterSet SiStripMonitorDigi::conf_
private

◆ createTrendMEs

bool SiStripMonitorDigi::createTrendMEs
private

Definition at line 220 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ dcsStatus_

SiStripDCSStatus* SiStripMonitorDigi::dcsStatus_
private

Definition at line 237 of file SiStripMonitorDigi.h.

Referenced by analyze(), SiStripMonitorDigi(), and ~SiStripMonitorDigi().

◆ DetectedLayers

std::map<std::pair<std::string, int32_t>, bool> SiStripMonitorDigi::DetectedLayers
private

Definition at line 146 of file SiStripMonitorDigi.h.

◆ digi_detset_handles

std::vector<const edm::DetSetVector<SiStripDigi>*> SiStripMonitorDigi::digi_detset_handles
private

Definition at line 147 of file SiStripMonitorDigi.h.

Referenced by analyze(), and getDigiSourceIndex().

◆ digiFailureMEs

DigiFailureMEs SiStripMonitorDigi::digiFailureMEs
private

Definition at line 142 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and globalEndLuminosityBlock().

◆ DigiMEs

std::map<uint32_t, ModMEs> SiStripMonitorDigi::DigiMEs
private

Definition at line 134 of file SiStripMonitorDigi.h.

Referenced by analyze(), bookHistograms(), createMEs(), and ResetModuleMEs().

◆ digiProducerList

std::vector<edm::InputTag> SiStripMonitorDigi::digiProducerList
private

Definition at line 132 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ digiProducerTokenList

std::vector<edm::EDGetTokenT<edm::DetSetVector<SiStripDigi> > > SiStripMonitorDigi::digiProducerTokenList
private

Definition at line 131 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ digitkhistomapon

bool SiStripMonitorDigi::digitkhistomapon
private

Definition at line 215 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ eventNb

int SiStripMonitorDigi::eventNb
private

Definition at line 159 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ firstEvent

int SiStripMonitorDigi::firstEvent
private

◆ folder_organizer

SiStripFolderOrganizer SiStripMonitorDigi::folder_organizer
private

Definition at line 145 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ globalsummaryapvshotson

bool SiStripMonitorDigi::globalsummaryapvshotson
private

Definition at line 163 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ globalswitchapvshotsApvon

bool SiStripMonitorDigi::globalswitchapvshotsApvon
private

Definition at line 197 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ globalswitchapvshotsonprof

bool SiStripMonitorDigi::globalswitchapvshotsonprof
private

Definition at line 195 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ globalswitchchargemedianapvshotson

bool SiStripMonitorDigi::globalswitchchargemedianapvshotson
private

Definition at line 196 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ globalswitchnapvshotson

bool SiStripMonitorDigi::globalswitchnapvshotson
private

Definition at line 193 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ globalswitchNDigisFEDID

bool SiStripMonitorDigi::globalswitchNDigisFEDID
private

Definition at line 198 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ globalswitchnstripsapvshotson

bool SiStripMonitorDigi::globalswitchnstripsapvshotson
private

Definition at line 194 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ gtEvmToken_

edm::EDGetTokenT<L1GlobalTriggerEvmReadoutRecord> SiStripMonitorDigi::gtEvmToken_
private

Definition at line 230 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ historyProducer_

edm::InputTag SiStripMonitorDigi::historyProducer_
private

Definition at line 225 of file SiStripMonitorDigi.h.

Referenced by SiStripMonitorDigi().

◆ historyProducerToken_

edm::EDGetTokenT<EventWithHistory> SiStripMonitorDigi::historyProducerToken_
private

Definition at line 228 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ ignoreFirstNLumisections_

int SiStripMonitorDigi::ignoreFirstNLumisections_
private

Definition at line 201 of file SiStripMonitorDigi.h.

Referenced by globalEndLuminosityBlock(), and SiStripMonitorDigi().

◆ integrateNLumisections_

int SiStripMonitorDigi::integrateNLumisections_
private

Definition at line 202 of file SiStripMonitorDigi.h.

Referenced by globalEndLuminosityBlock(), and SiStripMonitorDigi().

◆ LayerDetMap

std::map<std::string, std::vector<uint32_t> > SiStripMonitorDigi::LayerDetMap
private

Definition at line 138 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ LayerMEsMap

std::map<std::string, LayerMEs> SiStripMonitorDigi::LayerMEsMap
private

Definition at line 139 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and createMEs().

◆ layerswitchadccooleston

bool SiStripMonitorDigi::layerswitchadccooleston
private

Definition at line 168 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ layerswitchadchotteston

bool SiStripMonitorDigi::layerswitchadchotteston
private

Definition at line 167 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ layerswitchdigiadcprofon

bool SiStripMonitorDigi::layerswitchdigiadcprofon
private

Definition at line 172 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ layerswitchdigiadcson

bool SiStripMonitorDigi::layerswitchdigiadcson
private

Definition at line 169 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ layerswitchnumdigisapvon

bool SiStripMonitorDigi::layerswitchnumdigisapvon
private

Definition at line 166 of file SiStripMonitorDigi.h.

◆ layerswitchnumdigison

bool SiStripMonitorDigi::layerswitchnumdigison
private

Definition at line 165 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ layerswitchnumdigisprofon

bool SiStripMonitorDigi::layerswitchnumdigisprofon
private

Definition at line 171 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ layerswitchstripoccupancyon

bool SiStripMonitorDigi::layerswitchstripoccupancyon
private

Definition at line 170 of file SiStripMonitorDigi.h.

Referenced by analyze(), createLayerMEs(), and SiStripMonitorDigi().

◆ m_cacheID_

unsigned long long SiStripMonitorDigi::m_cacheID_
private

Definition at line 149 of file SiStripMonitorDigi.h.

Referenced by bookHistograms(), and dqmBeginRun().

◆ m_trendVs10LS

bool SiStripMonitorDigi::m_trendVs10LS
private

Definition at line 222 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ MedianChargeApvShotsGlobal

MonitorElement * SiStripMonitorDigi::MedianChargeApvShotsGlobal
private

Definition at line 154 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ Mod_On_

bool SiStripMonitorDigi::Mod_On_
private

Definition at line 213 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ ModulesToBeExcluded_

std::vector<uint32_t> SiStripMonitorDigi::ModulesToBeExcluded_
private

Definition at line 151 of file SiStripMonitorDigi.h.

◆ moduleswitchadccooleston

bool SiStripMonitorDigi::moduleswitchadccooleston
private

Definition at line 177 of file SiStripMonitorDigi.h.

Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ moduleswitchadchotteston

bool SiStripMonitorDigi::moduleswitchadchotteston
private

Definition at line 176 of file SiStripMonitorDigi.h.

Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ moduleswitchdigiadcson

bool SiStripMonitorDigi::moduleswitchdigiadcson
private

Definition at line 178 of file SiStripMonitorDigi.h.

Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ moduleswitchnumdigison

bool SiStripMonitorDigi::moduleswitchnumdigison
private

Definition at line 174 of file SiStripMonitorDigi.h.

Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ moduleswitchnumdigispstripon

bool SiStripMonitorDigi::moduleswitchnumdigispstripon
private

Definition at line 175 of file SiStripMonitorDigi.h.

Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ moduleswitchstripoccupancyon

bool SiStripMonitorDigi::moduleswitchstripoccupancyon
private

Definition at line 179 of file SiStripMonitorDigi.h.

Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorDigi().

◆ name

TString SiStripMonitorDigi::name
private

Definition at line 144 of file SiStripMonitorDigi.h.

Referenced by ElectronMVAID.ElectronMVAID::__call__(), FWLite.ElectronMVAID::__call__(), dirstructure.Directory::__create_pie_image(), DisplayManager.DisplayManager::__del__(), dqm_interfaces.DirID::__eq__(), dirstructure.Directory::__get_full_path(), dirstructure.Comparison::__get_img_name(), dirstructure.Comparison::__make_image(), core.autovars.NTupleVariable::__repr__(), core.autovars.NTupleObjectType::__repr__(), core.autovars.NTupleObject::__repr__(), core.autovars.NTupleCollection::__repr__(), dirstructure.Directory::__repr__(), dqm_interfaces.DirID::__repr__(), dirstructure.Comparison::__repr__(), config.Service::__setattr__(), config.CFG::__str__(), counter.Counter::__str__(), average.Average::__str__(), FWLite.WorkingPoints::_reformat_cut_definitions(), core.autovars.NTupleObjectType::addSubObjects(), core.autovars.NTupleObjectType::addVariables(), core.autovars.NTupleObjectType::allVars(), dataset.CMSDataset::buildListOfFiles(), dataset.LocalDataset::buildListOfFiles(), dataset.CMSDataset::buildListOfFilesDBS(), dirstructure.Directory::calcStats(), validation.Sample::digest(), python.rootplot.utilities.Hist::divide(), python.rootplot.utilities.Hist::divide_wilson(), DisplayManager.DisplayManager::Draw(), TreeCrawler.Package::dump(), core.autovars.NTupleVariable::fillBranch(), core.autovars.NTupleObject::fillBranches(), core.autovars.NTupleCollection::fillBranchesScalar(), core.autovars.NTupleCollection::fillBranchesVector(), core.autovars.NTupleCollection::get_cpp_declaration(), core.autovars.NTupleCollection::get_cpp_wrapper_class(), core.autovars.NTupleCollection::get_py_wrapper_class(), utils.StatisticalTest::get_status(), production_tasks.Task::getname(), dataset.CMSDataset::getPrimaryDatasetEntries(), dataset.PrivateDataset::getPrimaryDatasetEntries(), VIDSelectorBase.VIDSelectorBase::initialize(), personalPlayback.Applet::log(), core.autovars.NTupleVariable::makeBranch(), core.autovars.NTupleObject::makeBranches(), core.autovars.NTupleCollection::makeBranchesScalar(), core.autovars.NTupleCollection::makeBranchesVector(), dirstructure.Directory::print_report(), dataset.BaseDataset::printInfo(), dataset.Dataset::printInfo(), production_tasks.MonitorJobs::run(), python.rootplot.utilities.Hist::TGraph(), python.rootplot.utilities.Hist::TH1F(), counter.Counter::write(), and average.Average::write().

◆ NApvApvShotsGlobal

MonitorElement * SiStripMonitorDigi::NApvApvShotsGlobal
private

Definition at line 154 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ NApvShotsGlobal

MonitorElement* SiStripMonitorDigi::NApvShotsGlobal
private

Definition at line 154 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ NApvShotsGlobalProf

MonitorElement * SiStripMonitorDigi::NApvShotsGlobalProf
private

Definition at line 154 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ nFedTECm

int SiStripMonitorDigi::nFedTECm
private

Definition at line 209 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and globalEndLuminosityBlock().

◆ nFedTECp

int SiStripMonitorDigi::nFedTECp
private

Definition at line 208 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and globalEndLuminosityBlock().

◆ nFedTIB

int SiStripMonitorDigi::nFedTIB
private

Definition at line 205 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and globalEndLuminosityBlock().

◆ nFedTIDm

int SiStripMonitorDigi::nFedTIDm
private

Definition at line 207 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and globalEndLuminosityBlock().

◆ nFedTIDp

int SiStripMonitorDigi::nFedTIDp
private

Definition at line 206 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and globalEndLuminosityBlock().

◆ nFedTOB

int SiStripMonitorDigi::nFedTOB
private

Definition at line 210 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and globalEndLuminosityBlock().

◆ NumberOfFEDDigis

MonitorElement* SiStripMonitorDigi::NumberOfFEDDigis = nullptr

Definition at line 92 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ reset_each_run

bool SiStripMonitorDigi::reset_each_run
private

Definition at line 135 of file SiStripMonitorDigi.h.

Referenced by bookHistograms(), and createMEs().

◆ runInfoTokenRun_

edm::ESGetToken<RunInfo, RunInfoRcd> SiStripMonitorDigi::runInfoTokenRun_
private

Definition at line 234 of file SiStripMonitorDigi.h.

Referenced by dqmBeginRun(), and SiStripMonitorDigi().

◆ runNb

int SiStripMonitorDigi::runNb
private

Definition at line 159 of file SiStripMonitorDigi.h.

Referenced by analyze().

◆ SBDeclaredAt

int SiStripMonitorDigi::SBDeclaredAt
private

Definition at line 203 of file SiStripMonitorDigi.h.

Referenced by globalEndLuminosityBlock(), and SiStripMonitorDigi().

◆ SBTransitionDone

bool SiStripMonitorDigi::SBTransitionDone
private

Definition at line 204 of file SiStripMonitorDigi.h.

Referenced by globalEndLuminosityBlock(), and SiStripMonitorDigi().

◆ select_all_detectors

bool SiStripMonitorDigi::select_all_detectors
private

Definition at line 135 of file SiStripMonitorDigi.h.

◆ shotschargehistomapon

bool SiStripMonitorDigi::shotschargehistomapon
private

Definition at line 218 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ shotshistomapon

bool SiStripMonitorDigi::shotshistomapon
private

Definition at line 216 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ shotsstripshistomapon

bool SiStripMonitorDigi::shotsstripshistomapon
private

Definition at line 217 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and SiStripMonitorDigi().

◆ ShotsVsTimeApvShotsGlobal

MonitorElement * SiStripMonitorDigi::ShotsVsTimeApvShotsGlobal
private

Definition at line 154 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ show_control_view

bool SiStripMonitorDigi::show_control_view
private

Definition at line 135 of file SiStripMonitorDigi.h.

◆ show_mechanical_structure_view

bool SiStripMonitorDigi::show_mechanical_structure_view
private

Definition at line 135 of file SiStripMonitorDigi.h.

Referenced by bookHistograms(), createMEs(), and SiStripMonitorDigi().

◆ show_readout_view

bool SiStripMonitorDigi::show_readout_view
private

Definition at line 135 of file SiStripMonitorDigi.h.

◆ SiStripDetCabling_

const SiStripDetCabling* SiStripMonitorDigi::SiStripDetCabling_
private

Definition at line 150 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and createModuleMEs().

◆ SiStripDetCablingTokenRun_

edm::ESGetToken<SiStripDetCabling, SiStripDetCablingRcd> SiStripMonitorDigi::SiStripDetCablingTokenRun_
private

Definition at line 233 of file SiStripMonitorDigi.h.

Referenced by createMEs(), and SiStripMonitorDigi().

◆ StripMultiplicityApvShotsGlobal

MonitorElement * SiStripMonitorDigi::StripMultiplicityApvShotsGlobal
private

Definition at line 154 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ SubDetMEsMap

std::map<std::string, SubDetMEs> SiStripMonitorDigi::SubDetMEsMap
private

Definition at line 140 of file SiStripMonitorDigi.h.

Referenced by analyze(), createMEs(), and createSubDetMEs().

◆ SubDetPhasePartMap

std::map<std::string, std::string> SiStripMonitorDigi::SubDetPhasePartMap
private

Definition at line 141 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ subdetswitchapvcycleprofon

bool SiStripMonitorDigi::subdetswitchapvcycleprofon
private

Definition at line 182 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ subdetswitchapvcycleth2on

bool SiStripMonitorDigi::subdetswitchapvcycleth2on
private

Definition at line 183 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ subdetswitchapvshotsApvon

bool SiStripMonitorDigi::subdetswitchapvshotsApvon
private

Definition at line 191 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ subdetswitchapvshotsonprof

bool SiStripMonitorDigi::subdetswitchapvshotsonprof
private

Definition at line 189 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ subdetswitchchargemedianapvshotson

bool SiStripMonitorDigi::subdetswitchchargemedianapvshotson
private

Definition at line 190 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ subdetswitchnapvshotson

bool SiStripMonitorDigi::subdetswitchnapvshotson
private

Definition at line 187 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ subdetswitchnstripsapvshotson

bool SiStripMonitorDigi::subdetswitchnstripsapvshotson
private

Definition at line 188 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ subdetswitchtotdigifailureon

bool SiStripMonitorDigi::subdetswitchtotdigifailureon
private

◆ subdetswitchtotdigiprofon

bool SiStripMonitorDigi::subdetswitchtotdigiprofon
private

Definition at line 181 of file SiStripMonitorDigi.h.

Referenced by analyze(), createSubDetMEs(), and SiStripMonitorDigi().

◆ tkDetMapTokenRun_

edm::ESGetToken<TkDetMap, TrackerTopologyRcd> SiStripMonitorDigi::tkDetMapTokenRun_
private

Definition at line 232 of file SiStripMonitorDigi.h.

Referenced by createMEs(), and SiStripMonitorDigi().

◆ tkmapdigi

std::unique_ptr<TkHistoMap> SiStripMonitorDigi::tkmapdigi
private

Definition at line 157 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ tkmapMedianChargeApvshots

std::unique_ptr<TkHistoMap> SiStripMonitorDigi::tkmapMedianChargeApvshots
private

Definition at line 157 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ tkmapNApvshots

std::unique_ptr<TkHistoMap> SiStripMonitorDigi::tkmapNApvshots
private

Definition at line 157 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ tkmapNstripApvshot

std::unique_ptr<TkHistoMap> SiStripMonitorDigi::tkmapNstripApvshot
private

Definition at line 157 of file SiStripMonitorDigi.h.

Referenced by analyze(), and createMEs().

◆ topFolderName_

std::string SiStripMonitorDigi::topFolderName_

Definition at line 46 of file SiStripMonitorDigi.h.

Referenced by createMEs(), and SiStripMonitorDigi().

◆ TotalNShots

int SiStripMonitorDigi::TotalNShots
private

Definition at line 161 of file SiStripMonitorDigi.h.

Referenced by analyze().

◆ tTopoToken_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiStripMonitorDigi::tTopoToken_
private

Definition at line 235 of file SiStripMonitorDigi.h.

Referenced by analyze(), and SiStripMonitorDigi().

◆ tTopoTokenRun_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiStripMonitorDigi::tTopoTokenRun_
private

Definition at line 231 of file SiStripMonitorDigi.h.

Referenced by createMEs(), and SiStripMonitorDigi().

◆ vecSubDetTotDigiProfLS

std::vector<float> SiStripMonitorDigi::vecSubDetTotDigiProfLS
private

Definition at line 224 of file SiStripMonitorDigi.h.

Referenced by globalEndLuminosityBlock(), and SiStripMonitorDigi().