CMS 3D CMS Logo

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_ = "";
69  HLTConfigProvider hltConfig;
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
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:237
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:269
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:99
bool foundFirstDcsBits_
Definition: DQMProvInfo.h:124
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)
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
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
void bookHistogramsLhcInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:104
bool foundFirstPhysicsDeclared_
Definition: DQMProvInfo.h:122
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:360
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:64
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
def ls(path, rec=False)
Definition: eostools.py:348
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:254
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
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
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 "physics declared" bit
Definition: L1GtFdlWord.h:227
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
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:379
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: event.py:1
Definition: Run.h:42
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:119
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:88