00001 #ifndef EEPedestalClient_H 00002 #define EEPedestalClient_H 00003 00004 /* 00005 * \file EEPedestalClient.h 00006 * 00007 * $Date: 2010/02/14 20:56:24 $ 00008 * $Revision: 1.33 $ 00009 * \author G. Della Ricca 00010 * \author F. Cossutti 00011 * 00012 */ 00013 00014 #include <vector> 00015 #include <string> 00016 00017 #include "TROOT.h" 00018 #include "TProfile2D.h" 00019 #include "TH1F.h" 00020 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 00023 #include "DQM/EcalEndcapMonitorClient/interface/EEClient.h" 00024 00025 class MonitorElement; 00026 class DQMStore; 00027 #ifdef WITH_ECAL_COND_DB 00028 class EcalCondDBInterface; 00029 class RunIOV; 00030 class MonRunIOV; 00031 #endif 00032 00033 class EEPedestalClient : public EEClient { 00034 00035 friend class EESummaryClient; 00036 00037 public: 00038 00040 EEPedestalClient(const edm::ParameterSet& ps); 00041 00043 virtual ~EEPedestalClient(); 00044 00046 void analyze(void); 00047 00048 // BeginJob 00049 void beginJob(void); 00050 00051 // EndJob 00052 void endJob(void); 00053 00054 // BeginRun 00055 void beginRun(void); 00056 00057 // EndRun 00058 void endRun(void); 00059 00061 void setup(void); 00062 00063 // Cleanup 00064 void cleanup(void); 00065 00066 #ifdef WITH_ECAL_COND_DB 00067 // WriteDB 00068 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status); 00069 #endif 00070 00072 inline int getEvtPerJob() { return ievt_; } 00073 inline int getEvtPerRun() { return jevt_; } 00074 00075 private: 00076 00077 int ievt_; 00078 int jevt_; 00079 00080 bool cloneME_; 00081 00082 bool verbose_; 00083 bool debug_; 00084 00085 std::string prefixME_; 00086 00087 bool enableCleanup_; 00088 00089 std::vector<int> superModules_; 00090 std::vector<int> MGPAGains_; 00091 std::vector<int> MGPAGainsPN_; 00092 00093 DQMStore* dqmStore_; 00094 00095 TProfile2D* h01_[18]; 00096 TProfile2D* h02_[18]; 00097 TProfile2D* h03_[18]; 00098 00099 TProfile2D* j01_[18]; 00100 TProfile2D* j02_[18]; 00101 TProfile2D* j03_[18]; 00102 00103 TProfile2D* k01_[18]; 00104 TProfile2D* k02_[18]; 00105 TProfile2D* k03_[18]; 00106 00107 MonitorElement* meg01_[18]; 00108 MonitorElement* meg02_[18]; 00109 MonitorElement* meg03_[18]; 00110 00111 MonitorElement* meg04_[18]; 00112 MonitorElement* meg05_[18]; 00113 00114 MonitorElement* mep01_[18]; 00115 MonitorElement* mep02_[18]; 00116 MonitorElement* mep03_[18]; 00117 00118 MonitorElement* mer01_[18]; 00119 MonitorElement* mer02_[18]; 00120 MonitorElement* mer03_[18]; 00121 00122 MonitorElement* mer04_[18]; 00123 MonitorElement* mer05_[18]; 00124 00125 MonitorElement* mes01_[18]; 00126 MonitorElement* mes02_[18]; 00127 MonitorElement* mes03_[18]; 00128 00129 MonitorElement* met01_[18]; 00130 MonitorElement* met02_[18]; 00131 MonitorElement* met03_[18]; 00132 00133 TProfile* i01_[18]; 00134 TProfile* i02_[18]; 00135 00136 // Quality check on crystals, one per each gain 00137 00138 float expectedMean_[3]; 00139 float discrepancyMean_[3]; 00140 float RMSThreshold_[3]; 00141 float RMSThresholdInner_[3]; 00142 00143 // Quality check on PNs 00144 00145 float expectedMeanPn_[2]; 00146 float discrepancyMeanPn_[2]; 00147 float RMSThresholdPn_[2]; 00148 00149 }; 00150 00151 #endif