#ifndef PYTHIA_TPythia6
#define PYTHIA_TPythia6
#ifndef ROOT_TPythia6Calls
#include "TPythia6Calls.h"
#endif
#ifndef ROOT_TGenerator
#include "TGenerator.h"
#endif
#ifndef ROOT_TObjArray
#include "TObjArray.h"
#endif
class TPythia6 : public TGenerator {
protected:
static TPythia6* fgInstance;
Pyjets_t* fPyjets;
Pydat1_t* fPydat1;
Pydat2_t* fPydat2;
Pydat3_t* fPydat3;
Pydat4_t* fPydat4;
Pydatr_t* fPydatr;
Pysubs_t* fPysubs;
Pypars_t* fPypars;
Pyint1_t* fPyint1;
Pyint2_t* fPyint2;
Pyint3_t* fPyint3;
Pyint4_t* fPyint4;
Pyint5_t* fPyint5;
Pyint6_t* fPyint6;
Pyint7_t* fPyint7;
Pyint8_t* fPyint8;
Pyint9_t* fPyint9;
Pymssm_t* fPymssm;
Pyssmt_t* fPyssmt;
Pyints_t* fPyints;
Pybins_t* fPybins;
class TPythia6Cleaner {
public:
TPythia6Cleaner();
~TPythia6Cleaner();
};
friend class TPythia6Cleaner;
TPythia6(const TPythia6&);
TPythia6& operator=(const TPythia6&);
public:
TPythia6();
virtual ~TPythia6();
static TPythia6 *Instance();
Pyjets_t* GetPyjets () { return fPyjets; }
int GetN () { return fPyjets->N; }
int GetNPAD () { return fPyjets->NPAD; }
int GetK(int ip, int i) { return fPyjets->K[i-1][ip-1]; }
double GetP(int ip, int i) { return fPyjets->P[i-1][ip-1]; }
double GetV(int ip, int i) { return fPyjets->V[i-1][ip-1]; }
void SetN (int n) { fPyjets->N = n; }
void SetNPAD (int n) { fPyjets->NPAD = n; }
void SetK(int ip, int i, int k) { fPyjets->K[i-1][ip-1] = k; }
void SetP(int ip, int i, double p) { fPyjets->P[i-1][ip-1] = p; }
void SetV(int ip, int i, double v) { fPyjets->V[i-1][ip-1] = v; }
Pydat1_t* GetPydat1 () { return fPydat1; }
int GetMSTU(int i) { return fPydat1->MSTU[i-1]; }
double GetPARU(int i) { return fPydat1->PARU[i-1]; }
int GetMSTJ(int i) { return fPydat1->MSTJ[i-1]; }
double GetPARJ(int i) { return fPydat1->PARJ[i-1]; }
void SetMSTU(int i, int m ) { fPydat1->MSTU[i-1] = m; }
void SetPARU(int i, double p) { fPydat1->PARU[i-1] = p; }
void SetMSTJ(int i, int m ) { fPydat1->MSTJ[i-1] = m; }
void SetPARJ(int i, double p) { fPydat1->PARJ[i-1] = p; }
Pydat2_t* GetPydat2 () { return fPydat2; }
int GetKCHG(int ip, int i) { return fPydat2->KCHG[i-1][ip-1]; }
double GetPMAS(int ip, int i) { return fPydat2->PMAS[i-1][ip-1]; }
double GetPARF (int i) { return fPydat2->PARF[i-1]; }
double GetVCKM(int i, int j) { return fPydat2->VCKM[j-1][i-1]; }
void SetKCHG(int ip, int i, int k ) { fPydat2->KCHG[i-1][ip-1] = k; }
void SetPMAS(int ip, int i, double m) { fPydat2->PMAS[i-1][ip-1] = m; }
void SetPARF (int i, double p) { fPydat2->PARF[i-1] = p; }
void SetVCKM (int i, int j, double v) { fPydat2->VCKM[j-1][i-1] = v; }
Pydat3_t* GetPydat3() { return fPydat3; }
int GetMDCY(int i, int j) { return fPydat3->MDCY[j-1][i-1]; }
int GetMDME(int i, int j) { return fPydat3->MDME[j-1][i-1]; }
double GetBRAT (int i) { return fPydat3->BRAT[i-1]; }
int GetKFDP(int i, int j) { return fPydat3->KFDP[j-1][i-1]; }
void SetMDCY(int i, int j, int m) { fPydat3->MDCY[j-1][i-1] = m; }
void SetMDME(int i, int j, int m) { fPydat3->MDME[j-1][i-1] = m; }
void SetBRAT(int i, double b) { fPydat3->BRAT[i-1] = b; }
void SetKFDP(int i, int j, int k) { fPydat3->KFDP[j-1][i-1] = k; }
Pydat4_t* GetPydat4() { return fPydat4; }
Pydatr_t* GetPydatr () { return fPydatr; }
int GetMRPY(int i) { return fPydatr->MRPY[i-1]; }
double GetRRPY(int i) { return fPydatr->RRPY[i-1]; }
void SetMRPY(int i, int m) { fPydatr->MRPY[i-1] = m; }
void SetRRPY(int i, double r) { fPydatr->RRPY[i-1] = r; }
Pysubs_t* GetPysubs () { return fPysubs; }
int GetMSEL () { return fPysubs->MSEL; }
int GetMSELPD () { return fPysubs->MSELPD; }
int GetMSUB (int i) { return fPysubs->MSUB[i-1]; }
double GetCKIN (int i) { return fPysubs->CKIN[i-1]; }
Int_t GetKFIN(int i, int j) {return fPysubs->KFIN[j+40][i-1]; }
void SetMSEL (int m) { fPysubs->MSEL = m; }
void SetMSELPD (int m) { fPysubs->MSELPD = m; }
void SetMSUB (int i, int m) { fPysubs->MSUB[i-1] = m; }
void SetCKIN (int i, double c) { fPysubs->CKIN[i-1] = c; }
void SetKFIN(int i, int j, Int_t kfin=1) { fPysubs->KFIN[j+40][i-1] = kfin; }
Pypars_t* GetPypars() { return fPypars; }
int GetMSTP(int i) { return fPypars->MSTP[i-1]; }
double GetPARP(int i) { return fPypars->PARP[i-1]; }
int GetMSTI(int i) { return fPypars->MSTI[i-1]; }
double GetPARI(int i) { return fPypars->PARI[i-1]; }
void SetMSTP (int i, int m) { fPypars->MSTP[i-1] = m; }
void SetPARP (int i, double p) { fPypars->PARP[i-1] = p; }
void SetMSTI (int i, int m) { fPypars->MSTI[i-1] = m; }
void SetPARI (int i, double p) { fPypars->PARI[i-1] = p; }
Pyint1_t* GetPyint1() { return fPyint1; }
int GetMINT(int i) { return fPyint1->MINT[i-1]; }
double GetVINT(int i) { return fPyint1->VINT[i-1]; }
void SetMINT(int i, int m ) { fPyint1->MINT[i-1] = m; }
void SetVINT(int i, double v) { fPyint1->VINT[i-1] = v; }
Pyint2_t* GetPyint2() { return fPyint2; }
Pyint3_t* GetPyint3() { return fPyint3; }
Pyint4_t* GetPyint4() { return fPyint4; }
int GetMWID (int i) { return fPyint4->MWID[i-1]; }
double GetWIDS(int i,int j) { return fPyint4->WIDS[j-1][i-1]; }
void SetMWID(int i, int m) { fPyint4->MWID[i-1] = m; }
void SetWIDS(int i, int j, double w) { fPyint4->WIDS[j-1][i-1] = w; }
Pyint5_t* GetPyint5() { return fPyint5; }
int GetNGENPD() { return fPyint5->NGENPD; }
void SetNGENPD(int n) { fPyint5->NGENPD = n; }
Pyint6_t* GetPyint6 () { return fPyint6; }
char* GetPROC(int i) { fPyint6->PROC[i][27]=0; return fPyint6->PROC[i]; }
Pyint7_t* GetPyint7() { return fPyint7; }
Pyint8_t* GetPyint8() { return fPyint8; }
Pyint9_t* GetPyint9() { return fPyint9; }
Pymssm_t* GetPymssm() { return fPymssm; }
int GetIMSS(int i) { return fPymssm->IMSS[i]; }
double GetRMSS(int i) { return fPymssm->RMSS[i]; }
void SetIMSS(int i, int m) { fPymssm->IMSS[i] = m; }
void SetRMSS(int i, double r) { fPymssm->RMSS[i] = r; }
Pyssmt_t* GetPyssmt() { return fPyssmt; }
double GetZMIX(int i, int j) { return fPyssmt->ZMIX[j-1][i-1]; }
double GetUMIX(int i, int j) { return fPyssmt->UMIX[j-1][i-1]; }
double GetVMIX(int i, int j) { return fPyssmt->VMIX[j-1][i-1]; }
double GetSMZ (int i) { return fPyssmt->SMZ[i-1]; }
double GetSMW (int i) { return fPyssmt->SMW[i-1]; }
void SetZMIX(int i, int j, double z) { fPyssmt->ZMIX[j-1][i-1] = z; }
void SetUMIX(int i, int j, double u) { fPyssmt->UMIX[j-1][i-1] = u; }
void SetSMZ (int i, double s) { fPyssmt->SMZ[i-1] = s; }
void SetSMW (int i, double s) { fPyssmt->SMW[i-1] = s; }
Pyints_t* GetPyints() { return fPyints; }
Pybins_t* GetPybins() { return fPybins; }
void GenerateEvent();
void Initialize(const char *frame, const char *beam, const char *target, float win);
Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
TObjArray *ImportParticles(Option_t *option="");
void OpenFortranFile(int lun, char* name);
void CloseFortranFile(int lun);
int Pychge(int kf);
int Pycomp(int kf);
void Pydiff();
void Pyedit(int medit);
void Pyevnt();
void Py1ent(Int_t line, Int_t kf, Double_t pe, Double_t theta, Double_t phi);
void Pyexec();
void Pyhepc(int mconv);
void Pygive(const char *param);
void Pyinit(char* frame, char* beam, char* target, double wint);
void Pylist(int flag);
double Pymass(int kf);
void Pyname(int kf, char* name);
double Pyr(int idummy);
void Pyrget(int lun, int move);
void Pyrset(int lun, int move);
void Pystat(int flag);
void Pytest(int flag);
void Pytune(int itune);
void Pyupda(int mupda, int lun);
void SetupTest();
ClassDef(TPythia6,0)
};
#endif