00001 #ifndef AGILE_HERWIGWRAPPER65_HH 00002 #define AGILE_HERWIGWRAPPER65_HH 00003 00004 #include <ctype.h> 00005 #include "AGILe/FHerwig/FHerwigWrapper.hh" 00006 00009 00010 00011 extern "C" { 00012 00013 // COMMON/HWPROC/EBEAM1,EBEAM2,PBEAM1,PBEAM2,IPROC,MAXEV 00014 #define FC_HWPROC FC_FUNC(hwproc, HWPROC) 00015 extern struct { 00016 double EBEAM1,EBEAM2,PBEAM1,PBEAM2; 00017 int IPROC,MAXEV; 00018 } FC_HWPROC; 00019 00020 00021 // CHARACTER*8 PART1,PART2 00022 // COMMON/HWBMCH/PART1,PART2 00023 #define FC_HWBMCH FC_FUNC(hwbmch, HWBMCH) 00024 extern struct { 00025 char PART1[8],PART2[8]; 00026 } FC_HWBMCH; 00027 00028 00029 // INTEGER IPART1,IPART2 00030 // COMMON/HWBEAM/IPART1,IPART2 00031 #define FC_HWBEAM FC_FUNC(hwbeam, HWBEAM) 00032 extern struct { 00033 int IPART1,IPART2; 00034 } FC_HWBEAM; 00035 00036 00037 // COMMON/HWEVNT/AVWGT,EVWGT,GAMWT,TLOUT,WBIGST,WGTMAX,WGTSUM,WSQSUM, 00038 // & IDHW(NMXHEP),IERROR,ISTAT,LWEVT,MAXER,MAXPR,NOWGT,NRN(2),NUMER, 00039 // & NUMERU,NWGTS,GENSOF 00040 const int herwig_hepevt_size = 10000; 00041 #define FC_HWEVNT FC_FUNC(hwevnt, HWEVNT) 00042 extern struct { 00043 double AVWGT,EVWGT,GAMWT,TLOUT,WBIGST,WGTMAX,WGTSUM,WSQSUM; 00044 int IDHW[herwig_hepevt_size],IERROR,ISTAT,LWEVT,MAXER,MAXPR, 00045 NOWGT,NRN[2],NUMER,NUMERU,NWGTS; 00046 int GENSOF; // Beware! in F77 this is logical 00047 } FC_HWEVNT; 00048 00049 00050 // C Basic parameters (and quantities derived from them) 00051 // COMMON/HWPRAM/AFCH(16,2),ALPHEM,B1LIM,BETAF,BTCLM,CAFAC,CFFAC, 00052 // & CLMAX,CLPOW,CLSMR(2),CSPEED,ENSOF,ETAMIX,F0MIX,F1MIX,F2MIX,GAMH, 00053 // & GAMW,GAMZ,GAMZP,GEV2NB,H1MIX,PDIQK,PGSMX,PGSPL(4),PHIMIX,PIFAC, 00054 // & PRSOF,PSPLT(2),PTRMS,PXRMS,QCDL3,QCDL5,QCDLAM,QDIQK,QFCH(16),QG, 00055 // & QSPAC,QV,SCABI,SWEIN,TMTOP,VFCH(16,2),VCKM(3,3),VGCUT,VQCUT, 00056 // & VPCUT,ZBINM,EFFMIN,OMHMIX,ET2MIX,PH3MIX,GCUTME, 00057 // & IOPREM,IPRINT,ISPAC,LRSUD,LWSUD,MODPDF(2),NBTRY,NCOLO,NCTRY, 00058 // & NDTRY,NETRY,NFLAV,NGSPL,NSTRU,NSTRY,NZBIN,IOP4JT(2),NPRFMT, 00059 // & AZSOFT,AZSPIN,CLDIR(2),HARDME,NOSPAC,PRNDEC,PRVTX,SOFTME,ZPRIME, 00060 // & PRNDEF,PRNTEX,PRNWEB 00061 #define FC_HWPRAM FC_FUNC(hwpram, HWPRAM) 00062 extern struct { 00063 double AFCH[2][16],ALPHEM,B1LIM,BETAF,BTCLM,CAFAC,CFFAC, 00064 CLMAX,CLPOW,CLSMR[2],CSPEED,ENSOF,ETAMIX,F0MIX,F1MIX,F2MIX,GAMH, 00065 GAMW,GAMZ,GAMZP,GEV2NB,H1MIX,PDIQK,PGSMX,PGSPL[4],PHIMIX,PIFAC, 00066 PRSOF,PSPLT[2],PTRMS,PXRMS,QCDL3,QCDL5,QCDLAM,QDIQK,QFCH[16],QG, 00067 QSPAC,QV,SCABI,SWEIN,TMTOP,VFCH[2][16],VCKM[3][3],VGCUT,VQCUT, 00068 VPCUT,ZBINM,EFFMIN,OMHMIX,ET2MIX,PH3MIX,GCUTME; 00069 int IOPREM,IPRINT,ISPAC,LRSUD,LWSUD,MODPDF[2],NBTRY,NCOLO,NCTRY, 00070 NDTRY,NETRY,NFLAV,NGSPL,NSTRU,NSTRY,NZBIN,IOP4JT[2],NPRFMT; 00071 int AZSOFT,AZSPIN,CLDIR[2],HARDME,NOSPAC,PRNDEC,PRVTX,SOFTME, 00072 ZPRIME,PRNDEF,PRNTEX,PRNWEB; // In F77 these are logical 00073 } FC_HWPRAM; 00074 00075 00076 // COMMON/HWPRCH/AUTPDF(2),BDECAY 00077 #define FC_HWPRCH FC_FUNC(hwprch, HWPRCH) 00078 extern struct { 00079 char AUTPDF[2][20],BDECAY; 00080 } FC_HWPRCH; 00081 00082 00083 // COMMON /HW6506/PDFX0,PDFPOW 00084 #define FC_HW6506 FC_FUNC(hw6506, HW6506) 00085 extern struct { 00086 double PDFX0,PDFPOW; 00087 } FC_HW6506; 00088 00089 00090 // COMMON/HWUCLU/CLDKWT(NMXCDK),CTHRPW(12,12),PRECO,RESN(12,12), 00091 // & RMIN(12,12),LOCN(12,12),NCLDK(NMXCDK),NRECO,CLRECO 00092 const int nmxcdk = 4000; 00093 #define FC_HWUCLU FC_FUNC(hwuclu, HWUCLU) 00094 extern struct { 00095 double CLDKWT[nmxcdk],CTHRPW[12][12],PRECO,RESN[12][12],RMIN[12][12]; 00096 int LOCN[12][12],NCLDK[nmxcdk],NRECO; 00097 int CLRECO; //< CLRECO is F77 logical. 00098 } FC_HWUCLU; 00099 00100 00101 // COMMON/HWHARD/ASFIXD,CLQ(7,6),COSS,COSTH,CTMAX,DISF(13,2),EMLST, 00102 // & EMMAX,EMMIN,EMPOW,EMSCA,EPOLN(3),GCOEF(7),GPOLN,OMEGA0,PHOMAS, 00103 // & PPOLN(3),PTMAX,PTMIN,PTPOW,Q2MAX,Q2MIN,Q2POW,Q2WWMN,Q2WWMX,QLIM, 00104 // & SINS,THMAX,Y4JT,TMNISR,TQWT,XX(2),XLMIN,XXMIN,YBMAX,YBMIN,YJMAX, 00105 // & YJMIN,YWWMAX,YWWMIN,WHMIN,ZJMAX,ZMXISR,IAPHIG,IBRN(2),IBSH, 00106 // & ICO(10),IDCMF,IDN(10),IFLMAX,IFLMIN,IHPRO,IPRO,MAPQ(6),MAXFL, 00107 // & BGSHAT,COLISR,FSTEVT,FSTWGT,GENEV,HVFCEN,TPOL,DURHAM 00108 #define FC_HWHARD FC_FUNC(hwhard, HWHARD) 00109 extern struct { 00110 double ASFIXD,CLQ[6][7],COSS,COSTH,CTMAX,DISF[2][13],EMLST,EMMAX, 00111 EMMIN,EMPOW,EMSCA,EPOLN[3],GCOEF[7],GPOLN,OMEGA0,PHOMAS,PPOLN[3], 00112 PTMAX,PTMIN,PTPOW,Q2MAX,Q2MIN,Q2POW,Q2WWMN,Q2WWMX,QLIM, 00113 SINS,THMAX,Y4JT,TMNISR,TQWT,XX[2],XLMIN,XXMIN,YBMAX,YBMIN,YJMAX, 00114 YJMIN,YWWMAX,YWWMIN,WHMIN,ZJMAX,ZMXISR; 00115 int IAPHIG,IBRN[2],IBSH,ICO[10],IDCMF,IDN[10],IFLMAX,IFLMIN,IHPRO, 00116 IPRO,MAPQ[6],MAXFL,BGSHAT,COLISR,FSTEVT,FSTWGT,GENEV,HVFCEN,TPOL,DURHAM; 00117 } FC_HWHARD; 00118 00119 00120 #define FC_HWDIST FC_FUNC(hwdist, HWDIST) 00121 extern struct { 00122 double EXAG, GEV2MM, HBAR, PLTCUT, VMIN2, VTXPIP[5], 00123 XMIX[2], XMRCT[2], YMIX[2], YMRCT[2]; 00124 int IOPDKL; 00125 int MAXDKL, MIXING, PIPSMR; 00126 } FC_HWDIST; 00127 00128 00129 #define FC_HWPROP FC_FUNC(hwprop, HWPROP) 00130 extern struct { 00131 double RLTIM[501], RMASS[501], RSPIN[501]; 00132 int ICHRG[501], IDPDG[501], IFLAV[501], NRES; 00133 int VTOCDK[501], VTORDK[501]; 00134 int QORQQB[501], QBORQQ[501]; 00135 } FC_HWPROP; 00136 00137 00138 // HERWIG block data initializer: call "hwudat();" before starting 00139 #define FC_HWPUDAT FC_FUNC(hwudat, HWUDAT) 00140 void FC_HWUDAT(void); 00141 00142 } 00143 00144 #endif