Rivet  1.8.0
Run.hh
00001 // -*- C++ -*-
00002 #ifndef RIVET_Run_HH
00003 #define RIVET_Run_HH
00004 
00005 #include "Rivet/AnalysisHandler.fhh"
00006 #include "Rivet/RivetBoost.hh"
00007 
00008 namespace HepMC {
00009   class IO_GenEvent;
00010 }
00011 
00012 
00013 namespace Rivet {
00014 
00015 
00017   class Run {
00018   public:
00019 
00021 
00022 
00023     Run(AnalysisHandler& ah);
00024 
00026     ~Run();
00028 
00029 
00030   public:
00031 
00033 
00034 
00036     Run& setCrossSection(const double xs);
00037 
00039     double crossSection() const;
00040 
00042     Run& setListAnalyses(const bool dolist);
00043 
00045 
00046 
00048 
00049 
00051     bool init(const std::string& evtfile, double weight=1.0);
00052 
00054     bool openFile(const std::string& evtfile, double weight=1.0);
00055 
00057     bool readEvent();
00058 
00060     bool processEvent();
00061 
00063     bool finalize();
00064 
00066 
00067 
00068   private:
00069 
00071     AnalysisHandler& _ah;
00072 
00074 
00075 
00078     double _fileweight;
00079 
00081     double _xs;
00082 
00084 
00085 
00087     bool _listAnalyses;
00088 
00089 
00091 
00092 
00094     shared_ptr<GenEvent> _evt;
00095 
00097     shared_ptr<std::istream> _istr;
00098 
00100     shared_ptr<HepMC::IO_GenEvent> _io;
00101 
00103 
00104   };
00105 
00106 
00107 }
00108 
00109 #endif