00001 #ifndef EBSummaryClient_H 00002 #define EBSummaryClient_H 00003 00004 /* 00005 * \file EBSummaryClient.h 00006 * 00007 * $Date: 2010/06/30 15:08:11 $ 00008 * $Revision: 1.57 $ 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/EcalBarrelMonitorClient/interface/EBClient.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 EBSummaryClient : public EBClient { 00032 00033 public: 00034 00036 EBSummaryClient(const edm::ParameterSet& ps); 00037 00039 virtual ~EBSummaryClient(); 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<EBClient*> 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> MGPAGains_; 00093 std::vector<int> MGPAGainsPN_; 00094 00095 std::vector<EBClient*> clients_; 00096 00097 DQMStore* dqmStore_; 00098 00099 MonitorElement* meIntegrity_; 00100 MonitorElement* meIntegrityPN_; 00101 MonitorElement* meIntegrityErr_; 00102 MonitorElement* meStatusFlags_; 00103 MonitorElement* meStatusFlagsErr_; 00104 MonitorElement* meOccupancy_; 00105 MonitorElement* meOccupancyPN_; 00106 MonitorElement* meOccupancy1D_; 00107 MonitorElement* mePedestalOnline_; 00108 MonitorElement* mePedestalOnlineErr_; 00109 MonitorElement* mePedestalOnlineMean_; 00110 MonitorElement* mePedestalOnlineRMS_; 00111 MonitorElement* mePedestalOnlineRMSMap_; 00112 MonitorElement* meLaserL1_; 00113 MonitorElement* meLaserL1Err_; 00114 MonitorElement* meLaserL1Ampl_; 00115 MonitorElement* meLaserL1Timing_; 00116 MonitorElement* meLaserL1AmplOverPN_; 00117 MonitorElement* meLaserL1PN_; 00118 MonitorElement* meLaserL1PNErr_; 00119 MonitorElement* meLaserL2_; 00120 MonitorElement* meLaserL2Err_; 00121 MonitorElement* meLaserL2Ampl_; 00122 MonitorElement* meLaserL2Timing_; 00123 MonitorElement* meLaserL2AmplOverPN_; 00124 MonitorElement* meLaserL2PN_; 00125 MonitorElement* meLaserL2PNErr_; 00126 MonitorElement* meLaserL3_; 00127 MonitorElement* meLaserL3Err_; 00128 MonitorElement* meLaserL3Ampl_; 00129 MonitorElement* meLaserL3Timing_; 00130 MonitorElement* meLaserL3AmplOverPN_; 00131 MonitorElement* meLaserL3PN_; 00132 MonitorElement* meLaserL3PNErr_; 00133 MonitorElement* meLaserL4_; 00134 MonitorElement* meLaserL4Err_; 00135 MonitorElement* meLaserL4Ampl_; 00136 MonitorElement* meLaserL4Timing_; 00137 MonitorElement* meLaserL4AmplOverPN_; 00138 MonitorElement* meLaserL4PN_; 00139 MonitorElement* meLaserL4PNErr_; 00140 MonitorElement* mePedestalG01_; 00141 MonitorElement* mePedestalG06_; 00142 MonitorElement* mePedestalG12_; 00143 MonitorElement* mePedestalPNG01_; 00144 MonitorElement* mePedestalPNG16_; 00145 MonitorElement* meTestPulseG01_; 00146 MonitorElement* meTestPulseG06_; 00147 MonitorElement* meTestPulseG12_; 00148 MonitorElement* meTestPulsePNG01_; 00149 MonitorElement* meTestPulsePNG16_; 00150 MonitorElement* meTestPulseAmplG01_; 00151 MonitorElement* meTestPulseAmplG06_; 00152 MonitorElement* meTestPulseAmplG12_; 00153 00154 MonitorElement* meRecHitEnergy_; 00155 MonitorElement* meTiming_; 00156 MonitorElement* meTimingMean1D_; 00157 MonitorElement* meTimingRMS1D_; 00158 MonitorElement* meTimingMean_; 00159 MonitorElement* meTimingRMS_; 00160 MonitorElement* meTriggerTowerEt_; 00161 MonitorElement* meTriggerTowerEmulError_; 00162 MonitorElement* meTriggerTowerTiming_; 00163 MonitorElement* meTriggerTowerNonSingleTiming_; 00164 00165 MonitorElement* meGlobalSummary_; 00166 00167 TProfile2D* hot01_[36]; 00168 TProfile2D* hpot01_[36]; 00169 TProfile2D* httt01_[36]; 00170 TProfile2D* htmt01_[36]; 00171 TH1F* norm01_, *synch01_; 00172 00173 }; 00174 00175 #endif