00001 #ifndef EBLaserClient_H 00002 #define EBLaserClient_H 00003 00004 /* 00005 * \file EBLaserClient.h 00006 * 00007 * $Date: 2010/02/14 20:56:22 $ 00008 * $Revision: 1.92 $ 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/EcalBarrelMonitorClient/interface/EBClient.h" 00023 00024 class MonitorElement; 00025 class DQMStore; 00026 #ifdef WITH_ECAL_COND_DB 00027 class EcalCondDBInterface; 00028 class RunIOV; 00029 class MonRunIOV; 00030 #endif 00031 00032 class EBLaserClient : public EBClient { 00033 00034 friend class EBSummaryClient; 00035 00036 public: 00037 00039 EBLaserClient(const edm::ParameterSet& ps); 00040 00042 virtual ~EBLaserClient(); 00043 00045 void analyze(void); 00046 00048 void beginJob(void); 00049 00051 void endJob(void); 00052 00054 void beginRun(void); 00055 00057 void endRun(void); 00058 00060 void setup(void); 00061 00063 void cleanup(void); 00064 00065 #ifdef WITH_ECAL_COND_DB 00066 00067 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status); 00068 #endif 00069 00071 inline int getEvtPerJob() { return ievt_; } 00072 inline int getEvtPerRun() { return jevt_; } 00073 00074 private: 00075 00076 int ievt_; 00077 int jevt_; 00078 00079 bool cloneME_; 00080 00081 bool verbose_; 00082 bool debug_; 00083 00084 std::string prefixME_; 00085 00086 bool enableCleanup_; 00087 00088 std::vector<int> superModules_; 00089 std::vector<int> laserWavelengths_; 00090 00091 DQMStore* dqmStore_; 00092 00093 TProfile2D* h01_[36]; 00094 TProfile2D* h02_[36]; 00095 TProfile2D* h03_[36]; 00096 TProfile2D* h04_[36]; 00097 TProfile2D* h05_[36]; 00098 TProfile2D* h06_[36]; 00099 TProfile2D* h07_[36]; 00100 TProfile2D* h08_[36]; 00101 00102 TProfile2D* h09_[36]; 00103 TProfile2D* h10_[36]; 00104 TProfile2D* h11_[36]; 00105 TProfile2D* h12_[36]; 00106 00107 TProfile2D* hs01_[36]; 00108 TProfile2D* hs02_[36]; 00109 TProfile2D* hs03_[36]; 00110 TProfile2D* hs04_[36]; 00111 00112 MonitorElement* meg01_[36]; 00113 MonitorElement* meg02_[36]; 00114 MonitorElement* meg03_[36]; 00115 MonitorElement* meg04_[36]; 00116 00117 MonitorElement* meg05_[36]; 00118 MonitorElement* meg06_[36]; 00119 MonitorElement* meg07_[36]; 00120 MonitorElement* meg08_[36]; 00121 MonitorElement* meg09_[36]; 00122 MonitorElement* meg10_[36]; 00123 MonitorElement* meg11_[36]; 00124 MonitorElement* meg12_[36]; 00125 00126 MonitorElement* mea01_[36]; 00127 MonitorElement* mea02_[36]; 00128 MonitorElement* mea03_[36]; 00129 MonitorElement* mea04_[36]; 00130 00131 MonitorElement* met01_[36]; 00132 MonitorElement* met02_[36]; 00133 MonitorElement* met03_[36]; 00134 MonitorElement* met04_[36]; 00135 00136 MonitorElement* metav01_[36]; 00137 MonitorElement* metav02_[36]; 00138 MonitorElement* metav03_[36]; 00139 MonitorElement* metav04_[36]; 00140 00141 MonitorElement* metrms01_[36]; 00142 MonitorElement* metrms02_[36]; 00143 MonitorElement* metrms03_[36]; 00144 MonitorElement* metrms04_[36]; 00145 00146 MonitorElement* meaopn01_[36]; 00147 MonitorElement* meaopn02_[36]; 00148 MonitorElement* meaopn03_[36]; 00149 MonitorElement* meaopn04_[36]; 00150 00151 MonitorElement* mepnprms01_[36]; 00152 MonitorElement* mepnprms02_[36]; 00153 MonitorElement* mepnprms03_[36]; 00154 MonitorElement* mepnprms04_[36]; 00155 MonitorElement* mepnprms05_[36]; 00156 MonitorElement* mepnprms06_[36]; 00157 MonitorElement* mepnprms07_[36]; 00158 MonitorElement* mepnprms08_[36]; 00159 00160 MonitorElement* me_hs01_[36]; 00161 MonitorElement* me_hs02_[36]; 00162 MonitorElement* me_hs03_[36]; 00163 MonitorElement* me_hs04_[36]; 00164 MonitorElement* me_hs05_[36]; 00165 MonitorElement* me_hs06_[36]; 00166 MonitorElement* me_hs07_[36]; 00167 MonitorElement* me_hs08_[36]; 00168 00169 TProfile* i01_[36]; 00170 TProfile* i02_[36]; 00171 TProfile* i03_[36]; 00172 TProfile* i04_[36]; 00173 TProfile* i05_[36]; 00174 TProfile* i06_[36]; 00175 TProfile* i07_[36]; 00176 TProfile* i08_[36]; 00177 TProfile* i09_[36]; 00178 TProfile* i10_[36]; 00179 TProfile* i11_[36]; 00180 TProfile* i12_[36]; 00181 TProfile* i13_[36]; 00182 TProfile* i14_[36]; 00183 TProfile* i15_[36]; 00184 TProfile* i16_[36]; 00185 00186 // Quality check on crystals 00187 00188 float percentVariation_; 00189 float amplitudeThreshold_; 00190 float rmsThresholdRelative_; 00191 00192 // Quality check on PNs 00193 00194 float amplitudeThresholdPnG01_; 00195 float amplitudeThresholdPnG16_; 00196 float pedPnExpectedMean_[2]; 00197 float pedPnDiscrepancyMean_[2]; 00198 float pedPnRMSThreshold_[2]; 00199 00200 }; 00201 00202 #endif