00001 #ifndef AGILE_FARIADNE_HH 00002 #define AGILE_FARIADNE_HH 00003 00004 #include "AGILe/Generator.hh" 00005 #include "HepMC/IO_HEPEVT.h" 00006 00007 namespace AGILe { 00008 00012 class Ariadne : public Generator { 00013 public: 00015 Ariadne(); 00016 00018 virtual ~Ariadne() { } 00019 00021 void setGenSpecificInitialState(PdgCode p1 = PROTON, double e1 = 7000.0, 00022 PdgCode p2 = PROTON, double e2 = 7000.0); 00023 00024 const string getName() const { 00025 return "ARIADNE"; 00026 } 00027 00028 00030 void makeEvent(HepMC::GenEvent& evt); 00031 00032 00034 virtual void setSeed(const int value) { 00035 setParam("MRPY(1)", value); 00036 } 00037 00038 00040 using Generator::setParam; 00041 00042 00044 virtual bool setParam(const string& name, const string& value); 00045 00046 string getPDFSet(PdgCode pid); 00047 int getPDFMember(PdgCode pid); 00048 string getPDFScheme(PdgCode pid)const; 00049 00051 virtual const double getCrossSection(); 00052 00053 virtual const string getVersion(); 00054 00056 void finalize(); 00057 00058 protected: 00060 void initialize(); 00061 00063 void fillEvent(HepMC::GenEvent& evt); 00064 00066 string _particleName1, _particleName2; 00067 double _e1, _e2; 00068 00070 int _nevt; 00071 00073 HepMC::IO_HEPEVT _hepevt; 00074 }; 00075 00076 } 00077 00078 #endif