00001 #ifndef DQMSourceExample_H 00002 #define DQMSourceExample_H 00003 00013 #include <FWCore/Framework/interface/EDAnalyzer.h> 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 #include "DQMServices/Core/interface/DQMStore.h" 00017 #include "DQMServices/Core/interface/MonitorElement.h" 00018 00019 // 00020 // class declaration 00021 // 00022 00023 class DQMSourceExample : public edm::EDAnalyzer { 00024 public: 00025 DQMSourceExample( const edm::ParameterSet& ); 00026 ~DQMSourceExample(); 00027 00028 protected: 00029 00030 // BeginJob 00031 void beginJob(); 00032 00033 // BeginRun 00034 void beginRun(const edm::Run& r, const edm::EventSetup& c); 00035 00036 // Fake Analyze 00037 void analyze(const edm::Event& e, const edm::EventSetup& c); 00038 00039 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 00040 const edm::EventSetup& context); 00041 00042 // DQM Client Diagnostic 00043 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, 00044 const edm::EventSetup& c); 00045 00046 // EndRun 00047 void endRun(const edm::Run& r, const edm::EventSetup& c); 00048 00049 // Endjob 00050 void endJob(); 00051 00052 private: 00053 00054 void initialize(); 00055 00056 edm::ParameterSet parameters_; 00057 00058 DQMStore* dbe_; 00059 std::string monitorName_; 00060 00061 int counterEvt_; 00062 int counterLS_; 00063 00064 int prescaleEvt_; // every n events 00065 int prescaleLS_; // units of lumi sections 00066 00067 // ---------- member data ---------- 00068 00069 int NBINS; 00070 float XMIN, XMAX; 00071 00072 // monitor elements for testing of Quality Tests 00073 MonitorElement * xTrue; 00074 MonitorElement * xFalse; 00075 MonitorElement * yTrue; 00076 MonitorElement * yFalse; 00077 00078 MonitorElement * wExpTrue; 00079 MonitorElement * wExpFalse; 00080 MonitorElement * meanTrue; 00081 MonitorElement * meanFalse; 00082 00083 MonitorElement * deadTrue; 00084 MonitorElement * deadFalse; 00085 MonitorElement * noisyTrue; 00086 MonitorElement * noisyFalse; 00087 00088 // several ME more 00089 MonitorElement * i1; 00090 MonitorElement * f1; 00091 MonitorElement * s1; 00092 MonitorElement * p1; 00093 MonitorElement * p2; 00094 MonitorElement * h1; 00095 MonitorElement * h1hist; 00096 MonitorElement * h2; 00097 MonitorElement * h3; 00098 MonitorElement * h4; 00099 MonitorElement * summ; 00100 00101 }; 00102 00103 #endif 00104