CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  // get back-end interface
73 
74  if (m_verbose) {
75  std::cout << "\nMonitor directory = " << m_monitorDir
76  << std::endl;
77  }
78 
79  // L1 systems
80 
81  m_nrL1Systems = m_l1Systems.size();
82 
86 
87  // on average five quality test per system - just a best guess
91 
92  int indexSys = 0;
93 
94  int totalNrQualityTests = 0;
95 
96  for (std::vector<edm::ParameterSet>::const_iterator itSystem =
97  m_l1Systems.begin(); itSystem != m_l1Systems.end(); ++itSystem) {
98 
99  m_systemLabel.push_back(itSystem->getParameter<std::string>(
100  "SystemLabel"));
101 
102  m_systemLabelExt.push_back(itSystem->getParameter<std::string>(
103  "HwValLabel"));
104 
105  m_systemDisable.push_back(itSystem->getParameter<unsigned int>(
106  "SystemDisable"));
107  // check the additional disable flag from m_disableL1Systems
108  for (std::vector<std::string>::const_iterator itSys =
109  m_disableL1Systems.begin(); itSys != m_disableL1Systems.end(); ++itSys) {
110 
111  if (*itSys == m_systemLabel[indexSys]) {
112  m_systemDisable[indexSys] = 1;
113 
114  }
115  }
116 
117  std::vector < edm::ParameterSet > qTests = itSystem->getParameter<
118  std::vector<edm::ParameterSet> > ("QualityTests");
119  size_t qtPerSystem = qTests.size();
120 
121  std::vector < std::string > qtNames;
122  qtNames.reserve(qtPerSystem);
123 
124  std::vector < std::string > qtFullPathHists;
125  qtFullPathHists.reserve(qtPerSystem);
126 
127  std::vector<unsigned int> qtSumEnabled;
128  qtSumEnabled.reserve(qtPerSystem);
129 
130  for (std::vector<edm::ParameterSet>::const_iterator itQT =
131  qTests.begin(); itQT != qTests.end(); ++itQT) {
132 
133  totalNrQualityTests++;
134 
135  qtNames.push_back(
136  itQT->getParameter<std::string> ("QualityTestName"));
137 
138  qtFullPathHists.push_back(
139  itQT->getParameter<std::string> ("QualityTestHist"));
140 
141  unsigned int qtEnabled = itQT->getParameter<unsigned int> (
142  "QualityTestSummaryEnabled");
143 
144  qtSumEnabled.push_back(qtEnabled);
145 
146  if (qtEnabled) {
148  }
149  }
150 
151  m_systemQualityTestName.push_back(qtNames);
152  m_systemQualityTestHist.push_back(qtFullPathHists);
153  m_systemQtSummaryEnabled.push_back(qtSumEnabled);
154 
155  indexSys++;
156 
157  }
158 
159  // L1 objects
160 
161  //
162  m_nrL1Objects = m_l1Objects.size();
163 
164  m_objectLabel.reserve(m_nrL1Objects);
166 
167  // on average five quality test per object - just a best guess
171 
172  int indexObj = 0;
173 
174  for (std::vector<edm::ParameterSet>::const_iterator itObject =
175  m_l1Objects.begin(); itObject != m_l1Objects.end(); ++itObject) {
176 
177  m_objectLabel.push_back(itObject->getParameter<std::string>(
178  "ObjectLabel"));
179 
180  m_objectDisable.push_back(itObject->getParameter<unsigned int>(
181  "ObjectDisable"));
182  // check the additional disable flag from m_disableL1Objects
183  for (std::vector<std::string>::const_iterator itObj =
184  m_disableL1Objects.begin(); itObj != m_disableL1Objects.end(); ++itObj) {
185 
186  if (*itObj == m_objectLabel[indexObj]) {
187  m_objectDisable[indexObj] = 1;
188 
189  }
190  }
191 
192  std::vector < edm::ParameterSet > qTests = itObject->getParameter<
193  std::vector<edm::ParameterSet> > ("QualityTests");
194  size_t qtPerObject = qTests.size();
195 
196  std::vector < std::string > qtNames;
197  qtNames.reserve(qtPerObject);
198 
199  std::vector < std::string > qtFullPathHists;
200  qtFullPathHists.reserve(qtPerObject);
201 
202  std::vector<unsigned int> qtSumEnabled;
203  qtSumEnabled.reserve(qtPerObject);
204 
205  for (std::vector<edm::ParameterSet>::const_iterator itQT =
206  qTests.begin(); itQT != qTests.end(); ++itQT) {
207 
208  totalNrQualityTests++;
209 
210  qtNames.push_back(
211  itQT->getParameter<std::string> ("QualityTestName"));
212 
213  qtFullPathHists.push_back(
214  itQT->getParameter<std::string> ("QualityTestHist"));
215 
216  unsigned int qtEnabled = itQT->getParameter<unsigned int> (
217  "QualityTestSummaryEnabled");
218 
219  qtSumEnabled.push_back(qtEnabled);
220 
221  if (qtEnabled) {
223  }
224  }
225 
226  m_objectQualityTestName.push_back(qtNames);
227  m_objectQualityTestHist.push_back(qtFullPathHists);
228  m_objectQtSummaryEnabled.push_back(qtSumEnabled);
229 
230  indexObj++;
231 
232  }
233 
235  m_meReportSummaryContent.reserve(totalNrQualityTests);
236 
237 }
238 
239 
241 
242 
243  // get backend interface
245 
246 }
247 
248 
250  const edm::EventSetup& evSetup) {
251 
252  bookHistograms();
253 
254 }
255 
256 
258  const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& evSetup) {
259 
260 }
261 
262 
264  const edm::EventSetup& evSetup) {
265 
266  // there is no loop on events in the offline harvesting step
267  // code here will not be executed offline
268 
269  if (m_runInEventLoop) {
270 
271  readQtResults();
272 
273  }
274 }
275 
276 
278  const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& evSetup) {
279 
280  if (m_runInEndLumi) {
281 
282  readQtResults();
283 
284  if (m_verbose) {
285 
286  std::cout << "\n L1TEventInfoClient::endLuminosityBlock\n"
287  << std::endl;
289  }
290 
291  }
292 }
293 
294 
296  const edm::EventSetup& evSetup) {
297 
298  if (m_runInEndRun) {
299 
300  readQtResults();
301 
302  if (m_verbose) {
303 
304  std::cout << "\n L1TEventInfoClient::endRun\n" << std::endl;
306  }
307 
308  }
309 }
310 
311 
313 
314  if (m_runInEndJob) {
315 
316  readQtResults();
317 
318  if (m_verbose) {
319 
320  std::cout << "\n L1TEventInfoClient::endRun\n" << std::endl;
322  }
323  }
324 }
325 
326 
328 
329  std::cout << "\nSummary report " << std::endl;
330 
331  // summary content
332 
334 
335  std::cout
336  << "\nSummary content per system and object as filled in histogram\n "
337  << m_meReportSummaryMap->getName() << std::endl;
338 
339  if (!me) {
340 
341  std::cout << "\nNo histogram " << m_meReportSummaryMap->getName()
342  << "\nNo summary content per system and object as filled in histogram.\n "
343  << std::endl;
344  return;
345 
346  }
347 
348  TH2F* hist = me->getTH2F();
349 
350  const int nBinsX = hist->GetNbinsX();
351  const int nBinsY = hist->GetNbinsY();
352  std::cout << nBinsX << " " << nBinsY;
353 
354  std::vector<std::vector<int> > meReportSummaryMap(nBinsX, std::vector<int>(
355  nBinsY));
356 
357 // for (int iBinX = 0; iBinX < nBinsX; iBinX++) {
358 // for (int iBinY = 0; iBinY < nBinsY; iBinY++) {
359 // meReportSummaryMap[iBinX][iBinY]
360 // = static_cast<int>(me->GetBinContent(iBinX + 1, iBinY + 1));
361 // }
362 // }
363 
364  std::cout << "\nL1 systems: " << m_nrL1Systems << " systems included\n"
365  << "\n Summary content size: " << (m_summaryContent.size())
366  << std::endl;
367 
368  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
369 
370  std::cout << std::setw(10) << m_systemLabel[iSys] << std::setw(10)
371  << m_systemLabelExt[iSys] << " \t" << m_systemDisable[iSys]
372  << " \t" << std::setw(25) << " m_summaryContent["
373  << std::setw(2) << iSys << "] = " << meReportSummaryMap[0][iSys]
374  << std::endl;
375  }
376 
377  std::cout << "\n L1 trigger objects: " << m_nrL1Objects
378  << " objects included\n" << std::endl;
379 
380  for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems
381  + m_nrL1Objects; ++iMon) {
382 
383  std::cout << std::setw(20) << m_objectLabel[iMon - m_nrL1Systems]
384  << " \t" << m_objectDisable[iMon - m_nrL1Systems] << " \t"
385  << std::setw(25) << " m_summaryContent[" << std::setw(2)
386  << iMon << "] = \t" << m_summaryContent[iMon] << std::endl;
387  }
388 
389  std::cout << std::endl;
390 
391  // quality tests
392 
393  std::cout << "\nQuality test results as filled in " << "\n "
394  << m_monitorDir << "/EventInfo/reportSummaryContents\n"
395  << "\n Total number of quality tests: "
396  << (m_meReportSummaryContent.size()) << "\n" << std::endl;
397 
398  for (std::vector<MonitorElement*>::const_iterator itME =
399  m_meReportSummaryContent.begin(); itME
400  != m_meReportSummaryContent.end(); ++itME) {
401 
402  std::cout << std::setw(50) << (*itME)->getName() << " \t"
403  << std::setw(25) << (*itME)->getFloatValue() << std::endl;
404 
405  }
406 
407  std::cout << std::endl;
408 
409 }
410 
411 
412 
414 
415  std::string dirEventInfo = m_monitorDir + "/EventInfo";
416 
417  m_dbe->setCurrentFolder(dirEventInfo);
418 
419  // remove m_meReportSummary if it exists
420  if ((m_meReportSummary = m_dbe->get(dirEventInfo + "/reportSummary"))) {
422  }
423 
424  // ...and book it again
425  m_meReportSummary = m_dbe->bookFloat("reportSummary");
426 
427  // initialize reportSummary to 1
428 
429  if (m_meReportSummary) {
431  }
432 
433  // define float histograms for reportSummaryContents (one histogram per quality test),
434  // initialize them to zero
435  // initialize also m_summaryContent to dqm::qstatus::DISABLED
436 
437  m_dbe->setCurrentFolder(dirEventInfo + "/reportSummaryContents");
438  // general counters:
439  // iAllQTest: all quality tests for all systems and objects
440  // iAllMon: all monitored systems and objects
441  int iAllQTest = 0;
442  int iAllMon = 0;
443 
444  for (unsigned int iMon = 0; iMon < m_nrL1Systems; ++iMon) {
445 
447 
448  const std::vector<std::string>& sysQtName =
450 
451  for (std::vector<std::string>::const_iterator itQtName =
452  sysQtName.begin(); itQtName != sysQtName.end(); ++itQtName) {
453 
454  const std::string hStr = m_monitorDir + "_L1Sys_" +m_systemLabel[iMon] + "_" + (*itQtName);
455 
456  m_meReportSummaryContent.push_back(m_dbe->bookFloat(hStr));
457  m_meReportSummaryContent[iAllQTest]->Fill(0.);
458 
459  iAllQTest++;
460  }
461 
462  iAllMon++;
463  }
464 
465 
466  for (unsigned int iMon = 0; iMon < m_nrL1Objects; ++iMon) {
467 
469 
470  const std::vector<std::string>& objQtName =
472 
473  for (std::vector<std::string>::const_iterator itQtName =
474  objQtName.begin(); itQtName != objQtName.end(); ++itQtName) {
475 
476  const std::string hStr = m_monitorDir + "_L1Obj_" + m_objectLabel[iMon] + "_"
477  + (*itQtName);
478 
479  m_meReportSummaryContent.push_back(m_dbe->bookFloat(hStr));
480  m_meReportSummaryContent[iAllQTest]->Fill(0.);
481 
482  iAllQTest++;
483  }
484 
485  iAllMon++;
486 
487  }
488 
489  m_dbe->setCurrentFolder(dirEventInfo);
490 
491  if ((m_meReportSummaryMap = m_dbe->get(dirEventInfo + "/reportSummaryMap"))) {
493  }
494 
495  // define a histogram with two bins on X and maximum of m_nrL1Systems, m_nrL1Objects on Y
496 
497  int nBinsY = std::max(m_nrL1Systems, m_nrL1Objects);
498 
499  m_meReportSummaryMap = m_dbe->book2D("reportSummaryMap",
500  "reportSummaryMap", 2, 1, 3, nBinsY, 1, nBinsY + 1);
501 
502  if (m_monitorDir == "L1TEMU") {
504  "L1TEMU: L1 Emulator vs Data Report Summary Map");
505 
506  } else if (m_monitorDir == "L1T") {
508  "L1T: L1 Trigger Data Report Summary Map");
509  } else {
510  // do nothing
511  }
512 
515 
516  m_meReportSummaryMap->setBinLabel(1, "L1 systems", 1);
517  m_meReportSummaryMap->setBinLabel(2, "L1 objects", 1);
518 
519  for (int iBin = 0; iBin < nBinsY; ++iBin) {
520 
521  m_meReportSummaryMap->setBinLabel(iBin + 1, " ", 2);
522  }
523 
524 }
525 
526 
528 
529  // initialize summary content, summary sum and ReportSummaryContent float histograms
530  // for all L1 systems and L1 objects
531 
532  for (std::vector<int>::iterator it = m_summaryContent.begin(); it
533  != m_summaryContent.end(); ++it) {
534 
535  (*it) = dqm::qstatus::DISABLED;
536 
537  }
538 
539  m_summarySum = 0.;
540 
541  for (std::vector<MonitorElement*>::iterator itME =
542  m_meReportSummaryContent.begin(); itME
543  != m_meReportSummaryContent.end(); ++itME) {
544 
545  (*itME)->Fill(0.);
546 
547  }
548 
549 
550  // general counters:
551  // iAllQTest: all quality tests for all systems and objects
552  // iAllMon: all monitored systems and objects
553  int iAllQTest = 0;
554  int iAllMon = 0;
555 
556 
557  // quality tests for all L1 systems
558 
559  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
560 
561  // get the reports for each quality test
562 
563  const std::vector<std::string>& sysQtName =
565  const std::vector<std::string>& sysQtHist =
567  const std::vector<unsigned int>& sysQtSummaryEnabled =
569 
570  // pro system counter for quality tests
571  int iSysQTest = 0;
572 
573  for (std::vector<std::string>::const_iterator itQtName =
574  sysQtName.begin(); itQtName != sysQtName.end(); ++itQtName) {
575 
576  // get results, status and message
577 
578  MonitorElement* qHist = m_dbe->get(sysQtHist[iSysQTest]);
579 
580  if (qHist) {
581  const std::vector<QReport*> qtVec = qHist->getQReports();
582  const std::string hName = qHist->getName();
583 
584  if (m_verbose) {
585 
586  std::cout << "\nNumber of quality tests "
587  << " for histogram " << sysQtHist[iSysQTest]
588  << ": " << qtVec.size() << "\n" << std::endl;
589  }
590 
591  const QReport* sysQReport = qHist->getQReport(*itQtName);
592  if (sysQReport) {
593  const float sysQtResult = sysQReport->getQTresult();
594  const int sysQtStatus = sysQReport->getStatus();
595  const std::string& sysQtMessage = sysQReport->getMessage();
596 
597  if (m_verbose) {
598  std::cout << "\n" << (*itQtName) << " quality test:"
599  << "\n result: " << sysQtResult
600  << "\n status: " << sysQtStatus
601  << "\n message: " << sysQtMessage << "\n"
602  << "\nFilling m_meReportSummaryContent["
603  << iAllQTest << "] with value "
604  << sysQtResult << "\n" << std::endl;
605  }
606 
607  m_meReportSummaryContent[iAllQTest]->Fill(sysQtResult);
608 
609  // for the summary map, keep the highest status value ("ERROR") of all tests
610  // which are considered for the summary plot
611  if (sysQtSummaryEnabled[iSysQTest]) {
612 
613  if (sysQtStatus > m_summaryContent[iAllMon]) {
614  m_summaryContent[iAllMon] = sysQtStatus;
615  }
616 
617  m_summarySum += sysQtResult;
618  }
619 
620 
621  } else {
622 
623  // for the summary map, if the test was not found but it is assumed to be
624  // considered for the summary plot, set it to dqm::qstatus::INVALID
625 
626  int sysQtStatus = dqm::qstatus::INVALID;
627 
628  if (sysQtSummaryEnabled[iSysQTest]) {
629 
630  if (sysQtStatus > m_summaryContent[iAllMon]) {
631  m_summaryContent[iAllMon] = sysQtStatus;
632  }
633  }
634 
635  m_meReportSummaryContent[iAllQTest]->Fill(0.);
636 
637  if (m_verbose) {
638 
639  std::cout << "\n" << (*itQtName)
640  << " quality test not found\n" << std::endl;
641  }
642  }
643 
644  } else {
645  // for the summary map, if the histogram was not found but it is assumed
646  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
647 
648  int sysQtStatus = dqm::qstatus::INVALID;
649 
650  if (sysQtSummaryEnabled[iSysQTest]) {
651 
652  if (sysQtStatus > m_summaryContent[iAllMon]) {
653  m_summaryContent[iAllMon] = sysQtStatus;
654  }
655  }
656 
657  m_meReportSummaryContent[iAllQTest]->Fill(0.);
658 
659  if (m_verbose) {
660 
661  std::cout << "\nHistogram " << sysQtHist[iSysQTest]
662  << " not found\n" << std::endl;
663  }
664 
665  }
666 
667  // increase counters for quality tests
668  iSysQTest++;
669  iAllQTest++;
670 
671  }
672 
673  iAllMon++;
674 
675  }
676 
677  // quality tests for all L1 objects
678 
679  for (unsigned int iObj = 0; iObj < m_nrL1Objects; ++iObj) {
680 
681  // get the reports for each quality test
682 
683  const std::vector<std::string>& objQtName =
685  const std::vector<std::string>& objQtHist =
687  const std::vector<unsigned int>& objQtSummaryEnabled =
689 
690  // pro object counter for quality tests
691  int iObjQTest = 0;
692 
693  for (std::vector<std::string>::const_iterator itQtName =
694  objQtName.begin(); itQtName != objQtName.end(); ++itQtName) {
695 
696  // get results, status and message
697 
698  MonitorElement* qHist = m_dbe->get(objQtHist[iObjQTest]);
699 
700  if (qHist) {
701  const std::vector<QReport*> qtVec = qHist->getQReports();
702  const std::string hName = qHist->getName();
703 
704  if (m_verbose) {
705 
706  std::cout << "\nNumber of quality tests "
707  << " for histogram " << objQtHist[iObjQTest]
708  << ": " << qtVec.size() << "\n" << std::endl;
709  }
710 
711  const QReport* objQReport = qHist->getQReport(*itQtName);
712  if (objQReport) {
713  const float objQtResult = objQReport->getQTresult();
714  const int objQtStatus = objQReport->getStatus();
715  const std::string& objQtMessage = objQReport->getMessage();
716 
717  if (m_verbose) {
718  std::cout << "\n" << (*itQtName) << " quality test:"
719  << "\n result: " << objQtResult
720  << "\n status: " << objQtStatus
721  << "\n message: " << objQtMessage << "\n"
722  << "\nFilling m_meReportSummaryContent["
723  << iAllQTest << "] with value "
724  << objQtResult << "\n" << std::endl;
725  }
726 
727  m_meReportSummaryContent[iAllQTest]->Fill(objQtResult);
728 
729  // for the summary map, keep the highest status value ("ERROR") of all tests
730  // which are considered for the summary plot
731  if (objQtSummaryEnabled[iObjQTest]) {
732 
733  if (objQtStatus > m_summaryContent[iAllMon]) {
734  m_summaryContent[iAllMon] = objQtStatus;
735  }
736 
737  m_summarySum += objQtResult;
738  }
739 
740  } else {
741 
742  // for the summary map, if the test was not found but it is assumed to be
743  // considered for the summary plot, set it to dqm::qstatus::INVALID
744 
745  int objQtStatus = dqm::qstatus::INVALID;
746 
747  if (objQtSummaryEnabled[iObjQTest]) {
748 
749  if (objQtStatus > m_summaryContent[iAllMon]) {
750  m_summaryContent[iAllMon] = objQtStatus;
751  }
752  }
753 
754  m_meReportSummaryContent[iAllQTest]->Fill(0.);
755 
756  if (m_verbose) {
757 
758  std::cout << "\n" << (*itQtName)
759  << " quality test not found\n" << std::endl;
760  }
761 
762  }
763 
764  } else {
765  // for the summary map, if the histogram was not found but it is assumed
766  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
767 
768  int objQtStatus = dqm::qstatus::INVALID;
769 
770  if (objQtSummaryEnabled[iObjQTest]) {
771 
772  if (objQtStatus > m_summaryContent[iAllMon]) {
773  m_summaryContent[iAllMon] = objQtStatus;
774  }
775  }
776 
777  m_meReportSummaryContent[iAllQTest]->Fill(0.);
778 
779  if (m_verbose) {
780  std::cout << "\nHistogram " << objQtHist[iObjQTest]
781  << " not found\n" << std::endl;
782  }
783 
784  }
785 
786  // increase counters for quality tests
787  iObjQTest++;
788  iAllQTest++;
789  }
790 
791  iAllMon++;
792 
793  }
794 
795 
796 
797  // reportSummary value
799  if (m_meReportSummary) {
801  }
802 
803  // fill the ReportSummaryMap for L1 systems (bin 1 on X)
804  for (unsigned int iSys = 0; iSys < m_nrL1Systems; ++iSys) {
805 
806  double summCont = static_cast<double>(m_summaryContent[iSys]);
807  m_meReportSummaryMap->setBinContent(1, iSys + 1, summCont);
808  }
809 
810  // fill the ReportSummaryMap for L1 objects (bin 2 on X)
811  for (unsigned int iMon = m_nrL1Systems; iMon < m_nrL1Systems
812  + m_nrL1Objects; ++iMon) {
813 
814  double summCont = static_cast<double>(m_summaryContent[iMon]);
815  m_meReportSummaryMap->setBinContent(2, iMon - m_nrL1Systems + 1, summCont);
816 
817  }
818 
819 }
820 
821 
822 
std::vector< std::vector< std::string > > m_objectQualityTestHist
std::vector< std::vector< std::string > > m_systemQualityTestName
void bookHistograms()
book histograms
const std::string & getName(void) const
get name of ME
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to &lt;qtname&gt; (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
void beginRun(const edm::Run &, const edm::EventSetup &)
begin run
L1TEventInfoClient(const edm::ParameterSet &)
Constructor.
std::vector< std::string > m_systemLabel
void readQtResults()
read quality test results
void endRun(const edm::Run &, const edm::EventSetup &)
end run
std::vector< std::string > m_systemLabelExt
void beginJob()
begin job
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
const std::string & getMessage(void) const
get message attached to test
Definition: QReport.h:24
MonitorElement * bookFloat(const char *name)
Book float.
Definition: DQMStore.cc:891
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
int iEvent
Definition: GenABIO.cc:230
static const int INVALID
virtual ~L1TEventInfoClient()
Destructor.
MonitorElement * m_meReportSummary
a summary report
std::vector< std::vector< unsigned int > > m_systemQtSummaryEnabled
void removeElement(const std::string &name)
Definition: DQMStore.cc:3143
void analyze(const edm::Event &, const edm::EventSetup &)
analyze
int getStatus(void) const
get test status (see Core/interface/QTestStatus.h)
Definition: QReport.h:16
static const int DISABLED
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1708
void setTitle(const std::string &title)
set (ie. change) histogram/profile title
void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
end luminosity block
std::vector< QReport * > getQReports(void) const
get map of QReports
std::vector< int > m_systemDisable
std::vector< std::string > m_objectLabel
void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
begin luminosity block
void dumpContentMonitorElements()
dump the content of the monitoring elements defined in this module
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
size_t m_nrL1Systems
number of L1 trigger systems
tuple cout
Definition: gather_cfg.py:121
volatile std::atomic< bool > shutdown_flag false
TH2F * getTH2F(void) const
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1082
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
std::vector< int > m_summaryContent
Definition: Run.h:41
bool m_verbose
input parameters