// 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_(); }