00001 #ifndef DQM_L1TMONITORCLIENT_L1TGCTCLIENT_H 00002 #define DQM_L1TMONITORCLIENT_L1TGCTCLIENT_H 00003 00004 #include "FWCore/Framework/interface/Frameworkfwd.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/Framework/interface/MakerMacros.h" 00007 #include <FWCore/Framework/interface/EDAnalyzer.h> 00008 #include "DQMServices/Core/interface/DQMStore.h" 00009 #include "DQMServices/Core/interface/MonitorElement.h" 00010 00011 #include <memory> 00012 #include <iostream> 00013 #include <fstream> 00014 #include <string> 00015 #include <vector> 00016 #include <map> 00017 00018 class L1TGCTClient: public edm::EDAnalyzer { 00019 00020 public: 00021 00023 L1TGCTClient(const edm::ParameterSet& ps); 00024 00026 virtual ~L1TGCTClient(); 00027 00028 protected: 00029 00031 void beginJob(void); 00032 00034 void beginRun(const edm::Run& r, const edm::EventSetup& c); 00035 00037 void analyze(const edm::Event& e, const edm::EventSetup& c) ; 00038 00039 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 00040 const edm::EventSetup& context) ; 00041 00043 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 00044 const edm::EventSetup& c); 00045 00047 void endRun(const edm::Run& r, const edm::EventSetup& c); 00048 00050 void endJob(); 00051 00052 private: 00053 00054 void processHistograms(); 00055 00056 void makeXProjection(TH2F* input, MonitorElement* output); 00057 void makeYProjection(TH2F* input, MonitorElement* output); 00058 00059 DQMStore* dbe_; 00060 std::string monitorDir_; 00061 int counterLS_; 00062 int counterEvt_; 00063 int prescaleLS_; 00064 int prescaleEvt_; 00065 00066 bool m_runInEventLoop; 00067 bool m_runInEndLumi; 00068 bool m_runInEndRun; 00069 bool m_runInEndJob; 00070 00071 00072 00073 MonitorElement *l1GctIsoEmOccEta_; 00074 MonitorElement *l1GctIsoEmOccPhi_; 00075 MonitorElement *l1GctNonIsoEmOccEta_; 00076 MonitorElement *l1GctNonIsoEmOccPhi_; 00077 MonitorElement *l1GctAllJetsOccEta_; 00078 MonitorElement *l1GctAllJetsOccPhi_; 00079 MonitorElement *l1GctCenJetsOccEta_; 00080 MonitorElement *l1GctCenJetsOccPhi_; 00081 MonitorElement *l1GctForJetsOccEta_; 00082 MonitorElement *l1GctForJetsOccPhi_; 00083 MonitorElement *l1GctTauJetsOccEta_; 00084 MonitorElement *l1GctTauJetsOccPhi_; 00085 00086 }; 00087 00088 #endif