Go to the documentation of this file.00001 #ifndef GeneratorInterface_RivetInterface_DQMRivetClient_H
00002 #define GeneratorInterface_RivetInterface_DQMRivetClient_H
00003
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/EDAnalyzer.h"
00006 #include "DQMServices/ClientConfig/interface/DQMGenericClient.h"
00007 #include <set>
00008 #include <string>
00009 #include <vector>
00010 #include <TH1.h>
00011
00012 class DQMStore;
00013 class MonitorElement;
00014
00015 class DQMRivetClient : public edm::EDAnalyzer
00016 {
00017 public:
00018 DQMRivetClient(const edm::ParameterSet& pset);
00019 ~DQMRivetClient() {};
00020
00021 void analyze(const edm::Event& event, const edm::EventSetup& eventSetup) {};
00022
00023 void endJob();
00024
00026 void endRun(const edm::Run& r, const edm::EventSetup& c);
00027
00028 struct LumiOption
00029 {
00030 std::string name, normHistName;
00031 double xsection;
00032 };
00033
00034 struct ScaleFactorOption
00035 {
00036 std::string name;
00037 double scale;
00038 };
00039
00040 void normalizeToIntegral(const std::string& startDir, const std::string& histName, const std::string& normHistName);
00041 void normalizeToLumi(const std::string& startDir, const std::string& histName, const std::string& normHistName, double xsection);
00042 void scaleByFactor(const std::string& startDir, const std::string& histName, double factor);
00043
00044 private:
00045 unsigned int verbose_;
00046
00047 DQMStore* theDQM;
00048 std::vector<std::string> subDirs_;
00049 std::string outputFileName_;
00050
00051 std::vector<DQMGenericClient::NormOption> normOptions_;
00052 std::vector<LumiOption> lumiOptions_;
00053 std::vector<ScaleFactorOption> scaleOptions_;
00054
00055
00056 };
00057
00058 #endif