00001 #ifndef EETimingClient_H 00002 #define EETimingClient_H 00003 00004 /* 00005 * \file EETimingClient.h 00006 * 00007 * $Date: 2012/04/27 13:46:04 $ 00008 * $Revision: 1.35 $ 00009 * \author G. Della Ricca 00010 * 00011 */ 00012 00013 #include <vector> 00014 #include <string> 00015 00016 #include "TROOT.h" 00017 #include "TProfile2D.h" 00018 #include "TH1F.h" 00019 00020 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00021 00022 #include "DQM/EcalEndcapMonitorClient/interface/EEClient.h" 00023 00024 #include "FWCore/Framework/interface/ESHandle.h" 00025 #include "Geometry/Records/interface/CaloGeometryRecord.h" 00026 00027 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00028 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00029 00030 class MonitorElement; 00031 class DQMStore; 00032 #ifdef WITH_ECAL_COND_DB 00033 class EcalCondDBInterface; 00034 class RunIOV; 00035 class MonRunIOV; 00036 #endif 00037 00038 class EETimingClient : public EEClient { 00039 00040 friend class EESummaryClient; 00041 00042 public: 00043 00045 EETimingClient(const edm::ParameterSet& ps); 00046 00048 virtual ~EETimingClient(); 00049 00051 void analyze(void); 00052 00054 void beginJob(void); 00055 00057 void endJob(void); 00058 00060 void beginRun(void); 00061 00063 void endRun(void); 00064 00066 void setup(void); 00067 00069 void cleanup(void); 00070 00071 #ifdef WITH_ECAL_COND_DB 00072 00073 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status); 00074 #endif 00075 00077 inline int getEvtPerJob() { return ievt_; } 00078 inline int getEvtPerRun() { return jevt_; } 00079 00080 private: 00081 00082 int ievt_; 00083 int jevt_; 00084 00085 bool cloneME_; 00086 00087 bool verbose_; 00088 bool debug_; 00089 00090 std::string prefixME_; 00091 00092 bool enableCleanup_; 00093 00094 std::vector<int> superModules_; 00095 00096 DQMStore* dqmStore_; 00097 00098 MonitorElement* meh01_[18]; 00099 MonitorElement* meh02_[18]; 00100 00101 TProfile2D* h01_[18]; 00102 TH2F* h02_[18]; 00103 00104 MonitorElement* meg01_[18]; 00105 00106 MonitorElement* mea01_[18]; 00107 00108 MonitorElement* mep01_[18]; 00109 00110 MonitorElement* mer01_[18]; 00111 00112 MonitorElement* meTimeSummaryMapProjEta_[2]; 00113 MonitorElement* meTimeSummaryMapProjPhi_[2]; 00114 00115 // Quality check on crystals, one per each gain 00116 00117 float expectedMean_; 00118 float meanThreshold_; 00119 float rmsThreshold_; 00120 00121 int nHitThreshold_; 00122 }; 00123 00124 #endif