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