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