CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DQM/EcalBarrelMonitorClient/interface/EBTrendClient.h

Go to the documentation of this file.
00001 #ifndef EBTrendClient_H
00002 #define EBTrendClient_H
00003 
00004 /*
00005  * \file EBTrendClient.h
00006  *
00007  * $Date: 2010/03/28 09:05:23 $
00008  * $Revision: 1.3 $
00009  * \author Dongwook Jang, Soon Yung Jun
00010  *
00011  */
00012 
00013 #include "FWCore/Framework/interface/EDAnalyzer.h"
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/EventSetup.h"
00016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00017 
00018 #include "TProfile.h"
00019 #include "TH1F.h"
00020 #include "TObject.h"
00021 
00022 class MonitorElement;
00023 class DQMStore;
00024 
00025 const int nHists_ = 6;
00026 
00027 class EBTrendClient: public edm::EDAnalyzer{
00028 
00029  public:
00030 
00031   // Constructor
00032   EBTrendClient(const edm::ParameterSet& ps);
00033 
00034   // Destructor
00035   virtual ~EBTrendClient();
00036 
00037  protected:
00038 
00039   // Analyze
00040   void analyze(const edm::Event& e, const edm::EventSetup& c);
00041 
00042   // BeginJob
00043   void beginJob(void);
00044 
00045   // EndJob
00046   void endJob(void);
00047 
00048   // BeginRun
00049   void beginRun(const edm::Run & r, const edm::EventSetup & c);
00050 
00051   // EndRun
00052   void endRun(const edm::Run & r, const edm::EventSetup & c);
00053 
00054   // Reset
00055   void reset(void);
00056 
00057   // Setup
00058   void setup(void);
00059 
00060   // Cleanup
00061   void cleanup(void);
00062 
00063   // Update time check
00064   void updateTime(void);
00065 
00066 
00067  private:
00068 
00069   int ievt_;
00070 
00071   DQMStore* dqmStore_;
00072 
00073   std::string prefixME_;
00074 
00075   bool enableCleanup_;
00076 
00077   bool mergeRuns_;
00078 
00079   bool verbose_;
00080 
00081   MonitorElement* meanMinutely_[nHists_];
00082   MonitorElement* sigmaMinutely_[nHists_];
00083 
00084   MonitorElement* meanHourly_[nHists_];
00085   MonitorElement* sigmaHourly_[nHists_];
00086 
00087   bool init_;
00088 
00089   int start_time_;
00090   int current_time_;
00091   int last_time_;
00092 
00093   std::string moduleNames_[nHists_];
00094   std::string histTitles_[nHists_];
00095 
00096   double mean_[nHists_];
00097   double rms_[nHists_];
00098 
00099   TObject* previousHist_[nHists_];
00100   TObject* currentHist_[nHists_];
00101 
00102 };
00103 
00104 #endif