CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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  * 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
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 }
46 
47 // Destructor
48 DQMProvInfo::~DQMProvInfo() = default;
49 
50 void DQMProvInfo::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iEventSetup) {
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 }
67 
68 void DQMProvInfo::bookHistograms(DQMStore::IBooker& iBooker, edm::Run const& iRun, edm::EventSetup const& iEventSetup) {
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 }
85 
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 }
136 
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 }
186 
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 }
217 
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
227 
228  analyzeLhcInfo(event);
229  analyzeEventInfo(event);
230  analyzeProvInfo(event);
231 }
232 
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 }
274 
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 }
322 
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 }
339 
340 void DQMProvInfo::fillDcsBitsFromDCSRecord(const DCSRecord& dcsRecord, bool* dcsBits) {
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 }
369 
371  bool* dcsBits) {
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 }
416 
417 bool DQMProvInfo::isPhysicsDeclared(bool* dcsBits) {
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 }
431 
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 }
442 
443 void DQMProvInfo::fillSummaryMapBin(int ls, int bin, double value) {
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) {
450  reportSummaryMap_->setBinContent(ls, bin, value);
451  } else if (value < current) {
452  reportSummaryMap_->setBinContent(ls, bin, value);
453  } // else: ignore, keep min value.
454 }
455 
456 void DQMProvInfo::setupLumiSection(int currentLSNumber) {
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 }
unsigned int size() const
number of trigger paths in trigger table
void fillSummaryMapBin(int ls, int bin, double value)
Definition: DQMProvInfo.cc:443
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:117
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
const edm::EventSetup & c
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:120
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:125
void analyzeEventInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:275
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
static const int VBIN_GEM_P
Definition: DQMProvInfo.h:81
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:122
static const int VBIN_EE_P
Definition: DQMProvInfo.h:63
MonitorElement * workingDir_
Definition: DQMProvInfo.h:140
static const int VBIN_GEM_M
Definition: DQMProvInfo.h:82
void fillDcsBitsFromDcsStatusCollection(const edm::Handle< DcsStatusCollection > &, bool *dcsBits)
Definition: DQMProvInfo.cc:370
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:112
def ls
Definition: eostools.py:349
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: DQMProvInfo.h:114
static const int VBIN_VALID
Definition: DQMProvInfo.h:92
const std::string & tableName() const
HLT ConfDB table name.
Class to contain DCS information from soft FED 1022.
Definition: DCSRecord.h:20
MonitorElement * processId_
Definition: DQMProvInfo.h:139
MonitorElement * hHltKey_
Definition: DQMProvInfo.h:135
Log< level::Error, false > LogError
void blankAllLumiSections()
Definition: DQMProvInfo.cc:432
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:130
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
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
MonitorElement * bookString(TString const &name, TString const &value, FUNC onbooking=NOOP())
Definition: DQMStore.h:87
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:69
bool globalTagRetrieved_
Definition: DQMProvInfo.h:132
static const int VBIN_HO
Definition: DQMProvInfo.h:71
void Fill(long long x)
std::string globalTag_
Definition: DQMProvInfo.h:131
static const int VBIN_DT_0
Definition: DQMProvInfo.h:58
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:77
void bookHistogramsEventInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:137
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:57
MonitorElement * versRuntype_
Definition: DQMProvInfo.h:133
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
void bookHistogramsProvInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:187
bool isValid() const
Definition: HandleBase.h:70
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)
virtual double getBinContent(int binx) const
get content of bin (1-D)
void bookHistogramsLhcInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:86
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:323
static const int MAX_MOMENTUM
Definition: DQMProvInfo.h:98
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:50
#define BPIX
static const int MAX_VBINS
Definition: DQMProvInfo.h:94
std::string subsystemname_
Definition: DQMProvInfo.h:109
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:121
std::string getReleaseVersion()
Log< level::Info, false > LogInfo
void fillDcsBitsFromDCSRecord(const DCSRecord &, bool *dcsBits)
Definition: DQMProvInfo.cc:340
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:91
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:75
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:218
static const int VBIN_EB_P
Definition: DQMProvInfo.h:61
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
ParameterSet const & getParameterSet(std::string const &) const
static const int VBIN_BPIX
Definition: DQMProvInfo.h:72
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:233
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:119
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
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
static const int VBIN_TE_M
Definition: DQMProvInfo.h:78
MonitorElement * bookInt(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:73
static const int VBIN_RPC
Definition: DQMProvInfo.h:74
MonitorElement * versCMSSW_
Definition: DQMProvInfo.h:129
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:138
std::string runType_
Definition: DQMProvInfo.h:134
edm::EDGetTokenT< TCDSRecord > tcdsrecord_
Definition: DQMProvInfo.h:113
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:87
static const int VBIN_ZDC
Definition: DQMProvInfo.h:80
DQMProvInfo(const edm::ParameterSet &ps)
Definition: DQMProvInfo.cc:23
edm::EventID id() const
Definition: EventBase.h:59
static const int VBIN_ES_P
Definition: DQMProvInfo.h:65
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DQMProvInfo.cc:68
std::string hltKey_
Definition: DQMProvInfo.h:136
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:56
bool isPhysicsDeclared(bool *dcsBits)
Definition: DQMProvInfo.cc:417
static const int VBIN_DT_P
Definition: DQMProvInfo.h:59
static const int VBIN_ES_M
Definition: DQMProvInfo.h:66
Log< level::Warning, false > LogWarning
std::string provinfofolder_
Definition: DQMProvInfo.h:110
static const int MOMENTUM_OFFSET
Definition: DQMProvInfo.h:106
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
void setupLumiSection(int ls)
Definition: DQMProvInfo.cc:456
static const int VBIN_HF
Definition: DQMProvInfo.h:70
MonitorElement * hostName_
Definition: DQMProvInfo.h:137
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
~DQMProvInfo() override
static const int VBIN_EB_M
Definition: DQMProvInfo.h:62
Definition: Run.h:45
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)