CMS 3D CMS Logo

L1TEMTFEventInfoClient.cc
Go to the documentation of this file.
1 
13 // this class header
15 
16 // constructor
18  m_verbose(parSet.getUntrackedParameter<bool>("verbose", false)),
19  m_monitorDir(parSet.getUntrackedParameter<std::string>("monitorDir", "")),
20  m_histDir(parSet.getUntrackedParameter<std::string>("histDir", "")),
21  m_runInEventLoop(parSet.getUntrackedParameter<bool>("runInEventLoop", false)),
22  m_runInEndLumi(parSet.getUntrackedParameter<bool>("runInEndLumi", false)),
23  m_runInEndRun(parSet.getUntrackedParameter<bool>("runInEndRun", false)),
24  m_runInEndJob(parSet.getUntrackedParameter<bool>("runInEndJob", false)),
25  m_trackObjects(parSet.getParameter<std::vector<edm::ParameterSet> >("TrackObjects")),
26  m_hitObjects(parSet.getParameter<std::vector<edm::ParameterSet> >("HitObjects")),
27  m_disableTrackObjects(parSet.getParameter<std::vector<std::string> >("DisableTrackObjects")),
28  m_disableHitObjects(parSet.getParameter<std::vector<std::string> >("DisableHitObjects")),
29  m_noisyStrip(parSet.getParameter<std::vector<edm::ParameterSet> >("NoisyStrip")),
30  m_deadStrip(parSet.getParameter<std::vector<edm::ParameterSet> >("DeadStrip")),
31  m_disableNoisyStrip(parSet.getParameter<std::vector<std::string> >("DisableNoisyStrip")),
32  m_disableDeadStrip(parSet.getParameter<std::vector<std::string> >("DisableDeadStrip")),
33  m_nrTrackObjects(0),
34  m_nrHitObjects(0),
35  m_nrNoisyStrip(0),
36  m_nrDeadStrip(0),
37  m_totalNrQtSummaryEnabled(0) {
38 
39  initialize();
40 }
41 
42 // destructor
44  //empty
45 }
46 
48 
49  if (m_verbose) std::cout << "\nMonitor directory = " << m_monitorDir << std::endl;
50 
51  // L1 systems
52 
54 
56  // m_trackLabelExt.reserve(m_nrTrackObjects); // Not needed? - AWB 05.12.16
58 
59  // on average five quality test per system - just a best guess
60  m_trackQualityTestName.reserve(5*m_nrTrackObjects); // Not needed? - AWB 05.12.16
61  m_trackQualityTestHist.reserve(5*m_nrTrackObjects); // Not needed? - AWB 05.12.16
62  m_trackQtSummaryEnabled.reserve(5*m_nrTrackObjects); // Not needed? - AWB 05.12.16
63 
64  int indexSys = 0;
65 
66  int totalNrQualityTests = 0;
67 
68  for (const auto & itTrack : m_trackObjects) {
69 
70  m_trackLabel.push_back(itTrack.getParameter<std::string>(
71  "SystemLabel"));
72 
73  // m_trackLabelExt.push_back(itTrack.getParameter<std::string>( // Not needed? - AWB 05.12.16
74  // "HwValLabel"));
75 
76  m_trackDisable.push_back(itTrack.getParameter<unsigned int>(
77  "SystemDisable"));
78  // check the additional disable flag from m_disableTrackObjects
79  for (const auto & itSys : m_disableTrackObjects) {
80 
81  if (itSys == m_trackLabel[indexSys]) {
82  m_trackDisable[indexSys] = 1;
83 
84  }
85  }
86 
87  std::vector < edm::ParameterSet > qTests = itTrack.getParameter<
88  std::vector<edm::ParameterSet> > ("QualityTests");
89  size_t qtPerSystem = qTests.size();
90 
91  std::vector < std::string > qtNames;
92  qtNames.reserve(qtPerSystem);
93 
94  std::vector < std::string > qtFullPathHists;
95  qtFullPathHists.reserve(qtPerSystem);
96 
97  std::vector<unsigned int> qtSumEnabled;
98  qtSumEnabled.reserve(qtPerSystem);
99 
100  if (m_verbose) std::cout << "\nLooping over track quality tests" << std::endl;
101  for (const auto & itQT : qTests) {
102 
103  totalNrQualityTests++;
104 
105  qtNames.push_back(
106  itQT.getParameter<std::string> ("QualityTestName"));
107 
108  // qtFullPathHists.push_back( m_histDir + "/" + itQT.getParameter<std::string> ("QualityTestHist"));
109  qtFullPathHists.push_back( itQT.getParameter<std::string> ("QualityTestHist"));
110  if (m_verbose) std::cout << qtFullPathHists.back() << std::endl;
111 
112  unsigned int qtEnabled = itQT.getParameter<unsigned int> (
113  "QualityTestSummaryEnabled");
114 
115  qtSumEnabled.push_back(qtEnabled);
116 
117  if (qtEnabled) {
119  }
120  }
121 
122  m_trackQualityTestName.push_back(qtNames);
123  m_trackQualityTestHist.push_back(qtFullPathHists);
124  m_trackQtSummaryEnabled.push_back(qtSumEnabled);
125 
126  indexSys++;
127 
128  }
129 
130  // L1 objects
131 
132  //
133  m_nrHitObjects = m_hitObjects.size();
134 
135  m_hitLabel.reserve(m_nrHitObjects);
136  m_hitDisable.reserve(m_nrHitObjects);
137 
138  // on average five quality test per object - just a best guess
142 
143  int indexObj = 0;
144 
145  for (const auto & itObject : m_hitObjects) {
146 
147  m_hitLabel.push_back(itObject.getParameter<std::string>(
148  "HitLabel"));
149 
150  m_hitDisable.push_back(itObject.getParameter<unsigned int>(
151  "HitDisable"));
152  // check the additional disable flag from m_disableHitObjects
153  for (const auto & itObj : m_disableHitObjects) {
154 
155  if (itObj == m_hitLabel[indexObj]) {
156  m_hitDisable[indexObj] = 1;
157 
158  }
159  }
160 
161  std::vector < edm::ParameterSet > qTests = itObject.getParameter<
162  std::vector<edm::ParameterSet> > ("QualityTests");
163  size_t qtPerObject = qTests.size();
164 
165  std::vector < std::string > qtNames;
166  qtNames.reserve(qtPerObject);
167 
168  std::vector < std::string > qtFullPathHists;
169  qtFullPathHists.reserve(qtPerObject);
170 
171  std::vector<unsigned int> qtSumEnabled;
172  qtSumEnabled.reserve(qtPerObject);
173 
174  if (m_verbose) std::cout << "\nLooping over hit quality tests" << std::endl;
175  for (const auto & itQT : qTests) {
176 
177  totalNrQualityTests++;
178 
179  qtNames.push_back(
180  itQT.getParameter<std::string> ("QualityTestName"));
181 
182  // qtFullPathHists.push_back( m_histDir + "/" + itQT.getParameter<std::string> ("QualityTestHist") );
183  qtFullPathHists.push_back( itQT.getParameter<std::string> ("QualityTestHist") );
184  if (m_verbose) std::cout << qtFullPathHists.back() << std::endl;
185 
186  unsigned int qtEnabled = itQT.getParameter<unsigned int> (
187  "QualityTestSummaryEnabled");
188 
189  qtSumEnabled.push_back(qtEnabled);
190 
191  if (qtEnabled) {
193  }
194  }
195 
196  m_hitQualityTestName.push_back(qtNames);
197  m_hitQualityTestHist.push_back(qtFullPathHists);
198  m_hitQtSummaryEnabled.push_back(qtSumEnabled);
199 
200  indexObj++;
201 
202  }
203 
204 
205  // L1 Strip Noisy=========================================================================================
206 
207  m_nrNoisyStrip = m_noisyStrip.size();
208 
209  m_noisyLabel.reserve(m_nrNoisyStrip);
211 
212  // on average 20 quality tests per system
213  m_noisyQualityTestName.reserve(20*m_nrNoisyStrip); // Not needed? - AWB 05.12.16
214  m_noisyQualityTestHist.reserve(20*m_nrNoisyStrip); // Not needed? - AWB 05.12.16
215  m_noisyQtSummaryEnabled.reserve(20*m_nrNoisyStrip); // Not needed? - AWB 05.12.16
216 
217  int indexNois = 0;
218 
219  for (const auto & itNoisy : m_noisyStrip) {
220 
221  m_noisyLabel.push_back(itNoisy.getParameter<std::string>(
222  "NoisyLabel"));
223 
224  m_noisyDisable.push_back(itNoisy.getParameter<unsigned int>(
225  "NoisyDisable"));
226  // check the additional disable flag from m_disableNoisyObjects
227  for (const auto & itNois : m_disableNoisyStrip) {
228 
229  if (itNois == m_noisyLabel[indexNois]) {
230  m_noisyDisable[indexNois] = 1;
231  }
232  }
233 
234  std::vector < edm::ParameterSet > qTests = itNoisy.getParameter<
235  std::vector<edm::ParameterSet> > ("QualityTests");
236  size_t qtPerNoisy = qTests.size();
237 
238  std::vector < std::string > qtNames;
239  qtNames.reserve(qtPerNoisy);
240 
241  std::vector < std::string > qtFullPathHists;
242  qtFullPathHists.reserve(qtPerNoisy);
243 
244  std::vector<unsigned int> qtSumEnabled;
245  qtSumEnabled.reserve(qtPerNoisy);
246 
247  if (m_verbose) std::cout << "\nLooping over noisy quality tests" << std::endl;
248  for (const auto & itQT : qTests) {
249 
250  totalNrQualityTests++;
251 
252  qtNames.push_back(
253  itQT.getParameter<std::string> ("QualityTestName"));
254 
255  qtFullPathHists.push_back( itQT.getParameter<std::string> ("QualityTestHist"));
256  if (m_verbose) std::cout << qtFullPathHists.back() << std::endl;
257 
258  unsigned int qtEnabled = itQT.getParameter<unsigned int> (
259  "QualityTestSummaryEnabled");
260 
261  qtSumEnabled.push_back(qtEnabled);
262 
263  if (qtEnabled) {
265  }
266  }
267 
268  m_noisyQualityTestName.push_back(qtNames);
269  m_noisyQualityTestHist.push_back(qtFullPathHists);
270  m_noisyQtSummaryEnabled.push_back(qtSumEnabled);
271 
272  indexNois++;
273  }
274 
275  // L1 Strip Dead=========================================================================================
276 
277  m_nrDeadStrip = m_deadStrip.size();
278 
279  m_deadLabel.reserve(m_nrDeadStrip);
280  m_deadDisable.reserve(m_nrDeadStrip);
281 
282  // on average 20 quality tests per system
283  m_deadQualityTestName.reserve(20*m_nrDeadStrip); // Not needed? - AWB 05.12.16
284  m_deadQualityTestHist.reserve(20*m_nrDeadStrip); // Not needed? - AWB 05.12.16
285  m_deadQtSummaryEnabled.reserve(20*m_nrDeadStrip); // Not needed? - AWB 05.12.16
286 
287  int indexDed = 0;
288 
289  for (const auto & itDead : m_deadStrip) {
290 
291  m_deadLabel.push_back(itDead.getParameter<std::string>(
292  "DeadLabel"));
293 
294  m_deadDisable.push_back(itDead.getParameter<unsigned int>(
295  "DeadDisable"));
296  // check the additional disable flag from m_disableDeadObjects
297  for (const auto & itDed : m_disableDeadStrip) {
298 
299  if (itDed == m_deadLabel[indexDed]) {
300  m_deadDisable[indexDed] = 1;
301  }
302  }
303 
304  std::vector < edm::ParameterSet > qTests = itDead.getParameter<
305  std::vector<edm::ParameterSet> > ("QualityTests");
306  size_t qtPerDead = qTests.size();
307 
308  std::vector < std::string > qtNames;
309  qtNames.reserve(qtPerDead);
310 
311  std::vector < std::string > qtFullPathHists;
312  qtFullPathHists.reserve(qtPerDead);
313 
314  std::vector<unsigned int> qtSumEnabled;
315  qtSumEnabled.reserve(qtPerDead);
316 
317  if (m_verbose) std::cout << "\nLooping over dead quality tests" << std::endl;
318  for (const auto & itQT : qTests) {
319 
320  totalNrQualityTests++;
321 
322  qtNames.push_back(
323  itQT.getParameter<std::string> ("QualityTestName"));
324 
325  qtFullPathHists.push_back( itQT.getParameter<std::string> ("QualityTestHist"));
326  if (m_verbose) std::cout << qtFullPathHists.back() << std::endl;
327 
328  unsigned int qtEnabled = itQT.getParameter<unsigned int> (
329  "QualityTestSummaryEnabled");
330 
331  qtSumEnabled.push_back(qtEnabled);
332 
333  if (qtEnabled) {
335  }
336  }
337 
338  m_deadQualityTestName.push_back(qtNames);
339  m_deadQualityTestHist.push_back(qtFullPathHists);
340  m_deadQtSummaryEnabled.push_back(qtSumEnabled);
341 
342  indexDed++;
343  }
344 
346  m_meReportSummaryContent.reserve(totalNrQualityTests);
347 
348 }
349 
351 
352  if (m_verbose) std::cout << "\nInside void L1TEMTFEventInfoClient::dqmEndLuminosityBlock" << std::endl;
353  if (m_runInEndLumi) {
354 
355  book(ibooker, igetter);
356  readQtResults(ibooker, igetter);
357 
358  if (m_verbose) {
359  std::cout << "\n L1TEMTFEventInfoClient::endLuminosityBlock\n" << std::endl;
360  dumpContentMonitorElements(ibooker, igetter);
361  }
362 
363  }
364 }
365 
366 
368 
369  if (m_verbose) std::cout << "\nInside void L1TEMTFEventInfoClient::dqmEndJob" << std::endl;
370  book(ibooker, igetter);
371 
372  readQtResults(ibooker, igetter);
373 
374  if (m_verbose) {
375  std::cout << "\n L1TEMTFEventInfoClient::endRun\n" << std::endl;
376  dumpContentMonitorElements(ibooker, igetter);
377  }
378 }
379 
381 
382  if (m_verbose) std::cout << "\nSummary report " << std::endl;
383 
384  // summary content
385 
387 
388  if (m_verbose) std::cout << "\nSummary content per system and object as filled in histogram\n "
389  << m_meReportSummaryMap->getName() << std::endl;
390 
391  if (!me) {
392 
393  if (m_verbose) std::cout << "\nNo histogram " << m_meReportSummaryMap->getName()
394  << "\nNo summary content per system and object as filled in histogram.\n " << std::endl;
395  return;
396  }
397 
398  TH2F* hist = me->getTH2F();
399 
400  const int nBinsX = hist->GetNbinsX();
401  const int nBinsY = hist->GetNbinsY();
402  if (m_verbose) std::cout << nBinsX << " " << nBinsY;
403 
404  std::vector<std::vector<int> > meReportSummaryMap(nBinsX, std::vector<int>(
405  nBinsY));
406 
407 // for (int iBinX = 0; iBinX < nBinsX; iBinX++) {
408 // for (int iBinY = 0; iBinY < nBinsY; iBinY++) {
409 // meReportSummaryMap[iBinX][iBinY]
410 // = static_cast<int>(me->GetBinContent(iBinX + 1, iBinY + 1));
411 // }
412 // }
413 
414  if (m_verbose) std::cout << "\nL1 systems: " << m_nrTrackObjects << " systems included\n"
415  << "\n Summary content size: " << (m_summaryContent.size()) << std::endl;
416 
417  for (unsigned int iTrackObj = 0; iTrackObj < m_nrTrackObjects; ++iTrackObj) {
418 
419  if (m_verbose) std::cout << std::setw(10) << m_trackLabel[iTrackObj] << std::setw(10)
420  // << m_trackLabelExt[iTrackObj] << " \t" << m_trackDisable[iTrackObj]
421  << m_trackDisable[iTrackObj]
422  << " \t" << std::setw(25) << " m_summaryContent["
423  << std::setw(2) << iTrackObj << "] = " << meReportSummaryMap[0][iTrackObj] << std::endl;
424  }
425 
426  if (m_verbose) std::cout << "\n L1 trigger objects: " << m_nrHitObjects
427  << " objects included\n" << std::endl;
428 
429  for (unsigned int iMon = m_nrTrackObjects; iMon < m_nrTrackObjects
430  + m_nrHitObjects; ++iMon) {
431 
432  if (m_verbose) std::cout << std::setw(20) << m_hitLabel[iMon - m_nrTrackObjects]
433  << " \t" << m_hitDisable[iMon - m_nrTrackObjects] << " \t"
434  << std::setw(25) << " m_summaryContent[" << std::setw(2)
435  << iMon << "] = \t" << m_summaryContent[iMon] << std::endl;
436  }
437 
438  if (m_verbose) std::cout << std::endl;
439 
440  // quality tests
441 
442  if (m_verbose) std::cout << "\nQuality test results as filled in " << "\n "
443  << m_monitorDir << "/EventInfo/reportSummaryContents\n"
444  << "\n Total number of quality tests: "
445  << (m_meReportSummaryContent.size()) << "\n" << std::endl;
446 
447  for (const auto itME : m_meReportSummaryContent) {
448  if (m_verbose) std::cout << std::setw(50) << itME->getName() << " \t"
449  << std::setw(25) << itME->getFloatValue() << std::endl;
450  }
451 
452  if (m_verbose) std::cout << std::endl;
453 
454 }
455 
456 
457 
459 
460  if (m_verbose) std::cout << "\nInside void L1TEMTFEventInfoClient::book" << std::endl;
461  std::string dirEventInfo = m_monitorDir + "/EventInfo";
462  if (m_verbose) std::cout << dirEventInfo << std::endl;
463 
464  ibooker.setCurrentFolder(dirEventInfo);
465  if (m_verbose) std::cout << "Ran ibooker.setCurrentFolder(dirEventInfo;" << std::endl;
466 
467  // remove m_meReportSummary if it exists
468  if ((m_meReportSummary = igetter.get(dirEventInfo + "/reportSummary"))) {
469  if (m_verbose) std::cout << "Removing m_meReportSummary" << std::endl;
471  if (m_verbose) std::cout << "Ran igetter.removeElement(m_meReportSummary->getName());" << std::endl;
472  }
473 
474  // ...and book it again
475  m_meReportSummary = ibooker.bookFloat("reportSummary");
476  if (m_verbose) std::cout << "Ran m_meReportSummary = ibooker.bookFloat" << std::endl;
477 
478  // initialize reportSummary to 1
479 
480  if (m_meReportSummary) {
481  if (m_verbose) std::cout << "Initializing reportSummary to 1" << std::endl;
483  if (m_verbose) std::cout << "Ran m_meReportSummary->Fill(1);" << std::endl;
484  }
485 
486  // define float histograms for reportSummaryContents (one histogram per quality test),
487  // initialize them to zero
488  // initialize also m_summaryContent to dqm::qstatus::DISABLED
489 
490  ibooker.setCurrentFolder(dirEventInfo + "/reportSummaryContents");
491  if (m_verbose) std::cout << "Ran ibooker.setCurrentFolder(dirEventInfo" << std::endl;
492  // general counters:
493  // iAllQTest: all quality tests for all systems and objects
494  // iAllMon: all monitored systems and objects
495  int iAllQTest = 0;
496  int iAllMon = 0;
497 
498  if (m_verbose) std::cout << "m_nrTrackObjects = " << m_nrTrackObjects << std::endl;
499  for (unsigned int iMon = 0; iMon < m_nrTrackObjects; ++iMon) {
500  if (m_verbose) std::cout << " * iMon = " << iMon << std::endl;
501 
503  if (m_verbose) std::cout << "Ran m_summaryContent.push_back(dqm::qstatus::DISABLED);" << std::endl;
504 
505  const std::vector<std::string>& trackObjQtName = m_trackQualityTestName[iMon];
506  if (m_verbose) std::cout << "Ran const std::vector<std::string>& trackObjQtName = m_trackQualityTestName[iMon];" << std::endl;
507 
508  for (const auto & itQtName : trackObjQtName) {
509 
510  if (m_verbose) std::cout << " - m_monitorDir = " << m_monitorDir << ", m_trackLabel[iMon] = " << m_trackLabel[iMon]
511  << ", (itQtName) = " << (itQtName) << std::endl;
512 
513  // Avoid error in ibooker.bookFloat(hStr))
514  std::string m_mon_mod = m_monitorDir;
515  std::replace( m_mon_mod.begin(), m_mon_mod.end(), '/', '_' );
516 
517  const std::string hStr = m_mon_mod + "_L1Sys_" +m_trackLabel[iMon] + "_" + (itQtName);
518  if (m_verbose) std::cout << " - " << hStr << std::endl;
519 
520  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
521  if (m_verbose) std::cout << " - Ran m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));" << std::endl;
522  m_meReportSummaryContent[iAllQTest]->Fill(0.);
523  if (m_verbose) std::cout << " - Ran m_meReportSummaryContent[iAllQTest]->Fill(0.);" << std::endl;
524 
525  iAllQTest++;
526  }
527 
528  iAllMon++;
529  }
530 
531 
532  for (unsigned int iMon = 0; iMon < m_nrHitObjects; ++iMon) {
533  if (m_verbose) std::cout << " * iMon = " << iMon << std::endl;
534 
536 
537  const std::vector<std::string>& objQtName =
538  m_hitQualityTestName[iMon];
539 
540  for (const auto & itQtName : objQtName) {
541 
542  // Avoid error in ibooker.bookFloat(hStr))
543  std::string m_mon_mod = m_monitorDir;
544  std::replace( m_mon_mod.begin(), m_mon_mod.end(), '/', '_' );
545 
546  const std::string hStr = m_mon_mod + "_L1Obj_" + m_hitLabel[iMon] + "_" + (itQtName);
547  if (m_verbose) std::cout << " - " << hStr << std::endl;
548 
549  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
550  if (m_verbose) std::cout << " - Ran m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));" << std::endl;
551  m_meReportSummaryContent[iAllQTest]->Fill(0.);
552  if (m_verbose) std::cout << " - Ran m_meReportSummaryContent[iAllQTest]->Fill(0.);" << std::endl;
553 
554  iAllQTest++;
555  }
556 
557  iAllMon++;
558 
559  }
560 
561  // for Noisy Strips ====================================================================
562  for (unsigned int iMon = 0; iMon < m_nrNoisyStrip; ++iMon) {
563 
565 
566  const std::vector<std::string>& objQtName =
568 
569  for (const auto & itQtName : objQtName) {
570 
571  // Avoid error in ibooker.bookFloat(hStr))
572  std::string m_mon_mod = m_monitorDir;
573  std::replace( m_mon_mod.begin(), m_mon_mod.end(), '/', '_' );
574 
575  const std::string hStr = m_mon_mod + "_L1Obj_" + m_noisyLabel[iMon] + "_" + (itQtName);
576  if (m_verbose) std::cout << " - " << hStr << std::endl;
577 
578  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
579  m_meReportSummaryContent[iAllQTest]->Fill(0.);
580 
581  iAllQTest++;
582  }
583  iAllMon++;
584  }
585  // for Dead Strips ====================================================================
586  for (unsigned int iMon = 0; iMon < m_nrDeadStrip; ++iMon) {
587 
589 
590  const std::vector<std::string>& objQtName =
591  m_deadQualityTestName[iMon];
592 
593  for (const auto & itQtName : objQtName) {
594 
595  // Avoid error in ibooker.bookFloat(hStr))
596  std::string m_mon_mod = m_monitorDir;
597  std::replace( m_mon_mod.begin(), m_mon_mod.end(), '/', '_' );
598 
599  const std::string hStr = m_mon_mod + "_L1Obj_" + m_deadLabel[iMon] + "_" + (itQtName);
600  if (m_verbose) std::cout << " - " << hStr << std::endl;
601 
602  m_meReportSummaryContent.push_back(ibooker.bookFloat(hStr));
603  m_meReportSummaryContent[iAllQTest]->Fill(0.);
604 
605  iAllQTest++;
606  }
607  iAllMon++;
608  }
609 
610  if (m_verbose) std::cout << "Setting current folder to " << dirEventInfo << std::endl;
611  ibooker.setCurrentFolder(dirEventInfo);
612  if (m_verbose) std::cout << "Ran ibooker.setCurrentFolder(dirEventInfo);" << std::endl;
613 
614  // Should this be a "==" ? - AWB 03.12.16
615  if ((m_meReportSummaryMap = igetter.get(dirEventInfo + "/reportSummaryMap"))) {
617  }
618 
619  // define a histogram with two bins on X and maximum of m_nrTrackObjects, m_nrHitObjects on Y
620  int nBinsY = std::max(m_nrTrackObjects, m_nrHitObjects);
621  int nBinsYStrip = std::max(m_nrNoisyStrip, m_nrDeadStrip);
622 
623  m_meReportSummaryMap = ibooker.book2D("reportSummaryMap",
624  "reportSummaryMap", 2, 1, 3, nBinsY, 1, nBinsY + 1);
625  m_meReportSummaryMap_chamberStrip = ibooker.book2D("reportSummaryMap_chamberStrip",
626  "reportSummaryMap_chamberStrip", 2, 1, 3, nBinsYStrip, 1, nBinsYStrip + 1);
627 
628  if (m_monitorDir == "L1TEMU") {
630  "L1TEMU: L1 Emulator vs Data Report Summary Map");
631 
632  } else if (m_monitorDir == "L1T") {
634  "L1T: L1 Trigger Data Report Summary Map");
635  } else if (m_monitorDir == "L1T2016") {
637  "L1T2016: L1 Trigger Data Report Summary Map");
638  } else {
639  // do nothing
640  }
641 
644 
645  m_meReportSummaryMap->setBinLabel(1, "Noisy Check", 1);
646  m_meReportSummaryMap->setBinLabel(2, "Dead Check", 1);
647 
648  m_meReportSummaryMap_chamberStrip->setBinLabel(1, "Noisy Check", 1);
649  m_meReportSummaryMap_chamberStrip->setBinLabel(2, "Dead Check", 1);
650 
651 // for (int iBin = 0; iBin < nBinsY; ++iBin) {
652 // m_meReportSummaryMap->setBinLabel(iBin + 1, " ", 2); }
653 
654  m_meReportSummaryMap->setBinLabel(1, "Hit BX", 2);
655  m_meReportSummaryMap->setBinLabel(2, "Track BX", 2);
656  m_meReportSummaryMap->setBinLabel(3, "Track Phi", 2);
657 
658  const std::vector<std::string> suffix_name = {"-4/2", "-4/1", "-3/2", "-3/1", "-2/2", "-2/1",
659  "-1/3", "-1/2", "-1/1b", "-1/1a",
660  "+1/1a", "+1/1b", "+1/2", "+1/3",
661  "+2/1", "+2/2", "+3/1", "+3/2", "+4/1", "+4/2"};
662  for (int iBin = 0; iBin < nBinsYStrip; ++iBin) {
663  m_meReportSummaryMap_chamberStrip->setBinLabel(iBin + 1, "ChamberStrip " + suffix_name[iBin], 2);
664  }
665 }
666 
667 
669 
670  // initialize summary content, summary sum and ReportSummaryContent float histograms
671  // for all L1 systems and L1 objects
672 
673  if (m_verbose) std::cout << "\nInside L1TEMTFEventInfoClient::readQtResults" << std::endl; // Extra printout - AWB 03.12.16
674 
675  for (std::vector<int>::iterator it = m_summaryContent.begin();
676  it != m_summaryContent.end(); ++it) {
677  (*it) = dqm::qstatus::DISABLED;
678  }
679 
680  m_summarySum = 0.;
681 
682  for (const auto & itME : m_meReportSummaryContent) {
683  itME->Fill(0.);
684  }
685 
686  // general counters:
687  // iAllQTest: all quality tests for all systems and objects
688  // iAllMon: all monitored systems and objects
689  int iAllQTest = 0;
690  int iAllMon = 0;
691 
692  // quality tests for all L1 systems
693 
694  for (unsigned int iTrackObj = 0; iTrackObj < m_nrTrackObjects; ++iTrackObj) {
695 
696  // get the reports for each quality test
697 
698  const std::vector<std::string>& trackObjQtName =
699  m_trackQualityTestName[iTrackObj];
700  const std::vector<std::string>& trackObjQtHist =
701  m_trackQualityTestHist[iTrackObj];
702  const std::vector<unsigned int>& trackObjQtSummaryEnabled =
703  m_trackQtSummaryEnabled[iTrackObj];
704 
705  // pro system counter for quality tests
706  int iTrackObjQTest = 0;
707 
708  for (const auto & itQtName : trackObjQtName) {
709 
710  // get results, status and message
711 
712  if (m_verbose) std::cout << " itQtName = " << (itQtName) << std::endl; // Extra printout - AWB 03.12.16
713 
714  MonitorElement* qHist = igetter.get(trackObjQtHist[iTrackObjQTest]);
715 
716  if (qHist) {
717  const std::vector<QReport*> qtVec = qHist->getQReports();
718  const std::string hName = qHist->getName();
719 
720  // if (m_verbose) {
721  if (true) { // Force printout - AWB 03.12.16
722 
723  if (m_verbose) std::cout << " - Number of quality tests"
724  // if (m_verbose) std::cout << "\nNumber of quality tests"
725  << " for histogram " << trackObjQtHist[iTrackObjQTest]
726  << ": " << qtVec.size() << "\n" << std::endl;
727  }
728 
729  const QReport* sysQReport = qHist->getQReport(itQtName);
730  if (sysQReport) {
731  const float trackObjQtResult = sysQReport->getQTresult();
732  const int trackObjQtStatus = sysQReport->getStatus();
733  const std::string& trackObjQtMessage = sysQReport->getMessage();
734 
735  if (m_verbose) {
736  std::cout << "\n" << (itQtName) << " quality test:"
737  << "\n result: " << trackObjQtResult
738  << "\n status: " << trackObjQtStatus
739  << "\n message: " << trackObjQtMessage << "\n"
740  << "\nFilling m_meReportSummaryContent["
741  << iAllQTest << "] with value "
742  << trackObjQtResult << "\n" << std::endl;
743  }
744 
745  m_meReportSummaryContent[iAllQTest]->Fill(trackObjQtResult);
746 
747  // for the summary map, keep the highest status value ("ERROR") of all tests
748  // which are considered for the summary plot
749  if (trackObjQtSummaryEnabled[iTrackObjQTest]) {
750 
751  if (trackObjQtStatus > m_summaryContent[iAllMon]) {
752  m_summaryContent[iAllMon] = trackObjQtStatus;
753  }
754 
755  m_summarySum += trackObjQtResult;
756  }
757 
758 
759  } else {
760 
761  // for the summary map, if the test was not found but it is assumed to be
762  // considered for the summary plot, set it to dqm::qstatus::INVALID
763 
764  int trackObjQtStatus = dqm::qstatus::INVALID;
765 
766  if (trackObjQtSummaryEnabled[iTrackObjQTest]) {
767 
768  if (trackObjQtStatus > m_summaryContent[iAllMon]) {
769  m_summaryContent[iAllMon] = trackObjQtStatus;
770  }
771  }
772 
773  m_meReportSummaryContent[iAllQTest]->Fill(0.);
774 
775  if (m_verbose) std::cout << "\n" << (itQtName)
776  << " quality test not found\n" << std::endl;
777  }
778 
779  } else {
780  // for the summary map, if the histogram was not found but it is assumed
781  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
782 
783  int trackObjQtStatus = dqm::qstatus::INVALID;
784 
785  if (trackObjQtSummaryEnabled[iTrackObjQTest]) {
786 
787  if (trackObjQtStatus > m_summaryContent[iAllMon]) {
788  m_summaryContent[iAllMon] = trackObjQtStatus;
789  }
790  }
791 
792  m_meReportSummaryContent[iAllQTest]->Fill(0.);
793 
794  if (m_verbose) std::cout << "\nHistogram " << trackObjQtHist[iTrackObjQTest]
795  << " not found\n" << std::endl;
796  }
797 
798  // increase counters for quality tests
799  iTrackObjQTest++;
800  iAllQTest++;
801 
802  }
803 
804  iAllMon++;
805 
806  }
807 
808  // quality tests for all L1 objects
809 
810  for (unsigned int iHitObj = 0; iHitObj < m_nrHitObjects; ++iHitObj) {
811 
812  // get the reports for each quality test
813 
814  const std::vector<std::string>& hitObjQtName =
815  m_hitQualityTestName[iHitObj];
816  const std::vector<std::string>& hitObjQtHist =
817  m_hitQualityTestHist[iHitObj];
818  const std::vector<unsigned int>& hitObjQtSummaryEnabled =
819  m_hitQtSummaryEnabled[iHitObj];
820 
821  // pro object counter for quality tests
822  int iHitObjQTest = 0;
823 
824  for (const auto & itQtName : hitObjQtName) {
825 
826  // get results, status and message
827 
828  MonitorElement* qHist = igetter.get(hitObjQtHist[iHitObjQTest]);
829 
830  if (qHist) {
831  const std::vector<QReport*> qtVec = qHist->getQReports();
832  const std::string hName = qHist->getName();
833 
834  if (m_verbose) std::cout << "\nNumber of quality tests "
835  << " for histogram " << hitObjQtHist[iHitObjQTest]
836  << ": " << qtVec.size() << "\n" << std::endl;
837 
838  const QReport* objQReport = qHist->getQReport(itQtName);
839  if (objQReport) {
840  const float hitObjQtResult = objQReport->getQTresult();
841  const int hitObjQtStatus = objQReport->getStatus();
842  const std::string& hitObjQtMessage = objQReport->getMessage();
843 
844  if (m_verbose) {
845  std::cout << "\n" << (itQtName) << " quality test:"
846  << "\n result: " << hitObjQtResult
847  << "\n status: " << hitObjQtStatus
848  << "\n message: " << hitObjQtMessage << "\n"
849  << "\nFilling m_meReportSummaryContent["
850  << iAllQTest << "] with value "
851  << hitObjQtResult << "\n" << std::endl;
852  }
853 
854  m_meReportSummaryContent[iAllQTest]->Fill(hitObjQtResult);
855 
856  // for the summary map, keep the highest status value ("ERROR") of all tests
857  // which are considered for the summary plot
858  if (hitObjQtSummaryEnabled[iHitObjQTest]) {
859 
860  if (hitObjQtStatus > m_summaryContent[iAllMon]) {
861  m_summaryContent[iAllMon] = hitObjQtStatus;
862  }
863 
864  m_summarySum += hitObjQtResult;
865  }
866 
867  } else {
868 
869  // for the summary map, if the test was not found but it is assumed to be
870  // considered for the summary plot, set it to dqm::qstatus::INVALID
871 
872  int hitObjQtStatus = dqm::qstatus::INVALID;
873 
874  if (hitObjQtSummaryEnabled[iHitObjQTest]) {
875 
876  if (hitObjQtStatus > m_summaryContent[iAllMon]) {
877  m_summaryContent[iAllMon] = hitObjQtStatus;
878  }
879  }
880 
881  m_meReportSummaryContent[iAllQTest]->Fill(0.);
882 
883  if (m_verbose) std::cout << "\n" << (itQtName)
884  << " quality test not found\n" << std::endl;
885  }
886 
887  } else {
888  // for the summary map, if the histogram was not found but it is assumed
889  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
890 
891  int hitObjQtStatus = dqm::qstatus::INVALID;
892 
893  if (hitObjQtSummaryEnabled[iHitObjQTest]) {
894 
895  if (hitObjQtStatus > m_summaryContent[iAllMon]) {
896  m_summaryContent[iAllMon] = hitObjQtStatus;
897  }
898  }
899 
900  m_meReportSummaryContent[iAllQTest]->Fill(0.);
901 
902  if (m_verbose) std::cout << "\nHistogram " << hitObjQtHist[iHitObjQTest]
903  << " not found\n" << std::endl;
904  }
905  // increase counters for quality tests
906  iHitObjQTest++;
907  iAllQTest++;
908  }
909  iAllMon++;
910  }
911 
912  // quality tests for all L1 Noisy Strip =================================================================
913 
914  for (unsigned int iNoisyStrp = 0; iNoisyStrp < m_nrNoisyStrip; ++iNoisyStrp) {
915 
916  // get the reports for each quality test
917  const std::vector<std::string>& noisyStrpQtName =
918  m_noisyQualityTestName[iNoisyStrp];
919  const std::vector<std::string>& noisyStrpQtHist =
920  m_noisyQualityTestHist[iNoisyStrp];
921  const std::vector<unsigned int>& noisyStrpQtSummaryEnabled =
922  m_noisyQtSummaryEnabled[iNoisyStrp];
923 
924  // pro object counter for quality tests
925  int iNoisyStrpQTest = 0;
926 
927  for (const auto & itQtName : noisyStrpQtName) {
928 
929  // get results, status and message
930  MonitorElement* qHist = igetter.get(noisyStrpQtHist[iNoisyStrpQTest]);
931 
932  if (qHist) {
933  const std::vector<QReport*> qtVec = qHist->getQReports();
934  const std::string hName = qHist->getName();
935 
936  if (m_verbose) std::cout << "\nNumber of quality tests "
937  << " for histogram " << noisyStrpQtHist[iNoisyStrpQTest]
938  << ": " << qtVec.size() << "\n" << std::endl;
939 
940  const QReport* objQReport = qHist->getQReport(itQtName);
941  if (objQReport) {
942  const float noisyStrpQtResult = objQReport->getQTresult();
943  const int noisyStrpQtStatus = objQReport->getStatus();
944  const std::string& noisyStrpQtMessage = objQReport->getMessage();
945 
946  if (m_verbose) {
947  std::cout << "\n" << (itQtName) << " quality test:"
948  << "\n result: " << noisyStrpQtResult
949  << "\n status: " << noisyStrpQtStatus
950  << "\n message: " << noisyStrpQtMessage << "\n"
951  << "\nFilling m_meReportSummaryContent["
952  << iAllQTest << "] with value "
953  << noisyStrpQtResult << "\n" << std::endl;
954  }
955 
956  m_meReportSummaryContent[iAllQTest]->Fill(noisyStrpQtResult);
957 
958  // for the summary map, keep the highest status value ("ERROR") of all tests
959  // which are considered for the summary plot
960  if (noisyStrpQtSummaryEnabled[iNoisyStrpQTest]) {
961 
962  if (noisyStrpQtStatus > m_summaryContent[iAllMon]) {
963  m_summaryContent[iAllMon] = noisyStrpQtStatus;
964  }
965  m_summarySum += noisyStrpQtResult;
966  }
967 
968  } else {
969 
970  // for the summary map, if the test was not found but it is assumed to be
971  // considered for the summary plot, set it to dqm::qstatus::INVALID
972 
973  int noisyStrpQtStatus = dqm::qstatus::INVALID;
974 
975  if (noisyStrpQtSummaryEnabled[iNoisyStrpQTest]) {
976 
977  if (noisyStrpQtStatus > m_summaryContent[iAllMon]) {
978  m_summaryContent[iAllMon] = noisyStrpQtStatus;
979  }
980  }
981 
982  m_meReportSummaryContent[iAllQTest]->Fill(0.);
983 
984  if (m_verbose) std::cout << "\n" << (itQtName)
985  << " quality test not found\n" << std::endl;
986  }
987 
988  } else {
989  // for the summary map, if the histogram was not found but it is assumed
990  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
991 
992  int noisyStrpQtStatus = dqm::qstatus::INVALID;
993 
994  if (noisyStrpQtSummaryEnabled[iNoisyStrpQTest]) {
995 
996  if (noisyStrpQtStatus > m_summaryContent[iAllMon]) {
997  m_summaryContent[iAllMon] = noisyStrpQtStatus;
998  }
999  }
1000 
1001  m_meReportSummaryContent[iAllQTest]->Fill(0.);
1002 
1003  if (m_verbose) std::cout << "\nHistogram " << noisyStrpQtHist[iNoisyStrpQTest]
1004  << " not found\n" << std::endl;
1005  }
1006  // increase counters for quality tests
1007  iNoisyStrpQTest++;
1008  iAllQTest++;
1009  }
1010  iAllMon++;
1011  }
1012  // quality tests for all L1 Dead Strip =================================================================
1013 
1014  for (unsigned int iDeadStrp = 0; iDeadStrp < m_nrDeadStrip; ++iDeadStrp) {
1015 
1016  // get the reports for each quality test
1017  const std::vector<std::string>& deadStrpQtName =
1018  m_deadQualityTestName[iDeadStrp];
1019  const std::vector<std::string>& deadStrpQtHist =
1020  m_deadQualityTestHist[iDeadStrp];
1021  const std::vector<unsigned int>& deadStrpQtSummaryEnabled =
1022  m_deadQtSummaryEnabled[iDeadStrp];
1023 
1024  // pro object counter for quality tests
1025  int iDeadStrpQTest = 0;
1026 
1027  for (const auto & itQtName : deadStrpQtName) {
1028 
1029  // get results, status and message
1030 
1031  MonitorElement* qHist = igetter.get(deadStrpQtHist[iDeadStrpQTest]);
1032 
1033  if (qHist) {
1034  const std::vector<QReport*> qtVec = qHist->getQReports();
1035  const std::string hName = qHist->getName();
1036 
1037  if (m_verbose) std::cout << "\nNumber of quality tests "
1038  << " for histogram " << deadStrpQtHist[iDeadStrpQTest]
1039  << ": " << qtVec.size() << "\n" << std::endl;
1040 
1041  const QReport* objQReport = qHist->getQReport(itQtName);
1042  if (objQReport) {
1043  const float deadStrpQtResult = objQReport->getQTresult();
1044  const int deadStrpQtStatus = objQReport->getStatus();
1045  const std::string& deadStrpQtMessage = objQReport->getMessage();
1046 
1047  if (m_verbose) {
1048  std::cout << "\n" << (itQtName) << " quality test:"
1049  << "\n result: " << deadStrpQtResult
1050  << "\n status: " << deadStrpQtStatus
1051  << "\n message: " << deadStrpQtMessage << "\n"
1052  << "\nFilling m_meReportSummaryContent["
1053  << iAllQTest << "] with value "
1054  << deadStrpQtResult << "\n" << std::endl;
1055  }
1056 
1057  m_meReportSummaryContent[iAllQTest]->Fill(deadStrpQtResult);
1058 
1059  // for the summary map, keep the highest status value ("ERROR") of all tests
1060  // which are considered for the summary plot
1061  if (deadStrpQtSummaryEnabled[iDeadStrpQTest]) {
1062 
1063  if (deadStrpQtStatus > m_summaryContent[iAllMon]) {
1064  m_summaryContent[iAllMon] = deadStrpQtStatus;
1065  }
1066  m_summarySum += deadStrpQtResult;
1067  }
1068 
1069  } else {
1070 
1071  // for the summary map, if the test was not found but it is assumed to be
1072  // considered for the summary plot, set it to dqm::qstatus::INVALID
1073 
1074  int deadStrpQtStatus = dqm::qstatus::INVALID;
1075 
1076  if (deadStrpQtSummaryEnabled[iDeadStrpQTest]) {
1077 
1078  if (deadStrpQtStatus > m_summaryContent[iAllMon]) {
1079  m_summaryContent[iAllMon] = deadStrpQtStatus;
1080  }
1081  }
1082 
1083  m_meReportSummaryContent[iAllQTest]->Fill(0.);
1084 
1085  if (m_verbose) std::cout << "\n" << (itQtName)
1086  << " quality test not found\n" << std::endl;
1087  }
1088 
1089  } else {
1090  // for the summary map, if the histogram was not found but it is assumed
1091  // to have a test be considered for the summary plot, set it to dqm::qstatus::INVALID
1092 
1093  int deadStrpQtStatus = dqm::qstatus::INVALID;
1094 
1095  if (deadStrpQtSummaryEnabled[iDeadStrpQTest]) {
1096 
1097  if (deadStrpQtStatus > m_summaryContent[iAllMon]) {
1098  m_summaryContent[iAllMon] = deadStrpQtStatus;
1099  }
1100  }
1101 
1102  m_meReportSummaryContent[iAllQTest]->Fill(0.);
1103 
1104  if (m_verbose) std::cout << "\nHistogram " << deadStrpQtHist[iDeadStrpQTest]
1105  << " not found\n" << std::endl;
1106  }
1107 
1108  // increase counters for quality tests
1109  iDeadStrpQTest++;
1110  iAllQTest++;
1111  }
1112  iAllMon++;
1113  }
1114 
1115  // reportSummary value
1117  if (m_meReportSummary) {
1119  }
1120 
1121  // fill the ReportSummaryMap for L1 systems (bin 1 on X)
1122  for (unsigned int iTrackObj = 0; iTrackObj < m_nrTrackObjects; ++iTrackObj) {
1123 
1124  double summCont = static_cast<double>(m_summaryContent[iTrackObj]);
1125  m_meReportSummaryMap->setBinContent(1, iTrackObj + 1, summCont);
1126  }
1127  // fill the ReportSummaryMap for L1 objects (bin 2 on X)
1128  for (unsigned int iMon = m_nrTrackObjects; iMon < m_nrTrackObjects
1129  + m_nrHitObjects; ++iMon) {
1130 
1131  double summCont = static_cast<double>(m_summaryContent[iMon]);
1132  m_meReportSummaryMap->setBinContent(2, iMon - m_nrTrackObjects + 1, summCont);
1133 
1134  }
1135 
1136  // fill the ReportSummaryMap_chamberStrip for L1 Noisy Strip (bin 1 on X)
1137  for (unsigned int iNoisyStrp = m_nrTrackObjects + m_nrHitObjects; iNoisyStrp < m_nrTrackObjects + m_nrHitObjects + m_nrNoisyStrip; ++iNoisyStrp) {
1138  double summCont = static_cast<double>(m_summaryContent[iNoisyStrp]);
1139  m_meReportSummaryMap_chamberStrip->setBinContent(1, iNoisyStrp - m_nrTrackObjects - m_nrHitObjects + 1, summCont);
1140  }
1141  // fill the ReportSummaryMap_chamberStrip for L1 objects (bin 2 on X)
1142  for (unsigned int iDeadStrp = m_nrTrackObjects + m_nrHitObjects + m_nrNoisyStrip; iDeadStrp < m_nrTrackObjects + m_nrHitObjects + m_nrNoisyStrip + m_nrDeadStrip; ++iDeadStrp) {
1143  double summCont = static_cast<double>(m_summaryContent[iDeadStrp]);
1144  m_meReportSummaryMap_chamberStrip->setBinContent(2, iDeadStrp - m_nrTrackObjects - m_nrHitObjects - m_nrNoisyStrip + 1, summCont);
1145  }
1146 
1147 }
void readQtResults(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
read quality test results
std::vector< std::vector< std::string > > m_trackQualityTestName
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
std::vector< std::string > m_disableDeadStrip
void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< edm::ParameterSet > m_deadStrip
void book(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
book histograms
std::vector< std::string > m_disableTrackObjects
std::vector< MonitorElement * > m_meReportSummaryContent
monitor elements to report content for all quality tests
bool m_verbose
input parameters
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:307
std::vector< std::string > m_noisyLabel
size_t m_nrHitObjects
number of L1 trigger objects
std::vector< std::vector< std::string > > m_deadQualityTestHist
std::vector< std::vector< unsigned int > > m_deadQtSummaryEnabled
std::vector< int > m_deadDisable
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)
def replace(string, replacements)
const std::string & getName() const
get name of ME
std::vector< std::string > m_deadLabel
void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override
end job
std::vector< std::vector< std::string > > m_hitQualityTestName
void initialize()
private methods
void Fill(long long x)
virtual ~L1TEMTFEventInfoClient()
Destructor.
std::vector< edm::ParameterSet > m_hitObjects
MonitorElement * m_meReportSummary
a summary report
std::vector< std::vector< std::string > > m_noisyQualityTestName
static const int INVALID
std::vector< std::vector< unsigned int > > m_trackQtSummaryEnabled
std::vector< std::vector< std::string > > m_trackQualityTestHist
std::vector< std::vector< std::string > > m_hitQualityTestHist
static const int DISABLED
size_t m_nrDeadStrip
number of L1 trigger dead strips
const std::string & getMessage() const
get message attached to test
Definition: QReport.h:24
std::vector< std::vector< unsigned int > > m_hitQtSummaryEnabled
void dumpContentMonitorElements(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
dump the content of the monitoring elements defined in this module
TH2F * getTH2F() const
std::vector< std::string > m_disableHitObjects
void setTitle(const std::string &title)
set (ie. change) histogram/profile title
MonitorElement * m_meReportSummaryMap_chamberStrip
std::vector< std::string > m_trackLabel
std::vector< int > m_trackDisable
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
std::vector< std::vector< std::string > > m_noisyQualityTestHist
MonitorElement * m_meReportSummaryMap
report summary map
std::vector< std::vector< std::string > > m_deadQualityTestName
std::vector< std::string > m_hitLabel
std::vector< QReport * > getQReports() const
get map of QReports
void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter, const edm::LuminosityBlock &, const edm::EventSetup &)
int getStatus() const
get test status (see Core/interface/QTestStatus.h)
Definition: QReport.h:16
L1TEMTFEventInfoClient(const edm::ParameterSet &)
Constructor.
std::vector< edm::ParameterSet > m_trackObjects
HLT enums.
Float_t m_reportSummary
summary report
std::vector< std::string > m_disableNoisyStrip
std::vector< int > m_noisyDisable
std::vector< int > m_summaryContent
std::vector< std::vector< unsigned int > > m_noisyQtSummaryEnabled
float getQTresult() const
get test result i.e. prob value
Definition: QReport.h:20
MonitorElement * bookFloat(Args &&...args)
Definition: DQMStore.h:112
size_t m_nrTrackObjects
number of L1 trigger systems
std::vector< int > m_hitDisable
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:310
size_t m_nrNoisyStrip
number of L1 trigger noisy strips
std::vector< edm::ParameterSet > m_noisyStrip