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