00001 #ifndef EESummaryClient_H 00002 #define EESummaryClient_H 00003 00004 /* 00005 * \file EESummaryClient.h 00006 * 00007 * $Date: 2008/12/04 13:54:56 $ 00008 * $Revision: 1.31 $ 00009 * \author G. Della Ricca 00010 * 00011 */ 00012 00013 #include <vector> 00014 #include <string> 00015 #include <fstream> 00016 00017 #include "TROOT.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 class EcalCondDBInterface; 00026 class RunIOV; 00027 class MonRunIOV; 00028 00029 class EESummaryClient : public EEClient { 00030 00031 public: 00032 00034 EESummaryClient(const edm::ParameterSet& ps); 00035 00037 virtual ~EESummaryClient(); 00038 00040 void analyze(void); 00041 00043 void beginJob(DQMStore* dqmStore); 00044 00046 void endJob(void); 00047 00049 void beginRun(void); 00050 00052 void endRun(void); 00053 00055 void setup(void); 00056 00058 void cleanup(void); 00059 00061 void softReset(bool flag); 00062 00064 void htmlOutput(int run, std::string& htmlDir, std::string& htmlName); 00065 00067 bool writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status, bool flag); 00068 00070 inline int getEvtPerJob() { return ievt_; } 00071 inline int getEvtPerRun() { return jevt_; } 00072 00074 inline void setFriends(std::vector<EEClient*> clients) { clients_ = clients; } 00075 00076 private: 00077 00078 void writeMap( std::ofstream& hf, const char* mapname ); 00079 00080 int ievt_; 00081 int jevt_; 00082 00083 bool cloneME_; 00084 00085 bool verbose_; 00086 bool debug_; 00087 00088 std::string prefixME_; 00089 00090 bool enableCleanup_; 00091 00092 std::vector<int> superModules_; 00093 00094 std::vector<EEClient*> clients_; 00095 00096 DQMStore* dqmStore_; 00097 00098 MonitorElement* meIntegrity_[2]; 00099 MonitorElement* meIntegrityErr_; 00100 MonitorElement* meStatusFlags_[2]; 00101 MonitorElement* meStatusFlagsErr_; 00102 MonitorElement* meOccupancy_[2]; 00103 MonitorElement* meOccupancy1D_; 00104 MonitorElement* mePedestalOnline_[2]; 00105 MonitorElement* mePedestalOnlineErr_; 00106 MonitorElement* meLaserL1_[2]; 00107 MonitorElement* meLaserL1Err_; 00108 MonitorElement* meLaserL1PN_[2]; 00109 MonitorElement* meLaserL1PNErr_; 00110 MonitorElement* meLedL1_[2]; 00111 MonitorElement* meLedL1Err_; 00112 MonitorElement* meLedL1PN_[2]; 00113 MonitorElement* meLedL1PNErr_; 00114 MonitorElement* mePedestal_[2]; 00115 MonitorElement* mePedestalErr_; 00116 MonitorElement* mePedestalPN_[2]; 00117 MonitorElement* mePedestalPNErr_; 00118 MonitorElement* meTestPulse_[2]; 00119 MonitorElement* meTestPulseErr_; 00120 MonitorElement* meTestPulsePN_[2]; 00121 MonitorElement* meTestPulsePNErr_; 00122 00123 MonitorElement* meCosmic_[2]; 00124 MonitorElement* meTiming_[2]; 00125 MonitorElement* meTriggerTowerEt_[2]; 00126 MonitorElement* meTriggerTowerEmulError_[2]; 00127 MonitorElement* meTriggerTowerTiming_[2]; 00128 00129 MonitorElement* meGlobalSummary_[2]; 00130 00131 }; 00132 00133 #endif