CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/GeneratorInterface/RivetInterface/interface/DQMRivetClient.h

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