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