Ignoring smell subdet
[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 struct dcpx {double dr,di;};
12
13 int const NMXHEP = 4000;
14
15 struct Hepevt_t {
16   int NEVHEP;
17   int NHEP;
18   int ISTHEP[NMXHEP];
19   int IDHEP[NMXHEP];
20   int JMOHEP[NMXHEP][2];
21   int JDAHEP[NMXHEP][2];
22   double PHEP[NMXHEP][5];
23   double VHEP[NMXHEP][4];
24 };
25
26 struct Hwbeam_t {
27   int IPART1;
28   int IPART2;
29 };
30
31 struct Hwbmch_t {
32   char PART1[8];
33   char PART2[8];
34 };
35
36 struct Hwproc_t {
37   double EBEAM1;
38   double EBEAM2;
39   double PBEAM1;
40   double PBEAM2;
41   int    IPROC;
42   int    MAXEV;
43 };
44
45 struct Hwpram_t {
46   double AFCH[2][16];
47   double ALPHEM;
48   double B1LIM;
49   double BETAF;
50   double BTCLM;
51   double CAFAC;
52   double CFFAC;
53   double CLMAX;
54   double CLPOW;
55   double CLSMR[2];
56   double CSPEED;
57   double ENSOF;
58   double ETAMIX;
59   double F0MIX;
60   double F1MIX;
61   double F2MIX;
62   double GAMH;
63   double GAMW;
64   double GAMZ;
65   double GAMZP;
66   double GEV2NB;
67   double H1MIX;
68   double PDIQK;
69   double PGSMX;
70   double PGSPL[4];
71   double PHIMIX;
72   double PIFAC;
73   double PRSOF;
74   double PSPLT[2];
75   double PTRMS;
76   double PXRMS;
77   double QCDL3;
78   double QCDL5;
79   double QCDLAM;
80   double QDIQK;
81   double QFCH[16];
82   double QG;
83   double QSPAC;
84   double QV;
85   double SCABI;
86   double SWEIN;
87   double TMTOP;
88   double VFCH[2][16];
89   double VCKM[3][3];
90   double VGCUT;
91   double VQCUT;   
92   double VPCUT;
93   double ZBINM;
94   double EFFMIN;
95   double OMHMIX;
96   double ET2MIX;
97   double PH3MIX;
98   double GCUTME;
99   int    IOPREM;
100   int    IPRINT;
101   int    ISPAC;
102   int    LRSUD;
103   int    LWSUD;
104   int    MODPDF[2];
105   int    NBTRY;
106   int    NCOLO;
107   int    NCTRY;
108   int    NDTRY;
109   int    NETRY;
110   int    NFLAV;
111   int    NGSPL;
112   int    NSTRU;
113   int    NSTRY;
114   int    NZBIN;
115   int    IOP4JT[2];
116   int    NPRFMT;
117   int AZSOFT;
118   int AZSPIN;
119   int CLDIR[2];
120   int HARDME;
121   int NOSPAC;
122   int PRNDEC;
123   int PRVTX;
124   int SOFTME;
125   int ZPRIME;
126   int PRNDEF;
127   int PRNTEX;
128   int PRNWEB;
129 };
130
131 struct Hwprch_t {
132   char AUTPDF[2][20];
133   char BDECAY[4];
134 };
135
136 int const NMXPAR = 500;
137
138 struct Hwpart_t {
139   int  NEVPAR;
140   int  NPAR;
141   int  ISTPAR[NMXPAR];
142   int  IDPAR[NMXPAR];
143   int  JMOPAR[NMXPAR][2];
144   int  JDAPAR[NMXPAR][2];
145   double  PPAR[NMXPAR][5];
146   double  VPAR[NMXPAR][4];
147 };
148
149 struct Hwparp_t {
150   double DECPAR[NMXPAR][2];
151   double PHIPAR[NMXPAR][2];
152   double RHOPAR[NMXPAR][2];
153   int TMPAR[NMXPAR];
154 };
155
156 int const MODMAX = 50;
157
158 struct Hwbosc_t {
159   double  ALPFAC;
160   double  BRHIG[12];
161   double  ENHANC[12];
162   double  GAMMAX;
163   double  RHOHEP[NMXHEP][3];
164   int     IOPHIG;
165   int     MODBOS[MODMAX];
166 };
167
168 struct Hwparc_t {
169   int     JCOPAR[NMXPAR][4];
170 };
171
172 struct Hwbrch_t {
173   double ANOMSC[2][2];
174   double HARDST;
175   double PTINT[2][3];
176   double XFACT;
177   int    INHAD;
178   int    JNHAD;
179   int    NSPAC[7];
180   int    ISLENT;
181   int    BREIT;
182   int    FROST;
183   int    USECMF;
184 };
185
186 struct Hwevnt_t {
187   double AVWGT;
188   double EVWGT;
189   double GAMWT;
190   double TLOUT;
191   double WBIGST;
192   double WGTMAX;
193   double WGTSUM;
194   double WSQSUM;
195   int    IDHW[NMXHEP];
196   int    IERROR;
197   int    ISTAT;
198   int    LWEVT;
199   int    MAXER;
200   int    MAXPR;
201   int    NOWGT;
202   int    NRN[2];
203   int    NUMER;
204   int    NUMERU;
205   int    NWGTS;
206   int    GENSOF;
207 };
208
209 struct Hwhard_t {
210   double ASFIXD;
211   double CLQ[6][7];
212   double COSS;
213   double COSTH;
214   double CTMAX;
215   double DISF[2][13];
216   double EMLST;
217   double EMMAX;
218   double EMMIN;
219   double EMPOW;
220   double EMSCA;
221   double EPOLN[3];
222   double GCOEF[7];
223   double GPOLN;
224   double OMEGA0;
225   double PHOMAS;
226   double PPOLN[3];
227   double PTMAX;
228   double PTMIN;
229   double PTPOW;
230   double Q2MAX;
231   double Q2MIN;
232   double Q2POW;
233   double Q2WWMN;
234   double Q2WWMX;
235   double QLIM;
236   double SINS;
237   double THMAX;
238   double Y4JT;
239   double TMNISR;
240   double TQWT;
241   double XX[2];
242   double XLMIN;
243   double XXMIN;
244   double YBMAX;
245   double YBMIN;
246   double YJMAX;
247   double YJMIN;
248   double YWWMAX;
249   double YWWMIN;
250   double WHMIN;
251   double ZJMAX;
252   double ZMXISR;
253   int    IAPHIG;
254   int    IBRN[2];
255   int    IBSH;
256   int    ICO[10];
257   int    IDCMF;
258   int    IDN[10];
259   int    IFLMAX;
260   int    IFLMIN;
261   int    IHPRO;
262   int    IPRO;
263   int    MAPQ[10];
264   int    MAXFL;
265   int    BGSHAT;
266   int    COLISR;
267   int    FSTEVT;
268   int    FSTWGT;
269   int    GENEV;
270   int    HVFCEN;
271   int    TPOL;
272   int     DURHAM;
273 };
274
275 int const NMXRES = 500;
276
277 struct Hwprop_t {
278   double RLTIM[NMXRES+1];
279   double RMASS[NMXRES+1];
280   double RSPIN[NMXRES+1];
281   int    ICHRG[NMXRES+1];
282   int    IDPDG[NMXRES+1];
283   int    IFLAV[NMXRES+1];
284   int    NRES;
285   int    VTOCDK[NMXRES+1];
286   int    VTORDK[NMXRES+1];
287   int    QORQQB[NMXRES+1];
288   int    QBORQQ[NMXRES+1];
289 };
290
291 struct Hwunam_t {
292   char RNAME[NMXRES+1][8];
293   char TXNAME[NMXRES+1][2][37];
294 };
295
296 int const NMXDKS = 4000;
297 int const NMXMOD = 200;
298
299 struct Hwupdt_t {
300   double BRFRAC[NMXDKS];
301   double CMMOM[NMXDKS];
302   double DKLTM[NMXRES];
303   int    IDK[NMXDKS];
304   int    IDKPRD[NMXDKS][5];
305   int    LNEXT[NMXDKS];
306   int    LSTRT[NMXRES];
307   int    NDKYS;
308   int    NME[NMXDKS];
309   int    NMODES[NMXRES];
310   int    NPRODS[NMXDKS];
311   int    DKPSET;
312   int    RSTAB[NMXRES+1];
313 };
314
315 struct Hwuwts_t {
316   double REPWT[5][4][4];
317   double SNGWT;
318   double DECWT;
319   double QWT[3];
320   double PWT[12];
321   double SWTEF[NMXRES];
322 };
323
324 int const NMXCDK = 4000;
325
326 struct Hwuclu_t {
327   double CLDKWT[NMXCDK];
328   double CTHRPW[12][12];
329   double PRECO;
330   double RESN[12][12];
331   double RMIN[12][12];
332   int    LOCN[12][12];
333   int    NCLDK[NMXCDK];
334   int    NRECO;
335   int    CLRECO;
336 };
337
338 struct Hwdist_t {
339   double EXAG;
340   double GEV2MM;
341   double HBAR;
342   double PLTCUT;
343   double VMIN2;
344   double VTXPIP[5];
345   double XMIX[2];
346   double XMRCT[2];
347   double YMIX[2];
348   double YMRCT[2];
349   int    IOPDKL;
350   int    MAXDKL;
351   int    MIXING;
352   int    PIPSMR;
353 };
354
355 int const NMXQDK=20;
356
357 struct Hwqdks_t {
358   double VTXQDK[NMXQDK][4];
359   int    IMQDK[NMXQDK];
360   int    LOCQ[NMXQDK];
361   int    NQDK;
362 };
363
364 int const NMXSUD = 1024;
365
366 struct Hwusud_t {
367   double ACCUR;
368   double QEV[6][NMXSUD];
369   double SUD[6][NMXSUD];
370   int    INTER;
371   int    NQEV;
372   int    NSUD;
373   int    SUDORD;
374 };
375
376 struct Hwsusy_t {
377   double TANB;
378   double ALPHAH;
379   double COSBPA;
380   double SINBPA;
381   double COSBMA;
382   double SINBMA;
383   double COSA;
384   double SINA;
385   double COSB;
386   double SINB;
387   double COTB;
388   double ZMIXSS[4][4];
389   double ZMXNSS[4][4];
390   double ZSGNSS[4]; 
391   double LFCH[16];
392   double RFCH[16];
393   double SLFCH[4][16];
394   double SRFCH[4][16]; 
395   double WMXUSS[2][2];
396   double WMXVSS[2][2]; 
397   double WSGNSS[2];
398   double QMIXSS[2][2][6];
399   double LMIXSS[2][2][6];
400   double THETAT;
401   double THETAB;
402   double THETAL;
403   double ATSS;
404   double ABSS;
405   double ALSS;
406   double MUSS;
407   double FACTSS;
408   double GHWWSS[3];
409   double GHZZSS[3];
410   double GHDDSS[4];
411   double GHUUSS[4];
412   double GHWHSS[3];
413   double GHSQSS[2][2][6][4];
414   double XLMNSS;
415   double RMMNSS;
416   double DMSSM;
417   double SENHNC[24];
418   double SSPARITY;
419   int    SUSYIN;
420 };
421
422 struct Hwrpar_t {
423   double LAMDA1[3][3][3];
424   double LAMDA2[3][3][3];
425   double LAMDA3[3][3][3];
426   int    HRDCOL[5][2];
427   int    RPARTY;
428   int    COLUPD;
429 };
430
431 struct Hwminb_t {
432   double PMBN1;
433   double PMBN2;
434   double PMBN3;
435   double PMBK1;
436   double PMBK2;
437   double PMBM1;
438   double PMBM2;
439   double PMBP1;
440   double PMBP2;
441   double PMBP3;
442 };
443
444 int const NMXCL = 500;
445
446 struct Hwclus_t {
447   double PPCL[NMXCL][5];
448   int    IDCL[NMXCL];
449   int    NCL;
450 };
451
452 // herwig 6.507
453
454 struct Hwgrav_t {
455   double GRVLAM;
456   double EMGRV;
457   double GAMGRV;
458 };
459
460 struct Hw6202_t {
461   double VIPWID[3];
462   double DXRCYL;
463   double DXZMAX;
464   double DXRSPH;
465   int    WZRFR;
466   int    FIX4JT;
467   int    IMSSM;
468   int    IHIGGS;
469   int    PARITY;
470   int    LRSUSY;
471 };
472
473 struct Hw6203_t {
474   double ABWGT;
475   double ABWSUM;
476   double AVABW;
477   int    NNEGWT;
478   int    NNEGEV;
479   int    NEGWTS;
480 };
481
482 int const IMAXCH = 20;
483
484 struct Hw6300_t {
485   double MJJMIN;
486   double CHNPRB[IMAXCH];
487   int    IOPSTP;
488   int    IOPSH;
489   int    OPTM;
490   int    CHON[IMAXCH];
491 };
492
493
494 int const NXMRS = 49;
495 int const NQMRS = 37;
496 int const NPMRS = 8;
497
498 struct Hwpmrs_t {
499   double FMRS[NQMRS+1][NXMRS][NPMRS][3];
500 };
501
502 struct Hwcirc_t {
503   int      CIRCOP;
504   int      CIRCAC;
505   int      CIRCVR;
506   int      CIRCRV;
507   int      CIRCCH;
508 };
509
510 int const NCFMAX = 3;
511 int const NMODE2 = 500;
512 int const NMODE3 = 500;
513 int const NDIAGR = 8;
514 int const NMODEB = 50;
515 int const NMODE4 = 4;
516
517 struct Hwdspb_t {
518   double ABMODE[NMODEB][2];
519   double BBMODE[NMODEB][12][2];
520   double PBMODE[NMODEB][12];
521   double WTBMAX[NMODEB][12];
522   int    IDBPRT[NMODEB];
523   int    IBDRTP[NMODEB];
524   int    IBMODE[NMODEB];
525   int    NBMODE;
526 };
527
528 struct Hwdsp2_t {
529   double A2MODE[NMODE2][2];
530   double P2MODE[NMODE2];
531   double WT2MAX[NMODE2];
532   int    ID2PRT[NMODE2];
533   int    I2DRTP[NMODE2];
534   int    N2MODE;
535 };
536
537 struct Hwdsp3_t {
538   double A3MODE[NMODE3][NDIAGR][2];
539   double B3MODE[NMODE3][NDIAGR][2];
540   double P3MODE[NMODE3];
541   double WT3MAX[NMODE3];
542   double SPN3CF[NMODE3][NCFMAX][NCFMAX];
543   int    ID3PRT[NMODE3];
544   int    I3MODE[NDIAGR][NMODE3];
545   int    I3DRTP[NDIAGR][NMODE3];
546   int    N3MODE;
547   int    NDI3BY[NMODE3];
548   int    N3NCFL[NMODE3];
549   int    I3DRCF[NDIAGR][NMODE3];
550 };
551
552 struct Hwdsp4_t {
553   double A4MODE[NMODE4][12][2];
554   double B4MODE[NMODE4][12][2];
555   double P4MODE[NMODE4][12][12];
556   double WT4MAX[NMODE4][12][12];
557   int    ID4PRT[NMODE4];
558   int    I4MODE[NMODE4][2];
559   int    N4MODE;
560 };
561
562 struct Hwdspn_t {
563   int    NDECSY;
564   int    NSEARCH;
565   int    LRDEC;
566   int    LWDEC;
567   int    SYSPIN;
568   int    THREEB;
569   int    FOURB;
570   char   TAUDEC[6];
571 };
572
573 int const NMXSPN = 50;
574
575 struct Hwspin_t {
576   dcpx   MESPN[NMXSPN][NCFMAX][2][2][2][2];
577   dcpx   RHOSPN[NMXSPN][2][2];
578   double SPNCFC[NMXSPN][NCFMAX][NCFMAX];
579   int    IDSPN[NMXSPN];
580   int    JMOSPN[NMXSPN];
581   int    JDASPN[NMXSPN][2];
582   int    NSPN;
583   int    ISNHEP[NMXHEP];
584   int    NSNTRY;
585   int    DECSPN[NMXSPN];
586   int    NCFL[NMXSPN];
587   int    SPCOPT;
588 };
589
590 struct Hwstau_t {
591   int    JAK1;
592   int    JAK2;
593   int    ITDKRC;
594   int    IFPHOT;
595 };
596
597 int const MAXHRP = 100;
598
599 struct Hwgupr_t {
600   double LHWGT[MAXHRP];
601   double LHWGTS[MAXHRP];
602   double LHXSCT[MAXHRP];
603   double LHXERR[MAXHRP];
604   double LHXMAX[MAXHRP];
605   double LHMXSM;
606   int    LHIWGT[MAXHRP];
607   int    LHNEVT[MAXHRP];
608   int    ITYPLH;
609   int    LHSOFT;
610   int    LHGLSF;    
611 };
612
613 struct Hw6500_t {
614   int    PRESPL;
615 };
616
617 struct Hw6504_t {
618   int    ITOPRD;
619 };
620
621 struct Hw6506_t {
622   double PDFX0;
623   double PDFPOW;
624 };
625
626
627
628 extern "C" {
629   void  hwigin_();
630   void  hwuinc_();
631   void  hwusta_(char * name, int);
632   void  hweini_();
633   void  hwuine_();
634   void  hwepro_();
635   void  hwbgen_();
636   void  hwdhob_();
637   void  hwcfor_();
638   void  hwcdec_();
639   void  hwdhad_();
640   void  hwdhvy_();
641   void  hwmevt_();
642   void  hwufne_();
643   void  hwefin_();
644 }
645
646 // subroutines to be call by JIMMY
647
648 extern "C" {
649   void  jminit_();
650   void  jimmin_();
651   void  jmefin_();
652 }
653
654
655 #endif
656
657
658