00001 #ifndef EELaserClient_H 00002 #define EELaserClient_H 00003 00004 /* 00005 * \file EELaserClient.h 00006 * 00007 * $Date: 2008/10/07 18:34:23 $ 00008 * $Revision: 1.28 $ 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 class MonitorElement; 00025 class DQMStore; 00026 class EcalCondDBInterface; 00027 class RunIOV; 00028 class MonRunIOV; 00029 00030 class EELaserClient : public EEClient { 00031 00032 friend class EESummaryClient; 00033 00034 public: 00035 00037 EELaserClient(const edm::ParameterSet& ps); 00038 00040 virtual ~EELaserClient(); 00041 00043 void analyze(void); 00044 00046 void beginJob(DQMStore* dqmStore); 00047 00049 void endJob(void); 00050 00052 void beginRun(void); 00053 00055 void endRun(void); 00056 00058 void setup(void); 00059 00061 void cleanup(void); 00062 00064 void softReset(bool flag); 00065 00067 void htmlOutput(int run, std::string& htmlDir, std::string& htmlName); 00068 00070 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag); 00071 00073 inline int getEvtPerJob() { return ievt_; } 00074 inline int getEvtPerRun() { return jevt_; } 00075 00076 private: 00077 00078 int ievt_; 00079 int jevt_; 00080 00081 bool cloneME_; 00082 00083 bool verbose_; 00084 bool debug_; 00085 00086 std::string prefixME_; 00087 00088 bool enableCleanup_; 00089 00090 std::vector<int> superModules_; 00091 00092 DQMStore* dqmStore_; 00093 00094 TProfile2D* h01_[18]; 00095 TProfile2D* h02_[18]; 00096 TProfile2D* h03_[18]; 00097 TProfile2D* h04_[18]; 00098 TProfile2D* h05_[18]; 00099 TProfile2D* h06_[18]; 00100 TProfile2D* h07_[18]; 00101 TProfile2D* h08_[18]; 00102 00103 TProfile2D* h09_[18]; 00104 TProfile2D* h10_[18]; 00105 TProfile2D* h11_[18]; 00106 TProfile2D* h12_[18]; 00107 00108 TProfile2D* h13_[18]; 00109 TProfile2D* h14_[18]; 00110 TProfile2D* h15_[18]; 00111 TProfile2D* h16_[18]; 00112 TProfile2D* h17_[18]; 00113 TProfile2D* h18_[18]; 00114 TProfile2D* h19_[18]; 00115 TProfile2D* h20_[18]; 00116 00117 TProfile2D* h21_[18]; 00118 TProfile2D* h22_[18]; 00119 TProfile2D* h23_[18]; 00120 TProfile2D* h24_[18]; 00121 00122 TProfile2D* hs01_[18]; 00123 TProfile2D* hs02_[18]; 00124 TProfile2D* hs03_[18]; 00125 TProfile2D* hs04_[18]; 00126 00127 TProfile2D* hs05_[18]; 00128 TProfile2D* hs06_[18]; 00129 TProfile2D* hs07_[18]; 00130 TProfile2D* hs08_[18]; 00131 00132 MonitorElement* meg01_[18]; 00133 MonitorElement* meg02_[18]; 00134 MonitorElement* meg03_[18]; 00135 MonitorElement* meg04_[18]; 00136 00137 MonitorElement* meg05_[18]; 00138 MonitorElement* meg06_[18]; 00139 MonitorElement* meg07_[18]; 00140 MonitorElement* meg08_[18]; 00141 MonitorElement* meg09_[18]; 00142 MonitorElement* meg10_[18]; 00143 MonitorElement* meg11_[18]; 00144 MonitorElement* meg12_[18]; 00145 00146 MonitorElement* mea01_[18]; 00147 MonitorElement* mea02_[18]; 00148 MonitorElement* mea03_[18]; 00149 MonitorElement* mea04_[18]; 00150 MonitorElement* mea05_[18]; 00151 MonitorElement* mea06_[18]; 00152 MonitorElement* mea07_[18]; 00153 MonitorElement* mea08_[18]; 00154 00155 MonitorElement* met01_[18]; 00156 MonitorElement* met02_[18]; 00157 MonitorElement* met03_[18]; 00158 MonitorElement* met04_[18]; 00159 MonitorElement* met05_[18]; 00160 MonitorElement* met06_[18]; 00161 MonitorElement* met07_[18]; 00162 MonitorElement* met08_[18]; 00163 00164 MonitorElement* metav01_[18]; 00165 MonitorElement* metav02_[18]; 00166 MonitorElement* metav03_[18]; 00167 MonitorElement* metav04_[18]; 00168 MonitorElement* metav05_[18]; 00169 MonitorElement* metav06_[18]; 00170 MonitorElement* metav07_[18]; 00171 MonitorElement* metav08_[18]; 00172 00173 MonitorElement* metrms01_[18]; 00174 MonitorElement* metrms02_[18]; 00175 MonitorElement* metrms03_[18]; 00176 MonitorElement* metrms04_[18]; 00177 MonitorElement* metrms05_[18]; 00178 MonitorElement* metrms06_[18]; 00179 MonitorElement* metrms07_[18]; 00180 MonitorElement* metrms08_[18]; 00181 00182 MonitorElement* meaopn01_[18]; 00183 MonitorElement* meaopn02_[18]; 00184 MonitorElement* meaopn03_[18]; 00185 MonitorElement* meaopn04_[18]; 00186 MonitorElement* meaopn05_[18]; 00187 MonitorElement* meaopn06_[18]; 00188 MonitorElement* meaopn07_[18]; 00189 MonitorElement* meaopn08_[18]; 00190 00191 MonitorElement* mepnprms01_[18]; 00192 MonitorElement* mepnprms02_[18]; 00193 MonitorElement* mepnprms03_[18]; 00194 MonitorElement* mepnprms04_[18]; 00195 MonitorElement* mepnprms05_[18]; 00196 MonitorElement* mepnprms06_[18]; 00197 MonitorElement* mepnprms07_[18]; 00198 MonitorElement* mepnprms08_[18]; 00199 00200 MonitorElement* me_hs01_[36]; 00201 MonitorElement* me_hs02_[36]; 00202 MonitorElement* me_hs03_[36]; 00203 MonitorElement* me_hs04_[36]; 00204 MonitorElement* me_hs05_[36]; 00205 MonitorElement* me_hs06_[36]; 00206 MonitorElement* me_hs07_[36]; 00207 MonitorElement* me_hs08_[36]; 00208 00209 TProfile* i01_[18]; 00210 TProfile* i02_[18]; 00211 TProfile* i03_[18]; 00212 TProfile* i04_[18]; 00213 TProfile* i05_[18]; 00214 TProfile* i06_[18]; 00215 TProfile* i07_[18]; 00216 TProfile* i08_[18]; 00217 TProfile* i09_[18]; 00218 TProfile* i10_[18]; 00219 TProfile* i11_[18]; 00220 TProfile* i12_[18]; 00221 TProfile* i13_[18]; 00222 TProfile* i14_[18]; 00223 TProfile* i15_[18]; 00224 TProfile* i16_[18]; 00225 00226 // Quality check on crystals 00227 00228 float percentVariation_; 00229 float amplitudeThreshold_; 00230 00231 // Quality check on PNs 00232 00233 float amplitudeThresholdPnG01_; 00234 float amplitudeThresholdPnG16_; 00235 float pedPnExpectedMean_[2]; 00236 float pedPnDiscrepancyMean_[2]; 00237 float pedPnRMSThreshold_[2]; 00238 00239 }; 00240 00241 #endif