00001 #ifndef DQM_L1TMONITORCLIENT_L1TGMTCLIENT_H
00002 #define DQM_L1TMONITORCLIENT_L1TGMTCLIENT_H
00003
00004 #include "FWCore/Framework/interface/EDAnalyzer.h"
00005 #include "DQMServices/Core/interface/DQMStore.h"
00006 #include "DQMServices/Core/interface/MonitorElement.h"
00007
00008 #include <string>
00009
00010 class L1TGMTClient: public edm::EDAnalyzer {
00011
00012 public:
00013
00015 L1TGMTClient(const edm::ParameterSet& ps);
00016
00018 virtual ~L1TGMTClient();
00019
00020 protected:
00021
00023 void beginJob(const edm::EventSetup& c);
00024
00026 void beginRun(const edm::Run& r, const edm::EventSetup& c);
00027
00029 void analyze(const edm::Event& e, const edm::EventSetup& c) ;
00030
00031 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00032 const edm::EventSetup& context) ;
00033
00035 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00036 const edm::EventSetup& c);
00037
00039 void endRun(const edm::Run& r, const edm::EventSetup& c);
00040
00042 void endJob();
00043
00044 private:
00045
00046 void initialize();
00047 void process();
00048 void makeRatio1D(MonitorElement* mer, std::string h1Name, std::string h2Name);
00049 void makeEfficiency1D(MonitorElement *meeff, std::string heName, std::string hiName);
00050 void makeEfficiency2D(MonitorElement *meeff, std::string heName, std::string hiName);
00051 TH1F * get1DHisto(std::string meName, DQMStore* dbi);
00052 TH2F * get2DHisto(std::string meName, DQMStore* dbi);
00053 MonitorElement* bookClone1D(std::string name, std::string title, std::string hrefName);
00054 MonitorElement* bookClone1DVB(std::string name, std::string title, std::string hrefName);
00055 MonitorElement* bookClone2D(std::string name, std::string title, std::string hrefName);
00056
00057 edm::ParameterSet parameters_;
00058 DQMStore* dbe_;
00059 std::string monitorName_;
00060 std::string input_dir_;
00061 std::string output_dir_;
00062 int counterLS_;
00063 int counterEvt_;
00064 int prescaleLS_;
00065 int prescaleEvt_;
00066
00067
00068 MonitorElement* eff_eta_dtcsc;
00069 MonitorElement* eff_eta_rpc;
00070 MonitorElement* eff_phi_dtcsc;
00071 MonitorElement* eff_phi_rpc;
00072 MonitorElement* eff_etaphi_dtcsc;
00073 MonitorElement* eff_etaphi_rpc;
00074
00075 MonitorElement* ratio_dt_rpcb_lumi;
00076 MonitorElement* ratio_csc_rpcf_lumi;
00077
00078 };
00079
00080 #endif