CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1ExtraDQM.h
Go to the documentation of this file.
1 #ifndef DQM_L1TMonitor_L1ExtraDQM_h
2 #define DQM_L1TMonitor_L1ExtraDQM_h
3 
19 // system include files
20 #include <iosfwd>
21 #include <memory>
22 #include <vector>
23 #include <string>
24 #include <algorithm>
25 
26 // user include files
27 // base classes
29 
30 //
34 
38 
41 
45 
46 // L1Extra objects
57 
59 
63 
66 
67 #include "boost/lexical_cast.hpp"
69 
70 // forward declarations
71 
72 
73 // class declaration
74 class L1ExtraDQM : public DQMEDAnalyzer {
75 
76 public:
77 
78  // constructor(s)
79  explicit L1ExtraDQM(const edm::ParameterSet&);
80 
81  // destructor
82  virtual ~L1ExtraDQM();
83 
84 public:
85 
86  template<class CollectionType>
88 
89  public:
90  // constructor
91  L1ExtraMonElement(const edm::EventSetup&, const int);
92 
93  // destructor
94  virtual ~L1ExtraMonElement();
95 
96  public:
97  typedef typename CollectionType::const_iterator CIterColl;
98 
99  void bookhistograms(const edm::EventSetup& evSetup, DQMStore::IBooker &ibooker,
100  const std::string& l1ExtraObject,
101  const std::vector<L1GtObject>& l1GtObj, const bool bookPhi =
102  true, const bool bookEta = true);
103 
105  void fillNrObjects(const CollectionType* collType,
106  const bool validColl, const bool isL1Coll, const int bxInEvent);
107 
109  void fillPtPhiEta(const CollectionType* collType, const bool validColl,
110  const bool bookPhi, const bool bookEta, const bool isL1Coll,
111  const int bxInEvent);
112 
114  void fillEtPhiEta(const CollectionType* collType, const bool validColl,
115  const bool bookPhi, const bool bookEta, const bool isL1Coll,
116  const int bxInEvent);
117 
119  void fillEtTotal(const CollectionType* collType, const bool validColl,
120  const bool isL1Coll, const int bxInEvent);
121 
123  void fillCharge(const CollectionType* collType, const bool validColl,
124  const bool isL1Coll, const int bxInEvent);
125 
127  void fillHfBitCounts(const CollectionType* collType,
128  const bool validColl, const int countIndex,
129  const bool isL1Coll, const int bxInEvent);
130 
132  void fillHfRingEtSums(const CollectionType* collType,
133  const bool validColl, const int countIndex,
134  const bool isL1Coll, const int bxInEvent);
135 
136  private:
137 
138  std::vector<MonitorElement*> m_monElement;
139 
150  };
151 
152 protected:
153 
154  void analyzeL1ExtraMuon(const edm::Event&, const edm::EventSetup&);
155  void analyzeL1ExtraIsoEG(const edm::Event&, const edm::EventSetup&);
156  void analyzeL1ExtraNoIsoEG(const edm::Event&, const edm::EventSetup&);
157  void analyzeL1ExtraCenJet(const edm::Event&, const edm::EventSetup&);
158  void analyzeL1ExtraForJet(const edm::Event&, const edm::EventSetup&);
159  void analyzeL1ExtraTauJet(const edm::Event&, const edm::EventSetup&);
160  void analyzeL1ExtraETT(const edm::Event&, const edm::EventSetup&);
161  void analyzeL1ExtraETM(const edm::Event&, const edm::EventSetup&);
162  void analyzeL1ExtraHTT(const edm::Event&, const edm::EventSetup&);
163  void analyzeL1ExtraHTM(const edm::Event&, const edm::EventSetup&);
166 
167  virtual void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const&, edm::EventSetup const&) override;
168  virtual void dqmBeginRun(const edm::Run&, const edm::EventSetup&);
169  virtual void beginLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&);
170  virtual void analyze(const edm::Event&, const edm::EventSetup&);
171  virtual void endRun(const edm::Run& run, const edm::EventSetup& evSetup);
172 
173 private:
174 
176 
178 
181 
185 
187 
190 
194 
195 
196 private:
197 
199 
200  std::vector<L1ExtraMonElement<l1extra::L1MuonParticleCollection>*>
202 
203  std::vector<L1ExtraMonElement<l1extra::L1EmParticleCollection>*>
205  std::vector<L1ExtraMonElement<l1extra::L1EmParticleCollection>*>
207 
208  std::vector<L1ExtraMonElement<l1extra::L1JetParticleCollection>*>
210  std::vector<L1ExtraMonElement<l1extra::L1JetParticleCollection>*>
212  std::vector<L1ExtraMonElement<l1extra::L1JetParticleCollection>*>
214 
215  std::vector<L1ExtraMonElement<l1extra::L1EtMissParticleCollection>*>
217 
218  std::vector<L1ExtraMonElement<l1extra::L1EtMissParticleCollection>*>
220 
221  std::vector<L1ExtraMonElement<l1extra::L1EtMissParticleCollection>*>
223 
224  std::vector<L1ExtraMonElement<l1extra::L1EtMissParticleCollection>*>
226 
227  std::vector<L1ExtraMonElement<l1extra::L1HFRingsCollection>*>
229 
230  std::vector<L1ExtraMonElement<l1extra::L1HFRingsCollection>*>
232 
233 };
234 
235 // constructor L1ExtraMonElement
236 template<class CollectionType>
238  m_indexNrObjects(-1),
239  m_indexPt(-1),
240  m_indexEt(-1),
241  m_indexPhi(-1),
242  m_indexEta(-1),
243  m_indexEtTotal(-1),
244  m_indexCharge(-1),
245  m_indexHfBitCounts(-1),
246  m_indexHfRingEtSums(-1) {
247 
248  m_monElement.reserve(nrElements);
249 
250 }
251 
252 // destructor L1ExtraMonElement
253 template<class CollectionType>
255 
256  //empty
257 
258 }
259 
260 
261 template<class CollectionType>
263  const edm::EventSetup& evSetup, DQMStore::IBooker &ibooker,
264  const std::string& l1ExtraObject,
265  const std::vector<L1GtObject>& l1GtObj, const bool bookPhi,
266  const bool bookEta) {
267 
268  // FIXME
269  L1GtObject gtObj = l1GtObj.at(0);
270 
271  //
272  std::string histName;
273  std::string histTitle;
274  std::string xAxisTitle;
275  std::string yAxisTitle;
276 
277  std::string quantity = "";
278 
279  int indexHistogram = -1;
280 
281  if (gtObj == HfBitCounts) {
282 
283  L1GetHistLimits l1GetHistLimits(evSetup);
284  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
285 
286  const int histNrBins = histLimits.nrBins;
287  const double histMinValue = histLimits.lowerBinValue;
288  const double histMaxValue = histLimits.upperBinValue;
289 
290  indexHistogram++;
291  m_indexHfBitCounts = indexHistogram;
292 
293  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
294 
295  histName = l1ExtraObject + "_Count_" + boost::lexical_cast<std::string>(iCount);
296  histTitle = l1ExtraObject + ": count " + boost::lexical_cast<std::string>(iCount);
297  xAxisTitle = l1ExtraObject;
298  yAxisTitle = "Entries";
299 
300  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBins, histMinValue, histMaxValue));
301  m_monElement[m_indexHfBitCounts + iCount]->setAxisTitle(xAxisTitle, 1);
302  m_monElement[m_indexHfBitCounts + iCount]->setAxisTitle(yAxisTitle, 2);
303 
304  }
305 
306  return;
307 
308  }
309 
310  // number of objects per event
311  if ((gtObj == Mu) || (gtObj == IsoEG) || (gtObj == NoIsoEG) || (gtObj == CenJet) || (gtObj == ForJet) || (gtObj == TauJet)) {
312 
313  quantity = "NrObjects";
314 
315  L1GetHistLimits l1GetHistLimits(evSetup);
316  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
317 
318  const int histNrBins = histLimits.nrBins;
319  const double histMinValue = histLimits.lowerBinValue;
320  const double histMaxValue = histLimits.upperBinValue;
321 
322  histName = l1ExtraObject + "_NrObjectsPerEvent";
323  histTitle = l1ExtraObject + ": number of objects per event";
324  xAxisTitle = "Nr_" + l1ExtraObject;
325  yAxisTitle = "Entries";
326 
327  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBins, histMinValue, histMaxValue));
328  indexHistogram++;
329 
330  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
331  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
332  m_indexNrObjects = indexHistogram;
333 
334  }
335 
336  // transverse momentum (energy) PT (ET) [GeV]
337 
338 
339  quantity = "ET";
340  std::string quantityLongName = " transverse energy ";
341 
342  if (gtObj == Mu) {
343  quantity = "PT";
344  quantityLongName = " transverse momentum ";
345  }
346 
347  L1GetHistLimits l1GetHistLimits(evSetup);
348  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
349 
350  const int histNrBinsET = histLimits.nrBins;
351  const double histMinValueET = histLimits.lowerBinValue;
352  const double histMaxValueET = histLimits.upperBinValue;
353  const std::vector<float>& binThresholdsET = histLimits.binThresholds;
354 
355  float* binThresholdsETf;
356  size_t sizeBinThresholdsET = binThresholdsET.size();
357  binThresholdsETf = new float[sizeBinThresholdsET];
358  copy(binThresholdsET.begin(), binThresholdsET.end(), binThresholdsETf);
359 
360  LogDebug("L1ExtraDQM") << "\n PT/ET histogram for " << l1ExtraObject
361  << "\n histNrBinsET = " << histNrBinsET << "\n histMinValueET = "
362  << histMinValueET << "\n histMaxValueET = " << histMaxValueET
363  << "\n Last bin value represents the upper limit of the histogram"
364  << std::endl;
365  for (size_t iBin = 0; iBin < sizeBinThresholdsET; ++iBin) {
366  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": " << quantity << " = "
367  << binThresholdsETf[iBin] << " GeV" << std::endl;
368 
369  }
370 
371  histName = l1ExtraObject + "_" + quantity;
372  histTitle = l1ExtraObject + ":" + quantityLongName + quantity + " [GeV]";
373  xAxisTitle = l1ExtraObject + "_" + quantity + " [GeV]";
374  yAxisTitle = "Entries";
375 
376  if (gtObj == HfRingEtSums) {
377 
378  indexHistogram++;
379  m_indexHfRingEtSums = indexHistogram;
380 
381  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
382 
383  histName = l1ExtraObject + "_Count_" + boost::lexical_cast<std::string>(iCount);
384  histTitle = l1ExtraObject + ": count " + boost::lexical_cast<
385  std::string>(iCount);
386  xAxisTitle = l1ExtraObject;
387  yAxisTitle = "Entries";
388 
389  m_monElement.push_back(ibooker.book1D(histName, histTitle,
390  histNrBinsET, binThresholdsETf));
391 
392  m_monElement[m_indexHfRingEtSums + iCount]->setAxisTitle(xAxisTitle,
393  1);
394  m_monElement[m_indexHfRingEtSums + iCount]->setAxisTitle(yAxisTitle,
395  2);
396 
397  }
398 
399  } else {
400 
401  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsET, binThresholdsETf));
402  indexHistogram++;
403 
404  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
405  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
406  m_indexPt = indexHistogram;
407  m_indexEt = indexHistogram;
408  m_indexEtTotal = indexHistogram;
409  }
410 
411 
412  delete[] binThresholdsETf;
413 
414  //
415 
416  if (bookPhi) {
417 
418  quantity = "phi";
419 
420  // get limits and binning from L1Extra
421  L1GetHistLimits l1GetHistLimits(evSetup);
422  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
423 
424  const int histNrBinsPhi = histLimits.nrBins;
425  const double histMinValuePhi = histLimits.lowerBinValue;
426  const double histMaxValuePhi = histLimits.upperBinValue;
427  const std::vector<float>& binThresholdsPhi = histLimits.binThresholds;
428 
429  float* binThresholdsPhif;
430  size_t sizeBinThresholdsPhi = binThresholdsPhi.size();
431  binThresholdsPhif = new float[sizeBinThresholdsPhi];
432  copy(binThresholdsPhi.begin(), binThresholdsPhi.end(), binThresholdsPhif);
433 
434  LogDebug("L1ExtraDQM") << "\n phi histogram for " << l1ExtraObject
435  << "\n histNrBinsPhi = " << histNrBinsPhi
436  << "\n histMinValuePhi = " << histMinValuePhi
437  << "\n histMaxValuePhi = " << histMaxValuePhi
438  << "\n Last bin value represents the upper limit of the histogram"
439  << std::endl;
440  for (size_t iBin = 0; iBin < sizeBinThresholdsPhi; ++iBin) {
441  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": phi = " << binThresholdsPhif[iBin] << " deg" << std::endl;
442 
443  }
444 
445  histName = l1ExtraObject + "_phi";
446  histTitle = l1ExtraObject + ": phi distribution ";
447  xAxisTitle = l1ExtraObject + "_phi [deg]";
448  yAxisTitle = "Entries";
449 
450  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsPhi, histMinValuePhi, histMaxValuePhi));
451  indexHistogram++;
452 
453  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
454  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
455  m_indexPhi = indexHistogram;
456 
457  delete[] binThresholdsPhif;
458  }
459 
460  //
461 
462 
463  if (bookEta) {
464 
465  quantity = "eta";
466 
467  // get limits and binning from L1Extra
468  L1GetHistLimits l1GetHistLimits(evSetup);
469  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
470 
471  const int histNrBinsEta = histLimits.nrBins;
472  const double histMinValueEta = histLimits.lowerBinValue;
473  const double histMaxValueEta = histLimits.upperBinValue;
474  const std::vector<float>& binThresholdsEta = histLimits.binThresholds;
475 
476  //
477  float* binThresholdsEtaf;
478  size_t sizeBinThresholdsEta = binThresholdsEta.size();
479  binThresholdsEtaf = new float[sizeBinThresholdsEta];
480  copy(binThresholdsEta.begin(), binThresholdsEta.end(), binThresholdsEtaf);
481 
482  LogDebug("L1ExtraDQM") << "\n eta histogram for " << l1ExtraObject
483  << "\n histNrBinsEta = " << histNrBinsEta
484  << "\n histMinValueEta = " << histMinValueEta
485  << "\n histMaxValueEta = " << histMaxValueEta
486  << "\n Last bin value represents the upper limit of the histogram"
487  << std::endl;
488  for (size_t iBin = 0; iBin < sizeBinThresholdsEta; ++iBin) {
489  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": eta = " << binThresholdsEtaf[iBin] << std::endl;
490 
491  }
492 
493  histName = l1ExtraObject + "_eta";
494  histTitle = l1ExtraObject + ": eta distribution ";
495  xAxisTitle = l1ExtraObject + "_eta";
496  yAxisTitle = "Entries";
497 
498  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsEta, binThresholdsEtaf));
499  indexHistogram++;
500 
501  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
502  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
503  m_indexEta = indexHistogram;
504 
505  delete[] binThresholdsEtaf;
506 
507  }
508 
509 }
510 
511 template<class CollectionType>
513  const CollectionType* collType, const bool validColl,
514  const bool isL1Coll, const int bxInEvent) {
515 
516  if (validColl && isL1Coll) {
517  size_t collSize = 0;
518  for (CIterColl iterColl = collType->begin(); iterColl
519  != collType->end(); ++iterColl) {
520 
521  if (iterColl->bx() == bxInEvent) {
522  collSize++;
523  }
524  }
525  m_monElement[m_indexNrObjects]->Fill(collSize);
526  } else {
527  size_t collSize = collType->size();
528  m_monElement[m_indexNrObjects]->Fill(collSize);
529  }
530 }
531 
532 template<class CollectionType>
534  const CollectionType* collType, const bool validColl,
535  const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent) {
536 
537  if (validColl) {
538  for (CIterColl iterColl = collType->begin(); iterColl
539  != collType->end(); ++iterColl) {
540 
541  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
542  continue;
543  }
544 
545  m_monElement[m_indexPt]->Fill(iterColl->pt());
546 
547  if (bookPhi) {
548  // add a very small quantity to get off the bin edge
549  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
550  }
551 
552  if (bookEta) {
553  m_monElement[m_indexEta]->Fill(iterColl->eta());
554  }
555 
556  }
557  }
558 }
559 
560 template<class CollectionType>
562  const CollectionType* collType, const bool validColl,
563  const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent) {
564 
565  if (validColl) {
566  for (CIterColl iterColl = collType->begin(); iterColl
567  != collType->end(); ++iterColl) {
568 
569  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
570  continue;
571  }
572 
573  m_monElement[m_indexEt]->Fill(iterColl->et());
574 
575  if (bookPhi) {
576  // add a very small quantity to get off the bin edge
577  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
578  }
579 
580  if (bookEta) {
581  m_monElement[m_indexEta]->Fill(iterColl->eta());
582  }
583 
584  }
585  }
586 }
587 
588 template<class CollectionType>
590  const CollectionType* collType, const bool validColl, const bool isL1Coll, const int bxInEvent) {
591 
592  if (validColl) {
593  for (CIterColl iterColl = collType->begin(); iterColl
594  != collType->end(); ++iterColl) {
595 
596  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
597  continue;
598  }
599 
600  m_monElement[m_indexEtTotal]->Fill(iterColl->etTotal());
601  }
602  }
603 
604 }
605 
606 template<class CollectionType>
608  const CollectionType* collType, const bool validColl, const bool isL1Coll, const int bxInEvent) {
609 
610  if (validColl) {
611  for (CIterColl iterColl = collType->begin(); iterColl
612  != collType->end(); ++iterColl) {
613 
614  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
615  continue;
616  }
617 
618  m_monElement[m_indexCharge]->Fill(iterColl->charge());
619  }
620  }
621 
622 }
623 
624 template<class CollectionType>
626  const CollectionType* collType, const bool validColl,
627  const int countIndex, const bool isL1Coll, const int bxInEvent) {
628 
629  if (validColl) {
630  for (CIterColl iterColl = collType->begin(); iterColl
631  != collType->end(); ++iterColl) {
632 
633  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
634  continue;
635  }
636 
637  m_monElement[m_indexHfBitCounts + countIndex]->Fill(
638  iterColl->hfBitCount(
639  (l1extra::L1HFRings::HFRingLabels) countIndex));
640  }
641  }
642 
643 }
644 
645 template<class CollectionType>
647  const CollectionType* collType, const bool validColl,
648  const int countIndex, const bool isL1Coll, const int bxInEvent) {
649 
650  if (validColl) {
651  for (CIterColl iterColl = collType->begin(); iterColl
652  != collType->end(); ++iterColl) {
653 
654  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
655  continue;
656  }
657 
658  m_monElement[m_indexHfRingEtSums + countIndex]->Fill(
659  iterColl->hfEtSum(
660  (l1extra::L1HFRings::HFRingLabels) countIndex));
661  }
662  }
663 
664 }
665 
666 #endif
#define LogDebug(id)
int m_nrBxInEventGmt
number of bunch crosses in event to be monitored
Definition: L1ExtraDQM.h:183
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraHTM
Definition: L1ExtraDQM.h:225
std::string m_dirName
directory name for L1Extra plots
Definition: L1ExtraDQM.h:180
void fillNrObjects(const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
number of objects
Definition: L1ExtraDQM.h:512
int m_currentRun
Definition: L1ExtraDQM.h:189
int m_nrEvJob
Definition: L1ExtraDQM.h:192
virtual void analyze(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:718
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraETM
Definition: L1ExtraDQM.h:219
void fillHfRingEtSums(const CollectionType *collType, const bool validColl, const int countIndex, const bool isL1Coll, const int bxInEvent)
fill energy sums in HFRings collections
Definition: L1ExtraDQM.h:646
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraTauJet
Definition: L1ExtraDQM.h:213
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraForJet
Definition: L1ExtraDQM.h:211
virtual void endRun(const edm::Run &run, const edm::EventSetup &evSetup)
Definition: L1ExtraDQM.cc:742
void analyzeL1ExtraETT(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:248
void analyzeL1ExtraIsoEG(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:117
virtual ~L1ExtraDQM()
Definition: L1ExtraDQM.cc:84
void analyzeL1ExtraETM(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:267
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:97
void analyzeL1ExtraCenJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:169
void analyzeL1ExtraForJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:196
std::vector< L1ExtraMonElement< l1extra::L1MuonParticleCollection > * > m_meAnalysisL1ExtraMuon
pointers to L1ExtraMonElement for each sub-analysis
Definition: L1ExtraDQM.h:201
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraHTT
Definition: L1ExtraDQM.h:222
std::vector< L1ExtraMonElement< l1extra::L1EmParticleCollection > * > m_meAnalysisL1ExtraIsoEG
Definition: L1ExtraDQM.h:204
void analyzeL1ExtraTauJet(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:222
void analyzeL1ExtraMuon(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:90
std::vector< L1ExtraMonElement< l1extra::L1HFRingsCollection > * > m_meAnalysisL1ExtraHfRingEtSums
Definition: L1ExtraDQM.h:231
std::vector< L1ExtraMonElement< l1extra::L1EmParticleCollection > * > m_meAnalysisL1ExtraNoIsoEG
Definition: L1ExtraDQM.h:206
void analyzeL1ExtraHTM(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:308
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void bookhistograms(const edm::EventSetup &evSetup, DQMStore::IBooker &ibooker, const std::string &l1ExtraObject, const std::vector< L1GtObject > &l1GtObj, const bool bookPhi=true, const bool bookEta=true)
Definition: L1ExtraDQM.h:262
virtual void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
Definition: L1ExtraDQM.cc:382
L1ExtraMonElement(const edm::EventSetup &, const int)
Definition: L1ExtraDQM.h:237
bool m_resetModule
internal members
Definition: L1ExtraDQM.h:188
#define LogTrace(id)
void fillPtPhiEta(const CollectionType *collType, const bool validColl, const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent)
PT, eta, phi.
Definition: L1ExtraDQM.h:533
std::vector< L1ExtraMonElement< l1extra::L1JetParticleCollection > * > m_meAnalysisL1ExtraCenJet
Definition: L1ExtraDQM.h:209
std::vector< float > binThresholds
void fillHfBitCounts(const CollectionType *collType, const bool validColl, const int countIndex, const bool isL1Coll, const int bxInEvent)
fill bit counts in HFRings collections
Definition: L1ExtraDQM.h:625
const double rad2deg(const double &)
convert phi from rad (-pi, pi] to deg (0, 360)
Definition: L1GtObject.h:30
L1ExtraDQM(const edm::ParameterSet &)
Definition: L1ExtraDQM.cc:29
void analyzeL1ExtraHTT(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:290
int m_nrBxInEventGct
Definition: L1ExtraDQM.h:184
virtual void dqmBeginRun(const edm::Run &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:374
void analyzeL1ExtraHfRingEtSums(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:352
L1RetrieveL1Extra m_retrieveL1Extra
input parameters
Definition: L1ExtraDQM.h:177
std::vector< L1ExtraMonElement< l1extra::L1EtMissParticleCollection > * > m_meAnalysisL1ExtraETT
Definition: L1ExtraDQM.h:216
std::vector< L1ExtraMonElement< l1extra::L1HFRingsCollection > * > m_meAnalysisL1ExtraHfBitCounts
Definition: L1ExtraDQM.h:228
void analyzeL1ExtraNoIsoEG(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:143
void analyzeL1ExtraHfBitCounts(const edm::Event &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:330
void fillCharge(const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
fill charge
Definition: L1ExtraDQM.h:607
int m_indexNrObjects
histogram index for each quantity, set during histogram booking
Definition: L1ExtraDQM.h:141
void fillEtPhiEta(const CollectionType *collType, const bool validColl, const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent)
ET, eta, phi.
Definition: L1ExtraDQM.h:561
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
Definition: L1ExtraDQM.cc:378
int m_nrEvRun
Definition: L1ExtraDQM.h:193
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:138
Definition: Run.h:41
const L1HistLimits & l1HistLimits(const L1GtObject &l1GtObject, const std::string &quantity)
void fillEtTotal(const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
fill ET total in energy sums
Definition: L1ExtraDQM.h:589