CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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::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<>
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
 
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
 
std::vector< ESProxyIndex > 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
 
bool registeredToConsumeMany (TypeID const &, 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::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, 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
 
- Protected Member Functions inherited from DQMOneEDAnalyzer<>
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)
 
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 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<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)
 

Private Member Functions

void analyzeEventInfo (const edm::Event &e)
 
void analyzeLhcInfo (const edm::Event &e)
 
void analyzeProvInfo (const edm::Event &e)
 
void blankAllLumiSections ()
 
void bookHistogramsEventInfo (DQMStore::IBooker &)
 
void bookHistogramsLhcInfo (DQMStore::IBooker &)
 
void bookHistogramsProvInfo (DQMStore::IBooker &)
 
void fillDcsBitsFromDCSRecord (const DCSRecord &, bool *dcsBits)
 
void fillDcsBitsFromDcsStatusCollection (const edm::Handle< DcsStatusCollection > &, bool *dcsBits)
 
void fillSummaryMapBin (int ls, int bin, double value)
 
bool isPhysicsDeclared (bool *dcsBits)
 
void setupLumiSection (int ls)
 

Private Attributes

int beamMode_
 
edm::EDGetTokenT< DCSRecorddcsRecordToken_
 
edm::EDGetTokenT
< DcsStatusCollection
dcsStatusCollection_
 
std::string globalTag_
 
bool globalTagRetrieved_
 
MonitorElementhBeamMode_
 
MonitorElementhHltKey_
 
MonitorElementhIntensity1_
 
MonitorElementhIntensity2_
 
MonitorElementhIsCollisionsRun_
 
MonitorElementhLhcFill_
 
std::string hltKey_
 
MonitorElementhMomentum_
 
MonitorElementhostName_
 
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 = 27
 
static const int MAX_LUMIS = 6000
 
static const int MAX_MOMENTUM = 6500
 
static const int MAX_VBINS = 31
 
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_GEM_M = 27
 
static const int VBIN_GEM_P = 26
 
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 = 29
 
static const int VBIN_PHYSICS_DECLARED = 28
 
static const int VBIN_RPC = 19
 
static const int VBIN_STABLE_BEAM = 30
 
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 = 31
 
static const int VBIN_ZDC = 25
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
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::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_FULL_cff::InputTag, provinfofolder_, runType_, AlCaHLTBitMon_QueryRunRegistry::string, subsystemname_, and tcdsrecord_.

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>(
40  ps.getUntrackedParameter<edm::InputTag>("dcsRecord", edm::InputTag("onlineMetaDataRawToDigi")));
41 
42  // Initialization of the global tag
43  globalTag_ = "MODULE::DEFAULT"; // default
44  globalTagRetrieved_ = false; // set as soon as retrieved from first event
45 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:112
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: DQMProvInfo.h:114
bool globalTagRetrieved_
Definition: DQMProvInfo.h:132
std::string globalTag_
Definition: DQMProvInfo.h:131
std::string subsystemname_
Definition: DQMProvInfo.h:109
std::string runType_
Definition: DQMProvInfo.h:134
edm::EDGetTokenT< TCDSRecord > tcdsrecord_
Definition: DQMProvInfo.h:113
std::string provinfofolder_
Definition: DQMProvInfo.h:110
DQMProvInfo::~DQMProvInfo ( )
overridedefault

Member Function Documentation

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

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 218 of file DQMProvInfo.cc.

References analyzeEventInfo(), analyzeLhcInfo(), analyzeProvInfo(), edm::EventBase::id(), edm::EventID::luminosityBlock(), and setupLumiSection().

218  {
219  // This happens on an event by event base
220  // We extract information from events, placing them in local variables
221  // and then at the end of each lumisection, we fill them in the MonitorElement
222  // (Except for the global tag, which we only extract from the first event we
223  // ever encounter and put in the MonitorElement right away)
224 
225  // We set the top value to "Valid" to 1 for each LS we encounter
226  setupLumiSection(event.id().luminosityBlock());
227 
231 }
void analyzeEventInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:275
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:323
void analyzeLhcInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:233
void setupLumiSection(int ls)
Definition: DQMProvInfo.cc:456
void DQMProvInfo::analyzeEventInfo ( const edm::Event e)
private

Definition at line 275 of file DQMProvInfo.cc.

References dcsRecordToken_, dcsStatusCollection_, fillDcsBitsFromDCSRecord(), fillDcsBitsFromDcsStatusCollection(), fillSummaryMapBin(), isPhysicsDeclared(), edm::HandleBase::isValid(), MAX_DCS_VBINS, and VBIN_PHYSICS_DECLARED.

Referenced by analyze().

275  {
276  unsigned int currentLSNumber = event.id().luminosityBlock();
277  // Part 1:
278  // If FED#735 is available use it to extract DcsStatusCollection.
279  // If not, use softFED#1022 to extract DCSRecord.
280 
281  edm::Handle<DcsStatusCollection> dcsStatusCollection;
282  event.getByToken(dcsStatusCollection_, dcsStatusCollection);
283  edm::Handle<DCSRecord> dcsRecord;
284  event.getByToken(dcsRecordToken_, dcsRecord);
285 
286  // Populate dcsBits array with received information.
287  bool dcsBits[MAX_DCS_VBINS + 1] = {};
288 
289  if (dcsStatusCollection.isValid() && !dcsStatusCollection->empty()) {
290  edm::LogInfo("DQMProvInfo") << "Using FED#735 for reading DCS bits" << std::endl;
291  fillDcsBitsFromDcsStatusCollection(dcsStatusCollection, dcsBits);
292  } else if (dcsRecord.isValid()) {
293  edm::LogInfo("DQMProvInfo") << "Using softFED#1022 for reading DCS bits" << std::endl;
294  fillDcsBitsFromDCSRecord(*dcsRecord, dcsBits);
295  } else {
296  edm::LogError("DQMProvInfo") << "No DCS information found!" << std::endl;
297  }
298 
299  // Part 2: Compute the PhysicsDeclared bit from the event
300  auto physicsDeclared = isPhysicsDeclared(dcsBits);
301 
302  // Some info-level logging
303  edm::LogInfo("DQMProvInfo") << "Physics declared bit: " << physicsDeclared << std::endl;
304 
305  // Part 1: Physics declared bit in y bin VBIN_PHYSICS_DECLARED
306  // This also is used as the global value of the summary.
307  if (physicsDeclared) {
308  fillSummaryMapBin(currentLSNumber, VBIN_PHYSICS_DECLARED, 1.);
309  } else {
310  fillSummaryMapBin(currentLSNumber, VBIN_PHYSICS_DECLARED, 0.);
311  }
312 
313  // Part2: DCS bits in y bins 1 to MAX_DCS_VBINS
314  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
315  if (dcsBits[vbin]) {
316  fillSummaryMapBin(currentLSNumber, vbin, 1.);
317  } else {
318  fillSummaryMapBin(currentLSNumber, vbin, 0.);
319  }
320  }
321 }
void fillSummaryMapBin(int ls, int bin, double value)
Definition: DQMProvInfo.cc:443
void fillDcsBitsFromDcsStatusCollection(const edm::Handle< DcsStatusCollection > &, bool *dcsBits)
Definition: DQMProvInfo.cc:370
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:112
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: DQMProvInfo.h:114
Log< level::Error, false > LogError
bool isValid() const
Definition: HandleBase.h:70
Log< level::Info, false > LogInfo
void fillDcsBitsFromDCSRecord(const DCSRecord &, bool *dcsBits)
Definition: DQMProvInfo.cc:340
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:87
bool isPhysicsDeclared(bool *dcsBits)
Definition: DQMProvInfo.cc:417
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:89
void DQMProvInfo::analyzeLhcInfo ( const edm::Event e)
private

Definition at line 233 of file DQMProvInfo.cc.

References beamMode_, dqm::impl::MonitorElement::Fill(), fillSummaryMapBin(), hBeamMode_, hIntensity1_, hIntensity2_, hIsCollisionsRun_, hLhcFill_, hMomentum_, edm::HandleBase::isValid(), MAX_MOMENTUM, MOMENTUM_OFFSET, reportSummary_, dqm::impl::MonitorElement::setBinContent(), tcdsrecord_, VBIN_MOMENTUM, and VBIN_STABLE_BEAM.

Referenced by analyze().

233  {
234  unsigned int currentLSNumber = event.id().luminosityBlock();
235  edm::Handle<TCDSRecord> tcdsData;
236  event.getByToken(tcdsrecord_, tcdsData);
237  // We unpack the TCDS record from TCDS
238  if (tcdsData.isValid()) {
239  //and we look at the BST information
240  auto lhcFill = static_cast<int>(tcdsData->getBST().getLhcFill());
241  beamMode_ = static_cast<int>(tcdsData->getBST().getBeamMode());
242  auto momentum = static_cast<int>(tcdsData->getBST().getBeamMomentum());
243  auto intensity1 = static_cast<int>(tcdsData->getBST().getIntensityBeam1());
244  auto intensity2 = static_cast<int>(tcdsData->getBST().getIntensityBeam2());
245 
246  // Quite straightforward: Fill in the value for the LS in each plot:
247  hLhcFill_->setBinContent(currentLSNumber, lhcFill);
248  hBeamMode_->setBinContent(currentLSNumber, beamMode_);
249  hMomentum_->setBinContent(currentLSNumber, momentum);
250  hIntensity1_->setBinContent(currentLSNumber, intensity1);
251  hIntensity2_->setBinContent(currentLSNumber, intensity2);
252 
253  // Part3: Using LHC status info, fill in VBIN_MOMENTUM and VBIN_STABLE_BEAM
254  // Fill 13 TeV bit in y bin VBIN_MOMENTUM
255  if (momentum >= MAX_MOMENTUM - MOMENTUM_OFFSET) {
256  fillSummaryMapBin(currentLSNumber, VBIN_MOMENTUM, 1.);
257  } else {
258  fillSummaryMapBin(currentLSNumber, VBIN_MOMENTUM, 0.);
259  }
260 
261  // Fill stable beams bit in y bin VBIN_STABLE_BEAM
262  if (beamMode_ == 11) {
264  reportSummary_->Fill(1.);
265  fillSummaryMapBin(currentLSNumber, VBIN_STABLE_BEAM, 1.);
266  } else {
267  reportSummary_->Fill(0.);
268  fillSummaryMapBin(currentLSNumber, VBIN_STABLE_BEAM, 0.);
269  }
270  } else {
271  edm::LogWarning("DQMProvInfo") << "TCDS Data inaccessible.";
272  }
273 }
void fillSummaryMapBin(int ls, int bin, double value)
Definition: DQMProvInfo.cc:443
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:117
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:120
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:125
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:122
void Fill(long long x)
static const int VBIN_MOMENTUM
Definition: DQMProvInfo.h:90
bool isValid() const
Definition: HandleBase.h:70
static const int MAX_MOMENTUM
Definition: DQMProvInfo.h:98
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:121
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:91
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:119
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:138
edm::EDGetTokenT< TCDSRecord > tcdsrecord_
Definition: DQMProvInfo.h:113
Log< level::Warning, false > LogWarning
static const int MOMENTUM_OFFSET
Definition: DQMProvInfo.h:106
void DQMProvInfo::analyzeProvInfo ( const edm::Event e)
private

Definition at line 323 of file DQMProvInfo.cc.

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

Referenced by analyze().

323  {
324  // Only trying to retrieve the global tag for the first event we ever
325  // encounter.
326  if (!globalTagRetrieved_) {
327  // Getting the real process name for the given event
328  std::string processName = event.processHistory()[event.processHistory().size() - 1].processName();
329  // Getting parameters for that process
331  event.getProcessParameterSet(processName, ps);
332  // Getting the global tag
333  globalTag_ = ps.getParameterSet("PoolDBESSource@GlobalTag").getParameter<std::string>("globaltag");
335  // Finaly: Setting globalTagRetrieved_ to true, since we got it now
336  globalTagRetrieved_ = true;
337  }
338 }
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:130
bool globalTagRetrieved_
Definition: DQMProvInfo.h:132
void Fill(long long x)
std::string globalTag_
Definition: DQMProvInfo.h:131
ParameterSet const & getParameterSet(std::string const &) const
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
void DQMProvInfo::blankAllLumiSections ( )
private

Definition at line 432 of file DQMProvInfo.cc.

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

Referenced by bookHistogramsEventInfo().

432  {
433  // Initially we want all lumisection to be blank (-1) and
434  // white instead of red which is misleading.
435  for (int ls = 0; ls < MAX_LUMIS; ls++) {
436  // Color all the bins white (-1)
437  for (int vBin = 1; vBin <= MAX_VBINS; vBin++) {
438  reportSummaryMap_->setBinContent(ls, vBin, -1.);
439  }
440  }
441 }
def ls
Definition: eostools.py:349
static const int MAX_LUMIS
Definition: DQMProvInfo.h:53
static const int MAX_VBINS
Definition: DQMProvInfo.h:94
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:126
void DQMProvInfo::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  iRun,
edm::EventSetup const &  iEventSetup 
)
overrideprotectedvirtual

Implements DQMOneEDAnalyzer<>.

Definition at line 68 of file DQMProvInfo.cc.

References bookHistogramsEventInfo(), bookHistogramsLhcInfo(), bookHistogramsProvInfo(), dqm::implementation::NavigatorBase::cd(), provinfofolder_, dqm::implementation::NavigatorBase::setCurrentFolder(), and subsystemname_.

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

Definition at line 137 of file DQMProvInfo.cc.

References blankAllLumiSections(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookFloat(), 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_GEM_M, VBIN_GEM_P, 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().

137  {
138  // Element: reportSummary
139  reportSummary_ = iBooker.bookFloat("reportSummary");
140 
141  // Element: reportSummaryMap (this is the famous HV plot)
142  reportSummaryMap_ = iBooker.book2D("reportSummaryMap",
143  "DCS HV Status and Beam Status per Lumisection",
144  MAX_LUMIS,
145  0,
146  MAX_LUMIS,
147  MAX_VBINS,
148  0.,
149  MAX_VBINS);
150  reportSummaryMap_->setAxisTitle("Luminosity Section");
151 
183 
185 }
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:125
static const int VBIN_GEM_P
Definition: DQMProvInfo.h:81
static const int VBIN_EE_P
Definition: DQMProvInfo.h:63
static const int VBIN_GEM_M
Definition: DQMProvInfo.h:82
static const int VBIN_VALID
Definition: DQMProvInfo.h:92
void blankAllLumiSections()
Definition: DQMProvInfo.cc:432
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:79
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:68
static const int VBIN_EE_M
Definition: DQMProvInfo.h:64
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:69
static const int VBIN_HO
Definition: DQMProvInfo.h:71
static const int VBIN_DT_0
Definition: DQMProvInfo.h:58
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:77
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:57
static const int VBIN_TOB
Definition: DQMProvInfo.h:76
static const int VBIN_FPIX
Definition: DQMProvInfo.h:73
static const int MAX_LUMIS
Definition: DQMProvInfo.h:53
static const int VBIN_DT_M
Definition: DQMProvInfo.h:60
static const int VBIN_MOMENTUM
Definition: DQMProvInfo.h:90
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:94
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:91
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:75
static const int VBIN_EB_P
Definition: DQMProvInfo.h:61
static const int VBIN_BPIX
Definition: DQMProvInfo.h:72
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
static const int VBIN_TE_M
Definition: DQMProvInfo.h:78
static const int VBIN_RPC
Definition: DQMProvInfo.h:74
static const int VBIN_ZDC
Definition: DQMProvInfo.h:80
static const int VBIN_ES_P
Definition: DQMProvInfo.h:65
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:56
static const int VBIN_DT_P
Definition: DQMProvInfo.h:59
static const int VBIN_ES_M
Definition: DQMProvInfo.h:66
static const int VBIN_HF
Definition: DQMProvInfo.h:70
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:67
static const int VBIN_EB_M
Definition: DQMProvInfo.h:62
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:126
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:89
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 86 of file DQMProvInfo.cc.

References dqm::implementation::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().

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

Definition at line 187 of file DQMProvInfo.cc.

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

Referenced by bookHistograms().

187  {
188  // Note: Given that all these elements are only filled once per run, they
189  // are filled here right away. (except for isCollisionsRun)
190 
191  // Element: CMMSW
192  versCMSSW_ = iBooker.bookString("CMSSW", edm::getReleaseVersion().c_str());
193 
194  // Element: Globaltag
195  versGlobaltag_ = iBooker.bookString("Globaltag", globalTag_);
196 
197  // Element: RunType
198  versRuntype_ = iBooker.bookString("Run Type", runType_);
199 
200  // Element: hltKey
201  hHltKey_ = iBooker.bookString("hltKey", hltKey_);
202 
203  // Element: hostName
204  hostName_ = iBooker.bookString("hostName", gSystem->HostName());
205 
206  // Element: isCollisionsRun (filled for real in EndLumi)
207  hIsCollisionsRun_ = iBooker.bookInt("isCollisionsRun");
209 
210  // Element: processID
211  processId_ = iBooker.bookInt("processID");
212  processId_->Fill(gSystem->GetPid());
213 
214  // Element: workingDir
215  workingDir_ = iBooker.bookString("workingDir", gSystem->pwd());
216 }
MonitorElement * workingDir_
Definition: DQMProvInfo.h:140
MonitorElement * processId_
Definition: DQMProvInfo.h:139
MonitorElement * hHltKey_
Definition: DQMProvInfo.h:135
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:130
MonitorElement * bookString(TString const &name, TString const &value, FUNC onbooking=NOOP())
Definition: DQMStore.h:87
void Fill(long long x)
std::string globalTag_
Definition: DQMProvInfo.h:131
MonitorElement * versRuntype_
Definition: DQMProvInfo.h:133
std::string getReleaseVersion()
MonitorElement * bookInt(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:73
MonitorElement * versCMSSW_
Definition: DQMProvInfo.h:129
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:138
std::string runType_
Definition: DQMProvInfo.h:134
std::string hltKey_
Definition: DQMProvInfo.h:136
MonitorElement * hostName_
Definition: DQMProvInfo.h:137
void DQMProvInfo::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 50 of file DQMProvInfo.cc.

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

50  {
51  // Here we do everything that needs to be done before the booking
52  // Getting the HLT key from HLTConfigProvider:
53  hltKey_ = "";
55  bool changed(true);
56  if (!hltConfig.init(iRun, iEventSetup, "HLT", changed)) {
57  edm::LogInfo("DQMProvInfo") << "errorHltConfigExtraction" << std::endl;
58  hltKey_ = "error extraction";
59  } else if (hltConfig.size() <= 0) {
60  edm::LogInfo("DQMProvInfo") << "hltConfig" << std::endl;
61  hltKey_ = "error key of length 0";
62  } else {
63  edm::LogInfo("DQMProvInfo") << "HLT key (run): " << hltConfig.tableName() << std::endl;
64  hltKey_ = hltConfig.tableName();
65  }
66 }
unsigned int size() const
number of trigger paths in trigger table
const std::string & tableName() const
HLT ConfDB table name.
Log< level::Info, false > LogInfo
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:136
void DQMProvInfo::fillDcsBitsFromDCSRecord ( const DCSRecord dcsRecord,
bool *  dcsBits 
)
private

Definition at line 340 of file DQMProvInfo.cc.

References BPIX, RunInfoPI::CASTOR, SectorBuilder_Fpix_cff::FPIX, DigiToRawDM_cff::HF, DCSRecord::highVoltageReady(), hcaldqm::constants::HO, RunInfoPI::RPC, DetStateFilter::TECm, DetStateFilter::TECp, DetStateFilter::TIBTID, 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_GEM_M, VBIN_GEM_P, 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, and VBIN_ZDC.

Referenced by analyzeEventInfo().

340  {
341  dcsBits[VBIN_CSC_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::CSCp);
342  dcsBits[VBIN_CSC_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::CSCm);
343  dcsBits[VBIN_DT_0] = dcsRecord.highVoltageReady(DCSRecord::Partition::DT0);
344  dcsBits[VBIN_DT_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::DTp);
345  dcsBits[VBIN_DT_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::DTm);
346  dcsBits[VBIN_EB_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::EBp);
347  dcsBits[VBIN_EB_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::EBm);
348  dcsBits[VBIN_EE_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::EEp);
349  dcsBits[VBIN_EE_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::EEm);
350  dcsBits[VBIN_ES_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::ESp);
351  dcsBits[VBIN_ES_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::ESm);
352  dcsBits[VBIN_HBHE_A] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEa);
353  dcsBits[VBIN_HBHE_B] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEb);
354  dcsBits[VBIN_HBHE_C] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEc);
355  dcsBits[VBIN_HF] = dcsRecord.highVoltageReady(DCSRecord::Partition::HF);
356  dcsBits[VBIN_HO] = dcsRecord.highVoltageReady(DCSRecord::Partition::HO);
365  dcsBits[VBIN_ZDC] = dcsRecord.highVoltageReady(DCSRecord::Partition::ZDC);
366  dcsBits[VBIN_GEM_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::GEMp);
367  dcsBits[VBIN_GEM_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::GEMm);
368 }
static const int VBIN_GEM_P
Definition: DQMProvInfo.h:81
static const int VBIN_EE_P
Definition: DQMProvInfo.h:63
static const int VBIN_GEM_M
Definition: DQMProvInfo.h:82
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:79
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:68
static const int VBIN_EE_M
Definition: DQMProvInfo.h:64
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:69
static const int VBIN_HO
Definition: DQMProvInfo.h:71
static const int VBIN_DT_0
Definition: DQMProvInfo.h:58
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:77
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:57
static const int VBIN_TOB
Definition: DQMProvInfo.h:76
static const int VBIN_FPIX
Definition: DQMProvInfo.h:73
static const int VBIN_DT_M
Definition: DQMProvInfo.h:60
#define BPIX
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:75
static const int VBIN_EB_P
Definition: DQMProvInfo.h:61
static const int VBIN_BPIX
Definition: DQMProvInfo.h:72
static const int VBIN_TE_M
Definition: DQMProvInfo.h:78
static const int VBIN_RPC
Definition: DQMProvInfo.h:74
static const int VBIN_ZDC
Definition: DQMProvInfo.h:80
static const int VBIN_ES_P
Definition: DQMProvInfo.h:65
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:56
static const int VBIN_DT_P
Definition: DQMProvInfo.h:59
static const int VBIN_ES_M
Definition: DQMProvInfo.h:66
static const int VBIN_HF
Definition: DQMProvInfo.h:70
bool highVoltageReady(const uint8_t partitionNumber) const
Return true if the high voltage of the given parition is ready.
Definition: DCSRecord.h:71
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:67
static const int VBIN_EB_M
Definition: DQMProvInfo.h:62
void DQMProvInfo::fillDcsBitsFromDcsStatusCollection ( const edm::Handle< DcsStatusCollection > &  dcsStatusCollection,
bool *  dcsBits 
)
private

Definition at line 370 of file DQMProvInfo.cc.

References DcsStatus::BPIX, DcsStatus::CASTOR, DcsStatus::CSCm, DcsStatus::CSCp, TauDecayModes::dec, DcsStatus::DT0, DcsStatus::DTm, DcsStatus::DTp, DcsStatus::EBm, DcsStatus::EBp, DcsStatus::EEm, DcsStatus::EEp, DcsStatus::ESm, DcsStatus::ESp, first, DcsStatus::FPIX, DcsStatus::HBHEa, DcsStatus::HBHEb, DcsStatus::HBHEc, DcsStatus::HF, DcsStatus::HO, MAX_DCS_VBINS, 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().

371  {
372  // Loop over the DCSStatus entries in the DcsStatusCollection
373  // (Typically there is only one)
374  bool first = true;
375  for (auto const& dcsStatusItr : *dcsStatusCollection) {
376  // By default all the bits are false. We put all the bits on true only
377  // for the first DCSStatus that we encounter:
378  if (first) {
379  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
380  dcsBits[vbin] = true;
381  }
382  first = false;
383  }
384  dcsBits[VBIN_CSC_P] &= dcsStatusItr.ready(DcsStatus::CSCp);
385  dcsBits[VBIN_CSC_M] &= dcsStatusItr.ready(DcsStatus::CSCm);
386  dcsBits[VBIN_DT_0] &= dcsStatusItr.ready(DcsStatus::DT0);
387  dcsBits[VBIN_DT_P] &= dcsStatusItr.ready(DcsStatus::DTp);
388  dcsBits[VBIN_DT_M] &= dcsStatusItr.ready(DcsStatus::DTm);
389  dcsBits[VBIN_EB_P] &= dcsStatusItr.ready(DcsStatus::EBp);
390  dcsBits[VBIN_EB_M] &= dcsStatusItr.ready(DcsStatus::EBm);
391  dcsBits[VBIN_EE_P] &= dcsStatusItr.ready(DcsStatus::EEp);
392  dcsBits[VBIN_EE_M] &= dcsStatusItr.ready(DcsStatus::EEm);
393  dcsBits[VBIN_ES_P] &= dcsStatusItr.ready(DcsStatus::ESp);
394  dcsBits[VBIN_ES_M] &= dcsStatusItr.ready(DcsStatus::ESm);
395  dcsBits[VBIN_HBHE_A] &= dcsStatusItr.ready(DcsStatus::HBHEa);
396  dcsBits[VBIN_HBHE_B] &= dcsStatusItr.ready(DcsStatus::HBHEb);
397  dcsBits[VBIN_HBHE_C] &= dcsStatusItr.ready(DcsStatus::HBHEc);
398  dcsBits[VBIN_HF] &= dcsStatusItr.ready(DcsStatus::HF);
399  dcsBits[VBIN_HO] &= dcsStatusItr.ready(DcsStatus::HO);
400  dcsBits[VBIN_BPIX] &= dcsStatusItr.ready(DcsStatus::BPIX);
401  dcsBits[VBIN_FPIX] &= dcsStatusItr.ready(DcsStatus::FPIX);
402  dcsBits[VBIN_RPC] &= dcsStatusItr.ready(DcsStatus::RPC);
403  dcsBits[VBIN_TIBTID] &= dcsStatusItr.ready(DcsStatus::TIBTID);
404  dcsBits[VBIN_TOB] &= dcsStatusItr.ready(DcsStatus::TOB);
405  dcsBits[VBIN_TEC_P] &= dcsStatusItr.ready(DcsStatus::TECp);
406  dcsBits[VBIN_TE_M] &= dcsStatusItr.ready(DcsStatus::TECm);
407  dcsBits[VBIN_CASTOR] &= dcsStatusItr.ready(DcsStatus::CASTOR);
408  dcsBits[VBIN_ZDC] &= dcsStatusItr.ready(DcsStatus::ZDC);
409  //dcsBits[VBIN_GEM_P] &= dcsStatusItr.ready(DcsStatus::GEMp); // GEMp and GEMm are not implemented
410  //dcsBits[VBIN_GEM_M] &= dcsStatusItr.ready(DcsStatus::GEMm);
411 
412  // Some info-level logging
413  edm::LogInfo("DQMProvInfo") << "DCS status: 0x" << std::hex << dcsStatusItr.ready() << std::dec << std::endl;
414  }
415 }
static const int VBIN_EE_P
Definition: DQMProvInfo.h:63
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:79
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:68
static const int VBIN_EE_M
Definition: DQMProvInfo.h:64
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:69
static const int VBIN_HO
Definition: DQMProvInfo.h:71
static const int VBIN_DT_0
Definition: DQMProvInfo.h:58
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:77
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:57
static const int VBIN_TOB
Definition: DQMProvInfo.h:76
static const int VBIN_FPIX
Definition: DQMProvInfo.h:73
static const int VBIN_DT_M
Definition: DQMProvInfo.h:60
Log< level::Info, false > LogInfo
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:75
static const int VBIN_EB_P
Definition: DQMProvInfo.h:61
static const int VBIN_BPIX
Definition: DQMProvInfo.h:72
static const int VBIN_TE_M
Definition: DQMProvInfo.h:78
static const int VBIN_RPC
Definition: DQMProvInfo.h:74
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:87
static const int VBIN_ZDC
Definition: DQMProvInfo.h:80
static const int VBIN_ES_P
Definition: DQMProvInfo.h:65
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:56
static const int VBIN_DT_P
Definition: DQMProvInfo.h:59
static const int VBIN_ES_M
Definition: DQMProvInfo.h:66
static const int VBIN_HF
Definition: DQMProvInfo.h:70
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:67
static const int VBIN_EB_M
Definition: DQMProvInfo.h:62
void DQMProvInfo::fillSummaryMapBin ( int  ls,
int  bin,
double  value 
)
private

Definition at line 443 of file DQMProvInfo.cc.

References dqm::impl::MonitorElement::getBinContent(), reportSummaryMap_, and dqm::impl::MonitorElement::setBinContent().

Referenced by analyzeEventInfo(), and analyzeLhcInfo().

443  {
444  // All lumis are initialized as -1 (white).
445  // We'll set them to red (0) whenever we see a 0 -- else, the value should be
446  // green (1).
447  // This need to be atomic, DQMOneEDAnalyzer for this reason.
448  double current = reportSummaryMap_->getBinContent(ls, bin);
449  if (current == -1) {
451  } else if (value < current) {
453  } // else: ignore, keep min value.
454 }
def ls
Definition: eostools.py:349
virtual double getBinContent(int binx) const
get content of bin (1-D)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:126
bool DQMProvInfo::isPhysicsDeclared ( bool *  dcsBits)
private

Definition at line 417 of file DQMProvInfo.cc.

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

Referenced by analyzeEventInfo().

417  {
418  // Compute the PhysicsDeclared bit from the event
419  // The bit is set to to true if:
420  // - the LHC is in stable beams
421  // - all the pixel and strips partitions have DCSStatus ON
422  // - at least one muon partition has DCSStatus ON
423  // Basically: we do an AND of the physicsDeclared of ALL events.
424  // As soon as one value is not "1", physicsDeclared_ becomes false.
425  return (beamMode_ == 11) &&
426  (dcsBits[VBIN_BPIX] && dcsBits[VBIN_FPIX] && dcsBits[VBIN_TIBTID] && dcsBits[VBIN_TOB] &&
427  dcsBits[VBIN_TEC_P] && dcsBits[VBIN_TE_M]) &&
428  (dcsBits[VBIN_CSC_P] || dcsBits[VBIN_CSC_M] || dcsBits[VBIN_DT_0] || dcsBits[VBIN_DT_P] ||
429  dcsBits[VBIN_DT_M] || dcsBits[VBIN_RPC] || dcsBits[VBIN_GEM_P] || dcsBits[VBIN_GEM_M]);
430 }
static const int VBIN_GEM_P
Definition: DQMProvInfo.h:81
static const int VBIN_GEM_M
Definition: DQMProvInfo.h:82
static const int VBIN_DT_0
Definition: DQMProvInfo.h:58
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:77
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:57
static const int VBIN_TOB
Definition: DQMProvInfo.h:76
static const int VBIN_FPIX
Definition: DQMProvInfo.h:73
static const int VBIN_DT_M
Definition: DQMProvInfo.h:60
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:75
static const int VBIN_BPIX
Definition: DQMProvInfo.h:72
static const int VBIN_TE_M
Definition: DQMProvInfo.h:78
static const int VBIN_RPC
Definition: DQMProvInfo.h:74
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:56
static const int VBIN_DT_P
Definition: DQMProvInfo.h:59
void DQMProvInfo::setupLumiSection ( int  ls)
private

Definition at line 456 of file DQMProvInfo.cc.

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

Referenced by analyze().

456  {
457  if (reportSummaryMap_->getBinContent(currentLSNumber, VBIN_VALID) < 1.) {
458  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_VALID, 1.);
459 
460  // Mark all lower LS as invalid, if they are not set valid yet.
461  // This is a hint for the render plugin to show the correct range.
462  for (int ls = 1; ls < currentLSNumber; ls++) {
465  }
466  }
467  }
468 }
def ls
Definition: eostools.py:349
static const int VBIN_VALID
Definition: DQMProvInfo.h:92
virtual double getBinContent(int binx) const
get content of bin (1-D)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:126

Member Data Documentation

int DQMProvInfo::beamMode_
private

Definition at line 118 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and isPhysicsDeclared().

edm::EDGetTokenT<DCSRecord> DQMProvInfo::dcsRecordToken_
private

Definition at line 114 of file DQMProvInfo.h.

Referenced by analyzeEventInfo(), and DQMProvInfo().

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

Definition at line 112 of file DQMProvInfo.h.

Referenced by analyzeEventInfo(), and DQMProvInfo().

std::string DQMProvInfo::globalTag_
private

Definition at line 131 of file DQMProvInfo.h.

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

bool DQMProvInfo::globalTagRetrieved_
private

Definition at line 132 of file DQMProvInfo.h.

Referenced by analyzeProvInfo(), and DQMProvInfo().

MonitorElement* DQMProvInfo::hBeamMode_
private

Definition at line 117 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsLhcInfo().

MonitorElement* DQMProvInfo::hHltKey_
private

Definition at line 135 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::hIntensity1_
private

Definition at line 119 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsLhcInfo().

MonitorElement* DQMProvInfo::hIntensity2_
private

Definition at line 120 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsLhcInfo().

MonitorElement* DQMProvInfo::hIsCollisionsRun_
private

Definition at line 138 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::hLhcFill_
private

Definition at line 121 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsLhcInfo().

std::string DQMProvInfo::hltKey_
private

Definition at line 136 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo(), and dqmBeginRun().

MonitorElement* DQMProvInfo::hMomentum_
private

Definition at line 122 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsLhcInfo().

MonitorElement* DQMProvInfo::hostName_
private

Definition at line 137 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

const int DQMProvInfo::MAX_DCS_VBINS = 27
staticprivate

Definition at line 87 of file DQMProvInfo.h.

Referenced by analyzeEventInfo(), and fillDcsBitsFromDcsStatusCollection().

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

Definition at line 98 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo().

const int DQMProvInfo::MAX_VBINS = 31
staticprivate

Definition at line 94 of file DQMProvInfo.h.

Referenced by blankAllLumiSections(), and bookHistogramsEventInfo().

const int DQMProvInfo::MOMENTUM_OFFSET = 1
staticprivate

Definition at line 106 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo().

MonitorElement* DQMProvInfo::processId_
private

Definition at line 139 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

std::string DQMProvInfo::provinfofolder_
private

Definition at line 110 of file DQMProvInfo.h.

Referenced by bookHistograms(), and DQMProvInfo().

MonitorElement* DQMProvInfo::reportSummary_
private

Definition at line 125 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsEventInfo().

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

Definition at line 134 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo(), and DQMProvInfo().

std::string DQMProvInfo::subsystemname_
private

Definition at line 109 of file DQMProvInfo.h.

Referenced by bookHistograms(), and DQMProvInfo().

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

Definition at line 113 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_GEM_M = 27
staticprivate
const int DQMProvInfo::VBIN_GEM_P = 26
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 = 29
staticprivate

Definition at line 90 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsEventInfo().

const int DQMProvInfo::VBIN_PHYSICS_DECLARED = 28
staticprivate

Definition at line 89 of file DQMProvInfo.h.

Referenced by analyzeEventInfo(), and bookHistogramsEventInfo().

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

Definition at line 91 of file DQMProvInfo.h.

Referenced by analyzeLhcInfo(), and bookHistogramsEventInfo().

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 = 31
staticprivate

Definition at line 92 of file DQMProvInfo.h.

Referenced by bookHistogramsEventInfo(), and setupLumiSection().

const int DQMProvInfo::VBIN_ZDC = 25
staticprivate
MonitorElement* DQMProvInfo::versCMSSW_
private

Definition at line 129 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::versGlobaltag_
private

Definition at line 130 of file DQMProvInfo.h.

Referenced by analyzeProvInfo(), and bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::versRuntype_
private

Definition at line 133 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().

MonitorElement* DQMProvInfo::workingDir_
private

Definition at line 140 of file DQMProvInfo.h.

Referenced by bookHistogramsProvInfo().