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 <stdio.h>
18 #include <sstream>
19 #include <fstream>
20 #include <iostream>
21 #include <iomanip>
22 
23 #include <math.h>
24 #include <memory>
25 
26 #include <vector>
27 #include <string>
28 
29 // user include files
35 
39 
40 #include <TH2F.h>
41 #include "TROOT.h"
42 
43 // constructor
45  m_verbose(parSet.getUntrackedParameter<bool>("verbose", false)),
46  m_monitorDir(parSet.getUntrackedParameter<std::string>("monitorDir", "")),
47  m_runInEventLoop(parSet.getUntrackedParameter<bool>("runInEventLoop", false)),
48  m_runInEndLumi(parSet.getUntrackedParameter<bool>("runInEndLumi", false)),
49  m_runInEndRun(parSet.getUntrackedParameter<bool>("runInEndRun", false)),
50  m_runInEndJob(parSet.getUntrackedParameter<bool>("runInEndJob", false)),
51  m_l1Systems(parSet.getParameter<std::vector<edm::ParameterSet> >("L1Systems")),
52  m_l1Objects(parSet.getParameter<std::vector<edm::ParameterSet> >("L1Objects")),
53  m_disableL1Systems(parSet.getParameter<std::vector<std::string> >("DisableL1Systems")),
54  m_disableL1Objects(parSet.getParameter<std::vector<std::string> >("DisableL1Objects")),
55  m_nrL1Systems(0),
56  m_nrL1Objects(0),
57  m_totalNrQtSummaryEnabled(0) {
58 
59  initialize();
60 }
61 
62 // destructor
64 
65  //empty
66 
67 }
68 
70 
71  if (m_verbose) {
72  std::cout << "\nMonitor directory = " << m_monitorDir
73  << std::endl;
74  }
75 
76  // L1 systems
77 
78  m_nrL1Systems = m_l1Systems.size();
79 
83 
84  // on average five quality test per system - just a best guess
88 
89  int indexSys = 0;
90 
91  int totalNrQualityTests = 0;
92 
93  for (std::vector<edm::ParameterSet>::const_iterator itSystem =
94  m_l1Systems.begin(); itSystem != m_l1Systems.end(); ++itSystem) {
95 
96  m_systemLabel.push_back(itSystem->getParameter<std::string>(
97  "SystemLabel"));
98 
99  m_systemLabelExt.push_back(itSystem->getParameter<std::string>(
100  "HwValLabel"));
101 
102  m_systemDisable.push_back(itSystem->getParameter<unsigned int>(
103  "SystemDisable"));
104  // check the additional disable flag from m_disableL1Systems
105  for (std::vector<std::string>::const_iterator itSys =
106  m_disableL1Systems.begin(); itSys != m_disableL1Systems.end(); ++itSys) {
107 
108  if (*itSys == m_systemLabel[indexSys]) {
109  m_systemDisable[indexSys] = 1;
110 
111  }
112  }
113 
114  std::vector < edm::ParameterSet > qTests = itSystem->getParameter<
115  std::vector<edm::ParameterSet> > ("QualityTests");
116  size_t qtPerSystem = qTests.size();
117 
118  std::vector < std::string > qtNames;
119  qtNames.reserve(qtPerSystem);
120 
121  std::vector < std::string > qtFullPathHists;
122  qtFullPathHists.reserve(qtPerSystem);
123 
124  std::vector<unsigned int> qtSumEnabled;
125  qtSumEnabled.reserve(qtPerSystem);
126 
127  for (std::vector<edm::ParameterSet>::const_iterator itQT =
128  qTests.begin(); itQT != qTests.end(); ++itQT) {
129 
130  totalNrQualityTests++;
131 
132  qtNames.push_back(
133  itQT->getParameter<std::string> ("QualityTestName"));
134 
135  qtFullPathHists.push_back(
136  itQT->getParameter<std::string> ("QualityTestHist"));
137 
138  unsigned int qtEnabled = itQT->getParameter<unsigned int> (
139  "QualityTestSummaryEnabled");
140 
141  qtSumEnabled.push_back(qtEnabled);
142 
143  if (qtEnabled) {
145  }
146  }
147 
148  m_systemQualityTestName.push_back(qtNames);
149  m_systemQualityTestHist.push_back(qtFullPathHists);
150  m_systemQtSummaryEnabled.push_back(qtSumEnabled);
151 
152  indexSys++;
153 
154  }
155 
156  // L1 objects
157 
158  //
159  m_nrL1Objects = m_l1Objects.size();
160 
161  m_objectLabel.reserve(m_nrL1Objects);
163 
164  // on average five quality test per object - just a best guess
168 
169  int indexObj = 0;
170 
171  for (std::vector<edm::ParameterSet>::const_iterator itObject =
172  m_l1Objects.begin(); itObject != m_l1Objects.end(); ++itObject) {
173 
174  m_objectLabel.push_back(itObject->getParameter<std::string>(
175  "ObjectLabel"));
176 
177  m_objectDisable.push_back(itObject->getParameter<unsigned int>(
178  "ObjectDisable"));
179  // check the additional disable flag from m_disableL1Objects
180  for (std::vector<std::string>::const_iterator itObj =
181  m_disableL1Objects.begin(); itObj != m_disableL1Objects.end(); ++itObj) {
182 
183  if (*itObj == m_objectLabel[indexObj]) {
184  m_objectDisable[indexObj] = 1;
185 
186  }
187  }
188 
189  std::vector < edm::ParameterSet > qTests = itObject->getParameter<
190  std::vector<edm::ParameterSet> > ("QualityTests");
191  size_t qtPerObject = qTests.size();
192 
193  std::vector < std::string > qtNames;
194  qtNames.reserve(qtPerObject);
195 
196  std::vector < std::string > qtFullPathHists;
197  qtFullPathHists.reserve(qtPerObject);
198 
199  std::vector<unsigned int> qtSumEnabled;
200  qtSumEnabled.reserve(qtPerObject);
201 
202  for (std::vector<edm::ParameterSet>::const_iterator itQT =
203  qTests.begin(); itQT != qTests.end(); ++itQT) {
204 
205  totalNrQualityTests++;
206 
207  qtNames.push_back(
208  itQT->getParameter<std::string> ("QualityTestName"));
209 
210  qtFullPathHists.push_back(
211  itQT->getParameter<std::string> ("QualityTestHist"));
212 
213  unsigned int qtEnabled = itQT->getParameter<unsigned int> (
214  "QualityTestSummaryEnabled");
215 
216  qtSumEnabled.push_back(qtEnabled);
217 
218  if (qtEnabled) {
220  }
221  }
222 
223  m_objectQualityTestName.push_back(qtNames);
224  m_objectQualityTestHist.push_back(qtFullPathHists);
225  m_objectQtSummaryEnabled.push_back(qtSumEnabled);
226 
227  indexObj++;
228 
229  }
230 
232  m_meReportSummaryContent.reserve(totalNrQualityTests);
233 
234 }
235 
237 
238 
239  if (m_runInEndLumi) {
240 
241  book(ibooker, igetter);
242  readQtResults(ibooker, igetter);
243 
244  if (m_verbose) {
245 
246  std::cout << "\n L1TEventInfoClient::endLuminosityBlock\n"
247  << std::endl;
248  dumpContentMonitorElements(ibooker, igetter);
249  }
250 
251  }
252 }
253 
254 
256 
257  book(ibooker, igetter);
258 
259  readQtResults(ibooker, igetter);
260 
261  if (m_verbose) {
262 
263  std::cout << "\n L1TEventInfoClient::endRun\n" << std::endl;
264  dumpContentMonitorElements(ibooker, igetter);
265  }
266 }
267 
269 
270  std::cout << "\nSummary report " << std::endl;
271 
272  // summary content
273 
275 
276  std::cout
277  << "\nSummary content per system and object as filled in histogram\n "
278  << m_meReportSummaryMap->getName() << std::endl;
279 
280  if (!me) {
281 
282  std::cout << "\nNo histogram " << m_meReportSummaryMap->getName()
283  << "\nNo summary content per system and object as filled in histogram.\n "
284  << std::endl;
285  return;
286 
287  }
288 
289  TH2F* hist = me->getTH2F();
290 
291  const int nBinsX = hist->GetNbinsX();
292  const int nBinsY = hist->GetNbinsY();
293  std::cout << nBinsX << " " << nBinsY;
294 
295  std::vector<std::vector<int> > meReportSummaryMap(nBinsX, std::vector<int>(
296  nBinsY));
297 
298 // for (int iBinX = 0; iBinX < nBinsX; iBinX++) {
299 // for (int iBinY = 0; iBinY < nBinsY; iBinY++) {
300 // meReportSummaryMap[iBinX][iBinY]
301 // = static_cast<int>(me->GetBinContent(iBinX + 1, iBinY + 1));
302 // }
303 // }
304 
305  std::cout << "\nL1 systems: " << m_nrL1Systems << " systems included\n"
306  << "\n Summary content size: " << (m_summaryContent.size())
307  << std::endl;
308 
309  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
310 
311  std::cout << std::setw(10) << m_systemLabel[iSys] << std::setw(10)
312  << m_systemLabelExt[iSys] << " \t" << m_systemDisable[iSys]
313  << " \t" << std::setw(25) << " m_summaryContent["
314  << std::setw(2) << iSys << "] = " << meReportSummaryMap[0][iSys]
315  << std::endl;
316  }
317 
318  std::cout << "\n L1 trigger objects: " << m_nrL1Objects
319  << " objects included\n" << std::endl;
320 
321  for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems
322  + m_nrL1Objects; ++iMon) {
323 
324  std::cout << std::setw(20) << m_objectLabel[iMon - m_nrL1Systems]
325  << " \t" << m_objectDisable[iMon - m_nrL1Systems] << " \t"
326  << std::setw(25) << " m_summaryContent[" << std::setw(2)
327  << iMon << "] = \t" << m_summaryContent[iMon] << std::endl;
328  }
329 
330  std::cout << std::endl;
331 
332  // quality tests
333 
334  std::cout << "\nQuality test results as filled in " << "\n "
335  << m_monitorDir << "/EventInfo/reportSummaryContents\n"
336  << "\n Total number of quality tests: "
337  << (m_meReportSummaryContent.size()) << "\n" << std::endl;
338 
339  for (std::vector<MonitorElement*>::const_iterator itME =
340  m_meReportSummaryContent.begin(); itME
341  != m_meReportSummaryContent.end(); ++itME) {
342 
343  std::cout << std::setw(50) << (*itME)->getName() << " \t"
344  << std::setw(25) << (*itME)->getFloatValue() << std::endl;
345 
346  }
347 
348  std::cout << std::endl;
349 
350 }
351 
352 
353 
355 
356  std::string dirEventInfo = m_monitorDir + "/EventInfo";
357 
358  ibooker.setCurrentFolder(dirEventInfo);
359 
360  // remove m_meReportSummary if it exists
361  if ((m_meReportSummary = igetter.get(dirEventInfo + "/reportSummary"))) {
363  }
364 
365  // ...and book it again
366  m_meReportSummary = ibooker.bookFloat("reportSummary");
367 
368  // initialize reportSummary to 1
369 
370  if (m_meReportSummary) {
372  }
373 
374  // define float histograms for reportSummaryContents (one histogram per quality test),
375  // initialize them to zero
376  // initialize also m_summaryContent to dqm::qstatus::DISABLED
377 
378  ibooker.setCurrentFolder(dirEventInfo + "/reportSummaryContents");
379  // general counters:
380  // iAllQTest: all quality tests for all systems and objects
381  // iAllMon: all monitored systems and objects
382  int iAllQTest = 0;
383  int iAllMon = 0;
384 
385  for (unsigned int iMon = 0; iMon < m_nrL1Systems; ++iMon) {
386 
388 
389  const std::vector<std::string>& sysQtName =
391 
392  for (std::vector<std::string>::const_iterator itQtName =
393  sysQtName.begin(); itQtName != sysQtName.end(); ++itQtName) {
394 
395  const std::string hStr = m_monitorDir + "_L1Sys_" +m_systemLabel[iMon] + "_" + (*itQtName);
396 
397  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
398  m_meReportSummaryContent[iAllQTest]->Fill(0.);
399 
400  iAllQTest++;
401  }
402 
403  iAllMon++;
404  }
405 
406 
407  for (unsigned int iMon = 0; iMon < m_nrL1Objects; ++iMon) {
408 
410 
411  const std::vector<std::string>& objQtName =
413 
414  for (std::vector<std::string>::const_iterator itQtName =
415  objQtName.begin(); itQtName != objQtName.end(); ++itQtName) {
416 
417  const std::string hStr = m_monitorDir + "_L1Obj_" + m_objectLabel[iMon] + "_" + (*itQtName);
418 
419  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
420  m_meReportSummaryContent[iAllQTest]->Fill(0.);
421 
422  iAllQTest++;
423  }
424 
425  iAllMon++;
426 
427  }
428 
429  ibooker.setCurrentFolder(dirEventInfo);
430 
431  if ((m_meReportSummaryMap = igetter.get(dirEventInfo + "/reportSummaryMap"))) {
433  }
434 
435  // define a histogram with two bins on X and maximum of m_nrL1Systems, m_nrL1Objects on Y
436 
437  int nBinsY = std::max(m_nrL1Systems, m_nrL1Objects);
438 
439  m_meReportSummaryMap = ibooker.book2D("reportSummaryMap",
440  "reportSummaryMap", 2, 1, 3, nBinsY, 1, nBinsY + 1);
441 
442  if (m_monitorDir == "L1TEMU") {
444  "L1TEMU: L1 Emulator vs Data Report Summary Map");
445 
446  } else if (m_monitorDir == "L1T") {
448  "L1T: L1 Trigger Data Report Summary Map");
449  } else {
450  // do nothing
451  }
452 
455 
456  m_meReportSummaryMap->setBinLabel(1, "L1 systems", 1);
457  m_meReportSummaryMap->setBinLabel(2, "L1 objects", 1);
458 
459  for (int iBin = 0; iBin < nBinsY; ++iBin) {
460 
461  m_meReportSummaryMap->setBinLabel(iBin + 1, " ", 2);
462  }
463 
464 }
465 
466 
468 
469  // initialize summary content, summary sum and ReportSummaryContent float histograms
470  // for all L1 systems and L1 objects
471 
472  for (std::vector<int>::iterator it = m_summaryContent.begin(); it
473  != m_summaryContent.end(); ++it) {
474 
475  (*it) = dqm::qstatus::DISABLED;
476 
477  }
478 
479  m_summarySum = 0.;
480 
481  for (std::vector<MonitorElement*>::iterator itME =
482  m_meReportSummaryContent.begin(); itME
483  != m_meReportSummaryContent.end(); ++itME) {
484 
485  (*itME)->Fill(0.);
486 
487  }
488 
489 
490  // general counters:
491  // iAllQTest: all quality tests for all systems and objects
492  // iAllMon: all monitored systems and objects
493  int iAllQTest = 0;
494  int iAllMon = 0;
495 
496 
497  // quality tests for all L1 systems
498 
499  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
500 
501  // get the reports for each quality test
502 
503  const std::vector<std::string>& sysQtName =
505  const std::vector<std::string>& sysQtHist =
507  const std::vector<unsigned int>& sysQtSummaryEnabled =
509 
510  // pro system counter for quality tests
511  int iSysQTest = 0;
512 
513  for (std::vector<std::string>::const_iterator itQtName =
514  sysQtName.begin(); itQtName != sysQtName.end(); ++itQtName) {
515 
516  // get results, status and message
517 
518  MonitorElement* qHist = igetter.get(sysQtHist[iSysQTest]);
519 
520  if (qHist) {
521  const std::vector<QReport*> qtVec = qHist->getQReports();
522  const std::string hName = qHist->getName();
523 
524  if (m_verbose) {
525 
526  std::cout << "\nNumber of quality tests "
527  << " for histogram " << sysQtHist[iSysQTest]
528  << ": " << qtVec.size() << "\n" << std::endl;
529  }
530 
531  const QReport* sysQReport = qHist->getQReport(*itQtName);
532  if (sysQReport) {
533  const float sysQtResult = sysQReport->getQTresult();
534  const int sysQtStatus = sysQReport->getStatus();
535  const std::string& sysQtMessage = sysQReport->getMessage();
536 
537  if (m_verbose) {
538  std::cout << "\n" << (*itQtName) << " quality test:"
539  << "\n result: " << sysQtResult
540  << "\n status: " << sysQtStatus
541  << "\n message: " << sysQtMessage << "\n"
542  << "\nFilling m_meReportSummaryContent["
543  << iAllQTest << "] with value "
544  << sysQtResult << "\n" << std::endl;
545  }
546 
547  m_meReportSummaryContent[iAllQTest]->Fill(sysQtResult);
548 
549  // for the summary map, keep the highest status value ("ERROR") of all tests
550  // which are considered for the summary plot
551  if (sysQtSummaryEnabled[iSysQTest]) {
552 
553  if (sysQtStatus > m_summaryContent[iAllMon]) {
554  m_summaryContent[iAllMon] = sysQtStatus;
555  }
556 
557  m_summarySum += sysQtResult;
558  }
559 
560 
561  } else {
562 
563  // for the summary map, if the test was not found but it is assumed to be
564  // considered for the summary plot, set it to dqm::qstatus::INVALID
565 
566  int sysQtStatus = dqm::qstatus::INVALID;
567 
568  if (sysQtSummaryEnabled[iSysQTest]) {
569 
570  if (sysQtStatus > m_summaryContent[iAllMon]) {
571  m_summaryContent[iAllMon] = sysQtStatus;
572  }
573  }
574 
575  m_meReportSummaryContent[iAllQTest]->Fill(0.);
576 
577  if (m_verbose) {
578 
579  std::cout << "\n" << (*itQtName)
580  << " quality test not found\n" << std::endl;
581  }
582  }
583 
584  } else {
585  // for the summary map, if the histogram was not found but it is assumed
586  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
587 
588  int sysQtStatus = dqm::qstatus::INVALID;
589 
590  if (sysQtSummaryEnabled[iSysQTest]) {
591 
592  if (sysQtStatus > m_summaryContent[iAllMon]) {
593  m_summaryContent[iAllMon] = sysQtStatus;
594  }
595  }
596 
597  m_meReportSummaryContent[iAllQTest]->Fill(0.);
598 
599  if (m_verbose) {
600 
601  std::cout << "\nHistogram " << sysQtHist[iSysQTest]
602  << " not found\n" << std::endl;
603  }
604 
605  }
606 
607  // increase counters for quality tests
608  iSysQTest++;
609  iAllQTest++;
610 
611  }
612 
613  iAllMon++;
614 
615  }
616 
617  // quality tests for all L1 objects
618 
619  for (unsigned int iObj = 0; iObj < m_nrL1Objects; ++iObj) {
620 
621  // get the reports for each quality test
622 
623  const std::vector<std::string>& objQtName =
625  const std::vector<std::string>& objQtHist =
627  const std::vector<unsigned int>& objQtSummaryEnabled =
629 
630  // pro object counter for quality tests
631  int iObjQTest = 0;
632 
633  for (std::vector<std::string>::const_iterator itQtName =
634  objQtName.begin(); itQtName != objQtName.end(); ++itQtName) {
635 
636  // get results, status and message
637 
638  MonitorElement* qHist = igetter.get(objQtHist[iObjQTest]);
639 
640  if (qHist) {
641  const std::vector<QReport*> qtVec = qHist->getQReports();
642  const std::string hName = qHist->getName();
643 
644  if (m_verbose) {
645 
646  std::cout << "\nNumber of quality tests "
647  << " for histogram " << objQtHist[iObjQTest]
648  << ": " << qtVec.size() << "\n" << std::endl;
649  }
650 
651  const QReport* objQReport = qHist->getQReport(*itQtName);
652  if (objQReport) {
653  const float objQtResult = objQReport->getQTresult();
654  const int objQtStatus = objQReport->getStatus();
655  const std::string& objQtMessage = objQReport->getMessage();
656 
657  if (m_verbose) {
658  std::cout << "\n" << (*itQtName) << " quality test:"
659  << "\n result: " << objQtResult
660  << "\n status: " << objQtStatus
661  << "\n message: " << objQtMessage << "\n"
662  << "\nFilling m_meReportSummaryContent["
663  << iAllQTest << "] with value "
664  << objQtResult << "\n" << std::endl;
665  }
666 
667  m_meReportSummaryContent[iAllQTest]->Fill(objQtResult);
668 
669  // for the summary map, keep the highest status value ("ERROR") of all tests
670  // which are considered for the summary plot
671  if (objQtSummaryEnabled[iObjQTest]) {
672 
673  if (objQtStatus > m_summaryContent[iAllMon]) {
674  m_summaryContent[iAllMon] = objQtStatus;
675  }
676 
677  m_summarySum += objQtResult;
678  }
679 
680  } else {
681 
682  // for the summary map, if the test was not found but it is assumed to be
683  // considered for the summary plot, set it to dqm::qstatus::INVALID
684 
685  int objQtStatus = dqm::qstatus::INVALID;
686 
687  if (objQtSummaryEnabled[iObjQTest]) {
688 
689  if (objQtStatus > m_summaryContent[iAllMon]) {
690  m_summaryContent[iAllMon] = objQtStatus;
691  }
692  }
693 
694  m_meReportSummaryContent[iAllQTest]->Fill(0.);
695 
696  if (m_verbose) {
697 
698  std::cout << "\n" << (*itQtName)
699  << " quality test not found\n" << std::endl;
700  }
701 
702  }
703 
704  } else {
705  // for the summary map, if the histogram was not found but it is assumed
706  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
707 
708  int objQtStatus = dqm::qstatus::INVALID;
709 
710  if (objQtSummaryEnabled[iObjQTest]) {
711 
712  if (objQtStatus > m_summaryContent[iAllMon]) {
713  m_summaryContent[iAllMon] = objQtStatus;
714  }
715  }
716 
717  m_meReportSummaryContent[iAllQTest]->Fill(0.);
718 
719  if (m_verbose) {
720  std::cout << "\nHistogram " << objQtHist[iObjQTest]
721  << " not found\n" << std::endl;
722  }
723 
724  }
725 
726  // increase counters for quality tests
727  iObjQTest++;
728  iAllQTest++;
729  }
730 
731  iAllMon++;
732 
733  }
734 
735 
736 
737  // reportSummary value
739  if (m_meReportSummary) {
741  }
742 
743  // fill the ReportSummaryMap for L1 systems (bin 1 on X)
744  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
745 
746  double summCont = static_cast<double>(m_summaryContent[iSys]);
747  m_meReportSummaryMap->setBinContent(1, iSys + 1, summCont);
748  }
749 
750  // fill the ReportSummaryMap for L1 objects (bin 2 on X)
751  for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems
752  + m_nrL1Objects; ++iMon) {
753 
754  double summCont = static_cast<double>(m_summaryContent[iMon]);
755  m_meReportSummaryMap->setBinContent(2, iMon - m_nrL1Systems + 1, summCont);
756 
757  }
758 
759 }
760 
761 
762 
std::vector< std::vector< std::string > > m_objectQualityTestHist
std::vector< std::vector< std::string > > m_systemQualityTestName
const std::string & getName(void) const
get name of ME
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
void setBinContent(int binx, double content)
set content of bin (1-D)
void initialize()
private methods
std::vector< edm::ParameterSet > m_l1Objects
std::vector< int > m_objectDisable
std::vector< edm::ParameterSet > m_l1Systems
L1TEventInfoClient(const edm::ParameterSet &)
Constructor.
std::vector< std::string > m_systemLabel
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:305
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
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)
std::vector< std::vector< std::string > > m_systemQualityTestHist
std::vector< std::vector< unsigned int > > m_objectQtSummaryEnabled
void readQtResults(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
read quality test results
const std::string & getMessage(void) const
get message attached to test
Definition: QReport.h:24
void Fill(long long x)
std::vector< MonitorElement * > m_meReportSummaryContent
monitor elements to report content for all quality tests
Float_t m_reportSummary
summary report
static const int INVALID
virtual ~L1TEventInfoClient()
Destructor.
MonitorElement * m_meReportSummary
a summary report
std::vector< std::vector< unsigned int > > m_systemQtSummaryEnabled
int getStatus(void) const
get test status (see Core/interface/QTestStatus.h)
Definition: QReport.h:16
static const int DISABLED
void setTitle(const std::string &title)
set (ie. change) histogram/profile title
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
std::vector< QReport * > getQReports(void) const
get map of QReports
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::vector< int > m_systemDisable
std::vector< std::string > m_objectLabel
std::vector< std::string > m_disableL1Objects
std::vector< std::string > m_disableL1Systems
std::vector< std::vector< std::string > > m_objectQualityTestName
size_t m_nrL1Objects
number of L1 trigger objects
float getQTresult(void) const
get test result i.e. prob value
Definition: QReport.h:20
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
MonitorElement * bookFloat(Args &&...args)
Definition: DQMStore.h:109
TH2F * getTH2F(void) const
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void removeElement(Args &&...args)
Definition: DQMStore.h:202
std::vector< int > m_summaryContent
void dumpContentMonitorElements(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
dump the content of the monitoring elements defined in this module
bool m_verbose
input parameters