00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef EVTPYTHIA_HH
00023 #define EVTPYTHIA_HH
00024
00025 #include "EvtGenBase/EvtDecayIncoherent.hh"
00026 #include "EvtGenBase/EvtParticle.hh"
00027 #include <string>
00028 #include <iosfwd>
00029
00030 typedef EvtDecayBase* EvtDecayBasePtr;
00031
00032 class EvtPythia:public EvtDecayIncoherent {
00033
00034 public:
00035
00036 EvtPythia();
00037 virtual ~EvtPythia();
00038
00039 void getName(std::string& name);
00040 EvtDecayBase* clone();
00041 void decay(EvtParticle *p);
00042
00043 std::string commandName();
00044 void command(std::string cmd);
00045
00046 void init();
00047
00048 void initProbMax();
00049
00050
00051
00052
00053 static void pythiaInit(int f);
00054 static void pythiacont(double *,int *, int *,
00055 double *,double *,double *,double *);
00056
00057 private:
00058
00059 void store(EvtDecayBase* jsdecay);
00060 void fixPolarizations(EvtParticle* p);
00061 static void MakePythiaFile(char* fname);
00062 static void WritePythiaParticle(std::ofstream &outdec,EvtId ipar,EvtId iparname,int &first);
00063 static void WritePythiaEntryHeader(std::ofstream &outdec, int lundkc,
00064 EvtId evtnum,std::string name,
00065 int chg, int cchg, int spin2,double mass,
00066 double width, double maxwidth,double ctau,
00067 int stable,double rawbrfrsum);
00068 static bool diquark(int);
00069 static double NominalMass(int);
00070 static int njetsetdecays;
00071 static EvtDecayBasePtr* jetsetdecays;
00072 static int ntable;
00073
00074 static int ncommand;
00075 static int lcommand;
00076 static std::string* commands;
00077
00078 };
00079
00080 #endif
00081
00082
00083
00084