00001 #ifndef GlobalTriggerAnalyzer_L1GtPatternGenerator_h 00002 #define GlobalTriggerAnalyzer_L1GtPatternGenerator_h 00003 00020 // system include files 00021 #include <memory> 00022 #include <string> 00023 #include <fstream> 00024 00025 // user include files 00026 #include "FWCore/Framework/interface/Frameworkfwd.h" 00027 #include "FWCore/Framework/interface/EDAnalyzer.h" 00028 00029 #include "FWCore/Framework/interface/Event.h" 00030 #include "FWCore/Framework/interface/EventSetup.h" 00031 00032 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00033 #include "FWCore/Utilities/interface/InputTag.h" 00034 00035 // class declaration 00036 class L1GtPatternWriter; 00037 class L1GtPatternMap; 00038 00039 class L1GtPatternGenerator : public edm::EDAnalyzer 00040 { 00041 00042 public: 00043 explicit L1GtPatternGenerator(const edm::ParameterSet&); 00044 ~L1GtPatternGenerator(); 00045 00046 protected: 00047 void extractGlobalTriggerData(const edm::Event& iEvent, L1GtPatternMap& patterns); 00048 00049 private: 00051 virtual void beginJob(); 00052 00054 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00055 00057 virtual void endJob(); 00058 00060 void packHfRecords(const std::string& resultName, L1GtPatternMap& allPatterns); 00061 00063 static uint32_t packRegionalMuons(uint32_t rawValue); 00064 00066 static uint32_t packEtMiss(uint32_t rawValue); 00067 00068 private: 00070 edm::InputTag m_gctTag; 00071 00073 edm::InputTag m_gmtTag; 00074 00076 edm::InputTag m_gtTag; 00077 00079 edm::InputTag m_dtTag; 00080 edm::InputTag m_cscTag; 00081 edm::InputTag m_rpcbTag; 00082 edm::InputTag m_rpcfTag; 00083 00085 std::string m_destPath; 00086 00088 std::string m_fileName; 00089 std::ofstream m_fileStream; 00090 00092 00093 std::string m_header; 00094 std::string m_footer; 00095 std::vector<std::string> m_columnNames; 00096 std::vector<uint32_t> m_columnLengths; 00097 std::vector<int> m_bx; 00098 std::vector<uint32_t> m_columnDefaults; 00099 bool m_debug; 00100 00101 std::auto_ptr<L1GtPatternWriter> m_writer; 00102 }; 00103 00104 #endif /*GlobalTriggerAnalyzer_L1GtPatternGenerator_h*/