00001 #ifndef ESTimingTask_H 00002 #define ESTimingTask_H 00003 00004 #include "FWCore/Framework/interface/EDAnalyzer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 #include "FWCore/Framework/interface/ESHandle.h" 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 #include "CondFormats/ESObjects/interface/ESGain.h" 00010 00011 #include "TF1.h" 00012 #include "TH1F.h" 00013 00014 class MonitorElement; 00015 class DQMStore; 00016 00017 double fitf(double *x, double *par); 00018 00019 class ESTimingTask : public edm::EDAnalyzer { 00020 00021 public: 00022 00023 ESTimingTask(const edm::ParameterSet& ps); 00024 virtual ~ESTimingTask(); 00025 00026 private: 00027 00028 virtual void beginJob(void); 00029 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00030 virtual void endJob(void) ; 00031 void set(const edm::EventSetup& es); 00032 00033 // ----------member data --------------------------- 00034 edm::InputTag rechitlabel_; 00035 edm::InputTag digilabel_; 00036 std::string prefixME_; 00037 00038 DQMStore* dqmStore_; 00039 MonitorElement* hTiming_[2][2]; 00040 MonitorElement* h2DTiming_; 00041 00042 edm::ESHandle<ESGain> esgain_; 00043 00044 TF1 *fit_; 00045 TH1F *htESP_; 00046 TH1F *htESM_; 00047 00048 int runNum_, eCount_; 00049 Double_t wc_, n_; 00050 00051 }; 00052 00053 #endif