Better selection between menus
[u/mrichter/AliRoot.git] / THerwig / Herwig6Calls.h
CommitLineData
2d8d4543 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
e2054d85 11struct dcpx {double dr,di;};
12
13int const NMXHEP = 4000;
2d8d4543 14
15struct 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
26struct Hwbeam_t {
27 int IPART1;
28 int IPART2;
29};
30
31struct Hwbmch_t {
32 char PART1[8];
33 char PART2[8];
34};
35
36struct Hwproc_t {
37 double EBEAM1;
38 double EBEAM2;
39 double PBEAM1;
40 double PBEAM2;
41 int IPROC;
42 int MAXEV;
43};
44
45struct 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
131struct Hwprch_t {
132 char AUTPDF[2][20];
133 char BDECAY[4];
134};
135
136int const NMXPAR = 500;
137
138struct 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
149struct Hwparp_t {
150 double DECPAR[NMXPAR][2];
151 double PHIPAR[NMXPAR][2];
152 double RHOPAR[NMXPAR][2];
153 int TMPAR[NMXPAR];
154};
155
e2054d85 156int const MODMAX = 50;
2d8d4543 157
158struct 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
168struct Hwparc_t {
169 int JCOPAR[NMXPAR][4];
170};
171
172struct 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
186struct 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
209struct 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
275int const NMXRES = 500;
276
277struct 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
291struct Hwunam_t {
292 char RNAME[NMXRES+1][8];
293 char TXNAME[NMXRES+1][2][37];
294};
295
296int const NMXDKS = 4000;
297int const NMXMOD = 200;
298
299struct 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
315struct 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
324int const NMXCDK = 4000;
325
326struct 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
338struct Hwdist_t {
339 double EXAG;
340 double GEV2MM;
341 double HBAR;
342 double PLTCUT;
343 double VMIN2;
e2054d85 344 double VTXPIP[5];
2d8d4543 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
355int const NMXQDK=20;
356
357struct Hwqdks_t {
358 double VTXQDK[NMXQDK][4];
359 int IMQDK[NMXQDK];
360 int LOCQ[NMXQDK];
361 int NQDK;
362};
363
364int const NMXSUD = 1024;
365
366struct 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
376struct 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;
e2054d85 416 double DMSSM;
2d8d4543 417 double SENHNC[24];
418 double SSPARITY;
419 int SUSYIN;
420};
421
422struct 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
431struct 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
444int const NMXCL = 500;
445
446struct Hwclus_t {
447 double PPCL[NMXCL][5];
448 int IDCL[NMXCL];
449 int NCL;
450};
451
e2054d85 452// herwig 6.507
453
454struct Hwgrav_t {
455 double GRVLAM;
456 double EMGRV;
457 double GAMGRV;
458};
459
460struct 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
473struct Hw6203_t {
474 double ABWGT;
475 double ABWSUM;
476 double AVABW;
477 int NNEGWT;
478 int NNEGEV;
479 int NEGWTS;
480};
481
482int const IMAXCH = 20;
483
484struct 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
494int const NXMRS = 49;
495int const NQMRS = 37;
496int const NPMRS = 8;
497
498struct Hwpmrs_t {
499 double FMRS[NQMRS+1][NXMRS][NPMRS][3];
500};
501
502struct Hwcirc_t {
503 int CIRCOP;
504 int CIRCAC;
505 int CIRCVR;
506 int CIRCRV;
507 int CIRCCH;
508};
509
510int const NCFMAX = 3;
511int const NMODE2 = 500;
512int const NMODE3 = 500;
513int const NDIAGR = 8;
514int const NMODEB = 50;
515int const NMODE4 = 4;
516
517struct 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
528struct 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
537struct 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
552struct 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
562struct 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
573int const NMXSPN = 50;
574
575struct 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
590struct Hwstau_t {
591 int JAK1;
592 int JAK2;
593 int ITDKRC;
594 int IFPHOT;
595};
596
597int const MAXHRP = 100;
598
599struct 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
613struct Hw6500_t {
614 int PRESPL;
615};
616
617struct Hw6504_t {
618 int ITOPRD;
619};
620
621struct Hw6506_t {
622 double PDFX0;
623 double PDFPOW;
624};
625
626
2d8d4543 627
628extern "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
7677b281 646// subroutines to be call by JIMMY
647
648extern "C" {
649 void jminit_();
650 void jimmin_();
651 void jmefin_();
652}
653
2d8d4543 654
655#endif
656
657
658