]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - THerwig/HCommon.h
Interface to HERWIG
[u/mrichter/AliRoot.git] / THerwig / HCommon.h
diff --git a/THerwig/HCommon.h b/THerwig/HCommon.h
new file mode 100644 (file)
index 0000000..c594395
--- /dev/null
@@ -0,0 +1,469 @@
+// Translation of Fortran commons from the Herwig6
+// f77 program into c++ structures to be used in ROOT
+// and declaration of Fortran functions as extern
+// C functions to be called from the class Herwig6
+// author: j. g. contreras jgcn@moni.mda.cinvestav.mx
+// date: december 22, 2000
+
+int const NMXHEP = 2000;
+
+struct Hepevt_t {
+  int NEVHEP;
+  int NHEP;
+  int ISTHEP[NMXHEP];
+  int IDHEP[NMXHEP];
+  int JMOHEP[NMXHEP][2];
+  int JDAHEP[NMXHEP][2];
+  double PHEP[NMXHEP][5];
+  double VHEP[NMXHEP][4];
+};
+
+struct Hwbeam_t {
+  int IPART1;
+  int IPART2;
+};
+
+struct Hwbmch_t {
+  char PART1[8];
+  char PART2[8];
+};
+
+struct Hwproc_t {
+  double EBEAM1;
+  double EBEAM2;
+  double PBEAM1;
+  double PBEAM2;
+  int    IPROC;
+  int    MAXEV;
+};
+
+struct Hwpram_t {
+  double AFCH[2][16];
+  double ALPHEM;
+  double B1LIM;
+  double BETAF;
+  double BTCLM;
+  double CAFAC;
+  double CFFAC;
+  double CLMAX;
+  double CLPOW;
+  double CLSMR[2];
+  double CSPEED;
+  double ENSOF;
+  double ETAMIX;
+  double F0MIX;
+  double F1MIX;
+  double F2MIX;
+  double GAMH;
+  double GAMW;
+  double GAMZ;
+  double GAMZP;
+  double GEV2NB;
+  double H1MIX;
+  double PDIQK;
+  double PGSMX;
+  double PGSPL[4];
+  double PHIMIX;
+  double PIFAC;
+  double PRSOF;
+  double PSPLT[2];
+  double PTRMS;
+  double PXRMS;
+  double QCDL3;
+  double QCDL5;
+  double QCDLAM;
+  double QDIQK;
+  double QFCH[16];
+  double QG;
+  double QSPAC;
+  double QV;
+  double SCABI;
+  double SWEIN;
+  double TMTOP;
+  double VFCH[2][16];
+  double VCKM[3][3];
+  double VGCUT;
+  double VQCUT;   
+  double VPCUT;
+  double ZBINM;
+  double EFFMIN;
+  double OMHMIX;
+  double ET2MIX;
+  double PH3MIX;
+  double GCUTME;
+  int    IOPREM;
+  int    IPRINT;
+  int    ISPAC;
+  int    LRSUD;
+  int    LWSUD;
+  int    MODPDF[2];
+  int    NBTRY;
+  int    NCOLO;
+  int    NCTRY;
+  int    NDTRY;
+  int    NETRY;
+  int    NFLAV;
+  int    NGSPL;
+  int    NSTRU;
+  int    NSTRY;
+  int    NZBIN;
+  int    IOP4JT[2];
+  int    NPRFMT;
+  int AZSOFT;
+  int AZSPIN;
+  int CLDIR[2];
+  int HARDME;
+  int NOSPAC;
+  int PRNDEC;
+  int PRVTX;
+  int SOFTME;
+  int ZPRIME;
+  int PRNDEF;
+  int PRNTEX;
+  int PRNWEB;
+};
+
+struct Hwprch_t {
+  char AUTPDF[2][20];
+  char BDECAY[4];
+};
+
+int const NMXPAR = 500;
+
+struct Hwpart_t {
+  int  NEVPAR;
+  int  NPAR;
+  int  ISTPAR[NMXPAR];
+  int  IDPAR[NMXPAR];
+  int  JMOPAR[NMXPAR][2];
+  int  JDAPAR[NMXPAR][2];
+  double  PPAR[NMXPAR][5];
+  double  VPAR[NMXPAR][4];
+};
+
+struct Hwparp_t {
+  double DECPAR[NMXPAR][2];
+  double PHIPAR[NMXPAR][2];
+  double RHOPAR[NMXPAR][2];
+  int TMPAR[NMXPAR];
+};
+
+int const MODMAX = 5;
+
+struct Hwbosc_t {
+  double  ALPFAC;
+  double  BRHIG[12];
+  double  ENHANC[12];
+  double  GAMMAX;
+  double  RHOHEP[NMXHEP][3];
+  int     IOPHIG;
+  int     MODBOS[MODMAX];
+};
+
+struct Hwparc_t {
+  int     JCOPAR[NMXPAR][4];
+};
+
+struct Hwbrch_t {
+  double ANOMSC[2][2];
+  double HARDST;
+  double PTINT[2][3];
+  double XFACT;
+  int    INHAD;
+  int    JNHAD;
+  int    NSPAC[7];
+  int    ISLENT;
+  int    BREIT;
+  int    FROST;
+  int    USECMF;
+};
+
+struct Hwevnt_t {
+  double AVWGT;
+  double EVWGT;
+  double GAMWT;
+  double TLOUT;
+  double WBIGST;
+  double WGTMAX;
+  double WGTSUM;
+  double WSQSUM;
+  int    IDHW[NMXHEP];
+  int    IERROR;
+  int    ISTAT;
+  int    LWEVT;
+  int    MAXER;
+  int    MAXPR;
+  int    NOWGT;
+  int    NRN[2];
+  int    NUMER;
+  int    NUMERU;
+  int    NWGTS;
+  int    GENSOF;
+};
+
+struct Hwhard_t {
+  double ASFIXD;
+  double CLQ[6][7];
+  double COSS;
+  double COSTH;
+  double CTMAX;
+  double DISF[2][13];
+  double EMLST;
+  double EMMAX;
+  double EMMIN;
+  double EMPOW;
+  double EMSCA;
+  double EPOLN[3];
+  double GCOEF[7];
+  double GPOLN;
+  double OMEGA0;
+  double PHOMAS;
+  double PPOLN[3];
+  double PTMAX;
+  double PTMIN;
+  double PTPOW;
+  double Q2MAX;
+  double Q2MIN;
+  double Q2POW;
+  double Q2WWMN;
+  double Q2WWMX;
+  double QLIM;
+  double SINS;
+  double THMAX;
+  double Y4JT;
+  double TMNISR;
+  double TQWT;
+  double XX[2];
+  double XLMIN;
+  double XXMIN;
+  double YBMAX;
+  double YBMIN;
+  double YJMAX;
+  double YJMIN;
+  double YWWMAX;
+  double YWWMIN;
+  double WHMIN;
+  double ZJMAX;
+  double ZMXISR;
+  int    IAPHIG;
+  int    IBRN[2];
+  int    IBSH;
+  int    ICO[10];
+  int    IDCMF;
+  int    IDN[10];
+  int    IFLMAX;
+  int    IFLMIN;
+  int    IHPRO;
+  int    IPRO;
+  int    MAPQ[10];
+  int    MAXFL;
+  int    BGSHAT;
+  int    COLISR;
+  int    FSTEVT;
+  int    FSTWGT;
+  int    GENEV;
+  int    HVFCEN;
+  int    TPOL;
+  int     DURHAM;
+};
+
+int const NMXRES = 500;
+
+struct Hwprop_t {
+  double RLTIM[NMXRES+1];
+  double RMASS[NMXRES+1];
+  double RSPIN[NMXRES+1];
+  int    ICHRG[NMXRES+1];
+  int    IDPDG[NMXRES+1];
+  int    IFLAV[NMXRES+1];
+  int    NRES;
+  int    VTOCDK[NMXRES+1];
+  int    VTORDK[NMXRES+1];
+  int    QORQQB[NMXRES+1];
+  int    QBORQQ[NMXRES+1];
+};
+
+struct Hwunam_t {
+  char RNAME[NMXRES+1][8];
+  char TXNAME[NMXRES+1][2][37];
+};
+
+int const NMXDKS = 4000;
+int const NMXMOD = 200;
+
+struct Hwupdt_t {
+  double BRFRAC[NMXDKS];
+  double CMMOM[NMXDKS];
+  double DKLTM[NMXRES];
+  int    IDK[NMXDKS];
+  int    IDKPRD[NMXDKS][5];
+  int    LNEXT[NMXDKS];
+  int    LSTRT[NMXRES];
+  int    NDKYS;
+  int    NME[NMXDKS];
+  int    NMODES[NMXRES];
+  int    NPRODS[NMXDKS];
+  int    DKPSET;
+  int    RSTAB[NMXRES+1];
+};
+
+struct Hwuwts_t {
+  double REPWT[5][4][4];
+  double SNGWT;
+  double DECWT;
+  double QWT[3];
+  double PWT[12];
+  double SWTEF[NMXRES];
+};
+
+int const NMXCDK = 4000;
+
+struct Hwuclu_t {
+  double CLDKWT[NMXCDK];
+  double CTHRPW[12][12];
+  double PRECO;
+  double RESN[12][12];
+  double RMIN[12][12];
+  int    LOCN[12][12];
+  int    NCLDK[NMXCDK];
+  int    NRECO;
+  int    CLRECO;
+};
+
+struct Hwdist_t {
+  double EXAG;
+  double GEV2MM;
+  double HBAR;
+  double PLTCUT;
+  double VMIN2;
+  double VTXPIP[4];
+  double XMIX[2];
+  double XMRCT[2];
+  double YMIX[2];
+  double YMRCT[2];
+  int    IOPDKL;
+  int    MAXDKL;
+  int    MIXING;
+  int    PIPSMR;
+};
+
+int const NMXQDK=20;
+
+struct Hwqdks_t {
+  double VTXQDK[NMXQDK][4];
+  int    IMQDK[NMXQDK];
+  int    LOCQ[NMXQDK];
+  int    NQDK;
+};
+
+int const NMXSUD = 1024;
+
+struct Hwusud_t {
+  double ACCUR;
+  double QEV[6][NMXSUD];
+  double SUD[6][NMXSUD];
+  int    INTER;
+  int    NQEV;
+  int    NSUD;
+  int    SUDORD;
+};
+
+struct Hwsusy_t {
+  double TANB;
+  double ALPHAH;
+  double COSBPA;
+  double SINBPA;
+  double COSBMA;
+  double SINBMA;
+  double COSA;
+  double SINA;
+  double COSB;
+  double SINB;
+  double COTB;
+  double ZMIXSS[4][4];
+  double ZMXNSS[4][4];
+  double ZSGNSS[4]; 
+  double LFCH[16];
+  double RFCH[16];
+  double SLFCH[4][16];
+  double SRFCH[4][16]; 
+  double WMXUSS[2][2];
+  double WMXVSS[2][2]; 
+  double WSGNSS[2];
+  double QMIXSS[2][2][6];
+  double LMIXSS[2][2][6];
+  double THETAT;
+  double THETAB;
+  double THETAL;
+  double ATSS;
+  double ABSS;
+  double ALSS;
+  double MUSS;
+  double FACTSS;
+  double GHWWSS[3];
+  double GHZZSS[3];
+  double GHDDSS[4];
+  double GHUUSS[4];
+  double GHWHSS[3];
+  double GHSQSS[2][2][6][4];
+  double XLMNSS;
+  double RMMNSS;
+  double IMSSM;
+  double SENHNC[24];
+  double SSPARITY;
+  int    SUSYIN;
+};
+
+struct Hwrpar_t {
+  double LAMDA1[3][3][3];
+  double LAMDA2[3][3][3];
+  double LAMDA3[3][3][3];
+  int    HRDCOL[5][2];
+  int    RPARTY;
+  int    COLUPD;
+};
+
+struct Hwminb_t {
+  double PMBN1;
+  double PMBN2;
+  double PMBN3;
+  double PMBK1;
+  double PMBK2;
+  double PMBM1;
+  double PMBM2;
+  double PMBP1;
+  double PMBP2;
+  double PMBP3;
+};
+
+int const NMXCL = 500;
+
+struct Hwclus_t {
+  double PPCL[NMXCL][5];
+  int    IDCL[NMXCL];
+  int    NCL;
+};
+
+
+extern "C" {
+  void  hwigin_();
+  void  hwuinc_();
+  void  hwusta_(char * name, int);
+  void  hweini_();
+  void  hwuine_();
+  void  hwepro_();
+  void  hwbgen_();
+  void  hwdhob_();
+  void  hwcfor_();
+  void  hwcdec_();
+  void  hwdhad_();
+  void  hwdhvy_();
+  void  hwmevt_();
+  void  hwufne_();
+  void  hwefin_();
+}
+
+
+
+
+