L1TEMTFEventInfoClient

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
#ifndef DQM_L1TMONITORCLIENT_L1TEMTFEventInfoClient_H
#define DQM_L1TMONITORCLIENT_L1TEMTFEventInfoClient_H

/**
 * \class L1TEMTFEventInfoClient
 *
 *
 * Description: fill L1 report summary for trigger L1T and emulator L1TEMU DQM.
 *
 * Implementation:
 *    <TODO: enter implementation details>
 *
 * \author: Vasile Mihai Ghete   - HEPHY Vienna
 *
 *    Re-designed and fully rewritten class.
 *    Original version and authors: see CVS history
 *
 *
 */

// user include files
#include "FWCore/Framework/interface/MakerMacros.h"
#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "DQMServices/Core/interface/DQMStore.h"

// forward declarations

// class declaration
class L1TEMTFEventInfoClient : public DQMEDHarvester {
public:
  /// Constructor
  L1TEMTFEventInfoClient(const edm::ParameterSet &);

  /// Destructor
  ~L1TEMTFEventInfoClient() override;

protected:
  void dqmEndLuminosityBlock(DQMStore::IBooker &ibooker,
                             DQMStore::IGetter &igetter,
                             const edm::LuminosityBlock &,
                             const edm::EventSetup &) override;

  /// end job
  void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override;

private:
  /// input parameters

  bool m_verbose;
  std::string m_monitorDir;
  std::string m_histDir;

  bool m_runInEventLoop;
  bool m_runInEndLumi;
  bool m_runInEndRun;
  bool m_runInEndJob;

  std::vector<edm::ParameterSet> m_trackObjects;
  std::vector<edm::ParameterSet> m_hitObjects;
  std::vector<std::string> m_disableTrackObjects;
  std::vector<std::string> m_disableHitObjects;

  std::vector<edm::ParameterSet> m_noisyStrip;
  std::vector<edm::ParameterSet> m_deadStrip;
  std::vector<std::string> m_disableNoisyStrip;
  std::vector<std::string> m_disableDeadStrip;

  /// private methods

  /// initialize properly all elements
  void initialize();

  /// dump the content of the monitoring elements defined in this module
  void dumpContentMonitorElements(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);

  /// book histograms
  void book(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);

  /// read quality test results
  void readQtResults(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter);

  /// number of L1 trigger systems
  size_t m_nrTrackObjects;

  /// number of L1 trigger objects
  size_t m_nrHitObjects;

  /// number of L1 trigger noisy strips
  size_t m_nrNoisyStrip;

  /// number of L1 trigger dead strips
  size_t m_nrDeadStrip;

  /// total number of quality tests enabled for summary report for L1 trigger systems
  /// and L1 trigger objects
  size_t m_totalNrQtSummaryEnabled;

  std::vector<std::string> m_trackLabel;
  std::vector<std::string> m_trackLabelExt;
  std::vector<int> m_trackDisable;

  std::vector<std::vector<std::string> > m_trackQualityTestName;
  std::vector<std::vector<std::string> > m_trackQualityTestHist;
  std::vector<std::vector<unsigned int> > m_trackQtSummaryEnabled;

  std::vector<int> m_hitDisable;
  std::vector<std::string> m_hitLabel;
  std::vector<std::string> m_hitFolder;

  std::vector<std::vector<std::string> > m_hitQualityTestName;
  std::vector<std::vector<std::string> > m_hitQualityTestHist;
  std::vector<std::vector<unsigned int> > m_hitQtSummaryEnabled;

  std::vector<int> m_noisyDisable;
  std::vector<std::string> m_noisyLabel;
  std::vector<std::string> m_noisyFolder;

  std::vector<std::vector<std::string> > m_noisyQualityTestName;
  std::vector<std::vector<std::string> > m_noisyQualityTestHist;
  std::vector<std::vector<unsigned int> > m_noisyQtSummaryEnabled;

  std::vector<int> m_deadDisable;
  std::vector<std::string> m_deadLabel;
  std::vector<std::string> m_deadFolder;

  std::vector<std::vector<std::string> > m_deadQualityTestName;
  std::vector<std::vector<std::string> > m_deadQualityTestHist;
  std::vector<std::vector<unsigned int> > m_deadQtSummaryEnabled;

  /// summary report

  Float_t m_reportSummary;
  Float_t m_summarySum;
  std::vector<int> m_summaryContent;

  /// a summary report
  MonitorElement *m_meReportSummary;

  /// monitor elements to report content for all quality tests
  std::vector<MonitorElement *> m_meReportSummaryContent;

  /// report summary map
  MonitorElement *m_meReportSummaryMap;
  MonitorElement *m_meReportSummaryMap_chamberStrip;
};

#endif