CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DQMProvInfo.cc
Go to the documentation of this file.
1 /*
2  * Original author: A. Raval / A. Meyer - DESY
3  * Rewritten by: B. van Besien - CERN
4  */
5 
6 #include "DQMProvInfo.h"
7 #include <TSystem.h>
16 
17 // In this module, the part to get the LHC beam info is currently broken.
18 // Previously this info came from FED812, but since the new TCDS this info is
19 // in FED1024. The general module to decode the info, does however not exist
20 // yet.
21 // We leave the old code here, because we expect a solution to come at some
22 // point and then we can update.
23 // Also note that at the moment we will still create the monitor elements and
24 // book the plots containing the LHC info, but we will simply not fill them.
25 // The 2 lines in the EventInfo (HV) plot which show beam status info will be
26 // hidden.
27 
28 const int DQMProvInfo::MAX_VBINS;
29 const int DQMProvInfo::MAX_LUMIS;
30 
31 // Constructor
33  // Initialization of DQM parameters
35  ps.getUntrackedParameter<std::string>("subSystemFolder", "Info");
37  ps.getUntrackedParameter<std::string>("provInfoFolder", "ProvInfo");
38  runType_ =
39  ps.getUntrackedParameter<std::string>("runType", "No run type selected");
40 
41  // Initialization of the input
42  // Used to get the LHC beam status info, pre 2014-09:
45  // Used to get the DCS bits:
47  consumes<DcsStatusCollection>(ps.getUntrackedParameter<std::string>(
48  "dcsStatusCollection", "scalersRawToDigi"));
49  // Used to get the physics declared bit:
50  L1gt_ = consumes<L1GlobalTriggerReadoutRecord>(
51  ps.getUntrackedParameter<std::string>("L1gt", "gtDigis"));
52 
53  // Initialization of the global tag
54  globalTag_ = "MODULE::DEFAULT"; // default
55  globalTagRetrieved_ = false; // set as soon as retrieved from first event
56 
57  // Initialization of run scope variables
58  previousLSNumber_ = 0; // Previous LS compared to current, initializing at 0
59 }
60 
61 // Destructor
63 
65  const edm::EventSetup& iEventSetup) {
66  // Here we do everything that needs to be done before the booking
67  // Getting the HLT key from HLTConfigProvider:
68  hltKey_ = "";
70  bool changed(true);
71  if (!hltConfig.init(iRun, iEventSetup, "HLT", changed)) {
72  edm::LogInfo("DQMProvInfo") << "errorHltConfigExtraction" << std::endl;
73  hltKey_ = "error extraction";
74  } else if (hltConfig.size() <= 0) {
75  edm::LogInfo("DQMProvInfo") << "hltConfig" << std::endl;
76  hltKey_ = "error key of length 0";
77  } else {
78  edm::LogInfo("DQMProvInfo") << "HLT key (run): " << hltConfig.tableName()
79  << std::endl;
80  hltKey_ = hltConfig.tableName();
81  }
82 }
83 
85  edm::Run const& iRun,
86  edm::EventSetup const& iEventSetup) {
87  iBooker.cd();
88  // This module will create elements in 3 different folders:
89  // - Info/LhcInfo
90  // - Info/EventInfo
91  // - Info/ProvInfo
92  // (string "Info" configurable through subsystemname_)
93  // (string "Provinfo" configurable through provinfofolder_)
94  iBooker.setCurrentFolder(subsystemname_ + "/LhcInfo/");
95  bookHistogramsLhcInfo(iBooker);
96 
97  iBooker.setCurrentFolder(subsystemname_ + "/EventInfo/");
98  bookHistogramsEventInfo(iBooker);
99 
101  bookHistogramsProvInfo(iBooker);
102 }
103 
105  // Element: beamMode
106  hBeamMode_ =
107  iBooker.book1D("beamMode", "beamMode", MAX_LUMIS, 1., MAX_LUMIS + 1);
108  hBeamMode_->getTH1F()->GetYaxis()->Set(21, 0.5, 21.5);
109  hBeamMode_->getTH1F()->SetMaximum(21.5);
110  hBeamMode_->getTH1F()->SetCanExtend(TH1::kAllAxes);
111  hBeamMode_->setBinContent(0., 22.); // Not clear, remove when testable
112 
113  hBeamMode_->setAxisTitle("Luminosity Section", 1);
114  hBeamMode_->setBinLabel(1, "no mode", 2);
115  hBeamMode_->setBinLabel(2, "setup", 2);
116  hBeamMode_->setBinLabel(3, "inj pilot", 2);
117  hBeamMode_->setBinLabel(4, "inj intr", 2);
118  hBeamMode_->setBinLabel(5, "inj nomn", 2);
119  hBeamMode_->setBinLabel(6, "pre ramp", 2);
120  hBeamMode_->setBinLabel(7, "ramp", 2);
121  hBeamMode_->setBinLabel(8, "flat top", 2);
122  hBeamMode_->setBinLabel(9, "squeeze", 2);
123  hBeamMode_->setBinLabel(10, "adjust", 2);
124  hBeamMode_->setBinLabel(11, "stable", 2);
125  hBeamMode_->setBinLabel(12, "unstable", 2);
126  hBeamMode_->setBinLabel(13, "beam dump", 2);
127  hBeamMode_->setBinLabel(14, "ramp down", 2);
128  hBeamMode_->setBinLabel(15, "recovery", 2);
129  hBeamMode_->setBinLabel(16, "inj dump", 2);
130  hBeamMode_->setBinLabel(17, "circ dump", 2);
131  hBeamMode_->setBinLabel(18, "abort", 2);
132  hBeamMode_->setBinLabel(19, "cycling", 2);
133  hBeamMode_->setBinLabel(20, "warn b-dump", 2);
134  hBeamMode_->setBinLabel(21, "no beam", 2);
135 
136  // Element: intensity1
137  hIntensity1_ = iBooker.book1D("intensity1", "Intensity Beam 1", MAX_LUMIS, 1.,
138  MAX_LUMIS + 1);
139  hIntensity1_->setAxisTitle("Luminosity Section", 1);
140  hIntensity1_->setAxisTitle("N [E10]", 2);
141  hIntensity1_->getTH1F()->SetCanExtend(TH1::kAllAxes);
142 
143  // Element: intensity2
144  hIntensity2_ = iBooker.book1D("intensity2", "Intensity Beam 2", MAX_LUMIS, 1.,
145  MAX_LUMIS + 1);
146  hIntensity2_->setAxisTitle("Luminosity Section", 1);
147  hIntensity2_->setAxisTitle("N [E10]", 2);
148  hIntensity2_->getTH1F()->SetCanExtend(TH1::kAllAxes);
149 
150  // Element: lhcFill
151  hLhcFill_ = iBooker.book1D("lhcFill", "LHC Fill Number", MAX_LUMIS, 1.,
152  MAX_LUMIS + 1);
153  hLhcFill_->setAxisTitle("Luminosity Section", 1);
154  hLhcFill_->getTH1F()->SetCanExtend(TH1::kAllAxes);
155 
156  // Element: momentum
157  hMomentum_ = iBooker.book1D("momentum", "Beam Energy [GeV]", MAX_LUMIS, 1.,
158  MAX_LUMIS + 1);
159  hMomentum_->setAxisTitle("Luminosity Section", 1);
160  hMomentum_->getTH1F()->SetCanExtend(TH1::kAllAxes);
161 }
162 
164  // Element: reportSummary
165  reportSummary_ = iBooker.bookFloat("reportSummary");
166 
167  // Element: reportSummaryMap (this is the famous HV plot)
168  reportSummaryMap_ = iBooker.book2D(
170  "reportSummaryMap", "DCS High Voltage Status per Lumisection",
172  reportSummaryMap_->setAxisTitle("Luminosity Section");
173  reportSummaryMap_->getTH2F()->SetCanExtend(TH1::kAllAxes);
174 
201  // reportSummaryMap_->setBinLabel(VBIN_MOMENTUM, "13 TeV", 2);
202  // reportSummaryMap_->setBinLabel(VBIN_STABLE_BEAM, "Stable B", 2);
204 }
205 
207  // Note: Given that all these elements are only filled once per run, they
208  // are filled here right away. (except for isCollisionsRun)
209 
210  // Element: CMMSW
211  versCMSSW_ = iBooker.bookString("CMSSW", edm::getReleaseVersion().c_str());
212 
213  // Element: Globaltag
214  versGlobaltag_ = iBooker.bookString("Globaltag", globalTag_);
215 
216  // Element: RunType
217  versRuntype_ = iBooker.bookString("Run Type", runType_);
218 
219  // Element: hltKey
220  hHltKey_ = iBooker.bookString("hltKey", hltKey_);
221 
222  // Element: hostName
223  hostName_ = iBooker.bookString("hostName", gSystem->HostName());
224 
225  // Element: isCollisionsRun (filled for real in EndLumi)
226  hIsCollisionsRun_ = iBooker.bookInt("isCollisionsRun");
228 
229  // Element: processID
230  processId_ = iBooker.bookInt("processID");
231  processId_->Fill(gSystem->GetPid());
232 
233  // Element: workingDir
234  workingDir_ = iBooker.bookString("workingDir", gSystem->pwd());
235 }
236 
238  const edm::EventSetup& c) {
239  // By default we set the Physics Declared bit to false at the beginning of
240  // every LS
241  physicsDeclared_ = false;
242  // Boolean that tells the analyse method that we encountered the first real
243  // dcs info
245  // By default we set all the DCS bits to false at the beginning of every LS
246  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
247  dcsBits_[vbin] = false;
248  }
249  // Boolean that tells the analyse method that we encountered the first real
250  // dcs info
251  foundFirstDcsBits_ = false;
252 }
253 
255  // This happens on an event by event base
256  // We extract information from events, placing them in local variables
257  // and then at the end of each lumisection, we fill them in the MonitorElement
258  // (Except for the global tag, which we only extract from the first event we
259  // ever encounter and put in the MonitorElement right away)
260  analyzeLhcInfo(event);
261  analyzeEventInfo(event);
262  analyzeProvInfo(event);
263 }
264 
266  // Currently broken, see comments at the top of this file.
283 }
284 
286  // Part 1:
287  // Extract the PhysicsDeclared bit from the event
289  event.getByToken(L1gt_, gtrr_handle);
290  L1GlobalTriggerReadoutRecord const* gtrr = gtrr_handle.product();
291  if (gtrr) {
292  // By default Physics Declared is false. We put it on true only for the
293  // first trigger record that we encounter:
295  physicsDeclared_ = true;
297  }
298  L1GtFdlWord fdlWord = gtrr->gtFdlWord();
299  // Basically: we do an AND of the physicsDeclared of ALL events.
300  // As soon as one value is not "1", physicsDeclared_ becomes false.
301  physicsDeclared_ &= (fdlWord.physicsDeclared() == 1);
302  // cout << "phys decl. bit =" << static_cast<int>(fdlWord.physicsDeclared())
303  // << endl;
304  } else {
305  // If for some reason the record is not accessible, we also revert to false.
306  edm::LogWarning("DQMProvInfo") << "Physics declared bit not accessible!";
307  physicsDeclared_ = false;
308  }
309 
310  // Part 2:
311  // Extract the DcsStatusCollection from the event
312  // and put it into the dcsBits_ array
314  event.getByToken(dcsStatusCollection_, dcsStatus);
315  // Loop over the DCSStatus entries in the DcsStatusCollection
316  // (Typically there is only one)
317  for (DcsStatusCollection::const_iterator dcsStatusItr = dcsStatus->begin();
318  dcsStatusItr != dcsStatus->end(); ++dcsStatusItr) {
319  // By default all the bits are false. We put all the bits on true only
320  // for the first DCSStatus that we encounter:
321  if (!foundFirstDcsBits_) {
322  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
323  dcsBits_[vbin] = true;
324  }
325  foundFirstDcsBits_ = true;
326  }
327  // The DCS on lumi level is considered ON if the bit is set in EVERY event
328  dcsBits_[VBIN_CSC_P] &= dcsStatusItr->ready(DcsStatus::CSCp);
329  dcsBits_[VBIN_CSC_M] &= dcsStatusItr->ready(DcsStatus::CSCm);
330  dcsBits_[VBIN_DT_0] &= dcsStatusItr->ready(DcsStatus::DT0);
331  dcsBits_[VBIN_DT_P] &= dcsStatusItr->ready(DcsStatus::DTp);
332  dcsBits_[VBIN_DT_M] &= dcsStatusItr->ready(DcsStatus::DTm);
333  dcsBits_[VBIN_EB_P] &= dcsStatusItr->ready(DcsStatus::EBp);
334  dcsBits_[VBIN_EB_M] &= dcsStatusItr->ready(DcsStatus::EBm);
335  dcsBits_[VBIN_EE_P] &= dcsStatusItr->ready(DcsStatus::EEp);
336  dcsBits_[VBIN_EE_M] &= dcsStatusItr->ready(DcsStatus::EEm);
337  dcsBits_[VBIN_ES_P] &= dcsStatusItr->ready(DcsStatus::ESp);
338  dcsBits_[VBIN_ES_M] &= dcsStatusItr->ready(DcsStatus::ESm);
339  dcsBits_[VBIN_HBHE_A] &= dcsStatusItr->ready(DcsStatus::HBHEa);
340  dcsBits_[VBIN_HBHE_B] &= dcsStatusItr->ready(DcsStatus::HBHEb);
341  dcsBits_[VBIN_HBHE_C] &= dcsStatusItr->ready(DcsStatus::HBHEc);
342  dcsBits_[VBIN_HF] &= dcsStatusItr->ready(DcsStatus::HF);
343  dcsBits_[VBIN_HO] &= dcsStatusItr->ready(DcsStatus::HO);
344  dcsBits_[VBIN_BPIX] &= dcsStatusItr->ready(DcsStatus::BPIX);
345  dcsBits_[VBIN_FPIX] &= dcsStatusItr->ready(DcsStatus::FPIX);
346  dcsBits_[VBIN_RPC] &= dcsStatusItr->ready(DcsStatus::RPC);
347  dcsBits_[VBIN_TIBTID] &= dcsStatusItr->ready(DcsStatus::TIBTID);
348  dcsBits_[VBIN_TOB] &= dcsStatusItr->ready(DcsStatus::TOB);
349  dcsBits_[VBIN_TEC_P] &= dcsStatusItr->ready(DcsStatus::TECp);
350  dcsBits_[VBIN_TE_M] &= dcsStatusItr->ready(DcsStatus::TECm);
351  dcsBits_[VBIN_CASTOR] &= dcsStatusItr->ready(DcsStatus::CASTOR);
352  dcsBits_[VBIN_ZDC] &= dcsStatusItr->ready(DcsStatus::ZDC);
353  // Some info-level logging
354  edm::LogInfo("DQMProvInfo") << "DCS status: 0x" << std::hex
355  << dcsStatusItr->ready() << std::dec
356  << std::endl;
357  }
358 }
359 
361  // Only trying to retrieve the global tag for the first event we ever
362  // encounter.
363  if (!globalTagRetrieved_) {
364  // Getting the real process name for the given event
366  event.processHistory()[event.processHistory().size() - 1].processName();
367  // Getting parameters for that process
369  event.getProcessParameterSet(processName, ps);
370  // Getting the global tag
371  globalTag_ = ps.getParameterSet("PoolDBESSource@GlobalTag")
372  .getParameter<std::string>("globaltag");
374  // Finaly: Setting globalTagRetrieved_ to true, since we got it now
375  globalTagRetrieved_ = true;
376  }
377 }
378 
380  const edm::EventSetup& c) {
381  int currentLSNumber = iLumi.id().luminosityBlock();
382 
383  // We assume that we encounter the LumiSections in chronological order
384  // We only process a LS if it's greater than the previous one:
385  if (currentLSNumber > previousLSNumber_) {
386  endLuminosityBlockLhcInfo(currentLSNumber);
387  endLuminosityBlockEventInfo(currentLSNumber);
388  }
389 
390  // Set current LS number as previous number for the next cycle:
391  previousLSNumber_ = currentLSNumber;
392 }
393 
394 void DQMProvInfo::endLuminosityBlockLhcInfo(const int currentLSNumber) {
395  // Quite straightforward: Fill in the value for the LS in each plot:
396  hBeamMode_->setBinContent(currentLSNumber, beamMode_);
397  hIntensity1_->setBinContent(currentLSNumber, intensity1_);
398  hIntensity2_->setBinContent(currentLSNumber, intensity2_);
399  hLhcFill_->setBinContent(currentLSNumber, lhcFill_);
400  hMomentum_->setBinContent(currentLSNumber, momentum_);
401 }
402 
403 void DQMProvInfo::endLuminosityBlockEventInfo(const int currentLSNumber) {
404  // If we skipped LumiSections, we make them "white"
405  blankPreviousLumiSections(currentLSNumber);
406 
407  // We set the top value to "Valid" to 1 for each LS we end
408  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_VALID, 1.);
409 
410  // Part 1: Physics declared bit in y bin VBIN_PHYSICS_DECLARED
411  // This also is used as the global value of the summary.
412  if (physicsDeclared_) {
413  reportSummary_->Fill(1.);
415  1.);
416  } else {
417  reportSummary_->Fill(0.);
419  0.);
420  }
421 
422  // Part2: DCS bits in y bins 1 to MAX_DCS_VBINS
423  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
424  if (dcsBits_[vbin]) {
425  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 1.);
426  } else {
427  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 0.);
428  }
429  }
430 
431  // Part3: Using LHC status info, fill in VBIN_MOMENTUM and VBIN_STABLE_BEAM
432 
433  // Fill ? TeV bit in y bin VBIN_MOMENTUM
434  // When we get this working again, we have to understand which momentum we
435  // actually receive.
443 
444  // Fill stable beams bit in y bin VBIN_STABLE_BEAM
453 }
454 
455 void DQMProvInfo::blankPreviousLumiSections(const int currentLSNumber) {
456  // In case we skipped lumisections, the current lumisection number will be
457  // more than the previous lumisection number + 1.
458  // We paint all the skipped lumisections completely white (-1), except for
459  // the top flag (the "valid" flag), which we paint red (0).
460  for (int ls = previousLSNumber_ + 1; ls < currentLSNumber; ls++) {
461  // Color the "Valid" bin red (0)
463  // Color all the other bins white (-1)
464  for (int vBin = 1; vBin < VBIN_VALID; vBin++) {
465  reportSummaryMap_->setBinContent(ls, vBin, -1.);
466  }
467  }
468 }
unsigned int size() const
number of trigger paths in trigger table
LuminosityBlockID id() const
void endLuminosityBlockEventInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:403
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:106
void setBinContent(int binx, double content)
set content of bin (1-D)
int previousLSNumber_
Definition: DQMProvInfo.h:120
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:110
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:118
void analyzeEventInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:285
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:114
static const int VBIN_EE_P
Definition: DQMProvInfo.h:64
MonitorElement * workingDir_
Definition: DQMProvInfo.h:138
void cd(void)
Definition: DQMStore.cc:265
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:99
bool foundFirstDcsBits_
Definition: DQMProvInfo.h:124
def ls
Definition: eostools.py:348
MonitorElement * bookInt(Args &&...args)
Definition: DQMStore.h:103
MonitorElement * bookString(Args &&...args)
Definition: DQMStore.h:97
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c)
Definition: DQMProvInfo.cc:379
static const int VBIN_VALID
Definition: DQMProvInfo.h:91
const std::string & tableName() const
HLT ConfDB table name.
MonitorElement * processId_
Definition: DQMProvInfo.h:137
MonitorElement * hHltKey_
Definition: DQMProvInfo.h:133
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:128
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:80
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:69
static const int VBIN_EE_M
Definition: DQMProvInfo.h:65
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:70
bool globalTagRetrieved_
Definition: DQMProvInfo.h:130
void Fill(long long x)
static const int VBIN_HO
Definition: DQMProvInfo.h:72
void analyze(const edm::Event &e, const edm::EventSetup &c)
Definition: DQMProvInfo.cc:254
std::string globalTag_
Definition: DQMProvInfo.h:129
static const int VBIN_DT_0
Definition: DQMProvInfo.h:59
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:78
void bookHistogramsEventInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:163
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:58
MonitorElement * versRuntype_
Definition: DQMProvInfo.h:131
static const int VBIN_TOB
Definition: DQMProvInfo.h:77
static const int VBIN_FPIX
Definition: DQMProvInfo.h:74
static const int MAX_LUMIS
Definition: DQMProvInfo.h:54
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
static const int VBIN_DT_M
Definition: DQMProvInfo.h:61
void bookHistogramsProvInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:206
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void bookHistogramsLhcInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:104
bool foundFirstPhysicsDeclared_
Definition: DQMProvInfo.h:122
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:360
static const int MAX_VBINS
Definition: DQMProvInfo.h:93
std::string subsystemname_
Definition: DQMProvInfo.h:96
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:112
std::string getReleaseVersion()
void blankPreviousLumiSections(const int currentLSNumber)
Definition: DQMProvInfo.cc:455
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:76
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
virtual ~DQMProvInfo()
Definition: DQMProvInfo.cc:62
T const * product() const
Definition: Handle.h:81
static const int VBIN_EB_P
Definition: DQMProvInfo.h:62
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
ParameterSet const & getParameterSet(std::string const &) const
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c)
Definition: DQMProvInfo.cc:64
static const int VBIN_BPIX
Definition: DQMProvInfo.h:73
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
void analyzeLhcInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:265
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:108
const cms_uint16_t physicsDeclared() const
get/set &quot;physics declared&quot; bit
Definition: L1GtFdlWord.h:227
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c)
Definition: DQMProvInfo.cc:237
static const int VBIN_TE_M
Definition: DQMProvInfo.h:79
TH1F * getTH1F(void) const
LuminosityBlockNumber_t luminosityBlock() const
static const int VBIN_RPC
Definition: DQMProvInfo.h:75
MonitorElement * versCMSSW_
Definition: DQMProvInfo.h:127
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:136
std::string runType_
Definition: DQMProvInfo.h:132
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:86
static const int VBIN_ZDC
Definition: DQMProvInfo.h:81
DQMProvInfo(const edm::ParameterSet &ps)
Definition: DQMProvInfo.cc:32
static const int VBIN_ES_P
Definition: DQMProvInfo.h:66
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DQMProvInfo.cc:84
std::string hltKey_
Definition: DQMProvInfo.h:134
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:57
static const int VBIN_DT_P
Definition: DQMProvInfo.h:60
static const int VBIN_ES_M
Definition: DQMProvInfo.h:67
MonitorElement * bookFloat(Args &&...args)
Definition: DQMStore.h:109
std::string provinfofolder_
Definition: DQMProvInfo.h:97
bool physicsDeclared_
Definition: DQMProvInfo.h:121
TH2F * getTH2F(void) const
static const int VBIN_HF
Definition: DQMProvInfo.h:71
void endLuminosityBlockLhcInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:394
MonitorElement * hostName_
Definition: DQMProvInfo.h:135
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:68
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
static const int VBIN_EB_M
Definition: DQMProvInfo.h:63
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > L1gt_
Definition: DQMProvInfo.h:100
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:123
Definition: Run.h:43
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:119
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:88