00001 // -*- C++ -*- 00002 #ifndef AGILE_FHERWIG_HH 00003 #define AGILE_FHERWIG_HH 00004 00005 #include "AGILe/Generator.hh" 00006 00007 namespace AGILe { 00008 00011 class FHerwig : public Generator { 00012 public: 00014 FHerwig(); 00015 00017 virtual ~FHerwig() {} 00018 00020 virtual void setGenSpecificInitialState(PdgCode p1 = PROTON, double e1 = 7000.0, 00021 PdgCode p2 = PROTON, double e2 = 7000.0); 00022 00024 virtual void makeEvent(HepMC::GenEvent& evt); 00025 00027 virtual void setSeed(const int value); 00028 00030 using Generator::setParam; 00031 00033 virtual bool setParam(const string& name, const string& value); 00034 00036 virtual void finalize(); 00037 00038 string getPDFSet(PdgCode pid); 00039 int getPDFMember(PdgCode pid); 00040 string getPDFScheme(PdgCode pid)const; 00041 00042 const virtual double getCrossSection(); 00043 00044 00045 protected: 00046 00048 virtual void initialize(); 00049 00051 virtual void fillEvent(HepMC::GenEvent& evt); 00052 00054 bool _doHadronise; 00055 00057 bool _unitWeight; 00058 00060 bool _iprocset; 00061 00062 00063 private: 00064 00068 int _beamNumber(PdgCode pid); 00069 00075 bool _processParams(); 00076 00078 map<string,string> _storedParams; 00079 00081 int _nevt; 00082 00083 }; 00084 00085 } 00086 00087 #endif