00001 #ifndef GlobalTriggerAnalyzer_L1GtTrigReport_h 00002 #define GlobalTriggerAnalyzer_L1GtTrigReport_h 00003 00020 // system include files 00021 #include <memory> 00022 #include <string> 00023 #include <vector> 00024 #include <list> 00025 00026 // user include files 00027 #include "FWCore/Framework/interface/Frameworkfwd.h" 00028 #include "FWCore/Framework/interface/EDAnalyzer.h" 00029 00030 #include "FWCore/Framework/interface/Event.h" 00031 #include "FWCore/Framework/interface/MakerMacros.h" 00032 00033 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00034 00035 #include "L1Trigger/GlobalTriggerAnalyzer/interface/L1GtTrigReportEntry.h" 00036 00037 // forward declarations 00038 class L1GtStableParameters; 00039 class L1GtPrescaleFactors; 00040 class L1GtTriggerMask; 00041 class L1GtTriggerMenu; 00042 00043 // class declaration 00044 00045 class L1GtTrigReport : public edm::EDAnalyzer 00046 { 00047 00048 public: 00049 00051 explicit L1GtTrigReport(const edm::ParameterSet&); 00052 00054 virtual ~L1GtTrigReport(); 00055 00056 private: 00057 00058 virtual void beginJob(); 00059 00061 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00062 00064 virtual void endJob(); 00065 00066 private: 00067 00069 00071 const L1GtStableParameters* m_l1GtStablePar; 00072 unsigned long long m_l1GtStableParCacheID; 00073 00075 unsigned int m_numberPhysTriggers; 00076 00078 unsigned int m_numberTechnicalTriggers; 00079 00081 unsigned int m_numberDaqPartitions; 00082 unsigned int m_numberDaqPartitionsMax; 00083 00085 const L1GtPrescaleFactors* m_l1GtPfAlgo; 00086 unsigned long long m_l1GtPfAlgoCacheID; 00087 00088 const L1GtPrescaleFactors* m_l1GtPfTech; 00089 unsigned long long m_l1GtPfTechCacheID; 00090 00091 const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig; 00092 const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig; 00093 00095 const L1GtTriggerMask* m_l1GtTmAlgo; 00096 unsigned long long m_l1GtTmAlgoCacheID; 00097 00098 const L1GtTriggerMask* m_l1GtTmTech; 00099 unsigned long long m_l1GtTmTechCacheID; 00100 00101 const L1GtTriggerMask* m_l1GtTmVetoAlgo; 00102 unsigned long long m_l1GtTmVetoAlgoCacheID; 00103 00104 const L1GtTriggerMask* m_l1GtTmVetoTech; 00105 unsigned long long m_l1GtTmVetoTechCacheID; 00106 00107 std::vector<unsigned int> m_triggerMaskAlgoTrig; 00108 std::vector<unsigned int> m_triggerMaskTechTrig; 00109 00110 std::vector<unsigned int> m_triggerMaskVetoAlgoTrig; 00111 std::vector<unsigned int> m_triggerMaskVetoTechTrig; 00112 00113 // trigger menu 00114 const L1GtTriggerMenu* m_l1GtMenu; 00115 unsigned long long m_l1GtMenuCacheID; 00116 00117 00118 private: 00119 00121 bool m_useL1GlobalTriggerRecord; 00122 00124 edm::InputTag m_l1GtRecordInputTag; 00125 00127 int m_printVerbosity; 00128 00130 int m_printOutput; 00131 00133 00135 int m_totalEvents; 00136 00138 std::vector<int> m_globalNrErrors; 00139 00141 std::vector<int> m_globalNrAccepts; 00142 00144 std::list<L1GtTrigReportEntry*> m_entryList; 00145 00147 std::list<L1GtTrigReportEntry*> m_entryListTechTrig; 00148 00149 typedef std::list<L1GtTrigReportEntry*>::const_iterator CItEntry; 00150 typedef std::list<L1GtTrigReportEntry*>::iterator ItEntry; 00151 00153 unsigned int m_physicsDaqPartition; 00154 00155 }; 00156 00157 #endif /*GlobalTriggerAnalyzer_L1GtTrigReport_h*/