Rivet
1.8.0
|
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