00001 #ifndef AGILE_FPHOJET_HH 00002 #define AGILE_FPHOJET_HH 00003 00004 #include "AGILe/Generator.hh" 00005 #include "HepMC/IO_HEPEVT.h" 00006 00007 namespace AGILe { 00008 00011 class Phojet : public Generator { 00012 public: 00014 Phojet(); 00015 00017 virtual ~Phojet() { } 00018 00020 void setGenSpecificInitialState(PdgCode p1 = PROTON, double e1 = 7000.0, 00021 PdgCode p2 = PROTON, double e2 = 7000.0); 00022 00023 const string getName() const { 00024 return "PHOJET"; 00025 } 00026 00027 00029 void makeEvent(HepMC::GenEvent& evt); 00030 00031 00033 virtual void setSeed(const int value) { 00034 setParam("MRPY(1)", value); 00035 } 00036 00037 00039 using Generator::setParam; 00040 00041 00043 virtual bool setParam(const string& name, const string& value); 00044 00045 string getPDFSet(PdgCode pid); 00046 int getPDFMember(PdgCode pid); 00047 string getPDFScheme(PdgCode pid)const; 00048 00050 virtual const double getCrossSection(); 00051 00052 virtual const string getVersion(); 00053 00055 void finalize(); 00056 00057 protected: 00059 void initialize(); 00060 00062 void fillEvent(HepMC::GenEvent& evt); 00063 00065 string _particleName1, _particleName2; 00066 double _e1, _e2; 00067 double* _p1; 00068 double* _p2; 00069 00071 int _nevt; 00072 00073 double _pz; 00074 00076 HepMC::IO_HEPEVT _hepevt; 00077 }; 00078 00079 } 00080 00081 #endif