CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/GeneratorInterface/RivetInterface/interface/RivetHarvesting.h

Go to the documentation of this file.
00001 #ifndef GeneratorInterface_RivetInterface_RivetHarvesting
00002 #define GeneratorInterface_RivetInterface_RivetHarvesting
00003 
00004 #include "FWCore/Framework/interface/EDAnalyzer.h"
00005 #include "FWCore/Utilities/interface/InputTag.h"
00006 
00007 #include "Rivet/AnalysisHandler.hh"
00008 
00009 #include <map>
00010 
00011 namespace edm{
00012   class ParameterSet;
00013   class Event;
00014   class EventSetup;
00015   class InputTag;
00016 }
00017 
00018 class RivetHarvesting : public edm::EDAnalyzer
00019 {
00020   public:
00021   RivetHarvesting(const edm::ParameterSet&);
00022 
00023   virtual ~RivetHarvesting();
00024 
00025   virtual void beginJob();
00026 
00027   virtual void endJob();  
00028 
00029   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00030 
00031   virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00032 
00033   virtual void endRun(const edm::Run&, const edm::EventSetup&);
00034   
00035   private:
00036 
00037   std::vector<Rivet::DPSXYPoint>  getDPSXYValsErrs(std::string filename, std::string path, std::string name );
00038 
00039   Rivet::AnalysisHandler   _analysisHandler;
00040   std::vector<std::string> _fileNames;
00041   std::vector<double>      _sumOfWeights;
00042   std::vector<double>      _crossSections;
00043   std::vector<double>      _lumis;
00044   std::string              _outFileName;
00045   bool                     _isFirstEvent;
00046   edm::InputTag            _hepmcCollection;
00047   std::vector<std::string> _analysisNames;
00048 };
00049 
00050 #endif