00001 #ifndef ESTrendTask_H 00002 #define ESTrendTask_H 00003 00004 #include "FWCore/Framework/interface/EDAnalyzer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 00008 #include "TProfile.h" 00009 00010 class MonitorElement; 00011 class DQMStore; 00012 00013 class ESTrendTask: public edm::EDAnalyzer{ 00014 00015 public: 00016 00017 // Constructor 00018 ESTrendTask(const edm::ParameterSet& ps); 00019 00020 // Destructor 00021 virtual ~ESTrendTask(); 00022 00023 protected: 00024 00025 // Analyze 00026 void analyze(const edm::Event& e, const edm::EventSetup& c); 00027 00028 // BeginJob 00029 void beginJob(void); 00030 00031 // EndJob 00032 void endJob(void); 00033 00034 // BeginRun 00035 void beginRun(const edm::Run & r, const edm::EventSetup & c); 00036 00037 // EndRun 00038 void endRun(const edm::Run & r, const edm::EventSetup & c); 00039 00040 // Reset 00041 void reset(void); 00042 00043 // Setup 00044 void setup(void); 00045 00046 // Cleanup 00047 void cleanup(void); 00048 00049 // Update time check 00050 void updateTime(const edm::Event&); 00051 00052 // Shift bins of TProfile to the right 00053 void shift2Right(TProfile* p, int bins=1); 00054 00055 // Shift bins of TProfile to the left 00056 void shift2Left(TProfile* p, int bins=1); 00057 00058 private: 00059 00060 int ievt_; 00061 00062 DQMStore* dqmStore_; 00063 00064 std::string prefixME_; 00065 00066 bool enableCleanup_; 00067 00068 bool mergeRuns_; 00069 00070 edm::InputTag rechitlabel_; 00071 edm::InputTag dccCollections_; 00072 00073 MonitorElement* hESRecHitTrend_[2][2]; 00074 MonitorElement* hESSLinkErrTrend_; 00075 MonitorElement* hESFiberErrTrend_; 00076 00077 MonitorElement* hESRecHitTrendHr_[2][2]; 00078 MonitorElement* hESSLinkErrTrendHr_; 00079 MonitorElement* hESFiberErrTrendHr_; 00080 00081 bool init_; 00082 00083 long int start_time_; 00084 long int current_time_; 00085 long int last_time_; 00086 00087 }; 00088 00089 #endif