Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:42:03

0001 
0002 #ifndef MonitorElementsDb_H
0003 #define MonitorElementsDb_H
0004 
0005 /*!
0006   \file MonitorElementsDb.h
0007   \brief Generate a Monitor Element from DB data
0008   \author B. Gobbo
0009 */
0010 
0011 #include <string>
0012 #include <vector>
0013 
0014 #include "FWCore/Framework/interface/Event.h"
0015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0016 
0017 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0018 
0019 #include "MonitorXMLParser.h"
0020 
0021 #include "RelationalAccess/ISessionProxy.h"
0022 #include "DQMServices/Core/interface/DQMStore.h"
0023 
0024 class MonitorElementsDb {
0025   friend class EcalBarrelMonitorDbModule;
0026 
0027 public:
0028   typedef dqm::legacy::MonitorElement MonitorElement;
0029   typedef dqm::legacy::DQMStore DQMStore;
0030 
0031   /// Constructors
0032   MonitorElementsDb(const edm::ParameterSet &ps, std::string &xmlFile);
0033 
0034   /// Destructor
0035   virtual ~MonitorElementsDb();
0036 
0037 protected:
0038   /// Analyze
0039   void analyze(const edm::Event &e, const edm::EventSetup &c, coral::ISessionProxy *s);
0040 
0041   // BeginJob
0042   void beginJob(void);
0043 
0044   // EndJob
0045   void endJob(void);
0046 
0047   // HtmlOutput
0048   void htmlOutput(std::string &htmlDir);
0049 
0050   void startSession(void);
0051 
0052 private:
0053   std::string prefixME_;
0054   std::string xmlFile_;
0055   MonitorXMLParser *parser_;
0056   std::vector<DB_ME> MEinfo_;
0057   std::vector<MonitorElement *> MEs_;
0058   int ievt_;
0059   DQMStore *dqmStore_;
0060 };
0061 
0062 #endif  // MonitorElementsDb_H