00001 // $Id: MonitorElementsDb.h,v 1.8 2008/04/08 18:32:10 dellaric Exp $ 00002 00003 #ifndef MonitorElementsDb_H 00004 #define MonitorElementsDb_H 00005 00015 #include <string> 00016 #include <vector> 00017 00018 #include "FWCore/Framework/interface/Frameworkfwd.h" 00019 #include <FWCore/Framework/interface/EDAnalyzer.h> 00020 #include <FWCore/Framework/interface/Event.h> 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 00023 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00024 00025 #include <DQM/EcalBarrelMonitorDbModule/interface/MonitorXMLParser.h> 00026 00027 #include "RelationalAccess/ISessionProxy.h" 00028 00029 class MonitorElement; 00030 class DQMStore; 00031 00032 class MonitorElementsDb{ 00033 00034 friend class EcalBarrelMonitorDbModule; 00035 friend class EcalEndcapMonitorDbModule; 00036 00037 public: 00038 00040 MonitorElementsDb(const edm::ParameterSet& ps, std::string& xmlFile ); 00041 00043 virtual ~MonitorElementsDb(); 00044 00045 protected: 00046 00048 void analyze( const edm::Event& e, const edm::EventSetup& c, coral::ISessionProxy* s ); 00049 00050 // BeginJob 00051 void beginJob(const edm::EventSetup& c); 00052 00053 // EndJob 00054 void endJob( void ); 00055 00056 // HtmlOutput 00057 void htmlOutput( std::string& htmlDir ); 00058 00059 void startSession( void ); 00060 00061 private: 00062 00063 std::string prefixME_; 00064 std::string xmlFile_; 00065 MonitorXMLParser* parser_; 00066 std::vector<DB_ME> MEinfo_; 00067 std::vector<MonitorElement*> MEs_; 00068 int ievt_; 00069 DQMStore* dqmStore_; 00070 00071 }; 00072 00073 #endif // MonitorElementsDb_H