00001 #include <memory> 00002 00003 #include "FWCore/Framework/interface/Frameworkfwd.h" 00004 #include "FWCore/Framework/interface/EDAnalyzer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/Framework/interface/Run.h" 00007 #include "FWCore/Framework/interface/MakerMacros.h" 00008 #include "FWCore/ServiceRegistry/interface/Service.h" 00009 00010 #include "CondFormats/SiPixelObjects/interface/SiPixelPerformanceSummary.h" 00011 00012 #include "DQMServices/Core/interface/DQMStore.h" 00013 #include "DQMServices/Core/interface/MonitorElement.h" 00014 00015 #include "DQM/SiPixelHistoricInfoClient/interface/SiPixelHistoricInfoWebInterface.h" 00016 00017 00018 namespace edm { 00019 class ParameterSet; 00020 class Event; 00021 class EventId; 00022 class Timestamp; 00023 } 00024 00025 class SiPixelHistoricInfoEDAClient : public edm::EDAnalyzer { 00026 public: 00027 explicit SiPixelHistoricInfoEDAClient(const edm::ParameterSet&); 00028 ~SiPixelHistoricInfoEDAClient(); 00029 00030 private: 00031 virtual void beginJob(const edm::EventSetup&); 00032 virtual void beginRun(const edm::Run&, const edm::EventSetup&); 00033 virtual void endRun(const edm::Run&, const edm::EventSetup&); 00034 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00035 virtual void endJob(); 00036 00037 void retrievePointersToModuleMEs(const edm::EventSetup&); 00038 void fillSummaryObjects(const edm::Run&) const; 00039 00040 float calculatePercentOver(MonitorElement*) const; 00041 void writetoDB(edm::EventID, edm::Timestamp) const; 00042 void writetoDB(const edm::Run&) const; 00043 void savetoFile(std::string) const; 00044 // void printMEs() const; 00045 00046 private: 00047 bool firstEventInRun; 00048 int nEvents; 00049 edm::ParameterSet parameterSet_; 00050 DQMStore* dbe_; 00051 std::map< uint32_t, std::vector<MonitorElement*> > ClientPointersToModuleMEs; 00052 SiPixelPerformanceSummary* performanceSummary_; 00053 00054 // SiPixelHistoricInfoWebInterface* webInterface_; 00055 // bool defaultWebPageCreated_; 00056 }; 00057