00001 #ifndef QualityTester_H 00002 #define QualityTester_H 00003 00004 /* 00005 * \file QualityTester.h 00006 * 00007 * Helping EDAnalyzer running the quality tests for clients when: 00008 * - they receive ME data from the SM 00009 * - they are run together with the producers (standalone mode) 00010 * 00011 * $Date: 2010/01/27 13:11:57 $ 00012 * $Revision: 1.11 $ 00013 * \author M. Zanetti - CERN PH 00014 * 00015 */ 00016 #include "boost/scoped_ptr.hpp" 00017 #include "FWCore/Framework/interface/Frameworkfwd.h" 00018 #include <FWCore/Framework/interface/EDAnalyzer.h> 00019 #include <FWCore/Framework/interface/ESHandle.h> 00020 #include <FWCore/Framework/interface/Event.h> 00021 #include <FWCore/Framework/interface/MakerMacros.h> 00022 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00023 #include <FWCore/Framework/interface/LuminosityBlock.h> 00024 #include "CondFormats/Common/interface/FileBlob.h" 00025 #include "CondFormats/DataRecord/interface/DQMXMLFileRcd.h" 00026 00027 #include <memory> 00028 #include <iostream> 00029 #include <string> 00030 00031 class DQMStore; 00032 class QTestHandle; 00033 00034 00035 class QualityTester: public edm::EDAnalyzer{ 00036 00037 public: 00038 00040 QualityTester(const edm::ParameterSet& ps); 00041 00043 virtual ~QualityTester(); 00044 00045 protected: 00046 00048 void analyze(const edm::Event& e, const edm::EventSetup& c) ; 00049 00051 void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& c); 00052 void beginRun(const edm::Run&, const edm::EventSetup&) ; 00053 void endRun(const edm::Run& r, const edm::EventSetup& c); 00054 void endJob(); 00055 00056 private: 00057 00058 00059 void performTests(void); 00060 00061 int nEvents; 00062 int prescaleFactor; 00063 bool getQualityTestsFromFile; 00064 std::string Label; 00065 bool testInEventloop; 00066 bool qtestOnEndRun; 00067 bool qtestOnEndJob; 00068 bool qtestOnEndLumi; 00069 std::string reportThreshold; 00070 bool verboseQT; 00071 00072 DQMStore * bei; 00073 00074 QTestHandle * qtHandler; 00075 }; 00076 00077 #endif