4 #ifndef __CFORTRAN_LOADED
9 // Translation of Fortran commons from the Herwig6
10 // f77 program into c++ structures to be used in ROOT
11 // and declaration of Fortran functions as extern
12 // C functions to be called from the class Herwig6
13 // author: j. g. contreras jgcn@moni.mda.cinvestav.mx
14 // date: december 22, 2000
16 struct dcpx {double dr,di;};
18 int const NMXHEP = 4000;
25 int JMOHEP[NMXHEP][2];
26 int JDAHEP[NMXHEP][2];
27 double PHEP[NMXHEP][5];
28 double VHEP[NMXHEP][4];
31 #define HEPEVT COMMON_BLOCK(HEPEVT, hepevt)
32 COMMON_BLOCK_DEF(HepevtCommon, HEPEVT);
40 #define HWBEAM COMMON_BLOCK(HWBEAM, hwbeam)
41 COMMON_BLOCK_DEF(HwbeamCommon, HWBEAM);
48 #define HWBMCH COMMON_BLOCK(HWBMCH, hwbmch)
49 COMMON_BLOCK_DEF(HwbmchCommon, HWBMCH);
61 #define HWPROC COMMON_BLOCK(HWPROC, hwproc)
62 COMMON_BLOCK_DEF(HwprocCommon, HWPROC);
151 #define HWPRAM COMMON_BLOCK(HWPRAM, hwpram)
152 COMMON_BLOCK_DEF(HwpramCommon, HWPRAM);
159 #define HWPRCH COMMON_BLOCK(HWPRCH, hwprch)
160 COMMON_BLOCK_DEF(HwprchCommon, HWPRCH);
162 int const NMXPAR = 500;
169 int JMOPAR[NMXPAR][2];
170 int JDAPAR[NMXPAR][2];
171 double PPAR[NMXPAR][5];
172 double VPAR[NMXPAR][4];
175 #define HWPART COMMON_BLOCK(HWPART, hwpart)
176 COMMON_BLOCK_DEF(HwpartCommon, HWPART);
179 double DECPAR[NMXPAR][2];
180 double PHIPAR[NMXPAR][2];
181 double RHOPAR[NMXPAR][2];
185 #define HWPARP COMMON_BLOCK(HWPARP, hwparp)
186 COMMON_BLOCK_DEF(HwparpCommon, HWPARP);
188 int const MODMAX = 5;
195 double RHOHEP[NMXHEP][3];
200 #define HWBOSC COMMON_BLOCK(HWBOSC, hwbosc)
201 COMMON_BLOCK_DEF(HwboscCommon, HWBOSC);
204 int JCOPAR[NMXPAR][4];
207 #define HWPARC COMMON_BLOCK(HWPARC, hwparc)
208 COMMON_BLOCK_DEF(HwparcCommon, HWPARC);
224 #define HWBRCH COMMON_BLOCK(HWBRCH, hwbrch)
225 COMMON_BLOCK_DEF(HwbrchCommon, HWBRCH);
250 #define HWEVNT COMMON_BLOCK(HWEVNT, hwevnt)
251 COMMON_BLOCK_DEF(HwevntCommon, HWEVNT);
319 #define HWHARD COMMON_BLOCK(HWHARD, hwhard)
320 COMMON_BLOCK_DEF(HwhardCommon, HWHARD);
322 int const NMXRES = 500;
325 double RLTIM[NMXRES+1];
326 double RMASS[NMXRES+1];
327 double RSPIN[NMXRES+1];
332 int VTOCDK[NMXRES+1];
333 int VTORDK[NMXRES+1];
334 int QORQQB[NMXRES+1];
335 int QBORQQ[NMXRES+1];
338 #define HWPROP COMMON_BLOCK(HWPROP, hwprop)
339 COMMON_BLOCK_DEF(HwpropCommon, HWPROP);
342 char RNAME[NMXRES+1][8];
343 char TXNAME[NMXRES+1][2][37];
346 #define HWUNAM COMMON_BLOCK(HWUNAM, hwunam)
347 COMMON_BLOCK_DEF(HwunamCommon, HWUNAM);
349 int const NMXDKS = 4000;
350 int const NMXMOD = 200;
353 double BRFRAC[NMXDKS];
354 double CMMOM[NMXDKS];
355 double DKLTM[NMXRES];
357 int IDKPRD[NMXDKS][5];
368 #define HWUPDT COMMON_BLOCK(HWUPDT, hwupdt)
369 COMMON_BLOCK_DEF(HwupdtCommon, HWUPDT);
373 double REPWT[5][4][4];
378 double SWTEF[NMXRES];
381 #define HWUWTS COMMON_BLOCK(HWUWTS, hwuwts)
382 COMMON_BLOCK_DEF(HwuwtsCommon, HWUWTS);
385 int const NMXCDK = 4000;
388 double CLDKWT[NMXCDK];
389 double CTHRPW[12][12];
399 #define HWUCLU COMMON_BLOCK(HWUCLU, hwuclu)
400 COMMON_BLOCK_DEF(HwucluCommon, HWUCLU);
420 #define HWDIST COMMON_BLOCK(HWDIST, hwdist)
421 COMMON_BLOCK_DEF(HwdistCommon, HWDIST);
426 double VTXQDK[NMXQDK][4];
432 #define HWQDKS COMMON_BLOCK(HWQDKS, hwqdks)
433 COMMON_BLOCK_DEF(HwqdksCommon, HWQDKS);
435 int const NMXSUD = 1024;
439 double QEV[6][NMXSUD];
440 double SUD[6][NMXSUD];
447 #define HWUSUD COMMON_BLOCK(HWUSUD, hwusud)
448 COMMON_BLOCK_DEF(HwusudCommon, HWUSUD);
472 double QMIXSS[2][2][6];
473 double LMIXSS[2][2][6];
487 double GHSQSS[2][2][6][4];
496 #define HWSUSY COMMON_BLOCK(HWSUSY, hwsusy)
497 COMMON_BLOCK_DEF(HwsusyCommon, HWSUSY);
500 double LAMDA1[3][3][3];
501 double LAMDA2[3][3][3];
502 double LAMDA3[3][3][3];
508 #define HWRPAR COMMON_BLOCK(HWRPAR, hwrpar)
509 COMMON_BLOCK_DEF(HwrparCommon, HWRPAR);
524 #define HWMINB COMMON_BLOCK(HWMINB, hwminb)
525 COMMON_BLOCK_DEF(HwminbCommon, HWMINB);
527 int const NMXCL = 500;
530 double PPCL[NMXCL][5];
535 #define HWCLUS COMMON_BLOCK(HWCLUS, hwclus)
536 COMMON_BLOCK_DEF(HwclusCommon, HWCLUS);
540 typedef struct Hwgrav_t {
546 #define HWGRAV COMMON_BLOCK(HWGRAV, hwgrav)
547 COMMON_BLOCK_DEF(HwgravCommon, HWGRAV);
562 #define HW6202 COMMON_BLOCK(HW6202, hw6202)
563 COMMON_BLOCK_DEF(Hw6202Common, HW6202);
574 #define HW6203 COMMON_BLOCK(HW6203, hw6203)
575 COMMON_BLOCK_DEF(Hw6203Common, HW6203);
577 int const IMAXCH = 20;
581 double CHNPRB[IMAXCH];
588 #define HW6300 COMMON_BLOCK(HW6300, hw6300)
589 COMMON_BLOCK_DEF(Hw6300Common, HW6300);
591 int const NXMRS = 49;
592 int const NQMRS = 37;
596 double FMRS[NQMRS+1][NXMRS][NPMRS][3];
599 #define HWPMRS COMMON_BLOCK(HWPMRS, hwpmrs)
600 COMMON_BLOCK_DEF(HwpmrsCommon, HWPMRS);
610 #define HWCIRC COMMON_BLOCK(HWCIRC, hwcirc)
611 COMMON_BLOCK_DEF(HwcircCommon, HWCIRC);
613 int const NCFMAX = 3;
614 int const NMODE2 = 500;
615 int const NMODE3 = 500;
616 int const NDIAGR = 8;
617 int const NMODEB = 50;
618 int const NMODE4 = 4;
621 double ABMODE[NMODEB][2];
622 double BBMODE[NMODEB][12][2];
623 double PBMODE[NMODEB][12];
624 double WTBMAX[NMODEB][12];
631 #define HWDSPB COMMON_BLOCK(HWDSPB, hwdspb)
632 COMMON_BLOCK_DEF(HwdspbCommon, HWDSPB);
635 double A2MODE[NMODE2][2];
636 double P2MODE[NMODE2];
637 double WT2MAX[NMODE2];
643 #define HWDSP2 COMMON_BLOCK(HWDSP2, hwdsp2)
644 COMMON_BLOCK_DEF(Hwdsp2Common, HWDSP2);
647 double A3MODE[NMODE3][NDIAGR][2];
648 double B3MODE[NMODE3][NDIAGR][2];
649 double P3MODE[NMODE3];
650 double WT3MAX[NMODE3];
651 double SPN3CF[NMODE3][NCFMAX][NCFMAX];
653 int I3MODE[NMODE3][NDIAGR];
654 int I3DRTP[NMODE3][NDIAGR];
658 int I3DRCF[NMODE3][NDIAGR];
661 #define HWDSP3 COMMON_BLOCK(HWDSP3, hwdsp3)
662 COMMON_BLOCK_DEF(Hwdsp3Common, HWDSP3);
665 double A4MODE[NMODE4][12][2];
666 double B4MODE[NMODE4][12][2];
667 double P4MODE[NMODE4][12][12];
668 double WT4MAX[NMODE4][12][12];
670 int I4MODE[NMODE4][2];
674 #define HWDSP4 COMMON_BLOCK(HWDSP4, hwdsp4)
675 COMMON_BLOCK_DEF(Hwdsp4Common, HWDSP4);
688 #define HWDSPN COMMON_BLOCK(HWDSPN, hwdspn)
689 COMMON_BLOCK_DEF(HwdspnCommon, HWDSPN);
691 int const NMXSPN = 50;
694 dcpx MESPN[NMXSPN][NCFMAX][2][2][2][2];
695 dcpx RHOSPN[NMXSPN][2][2];
696 double SPNCFC[NMXSPN][NCFMAX][NCFMAX];
699 int JDASPN[NMXSPN][2];
708 #define HWSPIN COMMON_BLOCK(HWSPIN, hwspin)
709 COMMON_BLOCK_DEF(HwspinCommon, HWSPIN);
718 #define HWSTAU COMMON_BLOCK(HWSTAU, hwstau)
719 COMMON_BLOCK_DEF(HwstauCommon, HWSTAU);
721 int const MAXHRP = 100;
724 double LHWGT[MAXHRP];
725 double LHWGTS[MAXHRP];
726 double LHXSCT[MAXHRP];
727 double LHXERR[MAXHRP];
728 double LHXMAX[MAXHRP];
737 #define HWGUPR COMMON_BLOCK(HWGUPR, hwgupr)
738 COMMON_BLOCK_DEF(HwguprCommon, HWGUPR);
744 #define HW6500 COMMON_BLOCK(HW6500, hw6500)
745 COMMON_BLOCK_DEF(Hw6500Common, HW6500);
751 #define HW6504 COMMON_BLOCK(HW6504, hw6504)
752 COMMON_BLOCK_DEF(Hw6504Common, HW6504);
759 #define HW6506 COMMON_BLOCK(HW6506, hw6506)
760 COMMON_BLOCK_DEF(Hw6506Common, HW6506);
780 void hwusta_(const char * name, int);
784 // subroutines to be call by JIMMY