00001 #ifndef EESummaryClient_H 00002 #define EESummaryClient_H 00003 00004 /* 00005 * \file EESummaryClient.h 00006 * 00007 * $Date: 2012/06/11 22:57:16 $ 00008 * $Revision: 1.55 $ 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(const 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 std::string subfolder_; 00089 00090 bool enableCleanup_; 00091 00092 bool produceReports_; 00093 00094 bool reducedReports_; 00095 00096 std::vector<int> superModules_; 00097 std::vector<int> laserWavelengths_; 00098 std::vector<int> ledWavelengths_; 00099 std::vector<int> MGPAGains_; 00100 std::vector<int> MGPAGainsPN_; 00101 00102 std::vector<EEClient*> clients_; 00103 00104 DQMStore* dqmStore_; 00105 00106 MonitorElement* meIntegrity_[2]; 00107 MonitorElement* meIntegrityPN_; 00108 MonitorElement* meIntegrityErr_; 00109 MonitorElement* meStatusFlags_[2]; 00110 MonitorElement* meStatusFlagsErr_; 00111 MonitorElement* meOccupancy_[2]; 00112 MonitorElement* meOccupancyPN_; 00113 MonitorElement* meOccupancy1D_; 00114 MonitorElement* mePedestalOnline_[2]; 00115 MonitorElement* mePedestalOnlineErr_; 00116 MonitorElement* mePedestalOnlineMean_; 00117 MonitorElement* mePedestalOnlineRMS_; 00118 MonitorElement* mePedestalOnlineRMSMap_[2]; 00119 MonitorElement* meLaserL1_[2]; 00120 MonitorElement* meLaserL1Err_; 00121 MonitorElement* meLaserL1PN_; 00122 MonitorElement* meLaserL1PNErr_; 00123 MonitorElement* meLaserL1Ampl_; 00124 MonitorElement* meLaserL1Timing_; 00125 MonitorElement* meLaserL1AmplOverPN_; 00126 MonitorElement* meLaserL2_[2]; 00127 MonitorElement* meLaserL2Err_; 00128 MonitorElement* meLaserL2PN_; 00129 MonitorElement* meLaserL2PNErr_; 00130 MonitorElement* meLaserL2Ampl_; 00131 MonitorElement* meLaserL2Timing_; 00132 MonitorElement* meLaserL2AmplOverPN_; 00133 MonitorElement* meLaserL3_[2]; 00134 MonitorElement* meLaserL3Err_; 00135 MonitorElement* meLaserL3PN_; 00136 MonitorElement* meLaserL3PNErr_; 00137 MonitorElement* meLaserL3Ampl_; 00138 MonitorElement* meLaserL3Timing_; 00139 MonitorElement* meLaserL3AmplOverPN_; 00140 MonitorElement* meLaserL4_[2]; 00141 MonitorElement* meLaserL4Err_; 00142 MonitorElement* meLaserL4PN_; 00143 MonitorElement* meLaserL4PNErr_; 00144 MonitorElement* meLaserL4Ampl_; 00145 MonitorElement* meLaserL4Timing_; 00146 MonitorElement* meLaserL4AmplOverPN_; 00147 MonitorElement* meLedL1_[2]; 00148 MonitorElement* meLedL1Err_; 00149 MonitorElement* meLedL1PN_; 00150 MonitorElement* meLedL1PNErr_; 00151 MonitorElement* meLedL1Ampl_; 00152 MonitorElement* meLedL1Timing_; 00153 MonitorElement* meLedL1AmplOverPN_; 00154 MonitorElement* meLedL2_[2]; 00155 MonitorElement* meLedL2Err_; 00156 MonitorElement* meLedL2PN_; 00157 MonitorElement* meLedL2PNErr_; 00158 MonitorElement* meLedL2Ampl_; 00159 MonitorElement* meLedL2Timing_; 00160 MonitorElement* meLedL2AmplOverPN_; 00161 MonitorElement* mePedestalG01_[2]; 00162 MonitorElement* mePedestalG06_[2]; 00163 MonitorElement* mePedestalG12_[2]; 00164 MonitorElement* mePedestalPNG01_; 00165 MonitorElement* mePedestalPNG16_; 00166 MonitorElement* meTestPulseG01_[2]; 00167 MonitorElement* meTestPulseG06_[2]; 00168 MonitorElement* meTestPulseG12_[2]; 00169 MonitorElement* meTestPulsePNG01_; 00170 MonitorElement* meTestPulsePNG16_; 00171 MonitorElement* meTestPulseAmplG01_; 00172 MonitorElement* meTestPulseAmplG06_; 00173 MonitorElement* meTestPulseAmplG12_; 00174 00175 MonitorElement* meRecHitEnergy_[2]; 00176 MonitorElement* meTiming_[2]; 00177 MonitorElement* meTimingMean1D_[2]; 00178 MonitorElement* meTimingRMS1D_[2]; 00179 MonitorElement* meTimingMean_; 00180 MonitorElement* meTimingRMS_; 00181 MonitorElement* meTriggerTowerEt_[2]; 00182 MonitorElement* meTriggerTowerEtSpectrum_[2]; 00183 MonitorElement* meTriggerTowerEmulError_[2]; 00184 MonitorElement* meTriggerTowerTiming_[2]; 00185 MonitorElement* meTriggerTowerNonSingleTiming_[2]; 00186 00187 MonitorElement* meGlobalSummary_[2]; 00188 00189 MonitorElement* meSummaryErr_; 00190 00191 TProfile2D* hot01_[18]; 00192 TProfile2D* hpot01_[18]; 00193 TProfile2D* httt01_[18]; 00194 TProfile2D* htmt01_[18]; 00195 TH1F* norm01_, *synch01_; 00196 00197 float timingNHitThreshold_; 00198 00199 }; 00200 00201 #endif