CMS 3D CMS Logo

L1TEventInfoClient.cc
Go to the documentation of this file.
1 
13 // this class header
15 
16 // system include files
17 #include <cstdio>
18 #include <sstream>
19 #include <fstream>
20 #include <iostream>
21 #include <iomanip>
22 
23 #include <cmath>
24 #include <memory>
25 
26 #include <vector>
27 #include <string>
28 
29 // user include files
35 
37 
38 #include <TH2F.h>
39 #include "TROOT.h"
40 
41 // constructor
43  : m_verbose(parSet.getUntrackedParameter<bool>("verbose", false)),
44  m_monitorDir(parSet.getUntrackedParameter<std::string>("monitorDir", "")),
45  m_runInEventLoop(parSet.getUntrackedParameter<bool>("runInEventLoop", false)),
46  m_runInEndLumi(parSet.getUntrackedParameter<bool>("runInEndLumi", false)),
47  m_runInEndRun(parSet.getUntrackedParameter<bool>("runInEndRun", false)),
48  m_runInEndJob(parSet.getUntrackedParameter<bool>("runInEndJob", false)),
49  m_l1Systems(parSet.getParameter<std::vector<edm::ParameterSet> >("L1Systems")),
50  m_l1Objects(parSet.getParameter<std::vector<edm::ParameterSet> >("L1Objects")),
51  m_disableL1Systems(parSet.getParameter<std::vector<std::string> >("DisableL1Systems")),
52  m_disableL1Objects(parSet.getParameter<std::vector<std::string> >("DisableL1Objects")),
53  m_nrL1Systems(0),
54  m_nrL1Objects(0),
55  m_totalNrQtSummaryEnabled(0) {
56  initialize();
57 }
58 
59 // destructor
61  //empty
62 }
63 
65  if (m_verbose) {
66  std::cout << "\nMonitor directory = " << m_monitorDir << std::endl;
67  }
68 
69  // L1 systems
70 
71  m_nrL1Systems = m_l1Systems.size();
72 
76 
77  // on average five quality test per system - just a best guess
81 
82  int indexSys = 0;
83 
84  int totalNrQualityTests = 0;
85 
86  for (std::vector<edm::ParameterSet>::const_iterator itSystem = m_l1Systems.begin(); itSystem != m_l1Systems.end();
87  ++itSystem) {
88  m_systemLabel.push_back(itSystem->getParameter<std::string>("SystemLabel"));
89 
90  m_systemLabelExt.push_back(itSystem->getParameter<std::string>("HwValLabel"));
91 
92  m_systemDisable.push_back(itSystem->getParameter<unsigned int>("SystemDisable"));
93  // check the additional disable flag from m_disableL1Systems
94  for (std::vector<std::string>::const_iterator itSys = m_disableL1Systems.begin(); itSys != m_disableL1Systems.end();
95  ++itSys) {
96  if (*itSys == m_systemLabel[indexSys]) {
97  m_systemDisable[indexSys] = 1;
98  }
99  }
100 
101  std::vector<edm::ParameterSet> qTests = itSystem->getParameter<std::vector<edm::ParameterSet> >("QualityTests");
102  size_t qtPerSystem = qTests.size();
103 
104  std::vector<std::string> qtNames;
105  qtNames.reserve(qtPerSystem);
106 
107  std::vector<std::string> qtFullPathHists;
108  qtFullPathHists.reserve(qtPerSystem);
109 
110  std::vector<unsigned int> qtSumEnabled;
111  qtSumEnabled.reserve(qtPerSystem);
112 
113  for (std::vector<edm::ParameterSet>::const_iterator itQT = qTests.begin(); itQT != qTests.end(); ++itQT) {
114  totalNrQualityTests++;
115 
116  qtNames.push_back(itQT->getParameter<std::string>("QualityTestName"));
117 
118  qtFullPathHists.push_back(itQT->getParameter<std::string>("QualityTestHist"));
119 
120  unsigned int qtEnabled = itQT->getParameter<unsigned int>("QualityTestSummaryEnabled");
121 
122  qtSumEnabled.push_back(qtEnabled);
123 
124  if (qtEnabled) {
126  }
127  }
128 
129  m_systemQualityTestName.push_back(qtNames);
130  m_systemQualityTestHist.push_back(qtFullPathHists);
131  m_systemQtSummaryEnabled.push_back(qtSumEnabled);
132 
133  indexSys++;
134  }
135 
136  // L1 objects
137 
138  //
139  m_nrL1Objects = m_l1Objects.size();
140 
141  m_objectLabel.reserve(m_nrL1Objects);
143 
144  // on average five quality test per object - just a best guess
148 
149  int indexObj = 0;
150 
151  for (std::vector<edm::ParameterSet>::const_iterator itObject = m_l1Objects.begin(); itObject != m_l1Objects.end();
152  ++itObject) {
153  m_objectLabel.push_back(itObject->getParameter<std::string>("ObjectLabel"));
154 
155  m_objectDisable.push_back(itObject->getParameter<unsigned int>("ObjectDisable"));
156  // check the additional disable flag from m_disableL1Objects
157  for (std::vector<std::string>::const_iterator itObj = m_disableL1Objects.begin(); itObj != m_disableL1Objects.end();
158  ++itObj) {
159  if (*itObj == m_objectLabel[indexObj]) {
160  m_objectDisable[indexObj] = 1;
161  }
162  }
163 
164  std::vector<edm::ParameterSet> qTests = itObject->getParameter<std::vector<edm::ParameterSet> >("QualityTests");
165  size_t qtPerObject = qTests.size();
166 
167  std::vector<std::string> qtNames;
168  qtNames.reserve(qtPerObject);
169 
170  std::vector<std::string> qtFullPathHists;
171  qtFullPathHists.reserve(qtPerObject);
172 
173  std::vector<unsigned int> qtSumEnabled;
174  qtSumEnabled.reserve(qtPerObject);
175 
176  for (std::vector<edm::ParameterSet>::const_iterator itQT = qTests.begin(); itQT != qTests.end(); ++itQT) {
177  totalNrQualityTests++;
178 
179  qtNames.push_back(itQT->getParameter<std::string>("QualityTestName"));
180 
181  qtFullPathHists.push_back(itQT->getParameter<std::string>("QualityTestHist"));
182 
183  unsigned int qtEnabled = itQT->getParameter<unsigned int>("QualityTestSummaryEnabled");
184 
185  qtSumEnabled.push_back(qtEnabled);
186 
187  if (qtEnabled) {
189  }
190  }
191 
192  m_objectQualityTestName.push_back(qtNames);
193  m_objectQualityTestHist.push_back(qtFullPathHists);
194  m_objectQtSummaryEnabled.push_back(qtSumEnabled);
195 
196  indexObj++;
197  }
198 
200  m_meReportSummaryContent.reserve(totalNrQualityTests);
201 }
202 
204  DQMStore::IGetter& igetter,
205  const edm::LuminosityBlock& lumiSeg,
206  const edm::EventSetup& evSetup) {
207  if (m_runInEndLumi) {
208  book(ibooker, igetter);
209  readQtResults(ibooker, igetter);
210 
211  if (m_verbose) {
212  std::cout << "\n L1TEventInfoClient::endLuminosityBlock\n" << std::endl;
213  dumpContentMonitorElements(ibooker, igetter);
214  }
215  }
216 }
217 
219  book(ibooker, igetter);
220 
221  readQtResults(ibooker, igetter);
222 
223  if (m_verbose) {
224  std::cout << "\n L1TEventInfoClient::endRun\n" << std::endl;
225  dumpContentMonitorElements(ibooker, igetter);
226  }
227 }
228 
230  std::cout << "\nSummary report " << std::endl;
231 
232  // summary content
233 
235 
236  std::cout << "\nSummary content per system and object as filled in histogram\n " << m_meReportSummaryMap->getName()
237  << std::endl;
238 
239  if (!me) {
240  std::cout << "\nNo histogram " << m_meReportSummaryMap->getName()
241  << "\nNo summary content per system and object as filled in histogram.\n " << std::endl;
242  return;
243  }
244 
245  TH2F* hist = me->getTH2F();
246 
247  const int nBinsX = hist->GetNbinsX();
248  const int nBinsY = hist->GetNbinsY();
249  std::cout << nBinsX << " " << nBinsY;
250 
251  std::vector<std::vector<int> > meReportSummaryMap(nBinsX, std::vector<int>(nBinsY));
252 
253  // for (int iBinX = 0; iBinX < nBinsX; iBinX++) {
254  // for (int iBinY = 0; iBinY < nBinsY; iBinY++) {
255  // meReportSummaryMap[iBinX][iBinY]
256  // = static_cast<int>(me->GetBinContent(iBinX + 1, iBinY + 1));
257  // }
258  // }
259 
260  std::cout << "\nL1 systems: " << m_nrL1Systems << " systems included\n"
261  << "\n Summary content size: " << (m_summaryContent.size()) << std::endl;
262 
263  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
264  std::cout << std::setw(10) << m_systemLabel[iSys] << std::setw(10) << m_systemLabelExt[iSys] << " \t"
265  << m_systemDisable[iSys] << " \t" << std::setw(25) << " m_summaryContent[" << std::setw(2) << iSys
266  << "] = " << meReportSummaryMap[0][iSys] << std::endl;
267  }
268 
269  std::cout << "\n L1 trigger objects: " << m_nrL1Objects << " objects included\n" << std::endl;
270 
271  for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems + m_nrL1Objects; ++iMon) {
272  std::cout << std::setw(20) << m_objectLabel[iMon - m_nrL1Systems] << " \t" << m_objectDisable[iMon - m_nrL1Systems]
273  << " \t" << std::setw(25) << " m_summaryContent[" << std::setw(2) << iMon << "] = \t"
274  << m_summaryContent[iMon] << std::endl;
275  }
276 
277  std::cout << std::endl;
278 
279  // quality tests
280 
281  std::cout << "\nQuality test results as filled in "
282  << "\n " << m_monitorDir << "/EventInfo/reportSummaryContents\n"
283  << "\n Total number of quality tests: " << (m_meReportSummaryContent.size()) << "\n"
284  << std::endl;
285 
286  for (std::vector<MonitorElement*>::const_iterator itME = m_meReportSummaryContent.begin();
287  itME != m_meReportSummaryContent.end();
288  ++itME) {
289  std::cout << std::setw(50) << (*itME)->getName() << " \t" << std::setw(25) << (*itME)->getFloatValue() << std::endl;
290  }
291 
292  std::cout << std::endl;
293 }
294 
296  std::string dirEventInfo = m_monitorDir + "/EventInfo";
297 
298  ibooker.setCurrentFolder(dirEventInfo);
299 
300  // ...and book it again
301  m_meReportSummary = ibooker.bookFloat("reportSummary");
302 
303  // initialize reportSummary to 1
304 
305  if (m_meReportSummary) {
307  }
308 
309  // define float histograms for reportSummaryContents (one histogram per quality test),
310  // initialize them to zero
311  // initialize also m_summaryContent to dqm::qstatus::DISABLED
312 
313  ibooker.setCurrentFolder(dirEventInfo + "/reportSummaryContents");
314  // general counters:
315  // iAllQTest: all quality tests for all systems and objects
316  // iAllMon: all monitored systems and objects
317  int iAllQTest = 0;
318  int iAllMon = 0;
319 
320  for (unsigned int iMon = 0; iMon < m_nrL1Systems; ++iMon) {
322 
323  const std::vector<std::string>& sysQtName = m_systemQualityTestName[iMon];
324 
325  for (std::vector<std::string>::const_iterator itQtName = sysQtName.begin(); itQtName != sysQtName.end();
326  ++itQtName) {
327  const std::string hStr = m_monitorDir + "_L1Sys_" + m_systemLabel[iMon] + "_" + (*itQtName);
328 
329  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
330  m_meReportSummaryContent[iAllQTest]->Fill(0.);
331 
332  iAllQTest++;
333  }
334 
335  iAllMon++;
336  }
337 
338  for (unsigned int iMon = 0; iMon < m_nrL1Objects; ++iMon) {
340 
341  const std::vector<std::string>& objQtName = m_objectQualityTestName[iMon];
342 
343  for (std::vector<std::string>::const_iterator itQtName = objQtName.begin(); itQtName != objQtName.end();
344  ++itQtName) {
345  const std::string hStr = m_monitorDir + "_L1Obj_" + m_objectLabel[iMon] + "_" + (*itQtName);
346 
347  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
348  m_meReportSummaryContent[iAllQTest]->Fill(0.);
349 
350  iAllQTest++;
351  }
352 
353  iAllMon++;
354  }
355 
356  ibooker.setCurrentFolder(dirEventInfo);
357 
358  // define a histogram with two bins on X and maximum of m_nrL1Systems, m_nrL1Objects on Y
359 
360  int nBinsY = std::max(m_nrL1Systems, m_nrL1Objects);
361 
362  m_meReportSummaryMap = ibooker.book2D("reportSummaryMap", "reportSummaryMap", 2, 1, 3, nBinsY, 1, nBinsY + 1);
363 
364  if (m_monitorDir == "L1TEMU") {
365  m_meReportSummaryMap->setTitle("L1TEMU: L1 Emulator vs Data Report Summary Map");
366 
367  } else if (m_monitorDir == "L1T") {
368  m_meReportSummaryMap->setTitle("L1T: L1 Trigger Data Report Summary Map");
369  } else {
370  // do nothing
371  }
372 
375 
376  m_meReportSummaryMap->setBinLabel(1, "L1 systems", 1);
377  m_meReportSummaryMap->setBinLabel(2, "L1 objects", 1);
378 
379  for (int iBin = 0; iBin < nBinsY; ++iBin) {
380  m_meReportSummaryMap->setBinLabel(iBin + 1, " ", 2);
381  }
382 }
383 
385  // initialize summary content, summary sum and ReportSummaryContent float histograms
386  // for all L1 systems and L1 objects
387 
388  for (std::vector<int>::iterator it = m_summaryContent.begin(); it != m_summaryContent.end(); ++it) {
389  (*it) = dqm::qstatus::DISABLED;
390  }
391 
392  m_summarySum = 0.;
393 
394  for (std::vector<MonitorElement*>::iterator itME = m_meReportSummaryContent.begin();
395  itME != m_meReportSummaryContent.end();
396  ++itME) {
397  (*itME)->Fill(0.);
398  }
399 
400  // general counters:
401  // iAllQTest: all quality tests for all systems and objects
402  // iAllMon: all monitored systems and objects
403  int iAllQTest = 0;
404  int iAllMon = 0;
405 
406  // quality tests for all L1 systems
407 
408  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
409  // get the reports for each quality test
410 
411  const std::vector<std::string>& sysQtName = m_systemQualityTestName[iSys];
412  const std::vector<std::string>& sysQtHist = m_systemQualityTestHist[iSys];
413  const std::vector<unsigned int>& sysQtSummaryEnabled = m_systemQtSummaryEnabled[iSys];
414 
415  // pro system counter for quality tests
416  int iSysQTest = 0;
417 
418  for (std::vector<std::string>::const_iterator itQtName = sysQtName.begin(); itQtName != sysQtName.end();
419  ++itQtName) {
420  // get results, status and message
421 
422  MonitorElement* qHist = igetter.get(sysQtHist[iSysQTest]);
423 
424  if (qHist) {
425  const std::vector<QReport*> qtVec = qHist->getQReports();
426 
427  if (m_verbose) {
428  std::cout << "\nNumber of quality tests "
429  << " for histogram " << sysQtHist[iSysQTest] << ": " << qtVec.size() << "\n"
430  << std::endl;
431  }
432 
433  const QReport* sysQReport = qHist->getQReport(*itQtName);
434  if (sysQReport) {
435  const float sysQtResult = sysQReport->getQTresult();
436  const int sysQtStatus = sysQReport->getStatus();
437  const std::string& sysQtMessage = sysQReport->getMessage();
438 
439  if (m_verbose) {
440  std::cout << "\n"
441  << (*itQtName) << " quality test:"
442  << "\n result: " << sysQtResult << "\n status: " << sysQtStatus
443  << "\n message: " << sysQtMessage << "\n"
444  << "\nFilling m_meReportSummaryContent[" << iAllQTest << "] with value " << sysQtResult << "\n"
445  << std::endl;
446  }
447 
448  m_meReportSummaryContent[iAllQTest]->Fill(sysQtResult);
449 
450  // for the summary map, keep the highest status value ("ERROR") of all tests
451  // which are considered for the summary plot
452  if (sysQtSummaryEnabled[iSysQTest]) {
453  if (sysQtStatus > m_summaryContent[iAllMon]) {
454  m_summaryContent[iAllMon] = sysQtStatus;
455  }
456 
457  m_summarySum += sysQtResult;
458  }
459 
460  } else {
461  // for the summary map, if the test was not found but it is assumed to be
462  // considered for the summary plot, set it to dqm::qstatus::INVALID
463 
464  int sysQtStatus = dqm::qstatus::INVALID;
465 
466  if (sysQtSummaryEnabled[iSysQTest]) {
467  if (sysQtStatus > m_summaryContent[iAllMon]) {
468  m_summaryContent[iAllMon] = sysQtStatus;
469  }
470  }
471 
472  m_meReportSummaryContent[iAllQTest]->Fill(0.);
473 
474  if (m_verbose) {
475  std::cout << "\n" << (*itQtName) << " quality test not found\n" << std::endl;
476  }
477  }
478 
479  } else {
480  // for the summary map, if the histogram was not found but it is assumed
481  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
482 
483  int sysQtStatus = dqm::qstatus::INVALID;
484 
485  if (sysQtSummaryEnabled[iSysQTest]) {
486  if (sysQtStatus > m_summaryContent[iAllMon]) {
487  m_summaryContent[iAllMon] = sysQtStatus;
488  }
489  }
490 
491  m_meReportSummaryContent[iAllQTest]->Fill(0.);
492 
493  if (m_verbose) {
494  std::cout << "\nHistogram " << sysQtHist[iSysQTest] << " not found\n" << std::endl;
495  }
496  }
497 
498  // increase counters for quality tests
499  iSysQTest++;
500  iAllQTest++;
501  }
502 
503  iAllMon++;
504  }
505 
506  // quality tests for all L1 objects
507 
508  for (unsigned int iObj = 0; iObj < m_nrL1Objects; ++iObj) {
509  // get the reports for each quality test
510 
511  const std::vector<std::string>& objQtName = m_objectQualityTestName[iObj];
512  const std::vector<std::string>& objQtHist = m_objectQualityTestHist[iObj];
513  const std::vector<unsigned int>& objQtSummaryEnabled = m_objectQtSummaryEnabled[iObj];
514 
515  // pro object counter for quality tests
516  int iObjQTest = 0;
517 
518  for (std::vector<std::string>::const_iterator itQtName = objQtName.begin(); itQtName != objQtName.end();
519  ++itQtName) {
520  // get results, status and message
521 
522  MonitorElement* qHist = igetter.get(objQtHist[iObjQTest]);
523 
524  if (qHist) {
525  const std::vector<QReport*> qtVec = qHist->getQReports();
526 
527  if (m_verbose) {
528  std::cout << "\nNumber of quality tests "
529  << " for histogram " << objQtHist[iObjQTest] << ": " << qtVec.size() << "\n"
530  << std::endl;
531  }
532 
533  const QReport* objQReport = qHist->getQReport(*itQtName);
534  if (objQReport) {
535  const float objQtResult = objQReport->getQTresult();
536  const int objQtStatus = objQReport->getStatus();
537  const std::string& objQtMessage = objQReport->getMessage();
538 
539  if (m_verbose) {
540  std::cout << "\n"
541  << (*itQtName) << " quality test:"
542  << "\n result: " << objQtResult << "\n status: " << objQtStatus
543  << "\n message: " << objQtMessage << "\n"
544  << "\nFilling m_meReportSummaryContent[" << iAllQTest << "] with value " << objQtResult << "\n"
545  << std::endl;
546  }
547 
548  m_meReportSummaryContent[iAllQTest]->Fill(objQtResult);
549 
550  // for the summary map, keep the highest status value ("ERROR") of all tests
551  // which are considered for the summary plot
552  if (objQtSummaryEnabled[iObjQTest]) {
553  if (objQtStatus > m_summaryContent[iAllMon]) {
554  m_summaryContent[iAllMon] = objQtStatus;
555  }
556 
557  m_summarySum += objQtResult;
558  }
559 
560  } else {
561  // for the summary map, if the test was not found but it is assumed to be
562  // considered for the summary plot, set it to dqm::qstatus::INVALID
563 
564  int objQtStatus = dqm::qstatus::INVALID;
565 
566  if (objQtSummaryEnabled[iObjQTest]) {
567  if (objQtStatus > m_summaryContent[iAllMon]) {
568  m_summaryContent[iAllMon] = objQtStatus;
569  }
570  }
571 
572  m_meReportSummaryContent[iAllQTest]->Fill(0.);
573 
574  if (m_verbose) {
575  std::cout << "\n" << (*itQtName) << " quality test not found\n" << std::endl;
576  }
577  }
578 
579  } else {
580  // for the summary map, if the histogram was not found but it is assumed
581  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
582 
583  int objQtStatus = dqm::qstatus::INVALID;
584 
585  if (objQtSummaryEnabled[iObjQTest]) {
586  if (objQtStatus > m_summaryContent[iAllMon]) {
587  m_summaryContent[iAllMon] = objQtStatus;
588  }
589  }
590 
591  m_meReportSummaryContent[iAllQTest]->Fill(0.);
592 
593  if (m_verbose) {
594  std::cout << "\nHistogram " << objQtHist[iObjQTest] << " not found\n" << std::endl;
595  }
596  }
597 
598  // increase counters for quality tests
599  iObjQTest++;
600  iAllQTest++;
601  }
602 
603  iAllMon++;
604  }
605 
606  // reportSummary value
608  if (m_meReportSummary) {
610  }
611 
612  // fill the ReportSummaryMap for L1 systems (bin 1 on X)
613  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
614  double summCont = static_cast<double>(m_summaryContent[iSys]);
615  m_meReportSummaryMap->setBinContent(1, iSys + 1, summCont);
616  }
617 
618  // fill the ReportSummaryMap for L1 objects (bin 2 on X)
619  for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems + m_nrL1Objects; ++iMon) {
620  double summCont = static_cast<double>(m_summaryContent[iMon]);
621  m_meReportSummaryMap->setBinContent(2, iMon - m_nrL1Systems + 1, summCont);
622  }
623 }
std::vector< std::vector< std::string > > m_objectQualityTestHist
std::vector< std::vector< std::string > > m_systemQualityTestName
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
void initialize()
private methods
std::vector< edm::ParameterSet > m_l1Objects
std::vector< int > m_objectDisable
std::vector< edm::ParameterSet > m_l1Systems
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
L1TEventInfoClient(const edm::ParameterSet &)
Constructor.
std::vector< std::string > m_systemLabel
float getQTresult() const
get test result i.e. prob value
std::vector< MonitorElementData::QReport * > getQReports() const
get map of QReports
void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override
end job
std::vector< std::string > m_systemLabelExt
void book(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
book histograms
MonitorElement * m_meReportSummaryMap
report summary map
std::vector< std::vector< std::string > > m_systemQualityTestHist
std::vector< std::vector< unsigned int > > m_objectQtSummaryEnabled
std::vector< MonitorElement * > m_meReportSummaryContent
monitor elements to report content for all quality tests
void readQtResults(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
read quality test results
void Fill(long long x)
Float_t m_reportSummary
summary report
static const int INVALID
MonitorElement * m_meReportSummary
a summary report
const MonitorElementData::QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
std::vector< std::vector< unsigned int > > m_systemQtSummaryEnabled
static const int DISABLED
~L1TEventInfoClient() override
Destructor.
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)
__shared__ Hist hist
const std::string & getMessage() const
get message attached to test
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< int > m_systemDisable
std::vector< std::string > m_objectLabel
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:212
std::vector< std::string > m_disableL1Objects
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:680
std::vector< std::string > m_disableL1Systems
std::vector< std::vector< std::string > > m_objectQualityTestName
size_t m_nrL1Objects
number of L1 trigger objects
const std::string & getName() const
get name of ME
void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter, const edm::LuminosityBlock &, const edm::EventSetup &) override
HLT enums.
size_t m_nrL1Systems
number of L1 trigger systems
int getStatus() const
get test status
std::vector< int > m_summaryContent
void dumpContentMonitorElements(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
dump the content of the monitoring elements defined in this module
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
bool m_verbose
input parameters