00001 #ifndef AGILE_CASCADE_HH 00002 #define AGILE_CASCADE_HH 00003 00004 #include "AGILe/Generator.hh" 00005 #include "HepMC/IO_HEPEVT.h" 00006 00007 namespace AGILe { 00008 00009 00013 class Cascade : public Generator { 00014 public: 00016 Cascade(); 00017 00019 virtual ~Cascade() { } 00020 00022 void setGenSpecificInitialState(PdgCode p1 = PROTON, double e1 = 6000.0, 00023 PdgCode p2 = PROTON, double e2 = 7000.0); 00024 00026 using Generator::setParam; 00027 00029 //using FPythia::setParam; 00030 00032 virtual bool setParam(const string& name, const string& value); 00033 00035 virtual const string getName() const{ 00036 return "Cascade"; 00037 } 00038 00040 void makeEvent(HepMC::GenEvent& evt); 00041 00042 00044 //virtual void setSeed(const int value) { 00045 //setParam("ISEED", value); 00046 //} 00047 00048 00049 //string getPDFSet(PdgCode pid); 00050 //int getPDFMember(PdgCode pid); 00051 //string getPDFScheme(PdgCode pid)const; 00052 00054 virtual const double getCrossSection(); 00055 00056 //virtual const string getVersion(); 00057 00059 void finalize(); 00060 00061 protected: 00063 void initialize(); 00064 00066 void fillEvent(HepMC::GenEvent& evt); 00067 00069 string _particleName1, _particleName2; 00070 double _e1, _e2; 00071 00073 int _nevt; 00074 00076 HepMC::IO_HEPEVT _hepevt; 00077 }; 00078 00079 00080 } 00081 00082 #endif