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  * Improved by: S. Di Guida - INFN and Marconi University
5  */
6 
7 #include "DQMProvInfo.h"
8 #include <TSystem.h>
14 
15 // The LHC beam info used to come from FED812, but since the new TCDS this
16 // info is in FED1024. We retrieve the BST record from the TCDS digis, and
17 // we get the LHC beam info using a dedicated data format.
18 
19 const int DQMProvInfo::MAX_VBINS;
20 const int DQMProvInfo::MAX_LUMIS;
21 
22 // Constructor
24  // Initialization of DQM parameters
26  ps.getUntrackedParameter<std::string>("subSystemFolder", "Info");
28  ps.getUntrackedParameter<std::string>("provInfoFolder", "ProvInfo");
29  runType_ =
30  ps.getUntrackedParameter<std::string>("runType", "No run type selected");
31 
32  // Initialization of the input
33  // Used to get the DCS bits:
35  consumes<DcsStatusCollection>(ps.getUntrackedParameter<std::string>(
36  "dcsStatusCollection", "scalersRawToDigi"));
37  // Used to get the BST record from the TCDS information
38  bstrecord_ = consumes<BSTRecord>(ps.getUntrackedParameter<edm::InputTag>("bstData", edm::InputTag("tcdsDigis","bstRecord")));
39  // Initialization of the global tag
40  globalTag_ = "MODULE::DEFAULT"; // default
41  globalTagRetrieved_ = false; // set as soon as retrieved from first event
42 
43  // Initialization of run scope variables
44  previousLSNumber_ = 0; // Previous LS compared to current, initializing at 0
45 }
46 
47 // Destructor
49 
51  const edm::EventSetup& iEventSetup) {
52  // Here we do everything that needs to be done before the booking
53  // Getting the HLT key from HLTConfigProvider:
54  hltKey_ = "";
55  HLTConfigProvider hltConfig;
56  bool changed(true);
57  if (!hltConfig.init(iRun, iEventSetup, "HLT", changed)) {
58  edm::LogInfo("DQMProvInfo") << "errorHltConfigExtraction" << std::endl;
59  hltKey_ = "error extraction";
60  } else if (hltConfig.size() <= 0) {
61  edm::LogInfo("DQMProvInfo") << "hltConfig" << std::endl;
62  hltKey_ = "error key of length 0";
63  } else {
64  edm::LogInfo("DQMProvInfo") << "HLT key (run): " << hltConfig.tableName()
65  << std::endl;
66  hltKey_ = hltConfig.tableName();
67  }
68 }
69 
71  edm::Run const& iRun,
72  edm::EventSetup const& iEventSetup) {
73  iBooker.cd();
74  // This module will create elements in 3 different folders:
75  // - Info/LhcInfo
76  // - Info/EventInfo
77  // - Info/ProvInfo
78  // (string "Info" configurable through subsystemname_)
79  // (string "Provinfo" configurable through provinfofolder_)
80  iBooker.setCurrentFolder(subsystemname_ + "/LhcInfo/");
81  bookHistogramsLhcInfo(iBooker);
82 
83  iBooker.setCurrentFolder(subsystemname_ + "/EventInfo/");
84  bookHistogramsEventInfo(iBooker);
85 
87  bookHistogramsProvInfo(iBooker);
88 }
89 
91  // Element: beamMode
92  // Beam parameters provided by BST are defined in:
93  // https://edms.cern.ch/document/638899/2.0
94  hBeamMode_ =
95  iBooker.book1D("beamMode", "beamMode", MAX_LUMIS, 1., MAX_LUMIS + 1);
96  hBeamMode_->getTH1F()->GetYaxis()->Set(21, 0.5, 21.5);
97  hBeamMode_->getTH1F()->SetMaximum(21.5);
98  hBeamMode_->getTH1F()->SetCanExtend(TH1::kAllAxes);
99  hBeamMode_->setBinContent(0., 22.); // Not clear, remove when testable
100 
101  hBeamMode_->setAxisTitle("Luminosity Section", 1);
102  hBeamMode_->setBinLabel(1, "no mode", 2);
103  hBeamMode_->setBinLabel(2, "setup", 2);
104  hBeamMode_->setBinLabel(3, "inj pilot", 2);
105  hBeamMode_->setBinLabel(4, "inj intr", 2);
106  hBeamMode_->setBinLabel(5, "inj nomn", 2);
107  hBeamMode_->setBinLabel(6, "pre ramp", 2);
108  hBeamMode_->setBinLabel(7, "ramp", 2);
109  hBeamMode_->setBinLabel(8, "flat top", 2);
110  hBeamMode_->setBinLabel(9, "squeeze", 2);
111  hBeamMode_->setBinLabel(10, "adjust", 2);
112  hBeamMode_->setBinLabel(11, "stable", 2);
113  hBeamMode_->setBinLabel(12, "unstable", 2);
114  hBeamMode_->setBinLabel(13, "beam dump", 2);
115  hBeamMode_->setBinLabel(14, "ramp down", 2);
116  hBeamMode_->setBinLabel(15, "recovery", 2);
117  hBeamMode_->setBinLabel(16, "inj dump", 2);
118  hBeamMode_->setBinLabel(17, "circ dump", 2);
119  hBeamMode_->setBinLabel(18, "abort", 2);
120  hBeamMode_->setBinLabel(19, "cycling", 2);
121  hBeamMode_->setBinLabel(20, "warn b-dump", 2);
122  hBeamMode_->setBinLabel(21, "no beam", 2);
123 
124  // Element: intensity1
125  hIntensity1_ = iBooker.book1D("intensity1", "Intensity Beam 1", MAX_LUMIS, 1.,
126  MAX_LUMIS + 1);
127  hIntensity1_->setAxisTitle("Luminosity Section", 1);
128  hIntensity1_->setAxisTitle("N [E10]", 2);
129  hIntensity1_->getTH1F()->SetCanExtend(TH1::kAllAxes);
130 
131  // Element: intensity2
132  hIntensity2_ = iBooker.book1D("intensity2", "Intensity Beam 2", MAX_LUMIS, 1.,
133  MAX_LUMIS + 1);
134  hIntensity2_->setAxisTitle("Luminosity Section", 1);
135  hIntensity2_->setAxisTitle("N [E10]", 2);
136  hIntensity2_->getTH1F()->SetCanExtend(TH1::kAllAxes);
137 
138  // Element: lhcFill
139  hLhcFill_ = iBooker.book1D("lhcFill", "LHC Fill Number", MAX_LUMIS, 1.,
140  MAX_LUMIS + 1);
141  hLhcFill_->setAxisTitle("Luminosity Section", 1);
142  hLhcFill_->getTH1F()->SetCanExtend(TH1::kAllAxes);
143 
144  // Element: momentum
145  hMomentum_ = iBooker.book1D("momentum", "Beam Energy [GeV]", MAX_LUMIS, 1.,
146  MAX_LUMIS + 1);
147  hMomentum_->setAxisTitle("Luminosity Section", 1);
148  hMomentum_->getTH1F()->SetCanExtend(TH1::kAllAxes);
149 }
150 
152  // Element: reportSummary
153  reportSummary_ = iBooker.bookFloat("reportSummary");
154 
155  // Element: reportSummaryMap (this is the famous HV plot)
156  reportSummaryMap_ = iBooker.book2D(
157  "reportSummaryMap", "DCS HV Status and Beam Status per Lumisection",
159  reportSummaryMap_->setAxisTitle("Luminosity Section");
160  reportSummaryMap_->getTH2F()->SetCanExtend(TH1::kAllAxes);
161 
191 }
192 
194  // Note: Given that all these elements are only filled once per run, they
195  // are filled here right away. (except for isCollisionsRun)
196 
197  // Element: CMMSW
198  versCMSSW_ = iBooker.bookString("CMSSW", edm::getReleaseVersion().c_str());
199 
200  // Element: Globaltag
201  versGlobaltag_ = iBooker.bookString("Globaltag", globalTag_);
202 
203  // Element: RunType
204  versRuntype_ = iBooker.bookString("Run Type", runType_);
205 
206  // Element: hltKey
207  hHltKey_ = iBooker.bookString("hltKey", hltKey_);
208 
209  // Element: hostName
210  hostName_ = iBooker.bookString("hostName", gSystem->HostName());
211 
212  // Element: isCollisionsRun (filled for real in EndLumi)
213  hIsCollisionsRun_ = iBooker.bookInt("isCollisionsRun");
215 
216  // Element: processID
217  processId_ = iBooker.bookInt("processID");
218  processId_->Fill(gSystem->GetPid());
219 
220  // Element: workingDir
221  workingDir_ = iBooker.bookString("workingDir", gSystem->pwd());
222 }
223 
225  const edm::EventSetup& c) {
226  // By default we set the Physics Declared bit to false at the beginning of
227  // every LS
228  physicsDeclared_ = false;
229  // Boolean that tells the analyse method that we encountered the first real
230  // dcs info
232  // By default we set all the DCS bits to false at the beginning of every LS
233  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
234  dcsBits_[vbin] = false;
235  }
236  // Boolean that tells the analyse method that we encountered the first real
237  // dcs info
238  foundFirstDcsBits_ = false;
239 }
240 
242  // This happens on an event by event base
243  // We extract information from events, placing them in local variables
244  // and then at the end of each lumisection, we fill them in the MonitorElement
245  // (Except for the global tag, which we only extract from the first event we
246  // ever encounter and put in the MonitorElement right away)
247  analyzeLhcInfo(event);
248  analyzeEventInfo(event);
249  analyzeProvInfo(event);
250 }
251 
253  edm::Handle<BSTRecord> bstData;
254  event.getByToken( bstrecord_, bstData );
255  // We unpack the BST record from TCDS
256  if( bstData.isValid() ) {
257  //and we look at the BST information
258  lhcFill_ = static_cast<int>( bstData->lhcFill() );
259  beamMode_ = static_cast<int>( bstData->beamMode() );
260  momentum_ = static_cast<int>( bstData->beamMomentum() );
261  intensity1_ = static_cast<int>( bstData->intensityBeam1() );
262  intensity2_ = static_cast<int>( bstData->intensityBeam2() );
263  } else {
264  edm::LogWarning("DQMProvInfo") << "BST Record from TCDS Data inaccessible.";
265  }
266 }
267 
269  // Part 1:
270  // Extract the DcsStatusCollection from the event
271  // and put it into the dcsBits_ array
273  event.getByToken(dcsStatusCollection_, dcsStatus);
274  // Loop over the DCSStatus entries in the DcsStatusCollection
275  // (Typically there is only one)
276  for (DcsStatusCollection::const_iterator dcsStatusItr = dcsStatus->begin();
277  dcsStatusItr != dcsStatus->end(); ++dcsStatusItr) {
278  // By default all the bits are false. We put all the bits on true only
279  // for the first DCSStatus that we encounter:
280  if (!foundFirstDcsBits_) {
281  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
282  dcsBits_[vbin] = true;
283  }
284  foundFirstDcsBits_ = true;
285  }
286  // By default Physics Declared is false. We put it on true only for the
287  // first DCSStatus that we encounter:
289  physicsDeclared_ = true;
291  }
292 
293  // The DCS on lumi level is considered ON if the bit is set in EVERY event
294  dcsBits_[VBIN_CSC_P] &= dcsStatusItr->ready(DcsStatus::CSCp);
295  dcsBits_[VBIN_CSC_M] &= dcsStatusItr->ready(DcsStatus::CSCm);
296  dcsBits_[VBIN_DT_0] &= dcsStatusItr->ready(DcsStatus::DT0);
297  dcsBits_[VBIN_DT_P] &= dcsStatusItr->ready(DcsStatus::DTp);
298  dcsBits_[VBIN_DT_M] &= dcsStatusItr->ready(DcsStatus::DTm);
299  dcsBits_[VBIN_EB_P] &= dcsStatusItr->ready(DcsStatus::EBp);
300  dcsBits_[VBIN_EB_M] &= dcsStatusItr->ready(DcsStatus::EBm);
301  dcsBits_[VBIN_EE_P] &= dcsStatusItr->ready(DcsStatus::EEp);
302  dcsBits_[VBIN_EE_M] &= dcsStatusItr->ready(DcsStatus::EEm);
303  dcsBits_[VBIN_ES_P] &= dcsStatusItr->ready(DcsStatus::ESp);
304  dcsBits_[VBIN_ES_M] &= dcsStatusItr->ready(DcsStatus::ESm);
305  dcsBits_[VBIN_HBHE_A] &= dcsStatusItr->ready(DcsStatus::HBHEa);
306  dcsBits_[VBIN_HBHE_B] &= dcsStatusItr->ready(DcsStatus::HBHEb);
307  dcsBits_[VBIN_HBHE_C] &= dcsStatusItr->ready(DcsStatus::HBHEc);
308  dcsBits_[VBIN_HF] &= dcsStatusItr->ready(DcsStatus::HF);
309  dcsBits_[VBIN_HO] &= dcsStatusItr->ready(DcsStatus::HO);
310  dcsBits_[VBIN_BPIX] &= dcsStatusItr->ready(DcsStatus::BPIX);
311  dcsBits_[VBIN_FPIX] &= dcsStatusItr->ready(DcsStatus::FPIX);
312  dcsBits_[VBIN_RPC] &= dcsStatusItr->ready(DcsStatus::RPC);
313  dcsBits_[VBIN_TIBTID] &= dcsStatusItr->ready(DcsStatus::TIBTID);
314  dcsBits_[VBIN_TOB] &= dcsStatusItr->ready(DcsStatus::TOB);
315  dcsBits_[VBIN_TEC_P] &= dcsStatusItr->ready(DcsStatus::TECp);
316  dcsBits_[VBIN_TE_M] &= dcsStatusItr->ready(DcsStatus::TECm);
317  dcsBits_[VBIN_CASTOR] &= dcsStatusItr->ready(DcsStatus::CASTOR);
318  dcsBits_[VBIN_ZDC] &= dcsStatusItr->ready(DcsStatus::ZDC);
319  // Some info-level logging
320  edm::LogInfo("DQMProvInfo") << "DCS status: 0x" << std::hex
321  << dcsStatusItr->ready() << std::dec
322  << std::endl;
323  }
324 
325  // Part 2
326  // Compute the PhysicsDeclared bit from the event
327  // The bit is set to to true if:
328  // - the LHC is in stable beams
329  // - all the pixel and strips partitions have DCSStatus ON
330  // - at least one muon partition has DCSStatus ON
331  // Basically: we do an AND of the physicsDeclared of ALL events.
332  // As soon as one value is not "1", physicsDeclared_ becomes false.
333  physicsDeclared_ &= ( beamMode_ == 11 )
338  || dcsBits_[VBIN_RPC] );
339  // Some info-level logging
340  edm::LogInfo("DQMProvInfo") << "Physics declared bit: "
341  << physicsDeclared_ << std::endl;
342 }
343 
345  // Only trying to retrieve the global tag for the first event we ever
346  // encounter.
347  if (!globalTagRetrieved_) {
348  // Getting the real process name for the given event
350  event.processHistory()[event.processHistory().size() - 1].processName();
351  // Getting parameters for that process
353  event.getProcessParameterSet(processName, ps);
354  // Getting the global tag
355  globalTag_ = ps.getParameterSet("PoolDBESSource@GlobalTag")
356  .getParameter<std::string>("globaltag");
358  // Finaly: Setting globalTagRetrieved_ to true, since we got it now
359  globalTagRetrieved_ = true;
360  }
361 }
362 
364  const edm::EventSetup& c) {
365  int currentLSNumber = iLumi.id().luminosityBlock();
366 
367  // We assume that we encounter the LumiSections in chronological order
368  // We only process a LS if it's greater than the previous one:
369  if (currentLSNumber > previousLSNumber_) {
370  endLuminosityBlockLhcInfo(currentLSNumber);
371  endLuminosityBlockEventInfo(currentLSNumber);
372  }
373 
374  // Set current LS number as previous number for the next cycle:
375  previousLSNumber_ = currentLSNumber;
376 }
377 
378 void DQMProvInfo::endLuminosityBlockLhcInfo(const int currentLSNumber) {
379  // Quite straightforward: Fill in the value for the LS in each plot:
380  hBeamMode_->setBinContent(currentLSNumber, beamMode_);
381  hIntensity1_->setBinContent(currentLSNumber, intensity1_);
382  hIntensity2_->setBinContent(currentLSNumber, intensity2_);
383  hLhcFill_->setBinContent(currentLSNumber, lhcFill_);
384  hMomentum_->setBinContent(currentLSNumber, momentum_);
385 }
386 
387 void DQMProvInfo::endLuminosityBlockEventInfo(const int currentLSNumber) {
388  // If we skipped LumiSections, we make them "white"
389  blankPreviousLumiSections(currentLSNumber);
390 
391  // We set the top value to "Valid" to 1 for each LS we end
392  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_VALID, 1.);
393 
394  // Part 1: Physics declared bit in y bin VBIN_PHYSICS_DECLARED
395  // This also is used as the global value of the summary.
396  if (physicsDeclared_) {
397  reportSummary_->Fill(1.);
399  1.);
400  } else {
401  reportSummary_->Fill(0.);
403  0.);
404  }
405 
406  // Part2: DCS bits in y bins 1 to MAX_DCS_VBINS
407  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
408  if (dcsBits_[vbin]) {
409  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 1.);
410  } else {
411  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 0.);
412  }
413  }
414 
415  // Part3: Using LHC status info, fill in VBIN_MOMENTUM and VBIN_STABLE_BEAM
416  // Fill 13 TeV bit in y bin VBIN_MOMENTUM
418  reportSummary_->Fill(1.);
419  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_MOMENTUM, 1.);
420  } else {
421  reportSummary_->Fill(0.);
422  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_MOMENTUM, 0.);
423  }
424 
425  // Fill stable beams bit in y bin VBIN_STABLE_BEAM
426  if (beamMode_ == 11) {
428  reportSummary_->Fill(1.);
429  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_STABLE_BEAM, 1.);
430  } else {
431  reportSummary_->Fill(0.);
432  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_STABLE_BEAM, 0.);
433  }
434 }
435 
436 void DQMProvInfo::blankPreviousLumiSections(const int currentLSNumber) {
437  // In case we skipped lumisections, the current lumisection number will be
438  // more than the previous lumisection number + 1.
439  // We paint all the skipped lumisections completely white (-1), except for
440  // the top flag (the "valid" flag), which we paint red (0).
441  for (int ls = previousLSNumber_ + 1; ls < currentLSNumber; ls++) {
442  // Color the "Valid" bin red (0)
444  // Color all the other bins white (-1)
445  for (int vBin = 1; vBin < VBIN_VALID; vBin++) {
446  reportSummaryMap_->setBinContent(ls, vBin, -1.);
447  }
448  }
449 }
unsigned int size() const
number of trigger paths in trigger table
LuminosityBlockID id() const
void endLuminosityBlockEventInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:387
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:113
void setBinContent(int binx, double content)
set content of bin (1-D)
int previousLSNumber_
Definition: DQMProvInfo.h:127
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:117
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:224
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:125
void analyzeEventInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:268
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:121
static const int VBIN_EE_P
Definition: DQMProvInfo.h:62
MonitorElement * workingDir_
Definition: DQMProvInfo.h:145
void cd(void)
Definition: DQMStore.cc:269
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:109
bool foundFirstDcsBits_
Definition: DQMProvInfo.h:131
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)
edm::EDGetTokenT< BSTRecord > bstrecord_
Definition: DQMProvInfo.h:110
static const int VBIN_VALID
Definition: DQMProvInfo.h:89
const std::string & tableName() const
HLT ConfDB table name.
MonitorElement * processId_
Definition: DQMProvInfo.h:144
unsigned int const intensityBeam2() const
Definition: BSTRecord.h:56
MonitorElement * hHltKey_
Definition: DQMProvInfo.h:140
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:135
unsigned short const beamMomentum() const
Definition: BSTRecord.h:52
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:78
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:67
static const int VBIN_EE_M
Definition: DQMProvInfo.h:63
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:68
bool globalTagRetrieved_
Definition: DQMProvInfo.h:137
void Fill(long long x)
static const int VBIN_HO
Definition: DQMProvInfo.h:70
std::string globalTag_
Definition: DQMProvInfo.h:136
static const int VBIN_DT_0
Definition: DQMProvInfo.h:57
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:76
void bookHistogramsEventInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:151
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:56
MonitorElement * versRuntype_
Definition: DQMProvInfo.h:138
static const int VBIN_TOB
Definition: DQMProvInfo.h:75
static const int VBIN_FPIX
Definition: DQMProvInfo.h:72
static const int MAX_LUMIS
Definition: DQMProvInfo.h:52
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
static const int VBIN_DT_M
Definition: DQMProvInfo.h:59
static const int VBIN_MOMENTUM
Definition: DQMProvInfo.h:87
void bookHistogramsProvInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:193
bool isValid() const
Definition: HandleBase.h:74
void bookHistogramsLhcInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:90
bool foundFirstPhysicsDeclared_
Definition: DQMProvInfo.h:129
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:344
static const int MAX_MOMENTUM
Definition: DQMProvInfo.h:95
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:50
static const int MAX_VBINS
Definition: DQMProvInfo.h:91
unsigned int const lhcFill() const
Definition: BSTRecord.h:44
std::string subsystemname_
Definition: DQMProvInfo.h:106
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:119
std::string getReleaseVersion()
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:88
void blankPreviousLumiSections(const int currentLSNumber)
Definition: DQMProvInfo.cc:436
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:74
def ls(path, rec=False)
Definition: eostools.py:348
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:241
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
virtual ~DQMProvInfo()
Definition: DQMProvInfo.cc:48
static const int VBIN_EB_P
Definition: DQMProvInfo.h:60
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
ParameterSet const & getParameterSet(std::string const &) const
static const int VBIN_BPIX
Definition: DQMProvInfo.h:71
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:252
unsigned short const beamMode() const
Definition: BSTRecord.h:46
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:115
static const int VBIN_TE_M
Definition: DQMProvInfo.h:77
TH1F * getTH1F(void) const
LuminosityBlockNumber_t luminosityBlock() const
static const int VBIN_RPC
Definition: DQMProvInfo.h:73
MonitorElement * versCMSSW_
Definition: DQMProvInfo.h:134
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:143
std::string runType_
Definition: DQMProvInfo.h:139
unsigned int const intensityBeam1() const
Definition: BSTRecord.h:54
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:84
static const int VBIN_ZDC
Definition: DQMProvInfo.h:79
DQMProvInfo(const edm::ParameterSet &ps)
Definition: DQMProvInfo.cc:23
static const int VBIN_ES_P
Definition: DQMProvInfo.h:64
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DQMProvInfo.cc:70
std::string hltKey_
Definition: DQMProvInfo.h:141
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:55
static const int VBIN_DT_P
Definition: DQMProvInfo.h:58
static const int VBIN_ES_M
Definition: DQMProvInfo.h:65
MonitorElement * bookFloat(Args &&...args)
Definition: DQMStore.h:109
std::string provinfofolder_
Definition: DQMProvInfo.h:107
static const int MOMENTUM_OFFSET
Definition: DQMProvInfo.h:103
bool physicsDeclared_
Definition: DQMProvInfo.h:128
TH2F * getTH2F(void) const
static const int VBIN_HF
Definition: DQMProvInfo.h:69
void endLuminosityBlockLhcInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:378
MonitorElement * hostName_
Definition: DQMProvInfo.h:142
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:363
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:66
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:61
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:130
Definition: event.py:1
Definition: Run.h:42
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:126
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:86