Interface to HERWIG
[u/mrichter/AliRoot.git] / THerwig / Herwig6Calls.h
1 #ifndef ROOT_Herwig6Calls
2 #define ROOT_Herwig6Calls
3
4 // Translation of Fortran commons from the Herwig6
5 // f77 program into c++ structures to be used in ROOT
6 // and declaration of Fortran functions as extern
7 // C functions to be called from the class Herwig6
8 // author: j. g. contreras jgcn@moni.mda.cinvestav.mx
9 // date: december 22, 2000
10
11 int const NMXHEP = 2000;
12
13 struct Hepevt_t {
14   int NEVHEP;
15   int NHEP;
16   int ISTHEP[NMXHEP];
17   int IDHEP[NMXHEP];
18   int JMOHEP[NMXHEP][2];
19   int JDAHEP[NMXHEP][2];
20   double PHEP[NMXHEP][5];
21   double VHEP[NMXHEP][4];
22 };
23
24 struct Hwbeam_t {
25   int IPART1;
26   int IPART2;
27 };
28
29 struct Hwbmch_t {
30   char PART1[8];
31   char PART2[8];
32 };
33
34 struct Hwproc_t {
35   double EBEAM1;
36   double EBEAM2;
37   double PBEAM1;
38   double PBEAM2;
39   int    IPROC;
40   int    MAXEV;
41 };
42
43 struct Hwpram_t {
44   double AFCH[2][16];
45   double ALPHEM;
46   double B1LIM;
47   double BETAF;
48   double BTCLM;
49   double CAFAC;
50   double CFFAC;
51   double CLMAX;
52   double CLPOW;
53   double CLSMR[2];
54   double CSPEED;
55   double ENSOF;
56   double ETAMIX;
57   double F0MIX;
58   double F1MIX;
59   double F2MIX;
60   double GAMH;
61   double GAMW;
62   double GAMZ;
63   double GAMZP;
64   double GEV2NB;
65   double H1MIX;
66   double PDIQK;
67   double PGSMX;
68   double PGSPL[4];
69   double PHIMIX;
70   double PIFAC;
71   double PRSOF;
72   double PSPLT[2];
73   double PTRMS;
74   double PXRMS;
75   double QCDL3;
76   double QCDL5;
77   double QCDLAM;
78   double QDIQK;
79   double QFCH[16];
80   double QG;
81   double QSPAC;
82   double QV;
83   double SCABI;
84   double SWEIN;
85   double TMTOP;
86   double VFCH[2][16];
87   double VCKM[3][3];
88   double VGCUT;
89   double VQCUT;   
90   double VPCUT;
91   double ZBINM;
92   double EFFMIN;
93   double OMHMIX;
94   double ET2MIX;
95   double PH3MIX;
96   double GCUTME;
97   int    IOPREM;
98   int    IPRINT;
99   int    ISPAC;
100   int    LRSUD;
101   int    LWSUD;
102   int    MODPDF[2];
103   int    NBTRY;
104   int    NCOLO;
105   int    NCTRY;
106   int    NDTRY;
107   int    NETRY;
108   int    NFLAV;
109   int    NGSPL;
110   int    NSTRU;
111   int    NSTRY;
112   int    NZBIN;
113   int    IOP4JT[2];
114   int    NPRFMT;
115   int AZSOFT;
116   int AZSPIN;
117   int CLDIR[2];
118   int HARDME;
119   int NOSPAC;
120   int PRNDEC;
121   int PRVTX;
122   int SOFTME;
123   int ZPRIME;
124   int PRNDEF;
125   int PRNTEX;
126   int PRNWEB;
127 };
128
129 struct Hwprch_t {
130   char AUTPDF[2][20];
131   char BDECAY[4];
132 };
133
134 int const NMXPAR = 500;
135
136 struct Hwpart_t {
137   int  NEVPAR;
138   int  NPAR;
139   int  ISTPAR[NMXPAR];
140   int  IDPAR[NMXPAR];
141   int  JMOPAR[NMXPAR][2];
142   int  JDAPAR[NMXPAR][2];
143   double  PPAR[NMXPAR][5];
144   double  VPAR[NMXPAR][4];
145 };
146
147 struct Hwparp_t {
148   double DECPAR[NMXPAR][2];
149   double PHIPAR[NMXPAR][2];
150   double RHOPAR[NMXPAR][2];
151   int TMPAR[NMXPAR];
152 };
153
154 int const MODMAX = 5;
155
156 struct Hwbosc_t {
157   double  ALPFAC;
158   double  BRHIG[12];
159   double  ENHANC[12];
160   double  GAMMAX;
161   double  RHOHEP[NMXHEP][3];
162   int     IOPHIG;
163   int     MODBOS[MODMAX];
164 };
165
166 struct Hwparc_t {
167   int     JCOPAR[NMXPAR][4];
168 };
169
170 struct Hwbrch_t {
171   double ANOMSC[2][2];
172   double HARDST;
173   double PTINT[2][3];
174   double XFACT;
175   int    INHAD;
176   int    JNHAD;
177   int    NSPAC[7];
178   int    ISLENT;
179   int    BREIT;
180   int    FROST;
181   int    USECMF;
182 };
183
184 struct Hwevnt_t {
185   double AVWGT;
186   double EVWGT;
187   double GAMWT;
188   double TLOUT;
189   double WBIGST;
190   double WGTMAX;
191   double WGTSUM;
192   double WSQSUM;
193   int    IDHW[NMXHEP];
194   int    IERROR;
195   int    ISTAT;
196   int    LWEVT;
197   int    MAXER;
198   int    MAXPR;
199   int    NOWGT;
200   int    NRN[2];
201   int    NUMER;
202   int    NUMERU;
203   int    NWGTS;
204   int    GENSOF;
205 };
206
207 struct Hwhard_t {
208   double ASFIXD;
209   double CLQ[6][7];
210   double COSS;
211   double COSTH;
212   double CTMAX;
213   double DISF[2][13];
214   double EMLST;
215   double EMMAX;
216   double EMMIN;
217   double EMPOW;
218   double EMSCA;
219   double EPOLN[3];
220   double GCOEF[7];
221   double GPOLN;
222   double OMEGA0;
223   double PHOMAS;
224   double PPOLN[3];
225   double PTMAX;
226   double PTMIN;
227   double PTPOW;
228   double Q2MAX;
229   double Q2MIN;
230   double Q2POW;
231   double Q2WWMN;
232   double Q2WWMX;
233   double QLIM;
234   double SINS;
235   double THMAX;
236   double Y4JT;
237   double TMNISR;
238   double TQWT;
239   double XX[2];
240   double XLMIN;
241   double XXMIN;
242   double YBMAX;
243   double YBMIN;
244   double YJMAX;
245   double YJMIN;
246   double YWWMAX;
247   double YWWMIN;
248   double WHMIN;
249   double ZJMAX;
250   double ZMXISR;
251   int    IAPHIG;
252   int    IBRN[2];
253   int    IBSH;
254   int    ICO[10];
255   int    IDCMF;
256   int    IDN[10];
257   int    IFLMAX;
258   int    IFLMIN;
259   int    IHPRO;
260   int    IPRO;
261   int    MAPQ[10];
262   int    MAXFL;
263   int    BGSHAT;
264   int    COLISR;
265   int    FSTEVT;
266   int    FSTWGT;
267   int    GENEV;
268   int    HVFCEN;
269   int    TPOL;
270   int     DURHAM;
271 };
272
273 int const NMXRES = 500;
274
275 struct Hwprop_t {
276   double RLTIM[NMXRES+1];
277   double RMASS[NMXRES+1];
278   double RSPIN[NMXRES+1];
279   int    ICHRG[NMXRES+1];
280   int    IDPDG[NMXRES+1];
281   int    IFLAV[NMXRES+1];
282   int    NRES;
283   int    VTOCDK[NMXRES+1];
284   int    VTORDK[NMXRES+1];
285   int    QORQQB[NMXRES+1];
286   int    QBORQQ[NMXRES+1];
287 };
288
289 struct Hwunam_t {
290   char RNAME[NMXRES+1][8];
291   char TXNAME[NMXRES+1][2][37];
292 };
293
294 int const NMXDKS = 4000;
295 int const NMXMOD = 200;
296
297 struct Hwupdt_t {
298   double BRFRAC[NMXDKS];
299   double CMMOM[NMXDKS];
300   double DKLTM[NMXRES];
301   int    IDK[NMXDKS];
302   int    IDKPRD[NMXDKS][5];
303   int    LNEXT[NMXDKS];
304   int    LSTRT[NMXRES];
305   int    NDKYS;
306   int    NME[NMXDKS];
307   int    NMODES[NMXRES];
308   int    NPRODS[NMXDKS];
309   int    DKPSET;
310   int    RSTAB[NMXRES+1];
311 };
312
313 struct Hwuwts_t {
314   double REPWT[5][4][4];
315   double SNGWT;
316   double DECWT;
317   double QWT[3];
318   double PWT[12];
319   double SWTEF[NMXRES];
320 };
321
322 int const NMXCDK = 4000;
323
324 struct Hwuclu_t {
325   double CLDKWT[NMXCDK];
326   double CTHRPW[12][12];
327   double PRECO;
328   double RESN[12][12];
329   double RMIN[12][12];
330   int    LOCN[12][12];
331   int    NCLDK[NMXCDK];
332   int    NRECO;
333   int    CLRECO;
334 };
335
336 struct Hwdist_t {
337   double EXAG;
338   double GEV2MM;
339   double HBAR;
340   double PLTCUT;
341   double VMIN2;
342   double VTXPIP[4];
343   double XMIX[2];
344   double XMRCT[2];
345   double YMIX[2];
346   double YMRCT[2];
347   int    IOPDKL;
348   int    MAXDKL;
349   int    MIXING;
350   int    PIPSMR;
351 };
352
353 int const NMXQDK=20;
354
355 struct Hwqdks_t {
356   double VTXQDK[NMXQDK][4];
357   int    IMQDK[NMXQDK];
358   int    LOCQ[NMXQDK];
359   int    NQDK;
360 };
361
362 int const NMXSUD = 1024;
363
364 struct Hwusud_t {
365   double ACCUR;
366   double QEV[6][NMXSUD];
367   double SUD[6][NMXSUD];
368   int    INTER;
369   int    NQEV;
370   int    NSUD;
371   int    SUDORD;
372 };
373
374 struct Hwsusy_t {
375   double TANB;
376   double ALPHAH;
377   double COSBPA;
378   double SINBPA;
379   double COSBMA;
380   double SINBMA;
381   double COSA;
382   double SINA;
383   double COSB;
384   double SINB;
385   double COTB;
386   double ZMIXSS[4][4];
387   double ZMXNSS[4][4];
388   double ZSGNSS[4]; 
389   double LFCH[16];
390   double RFCH[16];
391   double SLFCH[4][16];
392   double SRFCH[4][16]; 
393   double WMXUSS[2][2];
394   double WMXVSS[2][2]; 
395   double WSGNSS[2];
396   double QMIXSS[2][2][6];
397   double LMIXSS[2][2][6];
398   double THETAT;
399   double THETAB;
400   double THETAL;
401   double ATSS;
402   double ABSS;
403   double ALSS;
404   double MUSS;
405   double FACTSS;
406   double GHWWSS[3];
407   double GHZZSS[3];
408   double GHDDSS[4];
409   double GHUUSS[4];
410   double GHWHSS[3];
411   double GHSQSS[2][2][6][4];
412   double XLMNSS;
413   double RMMNSS;
414   double IMSSM;
415   double SENHNC[24];
416   double SSPARITY;
417   int    SUSYIN;
418 };
419
420 struct Hwrpar_t {
421   double LAMDA1[3][3][3];
422   double LAMDA2[3][3][3];
423   double LAMDA3[3][3][3];
424   int    HRDCOL[5][2];
425   int    RPARTY;
426   int    COLUPD;
427 };
428
429 struct Hwminb_t {
430   double PMBN1;
431   double PMBN2;
432   double PMBN3;
433   double PMBK1;
434   double PMBK2;
435   double PMBM1;
436   double PMBM2;
437   double PMBP1;
438   double PMBP2;
439   double PMBP3;
440 };
441
442 int const NMXCL = 500;
443
444 struct Hwclus_t {
445   double PPCL[NMXCL][5];
446   int    IDCL[NMXCL];
447   int    NCL;
448 };
449
450
451 extern "C" {
452   void  hwigin_();
453   void  hwuinc_();
454   void  hwusta_(char * name, int);
455   void  hweini_();
456   void  hwuine_();
457   void  hwepro_();
458   void  hwbgen_();
459   void  hwdhob_();
460   void  hwcfor_();
461   void  hwcdec_();
462   void  hwdhad_();
463   void  hwdhvy_();
464   void  hwmevt_();
465   void  hwufne_();
466   void  hwefin_();
467 }
468
469
470 #endif
471
472
473