CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
DQMProvInfo Class Reference

#include <DQMProvInfo.h>

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

Public Member Functions

 DQMProvInfo (const edm::ParameterSet &ps)
 
 ~DQMProvInfo () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
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
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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)
 
 ~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
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, 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
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void beginLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &c) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &r, const edm::EventSetup &c) override
 
void endLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &c) override
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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 ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
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<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)
 

Private Member Functions

void analyzeEventInfo (const edm::Event &e)
 
void analyzeLhcInfo (const edm::Event &e)
 
void analyzeProvInfo (const edm::Event &e)
 
void blankAllLumiSections ()
 
void blankPreviousLumiSections (const int currentLSNumber)
 
void bookHistogramsEventInfo (DQMStore::IBooker &)
 
void bookHistogramsLhcInfo (DQMStore::IBooker &)
 
void bookHistogramsProvInfo (DQMStore::IBooker &)
 
void endLuminosityBlockEventInfo (const int currentLSNumber)
 
void endLuminosityBlockLhcInfo (const int currentLSNumber)
 
void fillDcsBitsFromDCSRecord (const DCSRecord &)
 
void fillDcsBitsFromDcsStatusCollection (const edm::Handle< DcsStatusCollection > &)
 
bool isPhysicsDeclared ()
 

Private Attributes

int beamMode_
 
bool dcsBits_ [MAX_DCS_VBINS+1]
 
edm::EDGetTokenT< DCSRecorddcsRecordToken_
 
edm::EDGetTokenT< DcsStatusCollectiondcsStatusCollection_
 
bool foundFirstDcsBits_
 
bool foundFirstPhysicsDeclared_
 
std::string globalTag_
 
bool globalTagRetrieved_
 
MonitorElementhBeamMode_
 
MonitorElementhHltKey_
 
MonitorElementhIntensity1_
 
MonitorElementhIntensity2_
 
MonitorElementhIsCollisionsRun_
 
MonitorElementhLhcFill_
 
std::string hltKey_
 
MonitorElementhMomentum_
 
MonitorElementhostName_
 
int intensity1_
 
int intensity2_
 
int lhcFill_
 
int momentum_
 
bool physicsDeclared_
 
int previousLSNumber_
 
MonitorElementprocessId_
 
std::string provinfofolder_
 
MonitorElementreportSummary_
 
MonitorElementreportSummaryMap_
 
std::string runType_
 
std::string subsystemname_
 
edm::EDGetTokenT< TCDSRecordtcdsrecord_
 
MonitorElementversCMSSW_
 
MonitorElementversGlobaltag_
 
MonitorElementversRuntype_
 
MonitorElementworkingDir_
 

Static Private Attributes

static const int MAX_DCS_VBINS = 25
 
static const int MAX_LUMIS = 6000
 
static const int MAX_MOMENTUM = 6500
 
static const int MAX_VBINS = 29
 
static const int MOMENTUM_OFFSET = 1
 
static const int VBIN_BPIX = 17
 
static const int VBIN_CASTOR = 24
 
static const int VBIN_CSC_M = 2
 
static const int VBIN_CSC_P = 1
 
static const int VBIN_DT_0 = 3
 
static const int VBIN_DT_M = 5
 
static const int VBIN_DT_P = 4
 
static const int VBIN_EB_M = 7
 
static const int VBIN_EB_P = 6
 
static const int VBIN_EE_M = 9
 
static const int VBIN_EE_P = 8
 
static const int VBIN_ES_M = 11
 
static const int VBIN_ES_P = 10
 
static const int VBIN_FPIX = 18
 
static const int VBIN_HBHE_A = 12
 
static const int VBIN_HBHE_B = 13
 
static const int VBIN_HBHE_C = 14
 
static const int VBIN_HF = 15
 
static const int VBIN_HO = 16
 
static const int VBIN_MOMENTUM = 27
 
static const int VBIN_PHYSICS_DECLARED = 26
 
static const int VBIN_RPC = 19
 
static const int VBIN_STABLE_BEAM = 28
 
static const int VBIN_TE_M = 23
 
static const int VBIN_TEC_P = 22
 
static const int VBIN_TIBTID = 20
 
static const int VBIN_TOB = 21
 
static const int VBIN_VALID = 29
 
static const int VBIN_ZDC = 25
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
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
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 Attributes inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 22 of file DQMProvInfo.h.

Constructor & Destructor Documentation

DQMProvInfo::DQMProvInfo ( const edm::ParameterSet ps)

Definition at line 23 of file DQMProvInfo.cc.

References dcsRecordToken_, dcsStatusCollection_, edm::ParameterSet::getUntrackedParameter(), globalTag_, globalTagRetrieved_, HLT_2018_cff::InputTag, previousLSNumber_, provinfofolder_, runType_, AlCaHLTBitMon_QueryRunRegistry::string, subsystemname_, tcdsrecord_, and ~DQMProvInfo().

23  {
24  // Initialization of DQM parameters
25  subsystemname_ = ps.getUntrackedParameter<std::string>("subSystemFolder", "Info");
26  provinfofolder_ = ps.getUntrackedParameter<std::string>("provInfoFolder", "ProvInfo");
27  runType_ = ps.getUntrackedParameter<std::string>("runType", "No run type selected");
28 
29  // Initialization of the input
30  // Used to get the DCS bits:
32  consumes<DcsStatusCollection>(ps.getUntrackedParameter<std::string>("dcsStatusCollection", "scalersRawToDigi"));
33 
34  // Used to get the BST record from the TCDS information
35  tcdsrecord_ = consumes<TCDSRecord>(
36  ps.getUntrackedParameter<edm::InputTag>("tcdsData", edm::InputTag("tcdsDigis", "tcdsRecord")));
37 
38  // Used to get the DCS bits:
39  dcsRecordToken_ = consumes<DCSRecord>(edm::InputTag("onlineMetaDataRawToDigi"));
40 
41  // Initialization of the global tag
42  globalTag_ = "MODULE::DEFAULT"; // default
43  globalTagRetrieved_ = false; // set as soon as retrieved from first event
44 
45  // Initialization of run scope variables
46  previousLSNumber_ = 0; // Previous LS compared to current, initializing at 0
47 }
T getUntrackedParameter(std::string const &, T const &) const
int previousLSNumber_
Definition: DQMProvInfo.h:132
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:113
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: DQMProvInfo.h:115
bool globalTagRetrieved_
Definition: DQMProvInfo.h:142
std::string globalTag_
Definition: DQMProvInfo.h:141
std::string subsystemname_
Definition: DQMProvInfo.h:110
std::string runType_
Definition: DQMProvInfo.h:144
edm::EDGetTokenT< TCDSRecord > tcdsrecord_
Definition: DQMProvInfo.h:114
std::string provinfofolder_
Definition: DQMProvInfo.h:111
DQMProvInfo::~DQMProvInfo ( )
overridedefault

Referenced by DQMProvInfo().

Member Function Documentation

void DQMProvInfo::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotected

Definition at line 240 of file DQMProvInfo.cc.

References analyzeEventInfo(), analyzeLhcInfo(), and analyzeProvInfo().

240  {
241  // This happens on an event by event base
242  // We extract information from events, placing them in local variables
243  // and then at the end of each lumisection, we fill them in the MonitorElement
244  // (Except for the global tag, which we only extract from the first event we
245  // ever encounter and put in the MonitorElement right away)
246 
250 }
void analyzeEventInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:268
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:287
void analyzeLhcInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:252
Definition: event.py:1
void DQMProvInfo::analyzeEventInfo ( const edm::Event e)
private

Definition at line 268 of file DQMProvInfo.cc.

References dcsRecordToken_, dcsStatusCollection_, fillDcsBitsFromDCSRecord(), and fillDcsBitsFromDcsStatusCollection().

Referenced by analyze().

268  {
269  // Part 1:
270  // If FED#735 is available use it to extract DcsStatusCollection.
271  // If not, use softFED#1022 to extract DCSRecord.
272  // Populate dcsBits_ array with received information.
273 
274  edm::Handle<DcsStatusCollection> dcsStatusCollection;
275  event.getByToken(dcsStatusCollection_, dcsStatusCollection);
276 
277  if (!dcsStatusCollection->empty()) {
278  edm::LogInfo("DQMProvInfo") << "Using FED#735 for reading DCS bits" << std::endl;
279  fillDcsBitsFromDcsStatusCollection(dcsStatusCollection);
280  } else {
281  edm::LogInfo("DQMProvInfo") << "Using softFED#1022 for reading DCS bits" << std::endl;
282  DCSRecord const& dcsRecord = event.get(dcsRecordToken_);
283  fillDcsBitsFromDCSRecord(dcsRecord);
284  }
285 }
void fillDcsBitsFromDcsStatusCollection(const edm::Handle< DcsStatusCollection > &)
Definition: DQMProvInfo.cc:338
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:113
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: DQMProvInfo.h:115
Class to contain DCS information from soft FED 1022.
Definition: DCSRecord.h:20
void fillDcsBitsFromDCSRecord(const DCSRecord &)
Definition: DQMProvInfo.cc:304
void DQMProvInfo::analyzeLhcInfo ( const edm::Event e)
private

Definition at line 252 of file DQMProvInfo.cc.

References beamMode_, BSTRecord::getBeamMode(), BSTRecord::getBeamMomentum(), TCDSRecord::getBST(), BSTRecord::getIntensityBeam1(), BSTRecord::getIntensityBeam2(), BSTRecord::getLhcFill(), intensity1_, intensity2_, edm::HandleBase::isValid(), lhcFill_, momentum_, and tcdsrecord_.

Referenced by analyze().

252  {
253  edm::Handle<TCDSRecord> tcdsData;
254  event.getByToken(tcdsrecord_, tcdsData);
255  // We unpack the TCDS record from TCDS
256  if (tcdsData.isValid()) {
257  //and we look at the BST information
258  lhcFill_ = static_cast<int>(tcdsData->getBST().getLhcFill());
259  beamMode_ = static_cast<int>(tcdsData->getBST().getBeamMode());
260  momentum_ = static_cast<int>(tcdsData->getBST().getBeamMomentum());
261  intensity1_ = static_cast<int>(tcdsData->getBST().getIntensityBeam1());
262  intensity2_ = static_cast<int>(tcdsData->getBST().getIntensityBeam2());
263  } else {
264  edm::LogWarning("DQMProvInfo") << "TCDS Data inaccessible.";
265  }
266 }
const BSTRecord & getBST() const
Definition: TCDSRecord.h:100
uint16_t const getBeamMode() const
Definition: BSTRecord.h:70
int32_t const getBeamMomentum() const
Definition: BSTRecord.h:79
uint32_t const getIntensityBeam2() const
Definition: BSTRecord.h:85
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< TCDSRecord > tcdsrecord_
Definition: DQMProvInfo.h:114
uint32_t const getLhcFill() const
Definition: BSTRecord.h:67
uint32_t const getIntensityBeam1() const
Definition: BSTRecord.h:82
void DQMProvInfo::analyzeProvInfo ( const edm::Event e)
private

Definition at line 287 of file DQMProvInfo.cc.

References dqm::impl::MonitorElement::Fill(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), globalTag_, globalTagRetrieved_, SimL1EmulatorRepack_CalouGT_cff::processName, AlCaHLTBitMon_QueryRunRegistry::string, and versGlobaltag_.

Referenced by analyze().

287  {
288  // Only trying to retrieve the global tag for the first event we ever
289  // encounter.
290  if (!globalTagRetrieved_) {
291  // Getting the real process name for the given event
292  std::string processName = event.processHistory()[event.processHistory().size() - 1].processName();
293  // Getting parameters for that process
295  event.getProcessParameterSet(processName, ps);
296  // Getting the global tag
297  globalTag_ = ps.getParameterSet("PoolDBESSource@GlobalTag").getParameter<std::string>("globaltag");
299  // Finaly: Setting globalTagRetrieved_ to true, since we got it now
300  globalTagRetrieved_ = true;
301  }
302 }
T getParameter(std::string const &) const
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:140
bool globalTagRetrieved_
Definition: DQMProvInfo.h:142
void Fill(long long x)
std::string globalTag_
Definition: DQMProvInfo.h:141
ParameterSet const & getParameterSet(std::string const &) const
void DQMProvInfo::beginLuminosityBlock ( const edm::LuminosityBlock l,
const edm::EventSetup c 
)
overrideprotected

Definition at line 224 of file DQMProvInfo.cc.

References dcsBits_, foundFirstDcsBits_, foundFirstPhysicsDeclared_, MAX_DCS_VBINS, and physicsDeclared_.

224  {
225  // By default we set the Physics Declared bit to false at the beginning of
226  // every LS
227  physicsDeclared_ = false;
228  // Boolean that tells the analyse method that we encountered the first real
229  // dcs info
231  // By default we set all the DCS bits to false at the beginning of every LS
232  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
233  dcsBits_[vbin] = false;
234  }
235  // Boolean that tells the analyse method that we encountered the first real
236  // dcs info
237  foundFirstDcsBits_ = false;
238 }
bool foundFirstDcsBits_
Definition: DQMProvInfo.h:136
bool foundFirstPhysicsDeclared_
Definition: DQMProvInfo.h:134
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:88
bool physicsDeclared_
Definition: DQMProvInfo.h:133
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:135
void DQMProvInfo::blankAllLumiSections ( )
private

Definition at line 495 of file DQMProvInfo.cc.

References eostools::ls(), MAX_LUMIS, MAX_VBINS, reportSummaryMap_, and dqm::impl::MonitorElement::setBinContent().

Referenced by bookHistogramsEventInfo().

495  {
496  // Initially we want all lumisection to be blank (-1) and
497  // white instead of red which is misleading.
498  for (int ls = 0; ls < MAX_LUMIS; ls++) {
499  // Color all the bins white (-1)
500  for (int vBin = 1; vBin <= MAX_VBINS; vBin++) {
501  reportSummaryMap_->setBinContent(ls, vBin, -1.);
502  }
503  }
504 }
static const int MAX_LUMIS
Definition: DQMProvInfo.h:56
static const int MAX_VBINS
Definition: DQMProvInfo.h:95
def ls(path, rec=False)
Definition: eostools.py:349
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:131
void DQMProvInfo::blankPreviousLumiSections ( const int  currentLSNumber)
private

Definition at line 480 of file DQMProvInfo.cc.

References eostools::ls(), previousLSNumber_, reportSummaryMap_, dqm::impl::MonitorElement::setBinContent(), and VBIN_VALID.

Referenced by endLuminosityBlockEventInfo().

480  {
481  // In case we skipped lumisections, the current lumisection number will be
482  // more than the previous lumisection number + 1.
483  // We paint all the skipped lumisections completely white (-1), except for
484  // the top flag (the "valid" flag), which we paint red (0).
485  for (int ls = previousLSNumber_ + 1; ls < currentLSNumber; ls++) {
486  // Color the "Valid" bin red (0)
488  // Color all the other bins white (-1)
489  for (int vBin = 1; vBin < VBIN_VALID; vBin++) {
490  reportSummaryMap_->setBinContent(ls, vBin, -1.);
491  }
492  }
493 }
int previousLSNumber_
Definition: DQMProvInfo.h:132
static const int VBIN_VALID
Definition: DQMProvInfo.h:93
def ls(path, rec=False)
Definition: eostools.py:349
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:131
void DQMProvInfo::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  iRun,
edm::EventSetup const &  iEventSetup 
)
overrideprotectedvirtual

Implements DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 70 of file DQMProvInfo.cc.

References bookHistogramsEventInfo(), bookHistogramsLhcInfo(), bookHistogramsProvInfo(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), provinfofolder_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and subsystemname_.

70  {
71  iBooker.cd();
72  // This module will create elements in 3 different folders:
73  // - Info/LhcInfo
74  // - Info/EventInfo
75  // - Info/ProvInfo
76  // (string "Info" configurable through subsystemname_)
77  // (string "Provinfo" configurable through provinfofolder_)
78  iBooker.setCurrentFolder(subsystemname_ + "/LhcInfo/");
79  bookHistogramsLhcInfo(iBooker);
80 
81  iBooker.setCurrentFolder(subsystemname_ + "/EventInfo/");
82  bookHistogramsEventInfo(iBooker);
83 
84  iBooker.setCurrentFolder(subsystemname_ + "/" + provinfofolder_);
85  bookHistogramsProvInfo(iBooker);
86 }
void bookHistogramsEventInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:144
void bookHistogramsProvInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:193
void bookHistogramsLhcInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:88
std::string subsystemname_
Definition: DQMProvInfo.h:110
std::string provinfofolder_
Definition: DQMProvInfo.h:111
void DQMProvInfo::bookHistogramsEventInfo ( DQMStore::IBooker iBooker)
private

Definition at line 144 of file DQMProvInfo.cc.

References blankAllLumiSections(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookFloat(), dqm::impl::MonitorElement::getTH2F(), MAX_LUMIS, MAX_VBINS, reportSummary_, reportSummaryMap_, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), VBIN_BPIX, VBIN_CASTOR, VBIN_CSC_M, VBIN_CSC_P, VBIN_DT_0, VBIN_DT_M, VBIN_DT_P, VBIN_EB_M, VBIN_EB_P, VBIN_EE_M, VBIN_EE_P, VBIN_ES_M, VBIN_ES_P, VBIN_FPIX, VBIN_HBHE_A, VBIN_HBHE_B, VBIN_HBHE_C, VBIN_HF, VBIN_HO, VBIN_MOMENTUM, VBIN_PHYSICS_DECLARED, VBIN_RPC, VBIN_STABLE_BEAM, VBIN_TE_M, VBIN_TEC_P, VBIN_TIBTID, VBIN_TOB, VBIN_VALID, and VBIN_ZDC.

Referenced by bookHistograms().

144  {
145  // Element: reportSummary
146  reportSummary_ = iBooker.bookFloat("reportSummary");
147 
148  // Element: reportSummaryMap (this is the famous HV plot)
149  reportSummaryMap_ = iBooker.book2D("reportSummaryMap",
150  "DCS HV Status and Beam Status per Lumisection",
151  MAX_LUMIS,
152  0,
153  MAX_LUMIS,
154  MAX_VBINS,
155  0.,
156  MAX_VBINS);
157  reportSummaryMap_->setAxisTitle("Luminosity Section");
158  reportSummaryMap_->getTH2F()->SetCanExtend(TH1::kAllAxes);
159 
189 
191 }
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:130
static const int VBIN_EE_P
Definition: DQMProvInfo.h:66
static const int VBIN_VALID
Definition: DQMProvInfo.h:93
void blankAllLumiSections()
Definition: DQMProvInfo.cc:495
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:82
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:71
static const int VBIN_EE_M
Definition: DQMProvInfo.h:67
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:72
static const int VBIN_HO
Definition: DQMProvInfo.h:74
static const int VBIN_DT_0
Definition: DQMProvInfo.h:61
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:80
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:60
static const int VBIN_TOB
Definition: DQMProvInfo.h:79
static const int VBIN_FPIX
Definition: DQMProvInfo.h:76
static const int MAX_LUMIS
Definition: DQMProvInfo.h:56
static const int VBIN_DT_M
Definition: DQMProvInfo.h:63
static const int VBIN_MOMENTUM
Definition: DQMProvInfo.h:91
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)
static const int MAX_VBINS
Definition: DQMProvInfo.h:95
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:92
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:78
static const int VBIN_EB_P
Definition: DQMProvInfo.h:64
static const int VBIN_BPIX
Definition: DQMProvInfo.h:75
static const int VBIN_TE_M
Definition: DQMProvInfo.h:81
static const int VBIN_RPC
Definition: DQMProvInfo.h:77
static const int VBIN_ZDC
Definition: DQMProvInfo.h:83
static const int VBIN_ES_P
Definition: DQMProvInfo.h:68
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:59
static const int VBIN_DT_P
Definition: DQMProvInfo.h:62
static const int VBIN_ES_M
Definition: DQMProvInfo.h:69
static const int VBIN_HF
Definition: DQMProvInfo.h:73
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:70
static const int VBIN_EB_M
Definition: DQMProvInfo.h:65
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:131
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:90
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void DQMProvInfo::bookHistogramsLhcInfo ( DQMStore::IBooker iBooker)
private

Definition at line 88 of file DQMProvInfo.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::impl::MonitorElement::getTH1F(), hBeamMode_, hIntensity1_, hIntensity2_, hLhcFill_, hMomentum_, MAX_LUMIS, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinContent(), and dqm::impl::MonitorElement::setBinLabel().

Referenced by bookHistograms().

88  {
89  // Element: beamMode
90  // Beam parameters provided by BST are defined in:
91  // https://edms.cern.ch/document/638899/2.0
92  hBeamMode_ = iBooker.book1D("beamMode", "beamMode", MAX_LUMIS, 1., MAX_LUMIS + 1);
93  hBeamMode_->getTH1F()->GetYaxis()->Set(21, 0.5, 21.5);
94  hBeamMode_->getTH1F()->SetMaximum(21.5);
95  hBeamMode_->getTH1F()->SetCanExtend(TH1::kAllAxes);
96  hBeamMode_->setBinContent(0., 22.); // Not clear, remove when testable
97 
98  hBeamMode_->setAxisTitle("Luminosity Section", 1);
99  hBeamMode_->setBinLabel(1, "no mode", 2);
100  hBeamMode_->setBinLabel(2, "setup", 2);
101  hBeamMode_->setBinLabel(3, "inj pilot", 2);
102  hBeamMode_->setBinLabel(4, "inj intr", 2);
103  hBeamMode_->setBinLabel(5, "inj nomn", 2);
104  hBeamMode_->setBinLabel(6, "pre ramp", 2);
105  hBeamMode_->setBinLabel(7, "ramp", 2);
106  hBeamMode_->setBinLabel(8, "flat top", 2);
107  hBeamMode_->setBinLabel(9, "squeeze", 2);
108  hBeamMode_->setBinLabel(10, "adjust", 2);
109  hBeamMode_->setBinLabel(11, "stable", 2);
110  hBeamMode_->setBinLabel(12, "unstable", 2);
111  hBeamMode_->setBinLabel(13, "beam dump", 2);
112  hBeamMode_->setBinLabel(14, "ramp down", 2);
113  hBeamMode_->setBinLabel(15, "recovery", 2);
114  hBeamMode_->setBinLabel(16, "inj dump", 2);
115  hBeamMode_->setBinLabel(17, "circ dump", 2);
116  hBeamMode_->setBinLabel(18, "abort", 2);
117  hBeamMode_->setBinLabel(19, "cycling", 2);
118  hBeamMode_->setBinLabel(20, "warn b-dump", 2);
119  hBeamMode_->setBinLabel(21, "no beam", 2);
120 
121  // Element: intensity1
122  hIntensity1_ = iBooker.book1D("intensity1", "Intensity Beam 1", MAX_LUMIS, 1., MAX_LUMIS + 1);
123  hIntensity1_->setAxisTitle("Luminosity Section", 1);
124  hIntensity1_->setAxisTitle("N [E10]", 2);
125  hIntensity1_->getTH1F()->SetCanExtend(TH1::kAllAxes);
126 
127  // Element: intensity2
128  hIntensity2_ = iBooker.book1D("intensity2", "Intensity Beam 2", MAX_LUMIS, 1., MAX_LUMIS + 1);
129  hIntensity2_->setAxisTitle("Luminosity Section", 1);
130  hIntensity2_->setAxisTitle("N [E10]", 2);
131  hIntensity2_->getTH1F()->SetCanExtend(TH1::kAllAxes);
132 
133  // Element: lhcFill
134  hLhcFill_ = iBooker.book1D("lhcFill", "LHC Fill Number", MAX_LUMIS, 1., MAX_LUMIS + 1);
135  hLhcFill_->setAxisTitle("Luminosity Section", 1);
136  hLhcFill_->getTH1F()->SetCanExtend(TH1::kAllAxes);
137 
138  // Element: momentum
139  hMomentum_ = iBooker.book1D("momentum", "Beam Energy [GeV]", MAX_LUMIS, 1., MAX_LUMIS + 1);
140  hMomentum_->setAxisTitle("Luminosity Section", 1);
141  hMomentum_->getTH1F()->SetCanExtend(TH1::kAllAxes);
142 }
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:118
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:122
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:126
static const int MAX_LUMIS
Definition: DQMProvInfo.h:56
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:124
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:120
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void DQMProvInfo::bookHistogramsProvInfo ( DQMStore::IBooker iBooker)
private

Definition at line 193 of file DQMProvInfo.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::bookInt(), dqm::dqmstoreimpl::DQMStore::IBooker::bookString(), dqm::impl::MonitorElement::Fill(), edm::getReleaseVersion(), globalTag_, hHltKey_, hIsCollisionsRun_, hltKey_, hostName_, processId_, runType_, versCMSSW_, versGlobaltag_, versRuntype_, and workingDir_.

Referenced by bookHistograms().

193  {
194  // Note: Given that all these elements are only filled once per run, they
195  // are filled here right away. (except for isCollisionsRun)
196 
197  // Element: CMMSW
198  versCMSSW_ = iBooker.bookString("CMSSW", edm::getReleaseVersion().c_str());
199 
200  // Element: Globaltag
201  versGlobaltag_ = iBooker.bookString("Globaltag", globalTag_);
202 
203  // Element: RunType
204  versRuntype_ = iBooker.bookString("Run Type", runType_);
205 
206  // Element: hltKey
207  hHltKey_ = iBooker.bookString("hltKey", hltKey_);
208 
209  // Element: hostName
210  hostName_ = iBooker.bookString("hostName", gSystem->HostName());
211 
212  // Element: isCollisionsRun (filled for real in EndLumi)
213  hIsCollisionsRun_ = iBooker.bookInt("isCollisionsRun");
215 
216  // Element: processID
217  processId_ = iBooker.bookInt("processID");
218  processId_->Fill(gSystem->GetPid());
219 
220  // Element: workingDir
221  workingDir_ = iBooker.bookString("workingDir", gSystem->pwd());
222 }
MonitorElement * workingDir_
Definition: DQMProvInfo.h:150
MonitorElement * processId_
Definition: DQMProvInfo.h:149
MonitorElement * hHltKey_
Definition: DQMProvInfo.h:145
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:140
void Fill(long long x)
std::string globalTag_
Definition: DQMProvInfo.h:141
MonitorElement * versRuntype_
Definition: DQMProvInfo.h:143
std::string getReleaseVersion()
MonitorElement * versCMSSW_
Definition: DQMProvInfo.h:139
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:148
std::string runType_
Definition: DQMProvInfo.h:144
std::string hltKey_
Definition: DQMProvInfo.h:146
MonitorElement * hostName_
Definition: DQMProvInfo.h:147
void DQMProvInfo::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprotected

Definition at line 52 of file DQMProvInfo.cc.

References HltComparatorCreateWorkflow::hltConfig, hltKey_, HLTConfigProvider::init(), HLTConfigProvider::size(), and HLTConfigProvider::tableName().

52  {
53  // Here we do everything that needs to be done before the booking
54  // Getting the HLT key from HLTConfigProvider:
55  hltKey_ = "";
57  bool changed(true);
58  if (!hltConfig.init(iRun, iEventSetup, "HLT", changed)) {
59  edm::LogInfo("DQMProvInfo") << "errorHltConfigExtraction" << std::endl;
60  hltKey_ = "error extraction";
61  } else if (hltConfig.size() <= 0) {
62  edm::LogInfo("DQMProvInfo") << "hltConfig" << std::endl;
63  hltKey_ = "error key of length 0";
64  } else {
65  edm::LogInfo("DQMProvInfo") << "HLT key (run): " << hltConfig.tableName() << std::endl;
66  hltKey_ = hltConfig.tableName();
67  }
68 }
unsigned int size() const
number of trigger paths in trigger table
const std::string & tableName() const
HLT ConfDB table name.
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
std::string hltKey_
Definition: DQMProvInfo.h:146
void DQMProvInfo::endLuminosityBlock ( const edm::LuminosityBlock l,
const edm::EventSetup c 
)
overrideprotected

Definition at line 410 of file DQMProvInfo.cc.

References endLuminosityBlockEventInfo(), endLuminosityBlockLhcInfo(), edm::LuminosityBlockBase::id(), edm::LuminosityBlockID::luminosityBlock(), and previousLSNumber_.

410  {
411  int currentLSNumber = iLumi.id().luminosityBlock();
412 
413  // We assume that we encounter the LumiSections in chronological order
414  // We only process a LS if it's greater than the previous one:
415  if (currentLSNumber > previousLSNumber_) {
416  endLuminosityBlockLhcInfo(currentLSNumber);
417  endLuminosityBlockEventInfo(currentLSNumber);
418  }
419 
420  // Set current LS number as previous number for the next cycle:
421  previousLSNumber_ = currentLSNumber;
422 }
void endLuminosityBlockEventInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:433
int previousLSNumber_
Definition: DQMProvInfo.h:132
void endLuminosityBlockLhcInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:424
void DQMProvInfo::endLuminosityBlockEventInfo ( const int  currentLSNumber)
private

Definition at line 433 of file DQMProvInfo.cc.

References beamMode_, blankPreviousLumiSections(), dcsBits_, dqm::impl::MonitorElement::Fill(), hIsCollisionsRun_, MAX_DCS_VBINS, MAX_MOMENTUM, momentum_, MOMENTUM_OFFSET, physicsDeclared_, reportSummary_, reportSummaryMap_, dqm::impl::MonitorElement::setBinContent(), VBIN_MOMENTUM, VBIN_PHYSICS_DECLARED, VBIN_STABLE_BEAM, and VBIN_VALID.

Referenced by endLuminosityBlock().

433  {
434  // If we skipped LumiSections, we make them "white"
435  blankPreviousLumiSections(currentLSNumber);
436 
437  // We set the top value to "Valid" to 1 for each LS we end
438  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_VALID, 1.);
439 
440  // Part 1: Physics declared bit in y bin VBIN_PHYSICS_DECLARED
441  // This also is used as the global value of the summary.
442  if (physicsDeclared_) {
443  reportSummary_->Fill(1.);
445  } else {
446  reportSummary_->Fill(0.);
448  }
449 
450  // Part2: DCS bits in y bins 1 to MAX_DCS_VBINS
451  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
452  if (dcsBits_[vbin]) {
453  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 1.);
454  } else {
455  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 0.);
456  }
457  }
458 
459  // Part3: Using LHC status info, fill in VBIN_MOMENTUM and VBIN_STABLE_BEAM
460  // Fill 13 TeV bit in y bin VBIN_MOMENTUM
462  reportSummary_->Fill(1.);
463  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_MOMENTUM, 1.);
464  } else {
465  reportSummary_->Fill(0.);
466  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_MOMENTUM, 0.);
467  }
468 
469  // Fill stable beams bit in y bin VBIN_STABLE_BEAM
470  if (beamMode_ == 11) {
472  reportSummary_->Fill(1.);
473  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_STABLE_BEAM, 1.);
474  } else {
475  reportSummary_->Fill(0.);
476  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_STABLE_BEAM, 0.);
477  }
478 }
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:130
static const int VBIN_VALID
Definition: DQMProvInfo.h:93
void Fill(long long x)
static const int VBIN_MOMENTUM
Definition: DQMProvInfo.h:91
static const int MAX_MOMENTUM
Definition: DQMProvInfo.h:99
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:92
void blankPreviousLumiSections(const int currentLSNumber)
Definition: DQMProvInfo.cc:480
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:148
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:88
static const int MOMENTUM_OFFSET
Definition: DQMProvInfo.h:107
bool physicsDeclared_
Definition: DQMProvInfo.h:133
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:135
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:131
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:90
void DQMProvInfo::endLuminosityBlockLhcInfo ( const int  currentLSNumber)
private

Definition at line 424 of file DQMProvInfo.cc.

References beamMode_, hBeamMode_, hIntensity1_, hIntensity2_, hLhcFill_, hMomentum_, intensity1_, intensity2_, lhcFill_, momentum_, and dqm::impl::MonitorElement::setBinContent().

Referenced by endLuminosityBlock().

424  {
425  // Quite straightforward: Fill in the value for the LS in each plot:
426  hBeamMode_->setBinContent(currentLSNumber, beamMode_);
427  hIntensity1_->setBinContent(currentLSNumber, intensity1_);
428  hIntensity2_->setBinContent(currentLSNumber, intensity2_);
429  hLhcFill_->setBinContent(currentLSNumber, lhcFill_);
430  hMomentum_->setBinContent(currentLSNumber, momentum_);
431 }
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:118
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:122
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:126
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:124
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:120
void DQMProvInfo::fillDcsBitsFromDCSRecord ( const DCSRecord dcsRecord)
private

Definition at line 304 of file DQMProvInfo.cc.

References BPIX, CastorDigiToRaw_cfi::CASTOR, dcsBits_, SectorBuilder_Fpix_cff::FPIX, CaloTPGTranscoder_cfi::HF, DCSRecord::highVoltageReady(), DigiToRawDM_cff::HO, isPhysicsDeclared(), physicsDeclared_, dedefs::RPC, SectorBuilder_Tob_cff::TOB, VBIN_BPIX, VBIN_CASTOR, VBIN_CSC_M, VBIN_CSC_P, VBIN_DT_0, VBIN_DT_M, VBIN_DT_P, VBIN_EB_M, VBIN_EB_P, VBIN_EE_M, VBIN_EE_P, VBIN_ES_M, VBIN_ES_P, VBIN_FPIX, VBIN_HBHE_A, VBIN_HBHE_B, VBIN_HBHE_C, VBIN_HF, VBIN_HO, VBIN_RPC, VBIN_TE_M, VBIN_TEC_P, VBIN_TIBTID, VBIN_TOB, VBIN_ZDC, and DigiToRawDM_cff::ZDC.

Referenced by analyzeEventInfo().

304  {
305  dcsBits_[VBIN_CSC_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::CSCp);
306  dcsBits_[VBIN_CSC_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::CSCm);
307  dcsBits_[VBIN_DT_0] = dcsRecord.highVoltageReady(DCSRecord::Partition::DT0);
308  dcsBits_[VBIN_DT_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::DTp);
309  dcsBits_[VBIN_DT_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::DTm);
310  dcsBits_[VBIN_EB_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::EBp);
311  dcsBits_[VBIN_EB_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::EBm);
312  dcsBits_[VBIN_EE_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::EEp);
313  dcsBits_[VBIN_EE_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::EEm);
314  dcsBits_[VBIN_ES_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::ESp);
315  dcsBits_[VBIN_ES_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::ESm);
316  dcsBits_[VBIN_HBHE_A] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEa);
317  dcsBits_[VBIN_HBHE_B] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEb);
318  dcsBits_[VBIN_HBHE_C] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEc);
324  dcsBits_[VBIN_TIBTID] = dcsRecord.highVoltageReady(DCSRecord::Partition::TIBTID);
326  dcsBits_[VBIN_TEC_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::TECp);
327  dcsBits_[VBIN_TE_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::TECm);
330 
331  // Part 2: Compute the PhysicsDeclared bit from the event
333 
334  // Some info-level logging
335  edm::LogInfo("DQMProvInfo") << "Physics declared bit: " << physicsDeclared_ << std::endl;
336 }
static const int VBIN_EE_P
Definition: DQMProvInfo.h:66
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:82
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:71
static const int VBIN_EE_M
Definition: DQMProvInfo.h:67
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:72
static const int VBIN_HO
Definition: DQMProvInfo.h:74
static const int VBIN_DT_0
Definition: DQMProvInfo.h:61
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:80
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:60
static const int VBIN_TOB
Definition: DQMProvInfo.h:79
static const int VBIN_FPIX
Definition: DQMProvInfo.h:76
static const int VBIN_DT_M
Definition: DQMProvInfo.h:63
bool isPhysicsDeclared()
Definition: DQMProvInfo.cc:395
#define BPIX
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:78
static const int VBIN_EB_P
Definition: DQMProvInfo.h:64
static const int VBIN_BPIX
Definition: DQMProvInfo.h:75
static const int VBIN_TE_M
Definition: DQMProvInfo.h:81
static const int VBIN_RPC
Definition: DQMProvInfo.h:77
static const int VBIN_ZDC
Definition: DQMProvInfo.h:83
static const int VBIN_ES_P
Definition: DQMProvInfo.h:68
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:59
static const int VBIN_DT_P
Definition: DQMProvInfo.h:62
static const int VBIN_ES_M
Definition: DQMProvInfo.h:69
bool physicsDeclared_
Definition: DQMProvInfo.h:133
static const int VBIN_HF
Definition: DQMProvInfo.h:73
bool highVoltageReady(const uint8_t partitionNumber) const
Return true if the high voltage of the given parition is ready.
Definition: DCSRecord.h:66
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:70
static const int VBIN_EB_M
Definition: DQMProvInfo.h:65
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:135
void DQMProvInfo::fillDcsBitsFromDcsStatusCollection ( const edm::Handle< DcsStatusCollection > &  dcsStatusCollection)
private

Definition at line 338 of file DQMProvInfo.cc.

References DcsStatus::BPIX, DcsStatus::CASTOR, DcsStatus::CSCm, DcsStatus::CSCp, dcsBits_, TauDecayModes::dec, DcsStatus::DT0, DcsStatus::DTm, DcsStatus::DTp, DcsStatus::EBm, DcsStatus::EBp, DcsStatus::EEm, DcsStatus::EEp, DcsStatus::ESm, DcsStatus::ESp, foundFirstDcsBits_, foundFirstPhysicsDeclared_, DcsStatus::FPIX, DcsStatus::HBHEa, DcsStatus::HBHEb, DcsStatus::HBHEc, DcsStatus::HF, DcsStatus::HO, isPhysicsDeclared(), MAX_DCS_VBINS, physicsDeclared_, DcsStatus::RPC, DcsStatus::TECm, DcsStatus::TECp, DcsStatus::TIBTID, DcsStatus::TOB, VBIN_BPIX, VBIN_CASTOR, VBIN_CSC_M, VBIN_CSC_P, VBIN_DT_0, VBIN_DT_M, VBIN_DT_P, VBIN_EB_M, VBIN_EB_P, VBIN_EE_M, VBIN_EE_P, VBIN_ES_M, VBIN_ES_P, VBIN_FPIX, VBIN_HBHE_A, VBIN_HBHE_B, VBIN_HBHE_C, VBIN_HF, VBIN_HO, VBIN_RPC, VBIN_TE_M, VBIN_TEC_P, VBIN_TIBTID, VBIN_TOB, VBIN_ZDC, and DcsStatus::ZDC.

Referenced by analyzeEventInfo().

338  {
339  // Loop over the DCSStatus entries in the DcsStatusCollection
340  // (Typically there is only one)
341  for (auto const& dcsStatusItr : *dcsStatusCollection) {
342  // By default all the bits are false. We put all the bits on true only
343  // for the first DCSStatus that we encounter:
344  if (!foundFirstDcsBits_) {
345  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
346  dcsBits_[vbin] = true;
347  }
348  foundFirstDcsBits_ = true;
349  }
350  // By default Physics Declared is false. We put it on true only for the
351  // first DCSStatus that we encounter:
353  physicsDeclared_ = true;
355  }
356 
357  // The DCS on lumi level is considered ON if the bit is set in EVERY event
358  dcsBits_[VBIN_CSC_P] &= dcsStatusItr.ready(DcsStatus::CSCp);
359  dcsBits_[VBIN_CSC_M] &= dcsStatusItr.ready(DcsStatus::CSCm);
360  dcsBits_[VBIN_DT_0] &= dcsStatusItr.ready(DcsStatus::DT0);
361  dcsBits_[VBIN_DT_P] &= dcsStatusItr.ready(DcsStatus::DTp);
362  dcsBits_[VBIN_DT_M] &= dcsStatusItr.ready(DcsStatus::DTm);
363  dcsBits_[VBIN_EB_P] &= dcsStatusItr.ready(DcsStatus::EBp);
364  dcsBits_[VBIN_EB_M] &= dcsStatusItr.ready(DcsStatus::EBm);
365  dcsBits_[VBIN_EE_P] &= dcsStatusItr.ready(DcsStatus::EEp);
366  dcsBits_[VBIN_EE_M] &= dcsStatusItr.ready(DcsStatus::EEm);
367  dcsBits_[VBIN_ES_P] &= dcsStatusItr.ready(DcsStatus::ESp);
368  dcsBits_[VBIN_ES_M] &= dcsStatusItr.ready(DcsStatus::ESm);
369  dcsBits_[VBIN_HBHE_A] &= dcsStatusItr.ready(DcsStatus::HBHEa);
370  dcsBits_[VBIN_HBHE_B] &= dcsStatusItr.ready(DcsStatus::HBHEb);
371  dcsBits_[VBIN_HBHE_C] &= dcsStatusItr.ready(DcsStatus::HBHEc);
372  dcsBits_[VBIN_HF] &= dcsStatusItr.ready(DcsStatus::HF);
373  dcsBits_[VBIN_HO] &= dcsStatusItr.ready(DcsStatus::HO);
374  dcsBits_[VBIN_BPIX] &= dcsStatusItr.ready(DcsStatus::BPIX);
375  dcsBits_[VBIN_FPIX] &= dcsStatusItr.ready(DcsStatus::FPIX);
376  dcsBits_[VBIN_RPC] &= dcsStatusItr.ready(DcsStatus::RPC);
377  dcsBits_[VBIN_TIBTID] &= dcsStatusItr.ready(DcsStatus::TIBTID);
378  dcsBits_[VBIN_TOB] &= dcsStatusItr.ready(DcsStatus::TOB);
379  dcsBits_[VBIN_TEC_P] &= dcsStatusItr.ready(DcsStatus::TECp);
380  dcsBits_[VBIN_TE_M] &= dcsStatusItr.ready(DcsStatus::TECm);
381  dcsBits_[VBIN_CASTOR] &= dcsStatusItr.ready(DcsStatus::CASTOR);
382  dcsBits_[VBIN_ZDC] &= dcsStatusItr.ready(DcsStatus::ZDC);
383 
384  // Some info-level logging
385  edm::LogInfo("DQMProvInfo") << "DCS status: 0x" << std::hex << dcsStatusItr.ready() << std::dec << std::endl;
386  }
387 
388  // Part 2: Compute the PhysicsDeclared bit from the event
390 
391  // Some info-level logging
392  edm::LogInfo("DQMProvInfo") << "Physics declared bit: " << physicsDeclared_ << std::endl;
393 }
static const int VBIN_EE_P
Definition: DQMProvInfo.h:66
bool foundFirstDcsBits_
Definition: DQMProvInfo.h:136
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:82
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:71
static const int VBIN_EE_M
Definition: DQMProvInfo.h:67
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:72
static const int VBIN_HO
Definition: DQMProvInfo.h:74
static const int VBIN_DT_0
Definition: DQMProvInfo.h:61
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:80
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:60
static const int VBIN_TOB
Definition: DQMProvInfo.h:79
static const int VBIN_FPIX
Definition: DQMProvInfo.h:76
static const int VBIN_DT_M
Definition: DQMProvInfo.h:63
bool isPhysicsDeclared()
Definition: DQMProvInfo.cc:395
bool foundFirstPhysicsDeclared_
Definition: DQMProvInfo.h:134
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:78
static const int VBIN_EB_P
Definition: DQMProvInfo.h:64
static const int VBIN_BPIX
Definition: DQMProvInfo.h:75
static const int VBIN_TE_M
Definition: DQMProvInfo.h:81
static const int VBIN_RPC
Definition: DQMProvInfo.h:77
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:88
static const int VBIN_ZDC
Definition: DQMProvInfo.h:83
static const int VBIN_ES_P
Definition: DQMProvInfo.h:68
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:59
static const int VBIN_DT_P
Definition: DQMProvInfo.h:62
static const int VBIN_ES_M
Definition: DQMProvInfo.h:69
bool physicsDeclared_
Definition: DQMProvInfo.h:133
static const int VBIN_HF
Definition: DQMProvInfo.h:73
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:70
static const int VBIN_EB_M
Definition: DQMProvInfo.h:65
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:135
bool DQMProvInfo::isPhysicsDeclared ( )
private

Definition at line 395 of file DQMProvInfo.cc.

References beamMode_, dcsBits_, VBIN_BPIX, VBIN_CSC_M, VBIN_CSC_P, VBIN_DT_0, VBIN_DT_M, VBIN_DT_P, VBIN_FPIX, VBIN_RPC, VBIN_TE_M, VBIN_TEC_P, VBIN_TIBTID, and VBIN_TOB.

Referenced by fillDcsBitsFromDCSRecord(), and fillDcsBitsFromDcsStatusCollection().

395  {
396  // Compute the PhysicsDeclared bit from the event
397  // The bit is set to to true if:
398  // - the LHC is in stable beams
399  // - all the pixel and strips partitions have DCSStatus ON
400  // - at least one muon partition has DCSStatus ON
401  // Basically: we do an AND of the physicsDeclared of ALL events.
402  // As soon as one value is not "1", physicsDeclared_ becomes false.
403  return (beamMode_ == 11) &&
408 }
static const int VBIN_DT_0
Definition: DQMProvInfo.h:61
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:80
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:60
static const int VBIN_TOB
Definition: DQMProvInfo.h:79
static const int VBIN_FPIX
Definition: DQMProvInfo.h:76
static const int VBIN_DT_M
Definition: DQMProvInfo.h:63
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:78
static const int VBIN_BPIX
Definition: DQMProvInfo.h:75
static const int VBIN_TE_M
Definition: DQMProvInfo.h:81
static const int VBIN_RPC
Definition: DQMProvInfo.h:77
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:59
static const int VBIN_DT_P
Definition: DQMProvInfo.h:62
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:135

Member Data Documentation

int DQMProvInfo::beamMode_
private
bool DQMProvInfo::dcsBits_[MAX_DCS_VBINS+1]
private
edm::EDGetTokenT<DCSRecord> DQMProvInfo::dcsRecordToken_
private

Definition at line 115 of file DQMProvInfo.h.

Referenced by analyzeEventInfo(), and DQMProvInfo().

edm::EDGetTokenT<DcsStatusCollection> DQMProvInfo::dcsStatusCollection_
private

Definition at line 113 of file DQMProvInfo.h.

Referenced by analyzeEventInfo(), and DQMProvInfo().

bool DQMProvInfo::foundFirstDcsBits_
private

Definition at line 136 of file DQMProvInfo.h.

Referenced by beginLuminosityBlock(), and fillDcsBitsFromDcsStatusCollection().

bool DQMProvInfo::foundFirstPhysicsDeclared_
private

Definition at line 134 of file DQMProvInfo.h.

Referenced by beginLuminosityBlock(), and fillDcsBitsFromDcsStatusCollection().

std::string DQMProvInfo::globalTag_
private

Definition at line 141 of file DQMProvInfo.h.

Referenced by analyzeProvInfo(), bookHistogramsProvInfo(), and DQMProvInfo().

bool DQMProvInfo::globalTagRetrieved_
private

Definition at line 142 of file DQMProvInfo.h.

Referenced by analyzeProvInfo(), and DQMProvInfo().

MonitorElement* DQMProvInfo::hBeamMode_
private

Definition at line 118 of file DQMProvInfo.h.

Referenced by bookHistogramsLhcInfo(), and endLuminosityBlockLhcInfo().

MonitorElement* DQMProvInfo::hHltKey_
private

Definition at line 145 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::hIntensity1_
private

Definition at line 120 of file DQMProvInfo.h.

Referenced by bookHistogramsLhcInfo(), and endLuminosityBlockLhcInfo().

MonitorElement* DQMProvInfo::hIntensity2_
private

Definition at line 122 of file DQMProvInfo.h.

Referenced by bookHistogramsLhcInfo(), and endLuminosityBlockLhcInfo().

MonitorElement* DQMProvInfo::hIsCollisionsRun_
private

Definition at line 148 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo(), and endLuminosityBlockEventInfo().

MonitorElement* DQMProvInfo::hLhcFill_
private

Definition at line 124 of file DQMProvInfo.h.

Referenced by bookHistogramsLhcInfo(), and endLuminosityBlockLhcInfo().

std::string DQMProvInfo::hltKey_
private

Definition at line 146 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo(), and dqmBeginRun().

MonitorElement* DQMProvInfo::hMomentum_
private

Definition at line 126 of file DQMProvInfo.h.

Referenced by bookHistogramsLhcInfo(), and endLuminosityBlockLhcInfo().

MonitorElement* DQMProvInfo::hostName_
private

Definition at line 147 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

int DQMProvInfo::intensity1_
private

Definition at line 121 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and endLuminosityBlockLhcInfo().

int DQMProvInfo::intensity2_
private

Definition at line 123 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and endLuminosityBlockLhcInfo().

int DQMProvInfo::lhcFill_
private

Definition at line 125 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and endLuminosityBlockLhcInfo().

const int DQMProvInfo::MAX_DCS_VBINS = 25
staticprivate
const int DQMProvInfo::MAX_LUMIS = 6000
staticprivate
const int DQMProvInfo::MAX_MOMENTUM = 6500
staticprivate

Definition at line 99 of file DQMProvInfo.h.

Referenced by endLuminosityBlockEventInfo().

const int DQMProvInfo::MAX_VBINS = 29
staticprivate

Definition at line 95 of file DQMProvInfo.h.

Referenced by blankAllLumiSections(), and bookHistogramsEventInfo().

int DQMProvInfo::momentum_
private
const int DQMProvInfo::MOMENTUM_OFFSET = 1
staticprivate

Definition at line 107 of file DQMProvInfo.h.

Referenced by endLuminosityBlockEventInfo().

bool DQMProvInfo::physicsDeclared_
private
int DQMProvInfo::previousLSNumber_
private

Definition at line 132 of file DQMProvInfo.h.

Referenced by blankPreviousLumiSections(), DQMProvInfo(), and endLuminosityBlock().

MonitorElement* DQMProvInfo::processId_
private

Definition at line 149 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

std::string DQMProvInfo::provinfofolder_
private

Definition at line 111 of file DQMProvInfo.h.

Referenced by bookHistograms(), and DQMProvInfo().

MonitorElement* DQMProvInfo::reportSummary_
private

Definition at line 130 of file DQMProvInfo.h.

Referenced by bookHistogramsEventInfo(), and endLuminosityBlockEventInfo().

MonitorElement* DQMProvInfo::reportSummaryMap_
private
std::string DQMProvInfo::runType_
private

Definition at line 144 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo(), and DQMProvInfo().

std::string DQMProvInfo::subsystemname_
private

Definition at line 110 of file DQMProvInfo.h.

Referenced by bookHistograms(), and DQMProvInfo().

edm::EDGetTokenT<TCDSRecord> DQMProvInfo::tcdsrecord_
private

Definition at line 114 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and DQMProvInfo().

const int DQMProvInfo::VBIN_BPIX = 17
staticprivate
const int DQMProvInfo::VBIN_CASTOR = 24
staticprivate
const int DQMProvInfo::VBIN_CSC_M = 2
staticprivate
const int DQMProvInfo::VBIN_CSC_P = 1
staticprivate
const int DQMProvInfo::VBIN_DT_0 = 3
staticprivate
const int DQMProvInfo::VBIN_DT_M = 5
staticprivate
const int DQMProvInfo::VBIN_DT_P = 4
staticprivate
const int DQMProvInfo::VBIN_EB_M = 7
staticprivate
const int DQMProvInfo::VBIN_EB_P = 6
staticprivate
const int DQMProvInfo::VBIN_EE_M = 9
staticprivate
const int DQMProvInfo::VBIN_EE_P = 8
staticprivate
const int DQMProvInfo::VBIN_ES_M = 11
staticprivate
const int DQMProvInfo::VBIN_ES_P = 10
staticprivate
const int DQMProvInfo::VBIN_FPIX = 18
staticprivate
const int DQMProvInfo::VBIN_HBHE_A = 12
staticprivate
const int DQMProvInfo::VBIN_HBHE_B = 13
staticprivate
const int DQMProvInfo::VBIN_HBHE_C = 14
staticprivate
const int DQMProvInfo::VBIN_HF = 15
staticprivate
const int DQMProvInfo::VBIN_HO = 16
staticprivate
const int DQMProvInfo::VBIN_MOMENTUM = 27
staticprivate

Definition at line 91 of file DQMProvInfo.h.

Referenced by bookHistogramsEventInfo(), and endLuminosityBlockEventInfo().

const int DQMProvInfo::VBIN_PHYSICS_DECLARED = 26
staticprivate

Definition at line 90 of file DQMProvInfo.h.

Referenced by bookHistogramsEventInfo(), and endLuminosityBlockEventInfo().

const int DQMProvInfo::VBIN_RPC = 19
staticprivate
const int DQMProvInfo::VBIN_STABLE_BEAM = 28
staticprivate

Definition at line 92 of file DQMProvInfo.h.

Referenced by bookHistogramsEventInfo(), and endLuminosityBlockEventInfo().

const int DQMProvInfo::VBIN_TE_M = 23
staticprivate
const int DQMProvInfo::VBIN_TEC_P = 22
staticprivate
const int DQMProvInfo::VBIN_TIBTID = 20
staticprivate
const int DQMProvInfo::VBIN_TOB = 21
staticprivate
const int DQMProvInfo::VBIN_VALID = 29
staticprivate
const int DQMProvInfo::VBIN_ZDC = 25
staticprivate
MonitorElement* DQMProvInfo::versCMSSW_
private

Definition at line 139 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::versGlobaltag_
private

Definition at line 140 of file DQMProvInfo.h.

Referenced by analyzeProvInfo(), and bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::versRuntype_
private

Definition at line 143 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::workingDir_
private

Definition at line 150 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().