00001 #ifndef EcalBarrelMonitorClient_H 00002 #define EcalBarrelMonitorClient_H 00003 00004 /* 00005 * \file EcalBarrelMonitorClient.h 00006 * 00007 * $Date: 2008/11/10 10:13:56 $ 00008 * $Revision: 1.113 $ 00009 * \author G. Della Ricca 00010 * \author F. Cossutti 00011 * 00012 */ 00013 00014 #include <string> 00015 #include <vector> 00016 #include <map> 00017 00018 #include "FWCore/Framework/interface/Event.h" 00019 #include "FWCore/Framework/interface/EventSetup.h" 00020 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00021 #include "FWCore/Framework/interface/EDAnalyzer.h" 00022 00023 #include <DQM/EcalBarrelMonitorClient/interface/EBClient.h> 00024 00025 #include <DQM/EcalBarrelMonitorClient/interface/EBSummaryClient.h> 00026 00027 #include "EventFilter/Utilities/interface/ModuleWeb.h" 00028 00029 #include "xgi/Input.h" 00030 #include "xgi/Output.h" 00031 00032 #include "TROOT.h" 00033 #include "TH1.h" 00034 00035 class DQMOldReceiver; 00036 class DQMStore; 00037 class RunIOV; 00038 class MonRunIOV; 00039 00040 class EcalBarrelMonitorClient: public edm::EDAnalyzer, public evf::ModuleWeb{ 00041 00042 public: 00043 00045 EcalBarrelMonitorClient(const edm::ParameterSet & ps); 00046 00048 ~EcalBarrelMonitorClient(); 00049 00051 void analyze(void); 00052 void analyze(const edm::Event & e, const edm::EventSetup & c); 00053 00055 void beginJob(const edm::EventSetup & c); 00056 00058 void endJob(void); 00059 00061 void beginRun(void); 00062 void beginRun(const edm::Run & r, const edm::EventSetup & c); 00063 00065 void endRun(void); 00066 void endRun(const edm::Run & r, const edm::EventSetup & c); 00067 00069 void beginLuminosityBlock(const edm::LuminosityBlock & l, const edm::EventSetup & c); 00070 00072 void endLuminosityBlock(const edm::LuminosityBlock & l, const edm::EventSetup & c); 00073 00075 void reset(void); 00076 00078 void setup(void); 00079 00081 void cleanup(void); 00082 00084 void softReset(bool flag); 00085 00087 void htmlOutput(bool current=false); 00088 00090 void defaultWebPage(xgi::Input *in, xgi::Output *out); 00091 void publish(xdata::InfoSpace *){}; 00092 00094 void beginRunDb(void); 00095 00097 void writeDb(bool flag); 00098 00100 void endRunDb(void); 00101 00102 inline const char* getRunType( void ) { return( runType_ == -1 ? "UNKNOWN" : runTypes_[runType_].c_str() ); } 00103 00104 private: 00105 00106 int ievt_; 00107 int jevt_; 00108 00109 bool cloneME_; 00110 00111 bool verbose_; 00112 bool debug_; 00113 00114 int prescaleFactor_; 00115 00116 bool enableMonitorDaemon_; 00117 00118 bool enableCleanup_; 00119 00120 std::string clientName_; 00121 00122 std::string hostName_; 00123 int hostPort_; 00124 00125 std::string inputFile_; 00126 00127 std::string dbName_; 00128 std::string dbHostName_; 00129 int dbHostPort_; 00130 std::string dbUserName_; 00131 std::string dbPassword_; 00132 00133 std::string dbTagName_; 00134 00135 std::string maskFile_; 00136 00137 bool mergeRuns_; 00138 00139 RunIOV runiov_; 00140 MonRunIOV moniov_; 00141 00142 int subrun_; 00143 00144 time_t current_time_; 00145 00146 time_t last_time_update_; 00147 time_t last_time_db_; 00148 time_t last_time_html_; 00149 00150 time_t updateTime_; 00151 time_t dbUpdateTime_; 00152 time_t htmlUpdateTime_; 00153 00154 std::string baseHtmlDir_; 00155 00156 std::vector<int> superModules_; 00157 00158 std::vector<std::string> enabledClients_; 00159 00160 std::multimap<EBClient*,int> clientsRuns_; 00161 std::vector<std::string> runTypes_; 00162 std::vector<EBClient*> clients_; 00163 std::vector<std::string> clientsNames_; 00164 std::map<std::string,int> clientsStatus_; 00165 00166 EBSummaryClient* summaryClient_; 00167 00168 DQMOldReceiver* mui_; 00169 DQMStore* dqmStore_; 00170 00171 std::string prefixME_; 00172 00173 bool enableUpdate_; 00174 00175 std::string location_; 00176 00177 int runType_; 00178 int evtType_; 00179 00180 std::string status_; 00181 00182 int run_; 00183 int evt_; 00184 00185 bool begin_run_; 00186 bool end_run_; 00187 00188 bool forced_status_; 00189 00190 bool forced_update_; 00191 00192 int last_run_; 00193 00194 TH1F* h_; 00195 00196 }; 00197 00198 #endif