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