00001 #ifndef EESummaryClient_H 00002 #define EESummaryClient_H 00003 00004 /* 00005 * \file EESummaryClient.h 00006 * 00007 * $Date: 2010/06/30 15:08:11 $ 00008 * $Revision: 1.49 $ 00009 * \author G. Della Ricca 00010 * 00011 */ 00012 00013 #include <vector> 00014 #include <string> 00015 00016 #include "TROOT.h" 00017 #include "TProfile2D.h" 00018 00019 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00020 00021 #include "DQM/EcalEndcapMonitorClient/interface/EEClient.h" 00022 00023 class MonitorElement; 00024 class DQMStore; 00025 #ifdef WITH_ECAL_COND_DB 00026 class EcalCondDBInterface; 00027 class RunIOV; 00028 class MonRunIOV; 00029 #endif 00030 00031 class EESummaryClient : public EEClient { 00032 00033 public: 00034 00036 EESummaryClient(const edm::ParameterSet& ps); 00037 00039 virtual ~EESummaryClient(); 00040 00042 void analyze(void); 00043 00045 void beginJob(void); 00046 00048 void endJob(void); 00049 00051 void beginRun(void); 00052 00054 void endRun(void); 00055 00057 void setup(void); 00058 00060 void cleanup(void); 00061 00062 #ifdef WITH_ECAL_COND_DB 00063 00064 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status); 00065 #endif 00066 00068 inline int getEvtPerJob() { return ievt_; } 00069 inline int getEvtPerRun() { return jevt_; } 00070 00072 inline void setFriends(std::vector<EEClient*> clients) { clients_ = clients; } 00073 00074 private: 00075 00076 int ievt_; 00077 int jevt_; 00078 00079 float synchErrorThreshold_; 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 std::vector<int> laserWavelengths_; 00092 std::vector<int> ledWavelengths_; 00093 std::vector<int> MGPAGains_; 00094 std::vector<int> MGPAGainsPN_; 00095 00096 std::vector<EEClient*> clients_; 00097 00098 DQMStore* dqmStore_; 00099 00100 MonitorElement* meIntegrity_[2]; 00101 MonitorElement* meIntegrityPN_; 00102 MonitorElement* meIntegrityErr_; 00103 MonitorElement* meStatusFlags_[2]; 00104 MonitorElement* meStatusFlagsErr_; 00105 MonitorElement* meOccupancy_[2]; 00106 MonitorElement* meOccupancyPN_; 00107 MonitorElement* meOccupancy1D_; 00108 MonitorElement* mePedestalOnline_[2]; 00109 MonitorElement* mePedestalOnlineErr_; 00110 MonitorElement* mePedestalOnlineMean_; 00111 MonitorElement* mePedestalOnlineRMS_; 00112 MonitorElement* mePedestalOnlineRMSMap_[2]; 00113 MonitorElement* meLaserL1_[2]; 00114 MonitorElement* meLaserL1Err_; 00115 MonitorElement* meLaserL1PN_; 00116 MonitorElement* meLaserL1PNErr_; 00117 MonitorElement* meLaserL1Ampl_; 00118 MonitorElement* meLaserL1Timing_; 00119 MonitorElement* meLaserL1AmplOverPN_; 00120 MonitorElement* meLaserL2_[2]; 00121 MonitorElement* meLaserL2Err_; 00122 MonitorElement* meLaserL2PN_; 00123 MonitorElement* meLaserL2PNErr_; 00124 MonitorElement* meLaserL2Ampl_; 00125 MonitorElement* meLaserL2Timing_; 00126 MonitorElement* meLaserL2AmplOverPN_; 00127 MonitorElement* meLaserL3_[2]; 00128 MonitorElement* meLaserL3Err_; 00129 MonitorElement* meLaserL3PN_; 00130 MonitorElement* meLaserL3PNErr_; 00131 MonitorElement* meLaserL3Ampl_; 00132 MonitorElement* meLaserL3Timing_; 00133 MonitorElement* meLaserL3AmplOverPN_; 00134 MonitorElement* meLaserL4_[2]; 00135 MonitorElement* meLaserL4Err_; 00136 MonitorElement* meLaserL4PN_; 00137 MonitorElement* meLaserL4PNErr_; 00138 MonitorElement* meLaserL4Ampl_; 00139 MonitorElement* meLaserL4Timing_; 00140 MonitorElement* meLaserL4AmplOverPN_; 00141 MonitorElement* meLedL1_[2]; 00142 MonitorElement* meLedL1Err_; 00143 MonitorElement* meLedL1PN_; 00144 MonitorElement* meLedL1PNErr_; 00145 MonitorElement* meLedL1Ampl_; 00146 MonitorElement* meLedL1Timing_; 00147 MonitorElement* meLedL1AmplOverPN_; 00148 MonitorElement* meLedL2_[2]; 00149 MonitorElement* meLedL2Err_; 00150 MonitorElement* meLedL2PN_; 00151 MonitorElement* meLedL2PNErr_; 00152 MonitorElement* meLedL2Ampl_; 00153 MonitorElement* meLedL2Timing_; 00154 MonitorElement* meLedL2AmplOverPN_; 00155 MonitorElement* mePedestalG01_[2]; 00156 MonitorElement* mePedestalG06_[2]; 00157 MonitorElement* mePedestalG12_[2]; 00158 MonitorElement* mePedestalPNG01_; 00159 MonitorElement* mePedestalPNG16_; 00160 MonitorElement* meTestPulseG01_[2]; 00161 MonitorElement* meTestPulseG06_[2]; 00162 MonitorElement* meTestPulseG12_[2]; 00163 MonitorElement* meTestPulsePNG01_; 00164 MonitorElement* meTestPulsePNG16_; 00165 MonitorElement* meTestPulseAmplG01_; 00166 MonitorElement* meTestPulseAmplG06_; 00167 MonitorElement* meTestPulseAmplG12_; 00168 00169 MonitorElement* meRecHitEnergy_[2]; 00170 MonitorElement* meTiming_[2]; 00171 MonitorElement* meTimingMean1D_[2]; 00172 MonitorElement* meTimingRMS1D_[2]; 00173 MonitorElement* meTimingMean_; 00174 MonitorElement* meTimingRMS_; 00175 MonitorElement* meTriggerTowerEt_[2]; 00176 MonitorElement* meTriggerTowerEtSpectrum_[2]; 00177 MonitorElement* meTriggerTowerEmulError_[2]; 00178 MonitorElement* meTriggerTowerTiming_[2]; 00179 MonitorElement* meTriggerTowerNonSingleTiming_[2]; 00180 00181 MonitorElement* meGlobalSummary_[2]; 00182 00183 TProfile2D* hot01_[18]; 00184 TProfile2D* hpot01_[18]; 00185 TProfile2D* httt01_[18]; 00186 TProfile2D* htmt01_[18]; 00187 TH1F* norm01_, *synch01_; 00188 00189 }; 00190 00191 #endif