00001 // -*- C++ -*- 00002 #ifndef AGILE_RUN_HH 00003 #define AGILE_RUN_HH 00004 00005 #include "AGILe/AGILe.hh" 00006 #include "AGILe/Generator.hh" 00007 #include "HepMC/GenEvent.h" 00008 #include "HepMC/IO_GenEvent.h" 00009 00010 namespace AGILe { 00011 00012 00014 class Run { 00015 public: 00016 00021 enum FilterLevel { NOFILT=0, DOCFILT=1, UNSTABLEFILT=2 }; 00022 00024 Run(Generator& gen); 00025 00027 Run(Generator& gen, const std::string& evtfile="-", int precision=16); 00028 00029 // /// Destructor 00030 // ~Run(); 00031 00033 void setFilter(FilterLevel filt=DOCFILT) { 00034 _filter = filt; 00035 } 00036 00038 bool makeEvent(); 00039 00041 const HepMC::GenEvent& event() const { 00042 return _evt; 00043 } 00044 00046 std::string eventSummary() const; 00047 00048 00049 private: 00050 00052 Generator* _gen; 00053 00055 FilterLevel _filter; 00056 00058 HepMC::GenEvent _evt; 00059 00061 shared_ptr<std::ostream> _ostr; 00062 00064 shared_ptr<HepMC::IO_GenEvent> _io; 00065 00066 }; 00067 00068 00069 } 00070 00071 #endif