00001
00002 #ifndef HERWIG_WRAPPER_H
00003 #define HERWIG_WRAPPER_H
00004
00006
00007
00009
00010
00011 #include <ctype.h>
00012
00013
00014
00015
00016
00017 extern "C" {
00018 extern struct {
00019 double EBEAM1,EBEAM2,PBEAM1,PBEAM2;
00020 int IPROC,MAXEV;
00021 } hwproc_;
00022 }
00023 #define hwproc hwproc_
00024
00025
00026
00027 extern "C" {
00028 extern struct {
00029 char PART1[8],PART2[8];
00030 } hwbmch_;
00031 }
00032 #define hwbmch hwbmch_
00033
00034
00035
00036
00037 const int herwig_hepevt_size = 4000;
00038 extern "C" {
00039 extern struct {
00040 double AVWGT,EVWGT,GAMWT,TLOUT,WBIGST,WGTMAX,WGTSUM,WSQSUM;
00041 int IDHW[herwig_hepevt_size],IERROR,ISTAT,LWEVT,MAXER,MAXPR;
00042 int NOWGT,NRN[2],NUMER,NUMERU,NWGTS;
00043 int GENSOF;
00044 } hwevnt_;
00045 }
00046 #define hwevnt hwevnt_
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 extern "C" {
00061 extern struct {
00062 double AFCH[2][16],ALPHEM,B1LIM,BETAF,BTCLM,CAFAC,CFFAC,
00063 CLMAX,CLPOW,CLSMR[2],CSPEED,ENSOF,ETAMIX,F0MIX,F1MIX,F2MIX,GAMH,
00064 GAMW,GAMZ,GAMZP,GEV2NB,H1MIX,PDIQK,PGSMX,PGSPL[4],PHIMIX,PIFAC,
00065 PRSOF,PSPLT[2],PTRMS,PXRMS,QCDL3,QCDL5,QCDLAM,QDIQK,QFCH[16],QG,
00066 QSPAC,QV,SCABI,SWEIN,TMTOP,VFCH[2][16],VCKM[3][3],VGCUT,VQCUT,
00067 VPCUT,ZBINM,EFFMIN,OMHMIX,ET2MIX,PH3MIX,GCUTME;
00068 int IOPREM,IPRINT,ISPAC,LRSUD,LWSUD,MODPDF[2],NBTRY,NCOLO,NCTRY,
00069 NDTRY,NETRY,NFLAV,NGSPL,NSTRU,NSTRY,NZBIN,IOP4JT[2],NPRFMT;
00070 int AZSOFT,AZSPIN,CLDIR[2],HARDME,NOSPAC,PRNDEC,PRVTX,SOFTME,
00071 ZPRIME,PRNDEF,PRNTEX,PRNWEB;
00072 } hwpram_;
00073 }
00074 #define hwpram hwpram_
00075
00076
00077
00078
00079 #define hwigin hwigin_ // initialise other common blocks
00080 #define hwigup hwigup_ // initialise HepUP run common block
00081 #define hwuinc hwuinc_ // compute parameter-dependent constants
00082 #define hwusta hwusta_ // call hwusta to make any particle stable
00083 #define hweini hweini_ // initialise elementary process
00084 #define hwuine hwuine_ // initialise event
00085 #define hwepro hwepro_ // generate HERWIG hard subprocess
00086 #define hwupro hwupro_ // read USER hard subprocess from HepUP event common
00087 #define hwbgen hwbgen_ // generate parton cascades
00088 #define hwdhob hwdhob_ // do heavy object decays
00089 #define hwcfor hwcfor_ // do cluster hadronization
00090 #define hwcdec hwcdec_ // do cluster decay
00091 #define hwdhad hwdhad_ // do unstable particle decays
00092 #define hwdhvy hwdhvy_ // do heavy flavour decays
00093 #define hwmevt hwmevt_ // add soft underlying event if needed
00094 #define hwufne hwufne_ // event generation completed, wrap up event ....
00095 #define hwefin hwefin_ // terminate elementary process
00096
00097 #define hwudpr hwudpr_ // prints out particle/decay properties
00098 #define hwuepr hwuepr_ // prints out event data
00099 #define hwupup hwupup_ // prints out HepEUP user common block event data
00100 #define hwegup hwegup_ // terminal calculations to replace HWEFIN for HepUP
00101 extern "C" {
00102 void hwigin(void);
00103 void hwigup(void);
00104 void hwuinc(void);
00105 void hwusta(const char*,int);
00106 void hweini(void);
00107 void hwuine(void);
00108 void hwepro(void);
00109 void hwupro(void);
00110 void hwbgen(void);
00111 void hwdhob(void);
00112 void hwcfor(void);
00113 void hwcdec(void);
00114 void hwdhad(void);
00115 void hwdhvy(void);
00116 void hwmevt(void);
00117 void hwufne(void);
00118 void hwefin(void);
00119 void hwudpr(void);
00120 void hwuepr(void);
00121 void hwupup(void);
00122 void hwegup(void);
00123 }
00124
00125
00126
00127
00128
00129
00130 #define hwudat hwudat_
00131 extern "C" {
00132 void hwudat(void);
00133 }
00134
00135 #endif // HERWIG_WRAPPER_H
00136