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