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  * 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>(edm::InputTag("onlineMetaDataRawToDigi"));
40 
41  // Initialization of the global tag
42  globalTag_ = "MODULE::DEFAULT"; // default
43  globalTagRetrieved_ = false; // set as soon as retrieved from first event
44 
45  // Initialization of run scope variables
46  previousLSNumber_ = 0; // Previous LS compared to current, initializing at 0
47 }
48 
49 // Destructor
50 DQMProvInfo::~DQMProvInfo() = default;
51 
52 void DQMProvInfo::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iEventSetup) {
53  // Here we do everything that needs to be done before the booking
54  // Getting the HLT key from HLTConfigProvider:
55  hltKey_ = "";
57  bool changed(true);
58  if (!hltConfig.init(iRun, iEventSetup, "HLT", changed)) {
59  edm::LogInfo("DQMProvInfo") << "errorHltConfigExtraction" << std::endl;
60  hltKey_ = "error extraction";
61  } else if (hltConfig.size() <= 0) {
62  edm::LogInfo("DQMProvInfo") << "hltConfig" << std::endl;
63  hltKey_ = "error key of length 0";
64  } else {
65  edm::LogInfo("DQMProvInfo") << "HLT key (run): " << hltConfig.tableName() << std::endl;
66  hltKey_ = hltConfig.tableName();
67  }
68 }
69 
70 void DQMProvInfo::bookHistograms(DQMStore::IBooker& iBooker, edm::Run const& iRun, edm::EventSetup const& iEventSetup) {
71  iBooker.cd();
72  // This module will create elements in 3 different folders:
73  // - Info/LhcInfo
74  // - Info/EventInfo
75  // - Info/ProvInfo
76  // (string "Info" configurable through subsystemname_)
77  // (string "Provinfo" configurable through provinfofolder_)
78  iBooker.setCurrentFolder(subsystemname_ + "/LhcInfo/");
79  bookHistogramsLhcInfo(iBooker);
80 
81  iBooker.setCurrentFolder(subsystemname_ + "/EventInfo/");
82  bookHistogramsEventInfo(iBooker);
83 
85  bookHistogramsProvInfo(iBooker);
86 }
87 
89  // Element: beamMode
90  // Beam parameters provided by BST are defined in:
91  // https://edms.cern.ch/document/638899/2.0
92  hBeamMode_ = iBooker.book1D("beamMode", "beamMode", MAX_LUMIS, 1., MAX_LUMIS + 1);
93  hBeamMode_->getTH1F()->GetYaxis()->Set(21, 0.5, 21.5);
94  hBeamMode_->getTH1F()->SetMaximum(21.5);
95  hBeamMode_->getTH1F()->SetCanExtend(TH1::kAllAxes);
96  hBeamMode_->setBinContent(0., 22.); // Not clear, remove when testable
97 
98  hBeamMode_->setAxisTitle("Luminosity Section", 1);
99  hBeamMode_->setBinLabel(1, "no mode", 2);
100  hBeamMode_->setBinLabel(2, "setup", 2);
101  hBeamMode_->setBinLabel(3, "inj pilot", 2);
102  hBeamMode_->setBinLabel(4, "inj intr", 2);
103  hBeamMode_->setBinLabel(5, "inj nomn", 2);
104  hBeamMode_->setBinLabel(6, "pre ramp", 2);
105  hBeamMode_->setBinLabel(7, "ramp", 2);
106  hBeamMode_->setBinLabel(8, "flat top", 2);
107  hBeamMode_->setBinLabel(9, "squeeze", 2);
108  hBeamMode_->setBinLabel(10, "adjust", 2);
109  hBeamMode_->setBinLabel(11, "stable", 2);
110  hBeamMode_->setBinLabel(12, "unstable", 2);
111  hBeamMode_->setBinLabel(13, "beam dump", 2);
112  hBeamMode_->setBinLabel(14, "ramp down", 2);
113  hBeamMode_->setBinLabel(15, "recovery", 2);
114  hBeamMode_->setBinLabel(16, "inj dump", 2);
115  hBeamMode_->setBinLabel(17, "circ dump", 2);
116  hBeamMode_->setBinLabel(18, "abort", 2);
117  hBeamMode_->setBinLabel(19, "cycling", 2);
118  hBeamMode_->setBinLabel(20, "warn b-dump", 2);
119  hBeamMode_->setBinLabel(21, "no beam", 2);
120 
121  // Element: intensity1
122  hIntensity1_ = iBooker.book1D("intensity1", "Intensity Beam 1", MAX_LUMIS, 1., MAX_LUMIS + 1);
123  hIntensity1_->setAxisTitle("Luminosity Section", 1);
124  hIntensity1_->setAxisTitle("N [E10]", 2);
125  hIntensity1_->getTH1F()->SetCanExtend(TH1::kAllAxes);
126 
127  // Element: intensity2
128  hIntensity2_ = iBooker.book1D("intensity2", "Intensity Beam 2", MAX_LUMIS, 1., MAX_LUMIS + 1);
129  hIntensity2_->setAxisTitle("Luminosity Section", 1);
130  hIntensity2_->setAxisTitle("N [E10]", 2);
131  hIntensity2_->getTH1F()->SetCanExtend(TH1::kAllAxes);
132 
133  // Element: lhcFill
134  hLhcFill_ = iBooker.book1D("lhcFill", "LHC Fill Number", MAX_LUMIS, 1., MAX_LUMIS + 1);
135  hLhcFill_->setAxisTitle("Luminosity Section", 1);
136  hLhcFill_->getTH1F()->SetCanExtend(TH1::kAllAxes);
137 
138  // Element: momentum
139  hMomentum_ = iBooker.book1D("momentum", "Beam Energy [GeV]", MAX_LUMIS, 1., MAX_LUMIS + 1);
140  hMomentum_->setAxisTitle("Luminosity Section", 1);
141  hMomentum_->getTH1F()->SetCanExtend(TH1::kAllAxes);
142 }
143 
145  // Element: reportSummary
146  reportSummary_ = iBooker.bookFloat("reportSummary");
147 
148  // Element: reportSummaryMap (this is the famous HV plot)
149  reportSummaryMap_ = iBooker.book2D("reportSummaryMap",
150  "DCS HV Status and Beam Status per Lumisection",
151  MAX_LUMIS,
152  0,
153  MAX_LUMIS,
154  MAX_VBINS,
155  0.,
156  MAX_VBINS);
157  reportSummaryMap_->setAxisTitle("Luminosity Section");
158  reportSummaryMap_->getTH2F()->SetCanExtend(TH1::kAllAxes);
159 
189 
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  // By default we set the Physics Declared bit to false at the beginning of
226  // every LS
227  physicsDeclared_ = false;
228  // Boolean that tells the analyse method that we encountered the first real
229  // dcs info
231  // By default we set all the DCS bits to false at the beginning of every LS
232  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
233  dcsBits_[vbin] = false;
234  }
235  // Boolean that tells the analyse method that we encountered the first real
236  // dcs info
237  foundFirstDcsBits_ = false;
238 }
239 
241  // This happens on an event by event base
242  // We extract information from events, placing them in local variables
243  // and then at the end of each lumisection, we fill them in the MonitorElement
244  // (Except for the global tag, which we only extract from the first event we
245  // ever encounter and put in the MonitorElement right away)
246 
247  analyzeLhcInfo(event);
248  analyzeEventInfo(event);
249  analyzeProvInfo(event);
250 }
251 
253  edm::Handle<TCDSRecord> tcdsData;
254  event.getByToken(tcdsrecord_, tcdsData);
255  // We unpack the TCDS record from TCDS
256  if (tcdsData.isValid()) {
257  //and we look at the BST information
258  lhcFill_ = static_cast<int>(tcdsData->getBST().getLhcFill());
259  beamMode_ = static_cast<int>(tcdsData->getBST().getBeamMode());
260  momentum_ = static_cast<int>(tcdsData->getBST().getBeamMomentum());
261  intensity1_ = static_cast<int>(tcdsData->getBST().getIntensityBeam1());
262  intensity2_ = static_cast<int>(tcdsData->getBST().getIntensityBeam2());
263  } else {
264  edm::LogWarning("DQMProvInfo") << "TCDS Data inaccessible.";
265  }
266 }
267 
269  // Part 1:
270  // If FED#735 is available use it to extract DcsStatusCollection.
271  // If not, use softFED#1022 to extract DCSRecord.
272  // Populate dcsBits_ array with received information.
273 
274  edm::Handle<DcsStatusCollection> dcsStatusCollection;
275  event.getByToken(dcsStatusCollection_, dcsStatusCollection);
276 
277  if (!dcsStatusCollection->empty()) {
278  edm::LogInfo("DQMProvInfo") << "Using FED#735 for reading DCS bits" << std::endl;
279  fillDcsBitsFromDcsStatusCollection(dcsStatusCollection);
280  } else {
281  edm::LogInfo("DQMProvInfo") << "Using softFED#1022 for reading DCS bits" << std::endl;
282  DCSRecord const& dcsRecord = event.get(dcsRecordToken_);
283  fillDcsBitsFromDCSRecord(dcsRecord);
284  }
285 }
286 
288  // Only trying to retrieve the global tag for the first event we ever
289  // encounter.
290  if (!globalTagRetrieved_) {
291  // Getting the real process name for the given event
292  std::string processName = event.processHistory()[event.processHistory().size() - 1].processName();
293  // Getting parameters for that process
295  event.getProcessParameterSet(processName, ps);
296  // Getting the global tag
297  globalTag_ = ps.getParameterSet("PoolDBESSource@GlobalTag").getParameter<std::string>("globaltag");
299  // Finaly: Setting globalTagRetrieved_ to true, since we got it now
300  globalTagRetrieved_ = true;
301  }
302 }
303 
305  dcsBits_[VBIN_CSC_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::CSCp);
306  dcsBits_[VBIN_CSC_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::CSCm);
307  dcsBits_[VBIN_DT_0] = dcsRecord.highVoltageReady(DCSRecord::Partition::DT0);
308  dcsBits_[VBIN_DT_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::DTp);
309  dcsBits_[VBIN_DT_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::DTm);
310  dcsBits_[VBIN_EB_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::EBp);
311  dcsBits_[VBIN_EB_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::EBm);
312  dcsBits_[VBIN_EE_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::EEp);
313  dcsBits_[VBIN_EE_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::EEm);
314  dcsBits_[VBIN_ES_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::ESp);
315  dcsBits_[VBIN_ES_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::ESm);
316  dcsBits_[VBIN_HBHE_A] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEa);
317  dcsBits_[VBIN_HBHE_B] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEb);
318  dcsBits_[VBIN_HBHE_C] = dcsRecord.highVoltageReady(DCSRecord::Partition::HBHEc);
324  dcsBits_[VBIN_TIBTID] = dcsRecord.highVoltageReady(DCSRecord::Partition::TIBTID);
326  dcsBits_[VBIN_TEC_P] = dcsRecord.highVoltageReady(DCSRecord::Partition::TECp);
327  dcsBits_[VBIN_TE_M] = dcsRecord.highVoltageReady(DCSRecord::Partition::TECm);
330 
331  // Part 2: Compute the PhysicsDeclared bit from the event
333 
334  // Some info-level logging
335  edm::LogInfo("DQMProvInfo") << "Physics declared bit: " << physicsDeclared_ << std::endl;
336 }
337 
339  // Loop over the DCSStatus entries in the DcsStatusCollection
340  // (Typically there is only one)
341  for (auto const& dcsStatusItr : *dcsStatusCollection) {
342  // By default all the bits are false. We put all the bits on true only
343  // for the first DCSStatus that we encounter:
344  if (!foundFirstDcsBits_) {
345  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
346  dcsBits_[vbin] = true;
347  }
348  foundFirstDcsBits_ = true;
349  }
350  // By default Physics Declared is false. We put it on true only for the
351  // first DCSStatus that we encounter:
353  physicsDeclared_ = true;
355  }
356 
357  // The DCS on lumi level is considered ON if the bit is set in EVERY event
358  dcsBits_[VBIN_CSC_P] &= dcsStatusItr.ready(DcsStatus::CSCp);
359  dcsBits_[VBIN_CSC_M] &= dcsStatusItr.ready(DcsStatus::CSCm);
360  dcsBits_[VBIN_DT_0] &= dcsStatusItr.ready(DcsStatus::DT0);
361  dcsBits_[VBIN_DT_P] &= dcsStatusItr.ready(DcsStatus::DTp);
362  dcsBits_[VBIN_DT_M] &= dcsStatusItr.ready(DcsStatus::DTm);
363  dcsBits_[VBIN_EB_P] &= dcsStatusItr.ready(DcsStatus::EBp);
364  dcsBits_[VBIN_EB_M] &= dcsStatusItr.ready(DcsStatus::EBm);
365  dcsBits_[VBIN_EE_P] &= dcsStatusItr.ready(DcsStatus::EEp);
366  dcsBits_[VBIN_EE_M] &= dcsStatusItr.ready(DcsStatus::EEm);
367  dcsBits_[VBIN_ES_P] &= dcsStatusItr.ready(DcsStatus::ESp);
368  dcsBits_[VBIN_ES_M] &= dcsStatusItr.ready(DcsStatus::ESm);
369  dcsBits_[VBIN_HBHE_A] &= dcsStatusItr.ready(DcsStatus::HBHEa);
370  dcsBits_[VBIN_HBHE_B] &= dcsStatusItr.ready(DcsStatus::HBHEb);
371  dcsBits_[VBIN_HBHE_C] &= dcsStatusItr.ready(DcsStatus::HBHEc);
372  dcsBits_[VBIN_HF] &= dcsStatusItr.ready(DcsStatus::HF);
373  dcsBits_[VBIN_HO] &= dcsStatusItr.ready(DcsStatus::HO);
374  dcsBits_[VBIN_BPIX] &= dcsStatusItr.ready(DcsStatus::BPIX);
375  dcsBits_[VBIN_FPIX] &= dcsStatusItr.ready(DcsStatus::FPIX);
376  dcsBits_[VBIN_RPC] &= dcsStatusItr.ready(DcsStatus::RPC);
377  dcsBits_[VBIN_TIBTID] &= dcsStatusItr.ready(DcsStatus::TIBTID);
378  dcsBits_[VBIN_TOB] &= dcsStatusItr.ready(DcsStatus::TOB);
379  dcsBits_[VBIN_TEC_P] &= dcsStatusItr.ready(DcsStatus::TECp);
380  dcsBits_[VBIN_TE_M] &= dcsStatusItr.ready(DcsStatus::TECm);
381  dcsBits_[VBIN_CASTOR] &= dcsStatusItr.ready(DcsStatus::CASTOR);
382  dcsBits_[VBIN_ZDC] &= dcsStatusItr.ready(DcsStatus::ZDC);
383 
384  // Some info-level logging
385  edm::LogInfo("DQMProvInfo") << "DCS status: 0x" << std::hex << dcsStatusItr.ready() << std::dec << std::endl;
386  }
387 
388  // Part 2: Compute the PhysicsDeclared bit from the event
390 
391  // Some info-level logging
392  edm::LogInfo("DQMProvInfo") << "Physics declared bit: " << physicsDeclared_ << std::endl;
393 }
394 
396  // Compute the PhysicsDeclared bit from the event
397  // The bit is set to to true if:
398  // - the LHC is in stable beams
399  // - all the pixel and strips partitions have DCSStatus ON
400  // - at least one muon partition has DCSStatus ON
401  // Basically: we do an AND of the physicsDeclared of ALL events.
402  // As soon as one value is not "1", physicsDeclared_ becomes false.
403  return (beamMode_ == 11) &&
408 }
409 
411  int currentLSNumber = iLumi.id().luminosityBlock();
412 
413  // We assume that we encounter the LumiSections in chronological order
414  // We only process a LS if it's greater than the previous one:
415  if (currentLSNumber > previousLSNumber_) {
416  endLuminosityBlockLhcInfo(currentLSNumber);
417  endLuminosityBlockEventInfo(currentLSNumber);
418  }
419 
420  // Set current LS number as previous number for the next cycle:
421  previousLSNumber_ = currentLSNumber;
422 }
423 
424 void DQMProvInfo::endLuminosityBlockLhcInfo(const int currentLSNumber) {
425  // Quite straightforward: Fill in the value for the LS in each plot:
426  hBeamMode_->setBinContent(currentLSNumber, beamMode_);
427  hIntensity1_->setBinContent(currentLSNumber, intensity1_);
428  hIntensity2_->setBinContent(currentLSNumber, intensity2_);
429  hLhcFill_->setBinContent(currentLSNumber, lhcFill_);
430  hMomentum_->setBinContent(currentLSNumber, momentum_);
431 }
432 
433 void DQMProvInfo::endLuminosityBlockEventInfo(const int currentLSNumber) {
434  // If we skipped LumiSections, we make them "white"
435  blankPreviousLumiSections(currentLSNumber);
436 
437  // We set the top value to "Valid" to 1 for each LS we end
438  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_VALID, 1.);
439 
440  // Part 1: Physics declared bit in y bin VBIN_PHYSICS_DECLARED
441  // This also is used as the global value of the summary.
442  if (physicsDeclared_) {
443  reportSummary_->Fill(1.);
445  } else {
446  reportSummary_->Fill(0.);
448  }
449 
450  // Part2: DCS bits in y bins 1 to MAX_DCS_VBINS
451  for (int vbin = 1; vbin <= MAX_DCS_VBINS; vbin++) {
452  if (dcsBits_[vbin]) {
453  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 1.);
454  } else {
455  reportSummaryMap_->setBinContent(currentLSNumber, vbin, 0.);
456  }
457  }
458 
459  // Part3: Using LHC status info, fill in VBIN_MOMENTUM and VBIN_STABLE_BEAM
460  // Fill 13 TeV bit in y bin VBIN_MOMENTUM
462  reportSummary_->Fill(1.);
463  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_MOMENTUM, 1.);
464  } else {
465  reportSummary_->Fill(0.);
466  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_MOMENTUM, 0.);
467  }
468 
469  // Fill stable beams bit in y bin VBIN_STABLE_BEAM
470  if (beamMode_ == 11) {
472  reportSummary_->Fill(1.);
473  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_STABLE_BEAM, 1.);
474  } else {
475  reportSummary_->Fill(0.);
476  reportSummaryMap_->setBinContent(currentLSNumber, VBIN_STABLE_BEAM, 0.);
477  }
478 }
479 
480 void DQMProvInfo::blankPreviousLumiSections(const int currentLSNumber) {
481  // In case we skipped lumisections, the current lumisection number will be
482  // more than the previous lumisection number + 1.
483  // We paint all the skipped lumisections completely white (-1), except for
484  // the top flag (the "valid" flag), which we paint red (0).
485  for (int ls = previousLSNumber_ + 1; ls < currentLSNumber; ls++) {
486  // Color the "Valid" bin red (0)
488  // Color all the other bins white (-1)
489  for (int vBin = 1; vBin < VBIN_VALID; vBin++) {
490  reportSummaryMap_->setBinContent(ls, vBin, -1.);
491  }
492  }
493 }
494 
496  // Initially we want all lumisection to be blank (-1) and
497  // white instead of red which is misleading.
498  for (int ls = 0; ls < MAX_LUMIS; ls++) {
499  // Color all the bins white (-1)
500  for (int vBin = 1; vBin <= MAX_VBINS; vBin++) {
501  reportSummaryMap_->setBinContent(ls, vBin, -1.);
502  }
503  }
504 }
unsigned int size() const
number of trigger paths in trigger table
void fillDcsBitsFromDcsStatusCollection(const edm::Handle< DcsStatusCollection > &)
Definition: DQMProvInfo.cc:338
LuminosityBlockID id() const
void endLuminosityBlockEventInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:433
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
Definition: DQMStore.cc:239
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hBeamMode_
Definition: DQMProvInfo.h:118
const BSTRecord & getBST() const
Definition: TCDSRecord.h:100
int previousLSNumber_
Definition: DQMProvInfo.h:132
MonitorElement * hIntensity2_
Definition: DQMProvInfo.h:122
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:224
MonitorElement * reportSummary_
Definition: DQMProvInfo.h:130
MonitorElement * bookFloat(TString const &name)
Definition: DQMStore.cc:233
void analyzeEventInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:268
MonitorElement * hMomentum_
Definition: DQMProvInfo.h:126
static const int VBIN_EE_P
Definition: DQMProvInfo.h:66
MonitorElement * workingDir_
Definition: DQMProvInfo.h:150
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:418
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMProvInfo.h:113
bool foundFirstDcsBits_
Definition: DQMProvInfo.h:136
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: DQMProvInfo.h:115
static const int VBIN_VALID
Definition: DQMProvInfo.h:93
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:149
MonitorElement * hHltKey_
Definition: DQMProvInfo.h:145
void blankAllLumiSections()
Definition: DQMProvInfo.cc:495
MonitorElement * versGlobaltag_
Definition: DQMProvInfo.h:140
uint16_t const getBeamMode() const
Definition: BSTRecord.h:70
static const int VBIN_CASTOR
Definition: DQMProvInfo.h:82
static const int VBIN_HBHE_B
Definition: DQMProvInfo.h:71
static const int VBIN_EE_M
Definition: DQMProvInfo.h:67
static const int VBIN_HBHE_C
Definition: DQMProvInfo.h:72
bool globalTagRetrieved_
Definition: DQMProvInfo.h:142
static const int VBIN_HO
Definition: DQMProvInfo.h:74
int32_t const getBeamMomentum() const
Definition: BSTRecord.h:79
void Fill(long long x)
std::string globalTag_
Definition: DQMProvInfo.h:141
static const int VBIN_DT_0
Definition: DQMProvInfo.h:61
static const int VBIN_TEC_P
Definition: DQMProvInfo.h:80
void bookHistogramsEventInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:144
static const int VBIN_CSC_M
Definition: DQMProvInfo.h:60
MonitorElement * versRuntype_
Definition: DQMProvInfo.h:143
static const int VBIN_TOB
Definition: DQMProvInfo.h:79
static const int VBIN_FPIX
Definition: DQMProvInfo.h:76
void fillDcsBitsFromDCSRecord(const DCSRecord &)
Definition: DQMProvInfo.cc:304
static const int MAX_LUMIS
Definition: DQMProvInfo.h:56
static const int VBIN_DT_M
Definition: DQMProvInfo.h:63
bool isPhysicsDeclared()
Definition: DQMProvInfo.cc:395
static const int VBIN_MOMENTUM
Definition: DQMProvInfo.h:91
void bookHistogramsProvInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:193
uint32_t const getIntensityBeam2() const
Definition: BSTRecord.h:85
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)
void bookHistogramsLhcInfo(DQMStore::IBooker &)
Definition: DQMProvInfo.cc:88
bool foundFirstPhysicsDeclared_
Definition: DQMProvInfo.h:134
void analyzeProvInfo(const edm::Event &e)
Definition: DQMProvInfo.cc:287
static const int MAX_MOMENTUM
Definition: DQMProvInfo.h:99
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:52
#define BPIX
static const int MAX_VBINS
Definition: DQMProvInfo.h:95
std::string subsystemname_
Definition: DQMProvInfo.h:110
MonitorElement * hLhcFill_
Definition: DQMProvInfo.h:124
std::string getReleaseVersion()
static const int VBIN_STABLE_BEAM
Definition: DQMProvInfo.h:92
void blankPreviousLumiSections(const int currentLSNumber)
Definition: DQMProvInfo.cc:480
static const int VBIN_TIBTID
Definition: DQMProvInfo.h:78
def ls(path, rec=False)
Definition: eostools.py:349
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:240
static const int VBIN_EB_P
Definition: DQMProvInfo.h:64
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:75
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
MonitorElement * hIntensity1_
Definition: DQMProvInfo.h:120
static const int VBIN_TE_M
Definition: DQMProvInfo.h:81
LuminosityBlockNumber_t luminosityBlock() const
static const int VBIN_RPC
Definition: DQMProvInfo.h:77
MonitorElement * versCMSSW_
Definition: DQMProvInfo.h:139
MonitorElement * hIsCollisionsRun_
Definition: DQMProvInfo.h:148
std::string runType_
Definition: DQMProvInfo.h:144
edm::EDGetTokenT< TCDSRecord > tcdsrecord_
Definition: DQMProvInfo.h:114
static const int MAX_DCS_VBINS
Definition: DQMProvInfo.h:88
static const int VBIN_ZDC
Definition: DQMProvInfo.h:83
DQMProvInfo(const edm::ParameterSet &ps)
Definition: DQMProvInfo.cc:23
static const int VBIN_ES_P
Definition: DQMProvInfo.h:68
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DQMProvInfo.cc:70
std::string hltKey_
Definition: DQMProvInfo.h:146
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Definition: DQMStore.cc:266
static const int VBIN_CSC_P
Definition: DQMProvInfo.h:59
static const int VBIN_DT_P
Definition: DQMProvInfo.h:62
MonitorElement * bookString(TString const &name, TString const &value)
Definition: DQMStore.cc:235
static const int VBIN_ES_M
Definition: DQMProvInfo.h:69
std::string provinfofolder_
Definition: DQMProvInfo.h:111
static const int MOMENTUM_OFFSET
Definition: DQMProvInfo.h:107
bool physicsDeclared_
Definition: DQMProvInfo.h:133
uint32_t const getLhcFill() const
Definition: BSTRecord.h:67
static const int VBIN_HF
Definition: DQMProvInfo.h:73
void endLuminosityBlockLhcInfo(const int currentLSNumber)
Definition: DQMProvInfo.cc:424
MonitorElement * hostName_
Definition: DQMProvInfo.h:147
bool highVoltageReady(const uint8_t partitionNumber) const
Return true if the high voltage of the given parition is ready.
Definition: DCSRecord.h:66
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c) override
Definition: DQMProvInfo.cc:410
static const int VBIN_HBHE_A
Definition: DQMProvInfo.h:70
~DQMProvInfo() override
static const int VBIN_EB_M
Definition: DQMProvInfo.h:65
MonitorElement * bookInt(TString const &name)
Definition: DQMStore.cc:231
bool dcsBits_[MAX_DCS_VBINS+1]
Definition: DQMProvInfo.h:135
Definition: event.py:1
Definition: Run.h:45
MonitorElement * reportSummaryMap_
Definition: DQMProvInfo.h:131
static const int VBIN_PHYSICS_DECLARED
Definition: DQMProvInfo.h:90
uint32_t const getIntensityBeam1() const
Definition: BSTRecord.h:82
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)