00001 #ifndef EELedClient_H 00002 #define EELedClient_H 00003 00004 /* 00005 * \file EELedClient.h 00006 * 00007 * $Date: 2010/03/05 13:34:41 $ 00008 * $Revision: 1.39 $ 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 #ifdef WITH_ECAL_COND_DB 00027 class EcalCondDBInterface; 00028 class RunIOV; 00029 class MonRunIOV; 00030 #endif 00031 00032 class EELedClient : public EEClient { 00033 00034 friend class EESummaryClient; 00035 00036 public: 00037 00039 EELedClient(const edm::ParameterSet& ps); 00040 00042 virtual ~EELedClient(); 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> ledWavelengths_; 00090 00091 DQMStore* dqmStore_; 00092 00093 TProfile2D* h01_[18]; 00094 TProfile2D* h02_[18]; 00095 TProfile2D* h03_[18]; 00096 TProfile2D* h04_[18]; 00097 00098 TProfile2D* h09_[18]; 00099 TProfile2D* h10_[18]; 00100 00101 TProfile2D* hs01_[18]; 00102 TProfile2D* hs02_[18]; 00103 00104 MonitorElement* meg01_[18]; 00105 MonitorElement* meg02_[18]; 00106 00107 MonitorElement* meg05_[18]; 00108 MonitorElement* meg06_[18]; 00109 00110 MonitorElement* meg09_[18]; 00111 MonitorElement* meg10_[18]; 00112 00113 MonitorElement* mea01_[18]; 00114 MonitorElement* mea02_[18]; 00115 00116 MonitorElement* met01_[18]; 00117 MonitorElement* met02_[18]; 00118 00119 MonitorElement* metav01_[18]; 00120 MonitorElement* metav02_[18]; 00121 00122 MonitorElement* metrms01_[18]; 00123 MonitorElement* metrms02_[18]; 00124 00125 MonitorElement* meaopn01_[18]; 00126 MonitorElement* meaopn02_[18]; 00127 00128 MonitorElement* mepnprms01_[18]; 00129 MonitorElement* mepnprms02_[18]; 00130 00131 MonitorElement* mepnprms05_[18]; 00132 MonitorElement* mepnprms06_[18]; 00133 00134 MonitorElement* me_hs01_[18]; 00135 MonitorElement* me_hs02_[18]; 00136 00137 TProfile* i01_[18]; 00138 TProfile* i02_[18]; 00139 00140 TProfile* i05_[18]; 00141 TProfile* i06_[18]; 00142 00143 TProfile* i09_[18]; 00144 TProfile* i10_[18]; 00145 00146 TProfile* i13_[18]; 00147 TProfile* i14_[18]; 00148 00149 // Quality check on crystals 00150 00151 float percentVariation01_, percentVariation03_; 00152 float amplitudeThreshold01_, amplitudeThreshold03_; 00153 float rmsThreshold01_, rmsThreshold03_; 00154 00155 // Quality check on PNs 00156 00157 float amplitudeThresholdPnG01_; 00158 float amplitudeThresholdPnG16_; 00159 float pedPnExpectedMean_[2]; 00160 float pedPnDiscrepancyMean_[2]; 00161 float pedPnRMSThreshold_[2]; 00162 00163 }; 00164 00165 #endif