C HERWIG---AliRoot/HERWIG
C-----------------------------------------------------------------------
C H E R W I G
C
C a Monte Carlo event generator for simulating
C +---------------------------------------------------+
C | Hadron Emission Reactions With Interfering Gluons |
C +---------------------------------------------------+
C I.G. Knowles(*), G. Marchesini(+), M.H.Seymour($,&) and B.R. Webber(#)
C-----------------------------------------------------------------------
C with Minimal Supersymmetric Standard Model Matrix Elements by
C S. Moretti(") and K. Odagiri(^)
C-----------------------------------------------------------------------
C R parity violating Supersymmetric Decays and Matrix Elements by
C P. Richardson(X)
C-----------------------------------------------------------------------
C matrix element corrections to top decay and Drell-Yan type processes
C by G. Corcella(&)
C-----------------------------------------------------------------------
C Deep Inelastic Scattering and Heavy Flavour Electroproduction by
C G. Abbiendi(@) and L. Stanco(%)
C-----------------------------------------------------------------------
C and Jet Photoproduction in Lepton-Hadron Collisions by J. Chyla(~)
C-----------------------------------------------------------------------
C(*) Department of Physics & Astronomy, University of Edinburgh
C(+) Dipartimento di Fisica, Universita di Milano-Bicocca
C($) School of Physics & Astronomy, University of Manchester
C(&) Theory Physics Group, CERN
C(#) Cavendish Laboratory, Cambridge
C(") School of Physics & Astronomy, Southampton
C(^) Academia Sinica, Taiwan
C(X) Institute of Particle Physics Phenomenology, University of Durham
C(@) Dipartimento di Fisica, Universita di Bologna
C(%) Dipartimento di Fisica, Universita di Padova
C(~) Institute of Physics, Prague
C-----------------------------------------------------------------------
C Version 6.510 - 31st October 2005
C-----------------------------------------------------------------------
C Main references:
C
C G.Corcella, I.G.Knowles, G.Marchesini, S.Moretti, K.Odagiri,
C P.Richardson, M.H.Seymour and B.R.Webber, JHEP 0101 (2001) 010
C
C G.Marchesini, B.R.Webber, G.Abbiendi, I.G.Knowles, M.H.Seymour,
C and L.Stanco, Computer Physics Communications 67 (1992) 465.
C-----------------------------------------------------------------------
C Please see the official HERWIG information page:
C http://hepwww.rl.ac.uk/theory/seymour/herwig/
C-----------------------------------------------------------------------
CDECK ID>, CIRCEE.
*CMZ :- -03/07/01 17.07.47 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION CIRCEE (X1, X2)
C-----------------------------------------------------------------------
C DUMMY FUNCTION: DELETE AND SET CIRCOP NON-ZERO
C IN MAIN PROGRAM IF YOU USE CIRCE BEAM SPECTRUM PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION CIRCEE, X1, X2
WRITE (6,10)
10 FORMAT(/10X,'CIRCEE CALLED BUT NOT LINKED')
CIRCEE = 0.0D0
STOP
END
CDECK ID>, CIRCES.
*CMZ :- -03/07/01 17.07.47 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE CIRCES (XX1M, XX2M, XROOTS, XACC, XVER, XREV, XCHAT)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET CIRCOP NON-ZERO
C IN MAIN PROGRAM IF YOU USE CIRCE BEAM SPECTRUM PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION XX1M, XX2M, XROOTS
INTEGER XACC, XVER, XREV, XCHAT
WRITE (6,10)
10 FORMAT(/10X,'CIRCES CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, CIRCGG.
*CMZ :- -03/07/01 17.07.47 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION CIRCGG (X1, X2)
C-----------------------------------------------------------------------
C DUMMY FUNCTION: DELETE AND SET CIRCOP NON-ZERO
C IN MAIN PROGRAM IF YOU USE CIRCE BEAM SPECTRUM PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION CIRCGG, X1, X2
WRITE (6,10)
10 FORMAT(/10X,'CIRCGG CALLED BUT NOT LINKED')
CIRCGG = 0.0D0
STOP
END
CDECK ID>, DECADD.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE DECADD(LOGI)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET BDECAY='CLEO'
C IN MAIN PROGRAM IF YOU USE CLEO DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
LOGICAL LOGI
WRITE (6,10)
10 FORMAT(/10X,'DECADD CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, DEXAY.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE DEXAY(IMODE,POL)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER IMODE
REAL POL(4)
WRITE (6,10)
10 FORMAT(/10X,'DEXAY CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, EUDINI.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE EUDINI
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
C IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
WRITE (6,10)
10 FORMAT(/10X,'EUDINI CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, FILHEP.
*CMZ :- -17/10/01 09:42:21 by Peter Richardson
*-- Author : Martin W. Gruenewald
C-----------------------------------------------------------------------
SUBROUTINE FILHEP(N,IST,ID,JMO1,JMO2,JDA1,JDA2,P4,PINV,PHFLAG)
C ----------------------------------------------------------------------
C this subroutine fills one entry into the HEPEVT common
C and updates the information for affected mother entries
C used by TAUOLA
C
C written by Martin W. Gruenewald (91/01/28)
C ----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
LOGICAL QEDRAD
COMMON /PHORAD/ QEDRAD(NMXHEP)
INTEGER N,IHEP,IST,ID,JMO1,JMO2,JDA1,JDA2,I,IP
REAL PINV
LOGICAL PHFLAG
REAL*4 P4(4)
C
C check address mode
IF (N.EQ.0) THEN
C append mode
IHEP=NHEP+1
ELSE IF (N.GT.0) THEN
C absolute position
IHEP=N
ELSE
C relative position
IHEP=NHEP+N
END IF
C check on IHEP
IF ((IHEP.LE.0).OR.(IHEP.GT.NMXHEP)) RETURN
C add entry
NHEP=IHEP
ISTHEP(IHEP)=IST
IDHEP(IHEP)=ID
JMOHEP(1,IHEP)=JMO1
IF(JMO1.LT.0)JMOHEP(1,IHEP)=JMOHEP(1,IHEP)+IHEP
JMOHEP(2,IHEP)=JMO2
IF(JMO2.LT.0)JMOHEP(2,IHEP)=JMOHEP(2,IHEP)+IHEP
JDAHEP(1,IHEP)=JDA1
JDAHEP(2,IHEP)=JDA2
DO I=1,4
PHEP(I,IHEP)=P4(I)
C KORAL-B and KORAL-Z do not provide vertex and/or lifetime informations
VHEP(I,IHEP)=0.0
END DO
PHEP(5,IHEP)=PINV
C FLAG FOR PHOTOS...
QEDRAD(IHEP)=PHFLAG
C update process:
DO IP=JMOHEP(1,IHEP),JMOHEP(2,IHEP)
IF(IP.GT.0)THEN
C if there is a daughter at IHEP, mother entry at IP has decayed
IF(ISTHEP(IP).EQ.1)ISTHEP(IP)=2
C and daughter pointers of mother entry must be updated
IF(JDAHEP(1,IP).EQ.0)THEN
JDAHEP(1,IP)=IHEP
JDAHEP(2,IP)=IHEP
ELSE
JDAHEP(2,IP)=MAX(IHEP,JDAHEP(2,IP))
END IF
END IF
END DO
END
CDECK ID>, FRAGMT.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE FRAGMT(I,J,K)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
C IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER I,J,K
WRITE (6,10)
10 FORMAT(/10X,'FRAGMT CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, HVCBVI.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HVCBVI
C-----------------------------------------------------------------------
C DUMMY ROUTINE: DELETE IF YOU LINK TO BARYON NUMBER VIOLATN PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
WRITE (6,10)
10 FORMAT(/10X,'HVCBVI CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, HVHBVI.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HVHBVI
C-----------------------------------------------------------------------
C DUMMY ROUTINE: DELETE IF YOU LINK TO BARYON NUMBER VIOLATN PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
WRITE (6,10)
10 FORMAT(/10X,'HERBVI CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, HWBAZF.
*CMZ :- -26/04/91 11.11.54 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWBAZF(IPAR,JPAR,VEC1,VEC2,VEC3,VEC)
C-----------------------------------------------------------------------
C Azimuthal correlation functions for Collins' algorithm,
C see I.G.Knowles, Comp. Phys. Comm. 58 (90) 271 for notation.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION Z1,Z2,DOT12,DOT23,DOT31,TR,FN(7),VEC1(2),VEC2(2),
& VEC3(2),VEC(2)
INTEGER IPAR,JPAR
LOGICAL GLUI,GLUJ
IF (.NOT.AZSPIN) RETURN
Z1=PPAR(4,JPAR)/PPAR(4,IPAR)
Z2=1.-Z1
GLUI=IDPAR(IPAR).EQ.13
GLUJ=IDPAR(JPAR).EQ.13
IF (GLUI) THEN
IF (GLUJ) THEN
C Branching: g--->gg
FN(2)=Z2/Z1
FN(3)=1./FN(2)
FN(4)=Z1*Z2
FN(1)=FN(2)+FN(3)+FN(4)
FN(5)=FN(2)+2.*Z1
FN(6)=FN(3)+2.*Z2
FN(7)=FN(4)-2.
ELSE
C Branching: g--->qqbar
FN(1)=(Z1*Z1+Z2*Z2)/2.
FN(2)=0.
FN(3)=0.
FN(4)=-Z1*Z2
FN(5)=-(2.*Z1-1.)/2.
FN(6)=-FN(5)
FN(7)=FN(1)
ENDIF
ELSE
IF (GLUJ) THEN
C Branching: q--->gq
FN(1)=(1.+Z2*Z2)/(2.*Z1)
FN(2)=Z2/Z1
FN(3)=0.
FN(4)=0.
FN(5)=FN(1)
FN(6)=(1.+Z2)/2.
FN(7)=-FN(6)
ELSE
C Branching: q--->qg
FN(1)=(1.+Z1*Z1)/(2.*Z2)
FN(2)=0.
FN(3)=Z1/Z2
FN(4)=0.
FN(5)=(1.+Z1)/2.
FN(6)=FN(1)
FN(7)=-FN(5)
ENDIF
ENDIF
DOT12=VEC1(1)*VEC2(1)+VEC1(2)*VEC2(2)
DOT23=VEC2(1)*VEC3(1)+VEC2(2)*VEC3(2)
DOT31=VEC3(1)*VEC1(1)+VEC3(2)*VEC1(2)
TR=1./(FN(1)+FN(2)*DOT23+FN(3)*DOT31+FN(4)*DOT12)
VEC(1)=((FN(2)+FN(5)*DOT23)*VEC1(1)
& +(FN(3)+FN(6)*DOT31)*VEC2(1)
& +(FN(4)+FN(7)*DOT12)*VEC3(1))*TR
VEC(2)=((FN(2)+FN(5)*DOT23)*VEC1(2)
& +(FN(3)+FN(6)*DOT31)*VEC2(2)
& +(FN(4)+FN(7)*DOT12)*VEC3(2))*TR
END
CDECK ID>, HWBCON.
*CMZ :- -11/10/01 12.01.52 by Peter Richardson
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWBCON
C-----------------------------------------------------------------------
C MAKES COLOUR CONNECTIONS BETWEEN JETS
C MODIFIED 12/10/97 BY BRW FOR SUSY PROCESSES
C MODIFIED 11/01/01 BY PR FOR SPIN CORRELATIONS(PROBLEM WITH ORDER
C OF DECAYS)
C NEW VARAIBLE BACK TO ALLOW CODE TO SEARCH DOWN CHAIN
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,IST,ID,JC,KC,JD,JHEP,LHEP,ID2,NTRY,KHEP
LOGICAL BACK
IF (IERROR.NE.0) RETURN
IF(.NOT.RPARTY) THEN
CALL HWBRCN
RETURN
ENDIF
DO 20 IHEP=1,NHEP
BACK = .FALSE.
IST=ISTHEP(IHEP)
C---LOOK FOR PARTONS WITHOUT COLOUR MOTHERS
IF (IST.LT.145.OR.IST.GT.152) GOTO 20
51 IF (JMOHEP(2,IHEP).EQ.0.OR.BACK.OR.
& ISTHEP(JMOHEP(2,IHEP)).EQ.155) THEN
C---FIND COLOUR-CONNECTED PARTON
IF(BACK) GOTO 52
IF(JMOHEP(2,IHEP).EQ.0) THEN
JC=JMOHEP(1,IHEP)
IF (IST.NE.152) JC=JMOHEP(1,JC)
JC =JMOHEP(2,JC)
ELSE
JC = JMOHEP(2,IHEP)
JHEP = JC
ENDIF
IF (JC.EQ.0) THEN
CALL HWWARN('HWBCON',51)
GOTO 20
ENDIF
C---FIND SPECTATOR WHEN JC IS DECAYED HEAVY QUARK OR SUSY PARTICLE
52 IF (ISTHEP(JC).EQ.155.OR.BACK) THEN
IF (IDHEP(JMOHEP(1,JC)).EQ.94.OR.BACK) THEN
C---DECAYED BEFORE HADRONIZING
IF(BACK.OR.(JMOHEP(2,IHEP).NE.0.AND.
& ISTHEP(JMOHEP(2,IHEP)).EQ.155)) GOTO 53
JHEP=JMOHEP(2,JC)
C--new bit to try and fix the problems for spin correlations
C--move one step further up the tree and hope this helps
IF (JHEP.EQ.0) THEN
NTRY = 0
1 NTRY = NTRY+1
JC = JMOHEP(1,JC)
JHEP = JMOHEP(2,JC)
IF(JHEP.NE.0.AND.ISTHEP(JHEP).EQ.155)
& JHEP = JMOHEP(2,JHEP)
IF(JHEP.EQ.0.AND.NTRY.LT.NHEP) GOTO 1
IF(NHEP.EQ.NTRY) GOTO 20
ENDIF
53 ID=IDHW(JHEP)
IF (ISTHEP(JHEP).EQ.155) THEN
C---SPECIAL FOR GLUINO DECAYS
IF (ID.EQ.449) THEN
ID=IDHW(JC)
C---N.B. WILL NEED MODS WHEN SUSY PARTICLES CAN SHOWER
IF (ID.EQ.449.OR.ID.EQ.13.OR.
& (ID.GE.401.AND.ID.LE.406).OR.
& (ID.GE.413.AND.ID.LE.418).OR.
& ID.LE.6.OR.(ID.GE.115.AND.ID.LE.120)) THEN
C---LOOK FOR ANTI(S)QUARK OR GLUON
DO KC=JDAHEP(1,JHEP),JDAHEP(2,JHEP)
ID=IDHW(KC)
IF ((ID.GE. 7.AND.ID.LE. 13).OR.
& (ID.GE.407.AND.ID.LE.412).OR.
& (ID.GE.419.AND.ID.LE.424)) GOTO 5
ENDDO
ELSE
C---LOOK FOR (S)QUARK OR GLUON
DO KC=JDAHEP(1,JHEP),JDAHEP(2,JHEP)
ID=IDHW(KC)
IF (ID.LE. 6.OR. ID.EQ. 13.OR.
& (ID.GE.401.AND.ID.LE.406).OR.
& (ID.GE.413.AND.ID.LE.418)) GOTO 5
ENDDO
ENDIF
C---COULDNT FIND ONE
CALL HWWARN('HWBCON',101)
GOTO 999
5 JC=KC
ELSE
C--PR MOD 30/6/99 should fix HWCFOR 104 errors
ID2 = IDHW(IHEP)
IF(IDHW(JDAHEP(1,JHEP)).EQ.449.AND.
& (ID2.LE.6.OR.(ID2.GE.115.AND.ID2.LE.120).OR.
& (ID2.GE.401.AND.ID2.LE.406).OR.ID2.EQ.13.OR.
& (ID2.GE.413.AND.ID2.LE.418).OR.ID2.EQ.449)) THEN
JC = JDAHEP(1,JHEP)
ELSE
C--modifcation for top ME correction (modified for additional photon radiation)
IF(IDHW(JHEP).EQ.6) THEN
JC = JDAHEP(1,JHEP)+1
ELSE
JC = JDAHEP(1,JHEP)+1
IF(IDHW(JDAHEP(1,JHEP)+2).EQ.13) JC=JC+1
ENDIF
ENDIF
ENDIF
ELSEIF (ID.EQ.6.OR.ID.EQ.12.OR.
& (ID.GE.209.AND.ID.LE.218).OR.
& (ID.GE.401.AND.ID.LE.424).OR.ID.EQ.449) THEN
C Wait for partner heavy quark to decay
C RETURN
C---N.B. MAY BE A PROBLEM HERE
GOTO 20
ELSE
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,JHEP)=IHEP
GOTO 20
ENDIF
ELSE
JC=JMOHEP(2,JC)
ENDIF
ENDIF
JC=JDAHEP(1,JC)
JD=JDAHEP(2,JC)
C---SEARCH IN CORRESPONDING JET
IF (JD.LT.JC) JD=JC
LHEP=0
DO 10 JHEP=JC,JD
IF (ISTHEP(JHEP).LT.145.OR.ISTHEP(JHEP).GT.152) GOTO 10
IF (JDAHEP(2,JHEP).EQ.IHEP) LHEP=JHEP
IF (JDAHEP(2,JHEP).NE.0) GOTO 10
C---JOIN IHEP AND JHEP
ID=IDHW(JHEP)
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,JHEP)=IHEP
GOTO 20
10 CONTINUE
IF (LHEP.NE.0) THEN
JMOHEP(2,IHEP)=LHEP
ELSE
C--search down the tree
DO 50 KHEP=JC,JD
IF(ISTHEP(KHEP).EQ.3.AND.ISTHEP(JDAHEP(1,KHEP)).EQ.155) THEN
JHEP = JDAHEP(1,KHEP)
BACK = .TRUE.
GOTO 51
ENDIF
50 CONTINUE
C---DIDN'T FIND PARTNER OF IHEP YET
C CALL HWWARN('HWBCON',52)
C GOTO 20
ENDIF
ENDIF
20 CONTINUE
C---BREAK COLOUR CONNECTIONS WITH PHOTONS
IHEP=1
30 IF (IHEP.LE.NHEP) THEN
IF (IDHW(IHEP).EQ.59 .AND. ISTHEP(IHEP).EQ.149) THEN
C BRW FIX 13/03/99
IF (JMOHEP(2,IHEP).NE.0) THEN
IF (JDAHEP(2,JMOHEP(2,IHEP)).EQ.IHEP)
& JDAHEP(2,JMOHEP(2,IHEP))=JDAHEP(2,IHEP)
ENDIF
C END FIX
IF (JDAHEP(2,IHEP).NE.0) THEN
IF (JMOHEP(2,JDAHEP(2,IHEP)).EQ.IHEP)
& JMOHEP(2,JDAHEP(2,IHEP))=JMOHEP(2,IHEP)
ENDIF
JMOHEP(2,IHEP)=IHEP
JDAHEP(2,IHEP)=IHEP
ENDIF
IHEP=IHEP+1
GOTO 30
ENDIF
999 RETURN
END
CDECK ID>, HWBDED.
*CMZ :- -22/04/96 13.54.08 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWBDED(IOPT)
C FILL MISSING AREA OF DALITZ PLOT WITH 3-JET AND 2-JET+GAMMA EVENTS
C IF (IOPT.EQ.1) SET UP EVENT RECORD
C IF (IOPT.EQ.2) CLEAN UP EVENT RECORD AFTER SHOWERING
C
C********MODIFIED 13/11/00 BY BRW TO ALLOW MULTIPLE APPLICATION IN
C*******SAME EVENT (FOR WW AND ZZ) N.B. NO CLEANUP CALLS FOR THESE!
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRGEN,HWUALF,HWUSQR,X(3),W,WMAX,WSUM,
& X1MIN,X1MAX,X2MIN,X2MAX,QSCALE,GAMFAC,GLUFAC,R(3,3),CS,SN,M(3),
& E(3),LAMBDA,A,B,C,PTSQ,EM,P1(5),P2(5),PVRT(4),EPS,MASDEP
INTEGER ID,ID3,EMIT,NOEMIT,IEVT,IHEP,JHEP,KHEP,ICMF,IOPT,IEDT(3),
& I,NDEL,LHEP,IP,JP,KP,IDUN
EXTERNAL HWBVMC,HWRGEN,HWUALF,HWUSQR
SAVE X,WMAX,P1,P2
SAVE WSUM, X1MIN,X1MAX,EMIT,ICMF,IEVT
DATA WSUM,WMAX,X1MIN,X1MAX,EMIT,ICMF,IEVT
& /0.994651D0,1.84096D0,0.0D0,0.773459D0,3*0.0D0/
LAMBDA(A,B,C)=(A**2+B**2+C**2-2*A*B-2*B*C-2*C*A)/(4*A)
IF (IOPT.EQ.1) THEN
C---FIND AN UNTREATED CMF
IF (IEVT.EQ.NEVHEP+NWGTS) RETURN
IEVT=0
ICMF=0
5 IDUN=ICMF
DO 10 IHEP=IDUN+1,NHEP
10 IF (ICMF.EQ.IDUN .AND. ISTHEP(IHEP).EQ.110 .AND.
& JDAHEP(2,IHEP).EQ.JDAHEP(1,IHEP)+1) ICMF=IHEP
IF (ICMF.EQ.IDUN) RETURN
EM=PHEP(5,ICMF)
IF (EM.LT.2*HWBVMC(1)) GOTO 5
C---ONLY APPLY THE CORRECTION TO HADRONIC DECAYS
IF (IDHW(JDAHEP(1,ICMF)).GT.12) GOTO 5
C---GENERATE X1,X2 ACCORDING TO 1/((1-X1)*(1-X2))
100 CONTINUE
C---CHOOSE X1
X(1)=1-(1-X1MAX)*((1-X1MIN)/(1-X1MAX))**HWRGEN(0)
C---CHOOSE X2
X2MIN=MAX(X(1),1-X(1))
X2MAX=(4*X(1)-3+2*DREAL( DCMPLX( X(1)**3+135*(X(1)-1)**3,
& 3*HWUSQR(3*(128*X(1)**4-368*X(1)**3+405*X(1)**2-216*X(1)+54))*
& (X(1)-1) )**(1./3) ))/3
IF (X2MAX.GE.ONE.OR.X2MIN.GE.ONE.OR.X2MAX.LE.X2MIN) GOTO 100
X(2)=1-(1-X2MAX)*((1-X2MIN)/(1-X2MAX))**HWRGEN(1)
C---CALCULATE WEIGHT
W=2 * LOG((1-X1MIN)/(1-X1MAX))*LOG((1-X2MIN)/(1-X2MAX)) *
& (X(1)**2+X(2)**2)
C---GENERATE UNWEIGHTED (X1,X2) PAIRS (EFFICIENCY IS ~50%)
IF (WMAX*HWRGEN(2).GT.W) GOTO 100
C---SYMMETRIZE X1,X2
X(3)=2-X(1)-X(2)
IF (HWRGEN(5).GT.HALF) THEN
X(1)=X(2)
X(2)=2-X(3)-X(1)
ENDIF
C---CHOOSE WHICH PARTON WILL EMIT
EMIT=1
IF (HWRGEN(6).LT.X(1)**2/(X(1)**2+X(2)**2)) EMIT=2
NOEMIT=3-EMIT
IHEP=JDAHEP( EMIT,ICMF)
JHEP=JDAHEP(NOEMIT,ICMF)
C---PREFACTORS FOR GAMMA AND GLUON CASES
QSCALE=HWUSQR((1-X(1))*(1-X(2))*(1-X(3)))*EM/X(NOEMIT)
ID=IDHW(JDAHEP(1,ICMF))
GAMFAC=ALPFAC*ALPHEM*ICHRG(ID)**2/(18*PIFAC)
GLUFAC=0
IF (QSCALE.GT.HWBVMC(13))
& GLUFAC=CFFAC/(2*PIFAC)*HWUALF(1,QSCALE)
C---SWITCH OFF PHOTON EMISSION IN W DECAYS (THE M-E DOES NOT FACTORIZE)
IF (ICHRG(IDHW(ICMF)).NE.0) GAMFAC=0
C---IN FRACTION FAC*WSUM OF EVENTS ADD A GAMMA/GLUON
IF (GAMFAC*WSUM .GT. HWRGEN(3)) THEN
ID3=59
ELSEIF (GLUFAC*WSUM .GT. HWRGEN(4)) THEN
ID3=13
ELSE
EMIT=0
GOTO 5
ENDIF
C---CHECK INFRA-RED CUT-OFF FOR GAMMA/GLUON
M(EMIT)=PHEP(5,IHEP)+VQCUT
M(NOEMIT)=PHEP(5,JHEP)+VQCUT
M(3)=HWBVMC(ID3)
E(1)=HALF*EM*(X(1)+(M(1)**2-M(2)**2-M(3)**2)/EM**2)
E(2)=HALF*EM*(X(2)+(M(2)**2-M(3)**2-M(1)**2)/EM**2)
E(3)=EM-E(1)-E(2)
PTSQ=-LAMBDA(E(NOEMIT)**2-M(NOEMIT)**2,E(3)**2-M(3)**2,
& E(EMIT)**2-M(EMIT)**2)
IF (PTSQ.LE.ZERO .OR.
$ E(1).LE.M(1).OR.E(2).LE.M(2).OR.E(3).LE.M(3)) THEN
EMIT=0
GOTO 5
ENDIF
C---CALCULATE MASS-DEPENDENT SUPRESSION
IF (MOD(IPROC,10).GT.0) THEN
EPS=(RMASS(ID)/EM)**2
MASDEP=X(1)**2+X(2)**2
$ -4*EPS*X(3)-2*EPS*((1-X(2))/(1-X(1))+(1-X(1))/(1-X(2)))
$ -4*EPS**2*X(3)**2/((1-X(1))*(1-X(2)))
IF (MASDEP.LT.HWRGEN(7)*(X(1)**2+X(2)**2)) THEN
EMIT=0
GOTO 5
ENDIF
ENDIF
C---STORE OLD MOMENTA
CALL HWVEQU(5,PHEP(1,JDAHEP(1,ICMF)),P1)
CALL HWVEQU(5,PHEP(1,JDAHEP(2,ICMF)),P2)
C---GET THE NON-EMITTING PARTON'S CMF DIRECTION
CALL HWULOF(PHEP(1,ICMF),PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWRAZM(ONE,CS,SN)
CALL HWUROT(PHEP(1,JHEP),CS,SN,R)
M(EMIT)=PHEP(5,IHEP)
M(NOEMIT)=PHEP(5,JHEP)
M(3)=RMASS(ID3)
KHEP=JDAHEP(2,ICMF)
LHEP=KHEP+1
IF (NHEP.GT.KHEP) THEN
C---MOVE UP REST OF EVENT
DO IP=NHEP,LHEP,-1
JP=IP+1
ISTHEP(JP)= ISTHEP(IP)
IDHW(JP)=IDHW(IP)
IDHEP(JP)=IDHEP(IP)
KP=JMOHEP(1,IP)
IF (KP.GT.KHEP) THEN
KP=KP+1
ELSE
IF (JDAHEP(1,KP).EQ.IP) JDAHEP(1,KP)=JP
IF (JDAHEP(2,KP).EQ.IP) JDAHEP(2,KP)=JP
ENDIF
JMOHEP(1,JP)=KP
KP=JMOHEP(2,IP)
IF (KP.GT.KHEP) KP=KP+1
JMOHEP(2,JP)=KP
KP=JDAHEP(1,IP)
IF (KP.GT.KHEP) KP=KP+1
JDAHEP(1,JP)=KP
KP=JDAHEP(2,IP)
IF (KP.GT.KHEP) KP=KP+1
JDAHEP(2,JP)=KP
CALL HWVEQU(5,PHEP(1,IP),PHEP(1,JP))
CALL HWVEQU(4,VHEP(1,IP),VHEP(1,JP))
ENDDO
ENDIF
C---REORDER ENTRIES: IHEP=EMITTER, JHEP=NON-EMITTER, KHEP=EMITTED
NHEP=NHEP+1
IF (IDHW(IHEP).LT.IDHW(JHEP)) THEN
IHEP=JDAHEP(1,ICMF)
JHEP=LHEP
ELSE
IHEP=LHEP
JHEP=JDAHEP(1,ICMF)
ENDIF
C---SET UP MOMENTA
PHEP(5,JHEP)=M(NOEMIT)
PHEP(5,IHEP)=M(EMIT)
PHEP(5,KHEP)=M(3)
PHEP(4,JHEP)=HALF*EM*(X(NOEMIT)+
& (M(NOEMIT)**2-M(EMIT)**2-M(3)**2)/EM**2)
PHEP(4,IHEP)=HALF*EM*(X(EMIT)+
& (M(EMIT)**2-M(NOEMIT)**2-M(3)**2)/EM**2)
PHEP(4,KHEP)=EM-PHEP(4,IHEP)-PHEP(4,JHEP)
PHEP(3,JHEP)=HWUSQR(PHEP(4,JHEP)**2-PHEP(5,JHEP)**2)
PHEP(3,IHEP)=( (PHEP(4,KHEP)**2-PHEP(5,KHEP)**2) -
& (PHEP(4,IHEP)**2-PHEP(5,IHEP)**2) -
& (PHEP(3,JHEP)**2) )*HALF/PHEP(3,JHEP)
PHEP(3,KHEP)=-PHEP(3,IHEP)-PHEP(3,JHEP)
PHEP(2,JHEP)=0
PHEP(2,IHEP)=0
PHEP(2,KHEP)=0
PHEP(1,JHEP)=0
PHEP(1,IHEP)=HWUSQR(PHEP(4,IHEP)**2-
& PHEP(3,IHEP)**2-PHEP(5,IHEP)**2)
PHEP(1,KHEP)=-PHEP(1,IHEP)
C---ORIENT IN CMF, THEN BOOST TO LAB
CALL HWUROB(R,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWUROB(R,PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWUROB(R,PHEP(1,KHEP),PHEP(1,KHEP))
CALL HWULOB(PHEP(1,ICMF),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULOB(PHEP(1,ICMF),PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWULOB(PHEP(1,ICMF),PHEP(1,KHEP),PHEP(1,KHEP))
C---CALCULATE PRODUCTION VERTICES
CALL HWVZRO(4,VHEP(1,JHEP))
CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,KHEP),PVRT)
CALL HWUDKL(ID,PVRT,VHEP(1,KHEP))
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,IHEP))
C---REORDER ENTRIES: IHEP=QUARK, JHEP=ANTI-QUARK, KHEP=EMITTED
IF (IHEP.EQ.LHEP) THEN
IHEP=JHEP
JHEP=LHEP
ENDIF
C---STATUS, ID AND POINTERS
ISTHEP(JHEP)=114
IDHW(JHEP)=IDHW(KHEP)
IDHEP(JHEP)=IDHEP(KHEP)
IDHW(KHEP)=ID3
IDHEP(KHEP)=IDPDG(ID3)
JDAHEP(2,ICMF)=JHEP
JMOHEP(1,JHEP)=ICMF
JDAHEP(1,JHEP)=0
C---COLOUR CONNECTIONS AND GLUON POLARIZATION
JMOHEP(2,JHEP)=IHEP
JDAHEP(2,IHEP)=JHEP
IF (ID3.EQ.13) THEN
JMOHEP(2,IHEP)=KHEP
JMOHEP(2,KHEP)=JHEP
JDAHEP(2,JHEP)=KHEP
JDAHEP(2,KHEP)=IHEP
GPOLN=((1-X(1))**2+(1-X(2))**2)/(4*(1-X(3)))
GPOLN=1/(1+GPOLN)
ELSE
JMOHEP(2,IHEP)=JHEP
JMOHEP(2,KHEP)=KHEP
JDAHEP(2,JHEP)=IHEP
JDAHEP(2,KHEP)=KHEP
ENDIF
IEVT=NEVHEP+NWGTS
GOTO 5
ELSEIF (IOPT.EQ.2) THEN
C---MAKE THREE-JET EVENTS FROM THE `DEAD-ZONE' LOOK LIKE TWO-JET EVENTS
IF (EMIT.EQ.0.OR.IEVT.NE.NEVHEP+NWGTS) THEN
RETURN
ELSEIF (EMIT.EQ.1) THEN
IHEP=JDAHEP(1,JDAHEP(1,ICMF)+1)
JHEP=JDAHEP(1,JDAHEP(1,ICMF))
ELSE
IHEP=JDAHEP(1,JDAHEP(2,ICMF))
JHEP=JDAHEP(1,JDAHEP(1,ICMF)+1)
JDAHEP(1,JDAHEP(2,ICMF))=JHEP
IDHW(JHEP)=IDHW(IHEP)
IF (ISTHEP(IHEP+1).EQ.100 .AND. ISTHEP(JHEP+1).EQ.100)
& CALL HWVEQU(5,PHEP(1,IHEP+1),PHEP(1,JHEP+1))
ENDIF
JMOHEP(2,JDAHEP(1,ICMF))=JDAHEP(2,ICMF)
JDAHEP(2,JDAHEP(1,ICMF))=JDAHEP(2,ICMF)
JMOHEP(2,JDAHEP(2,ICMF))=JDAHEP(1,ICMF)
JDAHEP(2,JDAHEP(2,ICMF))=JDAHEP(1,ICMF)
CALL HWVEQU(5,P1,PHEP(1,JDAHEP(1,ICMF)))
CALL HWVEQU(5,P2,PHEP(1,JDAHEP(2,ICMF)))
CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWUMAS(PHEP(1,JHEP))
JDAHEP(2,JHEP)=JDAHEP(2,IHEP)
IEDT(1)=JDAHEP(1,ICMF)+1
IEDT(2)=IHEP
IEDT(3)=IHEP+1
NDEL=3
IF (ISTHEP(IHEP+1).NE.100) NDEL=2
CALL HWUEDT(NDEL,IEDT)
DO 410 I=1,2
IHEP=JDAHEP(1,JDAHEP(I,ICMF))
JMOHEP(1,IHEP)=JDAHEP(I,ICMF)
IF (ISTHEP(IHEP+1).EQ.100) THEN
JMOHEP(1,IHEP+1)=JMOHEP(1,IHEP)
JMOHEP(2,IHEP+1)=JMOHEP(2,JMOHEP(1,IHEP))
ENDIF
DO 400 JHEP=JDAHEP(1,IHEP),JDAHEP(2,IHEP)
JMOHEP(1,JHEP)=IHEP
400 CONTINUE
CALL HWVZRO(4,VHEP(1,JDAHEP(I,ICMF)))
CALL HWVZRO(4,VHEP(1,IHEP))
IF (ISTHEP(IHEP+1).EQ.100) CALL HWVZRO(4,VHEP(1,IHEP+1))
410 CONTINUE
EMIT=0
IEVT=0
ELSE
CALL HWWARN('HWBDED',500)
ENDIF
END
CDECK ID>, HWBDIS.
*CMZ :- -17/05/94 09.33.08 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWBDIS(IOPT)
C-----------------------------------------------------------------------
C FILL MISSING AREA OF DIS PHASE-SPACE WITH 2+1-JET EVENTS
C IF (IOPT.EQ.1) SET UP EVENT RECORD
C IF (IOPT.EQ.2) CLEAN UP EVENT RECORD AFTER SHOWERING
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWBVMC,HWUALF,HWULDO,P1(5),P2(5),P3(5),
& PCMF(5),L(5),R(3,3),Q,XBJ,RN,XPMIN,XPMAX,XP,ZPMIN,ZPMAX,ZP,FAC,
& X1,X2,XTSQ,XT,PTSQ,SIN1,SIN2,W1,W2,CFAC,PDFOLD(13),PDFNEW(13),
& PHI,SCALE,Q1(5),Q2(5),DIR1,DIR2,DIR,PM(5),POLD,PNEW,COMINT,
& BGFINT,COMWGT,C1,C2,CM,B1,B2,BM,PVRT(4)
INTEGER IOPT,EMIT,ICMF,IHEP,JHEP,IIN,IOUT,ILEP,IHAD,ID,IDNEW,
& IEDT(3),NDEL,NTRY,ITEMP
LOGICAL BGF
EXTERNAL HWRGEN,HWBVMC,HWUALF,HWULDO
SAVE BGF,IIN,IOUT,ICMF,ID,Q1,Q2,XP,XBJ
SAVE EMIT,COMINT,BGFINT,COMWGT,C1,C2,CM,B1,B2,BM
DATA EMIT,COMINT,BGFINT,COMWGT/0D0,3.9827D0,1.2462D0,0.3D0/
DATA C1,C2,CM,B1,B2,BM/0.56D0,0.20D0,10D0,0.667D0,0.167D0,3D0/
IF (IERROR.NE.0) RETURN
IF (IOPT.EQ.1) THEN
C---FIND AN UNTREATED CMF
IF (EMIT.EQ.NEVHEP+NWGTS) RETURN
ICMF=0
DO 10 IHEP=1,NHEP
10 IF (ICMF.EQ.0 .AND. ISTHEP(IHEP).EQ.110 .AND.
& JDAHEP(2,IHEP).EQ.JDAHEP(1,IHEP)+1) ICMF=IHEP
IF (ICMF.EQ.0) RETURN
IIN=JMOHEP(2,ICMF)
IOUT=JDAHEP(2,ICMF)
ILEP=JMOHEP(1,ICMF)
CALL HWVEQU(5,PHEP(1,IIN),P1)
CALL HWVEQU(5,PHEP(1,IOUT),P2)
CALL HWVEQU(5,PHEP(1,ILEP),L)
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
ID=IDHW(IIN)
C---STORE OLD MOMENTA
CALL HWVEQU(5,P1,Q1)
CALL HWVEQU(5,P2,Q2)
C---BOOST AND ROTATE THE MOMENTA TO THE BREIT FRAME
CALL HWVDIF(4,P2,P1,PCMF)
CALL HWUMAS(PCMF)
CALL HWVEQU(5,PHEP(1,IHAD),PM)
Q=-PCMF(5)
XBJ=HALF*Q**2/HWULDO(PM,PCMF)
CALL HWVSCA(4,HALF/XBJ,PCMF,PCMF)
CALL HWVSUM(4,PM,PCMF,PCMF)
CALL HWUMAS(PCMF)
CALL HWULOF(PCMF,L,L)
CALL HWULOF(PCMF,PM,PM)
CALL HWUROT(PM,ONE,ZERO,R)
CALL HWUROF(R,L,L)
PHI=ATAN2(L(2),L(1))
CALL HWUROT(PM,COS(PHI),SIN(PHI),R)
C---CHOOSE THE HADRONIC-PLANE CONFIGURATION, XP,ZP
IF (HWRGEN(0).LT.COMWGT) THEN
C-----CONSIDER GENERATING A QCD COMPTON EVENT
BGF=.FALSE.
P3(5)=RMASS(13)
100 RN=HWRGEN(1)
IF (RN.LT.C1) THEN
ZP=HWRGEN(2)
XPMAX=MIN(ZP,1-ZP)
XP=HWRGEN(3)*XPMAX
FAC=1/C1*2*XPMAX/((1-XP)*(1-ZP))*
$ (1+(1-XP-ZP+2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP)
IF (HWRGEN(4).LT.HALF) THEN
ZPMAX=ZP
ZP=XP
XP=ZPMAX
ENDIF
ELSEIF (RN.LT.C1+C2) THEN
XPMAX=0.83
XP=XPMAX*HWRGEN(2)
ZPMIN=MAX(XP,1-XP)
ZPMAX=1-2./3.*XP*(1+DREAL( DCMPLX(10-45*XP+18*XP**2,3*SQRT(
$ 3*(9+66*XP-93*XP**2+12*XP**3-8*XP**4+24*XP**5-8*XP**6)))
$ **(1./3.) * DCMPLX(0.5D0,0.86602540378444D0) ))
ZP=1-((1-ZPMIN)/(1-ZPMAX))**HWRGEN(4)*(1-ZPMAX)
FAC=1/C2*XPMAX*LOG((1-ZPMIN)/(1-ZPMAX))/(1-XP)*
$ (1+(1-XP-ZP+2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP)
ELSE
ZPMAX=0.85
ZP=ZPMAX*HWRGEN(2)
XPMIN=MAX(ZP,1-ZP)
XPMAX=(1+4*ZP*(1-ZP))/(1+6*ZP*(1-ZP))
XP=1-((1-XPMIN)/(1-XPMAX))**HWRGEN(4)*(1-XPMAX)
FAC=1/(1-C1-C2)*ZPMAX*LOG((1-XPMIN)/(1-XPMAX))/(1-ZP)*
$ (1+(1-XP-ZP+2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP)
ENDIF
XPMAX=(1+4*ZP*(1-ZP))/(1+6*ZP*(1-ZP))
ZPMAX=1-2./3.*XP*(1+DREAL( DCMPLX(10-45*XP+18*XP**2,3*SQRT(
$ 3*(9+66*XP-93*XP**2+12*XP**3-8*XP**4+24*XP**5-8*XP**6)))
$ **(1./3.) * DCMPLX(0.5D0,0.86602540378444D0) ))
IF (XP.GT.XPMAX.OR.ZP.GT.ZPMAX.OR.CM*HWRGEN(4).GT.FAC)
$ GOTO 100
ELSE
C-----CONSIDER GENERATING A BGF EVENT
BGF=.TRUE.
P3(5)=P1(5)
P1(5)=RMASS(13)
110 RN=HWRGEN(1)
IF (RN.LT.B1) THEN
ZP=HWRGEN(2)
XPMAX=MIN(ZP,1-ZP)
XP=HWRGEN(3)*XPMAX
FAC=1/B1*2*XPMAX/(1-ZP)*
$ (( XP+ZP-2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP
$ +(1-XP-ZP+2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP)
IF (HWRGEN(4).LT.HALF) XP=1-XP
ELSEIF (RN.LT.B1+B2) THEN
XPMAX=0.83
XP=XPMAX*HWRGEN(2)
ZPMIN=MAX(XP,1-XP)
ZPMAX=1-2./3.*XP*(1+DREAL( DCMPLX(10-45*XP+18*XP**2,3*SQRT(
$ 3*(9+66*XP-93*XP**2+12*XP**3-8*XP**4+24*XP**5-8*XP**6)))
$ **(1./3.) * DCMPLX(0.5D0,0.86602540378444D0) ))
ZP=1-((1-ZPMIN)/(1-ZPMAX))**HWRGEN(4)*(1-ZPMAX)
FAC=1/B2*XPMAX*LOG((1-ZPMIN)/(1-ZPMAX))*
$ (( XP+ZP-2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP
$ +(1-XP-ZP+2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP)
ELSE
XPMAX=0.83
XP=XPMAX*HWRGEN(2)
ZPMAX=MIN(XP,1-XP)
ZPMIN=2./3.*XP*(1+DREAL( DCMPLX(10-45*XP+18*XP**2,3*SQRT(
$ 3*(9+66*XP-93*XP**2+12*XP**3-8*XP**4+24*XP**5-8*XP**6)))
$ **(1./3.) * DCMPLX(0.5D0,0.86602540378444D0) ))
ZP=(ZPMAX-ZPMIN)*HWRGEN(4)+ZPMIN
FAC=1/(1-B1-B2)*XPMAX*(ZPMAX-ZPMIN)/(1-ZP)*
$ (( XP+ZP-2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP
$ +(1-XP-ZP+2*XP*ZP)**2+2*(1-XP)*(1-ZP)*XP*ZP)
ENDIF
ZPMAX=1-2./3.*XP*(1+DREAL( DCMPLX(10-45*XP+18*XP**2,3*SQRT(
$ 3*(9+66*XP-93*XP**2+12*XP**3-8*XP**4+24*XP**5-8*XP**6)))
$ **(1./3.) * DCMPLX(0.5D0,0.86602540378444D0) ))
IF (ZP.GT.ZPMAX.OR.ZP.LT.ONE-ZPMAX.OR.BM*HWRGEN(4).GT.FAC)
$ GOTO 110
ENDIF
C---CALCULATE THE ADDITIONAL FACTORS IN THE WEIGHT
IF (BGF) THEN
IDNEW=13
CFAC=1./2
FAC=BGFINT/(1-COMWGT)
ELSE
IDNEW=ID
CFAC=4./3
FAC=COMINT/COMWGT
ENDIF
SCALE=Q*SQRT((1-XP)*(1-ZP)*ZP/XP+1)
ITEMP=ISTAT
ISTAT=7
CALL HWSFUN(XBJ,Q,IDHW(IHAD),NSTRU,PDFOLD,2)
ISTAT=ITEMP
IF (PDFOLD(ID).LE.ZERO) THEN
CALL HWWARN('HWBDIS',100)
GOTO 999
ENDIF
IF (XP.GT.XBJ) THEN
CALL HWSFUN(XBJ/XP,SCALE,IDHW(IHAD),NSTRU,PDFNEW,2)
FAC=CFAC/(2*PIFAC) * HWUALF(1,SCALE) * FAC *
$ PDFNEW(IDNEW)/PDFOLD(ID)
ELSE
FAC=0
ENDIF
C---FOR PHOTON BEAMS, INCLUDE DIRECT PHOTON COUPLING
IF (IDHW(IHAD).EQ.59) THEN
ZPMIN=2./3.*XBJ*(1+DREAL( DCMPLX(10-45*XBJ+18*XBJ**2,3*SQRT(
$ 3*(9+66*XBJ-93*XBJ**2+12*XBJ**3-8*XBJ**4+24*XBJ**5
$ -8*XBJ**6)))**(1./3.)*DCMPLX(0.5D0,0.86602540378444D0) ))
ZPMAX=1-ZPMIN
DIR1=(XBJ**2+(1-XBJ)**2)*(LOG(ZPMAX/ZPMIN)-(ZPMAX-ZPMIN))
DIR2=4*XBJ*(1-XBJ)*(ZPMAX-ZPMIN)
DIR=QFCH(MOD(ID-1,6)+1)**2*ALPHEM/(2*PIFAC*PDFOLD(ID))*XBJ
$ *(DIR1+DIR2)
ELSE
DIR=0
ENDIF
C---DECIDE WHETHER TO MAKE AN EVENT HERE
IF (HWRGEN(4).GT.FAC+DIR) RETURN
C---FOR DIRECT COUPLING, CHOOSE ZP VALUE
IF ((FAC+DIR)*HWRGEN(8).GT.FAC) THEN
IF ((DIR1+DIR2)*HWRGEN(9).LT.DIR1) THEN
NTRY=0
120 NTRY=NTRY+2
ZP=1-(ZPMAX/ZPMIN)**HWRGEN(NTRY+1)*ZPMIN
IF ((ZPMIN**2+(1-ZPMIN)**2)*HWRGEN(NTRY).GT.ZP**2+(1-ZP)**2)
$ GOTO 120
ELSE
ZP=SQRT((ZPMAX-ZPMIN)*HWRGEN(10)+ZPMIN**2)
ENDIF
XP=XBJ
BGF=.TRUE.
P3(5)=P2(5)
P1(5)=0
ENDIF
X1=1- ZP /XP
X2=1-(1-ZP)/XP
XTSQ=4*(1-XP)*(1-ZP)*ZP/XP
XT=SQRT(XTSQ)
SIN1=XT/SQRT(X1**2+XTSQ)
SIN2=XT/SQRT(X2**2+XTSQ)
C---CHOOSE THE AZIMUTH BETWEEN THE TWO PLANES
IF (BGF) THEN
W1=XP**2*(X1**2+1.5*XTSQ)
ELSE
W1=1
ENDIF
W2=XP**2*(X2**2+1.5*XTSQ)
IF (HWRGEN(5)*(W1+W2).GT.W2) THEN
IF (BGF) THEN
C-----WEIGHTED BY (1+SIN1*COS(PHI))**2
200 PHI=(2*HWRGEN(6)-1)*PIFAC
IF (HWRGEN(7)*(1+SIN1)**2.GT.(1+SIN1*COS(PHI))**2) GOTO 200
ELSE
C-----UNIFORMLY
PHI=(2*HWRGEN(6)-1)*PIFAC
ENDIF
ELSE
C-----WEIGHTED BY (1-SIN2*COS(PHI))**2
210 PHI=(2*HWRGEN(6)-1)*PIFAC
IF (HWRGEN(7)*(1+SIN2)**2.GT.(1-SIN2*COS(PHI))**2) GOTO 210
ENDIF
C---RECONSTRUCT MOMENTA AND BOOST BACK TO LAB
P1(1)=0
P1(2)=0
P1(3)=HALF*Q/XP
P1(4)=SQRT(P1(3)**2+P1(5)**2)
PTSQ=((ZP*Q*(P1(4)+P1(3)-Q)-P2(5)**2)*(P1(4)-P1(3)+(1-ZP)*Q)
$ -P3(5)**2*ZP*Q)/(P1(4)-P1(3)+Q)
C---CHECK INFRARED CUTOFF FOR THIS PARTON TYPE
IF (PTSQ.LT.MAX(HWBVMC(ID),HWBVMC(IDHW(IOUT)))**2) RETURN
P2(1)=SQRT(PTSQ)*COS(PHI)
P2(2)=SQRT(PTSQ)*SIN(PHI)
P2(3)=-0.5*(ZP*Q-(PTSQ+P2(5)**2)/(ZP*Q))
P2(4)= 0.5*(ZP*Q+(PTSQ+P2(5)**2)/(ZP*Q))
P3(1)=P1(1)-P2(1)
P3(2)=P1(2)-P2(2)
P3(3)=P1(3)-P2(3)-Q
P3(4)=P1(4)-P2(4)
CALL HWUROB(R,P1,P1)
CALL HWUROB(R,P2,P2)
CALL HWUROB(R,P3,P3)
CALL HWULOB(PCMF,P1,P1)
CALL HWULOB(PCMF,P2,P2)
CALL HWULOB(PCMF,P3,P3)
C---SPECIAL CASE FOR DIRECT PHOTON - COPY THE EXACT BEAM MOMENTUM
C---SHARE THE MISMATCH EQUALLY BETWEEN THE OUTGOING PARTONS
C---AND PUT THEM BACK ON SHELL
IF (XP.EQ.XBJ) THEN
CALL HWVDIF(4,PHEP(1,IHAD),P1,PM)
CALL HWVSCA(4,HALF,PM,PM)
CALL HWVSUM(4,PM,P2,P2)
CALL HWVSUM(4,PM,P3,P3)
CALL HWUMAS(P2)
CALL HWUMAS(P3)
CALL HWVEQU(5,PHEP(1,IHAD),P1)
CALL HWVSUM(4,P2,P3,PCMF)
CALL HWUMAS(PCMF)
POLD=HWULDO(P2,PCMF)**2/PCMF(5)**2-SIGN(P2(5)**2,P2(5))
PNEW=PCMF(5)**2/4-RMASS(ID)**2
IF (PCMF(5).LE.ZERO.OR.POLD.LE.ZERO.OR.PNEW.LE.ZERO) RETURN
CALL HWVSCA(4,SQRT(PNEW/POLD),P2,P2)
CALL HWVSCA(4,HALF-HWULDO(P2,PCMF)/PCMF(5)**2,PCMF,PM)
CALL HWVSUM(4,PM,P2,P2)
CALL HWUMAS(P2)
CALL HWVDIF(4,PCMF,P2,P3)
CALL HWUMAS(P3)
ENDIF
NHEP=NHEP+1
CALL HWVEQU(5,P1,PHEP(1,IIN))
IF (BGF.AND.ID.GT.6.OR..NOT.BGF.AND.ID.LT.7) THEN
CALL HWVEQU(5,P2,PHEP(1,IOUT))
CALL HWVEQU(5,P3,PHEP(1,NHEP))
ELSE
CALL HWVEQU(5,P3,PHEP(1,IOUT))
CALL HWVEQU(5,P2,PHEP(1,NHEP))
ENDIF
CALL HWVSUM(4,PHEP(1,ILEP),PHEP(1,IIN),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
C Decide which quark radiated and assign production vertices
IF (BGF) THEN
C Boson-Gluon fusion case
IF (1-ZP.LT.HWRGEN(0)) THEN
C Gluon splitting to quark
CALL HWVZRO(4,VHEP(1,NHEP-1))
CALL HWVDIF(4,PHEP(1,NHEP-4),PHEP(1,NHEP),PVRT)
CALL HWUDKL(ID,PVRT,VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-4))
ELSE
C Gluon splitting to antiquark
CALL HWVZRO(4,VHEP(1,NHEP))
CALL HWVDIF(4,PHEP(1,NHEP-4),PHEP(1,NHEP-1),PVRT)
CALL HWUDKL(ID,PVRT,VHEP(1,NHEP-1))
CALL HWVEQU(4,VHEP(1,NHEP-1),VHEP(1,NHEP-4))
ENDIF
ELSE
C QCD Compton case
IF (1.LT.HWRGEN(0)*(1+(1-XP-ZP)**2+6*XP*(1-XP)*ZP*(1-ZP)))THEN
C Incoming quark radiated the gluon
CALL HWVZRO(4,VHEP(1,NHEP-1))
CALL HWVDIF(4,PHEP(1,NHEP-4),PHEP(1,NHEP),PVRT)
CALL HWUDKL(ID,PVRT,VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-4))
ELSE
C Outgoing quark radiated the gluon
CALL HWVZRO(4,VHEP(1,NHEP-4))
CALL HWVSUM(4,PHEP(1,NHEP-1),PHEP(1,NHEP),PVRT)
CALL HWUDKL(ID,PVRT,VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-1))
ENDIF
ENDIF
C---STATUS, ID AND POINTERS
ISTHEP(NHEP)=114
IF (BGF) THEN
IF (XP.EQ.XBJ) THEN
IDHW(IIN)=59
IDHEP(IIN)=IDPDG(59)
ELSE
IDHW(IIN)=13
IDHEP(IIN)=IDPDG(13)
ENDIF
IF (ID.LT.7) THEN
IDHW(NHEP)=IDHW(IOUT)
IDHEP(NHEP)=IDHEP(IOUT)
IDHW(IOUT)=MOD(ID,6)+6
IDHEP(IOUT)=IDPDG(IDHW(IOUT))
ELSE
IDHW(NHEP)=MOD(ID,6)
IDHEP(NHEP)=IDPDG(IDHW(NHEP))
ENDIF
ELSEIF (ID.LT.7) THEN
IDHW(NHEP)=13
IDHEP(NHEP)=IDPDG(13)
ELSE
IDHW(NHEP)=IDHW(IOUT)
IDHEP(NHEP)=IDHEP(IOUT)
IDHW(IOUT)=13
IDHEP(IOUT)=IDPDG(13)
ENDIF
JDAHEP(2,ICMF)=NHEP
JMOHEP(1,NHEP)=ICMF
C---COLOUR CONNECTIONS
IF (XP.EQ.XBJ) THEN
JMOHEP(2,IIN)=IIN
JDAHEP(2,IIN)=IIN
JMOHEP(2,IOUT)=NHEP
JDAHEP(2,IOUT)=NHEP
JMOHEP(2,NHEP)=IOUT
JDAHEP(2,NHEP)=IOUT
ELSE
JDAHEP(2,IIN)=NHEP
JDAHEP(2,NHEP)=IOUT
JMOHEP(2,IOUT)=NHEP
JMOHEP(2,NHEP)=IIN
ENDIF
C---FACTORISATION SCALE
EMSCA=SCALE
EMIT=NEVHEP+NWGTS
ELSEIF (IOPT.EQ.2) THEN
C---MAKE TWO-JET EVENTS LOOK LIKE ONE-JET EVENTS
IF (EMIT.NE.NEVHEP+NWGTS .OR. XP.EQ.XBJ) RETURN
IF (.NOT.BGF) THEN
CALL HWVEQU(5,Q1,PHEP(1,IIN))
CALL HWVEQU(5,Q2,PHEP(1,IOUT))
JMOHEP(2,IIN)=IOUT
JDAHEP(2,IIN)=IOUT
JMOHEP(2,IOUT)=IIN
JDAHEP(2,IOUT)=IIN
JDAHEP(2,ICMF)=IOUT
IHEP=JDAHEP(1,IOUT)
JHEP=JDAHEP(1,IOUT+1)
CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,JHEP),PHEP(1,IHEP))
CALL HWUMAS(PHEP(1,IHEP))
JDAHEP(2,IHEP)=JDAHEP(2,JHEP)
IEDT(1)=IOUT+1
IEDT(2)=JHEP
IEDT(3)=JHEP+1
NDEL=3
IF (ISTHEP(JHEP+1).NE.100) NDEL=2
IHEP=JDAHEP(1,IOUT)
JMOHEP(1,IHEP)=IOUT
IF (ISTHEP(IHEP+1).EQ.100) THEN
JMOHEP(1,IHEP+1)=IOUT
JMOHEP(2,IHEP+1)=IIN
ENDIF
DO 300 JHEP=JDAHEP(1,IHEP),JDAHEP(2,IHEP)
JMOHEP(1,JHEP)=IHEP
300 CONTINUE
IF (IDHW(IOUT).EQ.13) IDHW(IOUT)=IDHW(IOUT+1)
IDHEP(IOUT)=IDPDG(IDHW(IOUT))
IDHW(IHEP)=IDHW(IOUT)
CALL HWUEDT(NDEL,IEDT)
ELSEIF (ID.LT.7) THEN
CALL HWVEQU(5,Q1,PHEP(1,IIN))
CALL HWVEQU(5,Q2,PHEP(1,IOUT+1))
JMOHEP(2,IIN)=IOUT+1
JDAHEP(2,IIN)=IOUT+1
JMOHEP(2,IOUT+1)=IIN
JDAHEP(2,IOUT+1)=IIN
JDAHEP(2,ICMF)=IOUT+1
IHEP=JDAHEP(1,IIN)
JHEP=JDAHEP(1,IOUT)
CALL HWVDIF(4,PHEP(1,IHEP),PHEP(1,JHEP),PHEP(1,IHEP))
CALL HWUMAS(PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,ICMF),PHEP(1,JHEP),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
CALL HWUEMV(JDAHEP(2,JHEP)-JDAHEP(1,JHEP)+1,
$ JDAHEP(1,JHEP),JDAHEP(2,IHEP))
JHEP=JDAHEP(1,IOUT)
JDAHEP(2,IHEP)=JDAHEP(2,JHEP)
IEDT(1)=IOUT
IEDT(2)=JHEP
IEDT(3)=JHEP+1
NDEL=3
IF (ISTHEP(JHEP+1).NE.100) NDEL=2
CALL HWUEDT(NDEL,IEDT)
IHEP=JDAHEP(1,IIN)
DO 400 JHEP=JDAHEP(1,IHEP),JDAHEP(2,IHEP)
JMOHEP(1,JHEP)=IHEP
400 CONTINUE
IDHW(IIN)=ID
IDHEP(IIN)=IDPDG(ID)
IDHW(IHEP)=ID
ELSE
CALL HWVEQU(5,Q1,PHEP(1,IIN))
CALL HWVEQU(5,Q2,PHEP(1,IOUT))
JMOHEP(2,IIN)=IOUT
JDAHEP(2,IIN)=IOUT
JMOHEP(2,IOUT)=IIN
JDAHEP(2,IOUT)=IIN
JDAHEP(2,ICMF)=IOUT
IHEP=JDAHEP(1,IIN)
JHEP=JDAHEP(1,IOUT+1)
CALL HWVDIF(4,PHEP(1,IHEP),PHEP(1,JHEP),PHEP(1,IHEP))
CALL HWUMAS(PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,ICMF),PHEP(1,JHEP),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
CALL HWUEMV(JDAHEP(2,JHEP)-JDAHEP(1,JHEP)+1,
$ JDAHEP(1,JHEP),JDAHEP(1,IHEP)-1)
JHEP=JDAHEP(1,IOUT+1)
JDAHEP(1,IHEP)=JDAHEP(1,JHEP)
IEDT(1)=IOUT+1
IEDT(2)=JHEP
IEDT(3)=JHEP+1
NDEL=3
IF (ISTHEP(JHEP+1).NE.100.OR.JHEP.EQ.NHEP) NDEL=2
CALL HWUEDT(NDEL,IEDT)
IHEP=JDAHEP(1,IIN)
DO 500 JHEP=JDAHEP(1,IHEP),JDAHEP(2,IHEP)
JMOHEP(1,JHEP)=IHEP
500 CONTINUE
IDHW(IIN)=ID
IDHEP(IIN)=IDPDG(ID)
IDHW(IHEP)=ID
ENDIF
CALL HWVZRO(4,VHEP(1,IIN))
CALL HWVZRO(4,VHEP(1,JDAHEP(1,IIN)))
IF (ISTHEP(JDAHEP(1,IIN)+1).EQ.100)
$ CALL HWVZRO(4,VHEP(1,JDAHEP(1,IIN)+1))
CALL HWVZRO(4,VHEP(1,IOUT))
CALL HWVZRO(4,VHEP(1,JDAHEP(1,IOUT)))
IF (ISTHEP(JDAHEP(1,IOUT)+1).EQ.100)
$ CALL HWVZRO(4,VHEP(1,JDAHEP(1,IOUT)+1))
EMIT=0
ELSE
CALL HWWARN('HWBDIS',500)
ENDIF
999 RETURN
END
CDECK ID>, HWBDYP.
*CMZ :- -26/10/99 17.46.56 by Mike Seymour
*-- Author : Gennaro Corcella
C-----------------------------------------------------------------------
SUBROUTINE HWBDYP(IOPT)
C MATRIX ELEMENT CORRECTIONS TO DRELL-YAN PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRGEN,HWUALF,HWUSQR,PMODK,AZ,CZ,
& T,U,S,EM,TMIN,TMAX,PMOD2,GLUFAC,SMIN,SMAX,SZ,TEST,
& JAC,M(3),W1,W,PMOD3,SCAPR,CPHI,SPHI,SCALE,XI1,XI2,
& PDFOLD1(13),PDFOLD2(13),PDFNEW1(13),PDFNEW2(13),ETA1,ETA2,Y,
& COMWGT1,COMWGT2,WW,COS3,MODP,RN,BETA1,SIN3,R3(3,3),CTH,STH,M1,
& M2,M3,GAMMA1,R5(3,3),CW,SW,R4(3,3),SCALE1,X1,X2,X3,MM,
& PHAD1(5),PHAD2(5),P1(5),P2(5),P3(5),P4(5),PF(5),PV(5),PK(5),
& PR(5),PNE(5),PE(5),PP1(5),PP2(5),PZ(5),PS(5),PD(5),P2N(5),
& PBOS(5),PLAB(5),PTOT(5),P3N(5),SVNTN
LOGICAL GLUIN,GP
INTEGER EMIT,NOEMIT,IHEP,JHEP,KHEP,ICMF,IOPT,CHEP,
& ID2,ID1,K,ID4,ID5,IDBOS,IHAD1,IHAD2,NTMP
EXTERNAL HWBVMC,HWRGEN,HWUALF,HWUSQR
SAVE PS,PF,ICMF,ID4,ID5
SAVE EMIT,NTMP
DATA EMIT,NTMP/2*0/
IF (IOPT.EQ.1) THEN
EMIT=0
NTMP=0
C-----CHOOSE WEIGHTS
COMWGT1=0.1
COMWGT2=0.55
C---FIND AN UNTREATED CMF
ICMF=0
DO 10 IHEP=1,NHEP
10 IF (ICMF.EQ.0 .AND. ISTHEP(IHEP).EQ.110.AND.
& JDAHEP(2,IHEP).EQ.JDAHEP(1,IHEP)+1) ICMF=IHEP
IF (ICMF.EQ.0) RETURN
EM=PHEP(5,ICMF)
C-----SET THE VECTOR BOSON RAPIDITY
Y=HALF*LOG((PHEP(4,ICMF)+PHEP(3,ICMF))/
& (PHEP(4,ICMF)-PHEP(3,ICMF)))
C------SET PARTICLE IDENTIES
c------ID1=QUARK, ID2=ANTIQUARK, IDBOS=VECTOR BOSON, ID4-5 BOSON DECAY
IDBOS=IDHW(ICMF)
ID1=IDHW(JMOHEP(1,ICMF))
ID2=IDHW(JMOHEP(2,ICMF))
ID4=IDHW(JDAHEP(1,ICMF))
ID5=IDHW(JDAHEP(2,ICMF))
M1=RMASS(ID1)
M2=RMASS(ID2)
M3=RMASS(13)
C---STORE OLD MOMENTA
C------VECTOR BOSON MOMENTUM
CALL HWVEQU(5,PHEP(1,ICMF),PBOS)
C----QUARK MOMENTUM
CALL HWVEQU(5,PHEP(1,JMOHEP(1,ICMF)),P1)
C------ANTIQUARK MOMENTUM
CALL HWVEQU(5,PHEP(1,JMOHEP(2,ICMF)),P2)
C-------VECTOR DECAY (LEPTON) PRODUCT MOMENTA
CALL HWVEQU(5,PHEP(1,JDAHEP(1,ICMF)),P3)
CALL HWVEQU(5,PHEP(1,JDAHEP(2,ICMF)),P4)
C------LEPTON MOMENTA IN THE BOSON REST FRAME
CALL HWULOF(PHEP(1,ICMF),P2,P2N)
CALL HWULOF(PHEP(1,ICMF),P3,P3N)
C------AZ=AZIMUTHAL ANGLE OF P3N
AZ=ATAN2(P3N(2),P3N(1))
CZ=COS(AZ)
SZ=SIN(AZ)
C------PHI=ANGLE BETWEEN P2N AND P3N
SCAPR=P2N(1)*P3N(1)+P2N(2)*P3N(2)+P2N(3)*P3N(3)
PMOD2=SQRT(P2N(1)**2+P2N(2)**2+P2N(3)**2)
PMOD3=SQRT(P3N(1)**2+P3N(2)**2+P3N(3)**2)
CPHI=SCAPR/(PMOD3*PMOD2)
SPHI=SQRT(1-CPHI**2)
C------HADRON MOMENTA
IHAD1=1
IHAD2=2
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
CALL HWVEQU(5,PHEP(1,IHAD1),PHAD1)
CALL HWVEQU(5,PHEP(1,IHAD2),PHAD2)
CALL HWVSUM(4,PHAD1,PHAD2,PTOT)
CALL HWUMAS(PTOT)
C------ Q - QBAR ENERGY FRACTIONS (BORN PROCESS)
c---minorimprovement---mhs---4/8/04---include mass effects correctly
ETA1=(P1(4)+P1(3))/(PHAD1(4)+PHAD1(3))
ETA2=(P2(4)-P2(3))/(PHAD2(4)-PHAD2(3))
C------ PDFs FOR THE BORN PROCESS
CALL HWSFUN(ETA1,EM,IDHW(IHAD1),NSTRU,PDFOLD1,1)
CALL HWSFUN(ETA2,EM,IDHW(IHAD2),NSTRU,PDFOLD2,2)
C-------CONSIDER Q(QBAR) IN THE INITIAL STATE
RN=HWRGEN(9)
IF (RN.LT.COMWGT1) THEN
C-------NO GLUON IN THE INITIAL STATE
GLUIN=.FALSE.
C---CHOOSE S ACCORDING TO 1/S**2
SVNTN=17
SMIN=HALF*EM**2*(7-SQRT(SVNTN))
SMAX=PTOT(5)**2
IF (SMAX.LE.SMIN) RETURN
S=SMIN*SMAX/(SMIN+HWRGEN(0)*(SMAX-SMIN))
JAC=S**2*(1/SMIN-1/SMAX)
C---CHOOSE T ACCORDING TO (S-EM**2)/(T*U)=1/T+1/U
TMAX=-HALF*EM**2*(3-HWUSQR(1+8*EM**2/S))
TMIN=EM**2-S-TMAX
IF (TMAX.LE.TMIN) RETURN
T=TMAX*(TMIN/TMAX)**HWRGEN(1)
IF (HWRGEN(2).GT.HALF) T=EM**2-S-T
U=EM**2-S-T
JAC=JAC*2*T*U/(S-EM**2)*LOG(TMIN/TMAX)
SCALE=SQRT(U*T/S)
SCALE1=SQRT(U*T/S+EM**2)
GLUFAC=0
IF (SCALE1.GT.HWBVMC(13)) GLUFAC=HWUALF(1,SCALE1)/(2*PIFAC)
C----Q-QBAR ENERGY FRACTIONS FOR Q QBAR-> VG
XI1=(HALF/PHAD1(4))*EXP(Y)*SQRT(S*(S+T)/(S+U))
XI2=S/(4*XI1*PHAD1(4)*PHAD2(4))
c---minorimprovement---mhs---4/8/04---apply infrared cutoff for large x
IF ((1-XI1)*SCALE.LT.HWBVMC(ID1)) RETURN
IF ((1-XI2)*SCALE.LT.HWBVMC(ID2)) RETURN
C-----PDFs WITH AN EMITTED GLUON
CALL HWSFUN(XI1,SCALE,IDHW(IHAD1),NSTRU,PDFNEW1,1)
CALL HWSFUN(XI2,SCALE,IDHW(IHAD2),NSTRU,PDFNEW2,2)
C------CALCULATE WEIGHT
W=JAC*((EM**2-T)**2+(EM**2-U)**2)/(S**2*T*U)
W1=(GLUFAC/COMWGT1)*W*PDFNEW1(ID1)*PDFNEW2(ID2)/(PDFOLD1(ID1)*
& PDFOLD2(ID2))*(CFFAC*ETA1*ETA2/(XI1*XI2))
C-------CHOOSE WHICH PARTON WILL EMIT
EMIT=1
IF (HWRGEN(6).LT.(EM**2-U)**2/((EM**2-U)**2+(EM**2-T)**2))
& EMIT=2
NOEMIT=3-EMIT
ELSE
C--------GLUON IN THE INITIAL STATE
GLUIN=.TRUE.
C---CHOOSE S ACCORDING TO 1/S**2
SMIN=EM**2
SMAX=PTOT(5)**2
IF (SMAX.LE.SMIN) RETURN
S=SMIN*SMAX/(SMIN+HWRGEN(0)*(SMAX-SMIN))
JAC=S**2*(1/SMIN-1/SMAX)
C---CHOOSE T ACCORDING TO 1/T
TMAX=-HALF*EM**2*(3-HWUSQR(1+8*EM**2/S))
TMIN=EM**2-S
IF (TMAX.LE.TMIN) RETURN
T=TMAX*(TMIN/TMAX)**HWRGEN(1)
JAC=JAC*T*LOG(TMAX/TMIN)
U=EM**2-S-T
SCALE=SQRT(U*T/S)
SCALE1=SQRT(U*T/S+EM**2)
GLUFAC=0
IF (SCALE1.GT.HWBVMC(13)) GLUFAC=HWUALF(1,SCALE1)/(2*PIFAC)
C--------INITIAL STATE GLUON COMING FROM HADRON 1
IF (RN.LE.COMWGT2) THEN
GP=.TRUE.
C--------ENERGY FRACTIONS and PDFs
c---bug fix---mhs---4/8/04---swap u and t in mtm frac definitions
XI1=(HALF/PHAD1(4))*EXP(Y)*SQRT(S*(S+T)/(S+U))
XI2=S/(4*XI1*PHAD1(4)*PHAD2(4))
c---minorimprovement---mhs---4/8/04---apply infrared cutoff for large x
IF ((1-XI1)*SCALE.LT.HWBVMC(13)) RETURN
IF ((1-XI2)*SCALE.LT.HWBVMC(ID2)) RETURN
CALL HWSFUN(XI1,SCALE,IDHW(IHAD1),NSTRU,PDFNEW1,1)
CALL HWSFUN(XI2,SCALE,IDHW(IHAD2),NSTRU,PDFNEW2,2)
WW=PDFNEW1(13)*PDFNEW2(ID2)/((COMWGT2-COMWGT1)*
& PDFOLD1(ID1)*PDFOLD2(ID2))
ELSE
C-------INITIAL STATE GLUON COMING FROM HADRON 2
GP=.FALSE.
C-------ENERGY FRACTIONS AND PDFs
c---bug fix---mhs---4/8/04---swap u and t in mtm frac definitions
XI1=(HALF/PHAD1(4))*EXP(Y)*SQRT(S*(S+U)/(S+T))
XI2=S/(4*XI1*PHAD1(4)*PHAD2(4))
c---minorimprovement---mhs---4/8/04---apply infrared cutoff for large x
IF ((1-XI1)*SCALE.LT.HWBVMC(ID1)) RETURN
IF ((1-XI2)*SCALE.LT.HWBVMC(13)) RETURN
CALL HWSFUN(XI1,SCALE,IDHW(IHAD1),NSTRU,PDFNEW1,1)
CALL HWSFUN(XI2,SCALE,IDHW(IHAD2),NSTRU,PDFNEW2,2)
WW=PDFNEW1(ID1)*PDFNEW2(13)/((1-COMWGT2)*
& PDFOLD1(ID1)*PDFOLD2(ID2))
ENDIF
W=-HALF*JAC*((EM**2-T)**2+(EM**2-S)**2)/(S**3*T)
C-------CHOOSE WHICH PARTON WILL EMIT
c---bug fix---mhs---4/8/04---swap emitter and nonemitter
EMIT=2
IF (HWRGEN(10).LT.(EM**2-S)**2/((EM**2-S)**2+(EM**2-T)**2))
& EMIT=1
NOEMIT=3-EMIT
C-------FINAL WEIGHT FOR ALL THE CONSIDERED OPTIONS
W1=GLUFAC*W*WW*ETA1*ETA2/(XI1*XI2)
ENDIF
C--------ADD ONE MORE GLUON
IF (W1.GT.HWRGEN(4)) THEN
NTMP=NEVHEP+NWGTS
ELSE
RETURN
ENDIF
C---------INCLUDE MASSES
S=S+M1**2+M2**2+M3**2
IF (.NOT.GLUIN) THEN
TEST=((S+M1**2-M2**2)*(S+M3**2-EM**2)-2*S*(M1**2+M3**2-T))**2
$ -((S-M1**2-M2**2)**2-4*M1**2*M2**2)*
$ ((S-M3**2-EM**2)**2-4*M3**2*EM**2)
ELSEIF (GP) THEN
TEST=((S+M3**2-M2**2)*(S+M1**2-EM**2)-2*S*(M3**2+M1**2-T))**2
$ -((S-M3**2-M2**2)**2-4*M3**2*M2**2)*
$ ((S-M1**2-EM**2)**2-4*M1**2*EM**2)
ELSE
TEST=((S+M3**2-M1**2)*(S+M2**2-EM**2)-2*S*(M3**2+M2**2-T))**2
$ -((S-M3**2-M1**2)**2-4*M3**2*M1**2)*
$ ((S-M2**2-EM**2)**2-4*M2**2*EM**2)
ENDIF
IF (TEST.GE.0) THEN
EMIT=0
RETURN
ENDIF
M(1)=M1
M(2)=M2
M(3)=M3
C----MOMENTA IN THE V-REST FRAME WITH NON EMITTER ALONG THE Z AXIS
C----V=BOSON,K=GLUON,E=EMITTER,NE=NON-EMITTER
PV(1)=0
PV(2)=0
PV(3)=0
PV(4)=EM
PV(5)=EM
PNE(2)=0
PNE(1)=0
IF (.NOT.GLUIN) THEN
PK(4)=(S-M(3)**2-EM**2)/(2*EM)
PMODK=SQRT(PK(4)**2-M(3)**2)
IF (EMIT.EQ.1) THEN
MM=M(1)
X1=T
X2=U
X3=-1
ELSE
MM=M(2)
X1=U
X2=T
X3=+1
ENDIF
PNE(4)=(EM**2+MM**2-X1)/(2*EM)
PNE(3)=X3*SQRT(PNE(4)**2-MM**2)
COS3=HALF*(X2-MM**2-M(3)**2+2*PNE(4)*PK(4))/(PNE(3)*PMODK)
ELSE
PK(4)=(EM**2+M(3)**2-U)/(2*EM)
PMODK=SQRT(PK(4)**2-M(3)**2)
IF (EMIT.EQ.1) THEN
IF (GP) THEN
MM=M(1)
X3=+1
ELSE
MM=M(2)
X3=-1
ENDIF
PNE(4)=(S-MM**2-EM**2)/(2*EM)
PNE(3)=X3*SQRT(PNE(4)**2-MM**2)
COS3=HALF*(T-MM**2-M(3)**2+2*PNE(4)*PK(4))/(PNE(3)*PMODK)
ELSE
IF (GP) THEN
MM=M(2)
X3=-1
ELSE
MM=M(1)
X3=+1
ENDIF
PNE(4)=(EM**2+MM**2-T)/(2*EM)
PNE(3)=X3*SQRT(PNE(4)**2-MM**2)
COS3=HALF*(MM**2+M(3)**2-S+2*PNE(4)*PK(4))/(PNE(3)*PMODK)
ENDIF
ENDIF
CALL HWUMAS(PNE)
SIN3=SQRT(1-COS3**2)
C---------DEFINE A RANDOM ROTATION AROUND THE Z-AXIS
CALL HWRAZM(PMODK*SIN3,PK(1),PK(2))
PK(3)=PMODK*COS3
CALL HWUMAS(PK)
DO K=1,4
IF (.NOT.GLUIN) THEN
PE(K)=PV(K)+PK(K)-PNE(K)
ELSE
IF (EMIT.EQ.1) THEN
PE(K)=PV(K)+PNE(K)-PK(K)
ELSE
PE(K)=PNE(K)+PK(K)-PV(K)
ENDIF
ENDIF
ENDDO
CALL HWUMAS(PE)
c------LEPTON MOMENTA IN THE BOSON REST FRAME, WITH THE DIRECTION
C------TAKEN FROM THE BORN PROCESS
PS(5)=P3(5)
PS(4)=(EM**2+P3(5)**2-P4(5)**2)/(2*EM)
PS(3)=-SQRT(PS(4)**2-P3(5)**2)*CPHI
PS(2)=SQRT(PS(4)**2-P3(5)**2)*SPHI*SZ
PS(1)=SQRT(PS(4)**2-P3(5)**2)*SPHI*CZ
PF(5)=P4(5)
PF(4)=(EM**2+P4(5)**2-P3(5)**2)/(2*EM)
PF(3)=-PS(3)
PF(2)=-PS(2)
PF(1)=-PS(1)
C----FIND A STATIONARY VECTOR PLAB IN THE LAB FRAME
IF (.NOT.GLUIN) THEN
IF (EMIT.EQ.1) THEN
CALL HWVEQU(5,PE,PP1)
CALL HWVEQU(5,PNE,PP2)
ELSE
CALL HWVEQU(5,PNE,PP1)
CALL HWVEQU(5,PE,PP2)
ENDIF
ELSE
IF (GP) THEN
CALL HWVEQU(5,PK,PP1)
IF (EMIT.EQ.1) THEN
CALL HWVEQU(5,PE,PP2)
ELSE
CALL HWVEQU(5,PNE,PP2)
ENDIF
ELSE
CALL HWVEQU(5,PK,PP2)
IF (EMIT.EQ.1) THEN
CALL HWVEQU(5,PE,PP1)
ELSE
CALL HWVEQU(5,PNE,PP1)
ENDIF
ENDIF
ENDIF
CALL HWVSCA(4,1/XI1,PP1,PP1)
CALL HWVSCA(4,1/XI2,PP2,PP2)
CALL HWVSUM(4,PP1,PP2,PLAB)
CALL HWUMAS(PLAB)
C------BOOST TO PLAB REST FRAME
CALL HWULOF(PLAB,PE,PE)
CALL HWULOF(PLAB,PNE,PNE)
CALL HWULOF(PLAB,PK,PK)
CALL HWULOF(PLAB,PS,PS)
CALL HWULOF(PLAB,PF,PF)
CALL HWULOF(PLAB,PV,PV)
C----PUT THE INITIAL PARTON BELONGING TO HADRON 1 ON THE Z-AXIS
IF (.NOT.GLUIN) THEN
IF (EMIT.EQ.1) THEN
CALL HWVEQU(5,PE,PZ)
ELSE
CALL HWVEQU(5,PNE,PZ)
ENDIF
ELSE
IF (GP) THEN
CALL HWVEQU(5,PK,PZ)
ELSE
IF (EMIT.EQ.1) THEN
CALL HWVEQU(5,PE,PZ)
ELSE
CALL HWVEQU(5,PNE,PZ)
ENDIF
ENDIF
ENDIF
MODP=SQRT(PZ(1)**2+PZ(2)**2)
CTH=PZ(1)/MODP
STH=PZ(2)/MODP
CALL HWUROT(PZ,CTH,STH,R3)
C-----ROTATE EVERYTHING BY R3
CALL HWUROF(R3,PE,PE)
CALL HWUROF(R3,PNE,PNE)
CALL HWUROF(R3,PV,PV)
CALL HWUROF(R3,PK,PK)
CALL HWUROF(R3,PS,PS)
CALL HWUROF(R3,PF,PF)
C--REORDER ENTRIES:--IHEP=EMITTER,JHEP=NON-EMITTER,KHEP=EMITTED
IF (.NOT.GLUIN) THEN
IHEP=JMOHEP(EMIT,ICMF)
JHEP=JMOHEP(NOEMIT,ICMF)
ENDIF
CHEP=ICMF
IDHW(CHEP)=15
IDHEP(CHEP)=IDPDG(15)
ICMF=ICMF+1
IDHW(ICMF)=IDBOS
IDHEP(ICMF)=IDPDG(IDBOS)
C-----NO GLUON IN THE INITIAL STATE: JUST ADD IT AFTER THE VECTOR BOSON
IF (.NOT.GLUIN) THEN
KHEP=ICMF+1
ISTHEP(KHEP)=114
C---STATUS OF EMITTER/NON EMITTER
ISTHEP(IHEP)=110+EMIT
ISTHEP(JHEP)=110+NOEMIT
ELSE
C-----GLUON COMING FROM THE 1ST HADRON
IF (GP) THEN
KHEP=CHEP-2
ISTHEP(KHEP)=111
C----EMIT=1
IF (EMIT.EQ.1) THEN
IHEP=KHEP+1
ISTHEP(IHEP)=112
JHEP=ICMF+1
ISTHEP(JHEP)=114
IDHW(IHEP)=ID2
IF (ID1.LE.6) THEN
IDHW(JHEP)=ID1+6
ELSE
IDHW(JHEP)=ID1-6
ENDIF
ELSE
C-------EMIT=2
JHEP=KHEP+1
ISTHEP(JHEP)=112
IDHW(JHEP)=ID2
IHEP=ICMF+1
ISTHEP(IHEP)=114
IF (ID1.LE.6) THEN
IDHW(IHEP)=ID1+6
ELSE
IDHW(IHEP)=ID1-6
ENDIF
ENDIF
ENDIF
C------GLUON COMING FROM THE HADRON 2
IF (.NOT.GP) THEN
KHEP=CHEP-1
ISTHEP(KHEP)=112
C-------EMIT=1
IF (EMIT.EQ.1) THEN
IHEP=KHEP-1
ISTHEP(IHEP)=111
IDHW(IHEP)=ID1
JHEP=ICMF+1
ISTHEP(JHEP)=114
IF (ID2.LE.6) THEN
IDHW(JHEP)=ID2+6
ELSE
IDHW(JHEP)=ID2-6
ENDIF
ELSE
C-------EMIT=2
JHEP=KHEP-1
ISTHEP(JHEP)=111
IDHW(JHEP)=ID1
IHEP=ICMF+1
ISTHEP(IHEP)=114
IF (ID2.LE.6) THEN
IDHW(IHEP)=ID2+6
ELSE
IDHW(IHEP)=ID2-6
ENDIF
ENDIF
ENDIF
ENDIF
IDHEP(IHEP)=IDPDG(IDHW(IHEP))
IDHEP(JHEP)=IDPDG(IDHW(JHEP))
ISTHEP(ICMF)=113
ISTHEP(CHEP)=110
IDHW(KHEP)=13
IDHEP(KHEP)=IDPDG(13)
C---------DEFINE MOMENTA IN THE LAB FRAME
CALL HWVEQU(5,PV,PHEP(1,ICMF))
CALL HWVEQU(5,PK,PHEP(1,KHEP))
CALL HWVEQU(5,PNE,PHEP(1,JHEP))
CALL HWVEQU(5,PE,PHEP(1,IHEP))
IF (.NOT.GLUIN) THEN
CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,JHEP),PHEP(1,CHEP))
ELSE
IF (EMIT.EQ.1) THEN
CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,KHEP),PHEP(1,CHEP))
ELSE
CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,JHEP),PHEP(1,CHEP))
ENDIF
ENDIF
CALL HWUMAS(PHEP(1,CHEP))
IF (.NOT.GLUIN) THEN
JMOHEP(1,JHEP)=CHEP
JMOHEP(1,IHEP)=CHEP
JDAHEP(1,JHEP)=CHEP
JDAHEP(1,IHEP)=CHEP
JMOHEP(1,KHEP)=CHEP
JDAHEP(1,KHEP)=0
JMOHEP(1,ICMF)=CHEP
JMOHEP(2,ICMF)=ICMF
JDAHEP(1,ICMF)=0
JDAHEP(2,ICMF)=ICMF
ENDIF
IF (GLUIN) THEN
JMOHEP(2,ICMF)=ICMF
JDAHEP(2,ICMF)=ICMF
JMOHEP(1,KHEP)=CHEP
JDAHEP(1,KHEP)=CHEP
JMOHEP(1,IHEP)=CHEP
JMOHEP(1,JHEP)=CHEP
IF (EMIT.EQ.1) THEN
JDAHEP(1,IHEP)=CHEP
JDAHEP(1,JHEP)=0
ELSE
JDAHEP(1,JHEP)=CHEP
JDAHEP(1,IHEP)=0
ENDIF
ENDIF
C---COLOUR CONNECTIONS
IF (.NOT.GLUIN) THEN
IF (IDHW(IHEP).LT.IDHW(JHEP)) THEN
JMOHEP(2,KHEP)=IHEP
JDAHEP(2,KHEP)=JHEP
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,IHEP)=KHEP
JDAHEP(2,JHEP)=IHEP
JMOHEP(2,JHEP)=KHEP
ELSE
JMOHEP(2,KHEP)=JHEP
JDAHEP(2,KHEP)=IHEP
JMOHEP(2,JHEP)=IHEP
JDAHEP(2,JHEP)=KHEP
JDAHEP(2,IHEP)=JHEP
JMOHEP(2,IHEP)=KHEP
ENDIF
ENDIF
IF (GLUIN) THEN
IF (EMIT.EQ.1) THEN
IF (IDHEP(IHEP).GT.0) THEN
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,IHEP)=KHEP
JMOHEP(2,JHEP)=KHEP
JDAHEP(2,JHEP)=IHEP
JMOHEP(2,KHEP)=IHEP
JDAHEP(2,KHEP)=JHEP
ELSE
JMOHEP(2,IHEP)=KHEP
JDAHEP(2,IHEP)=JHEP
JMOHEP(2,JHEP)=IHEP
JDAHEP(2,JHEP)=KHEP
JMOHEP(2,KHEP)=JHEP
JDAHEP(2,KHEP)=IHEP
ENDIF
ELSE
IF (IDHEP(JHEP).GT.0) THEN
JMOHEP(2,JHEP)=IHEP
JDAHEP(2,JHEP)=KHEP
JMOHEP(2,IHEP)=KHEP
JDAHEP(2,IHEP)=JHEP
JMOHEP(2,KHEP)=JHEP
JDAHEP(2,KHEP)=IHEP
ELSE
JMOHEP(2,JHEP)=KHEP
JDAHEP(2,JHEP)=IHEP
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,IHEP)=KHEP
JMOHEP(2,KHEP)=IHEP
JDAHEP(2,KHEP)=JHEP
ENDIF
ENDIF
ENDIF
EMSCA=SQRT(EM**2+PHEP(1,ICMF)**2+PHEP(2,ICMF)**2)
C--------SET STATUS AND LEPTON MOMENTA AFTER THE PARTON SHOWER
ELSEIF (IOPT.EQ.2) THEN
IF (EMIT.EQ.0.OR.NEVHEP+NWGTS.NE.NTMP) RETURN
ISTHEP(JDAHEP(1,ICMF))=195
IDHW(NHEP+1)=ID4
IDHW(NHEP+2)=ID5
IDHEP(NHEP+1)=IDPDG(ID4)
IDHEP(NHEP+2)=IDPDG(ID5)
ISTHEP(NHEP+1)=113
ISTHEP(NHEP+2)=114
CW=PHEP(3,ICMF)/SQRT(PHEP(1,ICMF)**2+PHEP(2,ICMF)**2+
& PHEP(3,ICMF)**2)
SW=SQRT(1-CW**2)
CALL HWUROT(PHEP(1,ICMF),CW,SW,R4)
CALL HWUROF(R4,PHEP(1,ICMF),PR)
PR(4)=PHEP(4,ICMF)
CALL HWUMAS(PR)
CALL HWUROF(R4,PS,PS)
CALL HWUROF(R4,PF,PF)
CALL HWUMAS(PS)
CALL HWUMAS(PF)
CALL HWUROT(PHEP(1,JDAHEP(1,ICMF)),CW,SW,R5)
CALL HWUROF(R5,PHEP(1,JDAHEP(1,ICMF)),PD)
PD(4)=PHEP(4,JDAHEP(1,ICMF))
CALL HWUMAS(PD)
BETA1=(PR(4)*PR(3)-SQRT(PR(4)**2*PD(3)**2-PR(3)**2*PD(3)**2+
& PD(3)**4))/(PD(3)**2+PR(4)**2)
GAMMA1=1/SQRT(1-BETA1**2)
PHEP(4,NHEP+1)=GAMMA1*PS(4)-BETA1*GAMMA1*PS(3)
PHEP(3,NHEP+1)=-BETA1*GAMMA1*PS(4)+GAMMA1*PS(3)
PHEP(4,NHEP+2)=GAMMA1*PF(4)-BETA1*GAMMA1*PF(3)
PHEP(3,NHEP+2)=-BETA1*GAMMA1*PF(4)+GAMMA1*PF(3)
PHEP(1,NHEP+1)=PS(1)
PHEP(2,NHEP+1)=PS(2)
PHEP(1,NHEP+2)=PF(1)
PHEP(2,NHEP+2)=PF(2)
CALL HWUMAS(PHEP(1,NHEP+1))
CALL HWUMAS(PHEP(1,NHEP+2))
CALL HWUROB(R5,PHEP(1,NHEP+1),PHEP(1,NHEP+1))
CALL HWUROB(R5,PHEP(1,NHEP+2),PHEP(1,NHEP+2))
JDAHEP(1,JDAHEP(1,ICMF))=NHEP+1
JDAHEP(2,JDAHEP(1,ICMF))=NHEP+2
JMOHEP(1,NHEP+1)=JDAHEP(1,ICMF)
JMOHEP(1,NHEP+2)=JDAHEP(1,ICMF)
JMOHEP(2,NHEP+1)=NHEP+2
JDAHEP(2,NHEP+1)=NHEP+2
JMOHEP(2,NHEP+2)=NHEP+1
JDAHEP(2,NHEP+2)=NHEP+1
C--special for spin correlations(relabel in spin common block)
IF(SYSPIN.AND.NSPN.NE.0) THEN
IDSPN(2) = NHEP+1
IDSPN(3) = NHEP+2
ISNHEP(NHEP+1) = 2
ISNHEP(NHEP+2) = 3
ENDIF
NHEP=NHEP+2
EMIT=0
ENDIF
END
CDECK ID>, HWBFIN.
*CMZ :- -26/04/91 10.18.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWBFIN(IHEP)
C-----------------------------------------------------------------------
C DELETES INTERNAL LINES FROM SHOWER, MAKES COLOUR CONNECTION INDEX
C AND COPIES INTO /HEPEVT/ IN COLOUR ORDER.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,ID,IJET,KHEP,IPAR,JPAR,NXPAR,IP,JP
IF (IERROR.NE.0) RETURN
C---SAVE VIRTUAL PARTON DATA
NHEP=NHEP+1
IF(NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWBFIN',100)
GOTO 999
ENDIF
ID=IDPAR(2)
IDHW(NHEP)=ID
IDHEP(NHEP)=IDPDG(ID)
ISTHEP(NHEP)=ISTHEP(IHEP)+20
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=JMOHEP(1,IHEP)
JDAHEP(1,IHEP)=NHEP
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
CALL HWVEQU(5,PPAR(1,2),PHEP(1,NHEP))
CALL HWVEQU(4,VPAR(1,2),VHEP(1,NHEP))
C---FINISHED FOR SPECTATOR OR NON-PARTON JETS
IF (ISTHEP(NHEP).GT.136) RETURN
IF (ID.GT.13.AND.ID.LT.209 .AND. ID.NE.59) RETURN
IF (ID.GT.220.AND.ABS(IDPDG(ID)).LT.1000000) RETURN
IF (ID.GT.424.AND.ID.NE.449) RETURN
IF (.NOT.TMPAR(2).AND.ID.EQ.59) RETURN
IDHEP(NHEP)=94
IJET=NHEP
IF (NPAR.GT.2) THEN
C---SAVE CONE DATA
NHEP=NHEP+1
IF(NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWBFIN',101)
GOTO 999
ENDIF
IDHW(NHEP)=IDPAR(1)
IDHEP(NHEP)=0
ISTHEP(NHEP)=100
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=JCOPAR(1,1)
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
CALL HWVEQU(5,PPAR,PHEP(1,NHEP))
CALL HWVEQU(4,VPAR(1,2),VHEP(1,NHEP))
ENDIF
KHEP=NHEP
C---START WITH ANTICOLOUR DAUGHTER OF HARDEST PARTON
IPAR=2
JPAR=JCOPAR(4,IPAR)
NXPAR=NPAR/2
DO 20 IP=1,NXPAR
DO 10 JP=1,NXPAR
IF (JPAR.EQ.0) GOTO 15
IF (JCOPAR(2,JPAR).EQ.IPAR) THEN
IPAR=JPAR
JPAR=JCOPAR(4,IPAR)
ELSE
IPAR=JPAR
JPAR=JCOPAR(1,IPAR)
ENDIF
10 CONTINUE
C---COULDN'T FIND COLOUR PARTNER
CALL HWWARN('HWBFIN',1)
15 JPAR=JCOPAR(1,IPAR)
KHEP=KHEP+1
IF(KHEP.GT.NMXHEP) THEN
CALL HWWARN('HWBFIN',102)
GOTO 999
ENDIF
ID=IDPAR(IPAR)
IF (TMPAR(IPAR)) THEN
IF (ID.LT.14) THEN
ISTHEP(KHEP)=139
ELSEIF (ID.EQ.59) THEN
ISTHEP(KHEP)=139
ELSEIF (ID.LT.109) THEN
ISTHEP(KHEP)=130
ELSEIF (ID.LT.120) THEN
ISTHEP(KHEP)=139
ELSEIF (ABS(IDPDG(ID)).LT.1000000) THEN
ISTHEP(KHEP)=130
ELSEIF (ID.LT.425) THEN
ISTHEP(KHEP)=139
ELSEIF (ID.EQ.449) THEN
ISTHEP(KHEP)=139
ELSE
ISTHEP(KHEP)=130
ENDIF
ELSE
ISTHEP(KHEP)=ISTHEP(IHEP)+24
ENDIF
IDHW(KHEP)=ID
IDHEP(KHEP)=IDPDG(ID)
CALL HWVEQU(5,PPAR(1,IPAR),PHEP(1,KHEP))
CALL HWVEQU(4,VPAR(1,IPAR),VHEP(1,KHEP))
JMOHEP(1,KHEP)=IJET
JMOHEP(2,KHEP)=KHEP+1
JDAHEP(1,KHEP)=0
JDAHEP(2,KHEP)=KHEP-1
20 CONTINUE
JMOHEP(2,KHEP)=0
JDAHEP(2,NHEP+1)=0
JDAHEP(1,IJET)=NHEP+1
JDAHEP(2,IJET)=KHEP
NHEP=KHEP
999 RETURN
END
CDECK ID>, HWBGEN.
*CMZ :- -14/10/99 18.04.56 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWBGEN
C-----------------------------------------------------------------------
C BRANCHING GENERATOR WITH INTERFERING GLUONS
C HWBGEN EVOLVES QCD JETS ACCORDING TO THE METHOD OF
C G.MARCHESINI & B.R.WEBBER, NUCL. PHYS. B238(1984)1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWULDO,HWRGAU,EINHEP,ERTXI,RTXI,XF
INTEGER NTRY,LASHEP,IHEP,NRHEP,ID,IST,JHEP,KPAR,I,J,IRHEP(NMXJET),
& IRST(NMXJET),JPR
LOGICAL HWRLOG
EXTERNAL HWULDO,HWRGAU
IF (IERROR.NE.0) RETURN
IF (IPRO.EQ.80) RETURN
C---CHECK THAT EMSCA IS SET
IF (EMSCA.LE.ZERO) CALL HWWARN('HWBGEN',200)
IF (HARDME) THEN
C---FORCE A BRANCH INTO THE `DEAD ZONE' IN E+E-
JPR=IPROC/10
C**********13/11/00 BRW FIX TO ALLOW ALSO WW AND ZZ
IF (JPR.EQ.10.OR.JPR.EQ.20.OR.JPR.EQ.25) CALL HWBDED(1)
C**********END FIX
C---FORCE A BRANCH INTO THE `DEAD ZONE' IN DIS
IF (IPRO.EQ.90) CALL HWBDIS(1)
C---FORCE A BRANCH INTO THE `DEAD ZONE' IN DRELL-YAN PROCESSES
IF (IPRO.EQ.13.OR.IPRO.EQ.14) CALL HWBDYP(1)
C---FORCE A BRANCH INTO THE `DEAD ZONE' IN TOP DECAYS
CALL HWBTOP
ENDIF
C---GENERATE INTRINSIC PT ONCE AND FOR ALL
DO 5 JNHAD=1,2
IF (PTRMS.NE.0.) THEN
PTINT(1,JNHAD)=HWRGAU(1,ZERO,PXRMS)
PTINT(2,JNHAD)=HWRGAU(2,ZERO,PXRMS)
PTINT(3,JNHAD)=PTINT(1,JNHAD)**2+PTINT(2,JNHAD)**2
ELSE
CALL HWVZRO(3,PTINT(1,JNHAD))
ENDIF
5 CONTINUE
NTRY=0
LASHEP=NHEP
10 NTRY=NTRY+1
IF (NTRY.GT.NETRY) THEN
CALL HWWARN('HWBGEN',ISLENT*100)
GOTO 999
ENDIF
NRHEP=0
NHEP=LASHEP
FROST=.FALSE.
DO 100 IHEP=1,LASHEP
IST=ISTHEP(IHEP)
IF (IST.GE.111.AND.IST.LE.115) THEN
NRHEP=NRHEP+1
IRHEP(NRHEP)=IHEP
IRST(NRHEP)=IST
ID=IDHW(IHEP)
IF (IST.NE.115) THEN
C---FOUND A PARTON TO EVOLVE
NEVPAR=IHEP
NPAR=2
IDPAR(1)=17
IDPAR(2)=ID
TMPAR(1)=.TRUE.
PPAR(2,1)=0.
PPAR(4,1)=1.
DO 15 J=1,2
DO 15 I=1,2
JMOPAR(I,J)=0
15 JCOPAR(I,J)=0
C---SET UP EVOLUTION SCALE AND FRAME
JHEP=JMOHEP(2,IHEP)
IF (ID.EQ.13) THEN
IF (HWRLOG(HALF)) JHEP=JDAHEP(2,IHEP)
ELSEIF (IST.GT.112) THEN
IF ((ID.GT.6.AND.ID.LT.13).OR.
& (ID.GT.214.AND.ID.LT.221)) JHEP=JDAHEP(2,IHEP)
ELSE
IF (ID.LT.7.OR.(ID.GT.208.AND.ID.LT.215)) JHEP=JDAHEP(2,IHEP)
ENDIF
IF (JHEP.LE.0.OR.JHEP.GT.NHEP) THEN
CALL HWWARN('HWBGEN',1)
JHEP=IHEP
ENDIF
JCOPAR(1,1)=JHEP
EINHEP=PHEP(4,IHEP)
ERTXI=HWULDO(PHEP(1,IHEP),PHEP(1,JHEP))
IF (ERTXI.LT.ZERO) ERTXI=0.
IF (IST.LE.112.AND.IHEP.EQ.JHEP) ERTXI=0.
IF (ISTHEP(JHEP).EQ.155) THEN
ERTXI=ERTXI/PHEP(5,JHEP)
RTXI=1.
ELSE
ERTXI=SQRT(ERTXI)
RTXI=ERTXI/EINHEP
ENDIF
IF (RTXI.EQ.ZERO) THEN
XF=1.
PPAR(1,1)=0.
PPAR(3,1)=1.
PPAR(1,2)=EINHEP
PPAR(2,2)=0.
PPAR(4,2)=EINHEP
ELSE
XF=1./RTXI
PPAR(1,1)=1.
PPAR(3,1)=0.
PPAR(1,2)=ERTXI
PPAR(2,2)=1.
PPAR(4,2)=ERTXI
ENDIF
IF (PPAR(4,2).LT.PHEP(5,IHEP)) PPAR(4,2)=PHEP(5,IHEP)
C---STORE MASS
PPAR(5,2)=PHEP(5,IHEP)
CALL HWVZRO(4,VPAR(1,1))
CALL HWVZRO(4,VPAR(1,2))
IF (IST.GT.112) THEN
TMPAR(2)=.TRUE.
INHAD=0
JNHAD=0
XFACT=0.
ELSE
TMPAR(2)=.FALSE.
JNHAD=IST-110
INHAD=JNHAD
IF (JDAHEP(1,JNHAD).NE.0) INHAD=JDAHEP(1,JNHAD)
XFACT=XF/PHEP(4,INHAD)
ANOMSC(1,JNHAD)=ZERO
ANOMSC(2,JNHAD)=ZERO
ENDIF
C---FOR QUARKS IN A COLOUR SINGLET, ALLOW SOFT MATRIX-ELEMENT CORRECTION
HARDST=PPAR(4,2)
IF (SOFTME.AND.IDHW(IHEP).LT.13.AND.
$ ((JMOHEP(2,JHEP).EQ.IHEP.AND.JDAHEP(2,JHEP).EQ.IHEP).OR.
$ ISTHEP(JHEP).EQ.155)) HARDST=0
C---CREATE BRANCHES AND COMPUTE ENERGIES
DO 20 KPAR=2,NMXPAR
IF (TMPAR(KPAR)) THEN
CALL HWBRAN(KPAR)
ELSE
CALL HWSBRN(KPAR)
ENDIF
IF (IERROR.NE.0) RETURN
IF (FROST) GOTO 100
IF (KPAR.EQ.NPAR) GOTO 30
20 CONTINUE
C---COMPUTE MASSES AND 3-MOMENTA
30 CONTINUE
CALL HWBMAS
IF (AZSPIN) CALL HWBSPN
IF (TMPAR(2)) THEN
CALL HWBTIM(2,1)
ELSE
CALL HWBSPA
ENDIF
C---ENTER PARTON JET IN /HEPEVT/
CALL HWBFIN(IHEP)
ELSE
C---COPY SPECTATOR
NHEP=NHEP+1
IF (ID.GT.120.AND.ID.LT.133 .OR. ID.GE.198.AND.ID.LE.201) THEN
ISTHEP(NHEP)=190
ELSE
ISTHEP(NHEP)=152
ENDIF
IDHW(NHEP)=ID
IDHEP(NHEP)=IDPDG(ID)
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=0
JDAHEP(2,NHEP)=0
JDAHEP(1,IHEP)=NHEP
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
ENDIF
ISTHEP(IHEP)=ISTHEP(IHEP)+10
ENDIF
100 CONTINUE
IF (.NOT.FROST) THEN
C---COMBINE JETS
ISTAT=20
CALL HWBJCO
ENDIF
IF (.NOT.FROST) THEN
C---ATTACH SPECTATORS
ISTAT=30
CALL HWSSPC
ENDIF
IF (FROST) THEN
C---BAD JET: RESTORE PARTONS AND RE-EVOLVE
DO 120 I=1,NRHEP
120 ISTHEP(IRHEP(I))=IRST(I)
GOTO 10
ENDIF
C---CONNECT COLOURS
CALL HWBCON
ISTAT=40
LASHEP=NHEP
IF (HARDME) THEN
C---CLEAN UP IF THERE WAS A BRANCH IN THE `DEAD ZONE' IN E+E-
IF (IPROC/10.EQ.10) CALL HWBDED(2)
C---CLEAN UP IF THERE WAS A BRANCH IN THE `DEAD ZONE' IN DIS
IF (IPRO.EQ.90) CALL HWBDIS(2)
C---CLEAN UP IF THERE WAS A BRANCH IN THE `DEAD ZONE' IN DRELL-YAN PROC
IF (IPRO.EQ.13.OR.IPRO.EQ.14) CALL HWBDYP(2)
ENDIF
C---IF THE CLEAN-UP OPERATION ADDED ANY PARTONS TO THE EVENT RECORD
C IT MIGHT NEED RESHOWERING
IF (NHEP.GT.LASHEP) THEN
LASHEP=NHEP
GOTO 10
ENDIF
999 RETURN
END
CDECK ID>, HWBGUP.
*CMZ :- -16/07/02 09.40.25 by Peter Richardson
*-- Author : Peter Richardson
C----------------------------------------------------------------------
SUBROUTINE HWBGUP(ISTART,ICMF)
C----------------------------------------------------------------------
C Makes the colour connections and performs the parton shower
C for events read in from the GUPI (Generic User Process Interface)
C event common block
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER MAXNUP
PARAMETER (MAXNUP=500)
INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,
& IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP),
& ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP),
& SPINUP(MAXNUP)
C--Local variables
INTEGER ISTART,ICMF,J,K,I,JCOL,ICOL
LOGICAL FOUND
COMMON /HWGUP/ILOC(NMXHEP),JLOC(MAXNUP)
INTEGER ILOC,JLOC
C--now we need to do the colour connections
20 ISTART = ISTART+1
IF(ISTART.GT.NHEP) GOTO 30
IF(ISTART.EQ.ICMF) ISTART = ISTART+1
IF(JMOHEP(2,ISTART).NE.0.AND.JDAHEP(2,ISTART).NE.0) GOTO 20
K = ISTART
J = ILOC(K)
IF(ICOLUP(1,J).NE.0) THEN
JCOL = 1
ICOL = ICOLUP(1,J)
ELSE
JCOL = 2
ICOL = ICOLUP(2,J)
ENDIF
IF(ICOL.EQ.0) THEN
JMOHEP(2,K) = K
JDAHEP(2,K) = K
GOTO 20
ENDIF
C--now search for the partner
C--first search for the flavour partner if not looking for colour partner
C--search for the flavour partner of the particle
C--this must be set or HERWIG won't work
10 IF(JDAHEP(2,K).NE.0.AND.JMOHEP(2,K).NE.0) GOTO 20
IF(ICOL.EQ.0) THEN
FOUND = .FALSE.
C--look for unpaired particle
DO 15 I=1,NUP
IF(JLOC(I).EQ.0) GOTO 15
IF(IDUP(I).EQ.21.OR.IDUP(I).EQ.9) GOTO 15
IF(JLOC(I).EQ.ISTART) GOTO 15
IF(ICOLUP(1,I).EQ.0.AND.ICOLUP(2,I).EQ.0) GOTO 15
C--antiflavour partner
IF(JDAHEP(2,JLOC(I)).EQ.0) THEN
C--pair incoming particle with outgoing particle
C-- or outgoing antiparticle with outgoing particle
IF(ISTUP(I).GT.0.AND.IDUP(I).GT.0.AND.
& ((IDUP(J).GT.0.AND.ISTUP(J).EQ.-1).OR.
& (IDUP(J).LT.0.AND.ISTUP(J).GT.0 ))) THEN
FOUND = .TRUE.
JCOL = 1
C--pair incoming particle with incoming antiparticle
C-- or outgoing antiparticle with incoming antiparticle
ELSEIF(IDUP(I).LT.0.AND.ISTUP(I).EQ.-1.AND.
& ((IDUP(J).GT.0.AND.ISTUP(J).EQ.-1).OR.
& (IDUP(J).LT.0.AND.ISTUP(J).GT.0 ))) THEN
FOUND = .TRUE.
JCOL = 2
ENDIF
C--make the connection
IF(FOUND) THEN
JMOHEP(2,K) = JLOC(I)
JDAHEP(2,JLOC(I)) = K
ENDIF
ENDIF
C--flavour partner
IF(JMOHEP(2,JLOC(I)).EQ.0.AND.(.NOT.FOUND)) THEN
C--pair incoming antiparticle with outgoing antiparticle
C-- or outgoing particle with outgoing antiparticle
IF(IDUP(I).LT.0.AND.ISTUP(I).GT.0.AND.
& ((IDUP(J).LT.0.AND.ISTUP(J).EQ.-1).OR.
& (IDUP(J).GT.0.AND.ISTUP(J).GT.0 ))) THEN
FOUND = .TRUE.
JCOL = 2
C--pair incoming antiparticle with incoming particle
C-- or outgoing particle with incoming particle
ELSEIF(IDUP(I).GT.0.AND.ISTUP(I).EQ.-1.AND.
& ((IDUP(J).LT.0.AND.ISTUP(J).EQ.-1).OR.
& (IDUP(J).GT.0.AND.ISTUP(J).GT.0 ))) THEN
FOUND = .TRUE.
JCOL = 1
ENDIF
C--make the connection
IF(FOUND) THEN
JDAHEP(2,K) = JLOC(I)
JMOHEP(2,JLOC(I)) = K
ENDIF
ENDIF
C--set up the search for the next partner
IF(FOUND) THEN
FOUND = .FALSE.
ICOL = ICOLUP(JCOL,I)
K = JLOC(I)
J = I
GOTO 10
ENDIF
15 CONTINUE
C--if no other choice then connect to the first particle in the loop
IF(JDAHEP(2,K).EQ.0.AND.JMOHEP(2,ISTART).EQ.0) THEN
JDAHEP(2,K) = ISTART
JMOHEP(2,ISTART) = K
ELSEIF(JDAHEP(2,ISTART).EQ.0.AND.JMOHEP(2,K).EQ.0) THEN
JMOHEP(2,K) = ISTART
JDAHEP(2,ISTART) = K
ELSE
CALL HWWARN('HWBGUP',100)
GOTO 999
ENDIF
GOTO 20
ENDIF
C--now the bit to find colour partners
FOUND = .FALSE.
C--special for particle from a decaying coloured particle
IF(MOTHUP(1,J).NE.0) THEN
IF(ISTUP(MOTHUP(1,J)).EQ.2.OR.ISTUP(MOTHUP(1,J)).EQ.3) THEN
IF(IDUP(J).LT.0.AND.ICOL.EQ.ICOLUP(2,MOTHUP(1,J))) THEN
JDAHEP(2,K) = JLOC(MOTHUP(1,J))
JMOHEP(2,K) = JLOC(MOTHUP(1,J))
GOTO 20
ELSEIF(IDUP(J).GT.0.AND.ICOL.EQ.ICOLUP(1,MOTHUP(1,J))) THEN
JDAHEP(2,K) = JLOC(MOTHUP(1,J))
JMOHEP(2,K) = JLOC(MOTHUP(1,J))
GOTO 20
ENDIF
ENDIF
ENDIF
C--search for the partner
DO I=1,NUP
IF(ICOLUP(1,I).EQ.ICOL.AND.I.NE.J) THEN
IF((JCOL.EQ.1.AND.ISTUP(J).EQ.-1.AND.ISTUP(I).GT.0).OR.
& (JCOL.EQ.2.AND.ISTUP(J).GT.0.AND.ISTUP(I).GE.0)) THEN
JDAHEP(2,K) = JLOC(I)
JMOHEP(2,JLOC(I)) = K
FOUND = .TRUE.
ELSEIF((JCOL.EQ.1.AND.ISTUP(J).GT.0.AND.ISTUP(I).EQ.-1).OR.
& (JCOL.EQ.2.AND.ISTUP(J).EQ.-1.AND.ISTUP(I).EQ.-1)) THEN
JMOHEP(2,K) = JLOC(I)
JDAHEP(2,JLOC(I)) = K
FOUND = .TRUE.
ENDIF
IF(FOUND) JCOL = 2
ELSEIF(ICOLUP(2,I).EQ.ICOL.AND.I.NE.J) THEN
IF((JCOL.EQ.1.AND.ISTUP(J).EQ.-1.AND.ISTUP(I).EQ.-1).OR.
& (JCOL.EQ.2.AND.ISTUP(J).GT.0.AND.ISTUP(I).EQ.-1)) THEN
JDAHEP(2,K) = JLOC(I)
JMOHEP(2,JLOC(I)) = K
FOUND = .TRUE.
ELSEIF((JCOL.EQ.1.AND.ISTUP(J).GE.0.AND.ISTUP(I).GE.0).OR.
& (JCOL.EQ.2.AND.ISTUP(J).EQ.-1.AND.ISTUP(I).GE.0)) THEN
JMOHEP(2,K) = JLOC(I)
JDAHEP(2,JLOC(I)) = K
FOUND = .TRUE.
ENDIF
IF(FOUND) JCOL = 1
ENDIF
IF(FOUND) THEN
K = JLOC(I)
J = I
ICOL = ICOLUP(JCOL,I)
GOTO 10
ENDIF
ENDDO
C--special for self connected gluons
IF(IDUP(J).EQ.21.OR.IDUP(J).EQ.9.AND.
& ICOLUP(1,J).EQ.ICOLUP(2,J)) THEN
JMOHEP(2,K) = K
JDAHEP(2,K) = K
C--options for self connected gluons
IF(LHGLSF) THEN
CALL HWWARN('HWBGUP',1)
ELSE
CALL HWWARN('HWBGUP',101)
GOTO 999
ENDIF
GOTO 20
ENDIF
C--perform the shower
30 CALL HWBGEN
999 RETURN
END
CDECK ID>, HWBJCO.
*CMZ :- -30/09/02 09.19.58 by Peter Richardson
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWBJCO
C-----------------------------------------------------------------------
C COMBINES JETS WITH REQUIRED KINEMATICS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWULDO,EPS,PTX,PTY,PF,PTINF,PTCON,CN,CP,SP,PP0,
& PM0,ET0,DET,ECM,EMJ,EMP,EMS,DMS,ES,DPF,ALF,AL(2),ET(2),PP(2),
& PT(3),PA(5),PB(5),PC(5),PQ(5),PR(5),PS(5),RR(3,3),RS(3,3),ETC,
& PJ(NMXJET),PM(NMXJET),PBR(5),RBR(3,3),DISP(4),PLAB(5)
INTEGER LJET,IJ1,IST,IP,ICM,IP1,IP2,NP,IHEP,MHEP,JP,KP,LP,KHEP,
& JHEP,NE,IJT,IEND(2),IJET(NMXJET),IPAR(NMXJET)
LOGICAL AZCOR,JETRAD,DISPRO,DISLOW
EXTERNAL HWULDO
PARAMETER (EPS=1.D-4)
IF (IERROR.NE.0) RETURN
AZCOR=AZSOFT.OR.AZSPIN
LJET=131
10 IJET(1)=1
20 IJ1=IJET(1)
DO 40 IHEP=IJ1,NHEP
IST=ISTHEP(IHEP)
IF (IST.EQ.137.OR.IST.EQ.138) IST=133
IF (IST.EQ.LJET) THEN
C---FOUND AN UNBOOSTED JET - FIND PARTNERS
IP=JMOHEP(1,IHEP)
ICM=JMOHEP(1,IP)
DISPRO=IPRO/10.EQ.9.AND.IDHW(ICM).EQ.15
DISLOW=DISPRO.AND.JDAHEP(1,ICM).EQ.JDAHEP(2,ICM)-1
IF (IST.EQ.131) THEN
IP1=JMOHEP(1,ICM)
IP2=JMOHEP(2,ICM)
ELSE
IP1=JDAHEP(1,ICM)
IP2=JDAHEP(2,ICM)
ENDIF
IF (IP1.NE.IP) THEN
CALL HWWARN('HWBJCO',100)
GOTO 999
ENDIF
NP=0
DO 30 JHEP=IP1,IP2
NP=NP+1
IPAR(NP)=JHEP
30 IJET(NP)=JDAHEP(1,JHEP)
GOTO 50
ENDIF
40 CONTINUE
C---NO MORE JETS?
IF (LJET.EQ.131) THEN
LJET=133
GOTO 10
ENDIF
RETURN
50 IF (LJET.EQ.131) THEN
C---SPACELIKE JETS: FIND SPACELIKE PARTONS
IF (NP.NE.2) THEN
CALL HWWARN('HWBJCO',103)
GOTO 999
ENDIF
C---special for DIS: FIND BOOST AND ROTATION FROM LAB TO BREIT FRAME
IF (DISPRO.AND.BREIT) THEN
IP=2
IF (JDAHEP(1,IP).NE.0) IP=JDAHEP(1,IP)
CALL HWVDIF(4,PHEP(1,JMOHEP(1,ICM)),PHEP(1,JDAHEP(1,ICM)),PB)
CALL HWUMAS(PB)
C---IF Q**2<10**-2, SOMETHING MUST HAVE ALREADY GONE WRONG
IF (PB(5)**2.LT.1.D-2) THEN
CALL HWWARN('HWBJCO',102)
GOTO 999
ENDIF
CALL HWVSCA(4,PB(5)**2/HWULDO(PHEP(1,IP),PB),PHEP(1,IP),PBR)
CALL HWVSUM(4,PB,PBR,PBR)
CALL HWUMAS(PBR)
CALL HWULOF(PBR,PB,PB)
CALL HWUROT(PB,ONE,ZERO,RBR)
ENDIF
PTX=0.
PTY=0.
PF=1.D0
DO 90 IP=1,2
MHEP=IJET(IP)
IF (JDAHEP(1,MHEP).EQ.0) THEN
C---SPECIAL FOR NON-PARTON JETS
IHEP=MHEP
GOTO 70
ELSE
IST=134+IP
DO 60 IHEP=MHEP,NHEP
60 IF (ISTHEP(IHEP).EQ.IST) GOTO 70
C---COULDN'T FIND SPACELIKE PARTON
CALL HWWARN('HWBJCO',101)
GOTO 999
ENDIF
70 CALL HWVSCA(3,PF,PHEP(1,IHEP),PS)
IF (PTINT(3,IP).GT.ZERO) THEN
C---ADD INTRINSIC PT
PT(1)=PTINT(1,IP)
PT(2)=PTINT(2,IP)
PT(3)=0.
CALL HWUROT(PS, ONE,ZERO,RS)
CALL HWUROB(RS,PT,PT)
CALL HWVSUM(3,PS,PT,PS)
ENDIF
JP=IJET(IP)+1
IF (AZCOR.AND.JP.LE.NHEP.AND.IDHW(JP).EQ.17) THEN
C---ALIGN CONE WITH INTERFERING PARTON
CALL HWUROT(PS, ONE,ZERO,RS)
CALL HWUROF(RS,PHEP(1,JP),PR)
PTCON=PR(1)**2+PR(2)**2
KP=JMOHEP(2,JP)
IF (KP.EQ.0) THEN
CALL HWWARN('HWBJCO',1)
PTINF=0.
ELSE
CALL HWVEQU(4,PHEP(1,KP),PB)
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PB,PB)
CALL HWUROF(RBR,PB,PB)
ENDIF
PTINF=PB(1)**2+PB(2)**2
IF (PTINF.LT.EPS) THEN
C---COLLINEAR JETS: ALIGN CONES
KP=JDAHEP(1,KP)+1
C---BUG FIX BY MHS 17/03/05: RETURNED TO VERSION 6.500!
IF (ISTHEP(KP).EQ.100.AND.ISTHEP(KP-1).GE.141
$ .AND.ISTHEP(KP-1).LE.144) THEN
C---END FIX
CALL HWVEQU(4,PHEP(1,KP),PB)
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PB,PB)
CALL HWUROF(RBR,PB,PB)
ENDIF
PTINF=PB(1)**2+PB(2)**2
ELSE
PTINF=0.
ENDIF
ENDIF
ENDIF
IF (PTCON.NE.ZERO.AND.PTINF.NE.ZERO) THEN
CN=1./SQRT(PTINF*PTCON)
CP=CN*(PR(1)*PB(1)+PR(2)*PB(2))
SP=CN*(PR(1)*PB(2)-PR(2)*PB(1))
ELSE
CALL HWRAZM( ONE,CP,SP)
ENDIF
ELSE
CALL HWRAZM( ONE,CP,SP)
ENDIF
C---ROTATE SO SPACELIKE IS ALONG AXIS (APART FROM INTRINSIC PT)
CALL HWUROT(PS,CP,SP,RS)
IHEP=IJET(IP)
KHEP=JDAHEP(2,IHEP)
IF (KHEP.LT.IHEP) KHEP=IHEP
IEND(IP)=KHEP
DO 80 JHEP=IHEP,KHEP
CALL HWUROF(RS,PHEP(1,JHEP),PHEP(1,JHEP))
80 CALL HWUROF(RS,VHEP(1,JHEP),VHEP(1,JHEP))
PP(IP)=PHEP(4,IHEP)+PF*PHEP(3,IHEP)
ET(IP)=PHEP(1,IHEP)**2+PHEP(2,IHEP)**2-PHEP(5,IHEP)**2
C---REDEFINE HARD CM
PTX=PTX+PHEP(1,IHEP)
PTY=PTY+PHEP(2,IHEP)
90 PF=-PF
PHEP(1,ICM)=PTX
PHEP(2,ICM)=PTY
C---special for DIS: keep lepton momenta fixed
IF (DISPRO) THEN
IP1=JMOHEP(1,ICM)
IP2=JDAHEP(1,ICM)
IJT=IJET(1)
C---IJT will be used to store lepton momentum transfer
CALL HWVDIF(4,PHEP(1,IP1),PHEP(1,IP2),PHEP(1,IJT))
CALL HWUMAS(PHEP(1,IJT))
IF (IDHEP(IP1).EQ.IDHEP(IP2)) THEN
IDHW(IJT)=200
ELSEIF (IDHEP(IP1).LT.IDHEP(IP2)) THEN
IDHW(IJT)=199
ELSE
IDHW(IJT)=198
ENDIF
IDHEP(IJT)=IDPDG(IDHW(IJT))
ISTHEP(IJT)=3
C---calculate boost for struck parton
C PC is momentum of outgoing parton(s)
IP2=JDAHEP(2,ICM)
IF (.NOT.DISLOW) THEN
C---FOR heavy QQbar PQ and PC are old and new QQbar momenta
CALL HWVSUM(4,PHEP(1,IP2-1),PHEP(1,IP2),PQ)
CALL HWUMAS(PQ)
PC(5)=PQ(5)
ELSE
PC(5)=PHEP(5,JDAHEP(1,IP2))
ENDIF
CALL HWVSUM(2,PHEP(1,IJT),PHEP(1,IJET(2)),PC)
ET(1)=ET(2)
C---USE BREIT FRAME BOSON MOMENTUM IF NECESSARY
IF (BREIT) THEN
ET(2)=ET(1)+PC(5)**2+PHEP(5,IJET(2))**2
PM0=PHEP(5,IJT)
PP0=-PM0
ELSE
ET(2)=PC(1)**2+PC(2)**2+PC(5)**2
PP0=PHEP(4,IJT)+PHEP(3,IJT)
PM0=PHEP(4,IJT)-PHEP(3,IJT)
ENDIF
ET0=(PP0*PM0)+ET(1)-ET(2)
DET=ET0**2-4.*(PP0*PM0)*ET(1)
IF (DET.LT.ZERO) THEN
FROST=.TRUE.
RETURN
ENDIF
ALF=(SQRT(DET)-ET0)/(2.*PP0*PP(2))
PB(1)=0.
PB(2)=0.
PB(5)=2.D0
PB(3)=ALF-(1./ALF)
PB(4)=ALF+(1./ALF)
DO 100 IHEP=IJET(2),IEND(2)
CALL HWULOF(PB,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULF4(PB,VHEP(1,IHEP),VHEP(1,IHEP))
C---BOOST FROM BREIT FRAME IF NECESSARY
IF (BREIT) THEN
CALL HWUROB(RBR,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULOB(PBR,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWUROB(RBR,VHEP(1,IHEP),VHEP(1,IHEP))
CALL HWULB4(PBR,VHEP(1,IHEP),VHEP(1,IHEP))
ENDIF
100 ISTHEP(IHEP)=ISTHEP(IHEP)+10
CALL HWVDIF(4,VHEP(1,IPAR(2)),VHEP(1,IJET(2)),DISP)
DO 110 IHEP=IJET(2),IEND(2)
110 CALL HWVSUM(4,DISP,VHEP(1,IHEP),VHEP(1,IHEP))
IF (IEND(2).GT.IJET(2)+1) ISTHEP(IJET(2)+1)=100
CALL HWVSUM(4,PHEP(1,IJT),PHEP(1,IJET(2)),PC)
CALL HWVSUM(4,PHEP(1,IP1),PHEP(1,IJET(2)),PHEP(1,ICM))
CALL HWUMAS(PHEP(1,ICM))
ELSEIF (IPRO/10.EQ.5) THEN
C Special to preserve photon momentum
ETC=PTX**2+PTY**2+PHEP(5,ICM)**2
ET0=ETC+ET(1)-ET(2)
DET=ET0**2-4.*ETC*ET(1)
IF (DET.LT.ZERO) THEN
FROST=.TRUE.
RETURN
ENDIF
ALF=(SQRT(DET)+ET0-2.*ET(1))/(2.*PP(1)*PP(2))
PB(1)=0.
PB(2)=0.
PB(3)=ALF-1./ALF
PB(4)=ALF+1./ALF
PB(5)=2.
IJT=IJET(2)
DO 120 IHEP=IJT,IEND(2)
CALL HWULOF(PB,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULF4(PB,VHEP(1,IHEP),VHEP(1,IHEP))
120 ISTHEP(IHEP)=ISTHEP(IHEP)+10
CALL HWVDIF(4,VHEP(1,IPAR(2)),VHEP(1,IJT),DISP)
DO 130 IHEP=IJT,IEND(2)
130 CALL HWVSUM(4,DISP,VHEP(1,IHEP),VHEP(1,IHEP))
IF (IEND(2).GT.IJT+1) ISTHEP(IJT+1)=100
ISTHEP(IJET(1))=ISTHEP(IJET(1))+10
CALL HWVSUM(2,PHEP(3,IPAR(1)),PHEP(3,IJT),PHEP(3,ICM))
ELSE
C--change to preserve either long mom or rapidity rather than long mom
C--by PR and BRW 30/9/02
IF (PRESPL) THEN
C--PRESERVE LONG MOM OF CMF
PHEP(4,ICM)=
& SQRT(PTX**2+PTY**2+PHEP(3,ICM)**2+PHEP(5,ICM)**2)
ELSE
C--PRESERVE RAPIDITY OF CMF
DET=SQRT(ONE+(PTX**2+PTY**2)/(PHEP(4,ICM)**2
& -PHEP(3,ICM)**2))
CALL HWVSCA(2,DET,PHEP(3,ICM),PHEP(3,ICM))
ENDIF
C---NOW BOOST TO REQUIRED Q**2 AND X-F
PP0=PHEP(4,ICM)+PHEP(3,ICM)
PM0=PHEP(4,ICM)-PHEP(3,ICM)
ET0=(PP0*PM0)+ET(1)-ET(2)
DET=ET0**2-4.*(PP0*PM0)*ET(1)
IF (DET.LT.ZERO) THEN
FROST=.TRUE.
RETURN
ENDIF
DET=SQRT(DET)+ET0
AL(1)= 2.*PM0*PP(1)/DET
AL(2)=(PM0/PP(2))*(1.-2.*ET(1)/DET)
PB(1)=0.
PB(2)=0.
PB(5)=2.
DO 160 IP=1,2
PB(3)=AL(IP)-(1./AL(IP))
PB(4)=AL(IP)+(1./AL(IP))
IJT=IJET(IP)
DO 140 IHEP=IJT,IEND(IP)
CALL HWULOF(PB,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULF4(PB,VHEP(1,IHEP),VHEP(1,IHEP))
140 ISTHEP(IHEP)=ISTHEP(IHEP)+10
CALL HWVDIF(4,VHEP(1,IPAR(IP)),VHEP(1,IJT),DISP)
DO 150 IHEP=IJT,IEND(IP)
150 CALL HWVSUM(4,DISP,VHEP(1,IHEP),VHEP(1,IHEP))
IF (IEND(IP).GT.IJT+1) THEN
ISTHEP(IJT+1)=100
ELSEIF (IEND(IP).EQ.IJT) THEN
C---NON-PARTON JET
ISTHEP(IJT)=3
ENDIF
160 CONTINUE
ENDIF
ISTHEP(ICM)=120
ELSE
C---TIMELIKE JETS
C---SPECIAL CASE: IF HARD PROCESS IS W/Z DECAY, PERFORM KINEMATIC
C RECONSTRUCTION IN ITS REST FRAME INSTEAD OF THE LAB FRAME
IF (IDHW(ICM).GE.198.AND.IDHW(ICM).LE.200.AND.WZRFR) THEN
CALL HWVEQU(5,PHEP(1,ICM),PLAB)
CALL HWULOF(PLAB,PHEP(1,ICM),PHEP(1,ICM))
CALL HWULF4(PLAB,VHEP(1,ICM),VHEP(1,ICM))
DO 165 IP=1,NP
CALL HWULOF(PLAB,PHEP(1,IPAR(IP)),PHEP(1,IPAR(IP)))
CALL HWULF4(PLAB,VHEP(1,IPAR(IP)),VHEP(1,IPAR(IP)))
165 CONTINUE
ENDIF
C special for DIS: preserve outgoing lepton momentum
IF (DISPRO) THEN
CALL HWVEQU(5,PHEP(1,IPAR(1)),PHEP(1,IJET(1)))
ISTHEP(IJET(1))=1
LP=2
ELSE
CALL HWVEQU(5,PHEP(1,ICM),PC)
C--- PQ AND PC ARE OLD AND NEW PARTON CM
CALL HWVSUM(4,PHEP(1,IPAR(1)),PHEP(1,IPAR(2)),PQ)
PQ(5)=PHEP(5,ICM)
IF (NP.GT.2) THEN
DO 170 KP=3,NP
170 CALL HWVSUM(4,PHEP(1,IPAR(KP)),PQ,PQ)
ENDIF
LP=1
ENDIF
IF (.NOT.DISLOW) THEN
C---FIND JET CM MOMENTA
ECM=PQ(5)
EMS=0.
JETRAD=.FALSE.
DO 180 KP=LP,NP
EMJ=PHEP(5,IJET(KP))
EMP=PHEP(5,IPAR(KP))
JETRAD=JETRAD.OR.EMJ.NE.EMP
EMS=EMS+EMJ
PM(KP)= EMJ**2
C---N.B. ROUNDING ERRORS HERE AT HIGH ENERGIES
PJ(KP)=(HWULDO(PHEP(1,IPAR(KP)),PQ)/ECM)**2-EMP**2
IF (PJ(KP).LE.ZERO) THEN
CALL HWWARN('HWBJCO',104)
GOTO 999
ENDIF
180 CONTINUE
PF=1.
IF (JETRAD) THEN
C---JETS DID RADIATE
IF (EMS.GE.ECM) THEN
FROST=.TRUE.
GOTO 240
ENDIF
DO 200 NE=1,NETRY
EMS=-ECM
DMS=0.
DO 190 KP=LP,NP
ES=SQRT(PF*PJ(KP)+PM(KP))
EMS=EMS+ES
190 DMS=DMS+PJ(KP)/ES
DPF=2.*EMS/DMS
IF (DPF.GT.PF) DPF=0.9*PF
PF=PF-DPF
200 IF (ABS(DPF).LT.EPS) GOTO 210
CALL HWWARN('HWBJCO',105)
GOTO 999
ENDIF
210 CONTINUE
ENDIF
C---BOOST PC AND PQ TO BREIT FRAME IF NECESSARY
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PC,PC)
CALL HWUROF(RBR,PC,PC)
IF (.NOT.DISLOW) THEN
CALL HWULOF(PBR,PQ,PQ)
CALL HWUROF(RBR,PQ,PQ)
ENDIF
ENDIF
DO 230 IP=LP,NP
C---FIND CM ROTATION FOR JET IP
IF (.NOT.DISLOW) THEN
CALL HWVEQU(4,PHEP(1,IPAR(IP)),PR)
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PR,PR)
CALL HWUROF(RBR,PR,PR)
ENDIF
C--Modified by MHS 17/08/05 to do unboost in 2 stages (trans,long)
PA(1)=PQ(1)
PA(2)=PQ(2)
PA(3)=ZERO
PA(5)=SQRT(PQ(3)**2+PQ(5)**2)
PA(4)=PQ(4)
CALL HWULOF(PA,PR,PR)
PA(1)=ZERO
PA(2)=ZERO
PA(3)=PQ(3)
PA(4)=PA(5)
PA(5)=PQ(5)
CALL HWULOF(PA,PR,PR)
C--End mod
CALL HWUROT(PR, ONE,ZERO,RR)
PR(1)=ZERO
PR(2)=ZERO
PR(3)=SQRT(PF*PJ(IP))
PR(4)=SQRT(PF*PJ(IP)+PM(IP))
PR(5)=PHEP(5,IJET(IP))
CALL HWUROB(RR,PR,PR)
C--Modified by BRW 25/10/02 to do boost in 2 stages (long,trans)
PA(1)=ZERO
PA(2)=ZERO
PA(3)=PC(3)
PA(5)=PC(5)
PA(4)=SQRT(PA(3)**2+PA(5)**2)
CALL HWULOB(PA,PR,PR)
PA(1)=PC(1)
PA(2)=PC(2)
PA(3)=ZERO
PA(5)=PA(4)
PA(4)=PC(4)
CALL HWULOB(PA,PR,PR)
C--End mod
ELSE
CALL HWVEQU(5,PC,PR)
ENDIF
C---NOW PR IS LAB/BREIT MOMENTUM OF JET IP
KP=IJET(IP)+1
IF (AZCOR.AND.KP.LE.NHEP.AND.IDHW(KP).EQ.17) THEN
C---ALIGN CONE WITH INTERFERING PARTON
CALL HWUROT(PR, ONE,ZERO,RS)
JP=JMOHEP(2,KP)
IF (JP.EQ.0) THEN
CALL HWWARN('HWBJCO',2)
PTINF=0.
ELSE
CALL HWVEQU(4,PHEP(1,JP),PS)
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PS,PS)
CALL HWUROF(RBR,PS,PS)
ENDIF
CALL HWUROF(RS,PS,PS)
PTINF=PS(1)**2+PS(2)**2
IF (PTINF.LT.EPS) THEN
C---COLLINEAR JETS: ALIGN CONES
JP=JDAHEP(1,JP)+1
C---BUG FIX BY MHS 17/03/05: RETURNED TO VERSION 6.500!
IF (ISTHEP(JP).EQ.100.AND.ISTHEP(JP-1).GE.141
$ .AND.ISTHEP(JP-1).LE.144) THEN
C---END FIX
CALL HWVEQU(4,PHEP(1,JP),PS)
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PS,PS)
CALL HWUROF(RBR,PS,PS)
ENDIF
CALL HWUROF(RS,PS,PS)
PTINF=PS(1)**2+PS(2)**2
ELSE
PTINF=0.
ENDIF
ENDIF
ENDIF
CALL HWVEQU(4,PHEP(1,KP),PB)
IF (DISPRO.AND.BREIT) THEN
CALL HWULOF(PBR,PB,PB)
CALL HWUROF(RBR,PB,PB)
ENDIF
PTCON=PB(1)**2+PB(2)**2
IF (PTCON.NE.ZERO.AND.PTINF.NE.ZERO) THEN
CN=1./SQRT(PTINF*PTCON)
CP=CN*(PS(1)*PB(1)+PS(2)*PB(2))
SP=CN*(PS(1)*PB(2)-PS(2)*PB(1))
ELSE
CALL HWRAZM( ONE,CP,SP)
ENDIF
ELSE
CALL HWRAZM( ONE,CP,SP)
ENDIF
CALL HWUROT(PR,CP,SP,RS)
C---FIND BOOST FOR JET IP
ALF=(PHEP(3,IJET(IP))+PHEP(4,IJET(IP)))/
& (PR(4)+SQRT((PR(4)+PR(5))*(PR(4)-PR(5))))
PB(1)=0.
PB(2)=0.
PB(3)=ALF-(1./ALF)
PB(4)=ALF+(1./ALF)
PB(5)=2.
IHEP=IJET(IP)
KHEP=JDAHEP(2,IHEP)
IF (KHEP.LT.IHEP) KHEP=IHEP
DO 220 JHEP=IHEP,KHEP
CALL HWULOF(PB,PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWUROB(RS,PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWULF4(PB,VHEP(1,JHEP),VHEP(1,JHEP))
CALL HWUROB(RS,VHEP(1,JHEP),VHEP(1,JHEP))
C---BOOST FROM BREIT FRAME IF NECESSARY
IF (DISPRO.AND.BREIT) THEN
CALL HWUROB(RBR,PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWULOB(PBR,PHEP(1,JHEP),PHEP(1,JHEP))
CALL HWUROB(RBR,VHEP(1,JHEP),VHEP(1,JHEP))
CALL HWULB4(PBR,VHEP(1,JHEP),VHEP(1,JHEP))
ENDIF
CALL HWVSUM(4,VHEP(1,JHEP),VHEP(1,IPAR(IP)),VHEP(1,JHEP))
C--MHS FIX 07/03/05 FOR VERTEX POSITION OF LONG LIVED NON-PARTON JETS
IF (KHEP.EQ.IHEP.AND.(IDHW(JHEP).GE.121.AND.IDHW(JHEP).LE.132
$ .OR.IDHW(JHEP).EQ.59))
$ CALL HWVSUM(4,VTXPIP,VHEP(1,JHEP),VHEP(1,JHEP))
C--END FIX
220 ISTHEP(JHEP)=ISTHEP(JHEP)+10
IF (KHEP.GT.IHEP+1) THEN
ISTHEP(IHEP+1)=100
ELSEIF (KHEP.EQ.IHEP) THEN
C---NON-PARTON JET
ISTHEP(IHEP)=190
ENDIF
230 CONTINUE
IF (ISTHEP(ICM).EQ.110) ISTHEP(ICM)=120
C---SPECIAL CASE: FOR W/Z DECAY BOOST BACK TO THE LAB FRAME
240 IF (IDHW(ICM).GE.198.AND.IDHW(ICM).LE.200.AND.WZRFR) THEN
CALL HWULOB(PLAB,PHEP(1,ICM),PHEP(1,ICM))
CALL HWULB4(PLAB,VHEP(1,ICM),VHEP(1,ICM))
DO 260 IP=1,NP
CALL HWULOB(PLAB,PHEP(1,IPAR(IP)),PHEP(1,IPAR(IP)))
CALL HWULB4(PLAB,VHEP(1,IPAR(IP)),VHEP(1,IPAR(IP)))
CALL HWULOB(PLAB,PHEP(1,IJET(IP)),PHEP(1,IJET(IP)))
C--MHS FIX 07/03/05 - DO NOT REBOOST PRIMARY VERTEX
IF (ISTHEP(IJET(IP)).EQ.190)
$ CALL HWVDIF(4,VHEP(1,IJET(IP)),VTXPIP,VHEP(1,IJET(IP)))
CALL HWULB4(PLAB,VHEP(1,IJET(IP)),VHEP(1,IJET(IP)))
IF (ISTHEP(IJET(IP)).EQ.190)
$ CALL HWVSUM(4,VHEP(1,IJET(IP)),VTXPIP,VHEP(1,IJET(IP)))
C---END FIX
IF (JDAHEP(1,IJET(IP)).GT.0) THEN
IF (JDAHEP(2,IJET(IP)).GT.JDAHEP(1,IJET(IP))) THEN
CALL HWULOB(PLAB,PHEP(1,IJET(IP)+1),PHEP(1,IJET(IP)+1))
CALL HWULB4(PLAB,VHEP(1,IJET(IP)+1),VHEP(1,IJET(IP)+1))
ENDIF
DO 250 IHEP=JDAHEP(1,IJET(IP)),JDAHEP(2,IJET(IP))
CALL HWULOB(PLAB,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULB4(PLAB,VHEP(1,IHEP),VHEP(1,IHEP))
250 CONTINUE
ENDIF
260 CONTINUE
ENDIF
IF (FROST) RETURN
ENDIF
GOTO 20
999 RETURN
END
CDECK ID>, HWBMAS.
*CMZ :- -26/04/91 11.11.54 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWBMAS
C-----------------------------------------------------------------------
C Passes backwards through a jet cascade calculating the masses
C and magnitudes of the longitudinal and transverse three momenta.
C Components given relative to direction of parent for a time-like
C vertex and with respect to z-axis for space-like vertices.
C
C On input PPAR(1-5,*) contains:
C (E*sqrt(Xi),Xi,3-mom (if external),E,M-sq (if external))
C
C On output PPAR(1-5,*) (if TMPAR(*)), containts:
C (P-trans,Xi or Xilast,P-long,E,M)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUSQR,EXI,PISQ,PJPK,EJEK,PTSQ,Z,ZMIN,ZMAX,
$ EMI,EMJ,EMK,C,NQ,HWBVMC,RHO,POLD,PNEW,EOLD,ENEW,A,B
INTEGER IPAR,JPAR,KPAR,MPAR,I,J,K
EXTERNAL HWUSQR
IF (IERROR.NE.0) RETURN
IF (NPAR.GT.2) THEN
DO 30 MPAR=NPAR-1,3,-2
JPAR=MPAR
C Find parent and partner of this branch
IPAR=JMOPAR(1,JPAR)
KPAR=JPAR+1
C Determine type of branching
IF (TMPAR(IPAR)) THEN
C Time-like branching
C Compute mass of parent
EXI=PPAR(1,JPAR)*PPAR(1,KPAR)
PPAR(5,IPAR)=PPAR(5,JPAR)+PPAR(5,KPAR)+2.*EXI
C Compute three momentum of parent
PISQ=PPAR(4,IPAR)*PPAR(4,IPAR)-PPAR(5,IPAR)
PPAR(3,IPAR)=HWUSQR(PISQ)
C---SPECIAL FOR G-->QQBAR: READJUST ANGULAR DISTRIBUTION
IF (IDPAR(IPAR).EQ.13 .AND. IDPAR(JPAR).LT.13) THEN
Z=PPAR(4,JPAR)/PPAR(4,IPAR)
ZMIN=HWBVMC(IDPAR(JPAR))/PPAR(1,JPAR)*Z
RHO=(Z*(3-Z*(3-2*Z))-ZMIN*(3-ZMIN*(3-2*ZMIN)))
$ /(2*(1-2*ZMIN)*(1-ZMIN*(1-ZMIN)))
NQ=PPAR(3,IPAR)*(PPAR(3,IPAR)+PPAR(4,IPAR))
EMI=PPAR(5,IPAR)
EMJ=PPAR(5,JPAR)
EMK=PPAR(5,KPAR)
ZMIN=MAX((EMI+EMJ-EMK)/(2*(EMI+NQ)),
$ (EMI+EMJ-EMK-SQRT(ABS((EMI-EMJ-EMK)**2-4*EMJ*EMK)))/(2*EMI))
ZMAX=1-MAX((EMI-EMJ+EMK)/(2*(EMI+NQ)),
$ (EMI-EMJ+EMK-SQRT(ABS((EMI-EMJ-EMK)**2-4*EMJ*EMK)))/(2*EMI))
C=2*RMASS(IDPAR(JPAR))**2/EMI
Z=(4*ZMIN*(1.5*(1+C-ZMIN)+ZMIN**2)*(1-RHO)
$ +4*ZMAX*(1.5*(1+C-ZMAX)+ZMAX**2)*RHO-2-3*C)/(1+2*C)**1.5
Z=SQRT(1+2*C)*SINH(LOG(Z+SQRT(Z**2+1))/3)+0.5
Z=(Z*NQ+(EMI+EMJ-EMK)/2)/(NQ+EMI)
PPAR(4,JPAR)=Z*PPAR(4,IPAR)
PPAR(4,KPAR)=PPAR(4,IPAR)-PPAR(4,JPAR)
PPAR(3,JPAR)=HWUSQR(PPAR(4,JPAR)**2-EMJ)
PPAR(3,KPAR)=HWUSQR(PPAR(4,KPAR)**2-EMK)
PPAR(2,JPAR)=EXI/(PPAR(4,JPAR)*PPAR(4,KPAR))
IF(JDAPAR(2,JPAR).NE.0)PPAR(2,JDAPAR(2,JPAR))=PPAR(2,JPAR)
IF(JDAPAR(2,KPAR).NE.0)PPAR(2,JDAPAR(2,KPAR))=PPAR(2,JPAR)
C---FIND DESCENDENTS OF THIS SPLITTING AND READJUST THEIR MOMENTA TOO
DO 20 J=JPAR+2,NPAR-1,2
I=J
10 I=JMOPAR(1,I)
IF (I.GT.IPAR) GOTO 10
IF (I.EQ.IPAR) THEN
I=JMOPAR(1,J)
K=J+1
POLD=PPAR(3,J)+PPAR(3,K)
EOLD=PPAR(4,J)+PPAR(4,K)
PNEW=HWUSQR(PPAR(4,I)**2-PPAR(5,I))
ENEW=PPAR(4,I)
A=(ENEW*EOLD-PNEW*POLD)/PPAR(5,I)
B=(PNEW*EOLD-ENEW*POLD)/PPAR(5,I)
PPAR(3,J)=A*PPAR(3,J)+B*PPAR(4,J)
PPAR(4,J)=(PPAR(4,J)+B*PPAR(3,J))/A
PPAR(3,K)=PNEW-PPAR(3,J)
PPAR(4,K)=ENEW-PPAR(4,J)
PPAR(2,J)=1-(PPAR(3,J)*PPAR(3,K)+PPAR(1,J)*PPAR(1,K))
$ /(PPAR(4,J)*PPAR(4,K))
IF (JDAPAR(2,J).NE.0) PPAR(2,JDAPAR(2,J))=PPAR(2,J)
IF (JDAPAR(2,K).NE.0) PPAR(2,JDAPAR(2,K))=PPAR(2,J)
ENDIF
20 CONTINUE
ENDIF
C Compute daughter' transverse and longitudinal momenta
PJPK=PPAR(3,JPAR)*PPAR(3,KPAR)
EJEK=PPAR(4,JPAR)*PPAR(4,KPAR)-EXI
PTSQ=(PJPK+EJEK)*(PJPK-EJEK)/PISQ
PPAR(1,JPAR)=HWUSQR(PTSQ)
PPAR(3,JPAR)=HWUSQR(PPAR(3,JPAR)*PPAR(3,JPAR)-PTSQ)
PPAR(1,KPAR)=-PPAR(1,JPAR)
PPAR(3,KPAR)= PPAR(3,IPAR)-PPAR(3,JPAR)
ELSE
C Space-like branching
C Re-arrange such that JPAR is time-like
IF (TMPAR(KPAR)) THEN
KPAR=JPAR
JPAR=JPAR+1
ENDIF
C Compute time-like branch
PTSQ=(2.-PPAR(2,JPAR))*PPAR(1,JPAR)*PPAR(1,JPAR)
& -PPAR(5,JPAR)
PPAR(1,JPAR)=HWUSQR(PTSQ)
PPAR(3,JPAR)=(1.-PPAR(2,JPAR))*PPAR(4,JPAR)
PPAR(3,IPAR)=PPAR(3,KPAR)-PPAR(3,JPAR)
PPAR(5,IPAR)=0.
PPAR(1,KPAR)=0.
ENDIF
C Reset Xi to Xilast
PPAR(2,KPAR)=PPAR(2,IPAR)
30 CONTINUE
ENDIF
DO 40 IPAR=2,NPAR
40 PPAR(5,IPAR)=HWUSQR(PPAR(5,IPAR))
PPAR(1,2)=0.
PPAR(2,2)=0.
END
CDECK ID>, HWBRAN.
*CMZ :- -14/10/99 18.04.56 by Mike Seymour
*-- Author : Bryan Webber & Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWBRAN(KPAR)
C-----------------------------------------------------------------------
C BRANCHES TIMELIKE PARTON KPAR INTO TWO, PUTS PRODUCTS
C INTO NPAR+1 AND NPAR+2, AND INCREASES NPAR BY TWO
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRGEN,HWUALF,HWUTAB,HWRUNI,HWULDO,PMOM,
& QNOW,QLST,QKTHR,RN,QQBAR,DQQ,QGTHR,SNOW,QSUD,ZMIN,ZMAX,ZRAT,WMIN,
& QLAM,Z1,Z2,ETEST,ZTEST,ENOW,XI,XIPREV,EPREV,QMAX,QGAM,SLST,SFNL,
& TARG,ALF,BETA0(3:6),BETAP(3:6),SQRK(4:6,5),REJFAC,Z,X1,X2,OTHXI,
& OTHZ,X3,FF,AW,XCUT,CC,JJ,HWUSQR
INTEGER HWRINT,KPAR,ID,JD,IS,NTRY,N,ID1,ID2,MPAR,ISUD(13),IHEP,
& JHEP,M,NF,NN,IREJ,NREJ,ITOP
EXTERNAL HWBVMC,HWRGEN,HWUALF,HWUTAB,HWRUNI,HWULDO,HWRINT,HWUSQR
SAVE BETA0,BETAP,SQRK
SAVE ISUD
DATA ISUD,BETA0/2,2,3,4,5,6,2,2,3,4,5,6,1,4*ZERO/
IF (IERROR.NE.0) RETURN
C---SET SQRK(M,N) TO THE PROBABILITY THAT A GLUON WILL NOT PRODUCE A
C QUARK-ANTIQUARK PAIR BETWEEN SCALES RMASS(M) AND 2*HWBVMC(N)
IF (SUDORD.NE.1.AND.BETA0(3).EQ.ZERO) THEN
DO 100 M=3,6
BETA0(M)=(11.*CAFAC-2.*M)*0.5
100 BETAP(M)=(17.*CAFAC**2-(5.*CAFAC+3.*CFFAC)*M)
& /BETA0(M)*0.25/PIFAC
DO 120 N=1,5
DO 110 M=4,6
IF (M.LE.N) THEN
SQRK(M,N)=ONE
ELSEIF (M.EQ.4.OR.M.EQ.N+1) THEN
NF=M
IF (2*HWBVMC(N).GT.RMASS(M)) NF=M+1
SQRK(M,N)=((BETAP(NF-1)+1/HWUALF(1,2*HWBVMC(N)))/
$ (BETAP(NF-1)+1/HWUALF(1,RMASS(M))))**(1/BETA0(NF-1))
ELSE
SQRK(M,N)=SQRK(M-1,N)*
$ ((BETAP(M-1)+1/HWUALF(1,RMASS(M-1)))/
$ (BETAP(M-1)+1/HWUALF(1,RMASS(M))))**(1/BETA0(M-1))
ENDIF
110 CONTINUE
120 CONTINUE
ENDIF
ID=IDPAR(KPAR)
C--TEST FOR PARTON TYPE
IF (ID.LE.13) THEN
JD=ID
IS=ISUD(ID)
ELSEIF (ID.GE.209.AND.ID.LE.220) THEN
JD=ID-208
IS=7
ELSE
IS=0
END IF
QNOW=-1.
IF (IS.NE.0) THEN
C--TIMELIKE PARTON BRANCHING
ENOW=PPAR(4,KPAR)
XIPREV=PPAR(2,KPAR)
IF (JMOPAR(1,KPAR).EQ.0) THEN
EPREV=PPAR(4,KPAR)
ELSE
EPREV=PPAR(4,JMOPAR(1,KPAR))
ENDIF
C--IF THIS IS CHARGED & PHOTONS ARE ALLOWED, ANGLES MIGHT NOT BE ORDERED
QMAX=0
QLST=PPAR(1,KPAR)
IF (ICHRG(ID).NE.0 .AND. VPCUT.LT.PPAR(1,2)) THEN
C--LOOK FOR A PREVIOUS G->QQBAR, IF ANY
MPAR=KPAR
1 IF (JMOPAR(1,MPAR).NE.0) THEN
IF (IDPAR(JMOPAR(1,MPAR)).EQ.ID) THEN
MPAR=JMOPAR(1,MPAR)
GOTO 1
ENDIF
ENDIF
C--IF CLIMBED TO THE TOP OF THE LIST, FIND QED INTERFERENCE PARTNER
IF (MPAR.EQ.2) THEN
JHEP=0
IF (ID.LT.7) THEN
IHEP=JDAHEP(2,JCOPAR(1,1))
IF (IHEP.GT.0) JHEP=JDAHEP(2,IHEP)
ELSE
IHEP=JMOHEP(2,JCOPAR(1,1))
IF (IHEP.GT.0) JHEP=JMOHEP(2,IHEP)
ENDIF
IF (IHEP.GT.0.AND.JHEP.GT.0) THEN
QMAX=HWULDO(PHEP(1,IHEP),PHEP(1,JHEP))
& *(ENOW/PPAR(4,2))**2
ELSE
C--FIX AT HARD PROCESS SCALE IF POINTER NOT YET SET
C (CAN HAPPEN IN SUSY EVENTS)
QMAX=EMSCA**2
ENDIF
ELSE
QMAX=ENOW**2*PPAR(2,MPAR)
ENDIF
C--IF PREVIOUS BRANCHING WAS Q->QGAMMA, LOOK FOR A QCD BRANCHING
MPAR=KPAR
2 IF (JMOPAR(1,MPAR).NE.0) THEN
IF (IDPAR(JDAPAR(1,JMOPAR(1,MPAR))).EQ.59 .OR.
& IDPAR(JDAPAR(2,JMOPAR(1,MPAR))).EQ.59) THEN
MPAR=JMOPAR(1,MPAR)
GOTO 2
ENDIF
ENDIF
QLST=ENOW**2*PPAR(2,MPAR)
QMAX=SQRT(MAX(ZERO,MIN(
& QMAX , EPREV**2*XIPREV , ENOW**2*XIPREV*(2-XIPREV))))
QLST=SQRT(MIN(
& QLST , EPREV**2*XIPREV , ENOW**2*XIPREV*(2-XIPREV)))
ENDIF
NTRY=0
5 NTRY=NTRY+1
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWBRAN',100)
GOTO 999
ENDIF
IF (ID.EQ.13) THEN
C--GLUON -> QUARK+ANTIQUARK OPTION
IF (QLST.GT.QCDL3) THEN
DO 8 N=1,NFLAV
QKTHR=2.*HWBVMC(N)
IF (QLST.GT.QKTHR) THEN
RN=HWRGEN(N)
IF (SUDORD.NE.1) THEN
C---FIND IN WHICH FLAVOUR INTERVAL THE UPPER LIMIT LIES
NF=3
DO 200 M=MAX(3,N),NFLAV
200 IF (QLST.GT.RMASS(M)) NF=M
C---CALCULATE THE FORM FACTOR
IF (NF.EQ.MAX(3,N)) THEN
SFNL=((BETAP(NF)+1/HWUALF(1,QKTHR))/
$ (BETAP(NF)+1/HWUALF(1,QLST)))**(1/BETA0(NF))
SLST=SFNL
ELSE
SFNL=((BETAP(NF)+1/HWUALF(1,RMASS(NF)))/
$ (BETAP(NF)+1/HWUALF(1,QLST)))**(1/BETA0(NF))
SLST=SFNL*SQRK(NF,N)
ENDIF
ENDIF
IF (RN.GT.1.E-3) THEN
QQBAR=QCDL3*(QLST/QCDL3)**(RN**BETAF)
ELSE
QQBAR=QCDL3
ENDIF
IF (SUDORD.NE.1) THEN
C---FIND IN WHICH FLAVOUR INTERVAL THE SOLUTION LIES
IF (RN.GE.SFNL) THEN
NN=NF
ELSEIF (RN.GE.SLST) THEN
NN=MAX(3,N)
DO 210 M=MAX(3,N)+1,NF-1
210 IF (RN.GE.SLST/SQRK(M,N)) NN=M
ELSE
NN=0
QQBAR=QCDL3
ENDIF
IF (NN.GT.0) THEN
IF (NN.EQ.NF) THEN
TARG=HWUALF(1,QLST)
ELSE
TARG=HWUALF(1,RMASS(NN+1))
RN=RN/SLST*SQRK(NN+1,N)
ENDIF
TARG=1/((BETAP(NN)+1/TARG)*RN**BETA0(NN)-BETAP(NN))
C---NOW SOLVE HWUALF(1,QQBAR)=TARG FOR QQBAR ITERATIVELY
7 QQBAR=MAX(QQBAR,HALF*QKTHR)
ALF=HWUALF(1,QQBAR)
IF (ABS(ALF-TARG).GT.ACCUR) THEN
NTRY=NTRY+1
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWBRAN',101)
GOTO 999
ENDIF
QQBAR=QQBAR*(1+3*PIFAC*(ALF-TARG)
$ /(BETA0(NN)*ALF**2*(1+BETAP(NN)*ALF)))
GOTO 7
ENDIF
ENDIF
ENDIF
IF (QQBAR.GT.QNOW.AND.QQBAR.GT.QKTHR) THEN
QNOW=QQBAR
ID2=N
ENDIF
ELSE
GOTO 9
ENDIF
8 CONTINUE
ENDIF
C--GLUON->DIQUARKS OPTION
9 IF (QLST.LT.QDIQK) THEN
IF (PDIQK.NE.ZERO) THEN
RN=HWRGEN(0)
DQQ=QLST*EXP(-RN/PDIQK)
IF (DQQ.GT.QNOW) THEN
IF (DQQ.GT.2.*RMASS(115)) THEN
QNOW=DQQ
ID2=115
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
C--ENHANCE GLUON AND PHOTON EMISSION BY A FACTOR OF TWO IF THIS BRANCH
C IS CAPABLE OF BEING THE HARDEST SO FAR
NREJ=1
IF (TMPAR(2).AND.0.25*MAX(QLST,QMAX).GT.HARDST) NREJ=2
C--BRANCHING ID->ID+GLUON
QGTHR=HWBVMC(ID)+HWBVMC(13)
IF (QLST.GT.QGTHR) THEN
DO 300 IREJ=1,NREJ
RN=HWRGEN(1)
SLST=HWUTAB(SUD(1,IS),QEV(1,IS),NQEV,QLST,INTER)
IF (RN.EQ.ZERO) THEN
SNOW=2.
ELSE
SNOW=SLST/RN
ENDIF
IF (SNOW.LT.ONE) THEN
QSUD=HWUTAB(QEV(1,IS),SUD(1,IS),NQEV,SNOW,INTER)
C---IF FORM FACTOR DID NOT GET INVERTED CORRECTLY TRY LINEAR INSTEAD
IF (QSUD.GT.QLST) THEN
SNOW=HWUTAB(SUD(1,IS),QEV(1,IS),NQEV,QLST,1)/RN
QSUD=HWUTAB(QEV(1,IS),SUD(1,IS),NQEV,SNOW,1)
IF (QSUD.GT.QLST) THEN
CALL HWWARN('HWBRAN',1)
QSUD=-1
ENDIF
ENDIF
IF (QSUD.GT.QGTHR.AND.QSUD.GT.QNOW) THEN
ID2=13
QNOW=QSUD
ENDIF
ENDIF
300 CONTINUE
ENDIF
C--BRANCHING ID->ID+PHOTON
IF (ICHRG(ID).NE.0) THEN
QGTHR=MAX(HWBVMC(ID)+HWBVMC(59),HWBVMC(59)*EXP(0.75))
IF (QMAX.GT.QGTHR) THEN
DO 400 IREJ=1,NREJ
RN=HWRGEN(2)
IF (RN.EQ.ZERO) THEN
QGAM=0
ELSE
QGAM=(LOG(QMAX/HWBVMC(59))-0.75)**2
& +PIFAC*9/(ICHRG(ID)**2*ALPFAC*ALPHEM)*LOG(RN)
IF (QGAM.GT.ZERO) THEN
QGAM=HWBVMC(59)*EXP(0.75+SQRT(QGAM))
ELSE
QGAM=0
ENDIF
ENDIF
IF (QGAM.GT.QGTHR.AND.QGAM.GT.QNOW) THEN
ID2=59
QNOW=QGAM
ENDIF
400 CONTINUE
ENDIF
ENDIF
IF (QNOW.GT.ZERO) THEN
C--BRANCHING HAS OCCURRED
ZMIN=HWBVMC(ID2)/QNOW
ZMAX=1.-ZMIN
IF (ID.EQ.13) THEN
IF (ID2.EQ.13) THEN
C--GLUON -> GLUON + GLUON
ID1=13
WMIN=ZMIN*ZMAX
ETEST=(1.-WMIN)**2*HWUALF(5-SUDORD*2,QNOW*WMIN)
ZRAT=(ZMAX*(1-ZMIN))/(ZMIN*(1-ZMAX))
C--CHOOSE Z1 DISTRIBUTED ON (ZMIN,ZMAX)
C ACCORDING TO GLUON BRANCHING FUNCTION
10 Z1=ZMAX/(ZMAX+(1-ZMAX)*ZRAT**HWRGEN(0))
Z2=1.-Z1
ZTEST=(1.-(Z1*Z2))**2*HWUALF(5-SUDORD*2,QNOW*(Z1*Z2))
IF (ZTEST.LT.ETEST*HWRGEN(1)) GOTO 10
Z=Z1
ELSEIF (ID2.NE.115) THEN
C--GLUON -> QUARKS
ID1=ID2+6
ETEST=ZMIN**2+ZMAX**2
20 Z1=HWRUNI(0,ZMIN,ZMAX)
Z2=1.-Z1
ZTEST=Z1*Z1+Z2*Z2
IF (ZTEST.LT.ETEST*HWRGEN(0)) GOTO 20
ELSE
C--GLUON -> DIQUARKS
ID2=HWRINT(115,117)
ID1=ID2-6
Z1=HWRUNI(0,ZMIN,ZMAX)
Z2=1.-Z1
ENDIF
ELSE
C--QUARK OR ANTIQUARK BRANCHING
IF (ID2.EQ.13) THEN
C--TO GLUON
ZMAX=1.-HWBVMC(ID)/QNOW
WMIN=MIN(ZMIN*(1.-ZMIN),ZMAX*(1.-ZMAX))
ETEST=(1.+ZMAX**2)*HWUALF(5-SUDORD*2,QNOW*WMIN)
ZRAT=ZMAX/ZMIN
30 Z1=ZMIN*ZRAT**HWRGEN(0)
Z2=1.-Z1
ZTEST=(1.+Z2*Z2)*HWUALF(5-SUDORD*2,QNOW*Z1*Z2)
IF (ZTEST.LT.ETEST*HWRGEN(1)) GOTO 30
ELSE
C--TO PHOTON
ZMIN= HWBVMC(59)/QNOW
ZMAX=1-HWBVMC(ID)/QNOW
ZRAT=ZMAX/ZMIN
ETEST=1+(1-ZMIN)**2
40 Z1=ZMIN*ZRAT**HWRGEN(0)
Z2=1-Z1
ZTEST=1+Z2*Z2
IF (ZTEST.LT.ETEST*HWRGEN(1)) GOTO 40
ENDIF
C--QUARKS EMIT ON LOWER SIDE, ANTIQUARKS ON UPPER SIDE
Z=Z1
IF (JD.LE.6) THEN
Z1=Z2
Z2=1.-Z2
ID1=ID
ELSE
ID1=ID2
ID2=ID
ENDIF
ENDIF
C--UPDATE THIS BRANCH AND CREATE NEW BRANCHES
XI=(QNOW/ENOW)**2
IF (ID1.NE.59.AND.ID2.NE.59) THEN
IF (ID.EQ.13.AND.ID1.NE.13) THEN
QLAM=QNOW
ELSE
QLAM=QNOW*Z1*Z2
ENDIF
IF (SUDORD.EQ.1.AND.HWUALF(2,QLAM).LT.HWRGEN(0) .OR.
& (2.-XI)*(QNOW*Z1*Z2)**2.GT.EMSCA**2) THEN
C--BRANCHING REJECTED: REDUCE Q AND REPEAT
QMAX=QNOW
QLST=QNOW
QNOW=-1.
GOTO 5
ENDIF
ENDIF
C--IF THIS IS HARDEST EMISSION SO FAR, APPLY MATRIX-ELEMENT CORRECTION
IF (ID.NE.13.OR.ID1.EQ.13) THEN
QLAM=QNOW*Z1*Z2
REJFAC=1
IF (TMPAR(2).AND.QLAM.GT.HARDST) THEN
C----SOFT MATRIX-ELEMENT CORRECTION TO TOP DECAYS
ITOP=JCOPAR(1,1)
IF (ISTHEP(ITOP).EQ.155.AND.(IDHW(ITOP).EQ.6
$ .OR.IDHW(ITOP).EQ.12)) THEN
AW=(PHEP(5,JDAHEP(1,ITOP))/PHEP(5,ITOP))**2
FF=0.5*(1-AW)*(1-2*AW+1/AW)
CC=0.25*(1-AW)**2
X1=1-2*CC*Z*(1-Z)*XI
X3=0.5*(1-AW+2*CC*Z*(1-Z)*XI-(1-2*Z)
& *HWUSQR(((1+AW-2*CC*Z*(1-Z)*XI)**2-4*AW)
& /(1-2*Z*(1-Z)*XI)))
C-----JACOBIAN FACTOR
JJ=(1-X1)*(2-AW-X1-2*X3)*(1-2*Z*(1-Z)*XI)/(
$ 4*CC**2*((X1+AW)**2-4*AW)*Z**2*(1-Z)**2*(1-2*Z)*XI)
C-----REJECTION FACTOR
XCUT=2*GCUTME/PHEP(5,ITOP)
IF (X3.GT.XCUT) REJFAC=FF*JJ
& *X3**2*(1-X1)*(1+(1-Z)**2)/(Z*XI)
& /((1+1/AW-2*AW)*((1-AW)*X3-(1-X1)
& *(1-X3)-X3**2)+(1+1/(2*AW))*X3*(X1+X3-1)**2
& +2*X3**2*(1-X1))
ELSEIF (MOD(ISTHEP(JCOPAR(1,1)),10).GE.3) THEN
C---COLOUR PARTNER IS ALSO OUTGOING
X1=1-Z*(1-Z)*XI
X2=0.5*(1+Z*(1-Z)*XI +
$ (1-Z*(1-Z)*XI)*(1-2*Z)/SQRT(1-2*Z*(1-Z)*XI))
REJFAC=SQRT(2*X1-1)/(X1*Z*(1-Z))
$ *(1+(1-Z)**2)/(Z*XI)
$ *(1-X1)*(1-X2)/(X1**2+X2**2)
C---CHECK WHETHER IT IS IN THE OVERLAP REGION
OTHXI=4*(1-X2)*X2**2/(X2**2-(2*X2-1)*(2*X1+X2-2)**2)
IF (OTHXI.LT.ONE) THEN
OTHZ=0.5*(1-SQRT(2*X2-1)/X2*(2*X1+X2-2))
REJFAC=REJFAC+SQRT(2*X2-1)/(X2*OTHZ*(1-OTHZ))
$ *(1+(1-OTHZ)**2)/(OTHZ*OTHXI)
$ *(1-X2)*(1-X1)/(X2**2+X1**2)
ENDIF
ELSE
C---COLOUR PARTNER IS INCOMING (X1=XP, X2=ZP)
X1=1/(1+Z*(1-Z)*XI)
X2=0.5*(1+(1-2*Z)/SQRT(1-2*Z*(1-Z)*XI))
REJFAC=SQRT(3-2/X1)/(X1**2*Z*(1-Z))
$ *(1+(1-Z)**2)/(Z*XI)
$ *(1-X1)*(1-X2)/
$ (1+(1-X1-X2+2*X1*X2)**2+2*(1-X1)*(1-X2)*X1*X2)
C---CHECK WHETHER IT IS IN THE OVERLAP REGION
OTHXI=(SQRT(X1+2*(1-X2)*(1-X2+X1*X2))-SQRT(X1))**2/
$ (1+X1-X2-SQRT(X1*(X1+2*(1-X2)*(1-X2+X1*X2))))
OTHZ=(SQRT(X1*(X1+2*(1-X2)*(1-X2+X1*X2)))-X1)/(1-X2)
IF (OTHXI.LT.OTHZ**2) THEN
REJFAC=REJFAC+OTHZ**3*(1-X1-X2+2*X1*X2)
$ /(X1**2*(1-OTHZ)*(OTHZ+OTHXI*(1-OTHZ)))
$ *(1+OTHZ**2)/((1-OTHZ)*OTHXI)
$ *(1-X1)*(1-X2)/
$ (1+(1-X1-X2+2*X1*X2)**2+2*(1-X1)*(1-X2)*X1*X2)
ENDIF
ENDIF
ENDIF
IF (NREJ*REJFAC*HWRGEN(NREJ).GT.ONE) THEN
QMAX=QNOW
QLST=QNOW
QNOW=-1.
GOTO 5
ENDIF
IF (QLAM.GT.HARDST) HARDST=QLAM
ENDIF
MPAR=NPAR+1
IDPAR(MPAR)=ID1
TMPAR(MPAR)=.TRUE.
PPAR(1,MPAR)=QNOW*Z1
PPAR(2,MPAR)=XI
PPAR(4,MPAR)=ENOW*Z1
NPAR=NPAR+2
IDPAR(NPAR)=ID2
TMPAR(NPAR)=.TRUE.
PPAR(1,NPAR)=QNOW*Z2
PPAR(2,NPAR)=XI
PPAR(4,NPAR)=ENOW*Z2
C---NEW MOTHER-DAUGHTER RELATIONS
JDAPAR(1,KPAR)=MPAR
JDAPAR(2,KPAR)=NPAR
JMOPAR(1,MPAR)=KPAR
JMOPAR(1,NPAR)=KPAR
C---NEW COLOUR CONNECTIONS
JCOPAR(3,KPAR)=NPAR
JCOPAR(4,KPAR)=MPAR
JCOPAR(1,MPAR)=NPAR
JCOPAR(2,MPAR)=KPAR
JCOPAR(1,NPAR)=KPAR
JCOPAR(2,NPAR)=MPAR
C
ENDIF
ENDIF
IF (QNOW.LT.ZERO) THEN
C--BRANCHING STOPS
IF (ID.EQ.IDPAR(2).AND.PPAR(5,2).GT.1D-6) THEN
PPAR(5,KPAR)=PPAR(5,2)**2
ELSE
PPAR(5,KPAR)=RMASS(ID)**2
ENDIF
PMOM=PPAR(4,KPAR)**2-PPAR(5,KPAR)
IF (PMOM.LT.-1E-6) THEN
CALL HWWARN('HWBRAN',104)
GOTO 999
ENDIF
IF (PMOM.LT.ZERO) PMOM=ZERO
PPAR(3,KPAR)=SQRT(PMOM)
JDAPAR(1,KPAR)=0
JDAPAR(2,KPAR)=0
JCOPAR(3,KPAR)=0
JCOPAR(4,KPAR)=0
ENDIF
999 RETURN
END
CDECK ID>, HWBRCN.
*CMZ :- -31/03/00 17:54:05 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWBRCN
C-----------------------------------------------------------------------
C SUBROUTINE TO REPLACE HWBCON IN RPARITY VIOLATING SUSY
C BASED ON HWBCON BY BRW
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,IST,ID,JC,JD,JHEP,IDP,IDM,IDM2,
& RHEP,IST2,ANTC,XHEP,IP,COLP
LOGICAL BVVUSE,BVVHRD,BVDEC1,BVDEC2,COLRD,ACOLRD,BVHRD,BVHRD2,
& BVDEC3
LOGICAL IFGO
C--logical functions to decide if baryon number violating
C--BVDEC1 DELTAB=+1
BVDEC1(IP) = ((IDHW(IP).GE.419.AND.IDHW(IP).LE.424).OR.
& IDHW(IP).EQ.411.OR.IDHW(IP).EQ.412.OR.
& IDHW(IP).EQ.449).AND.IDHW(JDAHEP(1,IP)).LE.6.
& AND.IDHW(JDAHEP(1,IP)+1).LE.6.AND.
& IDHW(JDAHEP(2,IP)).LE.6
C--BVDEC2 DELTAB=-1
BVDEC2(IP) = ((IDHW(IP).GE.413.AND.IDHW(IP).LE.418).OR.
& IDHW(IP).EQ.405.OR.IDHW(IP).EQ.406.OR.
& IDHW(IP).EQ.449).AND.
& IDHW(JDAHEP(1,IP)).GE.7.AND.IDHW(JDAHEP(1,IP)).LE.12.AND.
& IDHW(JDAHEP(1,IP)+1).GE.7.AND.IDHW(JDAHEP(1,IP)+1).LE.12.AND.
& IDHW(JDAHEP(2,IP)).GE.7.AND.IDHW(JDAHEP(2,IP)).LE.12
C--Neutralino and Chargino Decays
BVDEC3(IP) = ((IDHW(IP).GE.450.AND.IDHW(IP).LE.457).AND.
& (IDHW(JDAHEP(1,IP)).LE.12.AND.IDHW(JDAHEP(1,IP)+1).LE.12.
& .AND.IDHW(JDAHEP(2,IP)).LE.12))
C--Now the hard vertices
BVHRD(IP) = IDHW(IP).EQ.15.AND.IDHW(JMOHEP(1,IP)).LE.12.
& AND.IDHW(JMOHEP(2,IP)).LE.12.AND.IDHW(JDAHEP(1,IP)).LE.12.
& AND.IDHW(JDAHEP(2,IP)).GE.449.AND.IDHW(JDAHEP(2,IP)).LE.457
BVHRD2(IP) = IDHW(IP).EQ.15.AND.IDHW(JMOHEP(1,IP)).LE.12.
& AND.IDHW(JMOHEP(2,IP)).LE.12.AND.IDHW(JDAHEP(1,IP)).GE.198.
& AND.IDHW(JDAHEP(1,IP)).LE.207.
& AND.ABS(IDHEP(JDAHEP(2,IP))).GT.1000000
C--Those particles which are coloured
COLRD(IP) = IP.LE.6.OR.IP.EQ.13.OR.IP.EQ.449.OR.
& (IP.GE.401.AND.IP.LE.406).OR.(IP.GE.413.AND.IP.LE.418).OR.
& (IP.GE.115.AND.IP.LE.120).OR.IP.EQ.59
C--Those particles which are anticoloured
ACOLRD(IP) = (IP.GE.7.AND.IP.LE.12).OR.IP.EQ.13.OR.IP.EQ.449.OR.
& (IP.GE.407.AND.IP.LE.412).OR.(IP.GE.419.AND.IP.LE.424).OR.
& (IP.GE.109.AND.IP.LE.114).OR.IP.EQ.59
IF (IERROR.NE.0) RETURN
C--Added 31/03/00 PR
IF(NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWBRCN',101)
GOTO 999
ENDIF
COLP = 0
IF(COLUPD.AND.HRDCOL(1,3).NE.0) THEN
JD = 0
DO IHEP = HRDCOL(1,3),HRDCOL(1,3)+4
JD = JD+1
IF(JD.NE.3) THEN
JMOHEP(2,IHEP) = HRDCOL(1,JD)
JDAHEP(2,IHEP) = HRDCOL(2,JD)
ENDIF
ENDDO
COLUPD=.FALSE.
DO IHEP=1,5
DO JHEP=1,2
HRDCOL(JHEP,IHEP)=0
ENDDO
ENDDO
ELSEIF(COLUPD) THEN
RETURN
ENDIF
DO 110 IHEP=1,NHEP
IST=ISTHEP(IHEP)
JD =0
BVVUSE = .FALSE.
BVVHRD = .FALSE.
C---LOOK FOR PARTONS WITHOUT COLOUR MOTHERS
IF ((IST.LT.145.OR.IST.GT.152).AND.IST.NE.155) GOTO 110
IF (JMOHEP(2,IHEP).EQ.0) THEN
C---FIND COLOUR-CONNECTED PARTON
IF(IST.EQ.155.AND.ABS(IDHEP(IHEP)).EQ.6) THEN
JC = JMOHEP(1,IHEP)
ELSEIF(IST.EQ.155) THEN
GOTO 110
ELSE
JC=JMOHEP(1,IHEP)
ENDIF
IF (IST.NE.152) JC=JMOHEP(1,JC)
C--Correction for BV
IF(HRDCOL(1,1).NE.0) THEN
IDP = IDHW(HRDCOL(1,1))
ELSE
IDP = 0
ENDIF
IDM = JMOHEP(1,JC)
IF(BVDEC1(IDM).OR.BVDEC2(IDM)) THEN
IF(IDHW(IDM).EQ.449.AND.JDAHEP(1,IDM).EQ.JC) THEN
JC=JMOHEP(2,JC)
ELSE
JD = JMOHEP(2,JC)
JC = IDM
IF(JC.EQ.JD) JD= JDAHEP(2,JC-1)
BVVUSE = .TRUE.
ENDIF
C--NEW FOR BV HARD PROCESS
ELSEIF(BVHRD(IDM)) THEN
IF(IDHW(JDAHEP(2,JMOHEP(1,JC))).EQ.449) THEN
JD = JMOHEP(2,JC)
IDM2 = JDAHEP(2,HRDCOL(1,2))
IF(JD.EQ.IDM2) JD = HRDCOL(1,1)
IF(JC.EQ.JDAHEP(2,IDM2).AND.COLRD(IDHW(IHEP))) THEN
JC = JMOHEP(2,JC)
ELSEIF(JC.EQ.IDM2) THEN
IF(JDAHEP(2,JMOHEP(2,JC)).EQ.JC) THEN
JC = JMOHEP(2,JC)
ELSE
JMOHEP(2,IHEP)=JMOHEP(2,JC)
GOTO 110
ENDIF
ELSE
JC = HRDCOL(1,1)
BVVUSE = .TRUE.
BVVHRD = .TRUE.
IF(ACOLRD(IDHW(IHEP))) JC = JD
IF(JC.EQ.IDM2) GOTO 110
ENDIF
ELSE
JC =JMOHEP(2,JC)
BVVUSE = .TRUE.
BVVHRD = .TRUE.
ENDIF
ELSEIF(BVHRD2(IDM)) THEN
JD = JMOHEP(2,JC)
IF(JC.EQ.JDAHEP(2,HRDCOL(1,2))) THEN
JMOHEP(2,IHEP)=JMOHEP(2,JC)
GOTO 110
ENDIF
IF(JD.EQ.JDAHEP(2,HRDCOL(1,2))) JD = HRDCOL(1,1)
BVVUSE=.TRUE.
BVVHRD = .TRUE.
IF(JC.EQ.JDAHEP(2,HRDCOL(1,2))) THEN
JC = JMOHEP(2,JC)
ELSE
JC = HRDCOL(1,1)
ENDIF
ELSE
JC =JMOHEP(2,JC)
ENDIF
IF (JC.EQ.0) THEN
CALL HWWARN('HWBCON',51)
GOTO 110
ENDIF
C---FIND SPECTATOR WHEN JC IS DECAYED HEAVY QUARK OR SUSY PARTICLE
IF (ISTHEP(JC).EQ.155) THEN
IF (IDHEP(JMOHEP(1,JC)).EQ.94) THEN
C---DECAYED BEFORE HADRONIZING
IF(BVVHRD) THEN
JHEP = JC
ELSEIF(BVVUSE) THEN
JHEP=JDAHEP(2,JC-1)
ELSE
JHEP=JMOHEP(2,JC)
ENDIF
IF(JHEP.EQ.0.AND.ABS(IDHEP(JC)).EQ.6) THEN
JHEP = JMOHEP(1,JMOHEP(1,JC))
IF(BVDEC1(JMOHEP(1,JHEP)).OR.BVDEC2(JMOHEP(1,JHEP))) THEN
JC = JHEP
JHEP = JDAHEP(2,JC-1)
ELSE
JHEP = 0
ENDIF
ENDIF
IF(BVVUSE.AND.ABS(IDHEP(JHEP)).GT.1000000.AND.
& ISTHEP(JHEP).NE.155.OR.JHEP.EQ.0) GOTO 110
ID=IDHW(JHEP)
IF (ISTHEP(JHEP).EQ.155) THEN
C---SPECIAL FOR GLUINO DECAYS
IF (ID.EQ.449) THEN
ID=IDHW(JC)
IF(BVVUSE) THEN
ID=IDHW(IHEP)
IF(ID.LE.6.OR.ID.EQ.13.OR.
& (ID.GE.115.AND.ID.LE.120)) THEN
ID = 7
ELSE
ID = 1
ENDIF
ENDIF
CALL HWBRC1(JC,ID,JHEP,.TRUE.,IFGO)
IF(IFGO) GOTO 999
IF(BVVUSE.AND.JMOHEP(1,JC).EQ.JMOHEP(1,JD)) JC =JD
ELSE
JC=JDAHEP(2,JHEP)
IF(COLRD(IDHW(IHEP)).AND.IDHW(JDAHEP(1,JHEP)).EQ.449)
& JC=JDAHEP(1,JHEP)
IF(BVVUSE.AND.JMOHEP(1,JC).EQ.JMOHEP(1,JD)) JC =JD
ENDIF
ELSE
IF(BVVUSE) THEN
IF(BVDEC2(JMOHEP(1,JHEP)).OR.JD.NE.JHEP.OR.
& BVHRD(JMOHEP(1,JHEP)).OR.BVHRD2(JMOHEP(1,JHEP))) THEN
JC = JD
GOTO 100
ELSE
JMOHEP(2,IHEP)=JHEP
ID = IDHW(JHEP)
IF((ID.GE.7.AND.ID.LE.12).OR.
& (ID.GE.109.AND.ID.LE.114)) JMOHEP(2,JHEP)=IHEP
ENDIF
ELSE
C--new for particles connected to BV
IDM = JMOHEP(1,JHEP)
IF(BVDEC1(IDM).OR.BVHRD(IDM).OR.BVHRD2(IDM)) THEN
JC = JHEP
IF(ABS(IDHEP(IHEP)).LT.1000000) GOTO 100
JMOHEP(2,IHEP)=JHEP
GOTO 110
ENDIF
C--new for top's from BV
ID = IDHW(JC)
IDP = JMOHEP(1,JMOHEP(1,JMOHEP(1,JC)))
IF((ID.EQ.6.AND.(BVDEC1(IDP))).
& OR.(ID.EQ.12.AND.BVDEC2(IDP)).
& OR.((ID.EQ.12.OR.ID.EQ.449).AND.BVHRD(IDP))) THEN
JMOHEP(2,IHEP)=JHEP
IF(JDAHEP(2,JHEP).EQ.JC) JDAHEP(2,JHEP)=IHEP
ELSE
IF((IDHW(IHEP).GE.7.AND.IDHW(IHEP).LE.12.
& AND.IDHW(JHEP).GE.7.AND.IDHW(JHEP).LE.12).OR.
& (IDHW(IHEP).LE.6.AND.IDHW(JHEP).LE.6)) THEN
JMOHEP(2,IHEP)=JHEP
ELSE
JMOHEP(2,IHEP)=JHEP
IF((COLRD(IDHW(IHEP)).AND.ACOLRD(IDHW(JHEP))).OR.
& (.NOT.COLRD(IDHW(IHEP)).AND.
& .NOT.ACOLRD(IDHW(JHEP)))) THEN
IF(JDAHEP(2,JHEP).EQ.0) THEN
JDAHEP(2,JHEP)=IHEP
ELSEIF(JMOHEP(2,JDAHEP(2,JHEP)).NE.JHEP) THEN
JDAHEP(2,JHEP)=IHEP
ENDIF
ELSE
IF(JMOHEP(2,JHEP).EQ.JC) JMOHEP(2,JHEP)=IHEP
ENDIF
ENDIF
ENDIF
ENDIF
GOTO 110
ENDIF
ELSE
JC=JMOHEP(2,JC)
ENDIF
ENDIF
100 CONTINUE
IF(BVVUSE.AND.ABS(IDHEP(JC)).LT.1000000.AND.JC.NE.JD
& .AND.JD.NE.0.AND.JD.NE.JMOHEP(1,JC)) JC = JD
IF(BVVUSE.AND.ABS(IDHEP(JC)).GT.1000000) THEN
IF(COLRD(IDHW(IHEP)).AND..NOT.BVVHRD) GOTO 110
ENDIF
IF(BVVUSE.AND.ISTHEP(JC).EQ.149) JC=JMOHEP(1,JMOHEP(1,JC))
C--SEARCH IN THE JET
IF((ISTHEP(JC).GT.145.AND.ISTHEP(JC).LT.152).AND.
& ISTHEP(IHEP).EQ.155) THEN
JMOHEP(2,IHEP) = JC
GOTO 110
ENDIF
CALL HWBRC2(COLP,IHEP,JC,.TRUE.,BVVUSE,BVVHRD)
IF(COLP.NE.0) THEN
JMOHEP(2,IHEP) = COLP
IF(COLRD(IDHW(IHEP)).AND.ACOLRD(IDHW(COLP)).
& AND.JDAHEP(2,COLP).EQ.0)
& JDAHEP(2,COLP) = IHEP
IF((IDHW(IHEP).GE.7.AND.IDHW(IHEP).LE.12).AND.
& (IDHW(COLP).GE.7.AND.IDHW(COLP).LE.12)) THEN
IF(JMOHEP(2,COLP).EQ.0) JMOHEP(2,COLP) = IHEP
ENDIF
ENDIF
ENDIF
110 CONTINUE
C---BREAK COLOUR CONNECTIONS WITH PHOTONS modified for Rslash
IHEP=1
130 IF (IHEP.LE.NHEP) THEN
IF (IDHW(IHEP).EQ.59 .AND. ISTHEP(IHEP).EQ.149.AND.
& (JMOHEP(2,IHEP).NE.IHEP.OR.JDAHEP(2,IHEP).NE.IHEP)) THEN
IF(JMOHEP(2,IHEP).NE.0) THEN
IF (JDAHEP(2,JMOHEP(2,IHEP)).EQ.IHEP)
& JDAHEP(2,JMOHEP(2,IHEP))=JDAHEP(2,IHEP)
ENDIF
IF (JDAHEP(2,IHEP).NE.0) THEN
IF (JMOHEP(2,JDAHEP(2,IHEP)).EQ.IHEP)
& JMOHEP(2,JDAHEP(2,IHEP))=JMOHEP(2,IHEP)
ENDIF
DO RHEP=1,NHEP
IST=ISTHEP(RHEP)
IF((IST.GE.147.AND.IST.LE.149).AND.JDAHEP(2,RHEP).EQ.IHEP)
& JDAHEP(2,RHEP)=JMOHEP(2,IHEP)
ENDDO
DO RHEP=1,NHEP
IST=ISTHEP(RHEP)
IF((IST.GE.147.AND.IST.LE.149).AND.JMOHEP(2,RHEP).EQ.IHEP)
& JMOHEP(2,RHEP) = JDAHEP(2,IHEP)
ENDDO
JMOHEP(2,IHEP)=IHEP
JDAHEP(2,IHEP)=IHEP
ENDIF
IHEP=IHEP+1
GOTO 130
ENDIF
C--Update the BV anticolour corrections
DO 210 IHEP=1,NHEP+1
IF(IHEP.EQ.1) GOTO 210
IST2 = 0
IF(IHEP.EQ.NHEP+1) THEN
ANTC = HRDCOL(1,1)
IF(ANTC.EQ.0.OR.(IDHW(JMOHEP(1,HRDCOL(1,2))).LE.6)) GOTO 210
IST=155
XHEP=HRDCOL(1,2)
IF(ANTC.EQ.JDAHEP(2,XHEP)) ANTC=JDAHEP(1,JDAHEP(1,ANTC))
IF(ANTC.NE.0.AND.JDAHEP(1,ANTC).NE.0) IST2=ISTHEP(ANTC)
ELSE
ANTC = JDAHEP(2,IHEP-1)
IF(ANTC.NE.0) IST2=ISTHEP(ANTC)
IST=ISTHEP(IHEP)
IDM = IDHW(IHEP)
XHEP=IHEP
ENDIF
JC = 0
JHEP = 0
JD = 0
IF(IST.EQ.155.AND.IST2.EQ.155) THEN
IDM = IDHW(XHEP)
IF(BVDEC1(XHEP).OR.BVDEC2(XHEP).OR.BVHRD(XHEP).OR.
& BVHRD2(XHEP)) THEN
JC=ANTC
ID = IDHW(JC)
JHEP = JC
IF(BVDEC1(JC).OR.BVDEC2(JC)) THEN
IF(IHEP.EQ.(NHEP+1)) ANTC=JDAHEP(1,JC)
GOTO 200
ENDIF
IF (ID.EQ.449) THEN
C--SPECIAL FOR GLUINO DECAYS
ID=IDHW(XHEP)
IF(IHEP.EQ.NHEP+1) ID = 407
CALL HWBRC1(JC,ID,JHEP,.FALSE.,IFGO)
IF(IFGO) GOTO 999
ELSE
IF(IDHW(JDAHEP(1,JHEP)).EQ.449) THEN
JC=JDAHEP(1,JHEP)
ELSE
JC=JDAHEP(2,JHEP)
ENDIF
ENDIF
C--SEARCH IN JET
CALL HWBRC2(COLP,XHEP,JC,.FALSE.,BVVUSE,.FALSE.)
ANTC = COLP
IF(IHEP.LE.NHEP.AND.ACOLRD(IDHW(IHEP)).AND.
& COLRD(IDHW(COLP)).AND.JMOHEP(2,COLP).EQ.0) THEN
JMOHEP(2,COLP) = IHEP
ELSEIF(IHEP.LE.NHEP.AND.IDHW(IHEP).LE.6.AND.
& IDHW(COLP).LE.6.AND.JDAHEP(2,COLP).EQ.0) THEN
JDAHEP(2,COLP) = IHEP
ELSEIF(IHEP.GT.NHEP.AND.
& ((BVHRD(XHEP).AND.COLRD(JDAHEP(1,XHEP))).
& OR.(BVHRD2(XHEP).AND.ACOLRD(JDAHEP(2,XHEP)))).AND.
& ACOLRD(IDHW(COLP)).AND.JDAHEP(2,COLP).EQ.0) THEN
JDAHEP(2,COLP) = IHEP
ENDIF
ENDIF
ENDIF
200 CONTINUE
IF(IHEP.EQ.NHEP+1) THEN
IF(HRDCOL(1,1).NE.ANTC.AND.ANTC.NE.0) THEN
HRDCOL(1,1)=ANTC
IF(JDAHEP(2,ANTC).EQ.IHEP) THEN
IF(JDAHEP(2,JMOHEP(1,HRDCOL(1,2))).EQ.JDAHEP(2,HRDCOL(1,2)).
& AND.JMOHEP(2,JDAHEP(2,HRDCOL(1,2))).EQ.JMOHEP(1,HRDCOL(1,2)))
& THEN
JDAHEP(2,ANTC) = JMOHEP(2,HRDCOL(1,2))
ELSE
JDAHEP(2,ANTC) = JMOHEP(1,HRDCOL(1,2))
ENDIF
ELSEIF(JMOHEP(2,ANTC).EQ.IHEP) THEN
JMOHEP(2,ANTC) = JMOHEP(1,HRDCOL(1,2))
ENDIF
ENDIF
ELSEIF(IHEP.NE.1) THEN
IF(JDAHEP(2,IHEP-1).NE.ANTC.AND.ANTC.NE.0) JDAHEP(2,IHEP-1)=ANTC
ENDIF
210 CONTINUE
C--Update BV decaying particles connections
DO 310 IHEP=1,NHEP+1
IF(IHEP.EQ.1) GOTO 310
IF(IHEP.EQ.NHEP+1) THEN
ANTC=HRDCOL(1,1)
IF(ANTC.EQ.0.OR.IDHW(JDAHEP(1,HRDCOL(1,2))).LE.6) GOTO 310
IST=155
XHEP=HRDCOL(1,2)
IF(ANTC.EQ.JDAHEP(2,XHEP)) ANTC=JDAHEP(1,JDAHEP(1,ANTC))
ELSE
ANTC=JMOHEP(2,IHEP)
IST=ISTHEP(IHEP)
IDM = IDHW(IHEP)
XHEP=IHEP
ENDIF
IST2 = 0
JC = 0
JD = 0
IF(ANTC.NE.0.AND.IHEP.NE.NHEP+1) THEN
IF(JDAHEP(1,ANTC).NE.0) IST2 = ISTHEP(ANTC)
ELSEIF(ANTC.NE.0.AND.IHEP.EQ.NHEP+1) THEN
IST2=ISTHEP(ANTC)
ENDIF
IF(IST.EQ.155.AND.IST2.EQ.155) THEN
IF(BVDEC2(XHEP).OR.BVHRD(XHEP).OR.BVHRD2(XHEP)) THEN
C--FIND COLOUR CONNECTED PARTON
JC = ANTC
ID=IDHW(JC)
JHEP = JC
IF(BVDEC2(JHEP)) THEN
ANTC=JC
GOTO 300
ENDIF
IF (ID.EQ.449) THEN
ID=IDHW(XHEP)
IF(IHEP.EQ.NHEP+1) ID = 401
C--SPECIAL FOR GLUINO DECAYS
CALL HWBRC1(JC,ID,JHEP,.TRUE.,IFGO)
IF(IFGO) GOTO 999
ELSE
IF(IDHW(JDAHEP(1,JHEP)).EQ.449) THEN
JC=JDAHEP(1,JHEP)
ELSE
JC=JDAHEP(2,JHEP)
ENDIF
ENDIF
C--SEARCH IN JET
CALL HWBRC2(COLP,XHEP,JC,.TRUE.,BVVUSE,.FALSE.)
ANTC = COLP
IF(COLP.EQ.0) GOTO 300
IF(IHEP.LE.NHEP) THEN
IF(JDAHEP(2,COLP).EQ.0) THEN
JDAHEP(2,COLP) = JDAHEP(2,IHEP)
ELSEIF(JMOHEP(2,JDAHEP(2,COLP)).NE.COLP) THEN
JDAHEP(2,COLP) = JDAHEP(2,IHEP)
ENDIF
ELSEIF(IHEP.GT.NHEP.AND.
& ((BVHRD(XHEP).AND.ACOLRD(JDAHEP(1,XHEP)).AND.
& IDHW(JDAHEP(2,XHEP)).EQ.449).
& OR.(BVHRD2(XHEP).AND.ACOLRD(JDAHEP(2,XHEP)))).AND.
& ACOLRD(IDHW(COLP)).AND.JDAHEP(2,COLP).EQ.0) THEN
JDAHEP(2,COLP) = IHEP
ENDIF
ENDIF
ENDIF
300 CONTINUE
IF(IHEP.NE.NHEP+1.AND.IHEP.NE.1) THEN
IF(JMOHEP(2,IHEP).NE.ANTC.AND.ANTC.NE.0) JMOHEP(2,IHEP)=ANTC
ELSEIF(IHEP.GT.NHEP) THEN
IF(HRDCOL(1,1).NE.ANTC.AND.ANTC.NE.0) HRDCOL(1,1)=ANTC
IF(ANTC.EQ.0) GOTO 310
IF(JDAHEP(2,ANTC).EQ.IHEP) THEN
IF(JDAHEP(2,JMOHEP(1,HRDCOL(1,2))).EQ.JDAHEP(2,HRDCOL(1,2)).
& AND.JMOHEP(2,JDAHEP(2,HRDCOL(1,2))).EQ.JMOHEP(1,HRDCOL(1,2)))
& THEN
JDAHEP(2,ANTC) = JMOHEP(2,HRDCOL(1,2))
ELSE
JDAHEP(2,ANTC) = JMOHEP(1,HRDCOL(1,2))
ENDIF
ELSEIF(JMOHEP(2,ANTC).EQ.IHEP) THEN
JMOHEP(2,ANTC) = JMOHEP(1,HRDCOL(1,2))
ENDIF
ENDIF
310 CONTINUE
C--Update partons connected to decaying SUSY particle
DO 400 IHEP=1,NHEP
IST=ISTHEP(IHEP)
C--LOOK FOR PARTONS CONNECTED TO A DECAYING SUSY PARTICLE
IF (IST.LT.145.OR.IST.GT.152) GOTO 400
IF(JMOHEP(2,IHEP).EQ.0) GOTO 400
IF(ISTHEP(JMOHEP(2,IHEP)).EQ.155) THEN
C--FIND THE COLOUR CONNECTED PARTON
JC=JMOHEP(2,IHEP)
ID=IDHW(JC)
JHEP = JC
IF(BVDEC2(JC).AND.IDHW(JC).NE.449) THEN
IF(IDHW(IHEP).GE.7.AND.IDHW(IHEP).LE.12)
& JMOHEP(2,IHEP)=JDAHEP(1,JC)
GOTO 400
ENDIF
IF (ID.EQ.449) THEN
C--SPECIAL FOR GLUINO DECAYS
ID=IDHW(IHEP)
CALL HWBRC1(JC,ID,JHEP,.TRUE.,IFGO)
IF(IFGO) GOTO 999
ELSE
ID=IDHW(IHEP)
IF(COLRD(ID).AND.IDHW(JDAHEP(1,JC)).EQ.449) THEN
JC=JDAHEP(1,JHEP)
ELSE
JC=JDAHEP(2,JHEP)
IF(IDHW(JHEP).EQ.6.AND.IDHW(JC).EQ.13) JC=JC-1
ENDIF
ENDIF
C--SEARCH IN JET
CALL HWBRC2(COLP,IHEP,JC,.TRUE.,BVVUSE,.FALSE.)
JMOHEP(2,IHEP) = COLP
ENDIF
400 CONTINUE
C--Update partons connected to decaying SUSY particle
DO 500 IHEP=1,NHEP
IST=ISTHEP(IHEP)
C--LOOK FOR PARTONS CONNECTED TO A DECAYING SUSY PARTICLE
IF (IST.LT.145.OR.IST.GT.152) GOTO 500
IF(JDAHEP(2,IHEP).EQ.0) GOTO 500
IF(ISTHEP(JDAHEP(2,IHEP)).EQ.155) THEN
C--FIND THE COLOUR CONNECTED PARTON
JC=JDAHEP(2,IHEP)
ID=IDHW(JC)
ID=IDHW(JC)
IF (ID.EQ.449) THEN
ID=IDHW(IHEP)
C--SPECIAL FOR GLUINO DECAYS
JHEP = JC
CALL HWBRC1(JC,ID,JHEP,.FALSE.,IFGO)
IF(IFGO) GOTO 999
ELSE
IF(ACOLRD(IDHW(IHEP)).AND.IDHW(JDAHEP(1,JC)).EQ.449) THEN
JC = JDAHEP(1,JC)
ELSE
JC=JDAHEP(2,JC)
ENDIF
ENDIF
C--SEARCH IN THE JET
CALL HWBRC2(COLP,IHEP,JC,.FALSE.,BVVUSE,.FALSE.)
IF(COLP.NE.0) JDAHEP(2,IHEP) = COLP
ENDIF
500 CONTINUE
C--Flavour and anticolour connections in Rslash
DO 610 IHEP=1,NHEP
IST=ISTHEP(IHEP)
IF(IST.LT.145.OR.IST.GT.152.OR.JDAHEP(2,IHEP).NE.0) GOTO 610
JD = 0
BVVUSE = .FALSE.
JC = JMOHEP(1,IHEP)
IF(IST.NE.152) JC = JMOHEP(1,JC)
IF(JC.EQ.0) THEN
CALL HWWARN('HWBRCN',51)
GOTO 610
ENDIF
C--For particles which came from a top decay
IF(ABS(IDHEP(JMOHEP(1,JC))).EQ.6) THEN
JD = JMOHEP(1,JMOHEP(1,JMOHEP(1,JC)))
C--flavour connect to self if needed
IF(JDAHEP(2,JMOHEP(1,JC)-1).EQ.JMOHEP(1,JC)) THEN
JDAHEP(2,IHEP) = IHEP
GOTO 610
ELSEIF(JDAHEP(2,JMOHEP(1,JC)-1).NE.0) THEN
JDAHEP(2,IHEP) = JDAHEP(2,JMOHEP(1,JC)-1)
GOTO 610
ELSE
JC = JD
ENDIF
ENDIF
C--Decide if this came from a BV decay
IDM = JMOHEP(1,JC)
IF(BVDEC1(IDM).OR.BVDEC2(IDM).OR.BVDEC3(IDM).
& OR.BVHRD(IDM).OR.BVHRD2(IDM)) THEN
C--Do BV piece
IF(JDAHEP(2,JC).EQ.JMOHEP(1,JC)) THEN
IF(IDHW(JMOHEP(1,JC)).EQ.449.AND.
& JDAHEP(1,JMOHEP(1,JC)).EQ.JC) THEN
JC = JDAHEP(2,JMOHEP(1,JC)-1)
ELSE
JC = JMOHEP(2,JMOHEP(1,JC))
ENDIF
IF(ABS(IDHEP(JC)).LT.1000000) THEN
IF(JDAHEP(1,JC).EQ.0) THEN
JDAHEP(2,IHEP) = JC
GOTO 610
ELSE
GOTO 600
ENDIF
ELSEIF(ABS(IDHEP(JC)).GT.1000000
& .AND.ISTHEP(JC).NE.155) THEN
GOTO 610
ENDIF
IF(ISTHEP(JC).EQ.155.AND.ACOLRD(IDHW(IHEP))) THEN
JC = JDAHEP(1,JC)
ELSE
IF(ISTHEP(JC).EQ.155.AND.IDHW(JDAHEP(1,JC)).NE.449) THEN
JC = JDAHEP(1,JC)
ELSE
JC = JDAHEP(2,JC)
ENDIF
ENDIF
ELSE
C--For the hard process
IF(IDHW(IDM).EQ.15.AND.JC.EQ.JDAHEP(2,JMOHEP(1,JC))) THEN
JDAHEP(2,IHEP) = JDAHEP(2,JC)
GOTO 610
ELSEIF(IDHW(IDM).EQ.15.AND.IDHW(IHEP).NE.449) THEN
JD=HRDCOL(1,1)
IF(BVHRD(IDM).AND.IDHW(JDAHEP(2,IDM)).NE.449) THEN
JC = JDAHEP(2,JC)
GOTO 600
ELSEIF(JMOHEP(1,JDAHEP(2,JC)).EQ.JD) THEN
JC=JDAHEP(2,JC)
GOTO 600
ENDIF
IF(JDAHEP(2,JC).EQ.8) JC = JD
ELSE
JD=JMOHEP(2,JMOHEP(1,JC))
ENDIF
IF(COLRD(IDHW(IHEP)).AND..NOT.ACOLRD(IDHW(IHEP)).AND.
& ABS(IDHEP(JD)).GT.1000000.AND.ISTHEP(JD).NE.155) THEN
JDAHEP(2,IHEP) = JD
IF(JDAHEP(2,JD).EQ.0) JDAHEP(2,JD) = IHEP
ENDIF
IF(ABS(IDHEP(JD)).GT.1000000
& .AND.ISTHEP(JD).NE.155) GOTO 610
IF(ISTHEP(JC).EQ.149) THEN
JDAHEP(2,IHEP)=JC
GOTO 610
ENDIF
IF(ACOLRD(IDHW(IHEP)).AND.IDHW(JC).EQ.449.AND.BVDEC2(JC)) THEN
JC = JDAHEP(1,JC)
ELSE
JC = JDAHEP(2,JC)
ENDIF
ENDIF
C--SEARCH IN THE JET
600 CALL HWBRC2(COLP,IHEP,JC,.FALSE.,BVVUSE,.FALSE.)
IF(COLP.NE.0) THEN
IF(ABS(IDHEP(COLP)).EQ.6.AND.JDAHEP(1,COLP).NE.0) THEN
IF(ISTHEP(COLP).EQ.155) THEN
JC = JDAHEP(2,COLP)
ELSE
JC = JDAHEP(2,JDAHEP(2,COLP))
ENDIF
GOTO 600
ENDIF
JDAHEP(2,IHEP) = COLP
ENDIF
ELSE
C--check if it came from a top
IF(ABS(IDHEP(JC)).EQ.6) THEN
C--start the analysis again
JC = JMOHEP(1,IHEP)
IF(IST.NE.152) JC = JMOHEP(1,JC)
JC = JDAHEP(2,JC)
IF(JC.EQ.0) THEN
CALL HWWARN('HWBRCN',52)
GOTO 610
ENDIF
IF(ISTHEP(JC).EQ.155) THEN
IF (IDHEP(JMOHEP(1,JC)).EQ.94) THEN
C---DECAYED BEFORE HADRONIZING
JHEP=JDAHEP(2,JC-1)
IF (JHEP.EQ.0) GO TO 610
ID=IDHW(JHEP)
IF (ISTHEP(JHEP).EQ.155) THEN
C---SPECIAL FOR GLUINO DECAYS
IF (ID.EQ.449) THEN
CALL HWBRC1(JC,ID,JHEP,.TRUE.,IFGO)
IF(IFGO) GOTO 999
ELSE
JC=JDAHEP(2,JHEP)
ENDIF
ELSE
IF(JMOHEP(2,JHEP).EQ.JC) JMOHEP(2,JHEP)=IHEP
JDAHEP(2,IHEP) = JHEP
GOTO 610
ENDIF
ELSE
JC=JDAHEP(2,JC-1)
ENDIF
ENDIF
C--SEARCH IN JET
CALL HWBRC2(COLP,IHEP,JC,.FALSE.,BVVUSE,.FALSE.)
IF(COLP.NE.0) JDAHEP(2,IHEP) = COLP
ELSE
IF(ISTHEP(JMOHEP(1,JC)).EQ.155
& .AND.IDHW(JC).LE.6) THEN
JDAHEP(2,IHEP) = JDAHEP(2,JMOHEP(1,JC)-1)
IF(JDAHEP(2,IHEP).NE.0) GOTO 610
ENDIF
CALL HWWARN('HWBRCN',100)
GOTO 610
ENDIF
ENDIF
610 CONTINUE
999 RETURN
END
CDECK ID>, HWBRC1.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : PeterRichardson
C-----------------------------------------------------------------------
SUBROUTINE HWBRC1(JC,ID,JHEP,COL,IFGO)
C-----------------------------------------------------------------------
C--Function to find the right daugther of a decaying gluino
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID,JHEP,KC,JC
LOGICAL COL,IFGO
C---N.B. WILL NEED MODS WHEN SUSY PARTICLES CAN SHOWER
C--Rparity take the first daughther
IFGO = .FALSE.
IF(IDHW(JDAHEP(1,JHEP)).LE.12.AND.IDHW(JDAHEP(1,JHEP)+1).LE.12
& .AND.IDHW(JDAHEP(2,JHEP)).LE.12) THEN
KC = JDAHEP(1,JHEP)
GOTO 20
ELSEIF ((COL.AND.(ID.EQ.449.OR.ID.EQ.13)).OR.
& (ID.GE.401.AND.ID.LE.406).OR.
& (ID.GE.413.AND.ID.LE.418).OR.ID.LE.6.OR.
& (ID.GE.115.AND.ID.LE.120)) THEN
C---LOOK FOR ANTI(S)QUARK OR GLUON
DO KC=JDAHEP(1,JHEP),JDAHEP(2,JHEP)
ID=IDHW(KC)
IF ((ID.GE.7.AND.ID.LE.13).OR.(ID.GE.407.AND.ID.LE.412).OR.
& (ID.GE.419.AND.ID.LE.424)) GOTO 20
ENDDO
ELSE
C---LOOK FOR (S)QUARK OR GLUON
DO KC=JDAHEP(1,JHEP),JDAHEP(2,JHEP)
ID=IDHW(KC)
IF (ID.LE. 6.OR. ID.EQ. 13.OR.(ID.GE.401.AND.ID.LE.406).OR.
& (ID.GE.413.AND.ID.LE.418)) GOTO 20
ENDDO
ENDIF
C---COULDNT FIND ONE
CALL HWWARN('HWBRC1',100)
IFGO = .TRUE.
RETURN
20 JC=KC
END
CDECK ID>, HWBRC2.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWBRC2(COLP,IHEP,JC,CON,BVVUSE,BVVHRD)
C-----------------------------------------------------------------------
C--Function to search in the jet for the particle
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER JC,JD,QHEP,LHEP,IHEP,JHEP,IDM,NCOUNT,ID,IP,IDM2,COLP
LOGICAL CON,BVVUSE,FLA,AFLA,BVVHRD
FLA(IP) = (IP.LE.6.OR.(IP.GE.115.AND.IP.LE.120).
& OR.(IP.GE.401.AND.IP.LE.406).
& OR.(IP.GE.413.AND.IP.LE.418))
AFLA(IP) = ((IP.LE.12.AND.IP.GE.7).OR.(IP.GE.109.AND.IP.LE.114).
& OR.(IP.GE.407.AND.IP.LE.412).
& OR.(IP.GE.419.AND.IP.LE.424))
ID = IDHW(IHEP)
COLP = 0
C--begining and end of jet
IF(JDAHEP(1,JC).NE.0) THEN
JC=JDAHEP(1,JC)
JD=JDAHEP(2,JC)
ELSE
COLP = JC
RETURN
ENDIF
IF (JD.LT.JC) JD=JC
LHEP=0
IF(CON) THEN
C--SEARCH FOR A COLOUR PARTNER
DO 110 JHEP=JC,JD
IDM = IDHW(JHEP)
IF (ISTHEP(JHEP).LT.145.OR.ISTHEP(JHEP).GT.152) GOTO 110
IF(AFLA(ID).AND.IDM.EQ.13) GOTO 110
IF (JDAHEP(2,JHEP).EQ.IHEP) LHEP=JHEP
IF ((BVVUSE.AND.JMOHEP(2,JHEP).NE.0).OR.
& (.NOT.BVVUSE.AND.JDAHEP(2,JHEP).NE.0)) GOTO 110
IF(BVVUSE.AND.ABS(IDHEP(JHEP)).GT.1000000) THEN
IF(BVVHRD.AND.AFLA(ID)) THEN
CONTINUE
ELSE
RETURN
ENDIF
ENDIF
IF(BVVUSE.AND.(
& ((FLA(ID).OR.ID.EQ.13.OR.ID.EQ.449).AND.AFLA(IDM)).
& OR.(AFLA(ID).AND.(FLA(IDM).OR.IDM.EQ.13.OR.IDM.EQ.449))))
& GOTO 110
IF(AFLA(ID).AND.(IDM.EQ.59.OR.IDM.EQ.449.OR.IDM.EQ.13)) GOTO 110
C---JOIN IHEP AND JHEP
COLP=JHEP
IF(BVVUSE.OR.(ID.GE.7.AND.ID.LE.12.
& AND.((IDM.GE.7.AND.IDM.LE.12)))) RETURN
IF(IHEP.NE.HRDCOL(1,2).AND.
& (((FLA(ID).OR.ID.EQ.13.OR.ID.EQ.449.OR.ID.EQ.59)
& .AND.(AFLA(IDM).OR.IDM.EQ.13.OR.IDM.EQ.449.OR.IDM.EQ.59))
& .OR.(AFLA(ID).AND.(FLA(IDM).OR.IDM.EQ.59))))
& JDAHEP(2,JHEP)=IHEP
RETURN
110 CONTINUE
IF (LHEP.NE.0) COLP=LHEP
C--Additional Baryon number violating piece
IF(COLP.EQ.0) THEN
IDM2= IDHW(JC)
IF(JMOHEP(1,JC).LT.6) THEN
IF(IDM2.LE.6) THEN
IDM2= IDM2+6
ELSEIF(IDM2.GT.6) THEN
IDM2=IDM2-6
ENDIF
ENDIF
IF(IHEP.EQ.HRDCOL(1,2).OR.
& ((FLA(ID).OR.ID.EQ.13.OR.ID.EQ.449.OR.ID.EQ.15.OR.ID.EQ.59)
& .AND.(AFLA(IDM2).OR.IDM2.EQ.13.OR.IDM2.EQ.13))) THEN
QHEP = JD+1
12 QHEP = QHEP-1
IF(IDHEP(QHEP).EQ.0) GOTO 12
IF(IDHW(QHEP).EQ.59) THEN
IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
COLP = IHEP
RETURN
ELSE
GOTO 12
ENDIF
ENDIF
NCOUNT = 0
11 IF(JDAHEP(2,QHEP).NE.0) THEN
IF(JMOHEP(2,JDAHEP(2,QHEP)).EQ.QHEP.AND.
& JDAHEP(2,QHEP).NE.QHEP) THEN
IF(JDAHEP(2,QHEP).GE.JC.AND.JDAHEP(2,QHEP).LE.JD) THEN
QHEP = JDAHEP(2,QHEP)
NCOUNT = NCOUNT+1
IF(NCOUNT.LT.NHEP) GOTO 11
ENDIF
ENDIF
ENDIF
ELSE
QHEP = JC
13 QHEP = QHEP+1
IF(IDHEP(QHEP).EQ.0) GOTO 13
IF(IDHW(QHEP).EQ.59) THEN
IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
COLP = IHEP
RETURN
ELSE
GOTO 13
ENDIF
ENDIF
NCOUNT = 0
9 IF(JMOHEP(2,QHEP).NE.0) THEN
IF(JDAHEP(2,JMOHEP(2,QHEP)).EQ.QHEP.AND.
& JMOHEP(2,QHEP).NE.QHEP) THEN
IF(JMOHEP(2,QHEP).GE.JC.AND.JMOHEP(2,QHEP).LE.JD) THEN
QHEP = JMOHEP(2,QHEP)
NCOUNT = NCOUNT+1
IF(NCOUNT.LT.NHEP) GOTO 9
ENDIF
ENDIF
ENDIF
ENDIF
IF(ABS(IDHEP(QHEP)).LT.1000000) COLP=QHEP
ENDIF
ELSE
C--Search for an anticolour partner
DO 210 JHEP=JC,JD
IF (ISTHEP(JHEP).LT.145.OR.ISTHEP(JHEP).GT.152) GOTO 210
IF (JMOHEP(2,JHEP).EQ.IHEP) LHEP=JHEP
IF (JMOHEP(2,JHEP).NE.0) GOTO 210
C---JOIN IHEP AND JHEP
COLP=JHEP
RETURN
210 CONTINUE
IF (LHEP.NE.0) COLP=LHEP
C--New piece
IF(COLP.EQ.0) THEN
IDM2=IDHW(JC)
IF(JMOHEP(1,JC).LT.6) THEN
IF(IDM2.LE.6) THEN
IDM2= IDM2+6
ELSEIF(IDM2.GT.6) THEN
IDM2=IDM2-6
ENDIF
ENDIF
C--Additional Baryon number violating piece
IF((FLA(ID).AND.AFLA(IDM2)).OR.
& ((AFLA(ID).OR.ID.EQ.13.OR.ID.EQ.449.OR.ID.EQ.15.OR.ID.EQ.59)
& .AND.(FLA(IDM2).OR.IDM2.EQ.13.OR.IDM2.EQ.449)
& .AND..NOT.(IDHW(JMOHEP(1,JC)).EQ.13.AND.
& IDHW(JMOHEP(1,JMOHEP(1,JC))).EQ.12.AND.
& ISTHEP(JMOHEP(1,JMOHEP(1,JC))).EQ.155)
& )) THEN
C--special for gluino decay to gluon
IF(ID.EQ.449.AND.IDHW(JMOHEP(1,JMOHEP(1,JC))).EQ.449.AND.
& IDHW(JMOHEP(1,JC)).EQ.13) RETURN
QHEP = JC
211 QHEP = QHEP+1
IF(IDHEP(QHEP).EQ.0) GOTO 211
IF(IDHW(QHEP).EQ.59) THEN
IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
COLP = IHEP
RETURN
ELSE
GOTO 211
ENDIF
ENDIF
NCOUNT = 0
209 IF(JMOHEP(2,QHEP).NE.0) THEN
IF(JDAHEP(2,JMOHEP(2,QHEP)).EQ.QHEP.AND.
& JMOHEP(2,QHEP).NE.QHEP) THEN
IF(JMOHEP(2,QHEP).GE.JC.AND.JMOHEP(2,QHEP).LE.JD) THEN
QHEP = JMOHEP(2,QHEP)
NCOUNT = NCOUNT+1
IF(NCOUNT.LT.NHEP) GOTO 209
ENDIF
ENDIF
ENDIF
IF(QHEP.NE.0) COLP=QHEP
IF(JDAHEP(2,QHEP).EQ.0.AND.IHEP.NE.6) THEN
IDM2= IDHW(QHEP)
IF(FLA(IHEP).AND.FLA(QHEP).OR.
& ((AFLA(IHEP).OR.ID.EQ.13.OR.ID.EQ.449).AND.
& (AFLA(QHEP).OR.IDM2.EQ.13.OR.IDM2.EQ.449)))
& JDAHEP(2,QHEP)=IHEP
ENDIF
ELSE
QHEP = JD+1
220 QHEP = QHEP-1
IF(IDHEP(QHEP).EQ.0) GOTO 220
IF(IDHW(QHEP).EQ.59) THEN
IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
COLP = IHEP
RETURN
ELSE
GOTO 220
ENDIF
ENDIF
NCOUNT = 0
219 IF(JDAHEP(2,QHEP).NE.0) THEN
IF(JMOHEP(2,JDAHEP(2,QHEP)).EQ.QHEP) THEN
IF(JDAHEP(2,QHEP).GE.JC.AND.JDAHEP(2,QHEP).LE.JD) THEN
QHEP = JDAHEP(2,QHEP)
NCOUNT = NCOUNT+1
IF(NCOUNT.LT.200) GOTO 219
ENDIF
ENDIF
ENDIF
IF(QHEP.NE.0) COLP=QHEP
IDM2 = IDHW(QHEP)
IF(JDAHEP(2,QHEP).EQ.0.AND.
& (((AFLA(ID).OR.ID.EQ.13).AND.(AFLA(IDM2).OR.IDM2.EQ.13)).OR.
& (FLA(ID).AND.FLA(IDM2)))) JDAHEP(2,QHEP)=IHEP
ENDIF
ENDIF
ENDIF
END
CDECK ID>, HWBSPA.
*CMZ :- -26/04/91 14.26.44 by Federico Carminati
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWBSPA
C-----------------------------------------------------------------------
C Constructs time-like 4-momenta & production vertices in space-like
C jet started by parton no.2 interference partner 1 and spin density
C DECPAR(2). RHOPAR(2) gives the jet spin density matrix.
C See I.G. Knowles, Comp. Phys. Comm. 58 (90) 271.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,DMIN,PT,EIKON,EISCR,EINUM,EIDEN1,EIDEN2,
& WT,SPIN,Z1,Z2,TR,PRMAX,CX,SX,CAZ,ROHEP(3),RMAT(3,3),ZERO2(2)
INTEGER IPAR,JPAR,KPAR,LPAR,MPAR,JSTR,LSTR,MSTR
LOGICAL EICOR
EXTERNAL HWRGEN
SAVE ZERO2,DMIN
DATA ZERO2,DMIN/2*0D0,1D-15/
IF (IERROR.NE.0) RETURN
JPAR=2
KPAR=1
IF (NPAR.EQ.2) THEN
CALL HWVZRO(2,RHOPAR(1,2))
RETURN
ENDIF
C Generate azimuthal angle of JPAR's branching using an M-function
C Find the daughters of JPAR, with LPAR time-like
10 LPAR=JDAPAR(1,JPAR)
IF (TMPAR(LPAR)) THEN
MPAR=LPAR+1
ELSE
MPAR=LPAR
LPAR=MPAR+1
ENDIF
C Soft correlations
CALL HWUROT(PPAR(1,JPAR), ONE,ZERO,RMAT)
CALL HWUROF(RMAT,PPAR(1,KPAR),ROHEP)
PT=MAX(SQRT(ROHEP(1)*ROHEP(1)+ROHEP(2)*ROHEP(2)),DMIN)
EIKON=1.
EICOR=AZSOFT.AND.IDPAR(LPAR).EQ.13
IF (EICOR) THEN
IF (ABS(PPAR(5,MPAR)).LT.DMIN) THEN
EISCR=ONE
ELSE
EISCR=ONE-(PPAR(5,MPAR)/PPAR(4,MPAR))**2
& /MIN(PPAR(2,LPAR),PPAR(2,MPAR))
ENDIF
EINUM=PPAR(4,KPAR)*PPAR(4,LPAR)*ABS(PPAR(2,LPAR)-PPAR(2,MPAR))
EIDEN1=PPAR(4,KPAR)*PPAR(4,LPAR)-ROHEP(3)*PPAR(3,LPAR)
EIDEN2=PT*ABS(PPAR(1,LPAR))
EIKON=MAX(EISCR+EINUM/MAX(EIDEN1-EIDEN2,DMIN),ZERO)
ENDIF
C Spin correlations
WT=ZERO
SPIN=ONE
IF (AZSPIN.AND.IDPAR(JPAR).EQ.13) THEN
Z1=PPAR(4,JPAR)/PPAR(4,MPAR)
Z2=ONE-Z1
IF (IDPAR(MPAR).EQ.13) THEN
TR=Z1/Z2+Z2/Z1+Z1*Z2
ELSEIF (IDPAR(MPAR).LT.13) THEN
TR=(ONE+Z2**2)/(TWO*Z1)
ENDIF
WT=Z2/(Z1*TR)
ENDIF
C Assign the azimuthal angle
PRMAX=(1.+ABS(WT))*EIKON
50 CALL HWRAZM( ONE,CX,SX)
CALL HWUROT(PPAR(1,JPAR),CX,SX,RMAT)
C Determine the angle between the branching planes
CALL HWUROF(RMAT,PPAR(1,KPAR),ROHEP)
CAZ=ROHEP(1)/PT
PHIPAR(1,JPAR)=2.*CAZ*CAZ-1.
PHIPAR(2,JPAR)=2.*CAZ*ROHEP(2)/PT
IF (EICOR) EIKON=MAX(EISCR+EINUM/MAX(EIDEN1-EIDEN2*CAZ,DMIN),ZERO)
IF (AZSPIN) SPIN=1.+WT*(DECPAR(1,JPAR)*PHIPAR(1,JPAR)
& +DECPAR(2,JPAR)*PHIPAR(2,JPAR))
IF (SPIN*EIKON.LT.HWRGEN(0)*PRMAX) GOTO 50
C Construct full 4-momentum of LPAR, sum P-trans of MPAR
PPAR(2,LPAR)=ZERO
PPAR(2,MPAR)=ZERO
CALL HWUROB(RMAT,PPAR(1,LPAR),PPAR(1,LPAR))
CALL HWVDIF(2,PPAR(1,2),PPAR(1,LPAR),PPAR(1,2))
C Test for end of space-like branches
IF (JDAPAR(1,MPAR).EQ.0) GOTO 60
C Generate new Decay matrix
CALL HWBAZF(MPAR,JPAR,ZERO2,DECPAR(1,JPAR),
& PHIPAR(1,JPAR),DECPAR(1,MPAR))
C Advance along the space-like branch
JPAR=MPAR
KPAR=LPAR
GOTO 10
C Retreat along space-like line
C Assign initial spin density matrix
60 CONTINUE
CALL HWVEQU(2,ZERO2,RHOPAR(1,MPAR))
CALL HWUMAS(PPAR(1,2))
CALL HWVZRO(4,VPAR(1,MPAR))
JSTR=JPAR
LSTR=LPAR
MSTR=MPAR
70 JPAR=JSTR
LPAR=LSTR
MPAR=MSTR
CALL HWVEQU(4,VPAR(1,MPAR),VPAR(1,LPAR))
IF (MPAR.EQ.2) RETURN
C Construct spin density matrix for time-like branch
CALL HWBAZF(MPAR,JPAR,RHOPAR(1,MPAR),PHIPAR(1,JPAR),
& DECPAR(1,JPAR),RHOPAR(1,LPAR))
C Evolve time-like side branch
CALL HWBTIM(LPAR,MPAR)
C Construct spin density matrix for space-like branch
CALL HWBAZF(MPAR,JPAR,PHIPAR(1,JPAR),RHOPAR(1,MPAR),
& DECPAR(1,LPAR),RHOPAR(1,JPAR))
C Assign production vertex to J
CALL HWVDIF(4,PPAR(1,MPAR),PPAR(1,LPAR),PPAR(1,JPAR))
CALL HWUDKL(IDPAR(JPAR),PPAR(1,JPAR),VPAR(1,JPAR))
CALL HWVSUM(4,VPAR(1,MPAR),VPAR(1,JPAR),VPAR(1,JPAR))
C Find parent and partner of MPAR
MPAR=JPAR
JPAR=JMOPAR(1,MPAR)
C BRW modified here 19/06/01 to avoid compiler-dependent bug
C (overwriting of JPAR etc.)
IPAR=MPAR+1
KPAR=JMOPAR(1,IPAR)
IF (JPAR.EQ.KPAR) THEN
LPAR=MPAR+1
ELSE
LPAR=MPAR-1
ENDIF
JSTR=JPAR
LSTR=LPAR
MSTR=MPAR
GOTO 70
END
CDECK ID>, HWBSPN.
*CMZ :- -26/04/91 11.11.54 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWBSPN
C-----------------------------------------------------------------------
C Constructs appropriate spin density/decay matrix for parton
C in hard subprocess, otherwise zero. Assignments based upon
C Comp. Phys. Comm. 58 (1990) 271.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION C,V12,V23,V13,TR,C1,C2,C3,R1(2),R2(2)
INTEGER IST
SAVE R1,R2,V12
IF (IERROR.NE.0) RETURN
IST=MOD(ISTHEP(NEVPAR),10)
C Assumed partons processed in the order IST=1,2,3,4
IF (IPROC.GE.100.AND.IPROC.LE.116) THEN
C An e+e- ---> qqbar g event
IF (IDPAR(2).EQ.13) THEN
RHOPAR(1,2)=GPOLN
RHOPAR(2,2)=0.
RETURN
ENDIF
ELSEIF (IPRO.EQ.15.OR.IPRO.EQ.17) THEN
IF (IHPRO.EQ. 7.OR.IHPRO.EQ. 8.OR.
& IHPRO.EQ.10.OR.IHPRO.EQ.11.OR.
& IHPRO.EQ.15.OR.IHPRO.EQ.16.OR.
& (IHPRO.GE.21.AND.IHPRO.LE.31)) THEN
C A hard 2 --- > 2 QCD subprocess involving gluons
IF (IST.EQ.2) THEN
CALL HWVEQU(2,RHOPAR(1,2),R1(1))
C=GCOEF(2)/GCOEF(1)
DECPAR(1,2)=C*R1(1)
DECPAR(2,2)=C*R1(2)
RETURN
ELSEIF (IST.EQ.3) THEN
CALL HWVEQU(2,RHOPAR(1,2),R2(1))
V12=R1(1)*R2(1)+R1(2)*R2(2)
TR=1./(GCOEF(1)+GCOEF(2)*V12)
RHOPAR(1,2)= (GCOEF(3)*R1(1)+GCOEF(4)*R2(1))*TR
RHOPAR(2,2)=-(GCOEF(3)*R1(2)+GCOEF(4)*R2(2))*TR
RETURN
ELSEIF (IST.EQ.4) THEN
V13=R1(1)*DECPAR(1,2)+R1(2)*DECPAR(2,2)
V23=R2(1)*DECPAR(1,2)+R2(2)*DECPAR(2,2)
TR=1./(GCOEF(1)+GCOEF(2)*V12+GCOEF(3)*V13+GCOEF(4)*V23)
C1=(GCOEF(2)+GCOEF(5))*TR
C2=(GCOEF(3)+GCOEF(6))*TR
C3=(GCOEF(4)+GCOEF(6))*TR
RHOPAR(1,2)=C1*DECPAR(1,2)+C2*R2(1)+C3*R1(1)
RHOPAR(2,2)=C1*DECPAR(2,2)-C2*R1(2)-C3*R2(2)
RETURN
ENDIF
ENDIF
ELSEIF ((IPRO.EQ.16).OR.(IPRO.EQ.36)) THEN
C A gluon fusion ---> Higgs event
IF (IST.EQ.2) THEN
IF (IHIGGS.NE.4) THEN
DECPAR(1,2)=RHOPAR(1,2)
DECPAR(2,2)=-RHOPAR(2,2)
ELSE
DECPAR(1,2)=-RHOPAR(1,2)
DECPAR(2,2)=RHOPAR(2,2)
END IF
RETURN
ENDIF
ELSEIF (IPRO.EQ.42) THEN
C A gluon fusion (or qq-bar annihilation) ---> graviton production event
IF (IST.EQ.2) THEN
DECPAR(1,2)=RHOPAR(1,2)
DECPAR(2,2)=RHOPAR(2,2)
RETURN
ENDIF
ENDIF
CALL HWVZRO(2,RHOPAR(1,2))
CALL HWVZRO(2,DECPAR(1,2))
END
CDECK ID>, HWBSU1.
*CMZ :- -13/07/92 20.15.54 by Mike Seymour
*-- Author : Bryan Webber, modified by Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWBSU1(ZLOG)
C-----------------------------------------------------------------------
C Z TIMES THE INTEGRAND IN EXPONENT OF QUARK SUDAKOV FORM FACTOR.
C HWBSU1 IS FOR UPPER PART OF Z INTEGRATION REGION
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWBSU1,HWBSUL,Z,ZLOG,U
EXTERNAL HWBSUL
Z=EXP(ZLOG)
U=1.-Z
HWBSU1=HWBSUL(Z)*(1.+U*U)
END
CDECK ID>, HWBSU2.
*CMZ :- -13/07/92 20.15.54 by Mike Seymour
*-- Author : Bryan Webber, modified by Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWBSU2(Z)
C-----------------------------------------------------------------------
C INTEGRAND IN EXPONENT OF QUARK SUDAKOV FORM FACTOR.
C HWBSU2 IS FOR LOWER PART OF Z INTEGRATION REGION
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWBSU2,HWBSUL,Z,U
EXTERNAL HWBSUL
U=1.-Z
HWBSU2=HWBSUL(Z)*(1.+Z*Z)/U
END
CDECK ID>, HWBSUD.
*CMZ :- -14/07/92 13.28.23 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWBSUD
C-----------------------------------------------------------------------
C COMPUTES (OR READS) TABLES OF SUDAKOV FORM FACTORS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUGAU,HWBVMC,HWBSUG,HWBSU1,HWBSU2,G1,G2,QRAT,
& QLAM,POWER,AFAC,QMIN,QFAC,QNOW,ZMIN,ZMAX,Q1,QCOLD,VGOLD,VQOLD,
& RMOLD(6),ACOLD,ZLO,ZHI
INTEGER IQ,IS,L1,L2,L,LL,I,INOLD,NQOLD,NSOLD,NCOLD,NFOLD,SDOLD
EXTERNAL HWUGAU,HWBVMC,HWBSUG,HWBSU1,HWBSU2
SAVE NQOLD,NSOLD,NCOLD,NFOLD,SDOLD,QCOLD,VGOLD,VQOLD,RMOLD,ACOLD,
& INOLD
COMMON/HWSINT/QRAT,QLAM
IF (LRSUD.EQ.0) THEN
POWER=1./FLOAT(NQEV-1)
AFAC=6.*CAFAC/BETAF
QMIN=QG+QG
QFAC=(1.1*QLIM/QMIN)**POWER
SUD(1,1)=1.
QEV(1,1)=QMIN
C--IS=1 FOR GLUON->GLUON+GLUON FORM FACTOR
DO 10 IQ=2,NQEV
QNOW=QFAC*QEV(IQ-1,1)
QLAM=QNOW/QCDL3
ZMIN=QG/QNOW
QRAT=1./ZMIN
G1=0
DO 5 I=3,6
ZLO=ZMIN
ZHI=HALF
IF (I.NE.6) ZLO=MAX(ZLO,QG/RMASS(I+1))
IF (I.NE.3) ZHI=MIN(ZHI,QG/RMASS(I))
IF (ZHI.GT.ZLO) G1=G1+HWUGAU(HWBSUG,LOG(ZLO),LOG(ZHI),ACCUR)
5 CONTINUE
SUD(IQ,1)=EXP(AFAC*G1)
10 QEV(IQ,1)=QNOW
AFAC=3.*CFFAC/BETAF
C--QUARK FORM FACTORS.
C--IS=2,3,4,5,6,7 FOR U/D,S,C,B,T,V
DO 15 IS=2,NSUD
Q1=HWBVMC(IS)
IF (IS.EQ.7) Q1=HWBVMC(209)
QMIN=Q1+QG
IF (QMIN.GT.QLIM) GOTO 15
QFAC=(1.1*QLIM/QMIN)**POWER
SUD(1,IS)=1.
QEV(1,IS)=QMIN
DO 14 IQ=2,NQEV
QNOW=QFAC*QEV(IQ-1,IS)
QLAM=QNOW/QCDL3
ZMIN=QG/QNOW
QRAT=1./ZMIN
ZMAX=QG/QMIN
G1=0
DO 12 I=3,6
ZLO=ZMIN
ZHI=ZMAX
IF (I.NE.6) ZLO=MAX(ZLO,QG/RMASS(I+1))
IF (I.NE.3) ZHI=MIN(ZHI,QG/RMASS(I))
IF (ZHI.GT.ZLO) G1=G1+HWUGAU(HWBSU1,LOG(ZLO),LOG(ZHI),ACCUR)
12 CONTINUE
ZMIN=Q1/QNOW
QRAT=1./ZMIN
ZMAX=Q1/QMIN
G2=0
DO 13 I=3,6
ZLO=ZMIN
ZHI=ZMAX
IF (I.NE.6) ZLO=MAX(ZLO,Q1/RMASS(I+1))
IF (I.NE.3) ZHI=MIN(ZHI,Q1/RMASS(I))
IF (ZHI.GT.ZLO) G2=G2+HWUGAU(HWBSU2,ZLO,ZHI,ACCUR)
13 CONTINUE
SUD(IQ,IS)=EXP(AFAC*(G1+G2))
14 QEV(IQ,IS)=QNOW
15 CONTINUE
QCOLD=QCDLAM
VGOLD=VGCUT
VQOLD=VQCUT
ACOLD=ACCUR
INOLD=INTER
NQOLD=NQEV
NSOLD=NSUD
NCOLD=NCOLO
NFOLD=NFLAV
SDOLD=SUDORD
DO 16 IS=1,NSUD
16 RMOLD(IS)=RMASS(IS)
ELSE
IF (LRSUD.GT.0) THEN
IF (IPRINT.NE.0) WRITE (6,17) LRSUD
17 FORMAT(/10X,'READING SUDAKOV TABLE ON UNIT',I4)
OPEN(UNIT=LRSUD,FORM='UNFORMATTED',STATUS='UNKNOWN')
READ(UNIT=LRSUD) QCOLD,VGOLD,VQOLD,RMOLD,
& ACOLD,QEV,SUD,INOLD,NQOLD,NSOLD,NCOLD,NFOLD,SDOLD
CLOSE(UNIT=LRSUD)
ENDIF
C---CHECK THAT RELEVANT PARAMETERS ARE UNCHANGED
IF (QCDLAM.NE.QCOLD) CALL HWWARN('HWBSUD',501)
IF (VGCUT .NE.VGOLD) CALL HWWARN('HWBSUD',502)
IF (VQCUT .NE.VQOLD) CALL HWWARN('HWBSUD',503)
IF (ACCUR .NE.ACOLD) CALL HWWARN('HWBSUD',504)
IF (INTER .NE.INOLD) CALL HWWARN('HWBSUD',505)
IF (NQEV .NE.NQOLD) CALL HWWARN('HWBSUD',506)
IF (NSUD .NE.NSOLD) CALL HWWARN('HWBSUD',507)
IF (NCOLO .NE.NCOLD) CALL HWWARN('HWBSUD',508)
IF (NFLAV .NE.NFOLD) CALL HWWARN('HWBSUD',509)
IF (SUDORD.NE.SDOLD) CALL HWWARN('HWBSUD',510)
C---CHECK MASSES AND THAT TABLES ARE BIG ENOUGH FOR THIS RUN
DO 18 IS=1,NSUD
IF (RMASS(IS).NE.RMOLD(IS))
& CALL HWWARN('HWBSUD',510+IS)
IF (QEV(NQEV,IS).LT.QLIM.AND.HWBVMC(IS)+QG.LT.QLIM)
& CALL HWWARN('HWBSUD',500)
18 CONTINUE
ENDIF
IF (LWSUD.GT.0) THEN
IF (IPRINT.NE.0) WRITE (6,19) LWSUD
19 FORMAT(/10X,'WRITING SUDAKOV TABLE ON UNIT',I4)
OPEN (UNIT=LWSUD,FORM='UNFORMATTED',STATUS='UNKNOWN')
WRITE(UNIT=LWSUD) QCDLAM,VGCUT,VQCUT,(RMASS(I),I=1,6),
& ACCUR,QEV,SUD,INTER,NQEV,NSUD,NCOLO,NFLAV,SUDORD
CLOSE(UNIT=LWSUD)
ENDIF
IF (IPRINT.GT.2) THEN
C--PRINT EXTRACTS FROM TABLES OF FORM FACTORS
DO 40 IS=1,NSUD
WRITE(6,20) IS,NQEV
20 FORMAT(1H1//10X,'EXTRACT FROM TABLE OF SUDAKOV FORM FACTOR NO.',
& I2,' (',I5,' ACTUAL ENTRIES)'//10X,'SUD IS PROBABILITY THAT',
& ' PARTON WITH GIVEN UPPER LIMIT ON Q WILL REACH THRESHOLD',
& ' WITHOUT BRANCHING'///2X,8(' Q SUD ')/)
L2=NQEV/8
L1=L2/32
IF (L1.LT.1) L1=1
DO 40 L=L1,L2,L1
LL=L+7*L2
WRITE(6,30) (QEV(I,IS),SUD(I,IS),I=L,LL,L2)
30 FORMAT(2X,8(F9.2,F7.4))
40 CONTINUE
WRITE(6,50)
50 FORMAT(1H1)
ENDIF
END
CDECK ID>, HWBSUG.
*CMZ :- -13/07/92 20.15.54 by Mike Seymour
*-- Author : Bryan Webber, modified by Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWBSUG(ZLOG)
C-----------------------------------------------------------------------
C Z TIMES INTEGRAND IN EXPONENT OF GLUON SUDAKOV FORM FACTOR
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWBSUG,HWBSUL,Z,ZLOG,W
EXTERNAL HWBSUL
Z=EXP(ZLOG)
W=Z*(1.-Z)
HWBSUG=HWBSUL(Z)*(W-2.+1./W)*Z
END
CDECK ID>, HWBSUL.
*CMZ :- -13/07/92 20.15.54 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWBSUL(Z)
C-----------------------------------------------------------------------
C LOGARITHMIC PART OF INTEGRAND IN EXPONENT OF SUDAKOV FORM FACTOR.
C THE SECOND ORDER ALPHAS CASE COMES FROM CONVERTING INTEGRAL OVER
C Q^2 INTO ONE OVER ALPHAS, WITH FLAVOUR THRESHOLDS.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBSUL,HWUALF,Z,QRAT,QLAM,U,AL,BL,QNOW,QMIN,
& BET(6),BEP(6),MUMI(6),MUMA(6),ALMI(6),ALMA(6),FINT(6),ALFINT,
& MUMIN,MUMAX,ALMIN,ALMAX
INTEGER NF
LOGICAL FIRST
EXTERNAL HWUALF
SAVE FIRST,BET,BEP,MUMI,MUMA
COMMON/HWSINT/QRAT,QLAM
DATA FIRST/.TRUE./
ALFINT(AL,BL)=1/BET(NF)*
& LOG(BL/(AL*(1+BEP(NF)*BL))*(1+BEP(NF)*AL))
HWBSUL=0
U=1.-Z
IF (SUDORD.EQ.1) THEN
AL=LOG(QRAT*Z)
BL=LOG(QLAM*U*Z)
HWBSUL=LOG(1.-AL/BL)
ELSE
IF (FIRST) THEN
DO 10 NF=3,6
BET(NF)=(11*CAFAC-2*NF)/(12*PIFAC)
BEP(NF)=(17*CAFAC**2-(5*CAFAC+3*CFFAC)*NF)/(24*PIFAC**2)
& /BET(NF)
IF (NF.EQ.3) THEN
MUMI(3)=0
ALMI(3)=1D30
ELSE
MUMI(NF)=RMASS(NF)
ALMI(NF)=HWUALF(1,MUMI(NF))
ENDIF
IF (NF.EQ.6) THEN
MUMA(NF)=1D30
ALMA(NF)=0
ELSE
MUMA(NF)=RMASS(NF+1)
ALMA(NF)=HWUALF(1,MUMA(NF))
ENDIF
IF (NF.NE.3.AND.NF.NE.6) FINT(NF)=ALFINT(ALMI(NF),ALMA(NF))
10 CONTINUE
FIRST=.FALSE.
ENDIF
QNOW=QLAM*QCDL3
QMIN=QNOW/QRAT
MUMIN= U*QMIN
MUMAX=Z*U*QNOW
IF (MUMAX.LE.MUMIN) RETURN
ALMIN=HWUALF(1,MUMIN)
ALMAX=HWUALF(1,MUMAX)
NF=3
20 IF (MUMIN.GT.MUMA(NF)) THEN
NF=NF+1
GOTO 20
ENDIF
IF (MUMAX.LT.MUMA(NF)) THEN
HWBSUL=ALFINT(ALMIN,ALMAX)
ELSE
HWBSUL=ALFINT(ALMIN,ALMA(NF))
NF=NF+1
30 IF (MUMAX.GT.MUMA(NF)) THEN
HWBSUL=HWBSUL+FINT(NF)
NF=NF+1
GOTO 30
ENDIF
HWBSUL=HWBSUL+ALFINT(ALMI(NF),ALMAX)
ENDIF
HWBSUL=HWBSUL*BET(5)
ENDIF
END
CDECK ID>, HWBTIM.
*CMZ :- -26/04/91 14.27.17 by Federico Carminati
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWBTIM(INITBR,INTERF)
C-----------------------------------------------------------------------
C Constructs full 4-momentum & production vertices in time-like jet
C initiated by INITBR, interference partner INTERF and spin density
C RHOPAR(INITBR). DECPAR(INITBR) returns jet's spin density matrix.
C Includes azimuthal angular correlations between branching planes
C due to spin (if AZSPIN) using the algorithm of Knowles & Collins.
C Ses Nucl. Phys. B304 (1988) 794 & Comp. Phys. Comm. 58 (1990) 271.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,DMIN,PT,EIKON,EINUM,EIDEN1,EIDEN2,EISCR,
& WT,SPIN,Z1,Z2,PRMAX,CAZ,CX,SX,ROHEP(3),RMAT(3,3),ZERO2(2)
INTEGER INITBR,INTERF,IPAR,JPAR,KPAR,LPAR,MPAR,NTRY,JOLD
LOGICAL EICOR,SWAP
EXTERNAL HWRGEN
SAVE ZERO2,DMIN
DATA ZERO2,DMIN/ZERO,ZERO,1.D-15/
IF (IERROR.NE.0) RETURN
JPAR=INITBR
KPAR=INTERF
IF ((JDAPAR(1,JPAR).NE.0).OR.(IDPAR(JPAR).EQ.13)) GOTO 30
C No branching, assign decay matrix
CALL HWVZRO(2,DECPAR(1,JPAR))
RETURN
C Advance up the leader
C Find the parent and partner of J
10 IPAR=JMOPAR(1,JPAR)
KPAR=JPAR+1
C Generate new Rho
IF (JMOPAR(1,KPAR).EQ.IPAR) THEN
C Generate Rho'
CALL HWBAZF(IPAR,JPAR,PHIPAR(1,IPAR),RHOPAR(1,IPAR),
& ZERO2,RHOPAR(1,JPAR))
ELSE
KPAR=JPAR-1
IF (JMOPAR(1,KPAR).NE.IPAR) THEN
CALL HWWARN('HWBTIM',100)
GOTO 999
ENDIF
C Generate Rho''
CALL HWBAZF(IPAR,KPAR,RHOPAR(1,IPAR),PHIPAR(1,IPAR),
& DECPAR(1,KPAR),RHOPAR(1,JPAR))
ENDIF
C Generate azimuthal angle of J's branching
30 IF (JDAPAR(1,JPAR).EQ.0) THEN
C Final state gluon
CALL HWVZRO(2,DECPAR(1,JPAR))
IF (JPAR.EQ.INITBR) RETURN
GOTO 70
ELSE
C Assign an angle to a branching using an M-function
C Find the daughters of J
LPAR=JDAPAR(1,JPAR)
MPAR=JDAPAR(2,JPAR)
C Soft correlations
CALL HWUROT(PPAR(1,JPAR), ONE,ZERO,RMAT)
CALL HWUROF(RMAT,PPAR(1,KPAR),ROHEP)
PT=MAX(SQRT(ROHEP(1)*ROHEP(1)+ROHEP(2)*ROHEP(2)),DMIN)
EIKON=1.
SWAP=.FALSE.
EICOR=AZSOFT.AND.((IDPAR(LPAR).EQ.13).OR.(IDPAR(MPAR).EQ.13))
IF (EICOR) THEN
C Rearrange s.t. LPAR is the (softest) gluon
IF (IDPAR(MPAR).EQ.13) THEN
IF (IDPAR(LPAR).NE.13.OR.
& PPAR(4,MPAR).LT.PPAR(4,LPAR)) THEN
SWAP=.TRUE.
LPAR=MPAR
MPAR=LPAR-1
ENDIF
ENDIF
EINUM=(PPAR(4,KPAR)*PPAR(4,LPAR))
& *ABS(PPAR(2,LPAR)-PPAR(2,MPAR))
EIDEN1=(PPAR(4,KPAR)*PPAR(4,LPAR))-ROHEP(3)*PPAR(3,LPAR)
EIDEN2=PT*ABS(PPAR(1,LPAR))
IF (ABS(PPAR(2,MPAR)).LT.DMIN) THEN
IF (ABS(PPAR(5,MPAR)).LT.DMIN) THEN
EISCR=ONE
ELSE
CALL HWWARN('HWBTIM',102)
GOTO 999
ENDIF
ELSE
EISCR=ONE-(PPAR(5,MPAR)/PPAR(4,MPAR))**2
& /MIN(PPAR(2,LPAR),PPAR(2,MPAR))
ENDIF
EIKON=EISCR+EINUM/MAX(EIDEN1-EIDEN2,DMIN)
ENDIF
C Spin correlations
WT=0.
SPIN=1.
IF (AZSPIN) THEN
Z1=PPAR(4,LPAR)/PPAR(4,JPAR)
Z2=1.-Z1
IF (IDPAR(JPAR).EQ.13.AND.IDPAR(LPAR).EQ.13) THEN
WT=Z1*Z2/(Z1/Z2+Z2/Z1+Z1*Z2)
ELSEIF (IDPAR(JPAR).EQ.13.AND.IDPAR(LPAR).LT.13) THEN
WT=-2.*Z1*Z2/(Z1*Z1+Z2*Z2)
ENDIF
ENDIF
C Assign the azimuthal angle
PRMAX=(1.+ABS(WT))*EIKON
NTRY=0
50 NTRY=NTRY+1
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWBTIM',101)
GOTO 999
ENDIF
CALL HWRAZM( ONE,CX,SX)
CALL HWUROT(PPAR(1,JPAR),CX,SX,RMAT)
C Determine the angle between the branching planes
CALL HWUROF(RMAT,PPAR(1,KPAR),ROHEP)
CAZ=ROHEP(1)/PT
PHIPAR(1,JPAR)=2.*CAZ*CAZ-1.
PHIPAR(2,JPAR)=2.*CAZ*ROHEP(2)/PT
IF (EICOR) EIKON=EISCR+EINUM/MAX(EIDEN1-EIDEN2*CAZ,DMIN)
IF (AZSPIN) SPIN=1.+WT*(RHOPAR(1,JPAR)*PHIPAR(1,JPAR)
& +RHOPAR(2,JPAR)*PHIPAR(2,JPAR))
IF (SPIN*EIKON.LT.HWRGEN(0)*PRMAX) GOTO 50
C Construct full 4-momentum of L and M
JOLD=JPAR
IF (SWAP) THEN
PPAR(1,LPAR)=-PPAR(1,LPAR)
PPAR(1,MPAR)=-PPAR(1,MPAR)
JPAR=MPAR
ELSE
JPAR=LPAR
ENDIF
PPAR(2,LPAR)=0.
CALL HWUROB(RMAT,PPAR(1,LPAR),PPAR(1,LPAR))
PPAR(2,MPAR)=0.
CALL HWUROB(RMAT,PPAR(1,MPAR),PPAR(1,MPAR))
C Assign production vertex to L and M
CALL HWUDKL(IDPAR(JOLD),PPAR(1,JOLD),VPAR(1,LPAR))
CALL HWVSUM(4,VPAR(1,JOLD),VPAR(1,LPAR),VPAR(1,LPAR))
CALL HWVEQU(4,VPAR(1,LPAR),VPAR(1,MPAR))
ENDIF
60 IF (JDAPAR(1,JPAR).NE.0) GOTO 10
C Assign decay matrix
CALL HWVZRO(2,DECPAR(1,JPAR))
C Backtrack down the leader
70 IPAR=JMOPAR(1,JPAR)
KPAR=JDAPAR(1,IPAR)
IF (KPAR.EQ.JPAR) THEN
C Develop the side branch
JPAR=JDAPAR(2,IPAR)
GOTO 60
ELSE
C Construct decay matrix
CALL HWBAZF(IPAR,KPAR,DECPAR(1,JPAR),DECPAR(1,KPAR),
& PHIPAR(1,IPAR),DECPAR(1,IPAR))
ENDIF
IF (IPAR.EQ.INITBR) RETURN
JPAR=IPAR
GOTO 70
999 RETURN
END
CDECK ID>, HWBTOP.
*CMZ :- -31/03/00 17:54:05 by Peter Richardson
*-- Author : Gennaro Corcella
C-----------------------------------------------------------------------
SUBROUTINE HWBTOP
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRGEN,HWUALF,HWUSQR,X(3),W,
& X3MIN,X3MAX,X1MIN,X1MAX,QSCALE,GLUFAC,R(3,3),M(3),
& E(3),AW,PTSQ,EM,EPS,MASDEP,A,B,C,GAMDEP,LAMBDA,
& PW(5),PT(5),PW1(5),CS,SN,EPG,QQ,RR,CC
INTEGER ID,ID3,IHEP,KHEP,WHEP,ICMF,K
EXTERNAL HWBVMC,HWUALF,HWUSQR,HWRGEN
LAMBDA(A,B,C)=(A**2+B**2+C**2-2*A*B-2*B*C-2*C*A)/(4*A)
C---FIND AN UNTREATED CMF
ICMF=0
DO 10 IHEP=1,NHEP
C----FIND A DECAYING TOP QUARK
10 IF (ISTHEP(IHEP).EQ.155.AND.ISTHEP(JDAHEP(1,IHEP)).EQ.113
& .AND.(IDHW(IHEP).EQ.6.OR.IDHW(IHEP).EQ.12))
& ICMF=IHEP
IF (ICMF.EQ.0) RETURN
EM=PHEP(5,ICMF)
X3MIN=2*GCUTME/EM
C---GENERATE X(1),X(3) ACCORDING TO 1/((1-X(1))*X(3)**2)
100 CONTINUE
C-----AW=(MW/MT)**2
AW=(PHEP(5,JDAHEP(1,ICMF))/EM)**2
C---CHOOSE X3
X3MAX=1-AW
X(3)=X3MIN*X3MAX/(X3MIN+(X3MAX-X3MIN)*HWRGEN(0))
C--CC, QQ AND RR ARE THE VARIABLE DEFINED IN OUR PAPER
C--IN ORDER TO SOLVE THE CUBIC EQUATION
CC=(1-AW)**2/4
QQ=(AW**2-4*(1-X(3))*(2-CC-X(3))-2*AW*(3+2*X(3)))/3
& -((3+2*AW-4*X(3))**2)/9
RR=((3+2*AW-4*X(3))*(AW**2-4*(1-X(3))*(2-CC-X(3))
& -2*AW*(3+2*X(3)))-3*(AW*(4-AW)*(2-CC)+(1-CC)
& *(2*(1-X(3))-AW)**2))/6-(ONE/27)*(3+2*AW-4*X(3))**3
C---CHOOSE X1
X1MAX=2*(-QQ**3)**(ONE/6)*COS(ACOS(RR/SQRT(-QQ**3))/3)
& -(3+2*AW-4*X(3))/3
X1MIN=1-X(3)+(AW*X(3))/(1-X(3))
IF (X1MAX.GE.1.OR.X1MIN.GE.1.OR.X1MAX.LE.X1MIN) GOTO 100
X(1)=1-(1-X1MAX)*((1-X1MIN)/(1-X1MAX))**HWRGEN(1)
C---CALCULATE WEIGHT
W=((1+1/AW-2*AW)*((1-AW)*X(3)-(1-X(1))*(1-X(3))-X(3)**2)
& +(1+1/(2*AW))*X(3)*(X(1)+X(3)-1)**2+2*X(3)**2*(1-X(1)))
& *(1/X3MIN-1/X3MAX)*LOG((1-X1MIN)/(1-X1MAX))
C---QSCALE=DURHAM-LIKE TRANSVERSE MOMENTUM OF THE GLUON
QSCALE=EM*HWUSQR(X(3)*(1-X(1))/(2-X(1)-X(3)-AW))
C---FACTOR FOR GLUON EMISSION
ID=IDHW(JDAHEP(2,ICMF))
GLUFAC=0
IF (QSCALE.GT.HWBVMC(13)) GLUFAC=CFFAC*HWUALF(1,QSCALE)
& /(PIFAC*(1-AW)*(1-2*AW+1/AW))
C---IN FRACTION GLUFAC*W OF EVENTS ADD A GLUON
IF (GLUFAC*W.GT.HWRGEN(4)) THEN
ID3=13
ELSE
GOTO 1000
ENDIF
C---CHECK INFRA-RED CUT-OFF FOR GLUON
M(1)=PHEP(5,JDAHEP(1,ICMF))
M(2)=HWBVMC(ID)
M(3)=HWBVMC(ID3)
E(1)=HALF*EM*(X(1)+AW+(-M(2)**2-M(3)**2)/EM**2)
E(3)=HALF*EM*X(3)
E(2)=EM-E(1)-E(3)
PTSQ=-LAMBDA(E(1)**2-M(1)**2,E(3)**2-M(3)**2,
& E(2)**2-M(2)**2)
IF (PTSQ.LE.0.OR.E(1).LE.M(1).OR.E(2).LE.M(2).OR.E(3).LE.M(3))
$ GOTO 1000
C---CALCULATE MASS-DEPENDENT SUPPRESSION
EPS=(RMASS(ID)/EM)**2
EPG=(RMASS(ID3)/EM)**2
GAMDEP=(1-AW)*(1+1/AW-2*AW)/(SQRT(1+AW**2+EPS**2
& -2*AW-2*EPS-2*AW*EPS)*(1+EPS+(1-EPS)**2/AW-2*AW))
MASDEP=GAMDEP/(1-X(1))*((1+EPS+(1-EPS)**2/AW-2*AW)
& *((1-AW+EPS)*X(3)*(1-X(1))-(1-X(1))**2*(1-X(3))
& -X(3)**2*(1-X(1)+EPS))+(1+(1+EPS)/(2*AW))*X(3)
& *(1-X(1))*(X(1)+X(3)-1)**2+2*X(3)**2*(1-X(1))**2)
IF (MASDEP.LT.HWRGEN(7)*((1+1/AW-2*AW)*((1-AW)*X(3)
& -(1-X(1))*(1-X(3))-X(3)**2)+(1+1/(2*AW))*X(3)
& *(X(1)+X(3)-1)**2+2*X(3)**2*(1-X(1)))) GOTO 1000
C---STORE OLD MOMENTA
c---PT = TOP MOMENTUM, PW= W MOMENTUM
CALL HWVEQU(5,PHEP(1,ICMF),PT)
CALL HWVEQU(5,PHEP(1,JDAHEP(1,ICMF)),PW)
C--------GET THE NON-EMITTING PARTON CMF DIRECTION
CALL HWULOF(PHEP(1,ICMF),PW,PW)
CALL HWRAZM(ONE,CS,SN)
CALL HWUROT(PW,CS,SN,R)
CALL HWUROF(R,PW,PW)
CALL HWUMAS(PW)
C---REORDER ENTRIES: IHEP=EMITTER, KHEP=EMITTED
NHEP=NHEP+1
IHEP=JDAHEP(2,ICMF)
WHEP=JDAHEP(1,ICMF)
KHEP=NHEP
C---SET UP MOMENTA IN TOP REST FRAME
PHEP(1,ICMF)=0
PHEP(2,ICMF)=0
PHEP(3,ICMF)=0
PHEP(4,ICMF)=EM
PHEP(5,ICMF)=EM
PHEP(4,IHEP)=HALF*EM*(2-X(1)-X(3)+EPS-AW+EPG)
PHEP(4,KHEP)=HALF*EM*X(3)
PHEP(5,IHEP)=RMASS(ID)
PHEP(5,KHEP)=RMASS(ID3)
PHEP(3,KHEP)=HALF*EM*((X(1)+AW-EPS-EPG)*X(3)-2*(1+EPS-AW
$ -EPG-(2+EPS+EPG-AW-X(1)-X(3))))/HWUSQR((X(1)+AW
$ -EPS-EPG)**2-4*AW)
PHEP(3,IHEP)=-PHEP(3,KHEP)-HALF*EM
$ *HWUSQR((X(1)+AW-EPS-EPG)**2-4*AW)
PHEP(2,IHEP)=0
PHEP(1,KHEP)=HWUSQR(PHEP(4,KHEP)**2-PHEP(5,KHEP)**2
$ -PHEP(3,KHEP)**2)
PHEP(1,IHEP)=-PHEP(1,KHEP)
PHEP(2,KHEP)=0
CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,KHEP),PW1)
CALL HWVDIF(4,PHEP(1,ICMF),PW1,PW1)
CALL HWUMAS(PW1)
DO K=1,5
PHEP(K,WHEP)=PW1(K)
ENDDO
C---ORIENT IN CMF, THEN BOOST TO LAB
CALL HWUROB(R,PHEP(1,ICMF),PHEP(1,ICMF))
CALL HWUROB(R,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWUROB(R,PHEP(1,WHEP),PHEP(1,WHEP))
CALL HWUROB(R,PHEP(1,KHEP),PHEP(1,KHEP))
CALL HWULOB(PT,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULOB(PT,PHEP(1,KHEP),PHEP(1,KHEP))
CALL HWULOB(PT,PHEP(1,ICMF),PHEP(1,ICMF))
CALL HWULOB(PT,PHEP(1,WHEP),PHEP(1,WHEP))
C---STATUS AND COLOUR CONNECTION
C--Bug fix 31/03/00 PR
ISTHEP(KHEP)=114
IDHW(KHEP)=ID3
IDHEP(KHEP)=IDPDG(ID3)
JMOHEP(1,KHEP)=ICMF
JMOHEP(1,IHEP)=ICMF
JDAHEP(1,KHEP)=0
JDAHEP(2,ICMF)=KHEP
IF(IDHW(ICMF).EQ.6) THEN
JDAHEP(2,IHEP)=ICMF
JDAHEP(2,KHEP)=IHEP
JMOHEP(2,IHEP)=KHEP
JMOHEP(2,KHEP)=ICMF
ELSE
JDAHEP(2,IHEP) = KHEP
JDAHEP(2,KHEP) = ICMF
JMOHEP(2,IHEP) = ICMF
JMOHEP(2,KHEP) = IHEP
ENDIF
C--End of Fix
C--modification to allow photon radiation via photos in top decay
1000 IF(ITOPRD.EQ.1) CALL HWPHTP(ICMF)
END
CDECK ID>, HWBVMC.
*CMZ :- -26/04/91 11.11.54 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWBVMC(ID)
C-----------------------------------------------------------------------
C VIRTUAL MASS CUTOFF FOR PARTON TYPE ID
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC
INTEGER ID
IF (ID.EQ.13) THEN
HWBVMC=RMASS(ID)+VGCUT
ELSEIF (ID.LT.13) THEN
HWBVMC=RMASS(ID)+VQCUT
ELSEIF (ID.EQ.59) THEN
HWBVMC=RMASS(ID)+VPCUT
ELSE
HWBVMC=RMASS(ID)
ENDIF
END
CDECK ID>, HWCBCT.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWCBCT(JHEP,KHEP,THEP,PCL,SPLIT)
C-----------------------------------------------------------------------
C Subroutine to split a baryonic cluster containing two heavy quarks
C Based on HWCCUT
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUPCM,HWRGEN,HWVDOT,EMC,QM1,QM2,QM3,QM4,
& PXY,PCX,PCY,RCM,PCL(5),AX(5),PA(5),PB(5),PC(5),
& VCLUS(4),DQM,EMX,EMY,SKAPPA,RKAPPA,VTMP(4),
& DELTM,PDIQUK(5),AY(5)
INTEGER HWRINT,JHEP,KHEP,LHEP,MHEP,THEP,ID1,ID2,ID3,ID4,NTRY,
& NTRYMX,J,IB
LOGICAL SPLIT
EXTERNAL HWUPCM,HWRGEN,HWVDOT
PARAMETER(SKAPPA=1.,NTRYMX=100)
IF(IERROR.NE.0) RETURN
EMC=PCL(5)
ID1=IDHW(JHEP)
ID2=IDHW(KHEP)
ID3=IDHW(THEP)
QM1=RMASS(ID1)
QM2=RMASS(ID2)
QM3=RMASS(ID3)
SPLIT = .FALSE.
NTRY = 0
C Decide if cluster contains a b-(anti)quark
IF (ID1.EQ.5.OR.ID1.EQ.11.OR.ID2.EQ.5.OR.ID2.EQ.11.OR.
& ID3.EQ.5.OR.ID3.EQ.11) THEN
IB=2
ELSE
IB=1
ENDIF
C-- Set the positon of the cluster to be that of the heavy quark
CALL HWVEQU(4,VHEP(1,THEP),VCLUS)
C--SPLIT THE BARYONIC CLUSTER INTO A HEAVY FLAVOUR MESON AND A HEAVY
C--FLAVOUR BARYON
PXY=EMC-QM1-QM2-QM3
20 NTRY=NTRY+1
IF(NTRY.GT.NTRYMX) RETURN
30 EMX=QM1+QM2+PXY*HWRGEN(0)**PSPLT(IB)
EMY= QM3+PXY*HWRGEN(1)**PSPLT(IB)
IF(EMX+EMY.GE.EMC) GOTO 30
C--PULL A LIGHT QUARK PAIR OUT OF THE VACUUM
40 ID4=HWRINT(1,3)
IF(QWT(ID4).LT.HWRGEN(3)) GOTO 40
QM4=RMASS(ID4)
C--Now combine particles 3 & 4 into a diquark
C--If three also heavy this diquark doesn't exist in HERWIG
C--just assume mass is sum of quark masses,as for other diquarks
DQM=QM3+QM4
C--Now obtain the masses for the cluster splitting
PCX=HWUPCM(EMX,QM1,DQM)
IF(PCX.LT.ZERO) GOTO 20
PCY=HWUPCM(EMY,QM2,QM4)
IF(PCY.LT.ZERO) GOTO 20
SPLIT=.TRUE.
C--Now we've decided which light quark to pull out of the vacuum
C--Find the direction of the second heavy quark
CALL HWULOF(PCL,PHEP(1,THEP),AX)
RCM=1./SQRT(HWVDOT(3,AX,AX))
CALL HWVSCA(3,RCM,AX,AX)
C--Construct the new CoM momenta(collinear)
PXY=HWUPCM(EMC,EMX,EMY)
CALL HWVSCA(3,PXY,AX,PC)
C--pc is momenta of Y cluster along 2nd quark dirn in cluster frame
PC(4)=SQRT(PXY**2+EMY**2)
PC(5)=EMY
C--pa is momenta of 2nd quark in Y frame
CALL HWVSCA(3,PCY,AX,PA)
PA(4)=SQRT(PCY**2+QM3**2)
PA(5)=QM3
C--pb is momenta of 2nd quark in cluster frame,pa now momenta of antiquark
CALL HWULOB(PC,PA,PB)
CALL HWVDIF(4,PC,PB,PA)
PA(5)=QM4
LHEP=NHEP+1
MHEP=NHEP+2
C--boost these momenta back to lab frame
CALL HWULOB(PCL,PB,PHEP(1,THEP))
CALL HWULOB(PCL,PA,PHEP(1,MHEP))
C--pc now becomes momenta of X cluster in cluster frame
CALL HWVSCA(3,-ONE,PC,PC)
PC(4)=EMC-PC(4)
PC(5)=EMX
C--find the dirn of the 1st heavy quark in the X frame
C--transform to cluster frame
CALL HWULOF(PCL,PHEP(1,JHEP),AY)
C--transform to X-frame
CALL HWULOF(PC,AY,AY)
RCM=1./SQRT(HWVDOT(3,AY,AY))
CALL HWVSCA(3,RCM,AY,AY)
C--pa now momenta of 1st havy quark along this dirn
CALL HWVSCA(3,PCX,AY,PA)
PA(4)=SQRT(PCX**2+QM1**2)
PA(5)=QM1
C--pb now momenta of 1st heavy quark in cluster frame then to lab
CALL HWULOB(PC,PA,PB)
CALL HWULOB(PCL,PB,PHEP(1,JHEP))
C--now find the diquark momenta by momentum conservation
DO 50 J=1,4
50 PDIQUK(J)=PCL(J)-PHEP(J,THEP)-PHEP(J,MHEP)-PHEP(J,JHEP)
PDIQUK(5)=DQM
C--Now obtain the quark momenta from the diquark
DO 60 J=1,3
60 PA(J) = 0
PA(4) = QM2
PA(5) = QM2
CALL HWULOB(PDIQUK,PA,PHEP(1,KHEP))
CALL HWVDIF(4,PDIQUK,PHEP(1,KHEP),PHEP(1,LHEP))
C--Construct new vertex positions
RKAPPA=GEV2MM/SKAPPA
CALL HWVSCA(3,RKAPPA,AX,AX)
DELTM=(EMX-EMY)*(EMX+EMY)/(TWO*EMC)
CALL HWVSCA(3,DELTM,AX,VTMP)
VTMP(4)=(HALF*EMC-PXY)*RKAPPA
CALL HWULB4(PCL,VTMP,VTMP)
CALL HWVSUM(4,VTMP,VCLUS,VHEP(1,LHEP))
CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
C--Relabel the colours of the quarks
IDHEP(LHEP) = IDPDG(ID4)
IDHEP(MHEP) = IDPDG(ID4)
IF(IDHEP(JHEP).GT.0) THEN
IDHW(LHEP) = ID4+6
IDHEP(LHEP) = -IDHEP(LHEP)
IDHW(MHEP) = ID4
JDAHEP(2,LHEP) = JHEP
JMOHEP(2,LHEP) = MHEP
JMOHEP(2,MHEP) = JMOHEP(2,JHEP)
JDAHEP(2,MHEP) = LHEP
JMOHEP(2,JHEP) = LHEP
ELSE
IDHW(LHEP) = ID4
IDHW(MHEP) = ID4+6
IDHEP(MHEP) = -IDHEP(MHEP)
JMOHEP(2,LHEP) = JHEP
JDAHEP(2,MHEP) = JDAHEP(2,JHEP)
JDAHEP(2,LHEP) = MHEP
JMOHEP(2,MHEP) = LHEP
JDAHEP(2,JHEP) = LHEP
ENDIF
ISTHEP(LHEP) = 151
ISTHEP(MHEP) = 151
JMOHEP(1,LHEP) = JMOHEP(1,KHEP)
JDAHEP(1,LHEP) = 0
JMOHEP(1,MHEP) = JMOHEP(1,JHEP)
JDAHEP(1,MHEP) = 0
NHEP = NHEP+2
END
CDECK ID>, HWCBVI.
*CMZ :- -12/12/01 14:59:58 by Peter Richardson
*-- Author : Mark Gibbs, modified by Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWCBVI
C-----------------------------------------------------------------------
C FINDS UNPAIRED PARTONS AFTER BARYON-NUMBER VIOLATION
C MODIFIED FOR RPARITY VIOLATING SUSY
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/HWBVIC/NBV,IBV(18)
DOUBLE PRECISION HWRGEN,PDQ(5)
INTEGER NBV,IBV,JBV,KBV,LBV,IHEP,IP1,IP2,IP3,JP1,JP2,JP3,
& HWCBVT,NBR,MBV,IQ1,IQ2,IQ3,ID1,ID2,IDQ,IDIQK(3,3)
LOGICAL SPLIT,DUNBV(18)
SAVE IDIQK
DATA IDIQK/111,110,113,110,109,112,113,112,114/
C---Check for errors
IF (IERROR.NE.0) RETURN
C---Correct colour connections are gluon splitting
CALL HWCCCC
C---Reset bvi clustering flag
HVFCEN = .FALSE.
C---LIST PARTONS WITH WRONG COLOUR PARTNERS-QUARKS ONLY
5 NBV=0
DO 10 IHEP=1,NHEP
IF (ISTHEP(IHEP).GT.149.AND.ISTHEP(IHEP).LT.155) THEN
IF (QORQQB(IDHW(IHEP))) THEN
IF (.NOT.QORQQB(IDHW(JMOHEP(2,IHEP))).
& AND.JMOHEP(2,IHEP).GT.6) GOTO 10
ELSE
C---Extra check for Gamma's
IF (IDHW(IHEP).EQ.59) GO TO 10
C---End of bug fix.
IF (QORQQB(IDHW(JDAHEP(2,IHEP)))) GO TO 10
GO TO 10
ENDIF
IF(JMOHEP(2,IHEP).LT.6.AND.
& .NOT.QBORQQ(IDHW(JMOHEP(2,IHEP)))) GOTO 10
C--new for hard process
NBV=NBV+1
IF (NBV.GT.18) THEN
CALL HWWARN('HWCBVI',100)
GOTO 999
ENDIF
IBV(NBV)=IHEP
DUNBV(NBV)=.FALSE.
ENDIF
10 CONTINUE
C--NOW FIND THE ANTIQUARKS WITH WRONG COLOUR CONNECTIONS
DO 11 IHEP=1,NHEP
IF(ISTHEP(IHEP).GT.149.AND.ISTHEP(IHEP).LT.155) THEN
IF(QBORQQ(IDHW(IHEP))) THEN
IF(.NOT.QBORQQ(IDHW(JDAHEP(2,IHEP))).AND.
& JDAHEP(2,IHEP).GT.6) GO TO 11
ELSE
C--Extra check for gamma's
IF(IDHW(IHEP).EQ.59) GO TO 11
IF(QBORQQ(IDHW(JMOHEP(2,IHEP)))) GO TO 11
GO TO 11
ENDIF
IF(JDAHEP(2,IHEP).LT.6.AND.
& .NOT.QORQQB(IDHW(JDAHEP(2,IHEP)))) GOTO 11
NBV=NBV+1
IF(NBV.GT.18) THEN
CALL HWWARN('HWCBVI',100)
GOTO 999
ENDIF
IBV(NBV)=IHEP
DUNBV(NBV)=.FALSE.
ENDIF
11 CONTINUE
IF (NBV.EQ.0) RETURN
IF(MOD(NBV,3).NE.0) THEN
CALL HWWARN('HWCBVI',101)
GOTO 999
ENDIF
C---PROCESS FOUND PARTONS, STARTING AT RANDOM POINT IN LIST
NBR=INT(NBV*HWRGEN(0))
DO 100 MBV=1,NBV
JBV=MBV+NBR
IF (JBV.GT.NBV) JBV=JBV-NBV
IF (.NOT.DUNBV(JBV)) THEN
DUNBV(JBV)=.TRUE.
IP1=IBV(JBV)
JP1=HWCBVT(IP1)
C---FIND ASSOCIATED PARTONS
DO 20 KBV=1,NBV
IF (.NOT.DUNBV(KBV)) THEN
IP2=IBV(KBV)
JP2=HWCBVT(IP2)
IF (JP2.EQ.JP1) THEN
DUNBV(KBV)=.TRUE.
DO 15 LBV=1,NBV
IF (.NOT.DUNBV(LBV)) THEN
IP3=IBV(LBV)
JP3=HWCBVT(IP3)
IF (JP3.EQ.JP2) THEN
DUNBV(LBV)=.TRUE.
GO TO 25
ENDIF
ENDIF
15 CONTINUE
ENDIF
ENDIF
20 CONTINUE
CALL HWWARN('HWCBVI',102)
GOTO 999
25 IQ1=0
C---LOOK FOR DIQUARK
IF (ABS(IDHEP(IP1)).GT.100) THEN
IQ1=IP1
IQ2=IP2
IQ3=IP3
ELSEIF (ABS(IDHEP(IP2)).GT.100) THEN
IQ1=IP2
IQ2=IP3
IQ3=IP1
ELSEIF (ABS(IDHEP(IP3)).GT.100) THEN
IQ1=IP3
IQ2=IP1
IQ3=IP2
ENDIF
IF (IQ1.EQ.0) THEN
C---NO DIQUARKS: COMBINE TWO (ANTI)QUARKS
IF (ABS(IDHEP(IP1)).GT.3) THEN
IQ1=IP2
IQ2=IP3
IQ3=IP1
ELSEIF (ABS(IDHEP(IP2)).GT.3) THEN
IQ1=IP3
IQ2=IP1
IQ3=IP2
ELSE
IQ1=IP1
IQ2=IP2
IQ3=IP3
ENDIF
ID1=IDHEP(IQ1)
ID2=IDHEP(IQ2)
C---CHECK FLAVOURS
IF (ID1.GT.0.AND.ID1.LT.4.AND.
& ID2.GT.0.AND.ID2.LT.4) THEN
IDQ=IDIQK(ID1,ID2)
ELSEIF (ID1.LT.0.AND.ID1.GT.-4.AND.
& ID1.LT.0.AND.ID2.GT.-4) THEN
IDQ=IDIQK(-ID1,-ID2)+6
ELSE
C---CANT MAKE DIQUARKS WITH HEAVY QUARKS: TRY CLUSTER SPLITTING
CALL HWVSUM(4,PHEP(1,IQ1),PHEP(1,IQ2),PDQ)
CALL HWUMAS(PDQ)
C--Use the original splitting procedure
CALL HWCCUT(IQ1,IQ2,PDQ,.FALSE.,SPLIT)
IF (IERROR.NE.0) RETURN
IF(SPLIT) GOTO 5
C--If it fails try the new procedure
CALL HWVSUM(4,PDQ,PHEP(1,IQ3),PDQ)
CALL HWUMAS(PDQ)
IF(ABS(ID1).GT.3) THEN
CALL HWCBCT(IQ3,IQ2,IQ1,PDQ,SPLIT)
ELSEIF(ABS(ID2).GT.3) THEN
CALL HWCBCT(IQ3,IQ1,IQ2,PDQ,SPLIT)
ELSE
CALL HWWARN('HWCBVI',100)
GOTO 999
ENDIF
IF (SPLIT) GO TO 5
C---Unable to form cluster; dispose of event
CALL HWWARN('HWCBVI',-3)
GOTO 999
ENDIF
C---OVERWRITE FIRST AND CANCEL SECOND
IDHW(IQ1)=IDQ
IDHEP(IQ1)=IDPDG(IDQ)
CALL HWVSUM(4,PHEP(1,IQ1),PHEP(1,IQ2),PHEP(1,IQ1))
CALL HWUMAS(PHEP(1,IQ1))
ISTHEP(IQ2)=0
C---REMAKE COLOUR CONNECTIONS
IF (QORQQB(IDQ)) THEN
JMOHEP(2,IQ1)=IQ3
JDAHEP(2,IQ3)=IQ1
ELSE
JDAHEP(2,IQ1)=IQ3
JMOHEP(2,IQ3)=IQ1
ENDIF
ELSE
C---SPLIT A DIQUARK
NHEP=NHEP+1
CALL HWVSCA(5,HALF,PHEP(1,IQ1),PHEP(1,IQ1))
CALL HWVEQU(5,PHEP(1,IQ1),PHEP(1,NHEP))
ISTHEP(NHEP)=150
JMOHEP(1,NHEP)=JMOHEP(1,IQ1)
JDAHEP(1,NHEP)=0
C---FIND FLAVOURS
IDQ=IDHW(IQ1)
DO 30 ID2=1,3
DO 30 ID1=1,3
IF (IDIQK(ID1,ID2).EQ.IDQ) THEN
IDHW(IQ1)=ID1
IDHW(NHEP)=ID2
C---REMAKE COLOUR CONNECTIONS (DIQUARK)
JMOHEP(2,IQ1)=IQ2
JMOHEP(2,IQ2)=NHEP
JMOHEP(2,IQ3)=IQ1
JMOHEP(2,NHEP)=IQ3
JDAHEP(2,IQ1)=IQ3
JDAHEP(2,IQ2)=IQ1
JDAHEP(2,IQ3)=NHEP
JDAHEP(2,NHEP)=IQ2
GO TO 35
ELSEIF (IDIQK(ID1,ID2).EQ.IDQ-6) THEN
IDHW(IQ1)=ID1+6
IDHW(NHEP)=ID2+6
C---REMAKE COLOUR CONNECTIONS (ANTIDIQUARK)
JMOHEP(2,IQ1)=IQ3
JMOHEP(2,IQ2)=IQ1
JMOHEP(2,IQ3)=NHEP
JMOHEP(2,NHEP)=IQ2
JDAHEP(2,IQ1)=IQ2
JDAHEP(2,IQ2)=NHEP
JDAHEP(2,IQ3)=IQ1
JDAHEP(2,NHEP)=IQ3
GO TO 35
ENDIF
30 CONTINUE
CALL HWWARN('HWCBVI',104)
GOTO 999
35 IDHEP(IQ1)=IDPDG(IDHW(IQ1))
IDHEP(NHEP)=IDPDG(IDHW(NHEP))
ENDIF
ENDIF
100 CONTINUE
999 RETURN
END
CDECK ID>, HWCBVT.
*CMZ :-
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWCBVT(IP)
C-----------------------------------------------------------------------
C Function to find the baryon number violating vertex a parton came from
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER HWCBVT,IP,JP(2),KP,I,J,ID,TYPE,IDM,IDM2,IDM3,IDM4
JP(1) = IP
ID = IDHW(IP)
IF(ID.LE.6.OR.(ID.GE.115.AND.ID.LE.120)) THEN
JP(2) = JMOHEP(2,IP)
ELSE
JP(2) = JDAHEP(2,IP)
ENDIF
DO I=1,2
IDM = JMOHEP(1,JMOHEP(1,JMOHEP(1,JMOHEP(1,JP(I)))))
IF(IDHW(IDM).EQ.6.OR.IDHW(IDM).EQ.12) THEN
JP(I)=IDM
ENDIF
ENDDO
DO J=1,7
DO I=1,2
KP = JMOHEP(1,JP(I))
IDM = IDHW(KP)
IDM2 = IDHW(JDAHEP(1,KP))
IDM3 = IDHW(JDAHEP(2,KP))
IDM4 = IDHW(JDAHEP(1,KP)+1)
IF((ISTHEP(KP).EQ.155.AND.
& ((IDM.GE.449.AND.IDM.LE.457.AND.IDM2.LE.12.AND.
& IDM3.LE.12.AND.IDM4.LE.12).OR.
& (((IDM.GE.411.AND.IDM.LE.424).OR.IDM.EQ.405.OR.IDM.EQ.406)
& .AND.IDM2.LE.12.AND.IDM3.LE.12)))
& .OR.(IDM.EQ.15.AND.IDM2.LE.12.AND.
& IDHW(JMOHEP(1,KP)).LE.12.AND.
& IDHW(JMOHEP(2,KP)).LE.12.AND.IDM3.GE.449.AND.
& IDM3.LE.457).OR.
& (IDM.EQ.15.AND.IDM2.GE.198.AND.IDM2.LE.200.
& AND.ABS(IDPDG(IDM3)).GT.1000000)) THEN
IF(IDHW(KP).EQ.449.AND.JDAHEP(1,KP).EQ.JP(I)) THEN
KP = JMOHEP(1,KP)
ELSEIF(IDHW(KP).EQ.15) THEN
TYPE=IDHW(JDAHEP(1,KP))
IF(TYPE.GE.7.AND.TYPE.LE.12.AND.
& JMOHEP(2,JDAHEP(2,KP)).EQ.JP(I)) THEN
KP=IP
ELSEIF(TYPE.LE.6.AND.
& JDAHEP(2,JDAHEP(2,KP)).EQ.JP(I)) THEN
KP=IP
ELSE
HWCBVT = KP
RETURN
ENDIF
ELSE
HWCBVT = KP
RETURN
ENDIF
ENDIF
JP(I) =KP
ENDDO
ENDDO
HWCBVT = 0
END
CDECK ID>, HWCCCC.
*CMZ :-
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWCCCC
C-----------------------------------------------------------------------
C Subroutine to correct colour connections after the gluon splitting
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,STFSPT,LHEP,MHEP,RHEP
IF(IERROR.NE.0) RETURN
C--Find the first particle in the event record with status 150
DO IHEP=1,NHEP
IF(ISTHEP(IHEP).GE.150.AND.ISTHEP(IHEP).LE.154) THEN
STFSPT = IHEP
GOTO 10
ENDIF
ENDDO
10 CONTINUE
C--Now find any that are colour connected to earlier particles
C--in the event record
DO IHEP=STFSPT,NHEP
C--First the quarks and antidiquarks
IF(IDHW(IHEP).LT.6.OR.
& (IDHW(IHEP).GE.115.AND.IDHW(IHEP).LE.120)) THEN
IF(JMOHEP(2,IHEP).LT.STFSPT) THEN
LHEP = IHEP
MHEP = JMOHEP(2,IHEP)
RHEP = MHEP
IF(MHEP.GT.6) RHEP = JDAHEP(1,MHEP)
C--As from Rparity connect to particle not to antiparticle
IF(IDHW(MHEP).NE.13) THEN
JMOHEP(2,LHEP) = RHEP
ELSE
RHEP = RHEP+1
JMOHEP(2,LHEP) = RHEP
ENDIF
ENDIF
ENDIF
C--Now the antiquarks
IF((IDHW(IHEP).GT.6.AND.IDHW(IHEP).LE.12).OR.
& (IDHW(IHEP).GE.109.AND.IDHW(IHEP).LE.114)) THEN
IF(JDAHEP(2,IHEP).LT.STFSPT) THEN
LHEP = IHEP
MHEP = JDAHEP(2,IHEP)
RHEP = MHEP
IF(MHEP.GT.6) RHEP = JDAHEP(1,MHEP)
C--As from Rparity connect to antiparticle not particle
IF(IDHW(MHEP).NE.13) THEN
JDAHEP(2,LHEP) = RHEP
ELSE
JDAHEP(2,LHEP) = RHEP
ENDIF
ENDIF
ENDIF
ENDDO
END
CDECK ID>, HWCCUT.
*CMZ :- -26/04/91 14.29.39 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWCCUT(JHEP,KHEP,PCL,BTCLUS,SPLIT)
C-----------------------------------------------------------------------
C Cuts into 2 the cluster, momentum PCL, made of partons JHEP & KHEP
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWREXQ,HWUPCM,HWRGEN,HWVDOT,EMC,QM1,QM2,EMX,EMY,
& QM3,PXY,PCX,PCY,RCM,PCL(5),AX(5),PA(5),PB(5),PC(5),SKAPPA,DELTM,
& VSCA,VTMP(4),RKAPPA,VCLUS
INTEGER HWRINT,JHEP,KHEP,LHEP,MHEP,ID1,ID2,ID3,NTRY,NTRYMX,J,IB
LOGICAL BTCLUS,SPLIT
EXTERNAL HWREXQ,HWUPCM,HWRGEN,HWVDOT,HWRINT
COMMON/HWCFRM/VCLUS(4,NMXHEP)
PARAMETER (SKAPPA=1.,NTRYMX=100)
IF (IERROR.NE.0) RETURN
EMC=PCL(5)
ID1=IDHW(JHEP)
ID2=IDHW(KHEP)
QM1=RMASS(ID1)
QM2=RMASS(ID2)
SPLIT=.FALSE.
NTRY=0
C Decide if cluster contains a b-(anti)quark
IF (ID1.EQ.5.OR.ID1.EQ.11.OR.ID2.EQ.5.OR.ID2.EQ.11) THEN
IB=2
ELSE
IB=1
ENDIF
IF (BTCLUS) THEN
C Split beam and target clusters as soft clusters
C Both (remnant) children treated like soft clusters if IOPREM=0(1)
10 ID3=HWRINT(1,2)
QM3=RMASS(ID3)
IF (EMC.LE.QM1+QM2+2.*QM3) THEN
ID3=3-ID3
QM3=RMASS(ID3)
IF (EMC.LE.QM1+QM2+2.*QM3) RETURN
ENDIF
PXY=EMC-QM1-QM2-TWO*QM3
IF (ISTHEP(JHEP).EQ.153.OR.ISTHEP(JHEP).EQ.154.OR.
& IOPREM.EQ.0) THEN
EMX=QM1+QM3+HWREXQ(BTCLM,PXY)
ELSE
EMX=QM1+QM3+PXY*HWRGEN(0)**PSPLT(IB)
ENDIF
IF (ISTHEP(KHEP).EQ.153.OR.ISTHEP(KHEP).EQ.154.OR.
& IOPREM.EQ.0) THEN
EMY=QM2+QM3+HWREXQ(BTCLM,PXY)
ELSE
EMY=QM2+QM3+PXY*HWRGEN(1)**PSPLT(IB)
ENDIF
IF (EMX+EMY.GE.EMC) THEN
NTRY=NTRY+1
IF (NTRY.GT.NTRYMX) RETURN
GOTO 10
ENDIF
PCX=HWUPCM(EMX,QM1,QM3)
PCY=HWUPCM(EMY,QM2,QM3)
ELSE
C Choose fragment masses for ordinary cluster
PXY=EMC-QM1-QM2
20 NTRY=NTRY+1
IF (NTRY.GT.NTRYMX) RETURN
30 EMX=QM1+PXY*HWRGEN(0)**PSPLT(IB)
EMY=QM2+PXY*HWRGEN(1)**PSPLT(IB)
IF (EMX+EMY.GE.EMC) GOTO 30
C u,d,s pair production with weights QWT
40 ID3=HWRINT(1,3)
IF (QWT(ID3).LT.HWRGEN(3)) GOTO 40
QM3=RMASS(ID3)
PCX=HWUPCM(EMX,QM1,QM3)
IF (PCX.LT.ZERO) GOTO 20
PCY=HWUPCM(EMY,QM2,QM3)
IF (PCY.LT.ZERO) GOTO 20
SPLIT=.TRUE.
ENDIF
C Boost antiquark to CoM frame to find axis
CALL HWULOF(PCL,PHEP(1,KHEP),AX)
RCM=1./SQRT(HWVDOT(3,AX,AX))
CALL HWVSCA(3,RCM,AX,AX)
C Construct new CoM momenta (collinear)
PXY=HWUPCM(EMC,EMX,EMY)
CALL HWVSCA(3,PXY,AX,PC)
PC(4)=SQRT(PXY**2+EMY**2)
PC(5)=EMY
CALL HWVSCA(3,PCY,AX,PA)
PA(4)=SQRT(PCY**2+QM2**2)
PA(5)=QM2
CALL HWULOB(PC,PA,PB)
CALL HWVDIF(4,PC,PB,PA)
PA(5)=QM3
LHEP=NHEP+1
MHEP=NHEP+2
IF (MHEP.GT.NMXHEP) THEN
CALL HWWARN('HWCCUT',100)
GOTO 999
ENDIF
CALL HWULOB(PCL,PB,PHEP(1,KHEP))
CALL HWULOB(PCL,PA,PHEP(1,MHEP))
CALL HWVSCA(3,-ONE,PC,PC)
PC(4)=EMC-PC(4)
PC(5)=EMX
CALL HWVSCA(3,PCX,AX,PA)
PA(4)=SQRT(PCX**2+QM3**2)
CALL HWULOB(PC,PA,PB)
CALL HWULOB(PCL,PB,PHEP(1,LHEP))
DO 50 J=1,4
50 PHEP(J,JHEP)=PCL(J)-PHEP(J,KHEP)-PHEP(J,LHEP)-PHEP(J,MHEP)
PHEP(5,JHEP)=QM1
CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
C Construct new vertex positions
RKAPPA=GEV2MM/SKAPPA
CALL HWVSCA(3,RKAPPA,AX,AX)
DELTM=(EMX-EMY)*(EMX+EMY)/(TWO*EMC)
CALL HWVSCA(3,DELTM,AX,VTMP)
VTMP(4)=(HALF*EMC-PXY)*RKAPPA
CALL HWULB4(PCL,VTMP,VTMP)
CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VHEP(1,LHEP))
CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
VSCA=0.25*EMC+HALF*(PXY+DELTM)
CALL HWVSCA(3,VSCA,AX,VTMP)
VTMP(4)=(EMC-VSCA)*RKAPPA
CALL HWULB4(PCL,VTMP,VTMP)
CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VCLUS(1,MHEP))
VSCA=-0.25*EMC+HALF*(DELTM-PXY)
CALL HWVSCA(3,VSCA,AX,VTMP)
VTMP(4)=(EMC+VSCA)*RKAPPA
CALL HWULB4(PCL,VTMP,VTMP)
CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VCLUS(1,JHEP))
C (Re-)label quarks
IDHW(LHEP)=ID3+6
IDHW(MHEP)=ID3
IDHEP(MHEP)= IDPDG(ID3)
IDHEP(LHEP)=-IDPDG(ID3)
ISTHEP(LHEP)=151
ISTHEP(MHEP)=151
JMOHEP(2,JHEP)=LHEP
JDAHEP(2,KHEP)=MHEP
JMOHEP(1,LHEP)=JMOHEP(1,KHEP)
JMOHEP(2,LHEP)=MHEP
JDAHEP(1,LHEP)=0
JDAHEP(2,LHEP)=JHEP
JMOHEP(1,MHEP)=JMOHEP(1,JHEP)
JMOHEP(2,MHEP)=KHEP
JDAHEP(1,MHEP)=0
JDAHEP(2,MHEP)=LHEP
NHEP=NHEP+2
999 RETURN
END
CDECK ID>, HWCDEC.
*CMZ :- -26/04/91 10.18.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWCDEC
C-----------------------------------------------------------------------
C DECAYS CLUSTERS INTO PRIMARY HADRONS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER JCL,KCL,IP,JP,KP,IST,ID1,ID2,ID3
IF (IERROR.NE.0) RETURN
IF (IPRO/10.EQ.9.OR.IPRO/10.EQ.5) THEN
C---RELABEL CLUSTER CONNECTED TO REMNANT IN DIS
DO 10 JCL=2,NHEP
IF (ISTHEP(JCL).EQ.164) GOTO 20
IF (ISTHEP(JCL).EQ.165) THEN
IP=JMOHEP(1,JCL)
JP=JMOHEP(2,JCL)
KP=IP
IF (ISTHEP(IP).EQ.162) THEN
KP=JP
JP=IP
ENDIF
IF (JMOHEP(2,KP).NE.JP) THEN
IP=JMOHEP(2,KP)
ELSE
IP=JDAHEP(2,KP)
ENDIF
KCL=JDAHEP(1,IP)
IF (ISTHEP(KCL)/10.NE.16) THEN
CALL HWWARN('HWCDEC',100)
GOTO 999
ENDIF
ISTHEP(KCL)=164
GOTO 20
ENDIF
10 CONTINUE
ENDIF
20 CONTINUE
DO 30 JCL=1,NHEP
IST=ISTHEP(JCL)
IF (IST.GT.162.AND.IST.LT.166) THEN
C---DON'T HADRONIZE BEAM/TARGET CLUSTERS
IF (IST.EQ.163.OR..NOT.GENSOF) THEN
C---SET UP FLAVOURS FOR CLUSTER DECAY
CALL HWCFLA(IDHW(JMOHEP(1,JCL)),IDHW(JMOHEP(2,JCL)),ID1,ID3)
CALL HWCHAD(JCL,ID1,ID3,ID2)
ENDIF
ENDIF
30 CONTINUE
ISTAT=50
999 RETURN
END
CDECK ID>, HWCFLA.
*CMZ :- -26/04/91 10.18.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWCFLA(JD1,JD2,ID1,ID2)
C-----------------------------------------------------------------------
C SETS UP FLAVOURS FOR CLUSTER DECAY
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER JD1,JD2,ID1,ID2,JD,JDEC(12)
SAVE JDEC
DATA JDEC/1,2,3,10,11,12,4,5,6,7,8,9/
JD=JD1
IF (JD.GT.12) JD=JD-108
ID1=JDEC(JD)
JD=JD2
IF (JD.GT.12) JD=JD-96
ID2=JDEC(JD-6)
END
CDECK ID>, HWCFOR.
*CMZ :- -26/04/91 14.15.56 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWCFOR
C-----------------------------------------------------------------------
C Converts colour-connected quark-antiquark pairs into clusters
C Modified by IGK to include BRW's colour rearrangement and
C MHS's cluster vertices
C MODIFIED 16/10/97 BY BRW FOR SUSY PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWULDO,HWVDOT,HWRGEN,HWUPCM,DCL0,DCL(4),DCL1,
& DFAC,DISP1(4),DISP2(4),DMAX,PCL(5),DOT1,DOT2,FAC,VCLUS,SCA1,SCA2,
& EM0,EM1,EM2,PC0,PC1
INTEGER HWRINT,MAP(120),IBHEP,IBCL,JBHEP,JHEP,
& KHEP,LHEP,LCL,IHEP,MCL,I,ISTJ,ISTK,JCL,ID1,ID3,L
LOGICAL HWRLOG,SPLIT
EXTERNAL HWULDO,HWVDOT,HWRGEN,HWUPCM,HWRINT
COMMON/HWCFRM/VCLUS(4,NMXHEP)
SAVE MAP
DATA MAP/1,2,3,4,5,6,1,2,3,4,5,6,96*0,7,8,9,10,11,12,7,8,9,10,11,
& 12/
IF (IERROR.NE.0) RETURN
C Split gluons
CALL HWCGSP
C Find colour partners after baryon number violating event
IF (HVFCEN) THEN
IF(RPARTY) THEN
CALL HVCBVI
ELSE
CALL HWCBVI
ENDIF
ENDIF
IF (IERROR.NE.0) RETURN
C Look for partons to cluster
DO 10 IBHEP=1,NHEP
10 IF (ISTHEP(IBHEP).GE.150.AND.ISTHEP(IBHEP).LE.154) GOTO 20
IBCL=1
GOTO 130
20 CONTINUE
C--Final check for colour disconnections
DO 25 JHEP=IBHEP,NHEP
IF (ISTHEP(JHEP).GE.150.AND.ISTHEP(JHEP).LE.154.AND.
& QORQQB(IDHW(JHEP))) THEN
KHEP=JMOHEP(2,JHEP)
C BRW FIX 13/03/99
IF (KHEP.EQ.0.OR..NOT.(
& ISTHEP(KHEP).GE.150.AND.ISTHEP(KHEP).LE.154.AND.
& QBORQQ(IDHW(KHEP)))) THEN
DO KHEP=IBHEP,NHEP
IF (ISTHEP(KHEP).GE.150.AND.ISTHEP(KHEP).LE.154
& .AND.QBORQQ(IDHW(KHEP))) THEN
LHEP=JDAHEP(2,KHEP)
IF (LHEP.EQ.0.OR..NOT.(
& ISTHEP(LHEP).GE.150.AND.ISTHEP(LHEP).LE.154.AND.
& QORQQB(IDHW(LHEP)))) THEN
JMOHEP(2,JHEP)=KHEP
JDAHEP(2,KHEP)=JHEP
GOTO 25
ENDIF
ENDIF
ENDDO
C END FIX
CALL HWWARN('HWCFOR',100)
GOTO 999
ENDIF
ENDIF
25 CONTINUE
IF (CLRECO) THEN
C Allow for colour rearrangement of primary clusters
NRECO=0
C Randomize starting point
JBHEP=HWRINT(IBHEP,NHEP)
JHEP=JBHEP
30 JHEP=JHEP+1
IF (JHEP.GT.NHEP) JHEP=IBHEP
IF (ISTHEP(JHEP).GE.150.AND.ISTHEP(JHEP).LE.154.AND.
& QORQQB(IDHW(JHEP))) THEN
C Find colour connected antiquark or diquark
KHEP=JMOHEP(2,JHEP)
C Find partner antiquark or diquark
LHEP=JDAHEP(2,JHEP)
C Find closest antiquark or diquark
DCL0=1.D15
LCL=0
DO 40 IHEP=IBHEP,NHEP
IF (ISTHEP(IHEP).GE.150.AND.ISTHEP(IHEP).LE.154.AND.
& QBORQQ(IDHW(IHEP))) THEN
C Check whether already reconnected
IF (JDAHEP(2,IHEP).GT.0.AND.IHEP.NE.LHEP) THEN
CALL HWVDIF(4,VHEP(1,IHEP),VHEP(1,JHEP),DCL)
DCL1=ABS(HWULDO(DCL,DCL))
IF (DCL1.LT.DCL0) THEN
DCL0=DCL1
LCL=IHEP
ENDIF
ENDIF
ENDIF
40 CONTINUE
IF (LCL.NE.0.AND.LCL.NE.KHEP) THEN
MCL=JDAHEP(2,LCL)
IF (JDAHEP(2,MCL).NE.KHEP) THEN
C Pairwise reconnection is possible
CALL HWVDIF(4,VHEP(1,KHEP),VHEP(1,MCL ),DCL)
DCL0=DCL0+ABS(HWULDO(DCL,DCL))
CALL HWVDIF(4,VHEP(1,JHEP),VHEP(1,KHEP),DCL)
DCL1=ABS(HWULDO(DCL,DCL))
CALL HWVDIF(4,VHEP(1,LCL ),VHEP(1,MCL ),DCL)
DCL1=DCL1+ABS(HWULDO(DCL,DCL))
IF (DCL0.LT.DCL1.AND.HWRLOG(PRECO)) THEN
C Reconnection occurs
JMOHEP(2,JHEP)= LCL
JDAHEP(2,LCL )=-JHEP
JMOHEP(2,MCL) = KHEP
JDAHEP(2,KHEP)=-MCL
NRECO=NRECO+1
ENDIF
ENDIF
ENDIF
ENDIF
IF (JHEP.NE.JBHEP) GOTO 30
IF (NRECO.NE.0) THEN
DO 50 IHEP=IBHEP,NHEP
50 JDAHEP(2,IHEP)=ABS(JDAHEP(2,IHEP))
ENDIF
ENDIF
C Find (adjusted) cluster positions using MHS prescription
DFAC=ONE
DMAX=1D-10
DO 70 JHEP=IBHEP,NHEP
IF (ISTHEP(JHEP).GE.150.AND.ISTHEP(JHEP).LE.154.AND.
& QORQQB(IDHW(JHEP))) THEN
KHEP=JMOHEP(2,JHEP)
CALL HWUDKL(IDHW(JHEP),PHEP(1,JHEP),DISP1)
CALL HWVSCA(4,DFAC,DISP1,DISP1)
CALL HWUDKL(IDHW(KHEP),PHEP(1,KHEP),DISP2)
CALL HWVSCA(4,DFAC,DISP2,DISP2)
C Rescale the lengths of DISP1,DISP2 if too long
DOT1=HWVDOT(3,DISP1,DISP1)
DOT2=HWVDOT(3,DISP2,DISP2)
IF (MAX(DOT1,DOT2).GT.DMAX**2) THEN
CALL HWVSCA(4,DMAX/SQRT(DOT1),DISP1,DISP1)
CALL HWVSCA(4,DMAX/SQRT(DOT2),DISP2,DISP2)
ENDIF
CALL HWVSUM(4,PHEP(1,JHEP),PHEP(1,KHEP),PCL)
DOT1=HWVDOT(3,DISP1,PCL)
DOT2=HWVDOT(3,DISP2,PCL)
C If PCL > 90^o from either quark, use a vector which isn't
IF (DOT1.LE.ZERO.OR. DOT2.LE.ZERO) THEN
CALL HWVSUM(4,DISP1,DISP2,PCL)
DOT1=HWVDOT(3,DISP1,PCL)
DOT2=HWVDOT(3,DISP2,PCL)
ENDIF
C If vectors are exactly opposite each other this method cannot work
IF (DOT1.EQ.ZERO.OR.DOT2.EQ.ZERO) THEN
C So use midpoint of quark constituents
CALL HWVSUM(4,VHEP(1,JHEP),VHEP(1,KHEP),VCLUS(1,JHEP))
CALL HWVSCA(4,HALF,VCLUS(1,JHEP),VCLUS(1,JHEP))
GOTO 70
ENDIF
C Rescale DISP1 or DISP2 to give equal components in the PCL direction
FAC=DOT1/DOT2
IF (FAC.GT.ONE) THEN
CALL HWVSCA(4, FAC,DISP2,DISP2)
DOT2=DOT1
ELSE
CALL HWVSCA(4,ONE/FAC,DISP1,DISP1)
DOT1=DOT2
ENDIF
C Shift VHEP(1,JHEP) or VHEP(1,KHEP) s.t. their line is perp to PCL
FAC=(HWVDOT(3,PCL,VHEP(1,KHEP))
& -HWVDOT(3,PCL,VHEP(1,JHEP)))/DOT1
SCA1=MAX(ONE,ONE+FAC)
SCA2=MAX(ONE,ONE-FAC)
DO 60 I=1,4
60 VCLUS(I,JHEP)=.5*(VHEP(I,JHEP)+VHEP(I,KHEP)
& +SCA1*DISP1(I)+SCA2*DISP2(I))
ENDIF
70 CONTINUE
C First chop up beam/target clusters
DO 80 JHEP=IBHEP,NHEP
KHEP=JMOHEP(2,JHEP)
ISTJ=ISTHEP(JHEP)
ISTK=ISTHEP(KHEP)
C--PR MOD here 8/7/99
IF (QORQQB(IDHW(JHEP)).AND.
& (((ISTJ.EQ.153.OR.ISTJ.EQ.154).AND.ISTK.NE.151.AND.ISTK.NE.0)
& .OR.((ISTK.EQ.153.OR.ISTK.EQ.154).
& AND.ISTJ.NE.151.AND.ISTJ.NE.0))) THEN
C--end
CALL HWVSUM(4,PHEP(1,JHEP),PHEP(1,KHEP),PCL)
CALL HWUMAS(PCL)
CALL HWCCUT(JHEP,KHEP,PCL,.TRUE.,SPLIT)
IF (IERROR.NE.0) RETURN
ENDIF
80 CONTINUE
C Second chop up massive pairs
DO 100 JHEP=IBHEP,NMXHEP
IF (JHEP.GT.NHEP) GOTO 110
IF (ISTHEP(JHEP).GE.150.AND.ISTHEP(JHEP).LE.154.AND.
& QORQQB(IDHW(JHEP))) THEN
90 KHEP=JMOHEP(2,JHEP)
CALL HWVSUM(4,PHEP(1,JHEP),PHEP(1,KHEP),PCL)
CALL HWUMAS(PCL)
IF (PCL(5).GT.CTHRPW(MAP(IDHW(JHEP)),MAP(IDHW(KHEP)))) THEN
CALL HWCCUT(JHEP,KHEP,PCL,.FALSE.,SPLIT)
IF (IERROR.NE.0) RETURN
IF (SPLIT) GOTO 90
ENDIF
ENDIF
100 CONTINUE
C Third create clusters and store production vertex
110 IBCL=NHEP+1
JCL=NHEP
DO 120 JHEP=IBHEP,NHEP
IF (ISTHEP(JHEP).GE.150.AND.ISTHEP(JHEP).LE.154.AND.
& QORQQB(IDHW(JHEP))) THEN
JCL=JCL+1
IF(JCL.GT.NMXHEP) THEN
CALL HWWARN('HWCFOR',105)
GOTO 999
ENDIF
IDHW(JCL)=19
IDHEP(JCL)=91
KHEP=JMOHEP(2,JHEP)
IF (KHEP.EQ.0.OR..NOT.(
& ISTHEP(KHEP).GE.150.AND.ISTHEP(KHEP).LE.154.AND.
& QBORQQ(IDHW(KHEP)))) THEN
CALL HWWARN('HWCFOR',104)
GOTO 999
ENDIF
CALL HWVSUM(4,PHEP(1,JHEP),PHEP(1,KHEP),PHEP(1,JCL))
CALL HWUMAS(PHEP(1,JCL))
IF (ISTHEP(JHEP).EQ.153.OR.ISTHEP(KHEP).EQ.153) THEN
ISTHEP(JCL)=164
ELSEIF (ISTHEP(JHEP).EQ.154.OR.ISTHEP(KHEP).EQ.154) THEN
ISTHEP(JCL)=165
ELSE
ISTHEP(JCL)=163
ENDIF
JMOHEP(1,JCL)=JHEP
JMOHEP(2,JCL)=KHEP
JDAHEP(1,JCL)=0
JDAHEP(2,JCL)=0
JDAHEP(1,JHEP)=JCL
JDAHEP(1,KHEP)=JCL
ISTHEP(JHEP)=ISTHEP(JHEP)+8
ISTHEP(KHEP)=ISTHEP(KHEP)+8
CALL HWVEQU(4,VCLUS(1,JHEP),VHEP(1,JCL))
ENDIF
120 CONTINUE
NHEP=JCL
C Fix up momenta for single-hadron clusters
130 DO 150 JCL=IBCL,NHEP
C Don't hadronize beam/target clusters
IF (ISTHEP(JCL).LT.163.OR.ISTHEP(JCL).GT.165) GOTO 150
IF (ISTHEP(JCL).NE.163.AND.GENSOF) GOTO 150
C Set up flavours for cluster decay
CALL HWCFLA(IDHW(JMOHEP(1,JCL)),IDHW(JMOHEP(2,JCL)),ID1,ID3)
EM0=PHEP(5,JCL)
IF ((B1LIM.EQ.ZERO).OR.(ID1.NE.11.AND.ID3.NE.11)) THEN
IF (EM0.GT.MIN(RMIN(ID1,1)+RMIN(1,ID3),
$ RMIN(ID1,2)+RMIN(2,ID3))) GOTO 150
ELSE
C Special for b clusters: allow 1-hadron decay above threshold
IF (B1LIM*HWRGEN(1).LT.EM0/(MIN(RMIN(ID1,1)+RMIN(1,ID3),
$ RMIN(ID1,2)+RMIN(2,ID3)))-1.)
& GOTO 150
ENDIF
EM1=RMIN(ID1,ID3)
IF (ABS(EM0-EM1).LT.1.D-5) GOTO 150
C Decide to go backward or forward to transfer 4-momentum
L=1-2*HWRINT(0,1)
MCL=NHEP-IBCL+1
LCL=JCL
DO 140 I=1,MCL
LCL=LCL+L
IF (LCL.LT.IBCL) LCL=LCL+MCL
IF (LCL.GT.NHEP) LCL=LCL-MCL
IF (LCL.EQ.JCL) THEN
IF (EM0.GE.EM1+RMIN(1,1)) GOTO 150
CALL HWWARN('HWCFOR',101)
GOTO 999
ENDIF
IF (ISTHEP(LCL).LT.163.OR.ISTHEP(LCL).GT.165) GOTO 140
C Rescale momenta in 2-cluster CoM
CALL HWVSUM(4,PHEP(1,JCL),PHEP(1,LCL),PCL)
CALL HWUMAS(PCL)
EM2=PHEP(5,LCL)
PC0=HWUPCM(PCL(5),EM0,EM2)
PC1=HWUPCM(PCL(5),EM1,EM2)
IF (PC1.LT.ZERO) THEN
C Need to rescale other mass as well
CALL HWCFLA(IDHW(JMOHEP(1,LCL)),IDHW(JMOHEP(2,LCL)),ID1,ID3)
EM2=RMIN(ID1,ID3)
PC1=HWUPCM(PCL(5),EM1,EM2)
IF (PC1.LT.ZERO) GOTO 140
PHEP(5,LCL)=EM2
ENDIF
IF (PC0.GT.ZERO) THEN
PC0=PC1/PC0
CALL HWULOF(PCL,PHEP(1,JCL),PHEP(1,JCL))
CALL HWVSCA(3,PC0,PHEP(1,JCL),PHEP(1,JCL))
PHEP(4,JCL)=SQRT(PC1**2+EM1**2)
PHEP(5,JCL)=EM1
CALL HWULOB(PCL,PHEP(1,JCL),PHEP(1,JCL))
CALL HWVDIF(4,PCL,PHEP(1,JCL),PHEP(1,LCL))
GOTO 150
ELSEIF (PC0.EQ.ZERO) THEN
PHEP(5,JCL)=EM1
CALL HWDTWO(PCL,PHEP(1,JCL),PHEP(1,LCL),PC1,TWO,.TRUE.)
GOTO 150
ELSE
CALL HWWARN('HWCFOR',102)
GOTO 999
ENDIF
140 CONTINUE
CALL HWWARN('HWCFOR',103)
GOTO 999
150 CONTINUE
ISTAT=60
C Non-partons labelled as partons (ie photons) should get copied
DO 160 IHEP=1,NHEP
IF (ISTHEP(IHEP).EQ.150) THEN
NHEP=NHEP+1
JDAHEP(1,IHEP)=NHEP
ISTHEP(IHEP)=157
ISTHEP(NHEP)=190
IDHW(NHEP)=IDHW(IHEP)
IDHEP(NHEP)=IDPDG(IDHW(IHEP))
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
C--MHS FIX 07/03/05 - VERTEX SHOULD BE RELATIVE TO FIXED AXES
CALL HWVSUM(4,VTXPIP,VHEP(1,IHEP),VHEP(1,NHEP))
C--END FIXES
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=JMOHEP(1,IHEP)
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
ENDIF
160 CONTINUE
999 RETURN
END
CDECK ID>, HWCGSP.
*CMZ :- -13/07/92 20.15.54 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWCGSP
C-----------------------------------------------------------------------
C SPLITS ANY TIMELIKE GLUONS REMAINING AFTER PERTURBATIVE
C BRANCHING INTO LIGHT (I.E. U OR D) Q-QBAR PAIRS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,PF
INTEGER HWRINT,IHEP,JHEP,KHEP,LHEP,MHEP,ID,J,IST
EXTERNAL HWRGEN,HWRINT
IF (NGSPL.EQ.0) CALL HWWARN('HWCGSP',400)
LHEP=NHEP-1
MHEP=NHEP
DO 100 IHEP=1,NHEP
IF (ISTHEP(IHEP).GE.147.AND.ISTHEP(IHEP).LE.149) THEN
JHEP=JMOHEP(2,IHEP)
C BRW FIX 12/03/99
IF (JHEP.LE.0) THEN
KHEP=0
DO JHEP=1,NHEP
IF (ISTHEP(JHEP).GE.147.AND.ISTHEP(JHEP).LE.149
& .AND.JDAHEP(2,JHEP).LE.0) THEN
KHEP=KHEP+1
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,JHEP)=IHEP
ENDIF
ENDDO
IF (KHEP.EQ.0) THEN
CALL HWWARN('HWCGSP',102)
GOTO 999
ENDIF
IF (KHEP.NE.1) THEN
CALL HWWARN('HWCGSP',103)
GOTO 999
ENDIF
ENDIF
C END FIX
C---CHECK FOR DECAYED HEAVY ANTIQUARKS
IF (ISTHEP(JHEP).EQ.155) THEN
JHEP=JDAHEP(1,JDAHEP(2,JHEP))
DO 10 J=JDAHEP(1,JHEP),JDAHEP(2,JHEP)
10 IF (ISTHEP(J).EQ.149.AND.JDAHEP(2,J).EQ.0) GOTO 20
CALL HWWARN('HWCGSP',100)
GOTO 999
20 JHEP=J
ENDIF
KHEP=JDAHEP(2,IHEP)
C BRW FIX 12/03/99
IF (KHEP.LE.0) THEN
KHEP=0
DO JHEP=1,NHEP
IF (ISTHEP(JHEP).GE.147.AND.ISTHEP(JHEP).LE.149
& .AND.JMOHEP(2,JHEP).LE.0) THEN
KHEP=KHEP+1
JDAHEP(2,IHEP)=JHEP
JMOHEP(2,JHEP)=IHEP
ENDIF
ENDDO
IF (KHEP.EQ.0) THEN
CALL HWWARN('HWCGSP',104)
GOTO 999
ENDIF
IF (KHEP.NE.1) THEN
CALL HWWARN('HWCGSP',105)
GOTO 999
ENDIF
KHEP=JDAHEP(2,IHEP)
ENDIF
C END FIX
C---CHECK FOR DECAYED HEAVY QUARKS
IF (ISTHEP(KHEP).EQ.155) THEN
CALL HWWARN('HWCGSP',101)
GOTO 999
ENDIF
IF (IDHW(IHEP).EQ.13) THEN
C---SPLIT A GLUON
LHEP=LHEP+2
MHEP=MHEP+2
IF(MHEP.GT.NMXHEP) THEN
CALL HWWARN('HWCGSP',106)
GOTO 999
ENDIF
30 ID=HWRINT(1,NGSPL)
IF (PGSPL(ID).LT.PGSMX*HWRGEN(0)) GOTO 30
PHEP(5,LHEP)=RMASS(ID)
PHEP(5,MHEP)=RMASS(ID)
C---ASSUME ISOTROPIC ANGULAR DISTRIBUTION
IF (PHEP(5,IHEP).GT.PHEP(5,LHEP)+PHEP(5,MHEP)) THEN
CALL HWDTWO(PHEP(1,IHEP),PHEP(1,LHEP),
& PHEP(1,MHEP),PGSPL(ID),TWO,.TRUE.)
ELSE
PF=HWRGEN(1)
CALL HWVSCA(4,PF,PHEP(1,IHEP),PHEP(1,LHEP))
CALL HWVDIF(4,PHEP(1,IHEP),PHEP(1,LHEP),PHEP(1,MHEP))
PHEP(5,LHEP)=PF*PHEP(5,IHEP)
PHEP(5,MHEP)=PHEP(5,IHEP)-PHEP(5,LHEP)
ENDIF
CALL HWUDKL(13,PHEP(1,IHEP),VHEP(1,LHEP))
CALL HWVSUM(4,VHEP(1,IHEP),VHEP(1,LHEP),VHEP(1,LHEP))
CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
IDHW(LHEP)=ID+6
IDHW(MHEP)=ID
IDHEP(MHEP)= IDPDG(ID)
IDHEP(LHEP)=-IDPDG(ID)
ISTHEP(IHEP)=2
ISTHEP(LHEP)=150
ISTHEP(MHEP)=150
C---NEW COLOUR CONNECTIONS
IF(RPARTY.OR.JMOHEP(2,KHEP).EQ.IHEP) JMOHEP(2,KHEP)=LHEP
IF(RPARTY.OR.JDAHEP(2,JHEP).EQ.IHEP) JDAHEP(2,JHEP)=MHEP
JMOHEP(1,LHEP)=JMOHEP(1,IHEP)
JMOHEP(2,LHEP)=MHEP
JMOHEP(1,MHEP)=JMOHEP(1,IHEP)
JMOHEP(2,MHEP)=JHEP
JDAHEP(1,LHEP)=0
JDAHEP(2,LHEP)=KHEP
JDAHEP(1,MHEP)=0
JDAHEP(2,MHEP)=LHEP
JDAHEP(1,IHEP)=LHEP
JDAHEP(2,IHEP)=MHEP
ELSE
C---COPY A NON-GLUON
LHEP=LHEP+1
MHEP=MHEP+1
IF(MHEP.GT.NMXHEP) THEN
CALL HWWARN('HWCGSP',107)
GOTO 999
ENDIF
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,MHEP))
CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,MHEP))
IDHW(MHEP)=IDHW(IHEP)
IDHEP(MHEP)=IDHEP(IHEP)
IST=ISTHEP(IHEP)
ISTHEP(IHEP)=2
IF (IST.EQ.149) THEN
ISTHEP(MHEP)=150
ELSE
ISTHEP(MHEP)=IST+6
ENDIF
C---NEW COLOUR CONNECTIONS
IF(RPARTY.OR.JMOHEP(2,KHEP).EQ.IHEP)
& JMOHEP(2,KHEP)=MHEP
IF(RPARTY.OR.(JHEP.NE.IHEP.AND.JDAHEP(2,JHEP).EQ.IHEP))
& JDAHEP(2,JHEP)=MHEP
JMOHEP(1,MHEP)=JMOHEP(1,IHEP)
JMOHEP(2,MHEP)=JMOHEP(2,IHEP)
JDAHEP(1,MHEP)=0
JDAHEP(2,MHEP)=JDAHEP(2,IHEP)
JDAHEP(1,IHEP)=MHEP
ENDIF
ENDIF
100 CONTINUE
NHEP=MHEP
999 RETURN
END
CDECK ID>, HWCHAD.
*CMZ :- -26/04/91 14.00.57 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWCHAD(JCL,ID1,ID3,ID2)
C-----------------------------------------------------------------------
C HADRONIZES CLUSTER JCL, CONSISTING OF PARTONS ID1,ID3
C ID2 RETURNS PARTON-ANTIPARTON PAIR CREATED
C (IN SPECIAL CLUSTER CODE - SEE HWCFLA)
C
C MODIFIED 15/11/99 TO SMEAR POSITIONS OF HADRONS BY 1/(CLUSTER MASS)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRGAU,HWVDOT,EM0,EM1,EM2,EMADU,EMSQ,
& PCMAX,PCM,PTEST,PCQK,PP(5),EMLOW,RMAT(3,3),CT,ST,CX,SX,HPSMR
INTEGER HWRINT,JCL,ID1,ID2,ID3,ID,IR1,IR2,NTRY,IDMIN,IMAX,I,MHEP,
& IM,JM,KM,IB
LOGICAL DIQK
EXTERNAL HWRGEN,HWRINT
DIQK(ID)=ID.GT.3.AND.ID.LT.10
IF (IERROR.NE.0) RETURN
ID2=0
EM0=PHEP(5,JCL)
IF (LOCN(ID1,ID3).LE.0) THEN
CALL HWWARN('HWCHAD',104)
GOTO 999
ENDIF
IR1=NCLDK(LOCN(ID1,ID3))
EM1=RMIN(ID1,ID3)
IF (ABS(EM0-EM1).LT.0.001) THEN
C---SINGLE-HADRON CLUSTER
NHEP=NHEP+1
IF (NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWCHAD',100)
GOTO 999
ENDIF
IDHW(NHEP)=IR1
IDHEP(NHEP)=IDPDG(IR1)
ISTHEP(NHEP)=191
JDAHEP(1,JCL)=NHEP
JDAHEP(2,JCL)=NHEP
CALL HWVEQU(5,PHEP(1,JCL),PHEP(1,NHEP))
CALL HWVSUM(4,VHEP(1,JCL),VTXPIP,VHEP(1,NHEP))
ELSE
NTRY=0
IDMIN=1
EMLOW=RMIN(ID1,1)+RMIN(1,ID3)
EMADU=RMIN(ID1,2)+RMIN(2,ID3)
IF (EMADU.LT.EMLOW) THEN
IDMIN=2
EMLOW=EMADU
ENDIF
EMSQ=EM0**2
PCMAX=EMSQ-EMLOW**2
IF (PCMAX.GE.ZERO) THEN
C---SET UP TWO QUARK-ANTIQUARK PAIRS OR A
C QUARK-DIQUARK AND AN ANTIDIQUARK-ANTIQUARK
PCMAX=PCMAX*(EMSQ-(RMIN(ID1,IDMIN)-RMIN(IDMIN,ID3))**2)
IMAX=12
IF (DIQK(ID1).OR.DIQK(ID3)) IMAX=3
DO 10 I=3,IMAX
IF (EM0.LT.RMIN(ID1,I)+RMIN(I,ID3)) GOTO 20
10 CONTINUE
I=IMAX+1
20 ID2=HWRINT(1,I-1)
IF (PWT(ID2).NE.ONE) THEN
IF (PWT(ID2).LT.HWRGEN(1)) GOTO 20
ENDIF
C---PICK TWO PARTICLES WITH THESE QUANTUM NUMBERS
NTRY=NTRY+1
30 IR1=LOCN(ID1,ID2)+INT(RESN(ID1,ID2)*HWRGEN(2))
IF (CLDKWT(IR1).LT.HWRGEN(3)) GOTO 30
IR1=NCLDK(IR1)
40 IR2=LOCN(ID2,ID3)+INT(RESN(ID2,ID3)*HWRGEN(4))
IF (CLDKWT(IR2).LT.HWRGEN(5)) GOTO 40
IR2=NCLDK(IR2)
EM1=RMASS(IR1)
EM2=RMASS(IR2)
PCM=EMSQ-(EM1+EM2)**2
IF (PCM.GT.ZERO) GOTO 70
IF (NTRY.LE.NDTRY) GOTO 20
C---CAN'T FIND A DECAY MODE - CHOOSE LIGHTEST
60 ID2=HWRINT(1,2)
IR1=NCLDK(LOCN(ID1,ID2))
IR2=NCLDK(LOCN(ID2,ID3))
EM1=RMASS(IR1)
EM2=RMASS(IR2)
PCM=EMSQ-(EM1+EM2)**2
IF (PCM.GT.ZERO) GOTO 70
NTRY=NTRY+1
IF (NTRY.LE.NDTRY+50) GOTO 60
CALL HWWARN('HWCHAD',101)
GOTO 999
C---DECAY IS ALLOWED
70 PCM=PCM*(EMSQ-(EM1-EM2)**2)
IF (NTRY.GT.NCTRY) GOTO 80
PTEST=PCM*SWTEF(IR1)*SWTEF(IR2)
IF (PTEST.LT.PCMAX*HWRGEN(0)**2) GOTO 20
ELSE
C---ALLOW DECAY BY PI0 EMISSION IF ONLY POSSIBILITY
ID2=1
IR2=NCLDK(LOCN(1,1))
EM2=RMASS(IR2)
PCM=(EMSQ-(EM1+EM2)**2)*(EMSQ-(EM1-EM2)**2)
ENDIF
C---DECAY IS CHOSEN. GENERATE DECAY MOMENTA
C AND PUT PARTICLES IN /HEPEVT/
80 IF (PCM.LT.ZERO) THEN
CALL HWWARN('HWCHAD',102)
GOTO 999
ENDIF
PCM=0.5*SQRT(PCM)/EM0
MHEP=NHEP+1
NHEP=NHEP+2
IF (NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWCHAD',103)
GOTO 999
ENDIF
PHEP(5,MHEP)=EM1
PHEP(5,NHEP)=EM2
C Decide if cluster contains a b-(anti)quark or not
IF (ID1.EQ.11.OR.ID2.EQ.11.OR.ID3.EQ.11) THEN
IB=2
ELSE
IB=1
ENDIF
IF (CLDIR(IB).NE.0) THEN
DO 110 IM=1,2
JM=JMOHEP(IM,JCL)
IF (JM.EQ.0) GOTO 110
IF (ISTHEP(JM).NE.158) GOTO 110
C LOOK FOR PARENT PARTON
DO 100 KM=JMOHEP(1,JM)+1,JM
IF (ISTHEP(KM).EQ.2) THEN
IF (JDAHEP(1,KM).EQ.JM) THEN
C FOUND PARENT PARTON
IF (IDHW(KM).NE.13) THEN
C FIND ITS DIRECTION IN CLUSTER CMF
CALL HWULOF(PHEP(1,JCL),PHEP(1,KM),PP)
PCQK=PP(1)**2+PP(2)**2+PP(3)**2
IF (PCQK.GT.ZERO) THEN
PCQK=SQRT(PCQK)
IF (CLSMR(IB).GT.ZERO) THEN
C DO GAUSSIAN SMEARING OF DIRECTION
90 CT=ONE+CLSMR(IB)*LOG(HWRGEN(0))
IF (CT.LT.-ONE) GOTO 90
ST=ONE-CT*CT
IF (ST.GT.ZERO) ST=SQRT(ST)
CALL HWRAZM( ONE,CX,SX)
CALL HWUROT(PP,CX,SX,RMAT)
PP(1)=ZERO
PP(2)=PCQK*ST
PP(3)=PCQK*CT
CALL HWUROB(RMAT,PP,PP)
ENDIF
PCQK=PCM/PCQK
IF (IM.EQ.2) PCQK=-PCQK
CALL HWVSCA(3,PCQK,PP,PHEP(1,MHEP))
PHEP(4,MHEP)=SQRT(PHEP(5,MHEP)**2+PCM**2)
CALL HWULOB(PHEP(1,JCL),PHEP(1,MHEP),PHEP(1,MHEP))
CALL HWVDIF(4,PHEP(1,JCL),PHEP(1,MHEP),PHEP(1,NHEP))
GOTO 130
ENDIF
ENDIF
GOTO 120
ENDIF
ELSEIF (ISTHEP(KM).GT.140) THEN
C FINISHED THIS JET
GOTO 110
ENDIF
100 CONTINUE
110 CONTINUE
ENDIF
120 CALL HWDTWO(PHEP(1,JCL),PHEP(1,MHEP),PHEP(1,NHEP),
& PCM,TWO,.TRUE.)
130 IDHW(MHEP)=IR1
IDHW(NHEP)=IR2
IDHEP(MHEP)=IDPDG(IR1)
IDHEP(NHEP)=IDPDG(IR2)
ISTHEP(MHEP)=192
ISTHEP(NHEP)=192
JMOHEP(1,MHEP)=JCL
C---SECOND MOTHER OF HADRON IS JET
JMOHEP(2,MHEP)=JMOHEP(1,JMOHEP(1,JCL))
JDAHEP(1,JCL)=MHEP
JDAHEP(2,JCL)=NHEP
C---SMEAR HADRON POSITIONS
HPSMR=GEV2MM/PHEP(5,JCL)
DO I=1,4
VHEP(I,MHEP)=HWRGAU(I,ZERO,HPSMR)
ENDDO
VHEP(4,MHEP)=ABS(VHEP(4,MHEP))
& +SQRT(HWVDOT(3,VHEP(1,MHEP),VHEP(1,MHEP)))
CALL HWULB4(PHEP(1,JCL),VHEP(1,MHEP),VHEP(1,MHEP))
CALL HWVSUM(4,VHEP(1,JCL),VHEP(1,MHEP),VHEP(1,MHEP))
CALL HWVSUM(4,VTXPIP,VHEP(1,MHEP),VHEP(1,MHEP))
DO I=1,4
VHEP(I,NHEP)=HWRGAU(I,ZERO,HPSMR)
ENDDO
VHEP(4,NHEP)=ABS(VHEP(4,NHEP))
& +SQRT(HWVDOT(3,VHEP(1,NHEP),VHEP(1,NHEP)))
CALL HWULB4(PHEP(1,JCL),VHEP(1,NHEP),VHEP(1,NHEP))
CALL HWVSUM(4,VHEP(1,JCL),VHEP(1,NHEP),VHEP(1,NHEP))
CALL HWVSUM(4,VTXPIP,VHEP(1,NHEP),VHEP(1,NHEP))
ENDIF
ISTHEP(JCL)=180+MOD(ISTHEP(JCL),10)
JMOHEP(1,NHEP)=JCL
JMOHEP(2,NHEP)=JMOHEP(1,JMOHEP(1,JCL))
999 RETURN
END
CDECK ID>, HWD2ME.
*CMZ :- -09/04/02 13:37:38 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD2ME(IMODE)
C-----------------------------------------------------------------------
C Computes the width and maximum weight for a two body mode
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IMODE,I
DOUBLE PRECISION A(2),M(3),PCM,E1,E2,HWUPCM,PHS,WGT,MWGT,PCM2,
& M2(3)
EXTERNAL HWUPCM
C--set up the masses and couplings
M(1) = RMASS(IDK(ID2PRT(IMODE)))
DO 1 I=1,2
A(I) = A2MODE(I,IMODE)
1 M(I+1) = RMASS(IDKPRD(I,ID2PRT(IMODE)))
DO 2 I=1,3
2 M2(I) = M(I)**2
C--first compute the masses etc
PCM = HWUPCM(M(1),M(2),M(3))
PCM2 = PCM**2
PHS = PCM/M2(1)/8.0D0/PIFAC
C--now compute the width and max weight
C--first the fermion --> fermion scalar diagrams
IF(I2DRTP(IMODE).EQ.1) THEN
WGT = HALF*((A(1)**2+A(2)**2)*(M2(1)+M2(2)-M2(3))
& +FOUR*A(1)*A(2)*M(1)*M(2))
E1 = SQRT(M2(2)+PCM2)
E2 = SQRT(M2(3)+PCM2)
MWGT = HALF*M2(1)/(E1+E2)*(E1+PCM)*ABS(A(1)**2-A(2)**2)+WGT
C--next the fermion --> scalar fermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.2) THEN
WGT = HALF*((A(1)**2+A(2)**2)*(M2(1)+M2(3)-M2(2))
& +FOUR*A(1)*A(2)*M(1)*M(3))
E1 = SQRT(M2(2)+PCM2)
E2 = SQRT(M2(3)+PCM2)
MWGT = HALF*M2(1)/(E1+E2)*(E2+PCM)*ABS(A(1)**2-A(2)**2)+WGT
C--next the fermion --> scalar antifermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.3) THEN
WGT = HALF*((A(1)**2+A(2)**2)*(M2(1)+M2(3)-M2(2))
& +FOUR*A(1)*A(2)*M(1)*M(3))
E1 = SQRT(M2(2)+PCM2)
E2 = SQRT(M2(3)+PCM2)
MWGT = HALF*M2(1)/(E1+E2)*(E2+PCM)*ABS(A(1)**2-A(2)**2)+WGT
C--next the fermion --> fermion gauge boson diagrams
ELSEIF(I2DRTP(IMODE).EQ.4) THEN
WGT = 2.0D0*(M2(1)-M2(2))**2
MWGT = WGT
C--next the scalar --> fermion antifermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.5) THEN
WGT = (M2(1)-M2(2)-M2(3))*(A(1)**2+A(2)**2)
& -FOUR*M(2)*M(3)*A(1)*A(2)
MWGT = WGT
C--next the scalar --> fermion fermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.6) THEN
WGT = (M2(1)-M2(2)-M2(3))*(A(1)**2+A(2)**2)
& -FOUR*M(2)*M(3)*A(1)*A(2)
MWGT = WGT
C--next the fermion --> fermion pion diagrams
ELSEIF(I2DRTP(IMODE).EQ.7) THEN
WGT = HALF/FOUR/RMASS(198)**4*(
& (A(1)**2+A(2)**2)*((M2(1)-M2(2))**2-M2(3)*(M2(1)+M2(2)))
& +FOUR*M(1)*M(2)*M2(3)*A(1)*A(2))
E1 = SQRT(M2(2)+PCM2)
E2 = SQRT(M2(3)+PCM2)
MWGT =ONE/8.0D0/RMASS(198)**4*ABS(A(1)**2-A(2)**2)*
& M(1)*(M(1)*M2(3)+(M2(1)-M2(2)+M2(3))*(E2+PCM))+WGT
C--next scalar --> antifermion fermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.8) THEN
WGT = (M2(1)-M2(2)-M2(3))*(A(1)**2+A(2)**2)
& -FOUR*M(2)*M(3)*A(1)*A(2)
MWGT = WGT
C--next fermion --> gravitino photon
ELSEIF(I2DRTP(IMODE).EQ.9) THEN
WGT = 8.0D0*M2(1)**3
MWGT = WGT
C--next fermion --> gravitino scalar
ELSEIF(I2DRTP(IMODE).EQ.10) THEN
WGT = HALF*(M2(1)-M2(3))**3
E1 = SQRT(M2(2)+PCM2)
E2 = SQRT(M2(3)+PCM2)
MWGT = TWO*M2(1)/(E1+E2)*(E1+PCM)*(M2(1)-M2(3))**2 +WGT
C--next sfermion --> fermion gravitino
ELSEIF(I2DRTP(IMODE).EQ.11) THEN
WGT = (M2(1)-M2(2))**3
MWGT = WGT
C--next antisfermion --> fermion gravitino
ELSEIF(I2DRTP(IMODE).EQ.12) THEN
WGT = (M2(1)-M2(2))**3
MWGT = WGT
C--next the scalar --> antifermion antifermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.13) THEN
WGT = (M2(1)-M2(2)-M2(3))*(A(1)**2+A(2)**2)
& -FOUR*M(2)*M(3)*A(1)*A(2)
MWGT = WGT
C--next the antifermion --> scalar antifermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.14) THEN
WGT = HALF*((A(1)**2+A(2)**2)*(M2(1)+M2(3)-M2(2))
& +FOUR*A(1)*A(2)*M(1)*M(3))
E1 = SQRT(M2(2)+PCM2)
E2 = SQRT(M2(3)+PCM2)
MWGT = HALF*M2(1)/(E1+E2)*(E2+PCM)*ABS(A(1)**2-A(2)**2)+WGT
C--unrecognised issue warning
ELSE
CALL HWWARN('HWITWO',500)
ENDIF
WGT = P2MODE(IMODE)* WGT*PHS
MWGT = 1.1D0*P2MODE(IMODE)*MWGT*PHS
C--put the information in the common block
WT2MAX(IMODE) = MWGT
C--output the information
IF(IPRINT.EQ.2) THEN
WRITE(*,3010) WGT
WRITE(*,3020) MWGT
WRITE(*,3030) WGT/HBAR/BRFRAC(ID2PRT(IMODE))*
& RLTIM(IDK(ID2PRT(IMODE)))
ENDIF
RETURN
C--format statements
3010 FORMAT(' PARTIAL WIDTH = ',G12.4)
3020 FORMAT(' MAXIMUM WEIGHT = ',E12.4)
3030 FORMAT(' RATIO TO ISAJET VALUE = ',G12.4)
END
CDECK ID>, HWD3ME.
*CMZ :- -20/10/99 09:46:43 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3ME(ID,ITYPE,IMODE,RHOIN,IDSPIN)
C-----------------------------------------------------------------------
C Subroutine to perform the three body decays for spin correlations
C and SUSY three body modes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IMODE,I,J,ID,IDP(4+NDIAGR),ITYPE,NDIA,ID1,ID2,
& DRTYPE(NDIAGR),NTRY,IDSPIN,NCTHRE,DRCF(NDIAGR)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,WGT,M342,HWRUNI,
& HWUPCM,M232,M242,WMAX,WSUM,WSSUM,MR,PRE,TEMP,HWRGEN,WTMAX,
& BRW(6),BRZ(12),P(5,4),PM(5,4),WGTM,CFTHRE(NCFMAX,NCFMAX)
DOUBLE COMPLEX S,D,RHOIN(2,2),F0(2,2,8),F3(2,2,8),F1(2,2,8),
& F2(2,2,8),F0M(2,2,8),F1M(2,2,8),F01(2,2,8,8)
EXTERNAL HWRUNI,HWUPCM,HWRGEN
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
SAVE BRW,BRZ
DATA BRW/0.321D0,0.321D0,0.000D0,0.108D0,0.108D0,0.108D0/
DATA BRZ/0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
& 0.033D0,0.067D0,0.033D0,0.067D0,0.033D0,0.067D0/
C--compute the masses of external particles for the decay mode
C--first for true three body decay modes
IF(ITYPE.EQ.0) THEN
C--initalisation for the diagrams
WTMAX = WT3MAX(IMODE)
PRE = P3MODE(IMODE)
NCTHRE = N3NCFL(IMODE)
NDIA = NDI3BY(IMODE)
IDP(1) = IDK(ID3PRT(IMODE))
DO 1 I=1,3
1 IDP(I+1) = IDKPRD(I,ID3PRT(IMODE))
DO 2 I=1,NCTHRE
DO 2 J=1,NCTHRE
2 CFTHRE(I,J) = SPN3CF(I,J,IMODE)
C--enter the couplings for the diagrams
DO 3 I=1,NDI3BY(IMODE)
DRTYPE(I) = I3DRTP(I,IMODE)
DRCF (I) = I3DRCF(I,IMODE)
DO 3 J=1,2
A(J,I) = A3MODE(J,I,IMODE)
3 B(J,I) = B3MODE(J,I,IMODE)
C--enter the intermediate masses for the diagrams
DO 4 I=1,NDI3BY(IMODE)
IDP(I+4) = I3MODE(I,IMODE)
MR(I) = RMASS(I3MODE(I,IMODE))
MS(I) = MR(I)**2
IF(I3MODE(I,IMODE).GT.200) THEN
MWD(I) = RMASS(I3MODE(I,IMODE))*HBAR/RLTIM(I3MODE(I,IMODE))
ELSEIF(I3MODE(I,IMODE).EQ.200) THEN
MWD(I) = RMASS(200)*GAMZ
ELSEIF(I3MODE(I,IMODE).EQ.198.OR.I3MODE(I,IMODE).EQ.199) THEN
MWD(I) = RMASS(198)*GAMW
ELSEIF(I3MODE(I,IMODE).EQ.59) THEN
MWD(I) = 0.0D0
ENDIF
4 CONTINUE
C--reorder for top quark decay modes(b first then W products)
IF(IDP(1).EQ.6.OR.IDP(1).EQ.12) THEN
I = IDP(2)
IDP(2) = IDP(4)
IDP(4) = IDP(3)
IDP(3) = I
ENDIF
C--reorder if fermion not first
IF(IDP(3).GT.IDP(4).AND.((IDP(1).EQ.6.OR.IDP(1).EQ.12).OR.
& IDP(2).GE.400)) THEN
I = IDP(3)
IDP(3) = IDP(4)
IDP(4) = I
ENDIF
C--then for two body modes to gauge bosons including boson decays
ELSE
C--initalisation for the diagram
WTMAX = WTBMAX(ITYPE,IMODE)
NDIA = 1
PRE = PBMODE(ITYPE,IMODE)
DRTYPE(1) = IBDRTP(IMODE)
DRCF (1) = 1
NCTHRE = 1
CFTHRE(1,1) = ONE
C--particles in decay
IDP(1) = IDK(IDBPRT(IMODE))
IDP(2) = IDKPRD(1,IDBPRT(IMODE))
IF(IDP(2).GE.198.AND.IDP(2).LE.200)
& IDP(2) = IDKPRD(2,IDBPRT(IMODE))
IDP(5) = IBMODE(IMODE)
C--masses of virtual particles and couplings
MR(1) = RMASS(IBMODE(IMODE))
MS(1) = MR(1)**2
DO J=1,2
A(J,1) = ABMODE(J,IMODE)
B(J,1) = BBMODE(J,ITYPE,IMODE)
ENDDO
IF(IBMODE(IMODE).EQ.200) THEN
MWD(1) = RMASS(200)*GAMZ
ELSE
MWD(1) = RMASS(198)*GAMW
ENDIF
C--particles from boson decay
IF(IBMODE(IMODE).EQ.200) THEN
ID1 = ITYPE
IF(ITYPE.GT.6) ID1 = ID1+114
ID2 = ID1+6
ELSE
ID1 = 2*ITYPE-1
IF(ITYPE.GT.3) ID1 = ID1+114
ID2 = ID1+7
IF(IBMODE(IMODE).EQ.198) THEN
I = ID1+6
ID1 = ID2-6
ID2 = I
ENDIF
ENDIF
IDP(3) = ID1
IDP(4) = ID2
C--only do the decay if possible for an on-shell boson
IF(RMASS(ID1)+RMASS(ID2).GT.MR(1)) RETURN
IF(IPRINT.EQ.2.AND..NOT.GENEV)
& WRITE(6,3000) RNAME(IDP(5)),RNAME(IDP(3)),RNAME(IDP(4))
MA(3) = RMASS(IDP(3))
MA(4) = RMASS(IDP(4))
DO 5 I=1,4
5 MA2(I) = MA(I)**2
ENDIF
C--set up the masses MA OFF SHELL MB ON SHELL
DO 6 I=1,4
MB(I) = RMASS(IDP(I))
MB2(I) = MB(I)**2
IF(.NOT.GENEV) THEN
MA (I) = MB (I)
MA2(I) = MB2(I)
ENDIF
6 CONTINUE
IF(MA(1).LT.MA(2)+MA(3)+MA(4)) RETURN
C--compute the width and maximum weight if initialising
IF(.NOT.GENEV) THEN
C--search for maximum weight
WMAX = ZERO
WSUM = ZERO
WSSUM = ZERO
DO 7 I=1,NSEARCH
CALL HWD3M0(1,NDIA,WGT,WGTM,RHOIN,IDSPIN)
WGT = WGT*PRE
WGTM=WGTM*PRE
IF(WGTM.GT.WMAX) WMAX = WGTM
WSUM = WSUM+WGT
WSSUM = WSSUM+WGT**2
IF(WGT.LT.ZERO) CALL HWWARN('HWD3ME',500)
7 CONTINUE
C--compute width and maximum weight
WSUM = WSUM/DBLE(NSEARCH)
WSSUM = MAX(ZERO,WSSUM/DBLE(NSEARCH)-WSUM**2)
WSSUM = SQRT(WSSUM/DBLE(NSEARCH))
C--if required output results
IF(IPRINT.EQ.2) THEN
WRITE(6,3010) WSUM,WSSUM
WRITE(6,3020) WMAX
IF(ITYPE.EQ.0) THEN
TEMP = BRFRAC(ID3PRT(IMODE))*HBAR/RLTIM(IDK(ID3PRT(IMODE)))
ELSE
IF(IBMODE(IMODE).EQ.200) THEN
TEMP = BRFRAC(IDBPRT(IMODE))*HBAR/
& RLTIM(IDK(IDBPRT(IMODE)))*BRZ(ITYPE)
ELSE
TEMP = BRFRAC(IDBPRT(IMODE))*HBAR/
& RLTIM(IDK(IDBPRT(IMODE)))*BRW(ITYPE)
ENDIF
ENDIF
WRITE(6,3030) WSUM/TEMP,WSSUM/TEMP
ENDIF
C--set up the maximum weight
IF(ITYPE.EQ.0) THEN
WT3MAX(IMODE) = 1.1D0*WMAX
ELSE
WTBMAX(ITYPE,IMODE) = 1.1D0*WMAX
ENDIF
C--if not initialising generate the momenta
ELSE
C--generate a configuation
NTRY = 0
100 NTRY = NTRY+1
CALL HWD3M0(ID,NDIA,WGT,WGTM,RHOIN,IDSPIN)
WGT = WGT*PRE
C--check maximum isn't violated, increase and issue warning if it is
IF(WGT.GT.WTMAX) THEN
CALL HWWARN('HWD3ME',1)
IF(ITYPE.EQ.0) THEN
WRITE(6,3040) RNAME(IDP(1)),RNAME(IDP(2)),RNAME(IDP(3)),
& RNAME(IDP(4)),WTMAX,WGT*1.1D0
ELSE
WRITE(6,3050) RNAME(IDP(1)),RNAME(IDP(2)),RNAME(IDP(5))
WRITE(6,3060) RNAME(IDP(5)),RNAME(IDP(3)),RNAME(IDP(4)),
& WTMAX,WGT*1.1D0
ENDIF
WTMAX = WGT*1.1D0
IF(ITYPE.EQ.0) THEN
WT3MAX(IMODE) = WTMAX
ELSE
WTBMAX(ITYPE,IMODE) = WTMAX
ENDIF
ENDIF
IF(HWRGEN(0)*WTMAX.GT.WGT.AND.NTRY.LT.NSNTRY) GOTO 100
IF(NTRY.GE.NSNTRY) THEN
CALL HWWARN('HWD3ME',100)
GOTO 999
ENDIF
ENDIF
RETURN
C--format statements for the outputs
3000 FORMAT(/' FOLLOWED BY ',A8,' --> ',A8,' ',A8)
3010 FORMAT(' PARTIAL WIDTH = ',G12.4,' +/- ',G12.4)
3020 FORMAT(' MAXIMUM WEIGHT = ',E12.4)
3030 FORMAT(' RATIO TO ISAJET VALUE = ',G12.4,' +/- ',G12.4)
3040 FORMAT(/'WEIGHT FOR DECAY ',A8,' --> ',A8,' ',A8,' ',A8,
& 'EXCEEDS MAX',
& /10X,' MAXIMUM WEIGHT =',1PG24.16,
& /10X,'NEW MAXIMUM WEIGHT =',1PG24.16)
3050 FORMAT(/'WEIGHT FOR DECAY ',A8,' --> ',A8,' ',A8)
3060 FORMAT(/' FOLLOWED BY ',A8,' --> ',A8,' ',A8,' EXCEEDS MAX',
& /10X,' MAXIMUM WEIGHT =',1PG24.16,
& /10X,'NEW MAXIMUM WEIGHT =',1PG24.16)
999 RETURN
END
CDECK ID>, HWD3M0.
*CMZ :- -09/04/02 13:46:07 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M0(ID,NDIA,WGT,MWGT,RHOIN,IDSPIN)
C-----------------------------------------------------------------------
C Subroutine to calculate the matrix element for a given mode
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,P0,P1,P2,P3,P0P,IB,ID,IDP(4+NDIAGR),IDSPIN,NDIA,
& DRTYPE(NDIAGR),NCTHRE,DRCF(NDIAGR)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,WGT,FJAC,M342,HWRUNI,
& M34,PCMA,PCMB,HWUPCM,PHS,N(3),HWVDOT,PP,HWULDO,EPS,PTMP(5),
& M232,M242,PRE,PLAB,PRW,XMASS,PCM,P(5,4),PM(5,4),MR,PREF(5),
& MMIN,MMAX,MWGT,CFTHRE(NCFMAX,NCFMAX),WGTB(NCFMAX),WGTC,
& HWRGEN,A02,A2
DOUBLE COMPLEX S,D,ME(2,2,2,2,NCFMAX),MED(2,2,2,2),F01(2,2,8,8),
& RHOIN(2,2),F0(2,2,8),F1(2,2,8),F2(2,2,8),F0M(2,2,8),
& RHOB(2,2),F1M(2,2,8),F3(2,2,8)
EXTERNAL HWRUNI,HWUPCM,HWVDOT,HWULDO,HWRGEN
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(EPS=1D-10)
SAVE PREF
DATA PREF/1.0D0,0.0D0,0.0D0,1.0D0,0.0D0/
C--select the momenta of the particles
C--first see if there is a boson mode
IB = -1
DO 1 I=1,NDIA
IF(DRTYPE(I).EQ.1.OR.DRTYPE(I).EQ.5.OR.DRTYPE(I).EQ.6.OR.
& DRTYPE(I).EQ.7) IB = IDP(I+4)
1 CONTINUE
C--compute the mass of the 34 subsystem flat if no boson otherwise Breit-Wigner
MMIN = (MA(3)+MA(4))**2
MMAX = (MA(1)-MA(2))**2
IF(IB.GT.0.AND.IB.NE.59) THEN
CALL HWHGB1(1,2,IB,FJAC,M342,MMAX,MMIN)
ELSEIF(IB.EQ.59) THEN
M342 = HWRUNI(1,LOG(MMIN),LOG(MMAX))
M342 = EXP(M342)
FJAC = (LOG(MMAX)-LOG(MMIN))*M342
ELSEIF((DRTYPE(1).EQ.2.OR.DRTYPE(1).EQ.17).AND.
& IDP(5).EQ.206.OR.IDP(5).EQ.207) THEN
A02 = ATAN((MMIN-MS(1))/MWD(1))
A2 = ATAN((MMAX-MS(1))/MWD(1))-A02
M342 = MS(1)+MWD(1)*TAN(A02+A2*HWRGEN(1))
FJAC = A2*((M342-MS(1))**2+MWD(1)**2)/MWD(1)
ELSE
FJAC = MMAX-MMIN
M342 = HWRUNI(1,MMIN,MMAX)
ENDIF
M34 = SQRT(M342)
FJAC = HALF*FJAC/M34
C--copy the momentum of the decaying particle into the internal common block
CALL HWVEQU(5,PHEP(1,ID),P(1,1))
DO 2 I=2,4
2 P(5,I) = MA(I)
C--perform the decay 1---> 2+34
PCMA = HWUPCM(MA(1),MA(2),M34)
PLAB(5,1) = M34
CALL HWDTWO(P(1,1),PLAB(1,1),P(1,2),PCMA,2.0D0,.TRUE.)
C--perform the decay 34 --> 3+4
PCMB = HWUPCM(M34,MA(3),MA(4))
CALL HWDTWO(PLAB(1,1),P(1,3),P(1,4),PCMB,2.0D0,.TRUE.)
C--compute the phase sapce factors
PHS = PCMA*PCMB*FJAC/32.0D0/PIFAC**3/MA2(1)
C--compute the other possible masses for the propagator
M232 = MA2(2)+MA2(3)+TWO*HWULDO(P(1,2),P(1,3))
M242 = MA2(2)+MA2(4)+TWO*HWULDO(P(1,2),P(1,4))
C--compute the vectors for the helicity amplitudes
DO 3 I=1,4
C--compute the references vectors
C--not important if SM particle which can't have spin measured
C--ie anything other the top and tau
C--also not important if particle is approx massless
C--first the SM particles other than top and tau
IF(IDP(I).LT.400.AND.(IDP(I).NE.6.AND.IDP(I).NE.12
& .AND.IDP(I).NE.125.AND.IDP(I).NE.131)) THEN
CALL HWVEQU(5,PREF,PLAB(1,I+4))
C--all other particles
ELSE
PP = SQRT(HWVDOT(3,P(1,I),P(1,I)))
CALL HWVSCA(3,ONE/PP,P(1,I),N)
PLAB(4,I+4) = HALF*(P(4,I)-PP)
PP = HALF*(PP-MA(I)-PP**2/(MA(I)+P(4,I)))
CALL HWVSCA(3,PP,N,PLAB(1,I+4))
CALL HWUMAS(PLAB(1,I+4))
PP = HWVDOT(3,PLAB(1,I+4),PLAB(1,I+4))
C--fix to avoid problems if approx massless due to energy
IF(PP.LT.EPS) CALL HWVEQU(5,PREF,PLAB(1,I+4))
ENDIF
C--now the massless vectors
PP = HALF*MA2(I)/HWULDO(PLAB(1,I+4),P(1,I))
DO 4 J=1,4
4 PLAB(J,I) = P(J,I)-PP*PLAB(J,I+4)
3 CALL HWUMAS(PLAB(1,I))
C--change order of momenta for call to HE code
DO 5 I=1,4
PM(1,I) = P(3,I)
PM(2,I) = P(1,I)
PM(3,I) = P(2,I)
PM(4,I) = P(4,I)
5 PM(5,I) = P(5,I)
DO 6 I=1,8
PCM(1,I)=PLAB(3,I)
PCM(2,I)=PLAB(1,I)
PCM(3,I)=PLAB(2,I)
PCM(4,I)=PLAB(4,I)
6 PCM(5,I)=PLAB(5,I)
C--compute the S functions
CALL HWHEW2(8,PCM(1,1),S(1,1,2),S(1,1,1),D)
DO 7 I=1,8
DO 7 J=1,8
S(I,J,2) = -S(I,J,2)
7 D(I,J) = TWO*D(I,J)
C--compute the F functions
CALL HWVSUM(5,PM(1,1),PM(1,2),PTMP)
CALL HWUMAS(PTMP)
CALL HWH2F2(8,F0 ,5,PM(1,1), MA(1))
CALL HWH2F1(8,F1 ,6,PM(1,2), MA(2))
CALL HWH2F1(8,F2 ,7,PM(1,3), MA(3))
CALL HWH2F1(8,F3 ,8,PM(1,4), MA(4))
CALL HWH2F1(8,F0M,5,PM(1,1),-MA(1))
CALL HWH2F2(8,F1M,6,PM(1,2),-MA(2))
CALL HWH2F3(8,F01,PTMP,ZERO)
C--now find the prefactor for all the diagrams
PRE = HWULDO(PCM(1,5),PM(1,1))*HWULDO(PCM(1,6),PM(1,2))*
& HWULDO(PCM(1,7),PM(1,3))*HWULDO(PCM(1,8),PM(1,4))
PRE = ONE/SQRT(PRE)
C--zero the matrix element
DO 8 P0=1,2
DO 8 P1=1,2
DO 8 P2=1,2
DO 8 P3=1,2
DO 8 I =1,NCTHRE
8 ME(P0,P1,P2,P3,I) = (0.0D0,0.0D0)
C--now call the subroutines to compute the individual diagrams
DO 9 I=1,NDIA
C--vector boson exchange diagram
IF(DRTYPE(I).EQ.1) THEN
CALL HWD3M1(I,MED)
C--Higgs boson exchange diagram
ELSEIF(DRTYPE(I).EQ.2) THEN
CALL HWD3M2(I,MED)
C--antisfermion exchange diagram
ELSEIF(DRTYPE(I).EQ.3) THEN
CALL HWD3M3(I,MED)
C--sfermion exchange diagram
ELSEIF(DRTYPE(I).EQ.4) THEN
CALL HWD3M4(I,MED)
C--antifermion vector boson exchange diagram
ELSEIF(DRTYPE(I).EQ.5) THEN
CALL HWD3M5(I,MED)
C--scalar vector boson exchange diagram
ELSEIF(DRTYPE(I).EQ.6) THEN
CALL HWD3M6(I,MED)
C--gravitino fermion fermion
ELSEIF(DRTYPE(I).EQ.7) THEN
CALL HWD3M7(I,MED)
C--fermion RPV1
ELSEIF(DRTYPE(I).EQ.8) THEN
CALL HWD3M8(I,MED)
C--fermion RPV2
ELSEIF(DRTYPE(I).EQ.9) THEN
CALL HWD3M9(I,MED)
C--fermion RPV3
ELSEIF(DRTYPE(I).EQ.10) THEN
CALL HWD3MA(I,MED)
C--fermion --> 3 fermions 1
ELSEIF(DRTYPE(I).EQ.11) THEN
CALL HWD3MB(I,MED)
C--fermion --> 3 fermions 2
ELSEIF(DRTYPE(I).EQ.12) THEN
CALL HWD3MC(I,MED)
C--fermion --> 3 fermions 3
ELSEIF(DRTYPE(I).EQ.13) THEN
CALL HWD3MD(I,MED)
C--fermion --> 3 antifermions 1
ELSEIF(DRTYPE(I).EQ.14) THEN
CALL HWD3MF(I,MED)
C--fermion --> 3 antifermions 2
ELSEIF(DRTYPE(I).EQ.15) THEN
CALL HWD3MG(I,MED)
C--fermion --> 3 antifermions 3
ELSEIF(DRTYPE(I).EQ.16) THEN
CALL HWD3MH(I,MED)
C--antifermion --> antifermion fermion fermion
ELSEIF(DRTYPE(I).EQ.17) THEN
CALL HWD3MI(I,MED)
C--error not known
ELSE
CALL HWWARN('HWD3M0',501)
ENDIF
C--add up the matrix elements
DO 10 P0=1,2
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
10 ME(P0,P1,P2,P3,DRCF(I)) = ME(P0,P1,P2,P3,DRCF(I))
& +MED(P0,P1,P2,P3)
9 CONTINUE
C--preform the final normalisation
DO 15 P0=1,2
DO 15 P1=1,2
DO 15 P2=1,2
DO 15 P3=1,2
DO 15 I =1,NCTHRE
15 ME(P0,P1,P2,P3,I) = PRE*ME(P0,P1,P2,P3,I)
C--compute the unnormalised spin density matrix
DO 35 P0 =1,2
DO 35 P0P=1,2
RHOB(P0,P0P) = (0.0D0,0.0D0)
DO 35 P1=1,2
DO 35 P2=1,2
DO 35 P3=1,2
DO 35 I =1,NCTHRE
DO 35 J =1,NCTHRE
35 RHOB(P0,P0P)=RHOB(P0,P0P)+CFTHRE(I,J)*ME(P0,P1,P2,P3,I)*
& DCONJG(ME(P0P,P1,P2,P3,J))
C--compute the weight
WGT = ZERO
DO 45 P0=1,2
DO 45 P0P=1,2
45 WGT = WGT+DREAL(RHOIN(P0,P0P)*RHOB(P0,P0P))
C--normalise this for phase space
WGT = WGT*PHS
C--if initialising select the max weight
IF(SYSPIN.OR.THREEB)
& MWGT = PHS*(MAX(DBLE(RHOB(1,1)),DBLE(RHOB(2,2)))
& +ABS(DBLE(RHOB(1,2)))+ABS(DIMAG(RHOB(1,2))))
C--if generating the event put the information in the common block
IF(GENEV) THEN
C--put the matrix element into the spin common block
IF(SYSPIN) THEN
DO 25 P0=1,2
DO 25 P1=1,2
DO 25 P2=1,2
DO 25 P3=1,2
DO 25 I =1,NCTHRE
25 MESPN(P0,P1,P2,P3,I,IDSPIN) = ME(P0,P1,P2,P3,I)
NCFL(IDSPIN) = NCTHRE
ENDIF
C--if more than one colour flow pick the flow
IF(SPCOPT.EQ.2.AND.NCTHRE.NE.1) THEN
C--contstruct the matrix elements for the colour flows
WGTC = ZERO
DO 50 I=1,NCTHRE
WGTB(I) = ZERO
DO 55 P0=1,2
DO 55 P0P=1,2
DO 55 P1=1,2
DO 55 P2=1,2
DO 55 P3=1,2
55 WGTB(I) = WGTB(I)+CFTHRE(I,I)*DREAL(
& RHOIN(P0,P0P)*ME(P0 ,P1,P2,P3,I)*DCONJG(ME(P0P,P1,P2,P3,I)))
WGTB(I) = WGTB(I)*PHS
50 WGTC = WGTC+WGTB(I)
WGTC = WGT/WGTC
DO 60 I=1,NCTHRE
60 WGTB(I) = WGTB(I)*WGTC
C--select the colour flow
WGTC = HWRGEN(1)*WGT
DO 70 I=1,NCTHRE
IF(WGTB(I).GE.WGTC) THEN
NCFL(IDSPIN) = I
RETURN
ENDIF
70 WGTC = WGTC-WGTB(I)
C--otherwise if wrong options set issue warning
ELSEIF(NCTHRE.NE.1) THEN
WRITE(6,1000)
CALL HWWARN('HWD3M0',500)
ENDIF
ENDIF
1000 FORMAT(/'MULTIPLE COLOUR FLOWS IN DECAY'/'SPCOPT=2 MUST BE USED')
END
CDECK ID>, HWD3M1.
*CMZ :- -10/10/01 14:34:54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M1(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C gauge boson exchange diagram
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,C(2,2),E(2,2),ZI,APP(2,2),APM(2,2),
& AMP(2,2),AMM(2,2),F1M(2,2,8),F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,CN,
& MR,P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -0.25D0/(M342-MS(ID)+ZI*MWD(ID))
CN = -ONE/MS(ID)
C--compute the C and D functions
DO 10 P1=1,2
DO 10 P2=1,2
IF(P1.EQ.P2) THEN
C--the A functions
APP(P1,P2) = B( P2 ,ID)*S(7,3,O(P1))*S(4,8, P1 )
APM(P1,P2) = 0.0D0
AMP(P1,P2) = 0.0D0
AMM(P1,P2) = -B(O(P2),ID)*MA(3)*MA(4)
C--the C and E functions
C(P1,P2) = A( P1 ,ID)*( MA2(1)*S(6,2,O(P2))*S(2,5, P2 )
& -MA2(2)*S(6,1,O(P2))*S(1,5, P2 ))
& +A(O(P1),ID)*MA(1)*MA(2)*( S(6,1,O(P2))*S(1,5, P2 )
& -S(6,2,O(P2))*S(2,5, P2 ))
E(P1,P2) =CN*(B( P2 ,ID)*( MA2(3)*S(7,4,O(P1))*S(4,8, P1 )
& +MA2(4)*S(7,3,O(P1))*S(3,8, P1 ))
& -B(O(P2),ID)*MA(3)*MA(4)*( S(7,3,O(P1))*S(3,8, P1 )
& +S(7,4,O(P1))*S(4,8, P1 )))
ELSE
C--the A functions
APP(P1,P2) = 0.0D0
APM(P1,P2) = B( P2 ,ID)*MA(3)*S(4,8,O(P1))
AMP(P1,P2) =-B(O(P2),ID)*MA(4)*S(7,3,O(P1))
AMM(P1,P2) = 0.0D0
C--the C and D functions
C(P1,P2) = A( P1 ,ID)*MA(2)*( MA2(1)*S(6,5,O(P2))
& -S(6,2,O(P2))*S(2,1, P2 )*S(1,5,O(P2)))
& +A(O(P1),ID)*MA(1)*(-MA2(2)*S(6,5,O(P2))
& +S(6,2,O(P2))*S(2,1, P2 )*S(1,5,O(P2)))
E(P1,P2) =CN*( B( P2 ,ID)*MA(3)*( MA2(4)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1)))
& -B(O(P2),ID)*MA(4)*( MA2(3)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1))))
ENDIF
10 CONTINUE
C--compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
ME(P0,P1,P2,P3) =
& APP(P2,P3)*( A(O(P2),ID)*F1(O(P1), P2 ,4)*F0( P2 ,O(P0),3)
& +A( P2 ,ID)*F1(O(P1),O(P2),3)*F0(O(P2),O(P0),4))
& +APM(P2,P3)*( A( P2 ,ID)*F1(O(P1),O(P2),4)*F0(O(P2),O(P0),7)
& +A(O(P2),ID)*F1(O(P1), P2 ,7)*F0( P2 ,O(P0),4))
& +AMP(P2,P3)*( A(O(P2),ID)*F1(O(P1), P2 ,8)*F0( P2 ,O(P0),3)
& +A( P2 ,ID)*F1(O(P1),O(P2),3)*F0(O(P2),O(P0),8))
& +AMM(P2,P3)*( A( P2 ,ID)*F1(O(P1),O(P2),8)*F0(O(P2),O(P0),7)
& +A(O(P2),ID)*F1(O(P1), P2 ,7)*F0( P2 ,O(P0),8))
20 ME(P0,P1,P2,P3) =PRE*(TWO*ME(P0,P1,P2,P3)+C(P0,P1)*E(P2,P3))
END
CDECK ID>, HWD3M2.
*CMZ :- -10/10/01 14:34:54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M2(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C Higgs boson exchange diagram
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(2)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(3)+MB(4).AND.
& IDP(4+ID).NE.206) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--calculate the propagator factor
PRE = 0.25D0/(M342-MS(ID)+ZI*MWD(ID))
C--calculate the vertex functions
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P1 ,ID)*F1(O(P2), P1 ,1)*S(1,5,P1)
& +A(O(P1),ID)*F1(O(P2),O(P1),5)*MA(1))
10 V2(P1,P2) = B( P2 ,ID)*F2(O(P1), P2 ,4)*S(4,8,P2)
& -B(O(P2),ID)*F2(O(P1),O(P2),8)*MA(4)
C--calculate the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P1)*V2(P2,P3)
END
CDECK ID>, HWD3M3.
*CMZ :- -10/10/01 14:34:54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M3(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C antisfermion exchange diagram
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,V1(2,2),V2(2,2),ZI,F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(3)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = -0.25D0/(M242-MS(ID)+ZI*MWD(ID))
C--compute the vertex factors
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P1 ,ID)*F2(O(P2), P1 ,1)*S(1,5,P1)
& +A(O(P1),ID)*F2(O(P2),O(P1),5)*MA(1))
10 V2(P1,P2) = B( P2 ,ID)*F1(O(P1), P2 ,4)*S(4,8,P2)
& -B(O(P2),ID)*F1(O(P1),O(P2),8)*MA(4)
C--compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P2)*V2(P1,P3)
END
CDECK ID>, HWD3M4.
*CMZ :- -10/10/01 14:34:54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M4(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C sfermion exchange diagram
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
&P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(4)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(3)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = 0.25D0/(M232-MS(ID)+ZI*MWD(ID))
C--compute the factors for the two vertices
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M( P1 , P2 ,4)*S(4,8, P2 )
& -A(O(P2),ID)*F0M( P1 ,O(P2),8)*MA(4))
10 V2(P1,P2) = B(O(P1),ID)*F2 (O(P2),O(P1),2)*S(2,6,O(P1))
& -B( P1 ,ID)*F2 (O(P2), P1 ,6)*MA(2)
C--now compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P3)*V2(P1,P2)
END
CDECK ID>, HWD3M5.
*CMZ :- -10/10/01 14:34:54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M5(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C gauge boson exchange diagram (antiparticle decay)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),
& F0M(2,2,8),F2(2,2,8),PRE,C(2,2),E(2,2),ZI,APP(2,2),APM(2,2),
& AMP(2,2),AMM(2,2),F1M(2,2,8),F3(2,2,8),F01(2,2,8,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,CN,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -0.25D0/(M342-MS(ID)+ZI*MWD(ID))
CN = -ONE/MS(ID)
C--compute the C and D functions
DO 10 P1=1,2
DO 10 P2=1,2
IF(P1.EQ.P2) THEN
C--the A functions
APP(P1,P2) = B( P2 ,ID)*S(7,3,O(P1))*S(4,8, P1 )
APM(P1,P2) = 0.0D0
AMP(P1,P2) = 0.0D0
AMM(P1,P2) = -B(O(P2),ID)*MA(3)*MA(4)
C--the C and E functions
C(P1,P2) = A( P2 ,ID)*( MA2(1)*S(5,2,O(P1))*S(2,6, P1 )
& -MA2(2)*S(5,1,O(P1))*S(1,6, P1 ))
& +A(O(P2),ID)*MA(1)*MA(2)*( S(5,1,O(P1))*S(1,6, P1 )
& -S(5,2,O(P1))*S(2,6, P1 ))
E(P1,P2) =CN*(B( P2 ,ID)*( MA2(3)*S(7,4,O(P1))*S(4,8, P1 )
& +MA2(4)*S(7,3,O(P1))*S(3,8, P1 ))
& -B(O(P2),ID)*MA(3)*MA(4)*( S(7,3,O(P1))*S(3,8, P1 )
& +S(7,4,O(P1))*S(4,8, P1 )))
ELSE
C--the A functions
APP(P1,P2) = 0.0D0
APM(P1,P2) = B( P2 ,ID)*MA(3)*S(4,8,O(P1))
AMP(P1,P2) =-B(O(P2),ID)*MA(4)*S(7,3,O(P1))
AMM(P1,P2) = 0.0D0
C--the C and D functions
C(P1,P2) = A( P2 ,ID)*MA(1)*( MA2(2)*S(5,6,O(P1))
& -S(5,1,O(P1))*S(1,2, P1 )*S(2,6,O(P1)))
& +A(O(P2),ID)*MA(2)*(-MA2(1)*S(5,6,O(P1))
& +S(5,1,O(P1))*S(1,2, P1 )*S(2,6,O(P1)))
E(P1,P2) =CN*( B( P2 ,ID)*MA(3)*( MA2(4)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1)))
& -B(O(P2),ID)*MA(4)*( MA2(3)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1))))
ENDIF
10 CONTINUE
C--compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
ME(P0,P1,P2,P3) =
& APP(P2,P3)*( A(O(P2),ID)*F0M(O(P0), P2 ,4)*F1M( P2 ,O(P1),3)
& +A( P2 ,ID)*F0M(O(P0),O(P2),3)*F1M(O(P2),O(P1),4))
& +APM(P2,P3)*( A( P2 ,ID)*F0M(O(P0),O(P2),4)*F1M(O(P2),O(P1),7)
& +A(O(P2),ID)*F0M(O(P0), P2 ,7)*F1M( P2 ,O(P1),4))
& +AMP(P2,P3)*( A(O(P2),ID)*F0M(O(P0), P2 ,8)*F1M( P2 ,O(P1),3)
& +A( P2 ,ID)*F0M(O(P0),O(P2),3)*F1M(O(P2),O(P1),8))
& +AMM(P2,P3)*( A( P2 ,ID)*F0M(O(P0),O(P2),8)*F1M(O(P2),O(P1),7)
& +A(O(P2),ID)*F0M(O(P0), P2 ,7)*F1M( P2 ,O(P1),8))
20 ME(P0,P1,P2,P3) =PRE*(TWO*ME(P0,P1,P2,P3)+C(P0,P1)*E(P2,P3))
END
CDECK ID>, HWD3M6.
*CMZ :- -10/10/01 14:34:54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M6(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C gauge boson exchange diagram
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),
& F0M(2,2,8),F2(2,2,8),PRE,C(2,2),ZI,APP(2,2),APM(2,2),
& AMP(2,2),AMM(2,2),F1M(2,2,8),F3(2,2,8),F01(2,2,8,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,CN,MR,
& P(5,4),DOT,HWULDO,PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
DOUBLE PRECISION XMASS,PLAB,PRW,PCM
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = SQRT(HWULDO(PCM(1,5),PM(1,1))*HWULDO(PCM(1,6),PM(1,2)))
PRE = -HALF*PRE*A(1,ID)/(M342-MS(ID)+ZI*MWD(ID))
CN = -ONE/MS(ID)
DOT = HWULDO(P(1,1),P(1,3))+HWULDO(P(1,1),P(1,4))
& +HWULDO(P(1,2),P(1,3))+HWULDO(P(1,2),P(1,4))
C--compute the C and D functions
DO 10 P1=1,2
DO 10 P2=1,2
IF(P1.EQ.P2) THEN
C--the A functions
APP(P1,P2) = B( P2 ,ID)*S(7,3,O(P1))*S(4,8, P1 )
APM(P1,P2) = 0.0D0
AMP(P1,P2) = 0.0D0
AMM(P1,P2) = -B(O(P2),ID)*MA(3)*MA(4)
C--the C function
C(P1,P2) =CN*(B( P2 ,ID)*( MA2(3)*S(7,4,O(P1))*S(4,8, P1 )
& +MA2(4)*S(7,3,O(P1))*S(3,8, P1 ))
& -B(O(P2),ID)*MA(3)*MA(4)*( S(7,3,O(P1))*S(3,8, P1 )
& +S(7,4,O(P1))*S(4,8, P1 )))
ELSE
C--the A functions
APP(P1,P2) = 0.0D0
APM(P1,P2) = B( P2 ,ID)*MA(3)*S(4,8,O(P1))
AMP(P1,P2) =-B(O(P2),ID)*MA(4)*S(7,3,O(P1))
AMM(P1,P2) = 0.0D0
C--the C functions
C(P1,P2) =CN*( B( P2 ,ID)*MA(3)*( MA2(4)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1)))
& -B(O(P2),ID)*MA(4)*( MA2(3)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1))))
ENDIF
10 CONTINUE
C--compute the matrix element
DO 15 P0=1,2
DO 15 P1=1,2
DO 15 P2=1,2
DO 15 P3=1,2
15 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(1,1,P2,P3) = PRE*(DOT*C(P2,P3)
& +APP(P2,P3)*F01( P2 , P2 ,3,4)+APM(P2,P3)*F01(O(P2),O(P2),7,4)
& +AMP(P2,P3)*F01( P2 , P2 ,3,8)+AMM(P2,P3)*F01(O(P2),O(P2),7,8))
END
CDECK ID>, HWD3M7.
*CMZ :- -13/03/02 14:19:47 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M7(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C decay fermion --> gravitino fermion antifermion (via gauge boson)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,F1M(2,2,8),F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
&P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX),HWULDO,DL(2,2)
INTEGER P0,P1,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
DOUBLE PRECISION XMASS,PLAB,PRW,PCM
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O,DL
DATA O/2,1/
DATA DL/1.0D0,0.0D0,0.0D0,1.0D0/
C--compute the propagator factor
PRE = HALF*HWULDO(PCM(1,6),PM(1,2))*
& HWULDO(PCM(1,7),PM(1,3))*HWULDO(PCM(1,8),PM(1,4))
PRE = SQRT(PRE)
PRE = PRE/(M342-MS(ID)+ZI*MWD(ID))
DO 10 P0=1,2
DO 10 P1=1,2
ME(P0,P1, P1 , P1 ) = PRE*B( P1 ,ID)*(
& A(1,ID)*S(2,3,P1)*S(3,4,O(P1))*S(3,2, P1 )*F0(O(P1),O(P0),2)
& +A(2,ID)* DL(P1,1)*S(2,3, P1 )*S(4,2,O(P1))*F0( 1 ,O(P0),2))
ME(P0,P1,O(P1),O(P1)) = PRE*B(O(P1),ID)*(
& A(1,ID)*S(2,4,P1)*S(4,3,O(P1))*S(4,2, P1 )*F0(O(P1),O(P0),2)
& +A(2,ID)* DL(P1,1)*S(2,4, P1 )*S(3,2,O(P1))*F0( 1 ,O(P0),2))
ME(P0,P1,O(P1), P1 ) = (0.0D0,0.0D0)
10 ME(P0,P1, P1 ,O(P1)) = (0.0D0,0.0D0)
END
CDECK ID>, HWD3M8.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M8(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 1st 3 body RPV
C diagram f--> fbar fbar f
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(2)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(3)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--calculate the propagator factor
PRE = 0.25D0/(M342-MS(ID)+ZI*MWD(ID))
C--calculate the vertex functions
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M( P1 , P2 ,2)*S(2,6, P2)
& -A(O(P2),ID)*F0M( P1 ,O(P2),6)*MA(2))
10 V2(P1,P2) = B( P1 ,ID)*F3 (O(P2), P1 ,3)*S(3,7,P1)
& -B(O(P1),ID)*F3 (O(P2),O(P1),7)*MA(3)
C--calculate the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P1)*V2(P2,P3)
END
CDECK ID>, HWD3M9.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3M9(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 2nd 3 body RPV
C diagram f --> fbar fbar f
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,V1(2,2),V2(2,2),ZI,F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(3)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = -0.25D0/(M242-MS(ID)+ZI*MWD(ID))
C--compute the vertex factors
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M( P1 , P2 ,3)*S(3,7,P2)
& -A(O(P2),ID)*F0M( P1 ,O(P2),7)*MA(3))
10 V2(P1,P2) = B( P1 ,ID)*F3 (O(P2), P1 ,2)*S(2,6,P1)
& -B(O(P1),ID)*F3 (O(P2),O(P1),6)*MA(2)
C--compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P2)*V2(P1,P3)
END
CDECK ID>, HWD3MA.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MA(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 3rd 3 body RPV
C diagram f --> fbar fbar f
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
&P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(4)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(3)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = 0.25D0/(M232-MS(ID)+ZI*MWD(ID))
C--compute the factors for the two vertices
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P1 ,ID)*F3(O(P2), P1 ,1)*S(1,5,P1)
& +A(O(P1),ID)*F3(O(P2),O(P1),5)*MA(1))
10 V2(P1,P2) = B( P2 ,ID)*F1( P1 , P2 ,3)*S(3,7,P2)
& -B(O(P2),ID)*F1( P1 ,O(P2),7)*MA(3)
C--now compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P3)*V2(P1,P2)
END
CDECK ID>, HWD3MB.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MB(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 4th 3 body RPV
C diagram f --> f f f
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(2)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(3)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--calculate the propagator factor
PRE = 0.25D0/(M342-MS(ID)+ZI*MWD(ID))
C--calculate the vertex functions
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P1 ,ID)*F1(O(P2), P1 ,1)*S(1,5,P1)
& +A(O(P1),ID)*F1(O(P2),O(P1),5)*MA(1))
10 V2(P1,P2) = B(O(P2),ID)*F2(O(P1),O(P2),4)*S(4,8,O(P2))
& -B( P2 ,ID)*F2(O(P1), P2 ,8)*MA(4)
C--calculate the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P1)*V2(P2,P3)
END
CDECK ID>, HWD3MC.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MC(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 5th 3 body RPV
C diagram f --> f f f
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,V1(2,2),V2(2,2),ZI,F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(3)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE =-0.25D0/(M242-MS(ID)+ZI*MWD(ID))
C--compute the vertex factors
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P1 ,ID)*F2(O(P2), P1 ,1)*S(1,5,P1)
& +A(O(P1),ID)*F2(O(P2),O(P1),5)*MA(1))
10 V2(P1,P2) = B(O(P2),ID)*F1(O(P1),O(P2),4)*S(4,8,O(P2))
& -B( P2 ,ID)*F1(O(P1), P2 ,8)*MA(4)
C--compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P2)*V2(P1,P3)
END
CDECK ID>, HWD3MD.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MD(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 6th 3 body RPV
C diagram f --> f f f
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
&P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(4)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(3)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = 0.25D0/(M232-MS(ID)+ZI*MWD(ID))
C--compute the factors for the two vertices
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A(O(P2),ID)*F0M( P1 ,O(P2),4)*S(4,8,O(P2))
& -A( P2 ,ID)*F0M( P1 , P2 ,8)*MA(4))
10 V2(P1,P2) = B(O(P1),ID)*F2 (O(P2),O(P1),2)*S(2,6,O(P1))
& -B( P1 ,ID)*F2 (O(P2), P1 ,6)*MA(2)
C--now compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P3)*V2(P1,P2)
END
CDECK ID>, HWD3MF.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MF(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 7th 3 body RPV
C diagram f --> fbar fbar fbar
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(2)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(3)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--calculate the propagator factor
PRE = 0.25D0/(M342-MS(ID)+ZI*MWD(ID))
C--calculate the vertex functions
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M( P1 , P2 ,2)*S(2,6,P2)
& -A(O(P2),ID)*F0M( P1 ,O(P2),6)*MA(2))
10 V2(P1,P2) = B( P2 ,ID)*F2( P1 , P2 ,4)*S(4,8,P2)
& -B(O(P2),ID)*F2( P1 ,O(P2),8)*MA(4)
C--calculate the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P1)*V2(P2,P3)
END
CDECK ID>, HWD3MG.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MG(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 8th 3 body RPV
C diagram f --> fbar fbar fbar
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,V1(2,2),V2(2,2),ZI,F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(3)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(4)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = 0.25D0/(M242-MS(ID)+ZI*MWD(ID))
C--compute the vertex factors
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M( P1 , P2 ,3)*S(3,7, P2 )
& -A(O(P2),ID)*F0M( P1 ,O(P2),7)*MA(3))
10 V2(P1,P2) = B( P1 ,ID)*F3 ( P2 , P1 ,2)*S(2,6, P1 )
& -B(O(P1),ID)*F3 ( P2 ,O(P1),6)*MA(2)
C--compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P2)*V2(P1,P3)
END
CDECK ID>, HWD3MH.
*CMZ :- -08/04/02 14:48:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MH(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for 9th 3 body RPV
C diagram f --> fbar fbar fbar
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
&P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(4)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(2)+MB(3)) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--compute the propagator factor
PRE = -0.25D0/(M232-MS(ID)+ZI*MWD(ID))
C--compute the factors for the two vertices
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M( P1 , P2 ,4)*S(4,8,P2)
& -A(O(P2),ID)*F0M( P1 ,O(P2),8)*MA(4))
10 V2(P1,P2) = B( P1 ,ID)*F2 ( P2 , P1 ,2)*S(2,6,P1)
& -B(O(P1),ID)*F2 ( P2 ,O(P1),6)*MA(2)
C--now compute the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P3)*V2(P1,P2)
END
CDECK ID>, HWD3MI.
*CMZ :- -09/04/02 13:37:38 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD3MI(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the three body
C Higgs boson exchange diagram antifermion decay
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ME(2,2,2,2),S,D,F0(2,2,8),F1(2,2,8),F01(2,2,8,8),
& F0M(2,2,8),F2(2,2,8),PRE,ZI,V1(2,2),V2(2,2),F1M(2,2,8),
& F3(2,2,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),DRTYPE(NDIAGR),NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--decide whether to do the diagram
IF(MB(2)+MR(ID).LT.MB(1).AND.MR(ID).GT.MB(3)+MB(4).AND.
& IDP(4+ID).NE.207) THEN
DO 5 P0=1,2
DO 5 P1=1,2
DO 5 P2=1,2
DO 5 P3=1,2
5 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
RETURN
ENDIF
C--calculate the propagator factor
PRE = 0.25D0/(M342-MS(ID)+ZI*MWD(ID))
C--calculate the vertex functions
DO 10 P1=1,2
DO 10 P2=1,2
V1(P1,P2) = PRE*( A( P2 ,ID)*F0M(O(P1), P2 ,2)*S(2,6,P2)
& -A(O(P2),ID)*F0M(O(P1),O(P2),6)*MA(2))
10 V2(P1,P2) = B( P2 ,ID)*F2(O(P1), P2 ,4)*S(4,8,P2)
& -B(O(P2),ID)*F2(O(P1),O(P2),8)*MA(4)
C--calculate the matrix element
DO 20 P0=1,2
DO 20 P1=1,2
DO 20 P2=1,2
DO 20 P3=1,2
20 ME(P0,P1,P2,P3) = V1(P0,P1)*V2(P2,P3)
END
CDECK ID>, HWD4ME.
*CMZ :- -20/10/99 09:46:43 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD4ME(ID,ITYPE1,ITYPE2,IMODE)
C-----------------------------------------------------------------------
C Subroutine to perform the four body Higgs decays
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IMODE,I,J,ID,IDP(4+NDIAGR),ITYPE(2),NTRY,ITYPE1,ITYPE2
DOUBLE PRECISION A,B,MS,MWD,M,M2,WGT,HWRUNI,BRW(6),BRZ(12),
& HWUPCM,WMAX,WSUM,WSSUM,MR,PRE,TEMP,HWRGEN,WTMAX,P(5,5)
EXTERNAL HWRUNI,HWUPCM,HWRGEN
COMMON/HWD4BY/A(2),B(2),MS(2),MWD(2),MR(2),M(5),M2(5),P,IDP
SAVE BRW,BRZ
DATA BRW/0.321D0,0.321D0,0.000D0,0.108D0,0.108D0,0.108D0/
DATA BRZ/0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
& 0.033D0,0.067D0,0.033D0,0.067D0,0.033D0,0.067D0/
ITYPE(1) = ITYPE1
ITYPE(2) = ITYPE2
WTMAX = WT4MAX(ITYPE(1),ITYPE(2),IMODE)
PRE=P4MODE(ITYPE(1),ITYPE(2),IMODE)
C--compute the masses of external particles for the decay mode
DO I=1,2
C--couplings and masses of the internal particles
A(I) = A4MODE(I,ITYPE1,IMODE)
B(I) = B4MODE(I,ITYPE2,IMODE)
MR(I) = RMASS(I4MODE(I,IMODE))
MS(I) = MR(I)**2
IF(I4MODE(I,IMODE).EQ.200) THEN
MWD(I) = MR(I)*GAMZ
ELSE
MWD(I) = MR(I)*GAMW
ENDIF
IDP(5+I) = I4MODE(I,IMODE)
C--id's of outgoing particles
IF(I4MODE(I,IMODE).EQ.200) THEN
IDP(2*I ) = ITYPE(I)
IF(ITYPE(I).GT.6) IDP(2*I) = IDP(2*I)+114
IDP(2*I+1) = IDP(2*I)+6
ELSE
IDP(2*I ) = 2*ITYPE(I)-1
IF(ITYPE(I).GT.3) IDP(2*I) = IDP(2*I)+114
IDP(2*I+1) = IDP(2*I)+7
IF(I4MODE(I,IMODE).EQ.198) THEN
J = IDP(2*I )+6
IDP(2*I) = IDP(2*I+1)-6
IDP(2*I+1) = J
ENDIF
ENDIF
ENDDO
IDP(1) = IDK(ID4PRT(IMODE))
DO 1 I=1,5
M(I) = RMASS(IDP(I))
1 M2(I) = M(I)**2
IF(M(1).LT.M(2)+M(3)+M(4)+M(5).OR.MR(1).LT.M(2)+M(3).OR.
& MR(2).LT.M(4)+M(5)) RETURN
IF(IPRINT.EQ.2.AND..NOT.GENEV)
& WRITE(6,3000) RNAME(IDP(6)),RNAME(IDP(2)),RNAME(IDP(3)),
& RNAME(IDP(7)),RNAME(IDP(4)),RNAME(IDP(5))
C--compute the width and maximum weight if initialising
IF(.NOT.GENEV) THEN
WMAX = ZERO
WSUM = ZERO
WSSUM = ZERO
DO I=1,NSEARCH
CALL HWD4M0(1,WGT)
WGT = WGT*PRE
IF(WGT.GT.WMAX) WMAX = WGT
WSUM = WSUM+WGT
WSSUM = WSSUM+WGT**2
IF(WGT.LT.ZERO) CALL HWWARN('HWD4ME',500)
ENDDO
WSUM = WSUM/DBLE(NSEARCH)
WSSUM = MAX(ZERO,WSSUM/DBLE(NSEARCH)-WSUM**2)
WSSUM = SQRT(WSSUM/DBLE(NSEARCH))
IF(IPRINT.EQ.2) WRITE(6,3010) WSUM,WSSUM
IF(IPRINT.EQ.2) WRITE(6,3020) WMAX
TEMP = BRFRAC(ID4PRT(IMODE))*HBAR/RLTIM(IDK(ID4PRT(IMODE)))
DO J=1,2
IF(I4MODE(J,IMODE).EQ.200) THEN
TEMP = TEMP*BRZ(ITYPE(J))
ELSE
TEMP = TEMP*BRW(ITYPE(J))
ENDIF
ENDDO
IF(IPRINT.EQ.2) WRITE(6,3030) WSUM/TEMP,WSSUM/TEMP
C--set up the maximum weight
WT4MAX(ITYPE(1),ITYPE(2),IMODE) = WMAX
ELSE
C--generate a configuation
NTRY = 0
IF(SYSPIN.AND.NSPN.NE.0) CALL HWWARN('HWD4ME',501)
100 NTRY = NTRY+1
CALL HWD4M0(ID,WGT)
WGT = WGT*PRE
IF(HWRGEN(0)*WTMAX.GT.WGT.AND.NTRY.LT.NSNTRY) GOTO 100
IF(NTRY.GE.NSNTRY) THEN
CALL HWWARN('HWD4ME',100)
GOTO 999
ENDIF
ENDIF
3000 FORMAT(/' FOLLOWED BY ',A8,' --> ',A8,' ',A8,' AND ',
& A8,' --> ',A8,' ',A8)
3010 FORMAT(' PARTIAL WIDTH = ',G12.4,' +/- ',G12.4)
3020 FORMAT(' MAXIMUM WEIGHT = ',E12.4)
3030 FORMAT(' RATIO TO ISAJET VALUE = ',G12.4,' +/- ',G12.4)
999 RETURN
END
CDECK ID>, HWD4M0.
*CMZ :- -11/10/01 12:32:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWD4M0(ID,WGT)
C-----------------------------------------------------------------------
C Subroutine to calculate the matrix element for a given four body
C decay mode
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,P0,P1,P2,P3,ID,O(2),IDP(4+NDIAGR),II,P4
DOUBLE PRECISION A,B,MS,MWD,M,M2,WGT,HWRUNI,
& M23,PCMA,PCMB(2),HWUPCM,PHS,N(3),HWVDOT,PP,HWULDO,EPS,
& M232,PRE,PLAB,PRW,XMASS,PCM,P(5,5),PM(5,5),MR,PREF(5),
& M45,M452,MJAC(2),PTMP(5,2),CN(2),DOT
DOUBLE COMPLEX S,D,ME(2,2,2,2),APP(2,2),AMP(2,2),APM(2,2),
& AMM(2,2),BPP(2,2),BPM(2,2),BMP(2,2),BMM(2,2),ZI,
& F45(2,2,8,8),F23(2,2,8,8),C(2,2),E(2,2)
LOGICAL HWRLOG
EXTERNAL HWRUNI,HWUPCM,HWVDOT,HWULDO,HWRLOG
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
COMMON/HWD4BY/A(2),B(2),MS(2),MWD(2),MR(2),M(5),M2(5),P,IDP
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(EPS=1D-20,ZI=(0.0D0,1.0D0))
SAVE O,PREF
DATA O/2,1/
DATA PREF/1.0D0,0.0D0,0.0D0,1.0D0,0.0D0/
C--select the masses of the gauge bosons and compute Jacobians
IF(HWRLOG(HALF)) THEN
CALL HWHGB1(1,2,IDP(6),MJAC(1),M232,(M(1)-M(4)-M(5))**2,
& (M(2)+M(3))**2)
M23 = SQRT(M232)
CALL HWHGB1(1,2,IDP(7),MJAC(2),M452,
& (M(1)-M23)**2,(M(4)+M(5))**2)
M45 = SQRT(M452)
ELSE
CALL HWHGB1(1,2,IDP(7),MJAC(2),M452,(M(1)-M(2)-M(3))**2,
& (M(4)+M(5))**2)
M45 = SQRT(M452)
CALL HWHGB1(1,2,IDP(6),MJAC(1),M232,(M(1)-M45)**2,
& (M(2)+M(3))**2)
M23 = SQRT(M232)
ENDIF
MJAC(1) = MJAC(1)/((M232-MS(1))**2+MWD(1)**2)
MJAC(2) = MJAC(2)/((M452-MS(2))**2+MWD(2)**2)
DO 1 I=2,5
1 P(5,I) = M(I)
DO 2 I=1,2
2 CN(I) = -ONE/MS(I)
C--now perform the decay of the Higgs to the bosons
PCMA = HWUPCM(M(1),M23,M45)
PLAB(5,1) = M23
PLAB(5,2) = M45
CALL HWVEQU(5,PHEP(1,ID),P(1,1))
CALL HWDTWO(P(1,1),PLAB(1,1),PLAB(1,2),PCMA,2.0D0,.TRUE.)
PCMB(1) = HWUPCM(M23,M(2),M(3))
CALL HWDTWO(PLAB(1,1),P(1,2),P(1,3),PCMB(1),2.0D0,.TRUE.)
PCMB(2) = HWUPCM(M45,M(4),M(5))
CALL HWDTWO(PLAB(1,2),P(1,4),P(1,5),PCMB(2),2.0D0,.TRUE.)
DOT = HWULDO(PLAB(1,1),PLAB(1,2))
C--compute the phase sapce factors
PHS = PCMA*PCMB(1)*PCMB(2)*MJAC(1)*MJAC(2)/512.0D0/PIFAC**5/
& M2(1)/M23/M45
C--compute the vectors for the helicity amplitudes
DO 3 I=1,4
II=I+1
C--compute the references vectors
C--not important if SM particle which can't have spin measured
C--ie anything other the top and tau
C--also not important if particle is approx massless
C--first the SM particles other than top and tau
IF(IDP(II).LT.400.AND.(IDP(II).NE.6.AND.IDP(II).NE.12
& .AND.IDP(II).NE.125.AND.IDP(II).NE.131)) THEN
CALL HWVEQU(5,PREF,PLAB(1,I+4))
C--all other particles
ELSE
PP = SQRT(HWVDOT(3,P(1,II),P(1,II)))
CALL HWVSCA(3,ONE/PP,P(1,II),N)
PLAB(4,I+4) = HALF*(P(4,II)-PP)
PP = HALF*(PP-M(II)-PP**2/(M(II)+P(4,II)))
CALL HWVSCA(3,PP,N,PLAB(1,I+4))
CALL HWUMAS(PLAB(1,I+4))
PP = HWVDOT(3,PLAB(1,I+4),PLAB(1,I+4))
C--fix to avoid problems if approx massless due to energy
IF(PP.LT.EPS) CALL HWVEQU(5,PREF,PLAB(1,I+4))
ENDIF
C--now the massless vectors
PP = HALF*M2(II)/HWULDO(PLAB(1,I+4),P(1,II))
DO 4 J=1,4
4 PLAB(J,I) = P(J,II)-PP*PLAB(J,I+4)
3 CALL HWUMAS(PLAB(1,I))
C--change ordr of momenta for call to HE code
DO 5 I=1,5
PM(1,I) = P(3,I)
PM(2,I) = P(1,I)
PM(3,I) = P(2,I)
PM(4,I) = P(4,I)
5 PM(5,I) = P(5,I)
DO 6 I=1,8
PCM(1,I)=PLAB(3,I)
PCM(2,I)=PLAB(1,I)
PCM(3,I)=PLAB(2,I)
PCM(4,I)=PLAB(4,I)
6 PCM(5,I)=PLAB(5,I)
C--compute the S functions
CALL HWHEW2(8,PCM(1,1),S(1,1,2),S(1,1,1),D)
DO 7 I=1,8
DO 7 J=1,8
S(I,J,2) = -S(I,J,2)
7 D(I,J) = TWO*D(I,J)
CALL HWVSUM(4,PM(1,2),PM(1,3),PTMP(1,1))
CALL HWVSUM(4,PM(1,4),PM(1,5),PTMP(1,2))
CALL HWUMAS(PTMP(1,1))
CALL HWUMAS(PTMP(1,2))
C--compute the F functions
CALL HWH2F3(8,F23,PTMP(1,1),ZERO)
CALL HWH2F3(8,F45,PTMP(1,2),ZERO)
C--now find the prefactor for all the diagrams
PRE = HWULDO(PCM(1,5),PM(1,2))*HWULDO(PCM(1,6),PM(1,3))*
& HWULDO(PCM(1,7),PM(1,4))*HWULDO(PCM(1,8),PM(1,5))
PRE = 0.25D0/SQRT(PRE)
C--zero the matrix element
DO 8 P0=1,2
DO 8 P1=1,2
DO 8 P2=1,2
DO 8 P3=1,2
8 ME(P0,P1,P2,P3) = (0.0D0,0.0D0)
C--compute the A, B, C and E functions
DO 9 P1=1,2
DO 9 P2=1,2
IF(P1.EQ.P2) THEN
C--the A and B functions
APP(P1,P2) = A( P2 )*S(5,1,O(P1))*S(2,6, P1 )
APM(P1,P2) = 0.0D0
AMP(P1,P2) = 0.0D0
AMM(P1,P2) = -A(O(P2))*M(2)*M(3)
BPP(P1,P2) = B( P2 )*S(7,3,O(P1))*S(4,8, P1 )
BPM(P1,P2) = 0.0D0
BMP(P1,P2) = 0.0D0
BMM(P1,P2) = -B(O(P2))*M(4)*M(5)
C--the C and E functions
C(P1,P2) =CN(1)*(A( P2 )*( M2(2)*S(5,2,O(P1))*S(2,6, P1 )
& +M2(3)*S(5,1,O(P1))*S(1,6, P1 ))
& -A(O(P2))*M(2)*M(3)*( S(5,1,O(P1))*S(1,6, P1 )
& +S(5,2,O(P1))*S(2,6, P1 )))
E(P1,P2) =CN(2)*(B( P2 )*( M2(4)*S(7,4,O(P1))*S(4,8, P1 )
& +M2(5)*S(7,3,O(P1))*S(3,8, P1 ))
& -B(O(P2))*M(4)*M(5)*( S(7,3,O(P1))*S(3,8, P1 )
& +S(7,4,O(P1))*S(4,8, P1 )))
ELSE
C--the A functions
APP(P1,P2) = 0.0D0
APM(P1,P2) = A( P2 )*M(2)*S(2,6,O(P1))
AMP(P1,P2) =-A(O(P2))*M(3)*S(5,1,O(P1))
AMM(P1,P2) = 0.0D0
BPP(P1,P2) = 0.0D0
BPM(P1,P2) = B( P2 )*M(4)*S(4,8,O(P1))
BMP(P1,P2) =-B(O(P2))*M(5)*S(7,3,O(P1))
BMM(P1,P2) = 0.0D0
C--the C and D functions
C(P1,P2) =CN(1)*( A( P2 )*M(2)*( M2(3)*S(5,6,O(P1))
& +S(5,1,O(P1))*S(1,2, P1 )*S(2,6,O(P1)))
& -A(O(P2))*M(3)*( M2(2)*S(5,6,O(P1))
& +S(5,1,O(P1))*S(1,2, P1 )*S(2,6,O(P1))))
E(P1,P2) =CN(2)*( B( P2 )*M(4)*( M2(5)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1)))
& -B(O(P2))*M(5)*( M2(4)*S(7,8,O(P1))
& +S(7,3,O(P1))*S(3,4, P1 )*S(4,8,O(P1))))
ENDIF
9 CONTINUE
C--now put the whole thing together to give the matrix element
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
P0=O(P1)
IF(P1.EQ.P3) THEN
ME(P1,P2,P3,P4) =
& APP(P1,P2)*(S(1,3,P1)*(BPP(P3,P4)*S(4,2,P0)+BMP(P3,P4)*S(8,2,P0))
& +S(7,2,P0)*(BPM(P3,P4)*S(1,4,P1)+BMM(P3,P4)*S(1,8,P1)))
&+APM(P1,P2)*(S(5,7,P0)*(BPM(P3,P4)*S(4,2,P1)+BMM(P3,P4)*S(8,2,P1))
& +S(3,2,P1)*(BPP(P3,P4)*S(5,4,P0)+BMP(P3,P4)*S(5,8,P0)))
&+AMP(P1,P2)*(S(1,3,P1)*(BPP(P3,P4)*S(4,6,P0)+BMP(P3,P4)*S(8,6,P0))
& +S(7,6,P0)*(BPM(P3,P4)*S(1,4,P1)+BMM(P3,P4)*S(1,8,P1)))
&+AMM(P1,P2)*(S(3,6,P1)*(BPP(P3,P4)*S(5,4,P0)+BMP(P3,P4)*S(5,8,P0))
& +S(5,7,P0)*(BPM(P3,P4)*S(4,6,P1)+BMM(P3,P4)*S(8,6,P1)))
ELSE
ME(P1,P2,P3,P4) =
& APP(P1,P2)*(S(3,2,P0)*(BPP(P3,P4)*S(1,4,P1)+BMP(P3,P4)*S(1,8,P1))
& +S(1,7,P1)*(BPM(P3,P4)*S(4,2,P0)+BMM(P3,P4)*S(8,2,P0)))
&+APM(P1,P2)*(S(5,3,P0)*(BPP(P3,P4)*S(4,2,P1)+BMP(P3,P4)*S(8,2,P1))
& +S(7,2,P1)*(BPM(P3,P4)*S(5,4,P0)+BMM(P3,P4)*S(5,8,P0)))
&+AMP(P1,P2)*(S(3,6,P0)*(BPP(P3,P4)*S(1,4,P1)+BMP(P3,P3)*S(1,8,P1))
& +S(1,7,P1)*(BPM(P3,P4)*S(4,6,P0)+BMM(P3,P4)*S(8,6,P0)))
&+AMM(P1,P2)*(S(5,3,P0)*(BPP(P3,P4)*S(4,6,P1)+BMP(P3,P4)*S(8,6,P1))
& +S(7,6,P1)*(BPM(P3,P4)*S(5,4,P0)+BMM(P3,P4)*S(5,8,P0)))
ENDIF
ME(P1,P2,P3,P4) = TWO*ME(P1,P2,P3,P4)
& +C(P1,P2)*(
& BPP(P3,P4)*F23(P3,P3,3,4)+BPM(P3,P4)*F23(O(P3),O(P3),7,4)
& +BMP(P3,P4)*F23(P3,P3,3,8)+BMM(P3,P4)*F23(O(P3),O(P3),7,8))
& +E(P3,P4)*(
& APP(P1,P2)*F45(P1,P1,1,2)+APM(P1,P2)*F45(P0,P0,5,2)
& +AMP(P1,P2)*F45(P1,P1,1,6)+AMM(P1,P2)*F45(P0,P0,5,6))
& +DOT*C(P1,P2)*E(P3,P4)
10 ME(P1,P2,P3,P4) = PRE*ME(P1,P2,P3,P4)
C--compute the weight
WGT = ZERO
DO 40 P1=1,2
DO 40 P2=1,2
DO 40 P3=1,2
DO 40 P4=1,2
40 WGT = WGT+DREAL(ME(P1,P2,P3,P4)*DCONJG(ME(P1,P2,P3,P4)))
C--normalise this for phase space
WGT = WGT*PHS
C--enter the matrix element into the spin common block
IF(GENEV.AND.SYSPIN) THEN
NSPN = 5
DO 11 P1=1,2
DO 11 P2=1,2
DO 11 P3=1,2
DO 11 P4=1,2
11 MESPN(P1,P2,P3,P4,1,1) = ME(P1,P2,P3,P4)
SPNCFC(1,1,1) = ONE
NCFL(1) = 1
ENDIF
END
CDECK ID>, HWDBOS.
*CMZ :- -23/05/96 18.34.17 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWDBOS(IBOSON)
C-----------------------------------------------------------------------
C DECAY GAUGE BOSONS (ALREADY FOUND BY HWDHAD)
C USES SPIN DENSITY MATRIX IN RHOHEP (1ST CMPT=>-VE,2=>LONG,3=>+VE)
C IF BOSON CAME FROM HIGGS DECAY, GIVE BOTH THE SAME HELICITY (EPR)
C IF BOSON CAME FROM W+1JET, GIVE IT THE CORRECT DECAY CORRELATIONS
C--BRW FIX 20/07/04: ADD FULL DECAY CORRELATIONS FOR W/Z+HIGGS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUPCM,HWULDO,R(3,3),CV,CA,BR,PCM,
& PBOS(5),PMAX,PROB,RRLL,RLLR
INTEGER HWRINT,IBOS,IBOSON,IPAIR,ICMF,IOPT,IHEL,IMOTH,
& I,IQRK,IANT,ID,IQ
LOGICAL QUARKS
EXTERNAL HWRGEN,HWRUNI,HWUPCM,HWULDO,HWRINT
IBOS=IBOSON
IF (IDHW(IBOS).LT.198.OR.IDHW(IBOS).GT.200) THEN
CALL HWWARN('HWDBOS',101)
GOTO 999
ENDIF
QUARKS=.FALSE.
C---SEE IF IT IS PART OF A PAIR
IMOTH=JMOHEP(1,IBOS)
IPAIR=JMOHEP(2,IBOS)
ICMF=JMOHEP(1,IBOS)
C--BRW FIX 17/07/03
IF (IPAIR.EQ.IBOS) THEN
IOPT=0
IF (IPRO.EQ.26.OR.IPRO.EQ.27) ICMF=JMOHEP(1,IMOTH)
ELSE
IF (IDHW(ICMF).EQ.IDHW(IBOS).AND.ISTHEP(ICMF)/10.EQ.12) THEN
IPAIR=JMOHEP(2,ICMF)
IF (IPAIR.NE.0) THEN
IPAIR=JDAHEP(1,IPAIR)
IF (IPAIR.NE.0) JMOHEP(2,IPAIR)=IBOS
ENDIF
ICMF=JMOHEP(1,ICMF)
ENDIF
IOPT=0
IF (IPAIR.NE.0) THEN
IF (JMOHEP(2,IPAIR).NE.IBOS.OR.
& IDHW(IPAIR).LT.198.OR.IDHW(IPAIR).GT.200) IPAIR=0
ENDIF
IF (IPAIR.GT.0.AND.IPAIR.NE.IBOS) IOPT=1
ENDIF
C--END FIX
C---SELECT DECAY PRODUCTS
10 CALL HWDBOZ(IDHW(IBOS),IDN(1),IDN(2),CV,CA,BR,IOPT)
C---V + 1JET, V+HIGGS DECAYS ARE NOW HANDLED HERE !
IF (IPRO.EQ.21.OR.IPRO.EQ.26.OR.IPRO.EQ.27) THEN
IQRK=IDHW(JMOHEP(1,ICMF))
IANT=IDHW(JMOHEP(2,ICMF))
IF (IQRK.EQ.13 .AND. IANT.LE.6) THEN
IQRK=JMOHEP(2,ICMF)
IANT=JDAHEP(2,ICMF)
ELSEIF (IQRK.EQ.13) THEN
IQRK=JDAHEP(2,ICMF)
IANT=JMOHEP(2,ICMF)
ELSEIF (IANT.EQ.13 .AND. IQRK.LE.6) THEN
IQRK=JMOHEP(1,ICMF)
IANT=JDAHEP(2,ICMF)
ELSEIF (IANT.EQ.13) THEN
IQRK=JDAHEP(2,ICMF)
IANT=JMOHEP(1,ICMF)
ELSEIF (IQRK.GT.IANT) THEN
IQRK=JMOHEP(2,ICMF)
IANT=JMOHEP(1,ICMF)
ELSE
IQRK=JMOHEP(1,ICMF)
IANT=JMOHEP(2,ICMF)
ENDIF
PHEP(5,NHEP+1)=RMASS(IDN(1))
PHEP(5,NHEP+2)=RMASS(IDN(2))
PCM=HWUPCM(PHEP(5,IBOS),PHEP(5,NHEP+1),PHEP(5,NHEP+2))
IF (PCM.LT.ZERO) THEN
CALL HWWARN('HWDBOS',103)
GOTO 999
ENDIF
IF (IDHW(IBOS).EQ.200) THEN
ID=IDN(1)
IF (ID.GT.120) ID=ID-110
IQ=IDHW(IQRK)
IF (IQ.GT.6) IQ=IQ-6
RRLL=(VFCH(IQ,1)**2+AFCH(IQ,1)**2)*
$ (VFCH(ID,1)**2+AFCH(ID,1)**2)
$ +4*VFCH(IQ,1)*AFCH(IQ,1)*
$ VFCH(ID,1)*AFCH(ID,1)
RLLR=(VFCH(IQ,1)**2+AFCH(IQ,1)**2)*
$ (VFCH(ID,1)**2+AFCH(ID,1)**2)
$ -4*VFCH(IQ,1)*AFCH(IQ,1)*
$ VFCH(ID,1)*AFCH(ID,1)
ELSE
RRLL=ONE
RLLR=ZERO
ENDIF
IF (IPRO.EQ.21) THEN
PMAX=(RRLL+RLLR)*(HWULDO(PHEP(1,IANT),PHEP(1,IBOS))**2+
& HWULDO(PHEP(1,IQRK),PHEP(1,IBOS))**2)
ELSE
PMAX=(RRLL+RLLR)* HWULDO(PHEP(1,IANT),PHEP(1,IBOS))*
& HWULDO(PHEP(1,IQRK),PHEP(1,IBOS))
ENDIF
1 CALL HWDTWO(PHEP(1,IBOS),PHEP(1,NHEP+1),PHEP(1,NHEP+2),
& PCM,TWO,.TRUE.)
IF (IPRO.EQ.21) THEN
PROB=RRLL*(HWULDO(PHEP(1,IANT),PHEP(1,NHEP+1))**2+
& HWULDO(PHEP(1,IQRK),PHEP(1,NHEP+2))**2)+
& RLLR*(HWULDO(PHEP(1,IANT),PHEP(1,NHEP+2))**2+
& HWULDO(PHEP(1,IQRK),PHEP(1,NHEP+1))**2)
ELSE
PROB=RRLL* HWULDO(PHEP(1,IANT),PHEP(1,NHEP+1))*
& HWULDO(PHEP(1,IQRK),PHEP(1,NHEP+2))+
& RLLR* HWULDO(PHEP(1,IANT),PHEP(1,NHEP+2))*
& HWULDO(PHEP(1,IQRK),PHEP(1,NHEP+1))
ENDIF
IF (PROB.GT.PMAX.OR.PROB.LT.ZERO) THEN
CALL HWWARN('HWDBOS',104)
GOTO 999
ENDIF
IF (PMAX*HWRGEN(0).GT.PROB) GOTO 1
ELSE
C---SELECT HELICITY, UNLESS IT IS THE SECOND OF A HIGGS DECAY (EPR)
IF (IPAIR.NE.IBOS .OR. IDHW(ICMF).NE.201) THEN
IF (RHOHEP(1,IBOS)+RHOHEP(2,IBOS)+RHOHEP(3,IBOS).LE.ZERO) THEN
C---COPY PARENT HELICITY IF IT WAS A GAUGE BOSON
IF (IDHW(IMOTH).GE.198.AND.IDHW(IMOTH).LE.200) THEN
CALL HWVEQU(3,RHOHEP(1,IMOTH),RHOHEP(1,IBOS))
IF (RHOHEP(1,IBOS)+RHOHEP(2,IBOS)+RHOHEP(3,IBOS).GT.ZERO)
& GOTO 20
C---MAY BE FROM A SUSY DECAY
ELSEIF (ABS(IDHEP(IMOTH)).LT.1000000) THEN
CALL HWWARN('HWDBOS',1)
ENDIF
RHOHEP(1,IBOS)=1.
RHOHEP(2,IBOS)=1.
RHOHEP(3,IBOS)=1.
ENDIF
20 IHEL=HWRINT(1,3)
IF (HWRGEN(0).GT.RHOHEP(IHEL,IBOS)) GOTO 20
ENDIF
C---SELECT DIRECTION OF FERMION
30 COSTH=HWRUNI(0,-ONE,ONE)
IF (IHEL.EQ.1 .AND. (ONE+COSTH)**2.LT.HWRGEN(0)*FOUR) GOTO 30
IF (IHEL.EQ.2 .AND. (ONE-COSTH**2).LT.HWRGEN(0) ) GOTO 30
IF (IHEL.EQ.3 .AND. (ONE-COSTH)**2.LT.HWRGEN(0)*FOUR) GOTO 30
C---GENERATE DECAY RELATIVE TO Z-AXIS
PHEP(5,NHEP+1)=RMASS(IDN(1))
PHEP(5,NHEP+2)=RMASS(IDN(2))
PCM=HWUPCM(PHEP(5,IBOS),PHEP(5,NHEP+1),PHEP(5,NHEP+2))
IF (PCM.LT.ZERO) THEN
CALL HWWARN('HWDBOS',102)
GOTO 999
ENDIF
CALL HWRAZM(PCM*SQRT(1-COSTH**2),PHEP(1,NHEP+1),PHEP(2,NHEP+1))
PHEP(3,NHEP+1)=PCM*COSTH
PHEP(4,NHEP+1)=SQRT(PHEP(5,NHEP+1)**2+PCM**2)
C---ROTATE SO THAT Z-AXIS BECOMES BOSON'S DIRECTION IN ORIGINAL CM FRAME
CALL HWULOF(PHEP(1,ICMF),PHEP(1,IBOS),PBOS)
CALL HWUROT(PBOS, ONE,ZERO,R)
CALL HWUROB(R,PHEP(1,NHEP+1),PHEP(1,NHEP+1))
C---BOOST BACK TO LAB
CALL HWULOB(PHEP(1,IBOS),PHEP(1,NHEP+1),PHEP(1,NHEP+1))
CALL HWVDIF(4,PHEP(1,IBOS),PHEP(1,NHEP+1),PHEP(1,NHEP+2))
ENDIF
C---STATUS, IDs AND POINTERS
ISTHEP(IBOS)=195
DO 50 I=1,2
ISTHEP(NHEP+I)=193
IDHW(NHEP+I)=IDN(I)
IDHEP(NHEP+I)=IDPDG(IDN(I))
JDAHEP(I,IBOS)=NHEP+I
JMOHEP(1,NHEP+I)=IBOS
JMOHEP(2,NHEP+I)=JMOHEP(1,IBOS)
50 CONTINUE
NHEP=NHEP+2
IF (IDN(1).LE.12) THEN
ISTHEP(NHEP-1)=113
ISTHEP(NHEP)=114
JMOHEP(2,NHEP)=NHEP-1
JDAHEP(2,NHEP)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP
JDAHEP(2,NHEP-1)=NHEP
QUARKS=.TRUE.
ELSE
C--MHS FIX 07/03/05 - VERTEX POSITION FOR DECAYS TO LEPTONS
CALL HWVEQU(4,VTXPIP,VHEP(1,NHEP-1))
CALL HWVEQU(4,VTXPIP,VHEP(1,NHEP))
C--END FIX
ENDIF
C---IF FIRST OF A PAIR, DO SECOND DECAY
IF (IPAIR.NE.0 .AND. IPAIR.NE.IBOS) THEN
IBOS=IPAIR
GOTO 10
ENDIF
C---IF QUARK DECAY, HADRONIZE
IF (QUARKS) THEN
EMSCA=PHEP(5,IBOS)
CALL HWBGEN
CALL HWDHOB
CALL HWCFOR
CALL HWCDEC
ENDIF
999 RETURN
END
CDECK ID>, HWDBOZ.
*CMZ :- -29/04/91 18.00.03 by Federico Carminati
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWDBOZ(IDBOS,IFER,IANT,CV,CA,BR,IOPT)
C-----------------------------------------------------------------------
C CHOOSE DECAY MODE OF BOSON
C IOPT=2 TO RESET COUNTERS, 1 FOR BOSON PAIR, 0 FOR ANY OTHERS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,BRMODE(12,3),CV,CA,BR,BRLST,BRCOM,FACZ,
& FACW
INTEGER HWRINT,IDBOS,IDEC,IDMODE(2,12,3),IFER,IANT,IOPT,I1,I2,
& I1LST,I2LST,NWGLST,NUMDEC,NPAIR,MODTMP,JFER
LOGICAL GENLST
EXTERNAL HWRGEN,HWRINT
SAVE FACW,FACZ,NWGLST,GENLST,NUMDEC,NPAIR,I1LST,I2LST,BRLST
SAVE IDMODE,BRMODE
DATA NWGLST,GENLST,NPAIR/-1,.FALSE.,0/
C---STORE THE DECAY MODES (FERMION FIRST)
DATA IDMODE/ 2, 7, 4, 9, 6, 11, 2, 9, 4, 7,
& 122,127,124,129,126,131,8*0,
& 1, 8, 3, 10, 5, 12, 3, 8, 1, 10,
& 121,128,123,130,125,132,8*0,
& 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 6, 12,
& 121,127,123,129,125,131,122,128,124,130,126,132/
C---STORE THE BRANCHING RATIOS TO THESE MODES
DATA BRMODE/0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
& 0.108D0,0.108D0,4*0.0D0,
& 0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
& 0.108D0,0.108D0,4*0.0D0,
& 0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
& 0.033D0,0.033D0,0.033D0,0.067D0,0.067D0,0.067D0/
C---FACTORS FOR CV AND CA FOR W AND Z
DATA FACW,FACZ/2*0.0D0/
IF (FACZ.EQ.ZERO) FACZ=SQRT(SWEIN)
IF (FACW.EQ.ZERO) FACW=0.5/SQRT(2D0)
IF (IDBOS.LT.198.OR.IDBOS.GT.200) THEN
CALL HWWARN('HWDBOZ',101)
GOTO 999
ENDIF
C---IF THIS IS A NEW EVENT SINCE LAST TIME, ZERO COUNTERS
IF (NWGTS.NE.NWGLST .OR.(GENEV.NEQV.GENLST).OR. IOPT.EQ.2) THEN
NPAIR=0
NUMDEC=0
NWGLST=NWGTS
GENLST=GENEV
IF (IOPT.EQ.2) RETURN
ENDIF
NUMDEC=NUMDEC+1
IF (NUMDEC.GT.MODMAX) THEN
CALL HWWARN('HWDBOZ',102)
GOTO 999
ENDIF
C---IF PAIR OPTION SPECIFIED FOR THE FIRST TIME, MAKE CHOICE
IF (IOPT.EQ.1) THEN
IF (NUMDEC.GT.MODMAX-1) THEN
CALL HWWARN('HWDBOZ',103)
GOTO 999
ENDIF
IF (NPAIR.EQ.0) THEN
IF (HWRGEN(1).GT.HALF) THEN
MODTMP=MODBOS(NUMDEC+1)
MODBOS(NUMDEC+1)=MODBOS(NUMDEC)
MODBOS(NUMDEC)=MODTMP
ENDIF
NPAIR=NUMDEC
ELSE
NPAIR=0
ENDIF
ENDIF
C---SELECT USER'S CHOICE
IF (IDBOS.EQ.200) THEN
IF (MODBOS(NUMDEC).EQ.1) THEN
I1=1
I2=6
ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
I1=7
I2=7
ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
I1=8
I2=8
ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
I1=9
I2=9
ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
I1=7
I2=8
ELSEIF (MODBOS(NUMDEC).EQ.6) THEN
I1=10
I2=12
ELSEIF (MODBOS(NUMDEC).EQ.7) THEN
I1=5
I2=5
ELSE
I1=1
I2=12
ENDIF
ELSE
IF (MODBOS(NUMDEC).EQ.1) THEN
I1=1
I2=5
ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
I1=6
I2=6
ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
I1=7
I2=7
ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
I1=8
I2=8
ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
I1=6
I2=7
ELSE
I1=1
I2=8
ENDIF
ENDIF
10 IDEC=HWRINT(I1,I2)
IF (HWRGEN(0).GT.BRMODE(IDEC,IDBOS-197).AND.I1.NE.I2) GOTO 10
IFER=IDMODE(1,IDEC,IDBOS-197)
IANT=IDMODE(2,IDEC,IDBOS-197)
C---CALCULATE BRANCHING RATIO
C (RESULT IS NOT WELL-DEFINED AFTER THE FIRST CALL OF A PAIR)
BR=0
DO 20 IDEC=I1,I2
20 BR=BR+BRMODE(IDEC,IDBOS-197)
IF (IOPT.EQ.1) THEN
IF (NPAIR.NE.0) THEN
I1LST=I1
I2LST=I2
BRLST=BR
ELSE
BRCOM=0
DO 30 IDEC=MAX(I1,I1LST),MIN(I2,I2LST)
30 BRCOM=BRCOM+BRMODE(IDEC,IDBOS-197)
BR=2*BR*BRLST - BRCOM**2
ENDIF
ENDIF
C---SET UP VECTOR AND AXIAL VECTOR COUPLINGS (NORMALIZED TO THE
C CONVENTION WHERE THE WEAK CURRENT IS G*(CV-CA*GAM5) )
IF (IDBOS.EQ.200) THEN
IF (IFER.LE.6) THEN
C Quark couplings
CV=VFCH(IFER,1)
CA=AFCH(IFER,1)
ELSE
C lepton couplings
JFER=IFER-110
CV=VFCH(JFER,1)
CA=AFCH(JFER,1)
ENDIF
CV=CV * FACZ
CA=CA * FACZ
ELSE
CV=FACW
CA=FACW
ENDIF
999 RETURN
END
CDECK ID>, HWDBZ2.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson based on Mike Seymour's HWDBOZ
C-----------------------------------------------------------------------
SUBROUTINE HWDBZ2(IDBOS,IFER,IANT,CV,CA,BR,IOPT,MASS)
C-----------------------------------------------------------------------
C CHOOSE DECAY MODE OF BOSON
C IOPT=2 TO RESET COUNTERS, 1 FOR BOSON PAIR, 0 FOR ANY OTHERS
C IDENTICAL TO HWDBOZ BUT REQUIRES DECAY MODE ACCESSIBLE FOR GIVEN
C MASS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,BRMODE(12,3),CV,CA,BR,BRLST,BRCOM,FACZ,
& FACW,MSMODE(12,3),MASS
INTEGER HWRINT,IDBOS,IDEC,IDMODE(2,12,3),IFER,IANT,IOPT,I1,I2,
& I1LST,I2LST,NWGLST,NUMDEC,NPAIR,MODTMP,JFER,NTRY
LOGICAL GENLST
EXTERNAL HWRGEN,HWRINT
SAVE FACW,FACZ,MSMODE,NWGLST,GENLST,NUMDEC,NPAIR,I1LST,I2LST,BRLST
SAVE IDMODE,BRMODE
DATA NWGLST,GENLST,NPAIR/-1,.FALSE.,0/
C---STORE THE DECAY MODES (FERMION FIRST)
DATA IDMODE/ 2, 7, 4, 9, 6, 11, 2, 9, 4, 7,
& 122,127,124,129,126,131,8*0,
& 1, 8, 3, 10, 5, 12, 3, 8, 1, 10,
& 121,128,123,130,125,132,8*0,
& 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 6, 12,
& 121,127,123,129,125,131,122,128,124,130,126,132/
C---STORE THE BRANCHING RATIOS TO THESE MODES
DATA BRMODE/0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
& 0.108D0,0.108D0,4*0.0D0,
& 0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
& 0.108D0,0.108D0,4*0.0D0,
& 0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
& 0.033D0,0.033D0,0.033D0,0.067D0,0.067D0,0.067D0/
DATA MSMODE/36*0.0D0/
C---FACTORS FOR CV AND CA FOR W AND Z
DATA FACW,FACZ/2*0.0D0/
IF (FACZ.EQ.ZERO) FACZ=SQRT(SWEIN)
IF (FACW.EQ.ZERO) FACW=0.5/SQRT(2D0)
IF (IDBOS.LT.198.OR.IDBOS.GT.200) THEN
CALL HWWARN('HWDBZ2',101)
GOTO 999
ENDIF
IF(MSMODE(1,1).EQ.ZERO) THEN
DO I1=1,12
DO I2=1,3
MSMODE(I1,I2)=RMASS(IDMODE(1,I1,I2))+RMASS(IDMODE(2,I1,I2))
ENDDO
ENDDO
ENDIF
C---IF THIS IS A NEW EVENT SINCE LAST TIME, ZERO COUNTERS
IF (NWGTS.NE.NWGLST .OR.(GENEV.NEQV.GENLST).OR. IOPT.EQ.2) THEN
NPAIR=0
NUMDEC=0
NWGLST=NWGTS
GENLST=GENEV
IF (IOPT.EQ.2) RETURN
ENDIF
NUMDEC=NUMDEC+1
IF (NUMDEC.GT.MODMAX) THEN
CALL HWWARN('HWDBZ2',102)
GOTO 999
ENDIF
C---IF PAIR OPTION SPECIFIED FOR THE FIRST TIME, MAKE CHOICE
IF (IOPT.EQ.1) THEN
IF (NUMDEC.GT.MODMAX-1) THEN
CALL HWWARN('HWDBZ2',103)
GOTO 999
ENDIF
IF (NPAIR.EQ.0) THEN
IF (HWRGEN(1).GT.HALF) THEN
MODTMP=MODBOS(NUMDEC+1)
MODBOS(NUMDEC+1)=MODBOS(NUMDEC)
MODBOS(NUMDEC)=MODTMP
ENDIF
NPAIR=NUMDEC
ELSE
NPAIR=0
ENDIF
ENDIF
C---SELECT USER'S CHOICE
IF (IDBOS.EQ.200) THEN
IF (MODBOS(NUMDEC).EQ.1) THEN
I1=1
I2=6
ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
I1=7
I2=7
ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
I1=8
I2=8
ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
I1=9
I2=9
ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
I1=7
I2=8
ELSEIF (MODBOS(NUMDEC).EQ.6) THEN
I1=10
I2=12
ELSEIF (MODBOS(NUMDEC).EQ.7) THEN
I1=5
I2=5
ELSE
I1=1
I2=12
ENDIF
ELSE
IF (MODBOS(NUMDEC).EQ.1) THEN
I1=1
I2=5
ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
I1=6
I2=6
ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
I1=7
I2=7
ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
I1=8
I2=8
ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
I1=6
I2=7
ELSE
I1=1
I2=8
ENDIF
ENDIF
NTRY = 0
10 IDEC=HWRINT(I1,I2)
NTRY = NTRY+1
IF (HWRGEN(0).GT.BRMODE(IDEC,IDBOS-197).AND.I1.NE.I2) GOTO 10
IF(MASS.LT.MSMODE(IDEC,IDBOS-197).AND.NTRY.LT.NBTRY) GOTO 10
IF(NTRY.GE.NBTRY) THEN
BR = ZERO
RETURN
ENDIF
IFER=IDMODE(1,IDEC,IDBOS-197)
IANT=IDMODE(2,IDEC,IDBOS-197)
C---CALCULATE BRANCHING RATIO
C (RESULT IS NOT WELL-DEFINED AFTER THE FIRST CALL OF A PAIR)
BR=0
DO 20 IDEC=I1,I2
20 IF(MSMODE(IDEC,IDBOS-197).LT.MASS) BR=BR+BRMODE(IDEC,IDBOS-197)
IF (IOPT.EQ.1) THEN
IF (NPAIR.NE.0) THEN
I1LST=I1
I2LST=I2
BRLST=BR
ELSE
BRCOM=0
DO 30 IDEC=MAX(I1,I1LST),MIN(I2,I2LST)
30 IF(MSMODE(IDEC,IDBOS-197).LT.MASS)
& BRCOM=BRCOM+BRMODE(IDEC,IDBOS-197)
BR=2*BR*BRLST - BRCOM**2
ENDIF
ENDIF
C---SET UP VECTOR AND AXIAL VECTOR COUPLINGS (NORMALIZED TO THE
C CONVENTION WHERE THE WEAK CURRENT IS G*(CV-CA*GAM5) )
IF (IDBOS.EQ.200) THEN
IF (IFER.LE.6) THEN
C Quark couplings
CV=VFCH(IFER,1)
CA=AFCH(IFER,1)
ELSE
C lepton couplings
JFER=IFER-110
CV=VFCH(JFER,1)
CA=AFCH(JFER,1)
ENDIF
CV=CV * FACZ
CA=CA * FACZ
ELSE
CV=FACW
CA=FACW
ENDIF
999 RETURN
END
CDECK ID>, HWDCHK.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWDCHK(IDKY,L,IFGO)
C-----------------------------------------------------------------------
C Checks line L of decay table is compatible with decay of particle
C IDKY, tidies up the line and sets NPRODS.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION EPS,QS,Q,DM
INTEGER IDKY,L,IFAULT,I,ID,J
LOGICAL IFGO
PARAMETER (EPS=1.D-6)
IFGO = .FALSE.
IF (VTOCDK(IDKY).AND.VTORDK(IDKY)) THEN
IFGO = .TRUE.
RETURN
ENDIF
IFAULT=0
QS=FLOAT(ICHRG(IDKY))
IF (IDKY.LE.12.OR.(IDKY.GE.109.AND.IDKY.LE.120)
& .OR.(IDKY.GE.209.AND.IDKY.LE.220)
& .OR.(IDKY.GE.401.AND.IDKY.LE.424)) QS=QS/3.
DM=RMASS(IDKY)
NPRODS(L)=0
DO 10 I=1,5
ID=IDKPRD(I,L)
IF (ID.LT.0.OR.ID.EQ.20.OR.ID.GT.NRES) THEN
WRITE(6,20) L,RNAME(IDKY),(RNAME(IDKPRD(J,L)),J=1,5)
IFAULT=IFAULT+1
ELSEIF (ID.NE.0) THEN
IF (VTORDK(ID)) THEN
WRITE(6,30) L,RNAME(IDKY),(RNAME(IDKPRD(J,L)),J=1,5),RNAME(ID)
IFAULT=IFAULT+1
ENDIF
NPRODS(L)=NPRODS(L)+1
IDKPRD(NPRODS(L),L)=ID
Q=FLOAT(ICHRG(ID))
IF (ID.LE.12.OR.(ID.GE.109.AND.ID.LE.120)
& .OR.(ID.GE.209.AND.ID.LE.220)
& .OR.(ID.GE.401.AND.ID.LE.424)) Q=Q/3.
QS=QS-Q
DM=DM-RMASS(ID)
ENDIF
10 CONTINUE
C print any warnings
IF (NPRODS(L).EQ.0) THEN
WRITE(6,20) L,RNAME(IDKY),(RNAME(IDKPRD(I,L)),I=1,5)
IFAULT=IFAULT+1
ELSE
IF (ABS(QS).GT.EPS) THEN
WRITE(6,40) L,RNAME(IDKY),(RNAME(IDKPRD(I,L)),I=1,5),QS
IFAULT=IFAULT+1
ENDIF
C--modification so doesn't remove H --> W*W* Z*Z* modes
IF (DM.LT.ZERO.AND..NOT.
& (FOURB.AND.IDK(L).GE.203.AND.IDK(L).LE.205.AND.
& IDKPRD(1,L).GE.198.AND.IDKPRD(2,L).LE.200.AND.
& IDKPRD(2,L).GE.198.AND.IDKPRD(2,L).LE.200)) THEN
WRITE(6,50) L,RNAME(IDKY),(RNAME(IDKPRD(I,L)),I=1,5),DM
IFAULT=IFAULT+1
ENDIF
ENDIF
20 FORMAT(1X,'Line ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'contains no or unrecognised decay product(s)')
30 FORMAT(1X,'Line ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'contains decay product ',A8,' which is vetoed')
40 FORMAT(1X,'Line ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'violates charge conservation, Qin-Qout= ',F6.3)
50 FORMAT(1X,'Line ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'is kinematically not allowed, Min-Mout= ',F10.3)
IF (IFAULT.NE.0) THEN
IFGO = .TRUE.
RETURN
ELSE
RETURN
ENDIF
END
CDECK ID>, HWDCLE.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWDCLE(IHEP)
C-----------------------------------------------------------------------
C INTERFACE TO QQ-CLEO MONTE CARLO (LS 11/12/91)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,IIHEP,NHEPHF,QQLMAT
LOGICAL QQLERR
CHARACTER*8 NAME
EXTERNAL QQLMAT
C---QQ-CLEO COMMON'S
C*** MCPARS.INC
INTEGER MCTRK, NTRKS, MCVRTX, NVTXS, MCHANS, MCDTRS, MPOLQQ
INTEGER MCNUM, MCSTBL, MCSTAB, MCTLQQ, MDECQQ
INTEGER MHLPRB, MHLLST, MHLANG, MCPLST, MFDECA
PARAMETER (MCTRK = 512)
PARAMETER (NTRKS = MCTRK)
PARAMETER (MCVRTX = 256)
PARAMETER (NVTXS = MCVRTX)
PARAMETER (MCHANS = 4000)
PARAMETER (MCDTRS = 8000)
PARAMETER (MPOLQQ = 300)
PARAMETER (MCNUM = 500)
PARAMETER (MCSTBL = 40)
PARAMETER (MCSTAB = 512)
PARAMETER (MCTLQQ = 100)
PARAMETER (MDECQQ = 300)
PARAMETER (MHLPRB = 500)
PARAMETER (MHLLST = 1000)
PARAMETER (MHLANG = 500)
PARAMETER (MCPLST = 200)
PARAMETER (MFDECA = 5)
C*** MCPROP.INC
REAL AMASS, CHARGE, CTAU, SPIN, RWIDTH, RMASMN, RMASMX
REAL RMIXPP, RCPMIX
INTEGER NPMNQQ, NPMXQQ, IDMC, INVMC, LPARTY, CPARTY
INTEGER IMIXPP, ICPMIX
COMMON/MCMAS1/
* NPMNQQ, NPMXQQ,
* AMASS(-20:MCNUM), CHARGE(-20:MCNUM), CTAU(-20:MCNUM),
* IDMC(-20:MCNUM), SPIN(-20:MCNUM),
* RWIDTH(-20:MCNUM), RMASMN(-20:MCNUM), RMASMX(-20:MCNUM),
* LPARTY(-20:MCNUM), CPARTY(-20:MCNUM),
* IMIXPP(-20:MCNUM), RMIXPP(-20:MCNUM),
* ICPMIX(-20:MCNUM), RCPMIX(-20:MCNUM),
* INVMC(0:MCSTBL)
C
INTEGER NPOLQQ, IPOLQQ
COMMON/MCPOL1/
* NPOLQQ, IPOLQQ(5,MPOLQQ)
C
CHARACTER QNAME*10, PNAME*10
COMMON/MCNAMS/
* QNAME(37), PNAME(-20:MCNUM)
C
C*** MCCOMS.INC
INTEGER NCTLQQ, NDECQQ, IVRSQQ, IORGQQ, IRS1QQ
INTEGER IEVTQQ, IRUNQQ, IBMRAD
INTEGER NTRKMC, QQNTRK, NSTBMC, NSTBQQ, NCHGMC, NCHGQQ
INTEGER IRANQQ, IRANMC, IRANCC, IRS2QQ
INTEGER IPFTQQ, IPCDQQ, IPRNTV, ITYPEV, IDECSV, IDAUTV
INTEGER ISTBMC, NDAUTV
INTEGER IVPROD, IVDECA
REAL BFLDQQ
REAL ENERQQ, BEAMQQ, BMPSQQ, BMNGQQ, EWIDQQ, BWPSQQ, BWNGQQ
REAL BPOSQQ, BSIZQQ
REAL ECM, P4CMQQ, P4PHQQ, ENERNW, BEAMNW, BEAMP, BEAMN
REAL PSAV, P4QQ, HELCQQ
CHARACTER DATEQQ*20, TIMEQQ*20, FOUTQQ*80, FCTLQQ*80, FDECQQ*80
CHARACTER FGEOQQ*80
CHARACTER CCTLQQ*80, CDECQQ*80
C
COMMON/MCCM1A/
* NCTLQQ, NDECQQ, IVRSQQ, IORGQQ, IRS1QQ(3), BFLDQQ,
* ENERQQ, BEAMQQ, BMPSQQ, BMNGQQ, EWIDQQ, BWPSQQ, BWNGQQ,
* BPOSQQ(3), BSIZQQ(3),
* IEVTQQ, IRUNQQ,
* IBMRAD, ECM, P4CMQQ(4), P4PHQQ(4),
* ENERNW, BEAMNW, BEAMP, BEAMN,
* NTRKMC, QQNTRK, NSTBMC, NSTBQQ, NCHGMC, NCHGQQ,
* IRANQQ(2), IRANMC(2), IRANCC(2), IRS2QQ(5),
* IPFTQQ(MCTRK), IPCDQQ(MCTRK), IPRNTV(MCTRK), ITYPEV(MCTRK,2),
* IDECSV(MCTRK), IDAUTV(MCTRK), ISTBMC(MCTRK), NDAUTV(MCTRK),
* IVPROD(MCTRK), IVDECA(MCTRK),
* PSAV(MCTRK,4), HELCQQ(MCTRK), P4QQ(4,MCTRK)
C
COMMON/MCCM1B/
* DATEQQ, TIMEQQ, FOUTQQ, FCTLQQ, FDECQQ, FGEOQQ,
* CCTLQQ(MCTLQQ), CDECQQ(MDECQQ)
C
INTEGER NVRTX, ITRKIN, NTRKOU, ITRKOU, IVKODE
REAL XVTX, TVTX, RVTX
COMMON/MCCM2/
* NVRTX, XVTX(MCVRTX,3), TVTX(MCVRTX), RVTX(MCVRTX),
* ITRKIN(MCVRTX), NTRKOU(MCVRTX), ITRKOU(MCVRTX),
* IVKODE(MCVRTX)
C*** MCGEN.INC
INTEGER QQIST,QQIFR,QQN,QQK,QQMESO,QQNC,QQKC,QQLASTN
REAL QQPUD,QQPS1,QQSIGM,QQMAS,QQPAR,QQCMIX,QQCND,QQBSPI,QQBSYM,QQP
REAL QQPC,QQCZF
C
COMMON/DATA1/QQIST,QQIFR,QQPUD,QQPS1,QQSIGM,QQMAS(15),QQPAR(25)
COMMON/DATA2/QQCZF(15),QQMESO(36),QQCMIX(6,2)
COMMON/DATA3/QQCND(3)
COMMON/DATA5/QQBSPI(5),QQBSYM(3)
COMMON/JET/QQN,QQK(250,2),QQP(250,5),QQNC,QQKC(10),QQPC(10,4),
* QQLASTN
C---
IF(FSTEVT) THEN
C---INITIALIZE QQ-CLEO
CALL QQINIT(QQLERR)
IF(QQLERR) CALL HWWARN('HWDEUR',500)
ENDIF
C---CONSTRUCT THE HADRON FOR QQ-CLEO
C NOTE: THE IDPDG CODE IS PROVIDED THROUGH THE QQLMAT ROUTINE
C FROM THE CLEO PACKAGE (QQ-CLEO <--> IDPDG CODE TRANSFORMATION)
QQN=1
IDHEP(IHEP)=IDPDG(IDHW(IHEP))
QQK(1,1)=0
QQK(1,2)=QQLMAT(IDHEP(IHEP),1)
QQP(1,1)=SNGL(PHEP(1,IHEP))
QQP(1,2)=SNGL(PHEP(2,IHEP))
QQP(1,3)=SNGL(PHEP(3,IHEP))
QQP(1,5)=AMASS(QQK(1,2))
QQP(1,4)=SQRT(QQP(1,5)**2+QQP(1,1)**2+QQP(1,2)**2+QQP(1,3)**2)
C---LET QQ-CLEO DO THE JOB
QQNTRK=0
NVRTX=0
CALL DECADD(.FALSE.)
C---UPDATE THE HERWIG TABLE : LOOP OVER QQN-CLEO FINAL PARTICLES
DO 40 IIHEP=1,QQN
NHEP=NHEP+1
ISTHEP(NHEP)=198
IF(ITYPEV(IIHEP,2).GE.0) ISTHEP(NHEP)=1
IDHEP(NHEP)=QQLMAT(ITYPEV(IIHEP,1),2)
CALL HWUIDT(1,IDHEP(NHEP),IDHW(NHEP),NAME)
IF(IIHEP.EQ.1) THEN
ISTHEP(IHEP)=199
JDAHEP(1,IHEP)=NHEP
JDAHEP(2,IHEP)=NHEP
ISTHEP(NHEP)=199
NHEPHF=NHEP
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=IHEP
ELSE
JMOHEP(1,NHEP)=IPRNTV(IIHEP)+NHEPHF-1
JMOHEP(2,NHEP)=NHEPHF
ENDIF
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IF(NDAUTV(IIHEP).GT.0) THEN
JDAHEP(1,NHEP)=IDAUTV(IIHEP)+NHEPHF-1
JDAHEP(2,NHEP)=JDAHEP(1,NHEP)+NDAUTV(IIHEP)-1
ENDIF
PHEP(1,NHEP)=QQP(IIHEP,1)
PHEP(2,NHEP)=QQP(IIHEP,2)
PHEP(3,NHEP)=QQP(IIHEP,3)
PHEP(4,NHEP)=QQP(IIHEP,4)
PHEP(5,NHEP)=QQP(IIHEP,5)
VHEP(1,NHEP)=XVTX(IVPROD(IIHEP),1)
VHEP(2,NHEP)=XVTX(IVPROD(IIHEP),2)
VHEP(3,NHEP)=XVTX(IVPROD(IIHEP),3)
VHEP(4,NHEP)=0.
40 CONTINUE
END
CDECK ID>, HWDEUR.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWDEUR(IHEP)
C-----------------------------------------------------------------------
C INTERFACE TO EURODEC PACKAGE (LS 10/29/91)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,IIHEP,NHEPHF,IEUPDG,IPDGEU
CHARACTER*8 NAME
C---EURODEC COMMON'S : INITIAL INPUT
INTEGER EULUN0,EULUN1,EULUN2,EURUN,EUEVNT
CHARACTER*4 EUDATD,EUTIT
REAL AMINIE(12),EUWEI
COMMON/INPOUT/EULUN0,EULUN1,EULUN2
COMMON/FILNAM/EUDATD,EUTIT
COMMON/HVYINI/AMINIE
COMMON/RUNINF/EURUN,EUEVNT,EUWEI
C---EURODEC WORKING COMMON'S
INTEGER NPMAX,NTMAX
PARAMETER (NPMAX=18,NTMAX=2000)
INTEGER EUNP,EUIP(NPMAX),EUPHEL(NPMAX),EUTEIL,EUINDX(NTMAX),
& EUORIG(NTMAX),EUDCAY(NTMAX),EUTHEL(NTMAX)
REAL EUAPM(NPMAX),EUPCM(5,NPMAX),EUPVTX(3,NPMAX),EUPTEI(5,NTMAX),
& EUSECV(3,NTMAX)
COMMON/MOMGEN/EUNP,EUIP,EUAPM,EUPCM,EUPHEL,EUPVTX
COMMON/RESULT/EUTEIL,EUPTEI,EUINDX,EUORIG,EUDCAY,EUTHEL,EUSECV
C---EURODEC COMMON'S FOR DECAY PROPERTIES
INTEGER NGMAX,NCMAX
PARAMETER (NGMAX=400,NCMAX=9000)
INTEGER EUNPA,EUIPC(NGMAX),EUIPDG(NGMAX),EUIDP(NGMAX),
& EUCONV(NCMAX)
REAL EUPM(NGMAX),EUPLT(NGMAX)
COMMON/PCTABL/EUNPA,EUIPC,EUIPDG,EUPM,EUPLT,EUIDP
COMMON/CONVRT/EUCONV
C---
IF(FSTEVT) THEN
C---CHANGE HERE THE DEFAULT VALUES OF EURODEC COMMON'S
C
C---INITIALIZE EURODEC COMMON'S
CC CALL EUDCIN
C---INITIALIZE EURODEC
CALL EUDINI
ENDIF
C---CONSTRUCT THE HADRON FOR EURODEC FROM ID1,ID2
EUNP=1
IDHEP(IHEP)=IDPDG(IDHW(IHEP))
EUIP(1)=IPDGEU(IDHEP(IHEP))
EUAPM(1)=EUPM(EUCONV(IABS(EUIP(1))))
EUPCM(1,1)=SNGL(PHEP(1,IHEP))
EUPCM(2,1)=SNGL(PHEP(2,IHEP))
EUPCM(3,1)=SNGL(PHEP(3,IHEP))
EUPCM(5,1)=SQRT(EUPCM(1,1)**2+EUPCM(2,1)**2+EUPCM(3,1)**2)
EUPCM(4,1)=SQRT(EUPCM(5,1)**2+EUAPM(1)**2)
C NOT POLARIZED HADRONS
EUPHEL(1)=0
C HADRONS START FROM PRIMARY VERTEX
EUPVTX(1,1)=0.
EUPVTX(2,1)=0.
EUPVTX(3,1)=0.
C---LET EURODEC DO THE JOB
EUTEIL=0
CALL FRAGMT(1,1,0)
C---UPDATE THE HERWIG TABLE : LOOP OVER N-EURODEC FINAL PARTICLES
DO 40 IIHEP=1,EUTEIL
NHEP=NHEP+1
ISTHEP(NHEP)=198
IF(EUDCAY(IIHEP).EQ.0) ISTHEP(NHEP)=1
IDHEP(NHEP)=IEUPDG(EUINDX(IIHEP))
CALL HWUIDT(1,IDHEP(NHEP),IDHW(NHEP),NAME)
IF(IIHEP.EQ.1) THEN
ISTHEP(IHEP)=199
JDAHEP(1,IHEP)=NHEP
JDAHEP(2,IHEP)=NHEP
ISTHEP(NHEP)=199
NHEPHF=NHEP
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=IHEP
JDAHEP(1,NHEP)=EUDCAY(IIHEP)/10000+NHEPHF-1
JDAHEP(2,NHEP)=MOD(EUDCAY(IIHEP),10000)+NHEPHF-1
ELSE
JMOHEP(1,NHEP)=MOD(EUORIG(IIHEP),10000)+NHEPHF-1
JMOHEP(2,NHEP)=NHEPHF
JDAHEP(1,NHEP)=EUDCAY(IIHEP)/10000+NHEPHF-1
JDAHEP(2,NHEP)=MOD(EUDCAY(IIHEP),10000)+NHEPHF-1
ENDIF
PHEP(1,NHEP)=EUPTEI(1,IIHEP)
PHEP(2,NHEP)=EUPTEI(2,IIHEP)
PHEP(3,NHEP)=EUPTEI(3,IIHEP)
PHEP(4,NHEP)=EUPTEI(4,IIHEP)
PHEP(5,NHEP)=EUPTEI(5,IIHEP)
VHEP(1,NHEP)=EUSECV(1,IIHEP)
VHEP(2,NHEP)=EUSECV(2,IIHEP)
VHEP(3,NHEP)=EUSECV(3,IIHEP)
VHEP(4,NHEP)=0.
IF (IIHEP.GT.NTMAX) THEN
CALL HWWARN('HWDEUR',99)
GOTO 999
ENDIF
40 CONTINUE
999 RETURN
END
CDECK ID>, HWDFOR.
*CMZ :- -01/04/99 19.52.44 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWDFOR(P0,P1,P2,P3,P4)
C-----------------------------------------------------------------------
C Generates 4-body decay 0->1+2+3+4 using pure phase space
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,P0(5),P1(5),P2(5),P3(5),P4(5),B,C,AA,BB,
& CC,DD,EE,TT,S1,RS1,FF,S2,PP,QQ,RR,P1CM,P234(5),P2CM,P34(5),P3CM
INTEGER NTRY
EXTERNAL HWRGEN
B=P0(5)-P1(5)
C=P2(5)+P3(5)+P4(5)
IF (B.LT.C) THEN
CALL HWWARN('HWDFOR',100)
GOTO 999
ENDIF
AA=(P0(5)+P1(5))**2
BB=B**2
CC=C**2
DD=(P3(5)+P4(5))**2
EE=(P3(5)-P4(5))**2
TT=(B-C)*P0(5)**7/16
C Select squared masses S1 and S2 of 234 and 34 subsystems
NTRY=0
10 NTRY=NTRY+1
IF(NTRY.GT.NDETRY) THEN
CALL HWWARN('HWDFOR',101)
GOTO 999
ENDIF
S1=BB+HWRGEN(1)*(CC-BB)
RS1=SQRT(S1)
FF=(RS1-P2(5))**2
S2=DD+HWRGEN(2)*(FF-DD)
PP=(AA-S1)*(BB-S1)
QQ=((RS1+P2(5))**2-S2)*(FF-S2)/S1
RR=(S2-DD)*(S2-EE)/S2
IF (PP*QQ*RR*(FF-DD)**2.LT.TT*S1*S2*HWRGEN(3)**2) GOTO 10
C Do two body decays: 0-->1+234, 234-->2+34 and 34-->3+4
P1CM=SQRT(PP/4)/P0(5)
P234(5)=RS1
P2CM=SQRT(QQ/4)
P34(5)=SQRT(S2)
P3CM=SQRT(RR/4)
CALL HWDTWO(P0 ,P1,P234,P1CM,TWO,.TRUE.)
CALL HWDTWO(P234,P2,P34 ,P2CM,TWO,.TRUE.)
CALL HWDTWO(P34 ,P3,P4 ,P3CM,TWO,.TRUE.)
999 RETURN
END
CDECK ID>, HWDFIV.
*CMZ :- -01/04/99 19.52.44 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWDFIV(P0,P1,P2,P3,P4,P5)
C-----------------------------------------------------------------------
C Generates 5-body decay 0->1+2+3+4+5 using pure phase space
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,P0(5),P1(5),P2(5),P3(5),P4(5),P5(5),B,C,
& AA,BB,CC,DD,EE,FF,TT,S1,RS1,GG,S2,RS2,HH,S3,PP,QQ,RR,SS,P1CM,
& P2345(5),P2CM,P345(5),P3CM,P45(5),P4CM
INTEGER NTRY
EXTERNAL HWRGEN
B=P0(5)-P1(5)
C=P2(5)+P3(5)+P4(5)+P5(5)
IF (B.LT.C) THEN
CALL HWWARN('HWDFIV',100)
GOTO 999
ENDIF
AA=(P0(5)+P1(5))**2
BB=B**2
CC=C**2
DD=(P3(5)+P4(5)+P5(5))**2
EE=(P4(5)+P5(5))**2
FF=(P4(5)-P5(5))**2
TT=(B-C)*P0(5)**11/729
C Select squared masses S1, S2 and S3 of 2345, 345 and 45 subsystems
NTRY=0
10 NTRY=NTRY+1
IF(NTRY.GT.NDETRY) THEN
CALL HWWARN('HWDFIV',101)
GOTO 999
ENDIF
S1=BB+HWRGEN(1)*(CC-BB)
RS1=SQRT(S1)
GG=(RS1-P2(5))**2
S2=DD+HWRGEN(2)*(GG-DD)
RS2=SQRT(S2)
HH=(RS2-P3(5))**2
S3=EE+HWRGEN(3)*(HH-EE)
PP=(AA-S1)*(BB-S1)
QQ=((RS1+P2(5))**2-S2)*(GG-S2)/S1
RR=((RS2+P3(5))**2-S3)*(HH-S3)/S2
SS=(S3-EE)*(S3-FF)/S3
IF (PP*QQ*RR*SS*((GG-DD)*(HH-EE))**2.LT.TT*S1*S2*S3*HWRGEN(4)**2)
& GOTO 10
C Do two body decays: 0-->1+2345, 2345-->2+345, 345-->3+45 and 45-->4+5
P1CM=SQRT(PP/4)/P0(5)
P2345(5)=RS1
P2CM=SQRT(QQ/4)
P345(5)=RS2
P3CM=SQRT(RR/4)
P45(5)=SQRT(S3)
P4CM=SQRT(SS/4)
CALL HWDTWO(P0 ,P1,P2345,P1CM,TWO,.TRUE.)
CALL HWDTWO(P2345,P2,P345 ,P2CM,TWO,.TRUE.)
CALL HWDTWO(P345 ,P3,P45 ,P3CM,TWO,.TRUE.)
CALL HWDTWO(P45 ,P4,P5 ,P4CM,TWO,.TRUE.)
999 RETURN
END
CDECK ID>, HWDHAD.
*CMZ :- -26/04/91 11.11.54 by Peter Richardson
*-- Author : Ian Knowles, Bryan Webber & Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWDHAD
C-----------------------------------------------------------------------
C GENERATES DECAYS OF UNSTABLE HADRONS AND LEPTONS
C Modified for TAUOLA interface 16/10/01 PR
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/FFS/TB,BT
COMMON/SFF/IT1,IB1,IT2,IB2
DOUBLE PRECISION TB,BT
INTEGER IT1,IB1,IT2,IB2
DOUBLE PRECISION HWRGEN,HWULDO,RN,BF,COSANG,RSUM,DIST(4),VERTX(4),
& PMIX,WTMX,WTMX2,XS,DOT1,DOT2,HWDPWT,HWDWWT,HWDHWT,XXX,YYY
INTEGER IHEP,ID,MHEP,IDM,I,IDS,IM,MO,IPDG
LOGICAL STABLE
EXTERNAL HWRGEN,HWDPWT,HWDWWT,HWDHWT,HWULDO
IF (IERROR.NE.0) RETURN
DO 100 IHEP=1,NMXHEP
IF (IHEP.GT.NHEP) THEN
ISTAT=90
RETURN
ELSEIF (ISTHEP(IHEP).EQ.120 .AND.
& JDAHEP(1,IHEP).EQ.IHEP.AND.JDAHEP(2,IHEP).EQ.IHEP) THEN
C---COPY COLOUR SINGLET CMF
NHEP=NHEP+1
IF (NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWDHAD',100)
GOTO 999
ENDIF
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,NHEP))
IDHW(NHEP)=IDHW(IHEP)
IDHEP(NHEP)=IDHEP(IHEP)
ISTHEP(NHEP)=190
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=NHEP
JDAHEP(2,NHEP)=NHEP
JDAHEP(1,IHEP)=NHEP
JDAHEP(2,IHEP)=NHEP
ELSEIF (ISTHEP(IHEP).GE.190.AND.ISTHEP(IHEP).LE.193) THEN
C---FIRST CHECK FOR STABILITY
ID=IDHW(IHEP)
IF (RSTAB(ID)) THEN
ISTHEP(IHEP)=1
JDAHEP(1,IHEP)=0
JDAHEP(2,IHEP)=0
C---SPECIAL FOR GAUGE BOSON DECAY
IF (ID.GE.198.AND.ID.LE.200) CALL HWDBOS(IHEP)
C---SPECIAL FOR HIGGS BOSON DECAY
IF (ID.EQ.201) CALL HWDHIG(ZERO)
ELSE
C---UNSTABLE.
C Calculate position of decay vertex
IF (DKLTM(ID).EQ.ZERO) THEN
CALL HWVEQU(4,VHEP(1,IHEP),VERTX)
MHEP=IHEP
IDM=ID
ELSE
CALL HWUDKL(ID,PHEP(1,IHEP),DIST)
CALL HWVSUM(4,VHEP(1,IHEP),DIST,VERTX)
IF (MAXDKL) THEN
CALL HWDXLM(VERTX,STABLE)
IF (STABLE) THEN
ISTHEP(IHEP)=1
JDAHEP(1,IHEP)=0
JDAHEP(2,IHEP)=0
GOTO 100
ENDIF
ENDIF
IF (MIXING.AND.(ID.EQ.221.OR.ID.EQ.223.OR.
& ID.EQ.245.OR.ID.EQ.247)) THEN
C Select flavour of decaying b-meson allowing for flavour oscillation
IDS=MOD(ID,3)
XXX=XMRCT(IDS)*DIST(4)/PHEP(4,IHEP)
YYY=YMRCT(IDS)*DIST(4)/PHEP(4,IHEP)
IF (ABS(YYY).LT.10) THEN
PMIX=HALF*(ONE-COS(XXX)/COSH(YYY))
ELSE
PMIX=HALF
ENDIF
IF (HWRGEN(1).LE.PMIX) THEN
IF (ID.LE.223) THEN
IDM=ID+24
ELSE
IDM=ID-24
ENDIF
ELSE
IDM=ID
ENDIF
C Introduce a decaying neutral b-meson
IF (NHEP+1.GT.NMXHEP) THEN
CALL HWWARN('HWDHAD',101)
GOTO 999
ENDIF
MHEP=NHEP+1
ISTHEP(MHEP)=ISTHEP(IHEP)
ISTHEP(IHEP)=200
JDAHEP(1,IHEP)=MHEP
JDAHEP(2,IHEP)=MHEP
IDHW(MHEP)=IDM
IDHEP(MHEP)=IDPDG(IDM)
JMOHEP(1,MHEP)=IHEP
JMOHEP(2,MHEP)=JMOHEP(2,IHEP)
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,MHEP))
CALL HWVEQU(4,VERTX,VHEP(1,MHEP))
NHEP=NHEP+1
ELSE
MHEP=IHEP
IDM=ID
ENDIF
ENDIF
C Use CLEO/EURODEC packages for b-hadrons if requested
IF ((IDM.GE.221.AND.IDM.LE.231).OR.
& (IDM.GE.245.AND.IDM.LE.254)) THEN
IF (BDECAY.EQ.'CLEO') THEN
CALL HWDCLE(MHEP)
GOTO 100
ELSEIF (BDECAY.EQ.'EURO') THEN
CALL HWDEUR(MHEP)
GOTO 100
ENDIF
ENDIF
C Use TAUOLA package for tau decays if requested
IF((IDM.EQ.125.OR.IDM.EQ.131).AND.TAUDEC.EQ.'TAUOLA') THEN
CALL HWDTAU(1,MHEP,0.0D0)
GOTO 100
ENDIF
C Choose decay mode
ISTHEP(MHEP)=ISTHEP(MHEP)+5
RN=HWRGEN(2)
BF=0.
IM=LSTRT(IDM)
DO 10 I=1,NMODES(IDM)
BF=BF+BRFRAC(IM)
IF (BF.GE.RN) GOTO 20
10 IM=LNEXT(IM)
CALL HWWARN('HWDHAD',50)
GOTO 20
20 IF ((IDKPRD(1,IM).GE.1.AND.IDKPRD(1,IM).LE.13).OR.
& (IDKPRD(3,IM).GE.1.AND.IDKPRD(3,IM).LE.13)) THEN
C Partonic decay of a heavy-(b,c)-hadron, store details
NQDK=NQDK+1
IF (NQDK.GT.NMXQDK) THEN
CALL HWWARN('HWDHAD',102)
GOTO 999
ENDIF
LOCQ(NQDK)=MHEP
IMQDK(NQDK)=IM
CALL HWVEQU(4,VERTX,VTXQDK(1,NQDK))
GOTO 100
ELSE
C Exclusive decay, add decay products to event record
IF (NHEP+NPRODS(IM).GT.NMXHEP) THEN
CALL HWWARN('HWDHAD',103)
GOTO 999
ENDIF
JDAHEP(1,MHEP)=NHEP+1
DO 30 I=1,NPRODS(IM)
NHEP=NHEP+1
IDHW(NHEP)=IDKPRD(I,IM)
IDHEP(NHEP)=IDPDG(IDKPRD(I,IM))
ISTHEP(NHEP)=193
JMOHEP(1,NHEP)=MHEP
JMOHEP(2,NHEP)=JMOHEP(2,MHEP)
PHEP(5,NHEP)=RMASS(IDKPRD(I,IM))
30 CALL HWVEQU(4,VERTX,VHEP(1,NHEP))
JDAHEP(2,MHEP)=NHEP
ENDIF
C Next choose momenta:
IF (NPRODS(IM).EQ.1) THEN
C 1-body decay: K0(BR) --> K0S,K0L
CALL HWVEQU(4,PHEP(1,MHEP),PHEP(1,NHEP))
ELSEIF (NPRODS(IM).EQ.2) THEN
C 2-body decay
C---SPECIAL TREATMENT OF POLARIZED MESONS
COSANG=TWO
IF (ID.EQ.IDHW(JMOHEP(1,MHEP))) THEN
MO=JMOHEP(1,MHEP)
RSUM=0
DO 40 I=1,3
40 RSUM=RSUM+RHOHEP(I,MO)
IF (RSUM.GT.ZERO) THEN
RSUM=RSUM*HWRGEN(3)
IF (RSUM.LT.RHOHEP(1,MO)) THEN
C---(1+COSANG)**2
COSANG=MAX(HWRGEN(4),HWRGEN(5),HWRGEN(6))*TWO-ONE
ELSEIF (RSUM.LT.RHOHEP(1,MO)+RHOHEP(2,MO)) THEN
C---1-COSANG**2
COSANG=2*COS((ACOS(HWRGEN(7)*TWO-ONE)+PIFAC)/THREE)
ELSE
C---(1-COSANG)**2
COSANG=MIN(HWRGEN(8),HWRGEN(9),HWRGEN(10))*TWO-ONE
ENDIF
ENDIF
ENDIF
CALL HWDTWO(PHEP(1,MHEP),PHEP(1,NHEP-1),
& PHEP(1,NHEP),CMMOM(IM),COSANG,.FALSE.)
ELSEIF (NPRODS(IM).EQ.3) THEN
C 3-body decay
IF (NME(IM).EQ.100) THEN
C Use free massless (V-A)*(V-A) Matrix Element
CALL HWDTHR(PHEP(1,MHEP),PHEP(1,NHEP-1),PHEP(1,NHEP-2),
& PHEP(1,NHEP),HWDWWT)
ELSEIF (NME(IM).EQ.101) THEN
C Use bound massless (V-A)*(V-A) Matrix Element
WTMX=((PHEP(5,MHEP)-PHEP(5,NHEP))
& *(PHEP(5,MHEP)+PHEP(5,NHEP))
& +(PHEP(5,NHEP-1)-PHEP(5,NHEP-2))
& *(PHEP(5,NHEP-1)+PHEP(5,NHEP-2)))/TWO
WTMX2=WTMX**2
IPDG=ABS(IDHEP(MHEP))
XS=ONE-MAX(RMASS(MOD(IPDG/1000,10)),
& RMASS(MOD(IPDG/100,10)),RMASS(MOD(IPDG/10,10)))
& /(RMASS(MOD(IPDG/1000,10))+RMASS(MOD(IPDG/100,10))
& +RMASS(MOD(IPDG/10,10)))
50 CALL HWDTHR(PHEP(1,MHEP),PHEP(1,NHEP-1),PHEP(1,NHEP-2),
& PHEP(1,NHEP),HWDWWT)
DOT1=HWULDO(PHEP(1,MHEP),PHEP(1,NHEP-1))
DOT2=HWULDO(PHEP(1,MHEP),PHEP(1,NHEP-2))
IF (DOT1*(WTMX-DOT1-XS*DOT2).LT.HWRGEN(11)*WTMX2) GOTO 50
ELSE IF (NME(IM).EQ.200) THEN
C Use free massless ((V-A)*TB1+(V+A)*CT1)*((V-A)*TB2+(V+A)*CT2)) Matrix Element
C sort tan(beta)
IF((IDK(IM).EQ. 2).OR.(IDK(IM).EQ. 4).OR.
& (IDK(IM).EQ. 6).OR.(IDK(IM).EQ. 8).OR.
& (IDK(IM).EQ. 10).OR.(IDK(IM).EQ. 12).OR.
& (IDK(IM).EQ.122).OR.(IDK(IM).EQ.124).OR.
& (IDK(IM).EQ.126).OR.(IDK(IM).EQ.128).OR.
& (IDK(IM).EQ.130).OR.(IDK(IM).EQ.132))THEN
TB=TANB
ELSE
TB=1./TANB
END IF
IF((IDKPRD(1,IM).EQ. 2).OR.(IDKPRD(1,IM).EQ. 4).OR.
& (IDKPRD(1,IM).EQ. 6).OR.(IDKPRD(1,IM).EQ. 8).OR.
& (IDKPRD(1,IM).EQ. 10).OR.(IDKPRD(1,IM).EQ. 12).OR.
& (IDKPRD(1,IM).EQ.122).OR.(IDKPRD(1,IM).EQ.124).OR.
& (IDKPRD(1,IM).EQ.126).OR.(IDKPRD(1,IM).EQ.128).OR.
& (IDKPRD(1,IM).EQ.130).OR.(IDKPRD(1,IM).EQ.132))THEN
BT=TANB
ELSE
BT=1./TANB
END IF
IT1=IDK(IM)
IB1=IDKPRD(3,IM)
IT2=IDKPRD(1,IM)
IB2=IDKPRD(2,IM)
CALL HWDTHR(PHEP(1,MHEP),PHEP(1,NHEP),PHEP(1,NHEP-2),
& PHEP(1,NHEP-1),HWDHWT)
ELSE
CALL HWDTHR(PHEP(1,MHEP),PHEP(1,NHEP-2),PHEP(1,NHEP-1),
& PHEP(1,NHEP),HWDPWT)
ENDIF
ELSEIF (NPRODS(IM).EQ.4) THEN
C 4-body decay
CALL HWDFOR(PHEP(1,MHEP ),PHEP(1,NHEP-3),PHEP(1,NHEP-2),
& PHEP(1,NHEP-1),PHEP(1,NHEP))
IF(IERROR.NE.0) RETURN
ELSEIF (NPRODS(IM).EQ.5) THEN
C 5-body decay
CALL HWDFIV(PHEP(1,MHEP ),PHEP(1,NHEP-4),PHEP(1,NHEP-3),
& PHEP(1,NHEP-2),PHEP(1,NHEP-1),PHEP(1,NHEP))
IF(IERROR.NE.0) RETURN
ELSE
CALL HWWARN('HWDHAD',104)
GOTO 999
ENDIF
ENDIF
ENDIF
100 CONTINUE
C---MAY HAVE OVERFLOWED /HEPEVT/
CALL HWWARN('HWDHAD',105)
999 RETURN
END
CDECK ID>, HWDHGC.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWDHGC(TAU,FNREAL,FNIMAG)
C-----------------------------------------------------------------------
C CALCULATE THE COMPLEX FUNCTION F OF HHG eq 2.18
C FOR USE IN H-->GAMMGAMM DECAYS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION TAU,FNREAL,FNIMAG,FNLOG,FNSQR
IF (TAU.GT.ONE) THEN
FNREAL=(ASIN(1/SQRT(TAU)))**2
FNIMAG=0
ELSEIF (TAU.LT.ONE) THEN
FNSQR=SQRT(1-TAU)
FNLOG=LOG((1+FNSQR)/(1-FNSQR))
FNREAL=-0.25 * (FNLOG**2 - PIFAC**2)
FNIMAG= 0.5 * PIFAC*FNLOG
ELSE
FNREAL=0.25*PIFAC**2
FNIMAG=0
ENDIF
END
CDECK ID>, HWDHGF.
*CMZ :- -02/05/91 11.11.45 by Federico Carminati
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWDHGF(X,Y)
C-----------------------------------------------------------------------
C CALCULATE THE DOUBLE BREIT-WIGNER INTEGRAL
C X=(EMV/EMH)**2 , Y=EMV*GAMV/EMH**2
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWDHGF,X,Y,CHANGE,X1,X2,FAC1,FAC2,TH1,TH2,TH1HI,
& TH1LO,TH2HI,TH2LO,X2MAX,SQFAC
INTEGER NBIN,IBIN1,IBIN2
C CHANGE IS THE POINT WHERE DIRECT INTEGRATION BEGINS TO CONVERGE
C FASTER THAN STANDARD BREIT-WIGNER SUBSTITUTION
SAVE CHANGE,NBIN
DATA CHANGE,NBIN/0.425D0,25/
HWDHGF=0
IF (Y.LT.ZERO) RETURN
IF (X.GT.CHANGE) THEN
C---DIRECT INTEGRATION
FAC1=0.25 / NBIN
DO 200 IBIN1=1,NBIN
X1=(IBIN1-0.5) * FAC1
FAC2=( (1-SQRT(X1))**2-X1 ) / NBIN
DO 100 IBIN2=1,NBIN
X2=(IBIN2-0.5) * FAC2 + X1
SQFAC=1+X1**2+X2**2-2*(X1+X2+X1*X2)
IF (SQFAC.LT.ZERO) GOTO 100
HWDHGF=HWDHGF + 2.
& * ((1-X1-X2)**2+8*X1*X2)
& * SQRT(SQFAC)
& / ((X1-X)**2+Y**2) *Y
& / ((X2-X)**2+Y**2) *Y
& * FAC1*FAC2
100 CONTINUE
200 CONTINUE
ELSE
C---INTEGRATION USING TAN THETA SUBSTITUTIONS
TH1LO=ATAN((0-X)/Y)
TH1HI=ATAN((1-X)/Y)
FAC1=(TH1HI-TH1LO) / NBIN
DO 400 IBIN1=1,NBIN
TH1=(IBIN1-0.5) * FAC1 + TH1LO
X1=Y*TAN(TH1) + X
X2MAX=MIN(X1,(1-SQRT(X1))**2)
TH2LO=ATAN((0-X)/Y)
TH2HI=ATAN((X2MAX-X)/Y)
FAC2=(TH2HI-TH2LO) / NBIN
DO 300 IBIN2=1,NBIN
TH2=(IBIN2-0.5) * FAC2 + TH2LO
X2=Y*TAN(TH2) + X
SQFAC=1+X1**2+X2**2-2*(X1+X2+X1*X2)
IF (SQFAC.LT.ZERO) GOTO 300
HWDHGF=HWDHGF + 2.
& * ((1-X1-X2)**2+8*X1*X2)
& * SQRT(SQFAC)
& * FAC1 * FAC2
300 CONTINUE
400 CONTINUE
ENDIF
HWDHGF=HWDHGF/(PIFAC*PIFAC)
END
CDECK ID>, HWDHIG.
*CMZ :- -24/04/92 14.23.44 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWDHIG(GAMINP)
C-----------------------------------------------------------------------
C HIGGS DECAY ROUTINE
C A) FOR GAMinp=0 FIND AND DECAY HIGGS
C B) FOR GAMinp>0 CALCULATE TOTAL HIGGS WIDTH
C FOR EMH=GAMINP. STORE RESULT IN GAMINP.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWDHGF,HWRGEN,HWRUNI,HWUSQR,HWUPCM,GAMINP,EMH,
& EMF,COLFAC,ENF,K1,K0,BET0,BET1,GAM0,GAM1,SCLOG,CFAC,XF,EM,GAMLIM,
& GAM,XW,EMW,XZ,EMZ,YW,YZ,EMI,TAUT,TAUW,WIDHIG,VECDEC,EMB,GAMB,
& TMIN,TMAX1,EM1,TMAX2,EM2,X1,X2,PROB,PCM,SUMR,SUMI,TAUTR,TAUTI,
& TAUWR,TAUWI,GFACTR
INTEGER HWRINT,IHIG,I,IFERM,NLOOK,I1,I2,IPART,IMODE,IDEC,MMAX
LOGICAL HWRLOG
EXTERNAL HWDHGF,HWRGEN,HWRUNI,HWUSQR,HWUPCM,HWRINT,HWRLOG
SAVE GAM,EM,VECDEC
PARAMETER (NLOOK=100)
DIMENSION VECDEC(2,0:NLOOK)
EQUIVALENCE (EMW,RMASS(198)),(EMZ,RMASS(200))
SAVE GAMLIM
DATA GAMLIM,GAM,EM/10D0,2*0D0/
C---IF DECAY, FIND HIGGS (HWDHAD WILL HAVE GIVEN IT STATUS=1)
IF (GAMINP.EQ.ZERO) THEN
IHIG=0
DO 10 I=1,NHEP
10 IF (IHIG.EQ.0.AND.IDHW(I).EQ.201.AND.ISTHEP(I).EQ.1) IHIG=I
IF (IHIG.EQ.0) THEN
CALL HWWARN('HWDHIG',101)
GOTO 999
ENDIF
EMH=PHEP(5,IHIG)
IF (EMH.LE.ZERO) THEN
CALL HWWARN('HWDHIG',102)
GOTO 999
ENDIF
EMSCA=EMH
ELSE
EMH=GAMINP
IF (EMH.LE.ZERO) THEN
GAMINP=0
RETURN
ENDIF
ENDIF
C---CALCULATE BRANCHING FRACTIONS
C---FERMIONS
C---NLL CORRECTION TO QUARK DECAY RATE (HHG eq 2.6-9)
ENF=0
DO 1 I=1,6
1 IF (2*RMASS(I).LT.EMH) ENF=ENF+1
K1=5/PIFAC**2
K0=3/(4*PIFAC**2)
BET0=(11*CAFAC-2*ENF)/3
BET1=(34*CAFAC**2-(10*CAFAC+6*CFFAC)*ENF)/3
GAM0=-8
GAM1=-404./3+40*ENF/9
SCLOG=LOG(EMH**2/QCDLAM**2)
CFAC=1 + ( K1/K0 - 2*GAM0 + GAM0*BET1/BET0**2*LOG(SCLOG)
& + (GAM0*BET1-GAM1*BET0)/BET0**2) / (BET0*SCLOG)
DO 100 IFERM=1,9
IF (IFERM.LE.6) THEN
EMF=RMASS(IFERM)
XF=(EMF/EMH)**2
COLFAC=FLOAT(NCOLO)
IF (EMF.GT.QCDLAM)
& EMF=EMF*(LOG(EMH/QCDLAM)/LOG(EMF/QCDLAM))**(GAM0/(2*BET0))
ELSE
EMF=RMASS(107+IFERM*2)
XF=(EMF/EMH)**2
COLFAC=1
CFAC=1
ENDIF
IF (FOUR*XF.LT.ONE) THEN
GFACTR=ALPHEM/(8.*SWEIN*EMW**2)
BRHIG(IFERM)=COLFAC*GFACTR*EMH*EMF**2 * (1-4*XF)**1.5 * CFAC
ELSE
BRHIG(IFERM)=0
ENDIF
100 CONTINUE
C---W*W*/Z*Z*
IF (ABS(EM-EMH).GE.GAMLIM*GAM) THEN
C---OFF EDGE OF LOOK-UP TABLE
XW=(EMW/EMH)**2
XZ=(EMZ/EMH)**2
YW=EMW*GAMW/EMH**2
YZ=EMZ*GAMZ/EMH**2
BRHIG(10)=.50*GFACTR * EMH**3 * HWDHGF(XW,YW)
BRHIG(11)=.25*GFACTR * EMH**3 * HWDHGF(XZ,YZ)
ELSE
C---LOOK IT UP
EMI=((EMH-EM)/(GAM*GAMLIM)+1)*NLOOK/2.0
I1=INT(EMI)
I2=INT(EMI+1)
BRHIG(10)=.50*GFACTR * EMH**3 * ( VECDEC(1,I1)*(I2-EMI) +
& VECDEC(1,I2)*(EMI-I1) )
BRHIG(11)=.25*GFACTR * EMH**3 * ( VECDEC(2,I1)*(I2-EMI) +
& VECDEC(2,I2)*(EMI-I1) )
ENDIF
C---GAMMAGAMMA
TAUT=(2*RMASS(6)/EMH)**2
TAUW=(2*EMW/EMH)**2
CALL HWDHGC(TAUT,TAUTR,TAUTI)
CALL HWDHGC(TAUW,TAUWR,TAUWI)
SUMR=4./3*( - 2*TAUT*( 1 + (1-TAUT)*TAUTR ) ) * ENHANC(6)
& +(2 + 3*TAUW*( 1 + (2-TAUW)*TAUWR ) ) * ENHANC(10)
SUMI=4./3*( - 2*TAUT*( (1-TAUT)*TAUTI ) ) * ENHANC(6)
& +( 3*TAUW*( (2-TAUW)*TAUWI ) ) * ENHANC(10)
BRHIG(12)=GFACTR*.03125*(ALPHEM/PIFAC)**2
& *EMH**3 * (SUMR**2 + SUMI**2)
WIDHIG=0
DO 200 IPART=1, 12
IF (IPART.LT.12) BRHIG(IPART)=BRHIG(IPART)*ENHANC(IPART)**2
200 WIDHIG=WIDHIG+BRHIG(IPART)
IF (WIDHIG.EQ.ZERO) THEN
CALL HWWARN('HWDHIG',103)
GOTO 999
ENDIF
DO 300 IPART=1, 12
300 BRHIG(IPART)=BRHIG(IPART)/WIDHIG
IF (EM.NE.RMASS(201)) THEN
C---SET UP W*W*/Z*Z* LOOKUP TABLES
EM=EMH
GAM=WIDHIG
GAMLIM=MAX(GAMLIM,GAMMAX)
DO 400 I=0,NLOOK
EMH=(I*2.0/NLOOK-1)*GAM*GAMLIM+EM
XW=(EMW/EMH)**2
XZ=(EMZ/EMH)**2
YW=EMW*GAMW/EMH**2
YZ=EMZ*GAMZ/EMH**2
VECDEC(1,I)=HWDHGF(XW,YW)
VECDEC(2,I)=HWDHGF(XZ,YZ)
400 CONTINUE
EMH=EM
ENDIF
IF (GAMINP.GT.ZERO) THEN
GAMINP=WIDHIG
RETURN
ENDIF
C---SEE IF USER SPECIFIED A DECAY MODE
IMODE=MOD(ABS(IPROC),100)
C---IF NOT, CHOOSE ONE
IF (IMODE.LT.1.OR.IMODE.GT.12) THEN
MMAX=12
IF (IMODE.LT.1) MMAX=6
500 IMODE=HWRINT(1,MMAX)
IF (BRHIG(IMODE).LT.HWRGEN(0)) GOTO 500
ENDIF
C---SEE IF SPECIFIED DECAY IS POSSIBLE
IF (BRHIG(IMODE).EQ.ZERO) THEN
CALL HWWARN('HWDHIG',104)
GOTO 999
ENDIF
IF (IMODE.LE.6) THEN
IDEC=IMODE
ELSEIF (IMODE.LE.9) THEN
IDEC=107+IMODE*2
ELSEIF (IMODE.EQ.10) THEN
IDEC=198
ELSEIF (IMODE.EQ.11) THEN
IDEC=200
ELSEIF (IMODE.EQ.12) THEN
IDEC=59
ENDIF
C---STATUS, IDs AND POINTERS
ISTHEP(IHIG)=195
DO 600 I=1,2
ISTHEP(NHEP+I)=193
IDHW(NHEP+I)=IDEC
IDHEP(NHEP+I)=IDPDG(IDEC)
JDAHEP(I,IHIG)=NHEP+I
JMOHEP(1,NHEP+I)=IHIG
JMOHEP(2,NHEP+I)=NHEP+(3-I)
JDAHEP(2,NHEP+I)=NHEP+(3-I)
PHEP(5,NHEP+I)=RMASS(IDEC)
IDEC=IDEC+6
IF (IDEC.EQ.204) IDEC=199
IF (IDEC.EQ.206) IDEC=200
IF (IDEC.EQ. 65) IDEC= 59
600 CONTINUE
C---ALLOW W/Z TO BE OFF-SHELL
IF (IMODE.EQ.10.OR.IMODE.EQ.11) THEN
IF (IMODE.EQ.10) THEN
EMB=EMW
GAMB=GAMW
ELSE
EMB=EMZ
GAMB=GAMZ
ENDIF
C---STANDARD MASS DISTRIBUTION
700 TMIN=ATAN(-EMB/GAMB)
TMAX1=ATAN((EMH**2/EMB-EMB)/GAMB)
EM1=HWUSQR(EMB*(GAMB*TAN(HWRUNI(0,TMIN,TMAX1))+EMB))
TMAX2=ATAN(((EMH-EM1)**2/EMB-EMB)/GAMB)
EM2=HWUSQR(EMB*(GAMB*TAN(HWRUNI(0,TMIN,TMAX2))+EMB))
X1=(EM1/EMH)**2
X2=(EM2/EMH)**2
C---CORRECT MASS DISTRIBUTION
PROB=HWUSQR(1+X1**2+X2**2-2*X1-2*X2-2*X1*X2)
& * ((X1+X2-1)**2 + 8*X1*X2)
IF (.NOT.HWRLOG(PROB)) GOTO 700
C---CALCULATE SPIN DENSITY MATRIX
RHOHEP(1,NHEP+1)=4*X1*X2 / (8*X1*X2 + (X1+X2-1)**2)
RHOHEP(2,NHEP+1)=(X1+X2-1)**2 / (8*X1*X2 + (X1+X2-1)**2)
RHOHEP(3,NHEP+1)=RHOHEP(1,NHEP+1)
C---SYMMETRIZE DISTRIBUTIONS IN PARTICLES 1,2
IF (HWRLOG(HALF)) THEN
PHEP(5,NHEP+1)=EM1
PHEP(5,NHEP+2)=EM2
ELSE
PHEP(5,NHEP+1)=EM2
PHEP(5,NHEP+2)=EM1
ENDIF
ENDIF
C---DO DECAY
PCM=HWUPCM(EMH,PHEP(5,NHEP+1),PHEP(5,NHEP+2))
IF (PCM.LT.ZERO) THEN
CALL HWWARN('HWDHIG',105)
GOTO 999
ENDIF
CALL HWDTWO(PHEP(1,IHIG),PHEP(1,NHEP+1),PHEP(1,NHEP+2),
& PCM,TWO,.TRUE.)
NHEP=NHEP+2
C---IF QUARK DECAY, HADRONIZE
IF (IMODE.LE.6) THEN
ISTHEP(NHEP-1)=113
ISTHEP(NHEP)=114
CALL HWBGEN
CALL HWDHOB
CALL HWCFOR
CALL HWCDEC
C--MHS FIX 07/03/05 - VERTEX POSITION FOR DECAYS TO LEPTONS OR PHOTONS
ELSEIF (IMODE.LE.9.OR.IMODE.EQ.12) THEN
CALL HWVEQU(4,VTXPIP,VHEP(1,NHEP-1))
CALL HWVEQU(4,VTXPIP,VHEP(1,NHEP))
C--END FIX
ENDIF
999 RETURN
END
CDECK ID>, HWDHOB.
*CMZ :- -17/10/01 10:19:15 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHOB
C-----------------------------------------------------------------------
C Performs decays of heavy objects (heavy quarks & SUSY particles)
C MODIFIED TO INCLUDE R-PARITY VIOLATING SUSY PR 9/4/99
C MODIFIED TO CALL A NUMBER OF ROUTINES TO DO THE VARIOUS BITS OF
C THE PROCESS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION PW(5)
INTEGER IHEP,IS,ID,IM,KHEP,LHEP,MHEP,NPR,CLSAVE(2),NHEPST
LOGICAL FOUND
SAVE NHEPST
IF (IERROR.NE.0) RETURN
10 FOUND=.FALSE.
NHEPST = NHEP
CLSAVE(1) = 0
CLSAVE(2) = 0
DO 60 IHEP=1,NMXHEP
IS=ISTHEP(IHEP)
ID=IDHW(IHEP)
IF(SYSPIN.AND.NSPN.NE.0) CALL HWDSIN(CLSAVE)
IF (.NOT.RSTAB(ID).AND.(ID.EQ.6.OR.ID.EQ.12.OR.
& (ID.GE.203.AND.ID.LE.218).OR.ABS(IDPDG(ID)).GT.1000000).AND.
& ((IS.EQ.120.AND.JDAHEP(1,IHEP).EQ.IHEP).OR.
& IS.EQ.190.OR.(IS.GE.147.AND.IS.LE.151))) THEN
FOUND=.TRUE.
C--select the decay mode and enter the decay products in the event record
CALL HWDHO1(IHEP,ID,IM,NPR,LHEP,MHEP)
IF (IERROR.NE.0) RETURN
C--select the momenta of the decay products
CALL HWDHO2(IHEP,IM,NPR,MHEP,LHEP,KHEP,PW)
IF (IERROR.NE.0) RETURN
C--make the colour connections
CALL HWDHO3(ID,IM,NPR,MHEP,LHEP,KHEP,CLSAVE)
IF (IERROR.NE.0) RETURN
C--perform the parton-showers
CALL HWDHO4(IHEP,ID,IM,NPR,MHEP,LHEP,KHEP,PW)
IF (IERROR.NE.0) RETURN
ENDIF
C--perform the colour corrections for RPV
CALL HWDHO5(MHEP,LHEP,CLSAVE)
IF(IERROR.NE.0) RETURN
IF (IHEP.EQ.NHEP) GOTO 70
60 CONTINUE
70 IF(SYSPIN.AND.NHEP.NE.NHEPST) FOUND=.TRUE.
IF (FOUND) THEN
C--final check for colour disconnection
CALL HWDHO6
C Go back to check for further heavy decay products
GOTO 10
ENDIF
END
CDECK ID>, HWDHO1.
*CMZ :- -17/10/01 10:19:15 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHO1(IHEP,ID,IM,NPR,LHEP,MHEP)
C-----------------------------------------------------------------------
C Subroutine to perform the first part of the heavy object decays
C IE to select the decay mode
C was part of HWDHOB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUMBW,HWRGEN,SDKM,RN,BF
INTEGER IST(3),IHEP,ID,IM,I,JHEP,LHEP,MHEP,NPR,MTRY,NTRY,IS
EXTERNAL HWRGEN
SAVE IST
DATA IST/113,114,114/
IF (IERROR.NE.0) RETURN
IF(.NOT.RPARTY) THEN
NHEP = NHEP+1
ISTHEP(NHEP) = 3
IDHW(NHEP) = 20
IDHEP(NHEP) = 0
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,NHEP))
JMOHEP(1,NHEP)=JMOHEP(1,IHEP)
JMOHEP(2,NHEP)=JMOHEP(2,IHEP)
JDAHEP(1,NHEP)=JDAHEP(1,IHEP)
JDAHEP(2,NHEP)=JDAHEP(2,IHEP)
ENDIF
C Make a copy of decaying object
NHEP=NHEP+1
ISTHEP(NHEP)=155
IDHW(NHEP)=IDHW(IHEP)
IDHEP(NHEP)=IDHEP(IHEP)
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,NHEP))
JMOHEP(1,NHEP)=JMOHEP(1,IHEP)
JMOHEP(2,NHEP)=JMOHEP(2,IHEP)
C--copy the location of the particle in the spin block
IF(SYSPIN.AND.NSPN.NE.0) THEN
IF(ISNHEP(IHEP).EQ.0) THEN
IS = IHEP
MTRY = 0
5 MTRY = MTRY+1
IS = JMOHEP(1,IS)
IF(ISNHEP(IS).EQ.0.AND.MTRY.LE.NETRY) GOTO 5
IF(MTRY.GT.NETRY) THEN
CALL HWWARN('HWDHO1',102)
GOTO 999
ENDIF
ISNHEP(IHEP) = ISNHEP(IS)
ENDIF
ISNHEP(NHEP) = ISNHEP(JMOHEP(1,NHEP))
ENDIF
MTRY=0
15 MTRY=MTRY+1
C Select decay mode
RN=HWRGEN(0)
BF=0.
IM=LSTRT(ID)
DO 20 I=1,NMODES(ID)
BF=BF+BRFRAC(IM)
IF (BF.GE.RN) GOTO 30
20 IM=LNEXT(IM)
CALL HWWARN('HWDHO1',50)
30 IF (NHEP+5.GT.NMXHEP) THEN
CALL HWWARN('HWDHO1',100)
GOTO 999
ENDIF
NPR=NPRODS(IM)
JDAHEP(1,NHEP)=NHEP+1
JDAHEP(2,NHEP)=NHEP+NPR
C Reset colour pointers (if set)
JHEP=JMOHEP(2,IHEP)
IF (JHEP.GT.0) THEN
IF (JDAHEP(2,JHEP).EQ.IHEP) JDAHEP(2,JHEP)=NHEP
IF(.NOT.RPARTY.AND.ISTHEP(JHEP).EQ.155
& .AND.ABS(IDHEP(JHEP)).GT.1000000
& .AND.JDAHEP(2,JHEP-1).EQ.IHEP) JDAHEP(2,JHEP-1) = NHEP
ENDIF
JHEP=JDAHEP(2,IHEP)
IF (JHEP.GT.0) THEN
IF (JMOHEP(2,JHEP).EQ.IHEP) JMOHEP(2,JHEP)=NHEP
IF(.NOT.RPARTY.AND.ISTHEP(JHEP).EQ.155
& .AND.ABS(IDHEP(JHEP)).GT.1000000
& .AND.JMOHEP(2,JHEP-1).EQ.IHEP) JMOHEP(2,JHEP-1) = NHEP
ENDIF
C--Reset colour pointers if baryon number violated
IF(.NOT.RPARTY) THEN
DO JHEP=1,NHEP
IF(ISTHEP(JHEP).EQ.155
& .AND.ABS(IDHEP(JHEP)).GT.1000000.AND.
& JDAHEP(2,JHEP-1).EQ.IHEP) JDAHEP(2,JHEP-1)= NHEP
IF(JDAHEP(2,JHEP).EQ.IHEP) JDAHEP(2,JHEP)=NHEP
IF(JMOHEP(2,JHEP).EQ.IHEP) JMOHEP(2,JHEP)=NHEP
ENDDO
IF(HRDCOL(1,1).EQ.IHEP) HRDCOL(1,1)=NHEP
ENDIF
C Relabel original track
IF (ISTHEP(IHEP).NE.120) ISTHEP(IHEP)=3
JMOHEP(2,IHEP)=JMOHEP(1,IHEP)
JDAHEP(1,IHEP)=NHEP
JDAHEP(2,IHEP)=NHEP
C Label decay products and choose masses
LHEP=NHEP
MHEP=LHEP+1
NTRY=0
35 NTRY=NTRY+1
SDKM=PHEP(5,NHEP)
DO 40 I=1,NPR
NHEP=NHEP+1
IDHW(NHEP)=IDKPRD(I,IM)
IDHEP(NHEP)=IDPDG(IDKPRD(I,IM))
ISTHEP(NHEP)=IST(I)
JMOHEP(1,NHEP)=LHEP
JDAHEP(1,NHEP)=0
PHEP(5,NHEP)=HWUMBW(IDKPRD(I,IM))
40 SDKM=SDKM-PHEP(5,NHEP)
IF (SDKM.LT.ZERO) THEN
NHEP=NHEP-NPR
IF (NTRY.LE.NETRY) GO TO 35
CALL HWWARN('HWDHO1',1)
IF (MTRY.LE.NETRY) GO TO 15
CALL HWWARN('HWDHO1',101)
GOTO 999
ENDIF
C Assign production vertices to decay products
CALL HWUDKL(ID,PHEP(1,IHEP),VHEP(1,MHEP))
CALL HWVSUM(4,VHEP(1,IHEP),VHEP(1,MHEP),VHEP(1,MHEP))
CALL HWVEQU(4,VHEP(1,MHEP),VHEP(1,NHEP))
999 RETURN
END
CDECK ID>, HWDH02.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHO2(IHEP,IM,NPR,MHEP,LHEP,KHEP,PW)
C-----------------------------------------------------------------------
C Subroutine to perform the second part of the heavy object decays
C IE generate the kinematics for the decay
C was part of HWDHOB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/FFS/TB,BT
COMMON/SFF/IT1,IB1,IT2,IB2
DOUBLE PRECISION TB,BT
INTEGER IT1,IB1,IT2,IB2,ISP
DOUBLE PRECISION GAMHPM
DOUBLE PRECISION HWUPCM,HWRGEN,PCM,
& EMMX,EMWSQ,GMWSQ,EMLIM,PW(5),EMTST,HWDPWT,HWDWWT,HWULDO,HWDHWT
DOUBLE COMPLEX RHOIN(2,2,2)
INTEGER IHEP,IM,KHEP,LHEP,MHEP,NPR,RHEP
EXTERNAL HWRGEN,HWDPWT,HWDWWT,HWDHWT
SAVE RHOIN
DATA RHOIN/(1.0D0,0.0D0),(0.0D0,0.0D0),
& (0.0D0,0.0D0),(0.0D0,0.0D0),
& (0.5D0,0.0D0),(0.0D0,0.0D0),
& (0.0D0,0.0D0),(0.5D0,0.0D0)/
ISP = INT(2*RSPIN(IDHW(IHEP)))+1
IF (IERROR.NE.0) RETURN
IF (NPR.EQ.2) THEN
C Two body decay: LHEP -> MHEP + NHEP
IF(NME(IM).GT.20000.AND.NME(IM).LT.30000) THEN
C--generate a two body decay to a gauge boson as a three body decay
CALL HWDSM3(2,IHEP,MHEP,NHEP,0,NME(IM)-20000,RHOIN(1,1,ISP),1)
C--generate a two body decay of a Higgs to two gauge bosons
ELSEIF(NME(IM).GT.40000.AND.NME(IM).LT.50000) THEN
CALL HWDSM4(1,IHEP,MHEP,NHEP,NME(IM)-40000)
C--if spin correlations call the routine to set-up the matrix element
ELSEIF(SYSPIN.AND.NME(IM).GE.30000.AND.NME(IM).LE.40000) THEN
CALL HWDSM2(IHEP,MHEP,NHEP,NME(IM)-30000,RHOIN(1,1,ISP),1)
ELSE
PCM=HWUPCM(PHEP(5,IHEP),PHEP(5,MHEP),PHEP(5,NHEP))
CALL HWDTWO(PHEP(1,IHEP),PHEP(1,MHEP),
& PHEP(1,NHEP),PCM,TWO,.FALSE.)
ENDIF
ELSEIF (NPR.EQ.3) THEN
C Three body decay: LHEP -> KHEP + MHEP + NHEP
KHEP=MHEP
MHEP=MHEP+1
C Provisional colour self-connection of KHEP
JMOHEP(2,KHEP)=KHEP
JDAHEP(2,KHEP)=KHEP
IF (NME(IM).EQ.100) THEN
C Generate decay momenta using full (V-A)*(V-A) matrix element
EMMX=PHEP(5,IHEP)-PHEP(5,NHEP)
EMWSQ=RMASS(198)**2
GMWSQ=(RMASS(198)*GAMW)**2
EMLIM=GMWSQ
IF (EMMX.LT.RMASS(198)) EMLIM=EMLIM+(EMWSQ-EMMX**2)**2
50 CALL HWDTHR(PHEP(1,IHEP),PHEP(1,MHEP),
& PHEP(1,KHEP),PHEP(1,NHEP),HWDWWT)
CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
PW(5)=HWULDO(PW,PW)
EMTST=(EMWSQ-PW(5))**2
IF ((EMTST+GMWSQ)*HWRGEN(1).GT.EMLIM) GOTO 50
PW(5)=SQRT(PW(5))
C Assign production vertices to 1 and 2
CALL HWUDKL(198,PW,VHEP(1,KHEP))
CALL HWVSUM(4,VHEP(1,NHEP),VHEP(1,KHEP),VHEP(1,KHEP))
ELSE IF (NME(IM).EQ.200) THEN
C Generate decay momenta using full
C ((V-A)*TB1+(V+A)*CT1)*((V-A)*TB2+(V+A)*CT2)) matrix element
GAMHPM=RMASS(206)/DKLTM(206)
C sort tan(beta)
IF((IDK(IM).EQ. 2).OR.(IDK(IM).EQ. 4).OR.
& (IDK(IM).EQ. 6).OR.(IDK(IM).EQ. 8).OR.
& (IDK(IM).EQ. 10).OR.(IDK(IM).EQ. 12).OR.
& (IDK(IM).EQ.122).OR.(IDK(IM).EQ.124).OR.
& (IDK(IM).EQ.126).OR.(IDK(IM).EQ.128).OR.
& (IDK(IM).EQ.130).OR.(IDK(IM).EQ.132))THEN
TB=TANB
ELSE
TB=1./TANB
END IF
IF((IDKPRD(1,IM).EQ. 2).OR.(IDKPRD(1,IM).EQ. 4).OR.
& (IDKPRD(1,IM).EQ. 6).OR.(IDKPRD(1,IM).EQ. 8).OR.
& (IDKPRD(1,IM).EQ. 10).OR.(IDKPRD(1,IM).EQ. 12).OR.
& (IDKPRD(1,IM).EQ.122).OR.(IDKPRD(1,IM).EQ.124).OR.
& (IDKPRD(1,IM).EQ.126).OR.(IDKPRD(1,IM).EQ.128).OR.
& (IDKPRD(1,IM).EQ.130).OR.(IDKPRD(1,IM).EQ.132))THEN
BT=TANB
ELSE
BT=1./TANB
END IF
IT1=IDK(IM)
IB1=IDKPRD(3,IM)
IT2=IDKPRD(1,IM)
IB2=IDKPRD(2,IM)
EMMX=PHEP(5,IHEP)-PHEP(5,NHEP)
EMWSQ=RMASS(206)**2
GMWSQ=(RMASS(206)*GAMHPM)**2
EMLIM=GMWSQ
IF (EMMX.LT.RMASS(206)) EMLIM=EMLIM+(EMWSQ-EMMX**2)**2
55 CALL HWDTHR(PHEP(1,IHEP),PHEP(1,NHEP),
& PHEP(1,KHEP),PHEP(1,MHEP),HWDHWT)
CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
PW(5)=HWULDO(PW,PW)
EMTST=(EMWSQ-PW(5))**2
IF ((EMTST+GMWSQ)*HWRGEN(2).GT.EMLIM) GOTO 55
PW(5)=SQRT(PW(5))
C Assign production vertices to 1 and 2
CALL HWUDKL(206,PW,VHEP(1,KHEP))
CALL HWVSUM(4,VHEP(1,NHEP),VHEP(1,KHEP),VHEP(1,KHEP))
ELSEIF(NME(IM).EQ.300) THEN
C Generate momenta using 3-body RPV matrix element
CALL HWDRME(LHEP,KHEP)
C--Three body SUSY decay
ELSEIF(NME(IM).GE.10000.AND.NME(IM).LT.20000) THEN
CALL HWDSM3(3,IHEP,MHEP,KHEP,NHEP,NME(IM)-10000,
& RHOIN(1,1,ISP),1)
C--special for top decay
IF(ABS(IDHEP(IHEP)).EQ.6) THEN
CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
CALL HWUMAS(PW)
ENDIF
ELSE
C Three body phase space decay
CALL HWDTHR(PHEP(1,IHEP),PHEP(1,MHEP),
& PHEP(1,KHEP),PHEP(1,NHEP),HWDPWT)
ENDIF
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,MHEP))
ELSEIF(NPR.EQ.4) THEN
C Four body decay: LHEP -> KHEP + RHEP + MHEP + NHEP
KHEP = MHEP
RHEP = MHEP+1
MHEP = MHEP+2
ISTHEP(NHEP) = 114
C Provisional colour connections of KHEP and RHEP
JMOHEP(2,KHEP)=RHEP
JDAHEP(2,KHEP)=RHEP
JMOHEP(2,RHEP)=KHEP
JDAHEP(2,RHEP)=KHEP
C Four body phase space decay
CALL HWDFOR(PHEP(1,IHEP),PHEP(1,KHEP),PHEP(1,RHEP),
& PHEP(1,MHEP),PHEP(1,NHEP))
IF(IERROR.NE.0) RETURN
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,RHEP))
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,MHEP))
ELSE
CALL HWWARN('HWDHO2',100)
ENDIF
END
CDECK ID>, HWDHO3.
*CMZ :- -17/10/01 10:19:15 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHO3(ID,IM,NPR,MHEP,LHEP,KHEP,CLSAVE)
C-----------------------------------------------------------------------
C Subroutine to perform the third part of the heavy object decays
C IE setup the colour connections
C was part of HWDHOB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID,IM,KHEP,LHEP,MHEP,NPR,CLSAVE(2)
IF (IERROR.NE.0) RETURN
C Colour connections
IF (ID.EQ.6.OR.ID.EQ.12.OR.(ID.GE.209.AND.ID.LE.212)
& .OR.(ID.GE.215.AND.ID.LE.218)) THEN
IF ((NPR.EQ.3.AND.NME(IM).EQ.100).OR.
& ((SYSPIN.OR.THREEB).AND.NPR.EQ.3.AND.
& NME(IM).GE.10000.AND.NME(IM).LE.20000)) THEN
C usual heavy quark decay
JMOHEP(2,KHEP)=MHEP
JDAHEP(2,KHEP)=MHEP
JMOHEP(2,MHEP)=KHEP
JDAHEP(2,MHEP)=KHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=LHEP
ELSEIF (ABS(IDHEP(MHEP)).EQ.37) THEN
C heavy quark to charged Higgs 2->2
JMOHEP(2,MHEP)=MHEP
JDAHEP(2,MHEP)=MHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=LHEP
ELSEIF (ABS(IDHEP(NHEP)).EQ.37) THEN
C heavy quark to charged Higgs 2->2
JMOHEP(2,MHEP)=LHEP
JDAHEP(2,MHEP)=LHEP
JMOHEP(2,NHEP)=NHEP
JDAHEP(2,NHEP)=NHEP
ELSE IF (NPR.EQ.3.AND.NME(IM).EQ.200) THEN
C heavy quark to charged Higgs 2->3
JMOHEP(2,KHEP)=MHEP
JDAHEP(2,KHEP)=MHEP
JMOHEP(2,MHEP)=KHEP
JDAHEP(2,MHEP)=KHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=LHEP
ELSE
CALL HWWARN('HWDHO3',100)
GOTO 999
ENDIF
ELSE
IF(.NOT.RPARTY.AND.
& ((NPR.EQ.2.AND.ID.GE.401.AND.ID.LT.448.AND.
& IDHW(MHEP).LE.132.AND.IDHW(NHEP).LE.132)
& .OR.(NPR.EQ.3.AND.ID.GE.449.AND.ID.LE.457.AND.
& IDHW(MHEP).LE.132.AND.IDHW(NHEP).LE.132.AND.
& IDHW(MHEP-1).LE.132))) THEN
C R-parity violating SUSY decays
IF(NPR.EQ.2) THEN
C--Rparity slepton colour connections
IF(ID.GE.425.AND.ID.LE.448) THEN
IF(IDHW(MHEP).GT.12) THEN
JMOHEP(2,MHEP) = MHEP
JDAHEP(2,MHEP) = MHEP
JMOHEP(2,NHEP) = NHEP
JDAHEP(2,NHEP) = NHEP
ELSE
JMOHEP(2,MHEP) = NHEP
JDAHEP(2,MHEP) = NHEP
JMOHEP(2,NHEP) = MHEP
JDAHEP(2,NHEP) = MHEP
ENDIF
C--Rparity squark colour connections
ELSE
IF(IDHEP(LHEP).GT.0) THEN
C--LQD decay colour connections
IF(IDHW(MHEP).GT.12) THEN
JMOHEP(2,MHEP) = MHEP
JDAHEP(2,MHEP) = MHEP
JMOHEP(2,NHEP) = LHEP
JDAHEP(2,NHEP) = LHEP
ELSE
C--UDD decay colour connections
HVFCEN = .TRUE.
CALL HWDRCL(LHEP,MHEP,CLSAVE)
ENDIF
ELSE
C--Antisquark connections
IF(IDHW(MHEP).GT.12) THEN
JMOHEP(2,MHEP) = MHEP
JDAHEP(2,MHEP) = MHEP
JMOHEP(2,NHEP) = LHEP
JDAHEP(2,NHEP) = LHEP
ELSE
HVFCEN = .TRUE.
CALL HWDRCL(LHEP,MHEP,CLSAVE)
ENDIF
ENDIF
ENDIF
ELSE
IF(ID.GE.450.AND.ID.LE.457) THEN
C--Rparity Neutralino/Chargino colour connection
IF(IDHW(MHEP-1).LE.12.AND.IDHW(MHEP).LE.12.
& AND.IDHW(NHEP).LE.12) THEN
HVFCEN = .TRUE.
CALL HWDRCL(LHEP,MHEP,CLSAVE)
ELSE
JMOHEP(2,MHEP) = NHEP
JDAHEP(2,MHEP) = NHEP
JMOHEP(2,NHEP) = MHEP
JDAHEP(2,NHEP) = MHEP
ENDIF
C--Rparity gluino colour connections
ELSEIF(ID.EQ.449) THEN
IF(IDHW(MHEP-1).LE.12.AND.IDHW(MHEP).LE.12.
& AND.IDHW(NHEP).LE.12) THEN
HVFCEN = .TRUE.
CALL HWDRCL(LHEP,MHEP,CLSAVE)
C--Now the lepton number violating decay
ELSE
IF(IDHW(MHEP).LE.6) THEN
JMOHEP(2,MHEP) = LHEP
JDAHEP(2,MHEP) = NHEP
JMOHEP(2,NHEP) = MHEP
JDAHEP(2,NHEP) = LHEP
ELSE
JMOHEP(2,MHEP) = NHEP
JDAHEP(2,MHEP) = LHEP
JMOHEP(2,NHEP) = LHEP
JDAHEP(2,NHEP) = MHEP
ENDIF
ENDIF
ELSE
CALL HWWARN('HWDHO3',101)
GOTO 999
ENDIF
ENDIF
ELSE
C Normal SUSY decays
IF (ID.LE.448.AND.ID.GT.207) THEN
C Squark (or slepton)
IF (IDHW(MHEP).EQ.449) THEN
IF (IDHEP(LHEP).GT.0) THEN
JMOHEP(2,MHEP)=LHEP
JDAHEP(2,MHEP)=NHEP
JMOHEP(2,NHEP)=MHEP
JDAHEP(2,NHEP)=LHEP
ELSE
JMOHEP(2,MHEP)=NHEP
JDAHEP(2,MHEP)=LHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=MHEP
ENDIF
ELSE
IF(NPR.EQ.3.AND.IDHW(MHEP).LE.12) THEN
JMOHEP(2,MHEP)=NHEP
JDAHEP(2,MHEP)=NHEP
JMOHEP(2,NHEP)=MHEP
JDAHEP(2,NHEP)=MHEP
ELSE
JMOHEP(2,MHEP)=MHEP
JDAHEP(2,MHEP)=MHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=LHEP
ENDIF
ENDIF
ELSEIF (ID.EQ.449) THEN
C Gluino
IF (IDHW(NHEP).EQ.13) THEN
JMOHEP(2,MHEP)=MHEP
JDAHEP(2,MHEP)=MHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=LHEP
ELSEIF (IDHEP(MHEP).GT.0) THEN
JMOHEP(2,MHEP)=LHEP
JDAHEP(2,MHEP)=NHEP
JMOHEP(2,NHEP)=MHEP
JDAHEP(2,NHEP)=LHEP
ELSE
JMOHEP(2,MHEP)=NHEP
JDAHEP(2,MHEP)=LHEP
JMOHEP(2,NHEP)=LHEP
JDAHEP(2,NHEP)=MHEP
ENDIF
ELSE
C Gaugino or Higgs
JMOHEP(2,MHEP)=NHEP
JDAHEP(2,MHEP)=NHEP
JMOHEP(2,NHEP)=MHEP
JDAHEP(2,NHEP)=MHEP
ENDIF
ENDIF
ENDIF
999 RETURN
END
CDECK ID>, HWDHO4.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHO4(IHEP,ID,IM,NPR,MHEP,LHEP,KHEP,PW)
C-----------------------------------------------------------------------
C Subroutine to perform the fourth part of the heavy object decays
C IE parton-showers with special treatment for top
C was part of HWDHOB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION PW(5),PDW(5,3)
INTEGER IHEP,ID,IM,I,KHEP,LHEP,MHEP,NPR,NTRY,WHEP,SHEP
DOUBLE COMPLEX RHOIN(2,2)
SAVE RHOIN
DATA RHOIN/(0.5D0,0.0D0),(0.0D0,0.0D0),
& (0.0D0,0.0D0),(0.5D0,0.0D0)/
IF (IERROR.NE.0) RETURN
SHEP = NHEP
C---SPECIAL CASE FOR THREE-BODY TOP DECAYS:
C RELABEL THEM AS TWO TWO-BODY DECAYS FOR PARTON SHOWERING
IF ((ID.EQ.6.OR.ID.EQ.12).AND.NPR.EQ.3.AND.
& (NME(IM).EQ.100.OR.NME(IM).EQ.200.OR.
& (NME(IM).GT.10000.AND.NME(IM).LE.20000.AND.
& (SYSPIN.OR.THREEB)))) THEN
C---STORE W/H DECAY PRODUCTS
CALL HWVEQU(10,PHEP(1,KHEP),PDW)
C---BOOST THEM INTO W/H REST FRAME
CALL HWULOF(PW,PDW(1,1),PDW(1,3))
C---REPLACE THEM BY W/H
CALL HWVEQU(5,PW,PHEP(1,KHEP))
WHEP=KHEP
IF (NME(IM).EQ.100.OR.(NME(IM).GT.10000.AND.
& NME(IM).LE.20000.AND.(SYSPIN.OR.THREEB)))IDHW(KHEP)=198
IF((NME(IM).EQ.100.OR.(NME(IM).GT.10000.AND.
& NME(IM).LE.20000.AND.(SYSPIN.OR.THREEB))).AND.(ID.EQ.12))
& IDHW(KHEP)=199
IF (NME(IM).EQ.200)IDHW(KHEP)=206
IF((NME(IM).EQ.200).AND.(ID.EQ.12))IDHW(KHEP)=207
IDHEP(KHEP)=IDPDG(IDHW(KHEP))
JMOHEP(2,KHEP)=KHEP
JDAHEP(2,KHEP)=KHEP
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,KHEP))
C---AND MOVE B UP
CALL HWVEQU(5,PHEP(1,NHEP),PHEP(1,MHEP))
IDHW(MHEP)=IDHW(NHEP)
IDHEP(MHEP)=IDHEP(NHEP)
JDAHEP(2,LHEP)=MHEP
JMOHEP(2,MHEP)=JMOHEP(2,NHEP)
JDAHEP(2,MHEP)=JDAHEP(2,NHEP)
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,MHEP))
NHEP=MHEP
C---DO PARTON SHOWER
EMSCA=PHEP(5,IHEP)
CALL HWBGEN
IF (IERROR.NE.0) RETURN
C---FIND BOOSTED W/H MOMENTUM
NTRY=0
41 NTRY=NTRY+1
IF (NTRY.GT.NHEP.OR.WHEP.LE.0.OR.WHEP.GT.NHEP) THEN
CALL HWWARN('HWDHO4',100)
GOTO 999
ENDIF
WHEP=JDAHEP(1,WHEP)
IF (ISTHEP(WHEP).NE.190) GOTO 41
C---AND HENCE ITS CHILDRENS MOMENTA
CALL HWULOB(PHEP(1,WHEP),PDW(1,3),PHEP(1,NHEP+1))
CALL HWVDIF(4,PHEP(1,WHEP),PHEP(1,NHEP+1),PHEP(1,NHEP+2))
PHEP(5,NHEP+2)=PDW(5,2)
C---LABEL THEM
ISTHEP(WHEP)=195
DO 51 I=1,2
IDHW(NHEP+I)=IDKPRD(I,IM)
IDHEP(NHEP+I)=IDPDG(IDHW(NHEP+I))
ISTHEP(NHEP+I)=112+I
JDAHEP(I,WHEP)=NHEP+I
JMOHEP(1,NHEP+I)=WHEP
JMOHEP(2,NHEP+I)=NHEP+3-I
JDAHEP(2,NHEP+I)=NHEP+3-I
51 CONTINUE
NHEP=NHEP+2
C---ASSIGN PRODUCTION VERTICES TO 1 AND 2
IF(NME(IM).EQ.100)CALL HWUDKL(198,PW,VHEP(1,NHEP))
IF(NME(IM).EQ.200)CALL HWUDKL(206,PW,VHEP(1,NHEP))
CALL HWVSUM(4,VHEP(1,WHEP),VHEP(1,NHEP),VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-1))
C---DO PARTON SHOWERS
EMSCA=PW(5)
C--modification to use photos in top decays
IF(ITOPRD.EQ.1) CALL HWPHTP(WHEP)
C--end of modification
CALL HWBGEN
IF (IERROR.NE.0) RETURN
ELSE
C Do parton showers
EMSCA=PHEP(5,IHEP)
CALL HWBGEN
IF (IERROR.NE.0) RETURN
C--special for gauge boson decay modes of gauginos and four body higgs
C--call routine to add decay products and generate parton shower
IF(NME(IM).GT.20000.AND.NME(IM).LT.30000) THEN
CALL HWDSM3(-1,IHEP,MHEP,SHEP,0,NME(IM)-20000,RHOIN,
& ISNHEP(IHEP))
ELSEIF(NME(IM).GT.40000.AND.NME(IM).LT.50000) THEN
CALL HWDSM4(2,IHEP,MHEP,SHEP,NME(IM)-40000)
ENDIF
IF (IERROR.NE.0) RETURN
ENDIF
999 RETURN
END
CDECK ID>, HWDHO5.
*CMZ :- -17/10/01 10:19:15 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHO5(MHEP,LHEP,CLSAVE)
C-----------------------------------------------------------------------
C Subroutine to perform the fifth part of the heavy object decays
C IE sort out RPV colour connections
C was part of HWDHOB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID,LHEP,MHEP,IDM,IDM2,THEP,CLSAVE(2)
IF (IERROR.NE.0) RETURN
C--New to correct colour connections in Rslash
IF(CLSAVE(1).NE.0) THEN
THEP = MHEP+1
ID = IDHW(CLSAVE(1))
IDM = IDHW(JMOHEP(1,CLSAVE(1)))
IDM2 = IDHW(LHEP)
IF(IDM.EQ.15) ID=IDHW(JMOHEP(1,JMOHEP(1,CLSAVE(1))))
IF((ID.LE.6.AND.((IDM.GE.419.AND.IDM.LE.424).OR.IDM.EQ.411.OR.
& IDM.EQ.412).
& AND.((IDM2.GE.413.AND.IDM2.LE.418)
& .OR.IDM2.EQ.449).OR.IDM2.EQ.405.OR.IDM2.EQ.406)
& .OR.(ID.LE.6.AND.IDM.EQ.449.AND.
& (((IDM2.GE.413.AND.IDM2.LE.418).OR.IDM2.EQ.405.OR.IDM2.EQ.406)
& .OR.IDM2.EQ.449)).OR.
& (IDM.EQ.15.AND.ID.LE.12.AND.ID.GE.7.AND.((IDM2.GE.413.AND.
& IDM2.LE.418).OR.IDM2.EQ.449.OR.IDM2.
& EQ.405.OR.IDM2.EQ.406))) THEN
IF(JMOHEP(2,CLSAVE(1)).EQ.MHEP) THEN
IF(IDHW(CLSAVE(1)).NE.13.AND.IDHW(CLSAVE(1)).NE.449)
& JMOHEP(2,CLSAVE(2)) = THEP
JDAHEP(2,MHEP) = CLSAVE(1)
JDAHEP(2,THEP) = CLSAVE(2)
ELSE
IF(IDHW(CLSAVE(1)).NE.13.AND.IDHW(CLSAVE(1)).NE.449)
& JMOHEP(2,CLSAVE(2)) = MHEP
JDAHEP(2,MHEP) = CLSAVE(2)
JDAHEP(2,THEP) = CLSAVE(1)
ENDIF
ELSEIF((ID.GT.6.AND.ID.LE.12.
& AND.((IDM.GE.413.AND.IDM.LE.418).OR.IDM.EQ.405.OR.
& IDM.EQ.406).AND.
& ((IDM2.GE.419.AND.IDM2.LE.424).OR.IDM2.EQ.449.OR.
& IDM2.EQ.411.OR.IDM2.EQ.412)).OR.
& (ID.GT.6.AND.ID.LE.12.AND.IDM.EQ.449.
& AND.((IDM2.GE.419.AND.IDM2.LE.424).OR.IDM2.EQ.449.OR.
& IDM2.EQ.411.OR.IDM2.EQ.412)).OR.
& (IDM.EQ.15.AND.ID.LE.6.AND.((IDM2.GE.419.AND.
& IDM2.LE.424).OR.IDM2.EQ.449.OR.IDM2.EQ.411.OR.
& IDM2.EQ.412))) THEN
IF(JDAHEP(2,CLSAVE(1)).EQ.MHEP) THEN
JDAHEP(2,CLSAVE(2))=THEP
JMOHEP(2,MHEP)=CLSAVE(1)
JMOHEP(2,THEP)=CLSAVE(2)
ELSE
JDAHEP(2,CLSAVE(2))=MHEP
JMOHEP(2,MHEP)=CLSAVE(2)
JMOHEP(2,THEP)=CLSAVE(1)
ENDIF
ENDIF
COLUPD = .FALSE.
CALL HWBCON
ENDIF
END
CDECK ID>, HWDHO6.
*CMZ :- -17/10/01 10:19:15 by Peter Richardson
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHO6
C-----------------------------------------------------------------------
C Subroutine to perform the final part of the heavy object decays
C IE sort out any colour connection problems
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,IM,JHEP,ISM,JCM
IF (IERROR.NE.0) RETURN
C Fix any SUSY colour disconnections
DO 80 IHEP=1,NHEP
IF (ISTHEP(IHEP).GE.147.AND.ISTHEP(IHEP).LE.151
& .AND.JDAHEP(2,IHEP).EQ.0) THEN
IM=JMOHEP(1,IHEP)
C Chase connection back through SUSY decays
75 IM=JMOHEP(1,IM)
ISM=ISTHEP(IM)
IF (ISM.EQ.120) GOTO 80
IF (ISM.NE.123.AND.ISM.NE.124.AND.ISM.NE.155) GOTO 75
C Look for unclustered parton to connect
DO JHEP=1,NHEP
IF (ISTHEP(JHEP).GE.147.AND.ISTHEP(JHEP).LE.151) THEN
JCM=JMOHEP(2,JHEP)
IF (JCM.EQ.IM) THEN
C Found it: connect
JMOHEP(2,JHEP)=IHEP
JDAHEP(2,IHEP)=JHEP
GOTO 80
ENDIF
ENDIF
ENDDO
C Not found: need to go further back
GOTO 75
ENDIF
80 CONTINUE
END
CDECK ID>, HWDHVY.
*CMZ :- -26/04/91 12.19.24 by Federico Carminati
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDHVY
C-----------------------------------------------------------------------
C Performs partonic decays of hadrons containing heavy quark(s):
C either, meson/baryon spectator model weak decays;
C or, quarkonia -> 2-gluons, q-qbar, 3-gluons, or 2-gluons + photon.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/FFS/TB,BT
COMMON/SFF/IT1,IB1,IT2,IB2
DOUBLE PRECISION TB,BT
INTEGER IT1,IB1,IT2,IB2
DOUBLE PRECISION GAMHPM
DOUBLE PRECISION HWULDO,HWRGEN,XS,XB,EMWSQ,GMWSQ,EMLIM,PW(4),
& EMTST,X1,X2,X3,TEST,HWDWWT,HWDHWT,HWDPWT
INTEGER IST(3),I,IHEP,IM,ID,IDQ,IQ,IS,J
EXTERNAL HWRGEN,HWDWWT,HWDHWT,HWDPWT,HWULDO
SAVE IST
DATA IST/113,114,114/
IF (IERROR.NE.0) RETURN
DO 100 I=1,NMXQDK
IF (I.GT.NQDK) THEN
NQDK=0
RETURN
ENDIF
IHEP=LOCQ(I)
IF (ISTHEP(IHEP).EQ.199) GOTO 100
IM=IMQDK(I)
IF (NHEP+NPRODS(IM).GT.NMXHEP) THEN
CALL HWWARN('HWDHVY',100)
GOTO 999
ENDIF
IF (IDKPRD(4,IM).NE.0) THEN
C Weak decay of meson or baryon
C Idenitify decaying heavy quark and spectator
ID=IDHW(IHEP)
IF (ID.EQ.136.OR.ID.EQ.140.OR.ID.EQ.144.OR.
& ID.EQ.150.OR.ID.EQ.155.OR.ID.EQ.158.OR.ID.EQ.161.OR.
& (ID.EQ.254.AND.IDKPRD(4,IM).EQ.11)) THEN
C c hadron or c decay of B_c+
IDQ=4
IQ=NHEP+1
IS=NHEP+2
ELSEIF (ID.EQ.171.OR.ID.EQ.175.OR.ID.EQ.179.OR.
& ID.EQ.185.OR.ID.EQ.190.OR.ID.EQ.194.OR.ID.EQ.196.OR.
& (ID.EQ.230.AND.IDKPRD(4,IM).EQ.5)) THEN
C cbar hadron or cbar decay of B_c-
IDQ=10
IS=NHEP+1
IQ=NHEP+2
ELSEIF ((ID.GE.221.AND.ID.LE.229).OR.
& (ID.EQ.230.AND.IDKPRD(4,IM).EQ.10)) THEN
C b hadron or b decay of B_c-
IDQ=5
IQ=NHEP+1
IS=NHEP+2
ELSEIF ((ID.GE.245.AND.ID.LE.253).OR.
& (ID.EQ.254.AND.IDKPRD(4,IM).EQ.4)) THEN
C bbar hadron or bbar decay of B_c+
IDQ=11
IS=NHEP+1
IQ=NHEP+2
ELSE
C Decay not recognized
CALL HWWARN('HWDHVY',101)
GOTO 999
ENDIF
C Label constituents
IF (NHEP+5.GT.NMXHEP) THEN
CALL HWWARN('HWDHVY',102)
GOTO 999
ENDIF
ISTHEP(IHEP)=199
JDAHEP(1,IHEP)=NHEP+1
JDAHEP(2,IHEP)=NHEP+2
IDHW(IQ)=IDQ
IDHW(IS)=IDKPRD(4,IM)
IDHEP(IQ)=IDPDG(IDQ)
IDHEP(IS)=IDPDG(IDKPRD(4,IM))
ISTHEP(IQ)=155
ISTHEP(IS)=115
JMOHEP(1,IQ)=IHEP
JMOHEP(2,IQ)=IS
JDAHEP(1,IQ)=NHEP+3
JDAHEP(2,IQ)=NHEP+5
JMOHEP(1,IS)=IHEP
JMOHEP(2,IS)=NHEP+5
JDAHEP(1,IS)=0
JDAHEP(2,IS)=NHEP+5
NHEP=NHEP+2
C and weak decay product jets
DO 10 J=1,3
NHEP=NHEP+1
IDHW(NHEP)=IDKPRD(J,IM)
IDHEP(NHEP)=IDPDG(IDKPRD(J,IM))
ISTHEP(NHEP)=IST(J)
JMOHEP(1,NHEP)=IQ
JDAHEP(1,NHEP)=0
10 PHEP(5,NHEP)=RMASS(IDKPRD(J,IM))
JMOHEP(2,NHEP-2)=NHEP-1
JDAHEP(2,NHEP-2)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP-2
JDAHEP(2,NHEP-1)=NHEP-2
JMOHEP(2,NHEP )=IQ
JDAHEP(2,NHEP )=IQ
C Share momenta in ratio of masses, preserving specator mass
XS=RMASS(IDHW(IS))/PHEP(5,IHEP)
XB=ONE-XS
CALL HWVSCA(5,XB,PHEP(1,IHEP),PHEP(1,IQ))
CALL HWVSCA(5,XS,PHEP(1,IHEP),PHEP(1,IS))
IF (NME(IM).EQ.100) THEN
C Generate decay momenta using full (V-A)*(V-A) matrix element
EMWSQ=RMASS(198)**2
GMWSQ=(RMASS(198)*GAMW)**2
EMLIM=GMWSQ+(EMWSQ-(PHEP(5,IQ)-PHEP(5,NHEP))**2)**2
20 CALL HWDTHR(PHEP(1,IQ ),PHEP(1,NHEP-1),
& PHEP(1,NHEP-2),PHEP(1,NHEP),HWDWWT)
CALL HWVSUM(4,PHEP(1,NHEP-2),PHEP(1,NHEP-1),PW)
EMTST=(HWULDO(PW,PW)-EMWSQ)**2
IF ((EMTST+GMWSQ)*HWRGEN(0).GT.EMLIM) GOTO 20
ELSEIF (NME(IM).EQ.200) THEN
C Generate decay momenta using full
C ((V-A)*TB1+(V+A)*CT1)*((V-A)*TB2+(V+A)*CT2)) matrix element
GAMHPM=RMASS(206)/DKLTM(206)
C sort tan(beta)
IF((IQ.EQ. 2).OR.(IQ.EQ. 4).OR.
& (IQ.EQ. 6).OR.(IQ.EQ. 8).OR.
& (IQ.EQ. 10).OR.(IQ.EQ. 12).OR.
& (IQ.EQ.122).OR.(IQ.EQ.124).OR.
& (IQ.EQ.126).OR.(IQ.EQ.128).OR.
& (IQ.EQ.130).OR.(IQ.EQ.132))THEN
TB=TANB
ELSE
TB=1./TANB
END IF
IF((IDKPRD(1,IM).EQ. 2).OR.(IDKPRD(1,IM).EQ. 4).OR.
& (IDKPRD(1,IM).EQ. 6).OR.(IDKPRD(1,IM).EQ. 8).OR.
& (IDKPRD(1,IM).EQ. 10).OR.(IDKPRD(1,IM).EQ. 12).OR.
& (IDKPRD(1,IM).EQ.122).OR.(IDKPRD(1,IM).EQ.124).OR.
& (IDKPRD(1,IM).EQ.126).OR.(IDKPRD(1,IM).EQ.128).OR.
& (IDKPRD(1,IM).EQ.130).OR.(IDKPRD(1,IM).EQ.132))THEN
BT=TANB
ELSE
BT=1./TANB
END IF
IT1=IQ
IB1=IDKPRD(3,IM)
IT2=IDKPRD(1,IM)
IB2=IDKPRD(2,IM)
EMWSQ=RMASS(206)**2
GMWSQ=(RMASS(206)*GAMHPM)**2
EMLIM=GMWSQ+(EMWSQ-(PHEP(5,IQ)-PHEP(5,NHEP))**2)**2
25 CALL HWDTHR(PHEP(1,IQ ),PHEP(1,NHEP),
& PHEP(1,NHEP-2),PHEP(1,NHEP-1),HWDHWT)
CALL HWVSUM(4,PHEP(1,NHEP-2),PHEP(1,NHEP-1),PW)
EMTST=(HWULDO(PW,PW)-EMWSQ)**2
IF ((EMTST+GMWSQ)*HWRGEN(0).GT.EMLIM) GOTO 25
ELSE
C Use phase space
CALL HWDTHR(PHEP(1,IQ ),PHEP(1,NHEP-2),
& PHEP(1,NHEP-1),PHEP(1,NHEP),HWDPWT)
CALL HWVSUM(4,PHEP(1,NHEP-2),PHEP(1,NHEP-1),PW)
ENDIF
C Set up production vertices
CALL HWVZRO(4,VHEP(1,IQ))
CALL HWVEQU(4,VHEP(1,IQ),VHEP(1,IS))
CALL HWVEQU(4,VHEP(1,IQ),VHEP(1,NHEP))
CALL HWUDKL(198,PW,VHEP(1,NHEP-2))
CALL HWVSUM(4,VHEP(1,IQ),VHEP(1,NHEP-2),VHEP(1,NHEP-2))
CALL HWVEQU(4,VHEP(1,NHEP-2),VHEP(1,NHEP-1))
EMSCA=PHEP(5,IQ)
ELSE
C Quarkonium decay
C Label products
ISTHEP(IHEP)=199
JDAHEP(1,IHEP)=NHEP+1
DO 30 J=1,NPRODS(IM)
NHEP=NHEP+1
IDHW(NHEP)=IDKPRD(J,IM)
IDHEP(NHEP)=IDPDG(IDKPRD(J,IM))
ISTHEP(NHEP)=IST(J)
JMOHEP(1,NHEP)=IHEP
JDAHEP(1,NHEP)=0
PHEP(5,NHEP)=RMASS(IDKPRD(J,IM))
30 CALL HWVZRO(4,VHEP(1,NHEP))
JDAHEP(2,IHEP)=NHEP
C Establish colour connections and select momentum configuration
IF (NPRODS(IM).EQ.3) THEN
IF (IDKPRD(3,IM).EQ.13) THEN
C 3-gluon decay
JMOHEP(2,NHEP-2)=NHEP
JMOHEP(2,NHEP-1)=NHEP-2
JMOHEP(2,NHEP )=NHEP-1
JDAHEP(2,NHEP-2)=NHEP-1
JDAHEP(2,NHEP-1)=NHEP
JDAHEP(2,NHEP )=NHEP-2
ELSE
C or 2-gluon + photon decay
JMOHEP(2,NHEP-2)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP-2
JMOHEP(2,NHEP )=NHEP
JDAHEP(2,NHEP-2)=NHEP-1
JDAHEP(2,NHEP-1)=NHEP-2
JDAHEP(2,NHEP )=NHEP
ENDIF
IF (NME(IM).EQ.130) THEN
C Use Ore & Powell orthopositronium matrix element
40 CALL HWDTHR(PHEP(1,IHEP),PHEP(1,NHEP-2),
& PHEP(1,NHEP-1),PHEP(1,NHEP),HWDPWT)
X1=TWO*HWULDO(PHEP(1,IHEP),PHEP(1,NHEP-2))/PHEP(5,IHEP)**2
X2=TWO*HWULDO(PHEP(1,IHEP),PHEP(1,NHEP-1))/PHEP(5,IHEP)**2
X3=TWO-X1-X2
TEST=((X1*(ONE-X1))**2+(X2*(ONE-X2))**2+(X3*(ONE-X3))**2)
& /(X1*X2*X3)**2
IF (TEST.LT.TWO*HWRGEN(0)) GOTO 40
ELSE
C Use phase space
CALL HWDTHR(PHEP(1,IHEP),PHEP(1,NHEP-2),
& PHEP(1,NHEP-1),PHEP(1,NHEP),HWDPWT)
ENDIF
ELSE
C Parapositronium 2-gluon or q-qbar decay
JMOHEP(2,NHEP-1)=NHEP
JMOHEP(2,NHEP )=NHEP-1
JDAHEP(2,NHEP-1)=NHEP
JDAHEP(2,NHEP )=NHEP-1
CALL HWDTWO(PHEP(1,IHEP),PHEP(1,NHEP-1),
& PHEP(1,NHEP),CMMOM(IM),TWO,.FALSE.)
ENDIF
EMSCA=PHEP(5,IHEP)
ENDIF
C Process this new hard scatter
CALL HWVEQU(4,VTXQDK(1,I),VTXPIP)
CALL HWBGEN
CALL HWCFOR
CALL HWCDEC
CALL HWDHAD
100 CONTINUE
NQDK=0
999 RETURN
END
CDECK ID>, HWDRCL.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDRCL(IHEP,MHEP,CLSAVE)
C-----------------------------------------------------------------------
C Sets the colour connections in Baryon number violating decays
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,MHEP,ID,ID2,IDM2,IDM3,COLCON(2,2,3),FLACON(2,3),JHEP,
& DECAY,COLANT,KHEP,IDM,IDMB,IDMB2,IDMB3,IDMB4,QHEP,IDM4,
& CLSAVE(2),XHEP,I,HWRINT,THEP
LOGICAL CONBV
C--Colour connections for the decays
SAVE COLCON,FLACON
DATA COLCON/-1,1,-1,-2,-2,1,-3,-1,-1,1,-2,-1/
DATA FLACON/1,-1,1,-1,-1,0/
C--identify the decay
IF(IERROR.NE.0) RETURN
ID = IDHW(IHEP)
ID2 = IDHW(MHEP)
IF(ID.GE.450.AND.ID.LE.457) THEN
DECAY = 1
ELSEIF(ID.EQ.449) THEN
DECAY = 2
ELSEIF((ID.GE.411.AND.ID.LE.424).OR.ID.EQ.405.OR.ID.EQ.406) THEN
DECAY = 3
ELSE
C--UNKNOWN DECAY
CALL HWWARN('HWDRCL',100)
GOTO 999
ENDIF
COLANT = 1
C--identify the colour partner
IF(DECAY.GT.1.AND.ID2.LE.6) THEN
C--colour partner
COLANT = 2
KHEP = JDAHEP(2,IHEP-1)
ELSEIF(DECAY.GT.1.AND.ID2.GE.7) THEN
C--anticolour partner
COLANT = 3
KHEP = JMOHEP(2,IHEP)
ELSE
KHEP=IHEP
ENDIF
IDM = IDHW(JMOHEP(1,KHEP))
IF(ABS(IDPDG(IDM)).GT.1000000.OR.IDM.EQ.15) THEN
IDM2 = IDHW(JDAHEP(1,JMOHEP(1,KHEP)))
IDM3 = IDHW(JDAHEP(2,JMOHEP(1,KHEP)))
IDM4 = IDHW(JDAHEP(2,JMOHEP(1,KHEP))-1)
QHEP = JMOHEP(1,KHEP)
IDMB = IDHW(JMOHEP(1,QHEP))
IDMB2 = IDHW(JMOHEP(2,QHEP))
IDMB3 = IDHW(JDAHEP(1,QHEP))
IDMB4 = IDHW(JDAHEP(2,QHEP))
ENDIF
C--Now decide if the colour partner decayed via BV
IF(COLANT.EQ.2.AND.((((IDM.GE.413.AND.IDM.LE.418).OR.
& IDM.EQ.449.OR.IDM.EQ.405.OR.IDM.EQ.406).AND.
& (IDM2.GE.7.AND.IDM2.LE.12.AND.
& IDM3.GE.7.AND.IDM3.LE.12.AND.
& IDM4.GE.7.AND.IDM4.LE.12)).OR.
& (IDM.EQ.15.AND.IDMB.LE.6.AND.IDMB2.LE.6.AND.
& ((IDMB3.GE.7.AND.IDMB4.GE.12.AND.IDMB4.EQ.449).OR.
& (IDMB3.GE.198.AND.IDMB3.LE.207.AND.
& ABS(IDPDG(IDMB4)).GT.1000000))))) THEN
CONBV = .TRUE.
COLUPD = .TRUE.
HVFCEN = .FALSE.
XHEP = JMOHEP(2,JDAHEP(2,JMOHEP(1,KHEP)))
ELSEIF(COLANT.EQ.3.AND.((((IDM.GE.419.AND.IDM.LE.424).OR.
& IDM.EQ.449.OR.IDM.EQ.411.OR.IDM.EQ.412).AND.
& (IDM2.LE.6.AND.IDM3.LE.6.AND.IDM4.LE.6)).OR.
& (IDM.EQ.15.AND.IDMB.GE.7.AND.IDMB.LE.12.AND.
& IDMB2.GE.7.AND.IDMB2.LE.12.AND.((IDMB3.LE.6.AND.
& IDMB4.EQ.449).OR.(ABS(IDPDG(IDMB4)).GT.1000000
& .AND.IDMB3.GE.198.AND.IDMB3.LE.207))))) THEN
CONBV = .TRUE.
COLUPD = .TRUE.
HVFCEN = .FALSE.
XHEP = JDAHEP(2,JDAHEP(2,JMOHEP(1,KHEP)))
ELSE
CONBV = .FALSE.
COLUPD = .FALSE.
XHEP = 0
ENDIF
IF(CONBV) THEN
IF(IDM.NE.15) THEN
CLSAVE(1) = JDAHEP(2,JMOHEP(1,KHEP))-1
CLSAVE(2) = CLSAVE(1)+1
ELSE
IF(IDMB4.EQ.449) THEN
DO I=1,2
CLSAVE(I) = JMOHEP(I,JMOHEP(1,KHEP))
IF(CLSAVE(I).EQ.XHEP) CLSAVE(I)=JDAHEP(1,JMOHEP(1,KHEP))
ENDDO
ELSE
CLSAVE(1) = JMOHEP(1,JMOHEP(1,KHEP))
CLSAVE(2) = JMOHEP(2,JMOHEP(1,KHEP))
ENDIF
ENDIF
ELSE
CLSAVE(1)=0
CLSAVE(2)=0
ENDIF
C--Now set the colours for angular ordering
THEP = MHEP-1
IF(DECAY.EQ.1) THEN
IF(ID2.LE.6) THEN
JMOHEP(2,THEP) = THEP+HWRINT(1,2)
JDAHEP(2,THEP) = THEP
ELSE
JMOHEP(2,THEP) = THEP
JDAHEP(2,THEP) = THEP+HWRINT(1,2)
ENDIF
ELSEIF(DECAY.EQ.2) THEN
IF(ID2.LE.6) THEN
JMOHEP(2,THEP) = IHEP
JDAHEP(2,THEP) = THEP
ELSE
JMOHEP(2,THEP) = THEP
JDAHEP(2,THEP) = IHEP
ENDIF
ENDIF
C--Colour of the second two
DO JHEP=1,2
IF(ID2.LE.6) THEN
JMOHEP(2,MHEP+JHEP-1) = MHEP+JHEP-1+
& COLCON(HWRINT(1,2),JHEP,DECAY)
JDAHEP(2,MHEP+JHEP-1) = MHEP+JHEP-1+FLACON(JHEP,DECAY)
ELSE
JDAHEP(2,MHEP+JHEP-1) = MHEP+JHEP-1+
& COLCON(HWRINT(1,2),JHEP,DECAY)
JMOHEP(2,MHEP+JHEP-1) = MHEP+JHEP-1+FLACON(JHEP,DECAY)
ENDIF
ENDDO
C--Now set the colours of the colour partner
IF(DECAY.GT.1.AND..NOT.CONBV) THEN
IF(ID2.LE.6) JMOHEP(2,KHEP) = MHEP+HWRINT(0,1)
IF(ID2.GE.7) JDAHEP(2,KHEP) = MHEP+HWRINT(0,1)
ELSEIF(CONBV) THEN
IF(ID2.GT.6) THEN
JMOHEP(2,CLSAVE(1)) = MHEP+HWRINT(0,1)
IF(JMOHEP(2,CLSAVE(1)).EQ.MHEP) THEN
JMOHEP(2,CLSAVE(2)) = MHEP+1
ELSE
JMOHEP(2,CLSAVE(2)) = MHEP
ENDIF
ELSE
JDAHEP(2,CLSAVE(1)) = MHEP+HWRINT(0,1)
IF(JDAHEP(2,CLSAVE(1)).EQ.MHEP) THEN
JDAHEP(2,CLSAVE(2)) = MHEP+1
ELSE
JDAHEP(2,CLSAVE(2)) = MHEP
ENDIF
ENDIF
ENDIF
999 RETURN
END
CDECK ID>, HWDRME.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDRME(LHEP,MHEP)
C-----------------------------------------------------------------------
C SUBROUTINE TO IMPLEMENT ALL RPARITY DECAY MATRIX ELEMENTS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION SM(6),SW(6),HWULDO,INFCOL,AM, M12SQ,M23SQ,MSGN,
& M13SQ,A(6),B(6),SWEAK,MW,DECMOM(5),TEST(3),EPS,
& M12SQT(6),M23SQT(6),M13SQT(6),LIMIT,M(4),RAND,
& MC(2),MX2(6),MX(6),HWDPWT,HWRGEN,HWDRM1,LAMD(3),
& TEST2
EXTERNAL HWDRM1,HWULDO,HWDPWT,HWRGEN
INTEGER K,SN(3),LHEP,CSP,I,SB(3),J,ND,LTRY,MHEP,NSP,ID(3),IG,
& IDHWTP,IDHPTP,MTRY
PARAMETER(EPS=1D-20)
IF(IERROR.NE.0) RETURN
C--Electroweak parameters, etc
SWEAK = SQRT(SWEIN)
MW = RMASS(198)
M(4) = PHEP(5,LHEP)
IG = IDHW(LHEP)
C--Find the masses of the final state and zero parameters
DO K=1,3
ID(K) = IDHW(MHEP+K-1)
IF(ID(K).LE.12) THEN
SN(K)=ID(K)
ELSE
SN(K)=ID(K)-120
ENDIF
IF(SN(K).GT.6) SN(K)=SN(K)-6
M(K) = PHEP(5,LHEP+K)
SB(K)=SN(K)
LAMD(K) = ZERO
ENDDO
DO J=1,6
MX2(J) = ZERO
MX(J) = ZERO
M13SQT(J) = ZERO
M23SQT(J) = ZERO
M12SQT(J) = ZERO
ENDDO
C--Evaluate the coefficents for the mode we want
IF(IG.GE.450.AND.IG.LE.453) THEN
C--NEUTRALINO
NSP = IG-449
AM = RMASS(IG)
MSGN = ZSGNSS(NSP)
MC(1) = ZMIXSS(NSP,3)/(2*MW*COSB*SWEAK)
MC(2) = ZMIXSS(NSP,4)/(2*MW*SINB*SWEAK)
C--Calculate the combinations of couplings needed
IF(ID(1).LE.12.AND.ID(2).LE.12.AND.ID(3).LE.12) THEN
C--first for the UDD modes
DO J=1,2
A(J) = M(1)*MC(2)*QMIXSS(SN(1),2,J)
& +SLFCH(SN(1),NSP)*QMIXSS(SN(1),1,J)
B(J) = MSGN*(M(1)*MC(2)*QMIXSS(SN(1),1,J)
& +SRFCH(SN(1),NSP)*QMIXSS(SN(1),2,J))
MX2(J) = QMIXSS(SN(1),2,J)
A(J+2) = M(2)*MC(1)*QMIXSS(SN(2),2,J)
& +SLFCH(SN(2),NSP)*QMIXSS(SN(2),1,J)
B(J+2) = MSGN*(M(2)*MC(1)*QMIXSS(SN(2),1,J)
& +SRFCH(SN(2),NSP)*QMIXSS(SN(2),2,J))
MX2(J+2) = QMIXSS(SN(2),2,J)
A(J+4) = M(3)*MC(1)*QMIXSS(SN(3),2,J)
& +SLFCH(SN(3),NSP)*QMIXSS(SN(3),1,J)
B(J+4) = MSGN*(M(3)*MC(1)*QMIXSS(SN(3),1,J)
& +SRFCH(SN(3),NSP)*QMIXSS(SN(3),2,J))
MX2(J+2) = QMIXSS(SN(3),2,J)
ENDDO
DO K=1,3
SN(K) = SN(K)+400
SB(K) = SB(K)+412
ENDDO
ELSEIF(ID(1).GE.121.AND.ID(2).GE.121.AND.ID(3).GE.121) THEN
C--Now for the LLE modes
DO J=1,2
A(J) = MSGN*(M(1)*MC(1)*LMIXSS(SN(1),1,J)
& +SRFCH(10+SN(1),NSP)*LMIXSS(SN(1),2,J))
B(J) = M(1)*MC(1)*LMIXSS(SN(1),2,J)
& +SLFCH(10+SN(1),NSP)*LMIXSS(SN(2),1,J)
MX2(J)= LMIXSS(SN(1),1,J)
A(J+2) = ZERO
B(J+2) = SLFCH(10+SN(2),NSP)*LMIXSS(SN(2),1,J)
MX2(J+2) = LMIXSS(SN(2),1,J)
A(J+4) = M(3)*MC(1)*LMIXSS(SN(3),2,J)
& +SLFCH(10+SN(3),NSP)*LMIXSS(SN(3),1,J)
B(J+4) = MSGN*(M(3)*MC(1)*LMIXSS(SN(3),1,J)
& +SRFCH(10+SN(3),NSP)*LMIXSS(SN(3),2,J))
MX2(4+J) = LMIXSS(SN(3),2,J)
ENDDO
DO J=1,3
SN(J) = SN(J) + 424
SB(J) = SB(J) + 436
ENDDO
ELSE
C--Now for both types of LQD modes
IF(MOD(SN(1),2).EQ.0) THEN
C--First the neutrino,down,antidown mode
DO J=1,2
A(J) = ZERO
B(J) = SLFCH(10+SN(1),NSP)*
& LMIXSS(SN(1),1,J)
MX2(J) = LMIXSS(SN(1),1,J)
A(J+2) = MSGN*(M(2)*MC(1)*QMIXSS(SN(2),1,J)
& +SRFCH(SN(2),NSP)*QMIXSS(SN(2),2,J))
B(J+2) = M(2)*MC(1)*QMIXSS(SN(2),2,J)
& +SLFCH(SN(2),NSP)*QMIXSS(SN(2),1,J)
MX2(2+J) = QMIXSS(SN(2),1,J)
A(J+4) = M(3)*MC(1)*QMIXSS(SN(3),2,J)
& +SLFCH(SN(3),NSP)*QMIXSS(SN(3),1,J)
B(J+4) = MSGN*(M(3)*MC(1)*QMIXSS(SN(3),1,J)
& +SRFCH(SN(3),NSP)*QMIXSS(SN(3),2,J))
MX2(J+4) = QMIXSS(SN(3),2,J)
ENDDO
ELSE
C--Now the charged lepton, antiup,down modes
DO J=1,2
A(J) = MSGN*(M(1)*MC(1)*LMIXSS(SN(1),1,J)
& +SRFCH(10+SN(1),NSP)*LMIXSS(SN(1),2,J))
B(J) = M(1)*MC(1)*LMIXSS(SN(1),2,J)
& +SLFCH(10+SN(1),NSP)*LMIXSS(SN(1),1,J)
MX2(J) = LMIXSS(SN(1),1,J)
A(J+2) =MSGN*(M(2)*MC(2)*QMIXSS(SN(2),1,J)
& +SRFCH(SN(2),NSP)*QMIXSS(SN(2),2,J))
B(J+2) = M(2)*MC(2)*QMIXSS(SN(2),2,J)
& +SLFCH(SN(2),NSP)*QMIXSS(SN(2),1,J)
MX2(2+J) = QMIXSS(SN(2),1,J)
A(J+4) = M(3)*MC(1)*QMIXSS(SN(3),2,J)
& +SLFCH(SN(3),NSP)*QMIXSS(SN(3),1,J)
B(J+4) = MSGN*(M(3)*MC(1)*QMIXSS(SN(3),1,J)
& +SRFCH(SN(3),NSP)*QMIXSS(SN(3),2,J))
MX2(J+4) = QMIXSS(SN(3),2,J)
ENDDO
ENDIF
SN(1) = SN(1) + 424
SB(1) = SB(1) + 436
DO J=2,3
SN(J) = SN(J) + 400
SB(J) = SB(J) + 412
ENDDO
ENDIF
DO K=1,3
SM(2*K-1) = RMASS(SN(K))
SM(2*K) = RMASS(SB(K))
SW(2*K-1) = HBAR/RLTIM(SN(K))
SW(2*K) = HBAR/RLTIM(SB(K))
ENDDO
ND = 3
DO K=1,3
LAMD(K) = ONE
ENDDO
INFCOL = ONE
ELSEIF(IG.EQ.449) THEN
C--GLUINO
C--First obtian the masses and widths needed
AM = RMASS(IG)
ND = 3
C--Calculate the combinations of couplings needed
IF(ID(1).LE.12.AND.ID(2).LE.12.AND.ID(3).LE.12) THEN
C--first for the UDD modes
INFCOL = -0.5D0
C--Couplings
DO I=1,3
DO J=1,2
A(2*I-2+J) = -QMIXSS(SN(I),1,J)
B(2*I-2+J) = QMIXSS(SN(I),2,J)
MX2(2*I-2+J) = QMIXSS(SN(I),2,J)
ENDDO
SN(I) = SN(I)+400
SB(I) = SB(I)+412
ENDDO
ELSE
INFCOL = ONE
C--Now for both types of LQD modes
IF(MOD(SN(1),2).EQ.0) THEN
C--First the neutrino,down,antidown mode
DO J=1,2
A(J) = ZERO
B(J) = ZERO
MX2(J) = ZERO
A(J+2) = QMIXSS(SN(2),2,J)
B(J+2) = -QMIXSS(SN(2),1,J)
MX2(J+2) = QMIXSS(SN(2),1,J)
A(J+4) = -QMIXSS(SN(3),1,J)
B(J+4) = QMIXSS(SN(3),2,J)
MX2(4+J) = QMIXSS(SN(3),2,J)
ENDDO
ELSEIF(MOD(SN(1),2).EQ.1) THEN
C--Now the charged lepton, antiup,down modes
DO J=1,2
A(J) = ZERO
B(J) = ZERO
MX2(J) = ZERO
A(J+2) = QMIXSS(SN(2),2,J)
B(J+2) = -QMIXSS(SN(2),1,J)
MX2(J+2) = QMIXSS(SN(2),1,J)
A(J+4) = -QMIXSS(SN(3),1,J)
B(J+4) = QMIXSS(SN(3),2,J)
MX2(J+4) = QMIXSS(SN(3),2,J)
ENDDO
ENDIF
SN(1) = SN(1) + 424
SB(1) = SB(1) + 436
DO K=2,3
SN(K) = SN(K) + 400
SB(K) = SB(K) + 412
ENDDO
ENDIF
DO K=1,3
SM(2*K-1) = RMASS(SN(K))
SM(2*K) = RMASS(SB(K))
SW(2*K-1) = HBAR/RLTIM(SN(K))
SW(2*K) = HBAR/RLTIM(SB(K))
ENDDO
DO K=1,3
LAMD(K) = ONE
ENDDO
ELSEIF(IG.GE.454.AND.IG.LE.457) THEN
C--CHARGINO
CSP = IG-453
IF(CSP.GT.2) CSP = CSP-2
AM = RMASS(IG)
INFCOL = -ONE
MSGN = WSGNSS(CSP)
MC(1) = ONE/(SQRT(2.0D0)*MW*COSB)
MC(2) = ONE/(SQRT(2.0D0)*MW*SINB)
C--Calculate the combinations of the couplings needed
IF(ID(1).GT.120.AND.ID(2).GT.120.AND.ID(3).GT.120) THEN
C--first for the LLE modes, three modes
IF(MOD(SN(1),2).EQ.0.AND.MOD(SN(3),2).EQ.0) THEN
C--the one diagram mode nubar,positron, nu
DO J=1,2
A(J+4) = LMIXSS(SN(3)-1,1,J)*WMXUSS(CSP,1)
& -RMASS(SN(3)+119)*MC(1)*LMIXSS(SN(3)-1,2,J)*WMXUSS(CSP,2)
B(J+4) = ZERO
MX2(J+4) = LMIXSS(SN(3)-1,2,J)
ENDDO
ND = 1
SN(3) = SN(3)+423
SB(3) = SB(3)+435
ELSEIF(MOD(SN(1),2).EQ.0.AND.MOD(SN(2),2).EQ.0) THEN
C--the first two diagram mode nu, nu, positron
DO J=1,2
A(J) = ZERO
B(J) = LMIXSS(SN(1)-1,1,J)*WMXUSS(CSP,1)
& -RMASS(SN(1)+119)*MC(1)*LMIXSS(SN(1)-1,2,J)*WMXUSS(CSP,2)
A(J+2) = ZERO
B(J+2) = LMIXSS(SN(2)-1,1,J)*WMXUSS(CSP,1)
& -RMASS(SN(2)+119)*MC(1)*LMIXSS(SN(2)-1,2,J)*WMXUSS(CSP,2)
MX2(J) = LMIXSS(SN(1)-1,1,J)
MX2(J+2) = LMIXSS(SN(2)-1,1,J)
ENDDO
ND = 2
DO J=1,2
SN(J) = SN(J)+423
SB(J) = SB(J)+435
ENDDO
ELSE
C--the second two diagram mode positron, positron, electron
DO J=1,2
A(J) = -M(1)*WMXUSS(CSP,2)*MC(1)*LMIXSS(SN(1)+1,1,J)
B(J) = MSGN*WMXVSS(CSP,1)*LMIXSS(SN(1)+1,1,J)
A(J+2) = -M(2)*WMXUSS(CSP,2)*MC(1)*LMIXSS(SN(2)+1,1,J)
B(J+2) = MSGN*WMXVSS(CSP,1)*LMIXSS(SN(2)+1,1,J)
MX2(J) = LMIXSS(SN(1)+1,1,J)
MX2(J+2) = LMIXSS(SN(2)+1,1,J)
ENDDO
DO J=1,2
SN(J) = SN(J)+425
SB(J) = SB(J)+437
ENDDO
ND = 2
ENDIF
DO K=1,3
LAMD(K) = ONE
ENDDO
ELSEIF(ID(1).LE.12.AND.ID(2).LE.12.AND.ID(3).LE.12) THEN
C--now for the UDD
IF(MOD(SN(1),2).EQ.0) THEN
C--two diagram mode
LAMD(1) = LAMDA3(SN(2)/2,SN(1)/2,(SN(3)+1)/2)
LAMD(2) = LAMDA3(SN(1)/2,SN(2)/2,(SN(3)+1)/2)
DO J=1,2
A(J) = WMXUSS(CSP,1)*QMIXSS(SN(1)-1,1,J)
& -RMASS(SN(1)-1)*MC(1)*WMXUSS(CSP,2)*QMIXSS(SN(1)-1,2,J)
B(J) = -MSGN*M(2)*WMXVSS(CSP,2)*QMIXSS(SN(1)-1,1,J)
A(J+2) = WMXUSS(CSP,1)*QMIXSS(SN(2)-1,1,J)
& -RMASS(SN(2)-1)*MC(1)*WMXUSS(CSP,2)*QMIXSS(SN(2)-1,2,J)
B(J+2) = -MSGN*M(2)*WMXVSS(CSP,2)*QMIXSS(SN(2)-1,1,J)
MX2(J) = QMIXSS(SN(1)-1,2,J)
MX2(J+2) = QMIXSS(SN(2)-1,2,J)
ENDDO
DO J=1,2
SN(J) = SN(J) + 399
SB(J) = SB(J) + 411
ENDDO
ND = 2
ELSE
C--three diagram mode
LAMD(1) = LAMDA3((SN(1)+1)/2,(SN(2)+1)/2,(SN(3)+1)/2)
LAMD(2) = LAMDA3((SN(2)+1)/2,(SN(1)+1)/2,(SN(3)+1)/2)
LAMD(3) = LAMDA3((SN(3)+1)/2,(SN(2)+1)/2,(SN(1)+1)/2)
DO I=1,3
DO J=1,2
A(J+2*I-2) = MSGN*(WMXVSS(CSP,1)*QMIXSS(SN(I)+1,1,J)
& -RMASS(SN(I)+1)*MC(2)*WMXVSS(CSP,2)*QMIXSS(SN(I)+1,2,J))
B(J+2*I-2) = -M(I)*MC(1)*WMXUSS(CSP,2)
& *QMIXSS(SN(I)+1,1,J)
MX2(J+2*I-2) = QMIXSS(SN(I)+1,2,J)
ENDDO
SN(I) = SN(I) + 401
SB(I) = SB(I) + 413
ENDDO
ND = 3
ENDIF
ELSE
C--now for the LQD modes
IF(MOD(SN(2),2).EQ.1.AND.MOD(SN(3),2).EQ.0) THEN
C--first one diagram mode nubar, dbar, up
DO J=1,2
A(J+4) = -MSGN*M(3)*WMXVSS(CSP,2)*MC(2)*
& QMIXSS(SN(3)-1,1,J)
B(J+4) = WMXUSS(CSP,1)*QMIXSS(SN(3)-1,1,J)
& -RMASS(SN(3)-1)*MC(1)*WMXUSS(CSP,2)*QMIXSS(SN(3)-1,2,1)
MX2(J+4) = QMIXSS(SN(3)-1,2,J)
ENDDO
SN(3) = SN(3) + 399
SB(3) = SB(3) + 411
ND = 1
ELSEIF(MOD(SN(2),2).EQ.0.AND.MOD(SN(3),2).EQ.0) THEN
C--second one diagram mode positron, ubar, up
DO J=1,2
A(J+4) = -MSGN*M(3)*WMXVSS(CSP,2)*MC(2)*
& QMIXSS(SN(3)-1,1,J)
B(J+4) = WMXUSS(CSP,1)*QMIXSS(SN(3)-1,1,J)
& -RMASS(SN(3)-1)*MC(1)*WMXUSS(CSP,2)*QMIXSS(SN(3)-1,2,1)
MX2(J+4) = QMIXSS(SN(3)-1,2,J)
ENDDO
SN(3) = SN(3) + 399
SB(3) = SB(3) + 411
ND = 1
ELSEIF(MOD(SN(2),2).EQ.1.AND.MOD(SN(3),2).EQ.1) THEN
C--first two diagram mode positron, dbar, down
DO J=1,2
A(J) = -M(1)*MC(1)*WMXUSS(CSP,2)*LMIXSS(SN(1)+1,1,J)
B(J) = MSGN*WMXVSS(CSP,1)*LMIXSS(SN(2)+1,1,J)
A(J+2) = -M(2)*WMXUSS(CSP,2)*MC(1)*QMIXSS(SN(2)+1,1,J)
B(J+2) = MSGN*(WMXVSS(CSP,1)*QMIXSS(SN(2)+1,1,J)
& -RMASS(SN(2)+1)*MC(2)*WMXVSS(CSP,2)*QMIXSS(SN(2)+1,2,J))
MX2(J) = LMIXSS(SN(1)+1,1,J)
MX2(J+2) = QMIXSS(SN(2)+1,1,J)
ENDDO
SN(1) = SN(1) + 425
SB(1) = SB(1) + 437
SN(2) = SN(2) + 401
SB(2) = SB(2) + 413
ND = 2
ELSE
C--second two diagram mode nu, up, dbar
DO J=1,2
A(J) = ZERO
B(J) = WMXUSS(CSP,1)*LMIXSS(SN(1)-1,1,J)
& -RMASS(119+SN(1))*MC(1)*WMXUSS(CSP,2)*LMIXSS(SN(1)-1,2,J)
A(J+2) = -MSGN*M(2)*MC(2)*WMXVSS(CSP,2)*
& QMIXSS(SN(2)-1,1,J)
B(J+2) = WMXUSS(CSP,1)*QMIXSS(SN(2)-1,1,J)
& -RMASS(SN(2)-1)*MC(1)*WMXUSS(CSP,2)*QMIXSS(SN(2)-1,2,J)
MX2(J) = LMIXSS(SN(1)-1,1,J)
MX2(J+2) = QMIXSS(SN(2)-1,1,J)
ENDDO
SN(1) = SN(1) + 423
SB(1) = SB(1) + 435
SN(2) = SN(2) + 399
SB(2) = SB(2) + 411
ND = 2
ENDIF
DO K=1,3
LAMD(K) = ONE
ENDDO
ENDIF
IF(ND.EQ.1) THEN
DO K=1,2
SM(2*K-1) = 0.0D0
SM(2*K) = 0.0D0
SW(2*K-1) = 0.0D0
SW(2*K) = 0.0D0
ENDDO
SM(5) = RMASS(SN(3))
SM(6) = RMASS(SB(3))
SW(5) = HBAR/RLTIM(SN(3))
SW(6) = HBAR/RLTIM(SB(3))
ELSE
DO K=1,2
SM(2*K-1) = RMASS(SN(K))
SM(2*K) = RMASS(SB(K))
SW(2*K-1) = HBAR/RLTIM(SN(K))
SW(2*K) = HBAR/RLTIM(SB(K))
SM(4+K) = ZERO
SW(4+K) = ZERO
ENDDO
ENDIF
ELSE
C--UNKNOWN
CALL HWWARN('HWDRME',500)
ENDIF
C--Set mixing to zero if diagram not available
IF((AM.LT.(ABS(SM(1))+M(1)).OR.ABS(SM(1)).LT.(M(2)+M(3)))
& .AND.ABS(MX2(1)).GT.ZERO.AND.ND.NE.1) MX(1) = MX2(1)*LAMD(1)
IF((AM.LT.(ABS(SM(2))+M(1)).OR.ABS(SM(2)).LT.(M(2)+M(3)))
& .AND.ABS(MX2(2)).GT.ZERO.AND.ND.NE.1) MX(2) = MX2(2)*LAMD(1)
IF((AM.LT.(ABS(SM(3))+M(2)).OR.ABS(SM(3)).LT.(M(1)+M(3)))
& .AND.ABS(MX2(3)).GT.ZERO.AND.ND.NE.1) MX(3) = MX2(3)*LAMD(2)
IF((AM.LT.(ABS(SM(4))+M(2)).OR.ABS(SM(4)).LT.(M(1)+M(3)))
& .AND.ABS(MX2(4)).GT.ZERO.AND.ND.NE.1) MX(4) = MX2(4)*LAMD(2)
IF((AM.LT.(ABS(SM(5))+M(3)).OR.ABS(SM(5)).LT.(M(1)+M(2)))
& .AND.ABS(MX2(5)).GT.ZERO.AND.ND.NE.2) MX(5) = MX2(5)*LAMD(3)
IF((AM.LT.(ABS(SM(6))+M(3)).OR.ABS(SM(6)).LT.(M(1)+M(2)))
& .AND.ABS(MX2(6)).GT.ZERO.AND.ND.NE.2) MX(6) = MX2(6)*LAMD(3)
C--Calculate the limiting points
DO J=1,2
IF(ND.NE.1) THEN
IF(ABS(MX(J)).GT.EPS) CALL HWDRM5(M23SQT(J),M13SQT(J),
& M12SQT(J),A(J),B(J),M(2),M(3),M(1),M(4),SM(J),SW(J))
IF(ABS(MX(J+2)).GT.EPS) CALL HWDRM5(M13SQT(2+J),M23SQT(2+J),
& M12SQT(2+J),A(2+J),B(2+J),M(1),M(3),M(2),M(4),SM(2+J),SW(2+J))
ENDIF
IF(ND.NE.2) THEN
IF(ABS(MX(J+4)).GT.EPS) CALL HWDRM5(M12SQT(4+J),M23SQT(4+J),
& M13SQT(4+J),A(4+J),B(4+J),M(1),M(2),M(3),M(4),SM(4+J),SW(4+J))
ENDIF
ENDDO
C--Now evaluate the limit using these points
LIMIT = ZERO
DO 100 I=1,6
IF(ABS(MX(I)).LT.EPS) GOTO 100
LIMIT = LIMIT+HWDRM1(TEST,M12SQT(I),M13SQT(I),M23SQT(I),A,B,MX,
& M,SM,SW,INFCOL,AM,0,ND)
100 CONTINUE
LIMIT = TWO*LIMIT
C--Now evaluate at a random point
MTRY = 0
25 MTRY = MTRY+1
LTRY = 0
35 LTRY = LTRY+1
CALL HWDTHR(PHEP(1,LHEP),PHEP(1,MHEP),
& PHEP(1,MHEP+1),PHEP(1,MHEP+2),HWDPWT)
C--Now calculate the m12sq etc for the actual point
M12SQ = M(1)**2+M(2)**2+2*HWULDO(PHEP(1,MHEP),PHEP(1,MHEP+1))
M13SQ = M(1)**2+M(3)**2+2*HWULDO(PHEP(1,MHEP),PHEP(1,MHEP+2))
M23SQ = M(2)**2+M(3)**2+2*HWULDO(PHEP(1,MHEP+1),PHEP(1,MHEP+2))
C--Now calulate the matrix element
TEST2 = HWDRM1(TEST,M12SQ,M13SQ,M23SQ,A,B,MX,
& M,SM,SW,INFCOL,AM,1,ND)
C--Now test the value againest the limit
RAND = HWRGEN(0)*LIMIT
IF(TEST2.GT.LIMIT) THEN
LIMIT = 1.1D0*TEST2
CALL HWWARN('HWDRME',51)
GOTO 150
ENDIF
150 IF(TEST2.LT.RAND.AND.LTRY.LT.NETRY) THEN
GOTO 35
ELSEIF(LTRY.GE.NETRY) THEN
IF(MTRY.LE.NETRY) THEN
LIMIT = LIMIT*0.9D0
CALL HWWARN('HWDRME',52)
GOTO 25
ELSE
CALL HWWARN('HWDRME',100)
GOTO 999
ENDIF
ENDIF
C--Reorder the particles in gluino decay to get angular ordering right
IF(IG.EQ.449.AND.ID(1).LE.12.AND.ID(2).LE.12.AND.ID(3).LE.12) THEN
DO LTRY=1,3
IF(TEST(LTRY).GT.RAND) THEN
IF(LTRY.EQ.2) THEN
IDHWTP = IDHW(MHEP)
IDHW(MHEP) = IDHW(MHEP+1)
IDHW(MHEP+1) = IDHWTP
IDHPTP = IDHEP(MHEP)
IDHEP(MHEP) = IDHEP(MHEP+1)
IDHEP(MHEP+1) = IDHPTP
CALL HWVEQU(5,PHEP(1,MHEP),DECMOM)
CALL HWVEQU(5,PHEP(1,MHEP+1),PHEP(1,MHEP))
CALL HWVEQU(5,DECMOM,PHEP(1,MHEP+1))
ELSEIF(LTRY.EQ.3) THEN
IDHWTP = IDHW(MHEP)
IDHW(MHEP) = IDHW(MHEP+2)
IDHW(MHEP+2) = IDHWTP
IDHPTP = IDHEP(MHEP)
IDHEP(MHEP) = IDHEP(MHEP+2)
IDHEP(MHEP+2) = IDHPTP
DO I=1,5
CALL HWVEQU(5,PHEP(1,MHEP),DECMOM)
CALL HWVEQU(5,PHEP(1,MHEP+2),PHEP(1,MHEP))
CALL HWVEQU(5,DECMOM,PHEP(1,MHEP+2))
ENDDO
ENDIF
GOTO 52
ENDIF
RAND=RAND-TEST(LTRY)
ENDDO
ENDIF
52 CONTINUE
999 RETURN
END
CDECK ID>, HWDRM1.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWDRM1(TEST,M12SQ,M13SQ,M23SQ,A,B,MX,M,SM,SW
& ,INFCOL,AM,LM,ND)
C-----------------------------------------------------------------------
C FUNCTION TO GIVE THE R-PARITY VIOLATING MATRIX ELEMENT AT A GIVEN
C PHASE-SPACE POINT
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION M12SQ,M13SQ,M23SQ,MX(6),A(6),B(6),SM(6),SW(6),
& INFCOL,AM,TERM(21),TEST(3),PLN,NPLN,ZERO,
& M(4),HWDRM1,HWDRM2,HWDRM3,HWDRM4
PARAMETER (ZERO=0)
EXTERNAL HWDRM2,HWDRM3,HWDRM4
INTEGER LM,K,ND
C--Zero the array
DO K=1,21
TERM(K) = 0.0D0
ENDDO
HWDRM1 = 0.0D0
C--The amplitude
IF(ABS(MX(1)).GT.ZERO.AND.ND.NE.1) THEN
TERM(1) = MX(1)**2*HWDRM2(M23SQ,M(2),M(3),M(1),M(4),SM(1),
& SW(1),A(1),B(1))
IF(ABS(MX(2)).GT.ZERO) TERM(7)= MX(1)*MX(2)*HWDRM3(M23SQ,M(2),
& M(3),M(1),M(4),SM(1),SM(2),SW(1),SW(2),A(1),A(2),B(1),B(2))
IF(ABS(MX(3)).GT.ZERO) TERM(10)=-MX(1)*MX(3)*HWDRM4(M13SQ,M23SQ,
& M(1),M(3),M(2),M(4),SM(3),SM(1),SW(3),SW(1),A(1),A(3),B(1),B(3))
IF(ABS(MX(4)).GT.ZERO) TERM(11)=-MX(1)*MX(4)*HWDRM4(M13SQ,M23SQ,
& M(1),M(3),M(2),M(4),SM(4),SM(1),SW(4),SW(1),A(1),A(4),B(1),B(4))
IF(ABS(MX(5)).GT.ZERO) TERM(12)=-MX(1)*MX(5)*HWDRM4(M23SQ,M12SQ,
& M(3),M(2),M(1),M(4),SM(1),SM(5),SW(1),SW(5),A(5),A(1),B(5),B(1))
IF(ABS(MX(6)).GT.ZERO) TERM(13)=-MX(1)*MX(6)*HWDRM4(M23SQ,M12SQ,
& M(3),M(2),M(1),M(4),SM(1),SM(6),SW(1),SW(6),A(6),A(1),B(6),B(1))
ENDIF
IF(ABS(MX(2)).GT.ZERO.AND.ND.NE.1) THEN
TERM(2) = MX(2)**2*HWDRM2(M23SQ,M(2),M(3),M(1),M(4),SM(2),
& SW(2),A(2),B(2))
IF(ABS(MX(3)).GT.ZERO) TERM(14)=-MX(2)*MX(3)*HWDRM4(M13SQ,M23SQ,
& M(1),M(3),M(2),M(4),SM(3),SM(2),SW(3),SW(2),A(2),A(3),B(2),B(3))
IF(ABS(MX(4)).GT.ZERO) TERM(15)=-MX(2)*MX(4)*HWDRM4(M13SQ,M23SQ,
& M(1),M(3),M(2),M(4),SM(4),SM(2),SW(4),SW(2),A(2),A(4),B(2),B(4))
IF(ABS(MX(5)).GT.ZERO) TERM(16)=-MX(2)*MX(5)*HWDRM4(M23SQ,M12SQ,
& M(3),M(2),M(1),M(4),SM(2),SM(5),SW(2),SW(5),A(5),A(2),B(5),B(2))
IF(ABS(MX(6)).GT.ZERO) TERM(17)=-MX(2)*MX(6)*HWDRM4(M23SQ,M12SQ,
& M(3),M(2),M(1),M(4),SM(2),SM(6),SW(2),SW(6),A(6),A(2),B(6),B(2))
ENDIF
IF(ABS(MX(3)).GT.ZERO.AND.ND.NE.1) THEN
TERM(3) = MX(3)**2*HWDRM2(M13SQ,M(1),M(3),M(2),M(4),SM(3),
& SW(3),A(3),B(3))
IF(ABS(MX(4)).GT.ZERO) TERM(8)= MX(3)*MX(4)*HWDRM3(M13SQ,M(1),
& M(3),M(2),M(4),SM(3),SM(4),SW(3),SW(4),A(3),A(4),B(3),B(4))
IF(ABS(MX(5)).GT.ZERO) TERM(18)=-MX(3)*MX(5)*HWDRM4(M12SQ,M13SQ,
& M(2),M(1),M(3),M(4),SM(5),SM(3),SW(5),SW(3),A(3),A(5),B(3),B(5))
IF(ABS(MX(6)).GT.ZERO) TERM(19)=-MX(3)*MX(6)*HWDRM4(M12SQ,M13SQ,
& M(2),M(1),M(3),M(4),SM(6),SM(3),SW(6),SW(3),A(3),A(6),B(3),B(6))
ENDIF
IF(ABS(MX(4)).GT.ZERO.AND.ND.NE.1) THEN
TERM(4) = MX(4)**2*HWDRM2(M13SQ,M(1),M(3),M(2),M(4),SM(4),
& SW(4),A(4),B(4))
IF(ABS(MX(5)).GT.ZERO) TERM(20)=-MX(4)*MX(5)*HWDRM4(M12SQ,M13SQ,
& M(2),M(1),M(3),M(4),SM(5),SM(4),SW(5),SW(4),A(4),A(5),B(4),B(5))
IF(ABS(MX(6)).GT.ZERO) TERM(21)=-MX(4)*MX(6)*HWDRM4(M12SQ,M13SQ,
& M(2),M(1),M(3),M(4),SM(6),SM(4),SW(6),SW(4),A(4),A(6),B(4),B(6))
ENDIF
IF(ABS(MX(5)).GT.ZERO.AND.ND.NE.2) THEN
TERM(5) = MX(5)**2*HWDRM2(M12SQ,M(1),M(2),M(3),M(4),SM(5),
& SW(5),A(5),B(5))
IF(ABS(MX(6)).GT.ZERO) TERM(9)= MX(5)*MX(6)*HWDRM3(M12SQ,M(1),
& M(2),M(3),M(4),SM(5),SM(6),SW(5),SW(6),A(5),A(6),B(5),B(6))
ENDIF
IF(ABS(MX(6)).GT.ZERO.AND.ND.NE.2) TERM(6) = MX(6)**2*
& HWDRM2(M12SQ,M(1),M(2),M(3),M(4),SM(6),SW(6),A(6),B(6))
DO K=10,21
TERM(K)=TERM(K)*INFCOL
ENDDO
C--Add them up
DO K=1,21
HWDRM1 = HWDRM1+TERM(K)
ENDDO
C--Different colour flows for the gluino
IF(LM.NE.0) THEN
NPLN = 0.0D0
PLN = 0.0D0
DO K=1,9
PLN = PLN+TERM(K)
ENDDO
DO K=10,21
NPLN= NPLN+TERM(K)
ENDDO
DO K=1,3
TEST(K) = (TERM(2*K-1)+TERM(2*K)+TERM(6+K))*(1+NPLN/PLN)
ENDDO
ELSE
DO K=1,3
TEST(K) = 0.0D0
ENDDO
ENDIF
IF(HWDRM1.LT.ZERO) CALL HWWARN('HWDRM1',50)
END
CDECK ID>, HWDRM2.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWDRM2(X,MA,MB,MC,MD,MR1,GAM1,A,B)
C-----------------------------------------------------------------------
C Function to compute the matrix element squared part of a 3-body
C R-parity decay
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION X,MA,MB,MC,MD,A,B,HWDRM2,MR1,GAM1
HWDRM2 = (X - MA**2 - MB**2)*(4*A*B*MC*MD +
& (A**2 + B**2)*(-X + MC**2 + MD**2))/
& ((X-MR1**2)**2+GAM1**2*MR1**2)
END
CDECK ID>, HWDRM3.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWDRM3(X,MA,MB,MC,MD,MR1,MR2,GAM1,GAM2,A1,A2,B1,B2)
C-----------------------------------------------------------------------
C Function to compute the light/heavy interference part of a 3-body
C R-parity decay
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION X,MA,MB,MC,MD,A1,A2,B1,B2,HWDRM3,MR1,MR2,GAM1
& ,GAM2
C
HWDRM3 = 2*(X - MA**2 - MB**2)*(2*(A2*B1 + A1*B2)*MC*MD +
& (A1*A2 + B1*B2)*(-X + MC**2 + MD**2))*
& (GAM1*GAM2*MR1*MR2 + (X - MR1**2)*(X - MR2**2))/
& (((X-MR1**2)**2+GAM1**2*MR1**2)*((X-MR2**2)**2+GAM2**2*MR2**2))
END
CDECK ID>, HWDRM4.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWDRM4(X,Y,MA,MB,MC,MD,MR1,MR2,GAM1,GAM2,A1,A2,B1,B2)
C-----------------------------------------------------------------------
C Function to compute the interference part of a 3-body
C R-parity decay
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION X,Y,MA,MB,MC,MD,A1,A2,B1,B2,HWDRM4,MR1,MR2,GAM1
& ,GAM2
C
HWDRM4 = 2*((GAM1*GAM2*MR1*MR2 + (X - MR1**2)*(Y - MR2**2))*
& (A2*B1*MC*MD*(X - MA**2 - MB**2) +
& A1*A2*MA*MC*(X + Y - MA**2 - MC**2) +
& A1*B2*MA*MD*(Y - MB**2 - MC**2) +
& B1*B2*(X*Y - MA**2*MC**2 - MB**2*MD**2)))/
& (((X-MR1**2)**2+GAM1**2*MR1**2)*((Y-MR2**2)**2+GAM2**2*MR2**2))
END
CDECK ID>, HWDRM5.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDRM5(X,Y,Z,A,B,MA,MB,MC,MD,MR,GAM)
C-----------------------------------------------------------------------
C Subroutine to find the maximum of the ME
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION X,Y,Z,MA,MB,MC,MD,MR,GAM,RES(3),A,B,C,D,
& E2S,E3S,E2M,E3M,LOW,UPP,HWRUNI,EPS,ZERO
EXTERNAL HWRUNI
PARAMETER(EPS=1D-9,ZERO=0)
C = A**2+B**2
D = 4*A*B
RES(1) = -D*(MA**2 + MB**2)*MC*MD +
& C*(GAM**2*MR**2 + MR**4 - MA**2*MC**2 - MB**2*MC**2 -
& MA**2*MD**2 - MB**2*MD**2)
RES(2) = (GAM**2*MR**2 + (-MR**2 + MA**2 + MB**2)**2)*
& (D**2*MC**2*MD**2 +
& 2*C*D*MC*MD*(-MR**2 + MC**2 + MD**2) +
& C**2*(GAM**2*MR**2 + (-MR**2 + MC**2 + MD**2)**2))
RES(3) = -D*MC*MD+C*(2*MR**2-(MA**2+MB**2+MC**2+MD**2))
IF(RES(2).GT.ZERO) THEN
RES(2) = SQRT(RES(2))
ELSE
RES(2) = 0.0D0
ENDIF
IF((RES(1)+RES(2))/RES(3).GT.(MD-MC)**2.OR.
& (RES(1)+RES(2))/RES(3).LT.(MA+MB)**2) THEN
X = (RES(1)-RES(2))/RES(3)
ELSE
X = (RES(1)+RES(2))/RES(3)
ENDIF
IF(X.GT.(MD-MC)**2) X = (MD-MC)**2
IF(X.LT.(MA+MB)**2) X = (MA+MB)**2
E2S = (X-MA**2+MB**2)/(2*SQRT(X))
E3S = (MD**2-X-MC**2)/(2*SQRT(X))
E2M = E2S**2-MB**2
E3M = E3S**2-MC**2
IF(E2M.LT.ZERO) THEN
IF(ABS(E2M/E2S).GT.EPS) CALL HWWARN('HWDRM5',2)
E2M= 0.0D0
ENDIF
IF(E3M.LT.ZERO) THEN
IF(ABS(E3M/E3S).GT.EPS) CALL HWWARN('HWDRM5',3)
E3M= 0.0D0
ENDIF
E2M = SQRT(E2M)
E3M = SQRT(E3M)
LOW = (E2S+E3S)**2-(E2M+E3M)**2
UPP = (E2S+E3S)**2-(E2M-E3M)**2
Y = HWRUNI(1,LOW,UPP)
Z = MA**2+MB**2+MC**2+MD**2-X-Y
END
CDECK ID>, HWDPWT.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWDPWT(EMSQ,A,B,C)
C-----------------------------------------------------------------------
C MATRIX ELEMENT SQUARED FOR PHASE SPACE DECAY
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWDPWT,EMSQ,A,B,C
HWDPWT=1.
END
CDECK ID>, HWDSIN.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSIN(CLSAVE)
C-----------------------------------------------------------------------
C Subroutine to perform decays including spin correlations
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION PW(5)
INTEGER IDEC,IP,IS,IHEP,ID,IM,LHEP,MHEP,NPR,KHEP,CLSAVE(2),NTRY,
& ID1
IF(IERROR.NE.0) RETURN
NTRY = 0
IDEC = 1
1 NTRY = NTRY+1
C--search the decay products and decide which one to decay next
IF(.NOT.DECSPN(IDEC)) THEN
CALL HWDSI1(IDEC,IP)
ELSE
IDEC = JMOSPN(IDEC)
GOTO 1
ENDIF
C--first no more particles in this decay to develop so move up chain
IF(IP.EQ.0) THEN
IDEC = JMOSPN(IDEC)
C--reached the end of this spin chain go back to HWDHOB
IF(IDEC.EQ.0) THEN
NSPN = 0
RETURN
C--otherwise keep going up the chain
ELSE
IF(NTRY.LE.NBTRY) THEN
GOTO 1
ELSE
CALL HWWARN('HWDSIN',100)
GOTO 999
ENDIF
ENDIF
C--special for tau decays call spin correlation in tau decay routine
ELSEIF(ABS(IDHEP(IDSPN(IP))).EQ.15) THEN
CALL HWDSI3(IP)
IF(IERROR.NE.0) RETURN
GOTO 1
ENDIF
C--work out where that particle is
IHEP = IDSPN(IP)
C--if particle has daughters
10 IF(JDAHEP(1,IHEP).NE.0) THEN
IF(ISTHEP(IHEP).GE.141.AND.ISTHEP(IHEP).LE.144) THEN
DO ID1=JDAHEP(1,IHEP),JDAHEP(2,IHEP)
IF(IDHW(ID1).EQ.ID) IHEP=ID1
ENDDO
ELSE
IHEP = JDAHEP(1,IHEP)
ENDIF
ENDIF
IS=ISTHEP(IHEP)
ID=IDHW(IHEP)
NTRY = NTRY+1
IF(NTRY.GE.NBTRY) THEN
CALL HWWARN('HWDSIN',101)
GOTO 999
ENDIF
IF (.NOT.RSTAB(ID).AND.(ID.EQ.6.OR.ID.EQ.12.OR.
& (ID.GE.203.AND.ID.LE.218).OR.ABS(IDPDG(ID)).GT.1000000).AND.
& (IS.EQ.190.OR.(IS.GE.147.AND.IS.LE.151))) THEN
CALL HWDHO1(IHEP,ID,IM,NPR,LHEP,MHEP)
IF(IERROR.NE.0) RETURN
ELSE
GOTO 10
ENDIF
C--perform the decay including spin correlations
CALL HWDSI2(IHEP,IM,NPR,MHEP,KHEP,PW)
IF(IERROR.NE.0) RETURN
C--make the colour connections
CALL HWDHO3(ID,IM,NPR,MHEP,LHEP,KHEP,CLSAVE)
IF (IERROR.NE.0) RETURN
C--perform the parton-showers
CALL HWDHO4(IHEP,ID,IM,NPR,MHEP,LHEP,KHEP,PW)
IF(IERROR.NE.0) RETURN
C--perform RPV colour connections
CALL HWDHO5(MHEP,LHEP,CLSAVE)
IF(IERROR.NE.0) RETURN
C--continue and perform the next decay
IDEC = IP
IF(NTRY.LE.NBTRY) THEN
GOTO 1
ELSE
CALL HWWARN('HWDSIN',102)
ENDIF
999 RETURN
END
CDECK ID>, HWDSI1.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSI1(IDEC,IP)
C-----------------------------------------------------------------------
C Subroutine to check a vertex and decide which branch to treat
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IDEC,I,IPICK(5),IP,HWRINT,P1,P2,P3,P4,P3P,P4P,NPR,P0,P0P,
& P1P,P2P,IF1,IF2,P5,P5P
DOUBLE PRECISION NORM
DOUBLE COMPLEX RHOLP(2,2),RHOPS(2,2)
EXTERNAL HWRINT
C--loop over the daughters and decide what to do
IP = 0
C--if daughters of particle the same issue warning
IF(JDASPN(1,IDEC).EQ.JDASPN(2,IDEC)) THEN
CALL HWWARN('HWDSI1',100)
GOTO 999
ENDIF
C--loop over the decay products
DO I=JDASPN(1,IDEC),JDASPN(2,IDEC)
IF(.NOT.DECSPN(I)) THEN
C--first SM particles other than tau and top and stable particles
IF(RSTAB(IDHW(IDSPN(I)))
& .OR.(IDHW(IDSPN(I)).LE.12.AND.ABS(IDHEP(IDSPN(I))).NE.6)
& .OR.(IDHW(IDSPN(I)).GE.121.AND.IDHW(IDSPN(I)).LE.132.AND.
& ABS(IDHEP(IDSPN(I))).NE.15)) THEN
DECSPN(I) = .TRUE.
RHOSPN(1,1,I) = HALF
RHOSPN(1,2,I) = ZERO
RHOSPN(2,1,I) = ZERO
RHOSPN(2,2,I) = HALF
C--spinless particles
ELSEIF(RSPIN(IDHW(IDSPN(I))).EQ.ZERO) THEN
DECSPN(I) = .TRUE.
RHOSPN(1,1,I) = ONE
RHOSPN(1,2,I) = ZERO
RHOSPN(2,1,I) = ZERO
RHOSPN(2,2,I) = ZERO
ELSE
C--particle which needs development
IP = IP+1
IPICK(IP) = I
ENDIF
ENDIF
ENDDO
C--pick the particle to decay next
IF(IP.EQ.0) THEN
IF(JMOSPN(IDEC).EQ.0) RETURN
C--done everything compute the decay matrix and move up
DECSPN(IDEC) = .TRUE.
NPR = JDASPN(2,IDEC)-JDASPN(1,IDEC)+1
DO 20 P0=1,2
DO 20 P0P=1,2
20 RHOSPN(P0,P0P,IDEC) = ZERO
C--two body decay
IF(NPR.EQ.2) THEN
DO 21 P0 =1,2
DO 21 P0P=1,2
DO 21 P1 =1,2
DO 21 P1P=1,2
DO 21 P2 =1,2
DO 21 P2P=1,2
21 RHOSPN(P0,P0P,IDEC) = RHOSPN(P0,P0P,IDEC)+
& MESPN(P0 ,P1 ,P2 ,1,NCFL(IDEC),IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,1,NCFL(IDEC),IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*RHOSPN(P2,P2P,JDASPN(2,IDEC))
C--three body decay
ELSEIF(NPR.EQ.3) THEN
DO 25 P0 =1,2
DO 25 P0P=1,2
DO 25 P1 =1,2
DO 25 P1P=1,2
DO 25 P2 =1,2
DO 25 P2P=1,2
DO 25 P3 =1,2
DO 25 P3P=1,2
25 RHOSPN(P0,P0P,IDEC) = RHOSPN(P0,P0P,IDEC)+
& MESPN(P0 ,P1 ,P2 ,P3 ,NCFL(IDEC),IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,P3P,NCFL(IDEC),IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*RHOSPN(P2,P2P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(2,IDEC))
C--higher
ELSE
CALL HWWARN('HWDSI1',500)
ENDIF
C--now normalise this
NORM = DBLE(RHOSPN(1,1,IDEC))+DBLE(RHOSPN(2,2,IDEC))
IF(NORM.GT.ZERO) THEN
NORM = ONE/NORM
DO 35 P0=1,2
DO 35 P0P=1,2
35 RHOSPN(P0,P0P,IDEC) = NORM*RHOSPN(P0,P0P,IDEC)
ELSE
CALL HWWARN('HWDSI1',101)
GOTO 999
ENDIF
ELSE
C--pick the particle to be decayed
IP = IPICK(HWRINT(1,IP))
C--setup the spin density matrix for the decay
C--special for the hard process
IF(ISTHEP(IDSPN(IDEC)).EQ.120) THEN
NPR = JDASPN(2,IDEC)-JDASPN(1,IDEC)+1
C--set up the spin density matrices for the incoming partons
C--zero off diagonal elements
RHOLP(2,1) = ZERO
RHOLP(1,2) = ZERO
RHOPS(2,1) = ZERO
RHOPS(1,2) = ZERO
C--set up for polarized incoming beams in lepton collisons
IF(IDHW(JMOHEP(1,IDSPN(IDEC))).GE.121.AND.
& IDHW(JMOHEP(1,IDSPN(IDEC))).LE.132) THEN
RHOLP(1,1) = HALF*(ONE+EPOLN(3))
RHOLP(2,2) = HALF*(ONE-EPOLN(3))
RHOPS(1,1) = HALF*(ONE-PPOLN(3))
RHOPS(2,2) = HALF*(ONE+PPOLN(3))
C--otherwise average
ELSE
RHOLP(1,1) = HALF
RHOLP(2,2) = HALF
RHOPS(1,1) = HALF
RHOPS(2,2) = HALF
ENDIF
C--first decay product
IF(NPR.EQ.2) THEN
IF(IP.EQ.JDASPN(1,IDEC)) THEN
C--if using first colour flow option
IF(SPCOPT.EQ.1) THEN
DO 5 P3 =1,2
DO 5 P3P=1,2
RHOSPN(P3,P3P,IP) = ZERO
DO 5 IF1=1,NCFL(1)
DO 5 IF2=1,NCFL(1)
DO 5 P1 =1,2
DO 5 P1P=1,2
DO 5 P2 =1,2
DO 5 P2P=1,2
DO 5 P4 =1,2
DO 5 P4P=1,2
5 RHOSPN(P3,P3P,IP) = RHOSPN(P3,P3P,IP)+SPNCFC(IF1,IF2,1)*
& MESPN(P1 ,P2 ,P3 ,P4 ,IF1,1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,IF2,1))*
& RHOLP(P1,P1P)*RHOPS(P2,P2P)*RHOSPN(P4,P4P,IP+1)
C--if using second colour flow option
ELSEIF(SPCOPT.EQ.2) THEN
DO 6 P3 =1,2
DO 6 P3P=1,2
RHOSPN(P3,P3P,IP) = ZERO
DO 6 P1 =1,2
DO 6 P1P=1,2
DO 6 P2 =1,2
DO 6 P2P=1,2
DO 6 P4 =1,2
DO 6 P4P=1,2
6 RHOSPN(P3,P3P,IP) = RHOSPN(P3,P3P,IP)
& +SPNCFC(NCFL(1),NCFL(1),1)*
& MESPN(P1 ,P2 ,P3 ,P4 ,NCFL(1),1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,NCFL(1),1))*
& RHOLP(P1,P1P)*RHOPS(P2,P2P)*RHOSPN(P4,P4P,IP+1)
C--unknown option issue warning
ELSE
CALL HWWARN('HWDSI1',501)
ENDIF
C--second decay product
ELSE
IF(SPCOPT.EQ.1) THEN
DO 10 P4 =1,2
DO 10 P4P=1,2
RHOSPN(P4,P4P,IP) = (0.0D0,0.0D0)
DO 10 IF1=1,NCFL(1)
DO 10 IF2=1,NCFL(1)
DO 10 P1 =1,2
DO 10 P1P=1,2
DO 10 P2 =1,2
DO 10 P2P=1,2
DO 10 P3 =1,2
DO 10 P3P=1,2
10 RHOSPN(P4,P4P,IP) = RHOSPN(P4,P4P,IP)+SPNCFC(IF1,IF2,1)*
& MESPN(P1 ,P2 ,P3 ,P4 ,IF1,1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,IF2,1))*
& RHOLP(P1,P1P)*RHOPS(P2,P2P)*RHOSPN(P3,P3P,IP-1)
ELSEIF(SPCOPT.EQ.2) THEN
DO 11 P4 =1,2
DO 11 P4P=1,2
RHOSPN(P4,P4P,IP) = (0.0D0,0.0D0)
DO 11 P1 =1,2
DO 11 P1P=1,2
DO 11 P2 =1,2
DO 11 P2P=1,2
DO 11 P3 =1,2
DO 11 P3P=1,2
11 RHOSPN(P4,P4P,IP) = RHOSPN(P4,P4P,IP)
& +SPNCFC(NCFL(1),NCFL(1),1)*
& MESPN(P1 ,P2 ,P3 ,P4 ,NCFL(1),1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,NCFL(1),1))*
& RHOLP(P1,P1P)*RHOPS(P2,P2P)*RHOSPN(P3,P3P,IP-1)
ELSE
CALL HWWARN('HWDSI1',502)
GOTO 999
ENDIF
ENDIF
C--new for four body gauge boson pair processes
ELSEIF(NPR.EQ.4) THEN
C--first particle
IF(IP.EQ.JDASPN(1,IDEC)) THEN
DO 41 P1 =1,2
DO 41 P1P=1,2
RHOSPN(P1,P1P,IP) = (0.0D0,0.0D0)
DO 41 P3 =1,2
DO 41 P3P=1,2
DO 41 P5 =1,2
DO 41 P5P=1,2
41 RHOSPN(P1,P1P,IP) = RHOSPN(P1,P1P,IP)+
& MESPN(P5,P1,P3,1,1,1)*DCONJG(MESPN(P5P,P1P,P3P,1,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(1,IDEC)+2)*
& RHOSPN(P3,P3P,JDASPN(2,IDEC))
C--second particle
ELSEIF(IP.EQ.JDASPN(1,IDEC)+1) THEN
DO 42 P1 =1,2
DO 42 P1P=1,2
RHOSPN(P1,P1P,IP) = (0.0D0,0.0D0)
DO 42 P3 =1,2
DO 42 P3P=1,2
DO 42 P5 =1,2
DO 42 P5P=1,2
42 RHOSPN(P1,P1P,IP) = RHOSPN(P1,P1P,IP)+
& MESPN(P5,P1,P3,1,1,1)*DCONJG(MESPN(P5P,P1P,P3P,1,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P3,P3P,JDASPN(1,IDEC)+2)*
& RHOSPN(P3,P3P,JDASPN(2,IDEC))
C--third particle
ELSEIF(IP.EQ.JDASPN(1,IDEC)+2) THEN
DO 43 P3 =1,2
DO 43 P3P=1,2
RHOSPN(P3,P3P,IP) = (0.0D0,0.0D0)
DO 43 P1 =1,2
DO 43 P1P=1,2
DO 43 P5 =1,2
DO 43 P5P=1,2
43 RHOSPN(P3,P3P,IP) = RHOSPN(P3,P3P,IP)+
& MESPN(P5,P1,P3,1,1,1)*DCONJG(MESPN(P5P,P1P,P3P,1,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(2,IDEC))
C--fourth particle
ELSEIF(IP.EQ.JDASPN(2,IDEC)) THEN
DO 44 P3 =1,2
DO 44 P3P=1,2
RHOSPN(P3,P3P,IP) = (0.0D0,0.0D0)
DO 44 P1 =1,2
DO 44 P1P=1,2
DO 44 P5 =1,2
DO 44 P5P=1,2
44 RHOSPN(P3,P3P,IP) = RHOSPN(P3,P3P,IP)+
& MESPN(P5,P1,P3,1,1,1)*DCONJG(MESPN(P5P,P1P,P3P,1,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(1,IDEC)+2)
C--unrecognized issue warning
ELSE
CALL HWWARN('HWDSI1',509)
GOTO 999
ENDIF
C--unrecognized issue warning
ELSE
CALL HWWARN('HWDSI1',508)
GOTO 999
ENDIF
ELSE
NPR = JDASPN(2,IDEC)-JDASPN(1,IDEC)+1
DO 50 P1 =1,2
DO 50 P1P=1,2
50 RHOSPN(P1,P1P,IP) = (0.0D0,0.0D0)
C--set-up matrix for 2-body decay
IF(NPR.EQ.2) THEN
IF(NCFL(IDEC).NE.1) CALL HWWARN('HWDSI1',503)
IF(IP.EQ.JDASPN(1,IDEC)) THEN
DO 60 P0 =1,2
DO 60 P0P=1,2
DO 60 P1 =1,2
DO 60 P1P=1,2
DO 60 P2 =1,2
DO 60 P2P=1,2
60 RHOSPN(P1,P1P,IP) = RHOSPN(P1,P1P,IP)+RHOSPN(P0,P0P,IDEC)*
& MESPN(P0 ,P1 ,P2 ,1,1,IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,1,1,IDEC))*
& RHOSPN(P2,P2P,JDASPN(2,IDEC))
ELSE
DO 70 P0 =1,2
DO 70 P0P=1,2
DO 70 P1 =1,2
DO 70 P1P=1,2
DO 70 P2 =1,2
DO 70 P2P=1,2
70 RHOSPN(P2,P2P,IP) = RHOSPN(P2,P2P,IP)+RHOSPN(P0,P0P,IDEC)*
& MESPN(P0 ,P1 ,P2 ,1,1,IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,1,1,IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))
ENDIF
C--set-up matrix for 3-body decay
ELSEIF(NPR.EQ.3) THEN
IF(SPCOPT.NE.2.AND.NCFL(IDEC).NE.1)
& CALL HWWARN('HWDSI1',504)
C--first particle
IF(IP.EQ.JDASPN(1,IDEC)) THEN
DO 100 P0 =1,2
DO 100 P0P=1,2
DO 100 P1 =1,2
DO 100 P1P=1,2
DO 100 P2 =1,2
DO 100 P2P=1,2
DO 100 P3 =1,2
DO 100 P3P=1,2
100 RHOSPN(P1,P1P,IP) = RHOSPN(P1,P1P,IP)+RHOSPN(P0,P0P,IDEC)*
& MESPN(P0 ,P1 ,P2 ,P3 ,NCFL(IDEC),IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,P3P,NCFL(IDEC),IDEC))*
& RHOSPN(P2,P2P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(2,IDEC))
C--second particle
ELSEIF(IP.EQ.JDASPN(1,IDEC)+1) THEN
DO 105 P0 =1,2
DO 105 P0P=1,2
DO 105 P1 =1,2
DO 105 P1P=1,2
DO 105 P2 =1,2
DO 105 P2P=1,2
DO 105 P3 =1,2
DO 105 P3P=1,2
105 RHOSPN(P2,P2P,IP) = RHOSPN(P2,P2P,IP)+RHOSPN(P0,P0P,IDEC)*
& MESPN(P0 ,P1 ,P2 ,P3 ,NCFL(IDEC),IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,P3P,NCFL(IDEC),IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P3,P3P,JDASPN(2,IDEC))
C--third particle
ELSEIF(IP.EQ.JDASPN(2,IDEC)) THEN
DO 110 P0 =1,2
DO 110 P0P=1,2
DO 110 P1 =1,2
DO 110 P1P=1,2
DO 110 P2 =1,2
DO 110 P2P=1,2
DO 110 P3 =1,2
DO 110 P3P=1,2
110 RHOSPN(P3,P3P,IP) = RHOSPN(P3,P3P,IP)+RHOSPN(P0,P0P,IDEC)*
& MESPN(P0 ,P1 ,P2 ,P3 ,NCFL(IDEC),IDEC)*
& DCONJG(MESPN(P0P,P1P,P2P,P3P,NCFL(IDEC),IDEC))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P2,P2P,JDASPN(1,IDEC)+1)
C--unrecognized
ELSE
CALL HWWARN('HWDSI1',102)
GOTO 999
ENDIF
ELSEIF(NPR.EQ.4) THEN
C--first particle
IF(IP.EQ.JDASPN(1,IDEC)) THEN
DO 151 P1 =1,2
DO 151 P1P=1,2
RHOSPN(P1,P1P,IP) = (0.0D0,0.0D0)
DO 151 P2 =1,2
DO 151 P2P=1,2
DO 151 P3 =1,2
DO 151 P3P=1,2
DO 151 P4 =1,2
DO 151 P4P=1,2
151 RHOSPN(P1,P1P,IP) = RHOSPN(P1,P1P,IP)+
& MESPN(P1 ,P2 ,P3 ,P4 ,1,1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,1,1))*
& RHOSPN(P2,P2P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(1,IDEC)+2)*
& RHOSPN(P4,P4P,JDASPN(2,IDEC))
C--second particle
ELSEIF(IP.EQ.JDASPN(1,IDEC)+1) THEN
DO 152 P2 =1,2
DO 152 P2P=1,2
RHOSPN(P2,P2P,IP) = (0.0D0,0.0D0)
DO 152 P1 =1,2
DO 152 P1P=1,2
DO 152 P3 =1,2
DO 152 P3P=1,2
DO 152 P4 =1,2
DO 152 P4P=1,2
152 RHOSPN(P2,P2P,IP) = RHOSPN(P2,P2P,IP)+
& MESPN(P1 ,P2 ,P3 ,P4 ,1,1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P3,P3P,JDASPN(1,IDEC)+2)*
& RHOSPN(P4,P4P,JDASPN(2,IDEC))
C--third particle
ELSEIF(IP.EQ.JDASPN(1,IDEC)+2) THEN
DO 153 P3 =1,2
DO 153 P3P=1,2
RHOSPN(P3,P3P,IP) = (0.0D0,0.0D0)
DO 153 P1 =1,2
DO 153 P1P=1,2
DO 153 P2 =1,2
DO 153 P2P=1,2
DO 153 P4 =1,2
DO 153 P4P=1,2
153 RHOSPN(P3,P3P,IP) = RHOSPN(P3,P3P,IP)+
& MESPN(P1 ,P2 ,P3 ,P4 ,1,1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P2,P2P,JDASPN(1,IDEC)+1)*
& RHOSPN(P4,P4P,JDASPN(2,IDEC))
C--fourth particle
ELSEIF(IP.EQ.JDASPN(2,IDEC)) THEN
DO 154 P4 =1,2
DO 154 P4P=1,2
RHOSPN(P4,P4P,IP) = (0.0D0,0.0D0)
DO 154 P1 =1,2
DO 154 P1P=1,2
DO 154 P2 =1,2
DO 154 P2P=1,2
DO 154 P3 =1,2
DO 154 P3P=1,2
154 RHOSPN(P4,P4P,IP) = RHOSPN(P4,P4P,IP)+
& MESPN(P1 ,P2 ,P3 ,P4 ,1,1)*
& DCONJG(MESPN(P1P,P2P,P3P,P4P,1,1))*
& RHOSPN(P1,P1P,JDASPN(1,IDEC))*
& RHOSPN(P2,P2P,JDASPN(1,IDEC)+1)*
& RHOSPN(P3,P3P,JDASPN(1,IDEC)+2)
ELSE
CALL HWWARN('HWDSI1',505)
ENDIF
ELSE
CALL HWWARN('HWDSI1',506)
ENDIF
ENDIF
C--normalise the spin density matrix
NORM = DBLE(RHOSPN(1,1,IP))+DBLE(RHOSPN(2,2,IP))
IF(NORM.GT.ZERO) THEN
NORM = ONE/NORM
DO 15 P3=1,2
DO 15 P3P=1,2
15 RHOSPN(P3,P3P,IP) = NORM*RHOSPN(P3,P3P,IP)
ELSE
CALL HWWARN('HWDSI1',107)
GOTO 999
ENDIF
ENDIF
999 RETURN
END
CDECK ID>, HWDSI2.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSI2(IHEP,IM,NPR,MHEP,KHEP,PW)
C-----------------------------------------------------------------------
C Subroutine to perform the second part of the heavy object decays
C IE generate the kinematics for the decay
C including spin correlations
C was part of HWDHOB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,PW(5),HWDPWT,HWDWWT,PCM,HWUPCM
INTEGER IHEP,IM,KHEP,MHEP,NPR,ISN,RHEP
EXTERNAL HWRGEN,HWDPWT,HWDWWT,HWUPCM
IF (IERROR.NE.0) RETURN
ISN = ISNHEP(IHEP)
IF (NPR.EQ.2) THEN
C Two body decay: LHEP -> MHEP + NHEP
IF(NME(IM).GT.20000.AND.NME(IM).LT.30000) THEN
C--generate a two body decay to a gauge boson as a three body decay
CALL HWDSM3(2,IHEP,MHEP,NHEP,0,NME(IM)-20000,
& RHOSPN(1,1,ISN),ISN)
C--two body decay
ELSEIF(NME(IM).GT.30000.AND.NME(IM).LT.40000) THEN
CALL HWDSM2(IHEP,MHEP,NHEP,NME(IM)-30000,
& RHOSPN(1,1,ISN),ISN)
C--otherwise issue warning
C--change by PR 9/30/02 to issue non-terminal warning and continue
ELSE
CALL HWWARN('HWDSI2',1)
PCM=HWUPCM(PHEP(5,IHEP),PHEP(5,MHEP),PHEP(5,NHEP))
CALL HWDTWO(PHEP(1,IHEP),PHEP(1,MHEP),
& PHEP(1,NHEP),PCM,TWO,.FALSE.)
DECSPN(ISN) = .TRUE.
IF(RSPIN(IDHW(IHEP)).EQ.ZERO) THEN
RHOSPN(1,1,ISN) = ONE
RHOSPN(1,2,ISN) = ZERO
RHOSPN(2,1,ISN) = ZERO
RHOSPN(2,2,ISN) = ZERO
ELSE
RHOSPN(1,1,ISN) = HALF
RHOSPN(1,2,ISN) = ZERO
RHOSPN(2,1,ISN) = ZERO
RHOSPN(2,2,ISN) = HALF
ENDIF
ENDIF
ELSEIF (NPR.EQ.3) THEN
C Three body decay: LHEP -> KHEP + MHEP + NHEP
KHEP=MHEP
MHEP=MHEP+1
C Provisional colour self-connection of KHEP
JMOHEP(2,KHEP)=KHEP
JDAHEP(2,KHEP)=KHEP
C--if old codes issue warning
IF (NME(IM).EQ.100.OR.NME(IM).EQ.200.OR.NME(IM).EQ.300) THEN
CALL HWWARN('HWDSI2',502)
C--three body spin matrix element
ELSEIF(NME(IM).GE.10000.AND.NME(IM).LT.20000) THEN
CALL HWDSM3(3,IHEP,MHEP,KHEP,NHEP,NME(IM)-10000,
& RHOSPN(1,1,ISN),ISN)
C--special for top decay
IF(ABS(IDHEP(IHEP)).EQ.6) THEN
CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
CALL HWUMAS(PW)
ENDIF
C--unknown issue warning
ELSE
CALL HWWARN('HWDSI2',2)
C Three body phase space decay
CALL HWDTHR(PHEP(1,IHEP),PHEP(1,MHEP),
& PHEP(1,KHEP),PHEP(1,NHEP),HWDPWT)
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,MHEP))
DECSPN(ISN) = .TRUE.
IF(RSPIN(IDHW(IHEP)).EQ.ZERO) THEN
RHOSPN(1,1,ISN) = ONE
RHOSPN(1,2,ISN) = ZERO
RHOSPN(2,1,ISN) = ZERO
RHOSPN(2,2,ISN) = ZERO
ELSE
RHOSPN(1,1,ISN) = HALF
RHOSPN(1,2,ISN) = ZERO
RHOSPN(2,1,ISN) = ZERO
RHOSPN(2,2,ISN) = HALF
ENDIF
ENDIF
ELSEIF(NPR.EQ.4) THEN
CALL HWWARN('HWDSI2',3)
C Four body decay: LHEP -> KHEP + RHEP + MHEP + NHEP
KHEP = MHEP
RHEP = MHEP+1
MHEP = MHEP+2
ISTHEP(NHEP) = 114
C Provisional colour connections of KHEP and RHEP
JMOHEP(2,KHEP)=RHEP
JDAHEP(2,KHEP)=RHEP
JMOHEP(2,RHEP)=KHEP
JDAHEP(2,RHEP)=KHEP
C Four body phase space decay
CALL HWDFOR(PHEP(1,IHEP),PHEP(1,KHEP),PHEP(1,RHEP),
& PHEP(1,MHEP),PHEP(1,NHEP))
IF(IERROR.NE.0) RETURN
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,RHEP))
CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,MHEP))
DECSPN(ISN) = .TRUE.
IF(RSPIN(IDHW(IHEP)).EQ.ZERO) THEN
RHOSPN(1,1,ISN) = ONE
RHOSPN(1,2,ISN) = ZERO
RHOSPN(2,1,ISN) = ZERO
RHOSPN(2,2,ISN) = ZERO
ELSE
RHOSPN(1,1,ISN) = HALF
RHOSPN(1,2,ISN) = ZERO
RHOSPN(2,1,ISN) = ZERO
RHOSPN(2,2,ISN) = HALF
ENDIF
ELSE
CALL HWWARN('HWDSI2',100)
ENDIF
END
CDECK ID>, HWDSI3.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSI3(IP)
C-----------------------------------------------------------------------
C Subroutine to handle spin correlations in tau decays
C averages spin if not using TAUOLA
C if using TAUOLA selects the spin and uses TAUOLA to perform the
C decay
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IP,IHEP,ID1,ID,NTRY
DOUBLE PRECISION PPOL,HWRGEN,POL
EXTERNAL HWRGEN
C--if HERWIG is performing tau decays average over spins and return
C--spin averaged tau decay will be done later
IF(TAUDEC.EQ.'HERWIG') THEN
DECSPN(IP) = .TRUE.
RHOSPN(1,1,IP) = HALF
RHOSPN(2,1,IP) = ZERO
RHOSPN(1,2,IP) = ZERO
RHOSPN(2,2,IP) = HALF
C--if using tauola select the polarization for the decay
ELSEIF(TAUDEC.EQ.'TAUOLA') THEN
C--work out where that particle is
IHEP = IDSPN(IP)
NTRY = 0
10 ID = IDHW(IHEP)
IF(JDAHEP(1,IHEP).NE.0) THEN
IF(ISTHEP(IHEP).GE.141.AND.ISTHEP(IHEP).LE.144) THEN
DO ID1=JDAHEP(1,IHEP),JDAHEP(2,IHEP)
IF(IDHW(ID1).EQ.ID) IHEP=ID1
ENDDO
ELSE
IHEP = JDAHEP(1,IHEP)
ENDIF
NTRY = NTRY+1
IF(NTRY.LT.NBTRY) THEN
GOTO 10
ELSE
CALL HWWARN('HWDSI3',100)
GOTO 999
ENDIF
ENDIF
C--select the tau polarization
PPOL = DBLE(RHOSPN(1,1,IP))
IF(PPOL.GE.HWRGEN(0)) THEN
POL = 1.0D0
RHOSPN(1,1,IP) = ONE
RHOSPN(2,1,IP) = ZERO
RHOSPN(1,2,IP) = ZERO
RHOSPN(2,2,IP) = ZERO
ELSE
POL =-1.0D0
RHOSPN(1,1,IP) = ZERO
RHOSPN(2,1,IP) = ZERO
RHOSPN(1,2,IP) = ZERO
RHOSPN(2,2,IP) = ONE
ENDIF
C--decay the particle
CALL HWDTAU(1,IHEP,POL)
DECSPN(IP) = .TRUE.
ELSE
CALL HWWARN('HWDSI3',500)
ENDIF
999 RETURN
END
CDECK ID>, HWDSM2.
*CMZ :- -09/04/02 13:46:07 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSM2(ID,IOUT1,IOUT2,IMODE,RHOIN,IDSPIN)
C-----------------------------------------------------------------------
C Subroutine to calculate the two body matrix element for spin
C correlations
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOUT1,IOUT2,IMODE,IDSPIN,ID,I,J,IDP(3),P0,P1,P2,O(2),P0P,
& NTRY
DOUBLE PRECISION XMASS,PLAB,PRW,PCM,PREF(5),P(5,3),PM(5,3),PCMA,
& HWUPCM,MA(3),MA2(3),HWULDO,PP,HWVDOT,N(3),EPS,PRE,PHS,A(2),
& WGT,WTMAX,HWRGEN
DOUBLE COMPLEX RHOIN(2,2),S,D,ME(2,2,2),F1(2,2,8),F0(2,2,8),
& F2M(2,2,8),F1M(2,2,8),F1F(2,2,8),F2(2,2,8,8),F0B(2,2,8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
SAVE O,PREF
DATA PREF/1.0D0,0.0D0,0.0D0,1.0D0,0.0D0/
DATA O/2,1/
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(EPS=1D-20)
EXTERNAL HWUPCM,HWULDO,HWVDOT,HWRGEN
C--first setup if this is the start of a new spin chain
IF(NSPN.EQ.0) THEN
C--zero the elements of the array
CALL HWVZRI( NMXHEP,ISNHEP)
CALL HWVZRI( NMXSPN,JMOSPN)
CALL HWVZRI(2*NMXSPN,JDASPN)
CALL HWVZRI( NMXSPN, IDSPN)
NSPN = NSPN+1
JMOSPN(NSPN) = 0
IDSPN (NSPN) = ID
DECSPN(NSPN) = .FALSE.
IF(RSPIN(IDHW(ID)).EQ.ZERO) THEN
RHOSPN(1,1,NSPN) = ONE
RHOSPN(2,1,NSPN) = ZERO
RHOSPN(1,2,NSPN) = ZERO
RHOSPN(2,2,NSPN) = ZERO
ELSE
RHOSPN(1,1,NSPN) = HALF
RHOSPN(2,1,NSPN) = ZERO
RHOSPN(1,2,NSPN) = ZERO
RHOSPN(2,2,NSPN) = HALF
ENDIF
ISNHEP(ID) = NSPN
ENDIF
C--MA is mass for this decay (OFF-SHELL)
C--generate the momenta for a two body decay
P(5,1) = PHEP(5, ID)
P(5,2) = PHEP(5,IOUT1)
P(5,3) = PHEP(5,IOUT2)
IDP(1) = IDHW(ID)
IDP(2) = IDHW(IOUT1)
IDP(3) = IDHW(IOUT2)
DO 1 I=1,3
MA(I) = P(5,I)
1 MA2(I) = MA(I)**2
PCMA = HWUPCM(P(5,1),P(5,2),P(5,3))
C--setup the couplings
DO 2 I=1,2
2 A(I) = A2MODE(I,IMODE)
C--phase space factor
PHS = PCMA/MA2(1)/8.0D0/PIFAC
C--maximum weight
WTMAX = WT2MAX(IMODE)
NTRY = 0
1000 NTRY = NTRY+1
CALL HWVEQU(5,PHEP(1,ID),P(1,1))
CALL HWDTWO(P(1,1),P(1,2),P(1,3),PCMA,2.0D0,.TRUE.)
DO 3 I=1,3
C--compute the references vectors
C--not important if SM particle which can't have spin measured
C--ie anything other the top and tau
C--also not important if particle is approx massless
C--first the SM particles other than top and tau
IF(IDP(I).LT.400.AND.(IDP(I).NE.6.AND.IDP(I).NE.12
& .AND.IDP(I).NE.125.AND.IDP(I).NE.131)) THEN
CALL HWVEQU(5,PREF,PLAB(1,I+3))
C--all other particles
ELSE
PP = SQRT(HWVDOT(3,P(1,I),P(1,I)))
CALL HWVSCA(3,ONE/PP,P(1,I),N)
PLAB(4,I+3) = HALF*(P(4,I)-PP)
PP = HALF*(PP-MA(I)-PP**2/(MA(I)+P(4,I)))
CALL HWVSCA(3,PP,N,PLAB(1,I+3))
CALL HWUMAS(PLAB(1,I+3))
PP = HWVDOT(3,PLAB(1,I+3),PLAB(1,I+3))
C--fix to avoid problems if approx massless due to energy
IF(PP.LT.EPS) CALL HWVEQU(5,PREF,PLAB(1,I+3))
ENDIF
C--now the massless vectors
PP = HALF*P(5,I)**2/HWULDO(PLAB(1,I+3),P(1,I))
DO 4 J=1,4
4 PLAB(J,I) = P(J,I)-PP*PLAB(J,I+3)
3 CALL HWUMAS(PLAB(1,I))
C--change order of momenta for call to HE code
DO 5 I=1,3
PM(1,I) = P(3,I)
PM(2,I) = P(1,I)
PM(3,I) = P(2,I)
PM(4,I) = P(4,I)
5 PM(5,I) = P(5,I)
DO 6 I=1,6
PCM(1,I)=PLAB(3,I)
PCM(2,I)=PLAB(1,I)
PCM(3,I)=PLAB(2,I)
PCM(4,I)=PLAB(4,I)
6 PCM(5,I)=PLAB(5,I)
C--compute the S functions
CALL HWHEW2(6,PCM(1,1),S(1,1,2),S(1,1,1),D)
DO 7 I=1,6
DO 7 J=1,6
S(I,J,2) = -S(I,J,2)
7 D(I,J) = TWO*D(I,J)
C--now compute the F functions needed
CALL HWH2F2(6,F1 ,5,PM(1,2), MA(2))
CALL HWH2F2(6,F0 ,4,PM(1,1), MA(1))
CALL HWH2F2(6,F1M,5,PM(1,2),-MA(2))
CALL HWH2F2(6,F2M,6,PM(1,3),-MA(3))
CALL HWH2F1(6,F1F,5,PM(1,2), MA(2))
CALL HWH2F3(6,F2 ,PM(1,3),ZERO )
CALL HWH2F3(6,F0B ,PM(1,1),ZERO )
C--now compute the diagrams
C--fermion --> fermion scalar
IF(I2DRTP(IMODE).EQ.1) THEN
PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,2),PCM(1,5))
PRE = HALF/SQRT(PRE)
DO 10 P0=1,2
DO 10 P1=1,2
ME(P0,P1,2) = (0.0D0,0.0D0)
10 ME(P0,P1,1) = PRE*( A(O(P1))*S(5,2,O(P1))*F0( P1 ,O(P0),2)
& +A( P1 )*MA(2)* F0(O(P1),O(P0),5))
C--fermion --> scalar fermion diagrams
ELSEIF(I2DRTP(IMODE).EQ.2) THEN
PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
PRE = HALF/SQRT(PRE)
DO 20 P0=1,2
DO 20 P2=1,2
ME(P0,2,P2) = (0.0D0,0.0D0)
20 ME(P0,1,P2) = PRE*( A(O(P2))*S(6,3,O(P2))*F0( P2 ,O(P0),3)
& +A( P2 )*MA(3)* F0(O(P2),O(P0),6))
C--fermion --> scalar antifermion
ELSEIF(I2DRTP(IMODE).EQ.3) THEN
PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
PRE =-HALF/SQRT(PRE)
DO 30 P0=1,2
DO 30 P2=1,2
ME(P0,2,P2) = (0.0D0,0.0D0)
30 ME(P0,1,P2) = PRE*( A( P0 )*S(4,1,P0)*F2M(O(P0),O(P2),1)
& -A(O(P0))*MA(1) *F2M( P0 ,O(P2),4))
C--fermion --> fermion gauge boson
ELSEIF(I2DRTP(IMODE).EQ.4) THEN
PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,2),PCM(1,5))*
& HWULDO(PM(1,3),PCM(1,6))
PRE = HALF/SQRT(PRE)
DO 40 P0=1,2
DO 40 P1=1,2
ME(P0,P1,1) =-PRE*A(1)*F1F(O(P1),2,3)*S(3,6,2)*F0(1,O(P0),3)
40 ME(P0,P1,2) = PRE* F1F(O(P1),1,3)*S(3,6,1)*F0(2,O(P0),3)
C--scalar --> fermion antifermion
ELSEIF(I2DRTP(IMODE).EQ.5) THEN
PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
PRE =-HALF/SQRT(PRE)
DO 50 P1=1,2
DO 50 P2=1,2
ME(2,P1,P2) = (0.0D0,0.0D0)
50 ME(1,P1,P2) = PRE*( A(O(P1))*S(5,2,O(P1))*F2M( P1 ,O(P2),2)
& +A( P1 )*MA(2)* F2M(O(P1),O(P2),5))
C--scalar --> fermion fermion
ELSEIF(I2DRTP(IMODE).EQ.6) THEN
PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
PRE = HALF/SQRT(PRE)
DO 60 P1=1,2
DO 60 P2=1,2
ME(2,P1,P2) = (0.0D0,0.0D0)
60 ME(1,P1,P2) = PRE*( A(O(P2))*S(6,3,O(P2))*F1M( P2 ,P1,3)
& +A( P2 )*MA(3)* F1M(O(P2),P1,6))
C--fermion --> fermion pion
ELSEIF(I2DRTP(IMODE).EQ.7) THEN
PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,2),PCM(1,5))
PRE = 0.25D0/SQRT(PRE)/RMASS(198)**2
DO 70 P0=1,2
DO 70 P1=1,2
ME(P0,P1,2) = (0.0D0,0.0D0)
70 ME(P0,P1,1) =PRE*(
& MA(1)*A(O(P0))*( S(5,2,O(P1))*F2( P1 ,O(P0),2,4)
& +MA(2)*F2(O(P1),O(P0),5,4))
& +A(P0)*S(1,4,P0)*( S(5,2,O(P1))*F2( P1 , P0 ,2,1)
& +MA(2)*F2(O(P1), P0 ,5,1)))
C--scalar --> antifermion fermion
ELSEIF(I2DRTP(IMODE).EQ.8) THEN
PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
PRE =-HALF/SQRT(PRE)
DO 80 P1=1,2
DO 80 P2=1,2
ME(2,P1,P2) = (0.0D0,0.0D0)
80 ME(1,P1,P2) = PRE*( A(O(P2))*S(6,3,O(P2))*F1M( P2 ,O(P1),3)
& +A( P2 )*MA(3)* F1M(O(P2),O(P1),6))
C--neutralino --> gravitino photon
ELSEIF(I2DRTP(IMODE).EQ.9) THEN
PRE = TWO*HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
PRE = TWO/SQRT(PRE)
DO 90 P1=1,2
DO 90 P2=1,2
ME(P1,P2,O(P2)) = (0.0D0,0.0D0)
90 ME(P1,P2, P2 ) = PRE*S(2,3,P2)*S(3,6,O(P2))*
& S(3,2,P2)*F0(O(P2),P1,2)
C--neutralino --> gravitino scalar
ELSEIF(I2DRTP(IMODE).EQ.10) THEN
PRE = TWO*HWULDO(PM(1,1),PCM(1,4))
PRE = ONE/SQRT(PRE)
DO 100 P1=1,2
DO 100 P2=1,2
ME(P1,P2,2) = (0.0D0,0.0D0)
100 ME(P1,P2,1) = PRE*F2(P2,1,2,2)*F0(1,O(P1),2)
C--sfermion --> fermion gravitino
ELSEIF(I2DRTP(IMODE).EQ.11) THEN
PRE = TWO*HWULDO(PM(1,2),PCM(1,5))
PRE = ONE/SQRT(PRE)
DO 110 P1=1,2
DO 110 P2=1,2
ME(2,P1,P2) = (0.0D0,0.0D0)
110 ME(1,P1,P2) = PRE*A(O(P2))*F1M(O(P1),P2,3)*F0B(P2,P2,3,3)
C--antisfermion --> antifermion gravitino
ELSEIF(I2DRTP(IMODE).EQ.12) THEN
PRE = TWO*HWULDO(PM(1,2),PCM(1,5))
PRE = ONE/SQRT(PRE)
DO 120 P1=1,2
DO 120 P2=1,2
ME(2,P1,P2) = (0.0D0,0.0D0)
120 ME(1,P1,P2) = PRE*A(O(P2))*F0B(P2,P2,3,3)*F1(P2,O(P1),3)
C--scalar --> antifermion antifermion
ELSEIF(I2DRTP(IMODE).EQ.13) THEN
PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
PRE = HALF/SQRT(PRE)
DO 130 P1=1,2
DO 130 P2=1,2
ME(2,P1,P2) = (0.0D0,0.0D0)
130 ME(1,P1,P2) = PRE*( A( P1 )*S(5,2, P1 )*F2M(O(P1),O(P2),2)
& +A(O(P1))*MA(2) *F2M( P1 ,O(P2),5))
C--antifermion --> scalar antifermion
ELSEIF(I2DRTP(IMODE).EQ.14) THEN
PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
PRE = HALF/SQRT(PRE)
DO 140 P0=1,2
DO 140 P2=1,2
ME(P0,2,P2) = (0.0D0,0.0D0)
140 ME(P0,1,P2) = PRE*( A(O(P0))*S(4,1,O(P0))*F2M( P0 ,O(P2),1)
& -A( P0 )*MA(1) *F2M(O(P0),O(P2),4))
C--unrecognized type of diagram
ELSE
CALL HWWARN('HWDSM2',500)
ENDIF
C--now compute the weight
WGT = ZERO
DO 500 P0 =1,2
DO 500 P0P=1,2
DO 500 P1 =1,2
DO 500 P2 =1,2
500 WGT = WGT+PHS*P2MODE(IMODE)*DREAL(
& ME(P0,P1,P2)*DCONJG(ME(P0P,P1,P2))*RHOIN(P0,P0P))
IF(I2DRTP(IMODE).EQ.5.OR.I2DRTP(IMODE).EQ.6.OR.
& I2DRTP(IMODE).EQ.8.OR.I2DRTP(IMODE).EQ.13) GOTO 300
C--issue warning if greater than maximum
IF(WGT.GT.WTMAX) THEN
CALL HWWARN('HWDSM2',1)
WRITE(6,2000) RNAME(IDK(ID2PRT(IMODE))),
& RNAME(IDKPRD(1,ID2PRT(IMODE))),RNAME(IDKPRD(2,ID2PRT(IMODE))),
& WTMAX,1.1D0*WGT
WT2MAX(IMODE) = 1.1D0*WGT
WTMAX = WT2MAX(IMODE)
ENDIF
IF(HWRGEN(0)*WTMAX.GT.WGT.AND.NTRY.LT.NSNTRY) GOTO 1000
IF(NTRY.GE.NSNTRY) THEN
CALL HWWARN('HWDSM2',100)
GOTO 999
ENDIF
C--now enter the momenta in the common block
300 CALL HWVEQU(5,P(1,2),PHEP(1,IOUT1))
CALL HWVEQU(5,P(1,3),PHEP(1,IOUT2))
C--set up the spin information
C--setup for all decays
JMOSPN(NSPN+1) = IDSPIN
JMOSPN(NSPN+2) = IDSPIN
JDASPN(1,IDSPIN) = NSPN+1
JDASPN(2,IDSPIN) = NSPN+2
IDSPN(NSPN+1) = IOUT1
IDSPN(NSPN+2) = IOUT2
DO 11 I=1,2
DECSPN(NSPN+I) = .FALSE.
DO 11 J=1,2
11 JDASPN(I,NSPN+J) = 0
ISNHEP(IOUT1) = NSPN+1
ISNHEP(IOUT2) = NSPN+2
DO 12 I=1,2
IF(RSPIN(IDHW(IDSPN(NSPN+I))).EQ.ZERO) THEN
RHOSPN(1,1,NSPN+I) = ONE
RHOSPN(2,1,NSPN+I) = ZERO
RHOSPN(1,2,NSPN+I) = ZERO
RHOSPN(2,2,NSPN+I) = ZERO
ELSE
RHOSPN(1,1,NSPN+I) = HALF
RHOSPN(2,1,NSPN+I) = ZERO
RHOSPN(1,2,NSPN+I) = ZERO
RHOSPN(2,2,NSPN+I) = HALF
ENDIF
12 CONTINUE
NSPN = NSPN+2
C--now enter the matrix element
DO 150 P0=1,2
DO 150 P1=1,2
DO 150 P2=1,2
MESPN(P0,P1,P2,2,1,IDSPIN) = (0.0D0,0.0D0)
150 MESPN(P0,P1,P2,1,1,IDSPIN) = ME(P0,P1,P2)
SPNCFC(1,1,IDSPIN) = ONE
NCFL(IDSPIN) = 1
RETURN
C--format statements
2000 FORMAT(/'WEIGHT FOR DECAY ',A8,' --> ',A8,' ',A8, 'EXCEEDS MAX',
& /10X,' MAXIMUM WEIGHT =',1PG24.16,
& /10X,'NEW MAXIMUM WEIGHT =',1PG24.16)
999 RETURN
END
CDECK ID>, HWDSM3.
*CMZ :- -09/04/02 13:46:07 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSM3(NPR,ID,IOUT1,IOUT2,IOUT3,IMODE,RHOIN,IDSPIN)
C-----------------------------------------------------------------------
C Master subroutine for three body SUSY and spin ME's
C Uses HWD3ME to generate the momenta etc
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX F0(2,2,8),F1(2,2,8),F1M(2,2,8),F3(2,2,8),
& F0M(2,2,8),F2(2,2,8),RHOIN(2,2),F01(2,2,8,8)
DOUBLE PRECISION A,B,MS,MWD,MA,MB,MA2,MB2,M342,M232,M242,MR,
& P(5,4),PZ(5),HWRGEN,CV,CA,BR,PM(5,4),CFTHRE(NCFMAX,NCFMAX)
INTEGER ID,IDP(4+NDIAGR),NPR,ITYPE,I,IB,ID1,ID2,IDSPIN,
& DRTYPE(NDIAGR),IOUT(3),IMODE,IOUT1,IOUT2,IOUT3,J,NCTHRE,
& DRCF(NDIAGR)
COMMON/HWD3BY/F0,F0M,F1M,F1,F2,F3,F01,A(2,NDIAGR),B(2,NDIAGR),
& MS(NDIAGR),MWD(NDIAGR),MR(NDIAGR),MA(4),MA2(4),MB(4),MB2(4),
& M342,M232,M242,P,PM,CFTHRE,IDP,DRTYPE,NCTHRE,DRCF
EXTERNAL HWRGEN
SAVE PZ,IOUT,ITYPE,ID1,ID2
C--calculate the matrix element for a three body decay
IF(NPR.EQ.3) THEN
C--set up the decay products, if a SUSY decay the SUSY particle
C--must be the first decay product
IF(ABS(IDHEP(IOUT1)).GT.1000000) THEN
IOUT(1) = IOUT1
IOUT(2) = IOUT2
IOUT(3) = IOUT3
ELSEIF(ABS(IDHEP(IOUT2)).GT.1000000) THEN
IOUT(1) = IOUT2
IOUT(2) = IOUT1
IOUT(3) = IOUT3
ELSEIF(ABS(IDHEP(IOUT3)).GT.1000000) THEN
IOUT(1) = IOUT3
IOUT(2) = IOUT1
IOUT(3) = IOUT3
C--special for top decay (bottom must be first)
ELSEIF(ABS(IDHEP(ID)).EQ.6) THEN
IOUT(1) = IOUT3
IOUT(2) = IOUT1
IOUT(3) = IOUT2
ELSE
IOUT(1) = IOUT2
IOUT(2) = IOUT1
IOUT(3) = IOUT3
ENDIF
C--fermion must be second and antifermion third
IF(IDHEP(IOUT(2)).LT.0.AND.
& (ABS(IDHEP(IOUT(1))).GT.1000000.OR.ABS(IDHEP(ID)).EQ.6)) THEN
I = IOUT(2)
IOUT(2) = IOUT(3)
IOUT(3) = I
ENDIF
C--setup the OFF SHELL MASSES
MA(1) = PHEP(5,ID)
DO 1 I=1,3
1 MA(I+1) = PHEP(5,IOUT(I))
DO 2 I=1,4
2 MA2(I) = MA(I)**2
C--call to ME code
CALL HWD3ME(ID,0,IMODE,RHOIN,IDSPIN)
IF(IERROR.NE.0) RETURN
C--juggle the momenta for the RPV BV gluino if needed
IF(SPCOPT.EQ.2.AND.N3NCFL(IMODE).EQ.3) THEN
IF(NCFL(IDSPIN).EQ.2) THEN
IOUT(1) = IOUT1
IOUT(2) = IOUT2
IOUT(3) = IOUT3
ELSEIF(NCFL(IDSPIN).EQ.3) THEN
IOUT(1) = IOUT3
IOUT(2) = IOUT2
IOUT(3) = IOUT1
ENDIF
DO I=1,3
IDHW(IOUT(I)) = IDP(I+1)
ENDDO
ENDIF
C--copy momenta into event record
DO 3 I=1,3
3 CALL HWVEQU(5,P(1,1+I),PHEP(1,IOUT(I)))
C--enter the spin information in the common block
IF(SYSPIN) THEN
C--set up if start of new spin chain
IF(NSPN.EQ.0) THEN
C--zero the elements
CALL HWVZRI( NMXHEP,ISNHEP)
CALL HWVZRI( NMXSPN,JMOSPN)
CALL HWVZRI(2*NMXSPN,JDASPN)
CALL HWVZRI( NMXSPN, IDSPN)
NSPN = NSPN+1
JMOSPN(NSPN) = 0
IDSPN (NSPN) = ID
DECSPN(NSPN) = .FALSE.
C--set up spin density matrix for particle
IF(RSPIN(IDHW(ID)).EQ.ZERO) THEN
RHOSPN(1,1,NSPN) = ONE
RHOSPN(2,1,NSPN) = ZERO
RHOSPN(1,2,NSPN) = ZERO
RHOSPN(2,2,NSPN) = ZERO
ELSE
RHOSPN(1,1,NSPN) = HALF
RHOSPN(2,1,NSPN) = ZERO
RHOSPN(1,2,NSPN) = ZERO
RHOSPN(2,2,NSPN) = HALF
ENDIF
ISNHEP(ID) = NSPN
ENDIF
C--enter the decay products
JDASPN(1,IDSPIN) = NSPN+1
JDASPN(2,IDSPIN) = NSPN+3
DO 7 I=1,3
JMOSPN(NSPN+I ) = IDSPIN
IDSPN (NSPN+I ) = IOUT(I)
DECSPN(NSPN+I ) = .FALSE.
ISNHEP(IOUT(I) ) = NSPN+I
IF(RSPIN(IDHW(IOUT(I))).EQ.ZERO) THEN
RHOSPN(1,1,NSPN+I) = ONE
RHOSPN(2,1,NSPN+I) = ZERO
RHOSPN(1,2,NSPN+I) = ZERO
RHOSPN(2,2,NSPN+I) = ZERO
ELSE
RHOSPN(1,1,NSPN+I) = HALF
RHOSPN(2,1,NSPN+I) = ZERO
RHOSPN(1,2,NSPN+I) = ZERO
RHOSPN(2,2,NSPN+I) = HALF
ENDIF
DO 7 J=1,2
7 JDASPN(J,NSPN+I) = 0
NSPN = NSPN+3
ENDIF
C--select the decay mode and generate the decay for a two body mode
ELSEIF(NPR.EQ.2) THEN
IF(IDHW(IOUT2).GE.198.AND.IDHW(IOUT2).LE.200) THEN
IB = IDHW(IOUT2)
IOUT(1) = IOUT1
IOUT(2) = IOUT2
ELSEIF(IDHW(IOUT1).GE.198.AND.IDHW(IOUT1).LE.200) THEN
IB = IDHW(IOUT1)
IOUT(1) = IOUT2
IOUT(2) = IOUT1
ELSE
CALL HWWARN('HWDSM3',501)
ENDIF
C--setup the off shell masses and particle ids for me code
MA(1) = PHEP(5,ID)
MA(2) = PHEP(5,IOUT(1))
CALL HWDBOZ(IB,ID1,ID2,CV,CA,BR,0)
ITYPE = ID1
IF(IB.EQ.199) ITYPE = ITYPE+1
IF(ITYPE.GT.120) ITYPE = ITYPE-114
IF(IB.NE.200) ITYPE = ITYPE/2
C--generate momenta of decay products
CALL HWD3ME(ID,ITYPE,IMODE,RHOIN,IDSPIN)
CALL HWVEQU(5,P(1,2),PHEP(1,IOUT(1)))
CALL HWVSUM(4,P(1,3),P(1,4),PZ)
CALL HWUMAS(PZ)
CALL HWVEQU(5,PZ,PHEP(1,IOUT(2)))
C--enter the spin information in the common block if starting new chain
IF(SYSPIN.AND.NSPN.EQ.0) THEN
C--zero elements of common block
CALL HWVZRI( NMXHEP,ISNHEP)
CALL HWVZRI( NMXSPN,JMOSPN)
CALL HWVZRI(2*NMXSPN,JDASPN)
CALL HWVZRI( NMXSPN, IDSPN)
NSPN = NSPN+1
JMOSPN(NSPN) = 0
IDSPN (NSPN) = ID
DECSPN(NSPN) = .FALSE.
IF(RSPIN(IDHW(ID)).EQ.ZERO) THEN
RHOSPN(1,1,NSPN) = ONE
RHOSPN(2,1,NSPN) = ZERO
RHOSPN(1,2,NSPN) = ZERO
RHOSPN(2,2,NSPN) = ZERO
ELSE
RHOSPN(1,1,NSPN) = HALF
RHOSPN(2,1,NSPN) = ZERO
RHOSPN(1,2,NSPN) = ZERO
RHOSPN(2,2,NSPN) = HALF
ENDIF
ISNHEP(ID) = NSPN
ENDIF
IF(SYSPIN) THEN
IDSPN (NSPN+1 ) = IOUT(1)
ISNHEP(IOUT(1)) = NSPN+1
ENDIF
C--put the boson decay products into the event record for a two body mode
ELSEIF(NPR.EQ.-1) THEN
IOUT(1) = JDAHEP(1,IOUT(2))
IOUT(2) = NHEP+1
IOUT(3) = NHEP+2
C--set up the status of the particles
ISTHEP(IOUT(1)) = 195
JDAHEP(1,IOUT(1)) = NHEP+1
JDAHEP(2,IOUT(1)) = NHEP+2
C--find the ID's of the particles
IF(IDHW(IOUT(1)).EQ.200) THEN
ID1 = ITYPE
IF(ITYPE.GT.6) ID1 = ID1+114
ID2 = ID1+6
ELSE
ID1 = 2*ITYPE-1
IF(ITYPE.GT.3) ID1 = ID1+114
ID2 = ID1+7
IF(IDHW(IOUT(1)).EQ.198) THEN
I = ID1+6
ID1 = ID2-6
ID2 = I
ENDIF
ENDIF
C--put id's of decay products into the event record
IDHW(NHEP+1) = ID1
IDHW(NHEP+2) = ID2
IDHEP(NHEP+1) = IDPDG(ID1)
IDHEP(NHEP+2) = IDPDG(ID2)
C--boost decay products momenta to rest frame of boson
CALL HWULOF(PZ,P(1,3),P(1,3))
CALL HWULOF(PZ,P(1,4),P(1,4))
C--boost back to lab using new boson
CALL HWULOB(PHEP(1,IOUT(1)),P(1,3),PHEP(1,NHEP+1))
CALL HWULOB(PHEP(1,IOUT(1)),P(1,4),PHEP(1,NHEP+2))
C--setup for decay to quarks
IF(ID1.LE.12) THEN
ISTHEP(NHEP+1) = 113
ISTHEP(NHEP+2) = 114
JMOHEP(2,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+2
JMOHEP(2,NHEP+2) = NHEP+1
JDAHEP(2,NHEP+2) = NHEP+1
JMOHEP(1,NHEP+1) = IOUT(1)
JMOHEP(1,NHEP+2) = IOUT(1)
C--setup for decay to leptons
ELSE
ISTHEP(NHEP+1) = 193
ISTHEP(NHEP+2) = 193
JMOHEP(1,NHEP+1) = IOUT(1)
JMOHEP(1,NHEP+2) = IOUT(1)
JMOHEP(2,NHEP+1) = JMOHEP(1,IOUT(1))
JMOHEP(2,NHEP+2) = JMOHEP(1,IOUT(1))
JDAHEP(1,NHEP+1) = 0
JDAHEP(1,NHEP+2) = 0
JDAHEP(2,NHEP+1) = 0
JDAHEP(2,NHEP+2) = 0
ENDIF
NHEP=NHEP+2
C--finish entering the spin information in the common block
IF(SYSPIN) THEN
JDASPN(1,IDSPIN) = NSPN+1
JDASPN(2,IDSPIN) = NSPN+3
DO 6 I=1,3
JMOSPN(NSPN+I ) = IDSPIN
DECSPN(NSPN+I ) = .FALSE.
IF(RSPIN(IDHW(IOUT(I))).EQ.ZERO) THEN
RHOSPN(1,1,NSPN+I) = ONE
RHOSPN(2,1,NSPN+I) = ZERO
RHOSPN(1,2,NSPN+I) = ZERO
RHOSPN(2,2,NSPN+I) = ZERO
ELSE
RHOSPN(1,1,NSPN+I) = HALF
RHOSPN(2,1,NSPN+I) = ZERO
RHOSPN(1,2,NSPN+I) = ZERO
RHOSPN(2,2,NSPN+I) = HALF
ENDIF
DO 6 J=1,2
6 JDASPN(J,NSPN+I) =0
NSPN = NSPN+3
IDSPN (NSPN-1) = NHEP-1
IDSPN (NSPN ) = NHEP
ISNHEP(NHEP-1) = NSPN-1
ISNHEP(NHEP ) = NSPN
ENDIF
C--perform the parton shower for the decay products of the gauge boson
IF(ID1.LE.12) CALL HWBGEN
C--error issue warning
ELSE
CALL HWWARN('HWDSM3',500)
ENDIF
END
CDECK ID>, HWDSM4.
*CMZ :- -11/10/01 14:03:42 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDSM4(IOPT,ID,IOUT1,IOUT2,IMODE)
C-----------------------------------------------------------------------
C Subroutine to perform the four body decays
C IOPT = 1 select decay mode and generate momenta
C IOPT = 2 enter first decays and perform parton shower
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOPT,ID,IOUT1,IOUT2,IB(2),I,IDF(4),ITYPE(2),IMODE,
& IDP(4+NDIAGR),ID1,ID2,J
DOUBLE PRECISION CV,CA,A,B,MS,MWD,MR,M,M2,P(5,5),PW(5,2),BR
COMMON/HWD4BY/A(2),B(2),MS(2),MWD(2),MR(2),M(5),M2(5),P,IDP
SAVE PW,ITYPE
C--generate the decay
IF(IOPT.EQ.1) THEN
IB(1) = IDHW(IOUT1)
IB(2) = IDHW(IOUT2)
C--select the decays of the bosons
DO 1 I=1,2
CALL HWDBOZ(IB(I),IDF(2*I-1),IDF(2*I),CV,CA,BR,1)
ITYPE(I) = IDF(2*I-1)
IF(IB(I).EQ.199) ITYPE(I) = ITYPE(I)+1
IF(ITYPE(I).GT.120) ITYPE(I) = ITYPE(I)-114
1 IF(IB(I).NE.200) ITYPE(I) = ITYPE(I)/2
C--generate the momenta of the decay products
CALL HWD4ME(ID,ITYPE(1),ITYPE(2),IMODE)
DO 2 I=1,2
CALL HWVSUM(4,P(1,2*I),P(1,2*I+1),PW(1,I))
2 CALL HWUMAS(PW(1,I))
CALL HWVEQU(5,PW(1,1),PHEP(1,IOUT1))
CALL HWVEQU(5,PW(1,2),PHEP(1,IOUT2))
IF(SYSPIN) THEN
IDSPN(1) = JDAHEP(1,ID)
DECSPN(1) = .FALSE.
ISNHEP(JDAHEP(1,ID)) = 1
JDASPN(1,1) = 2
JDASPN(2,1) = 5
DO 4 I=2,5
DECSPN(I) = .FALSE.
4 JMOSPN(I) = 1
ENDIF
ELSEIF(IOPT.EQ.2) THEN
IB(1) = JDAHEP(1,IOUT1)
IB(2) = JDAHEP(1,IOUT2)
DO 3 I=1,2
ISTHEP(IB(I)) = 195
JDAHEP(1,IB(I)) = NHEP+1
JDAHEP(2,IB(I)) = NHEP+2
C--find the ID's of the particles
IF(IDHW(IB(I)).EQ.200) THEN
ID1 = ITYPE(I)
IF(ITYPE(I).GT.6) ID1 = ID1+114
ID2 = ID1+6
ELSE
ID1 = 2*ITYPE(I)-1
IF(ITYPE(I).GT.3) ID1 = ID1+114
ID2 = ID1+7
IF(IDHW(IB(I)).EQ.198) THEN
J = ID1+6
ID1 = ID2-6
ID2 = J
ENDIF
ENDIF
C--put id's of decay products into the event record
IDHW(NHEP+1) = ID1
IDHW(NHEP+2) = ID2
IDHEP(NHEP+1) = IDPDG(ID1)
IDHEP(NHEP+2) = IDPDG(ID2)
C--boost decay products momenta to rest frame of boson
CALL HWULOF(PW(1,I),P(1,2*I ),P(1,2*I ))
CALL HWULOF(PW(1,I),P(1,2*I+1),P(1,2*I+1))
C--boost back to lab using new boson
CALL HWULOB(PHEP(1,IB(I)),P(1,2*I ),PHEP(1,NHEP+1))
CALL HWULOB(PHEP(1,IB(I)),P(1,2*I+1),PHEP(1,NHEP+2))
C--setup for decay to quarks
IF(ID1.LE.12) THEN
ISTHEP(NHEP+1) = 113
ISTHEP(NHEP+2) = 114
JMOHEP(2,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+2
JMOHEP(2,NHEP+2) = NHEP+1
JDAHEP(2,NHEP+2) = NHEP+1
JMOHEP(1,NHEP+1) = IB(I)
JMOHEP(1,NHEP+2) = IB(I)
C--setup for decay to leptons
ELSE
ISTHEP(NHEP+1) = 193
ISTHEP(NHEP+2) = 193
JMOHEP(1,NHEP+1) = IB(I)
JMOHEP(1,NHEP+2) = IB(I)
JMOHEP(2,NHEP+1) = JMOHEP(1,IB(I))
JMOHEP(2,NHEP+2) = JMOHEP(1,IB(I))
ENDIF
C--enter the information in the spin common block
IF(SYSPIN) THEN
IDSPN(2*I ) = NHEP+1
IDSPN(2*I+1) = NHEP+2
ISNHEP(NHEP+1) = 2*I
ISNHEP(NHEP+2) = 2*I+1
ENDIF
NHEP=NHEP+2
C--perform the parton shower for the decay products of the gauge boson
IF(ID1.LE.12) CALL HWBGEN
3 CONTINUE
ENDIF
END
CDECK ID>, HWDTAU.
*CMZ :- -17/10/01 09:42:21 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWDTAU(IOPT,IHEP,POL)
C-----------------------------------------------------------------------
C HERWIG-TAUOLA interface to perform tau decays using TAUOLA rather
C than HERWIG
C IOPT =-1 initialises
C IOPT = 1 performs decay
C IOPT = 2 write outs final TAUOLA information
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOPT,IHEP,ID,ITAU,I,IMO,NHEPPO
DOUBLE PRECISION POL
REAL POL1(4)
CHARACTER *8 DUMMY
C--common block for PHOTOS
LOGICAL QEDRAD
COMMON /PHOQED/ QEDRAD(NMXHEP)
C--common blocks for TAUOLA
INTEGER NP1,NP2
COMMON /TAUPOS/ NP1, NP2
DOUBLE PRECISION Q1(4),Q2(4),P1(4),P2(4),P3(4),P4(4)
COMMON / MOMDEC / Q1,Q2,P1,P2,P3,P4
C--initialisation
IF(IOPT.EQ.-1) THEN
C--initialise TAUOLA
CALL INIETC(JAK1,JAK2,ITDKRC,IFPHOT)
CALL INIMAS
CALL INIPHX(0.01d0)
CALL INITDK
C--generate a decay
ELSEIF(IOPT.EQ.1) THEN
ISTHEP(IHEP)=195
ID = IDHW(IHEP)
IMO = IHEP
1 IMO = JMOHEP(1,IMO)
IF(IDHW(IMO).EQ.ID) GOTO 1
C--id of tau for tauola
IF(ID.EQ.125) THEN
ITAU = 2
NP1 = IHEP
NP2 = IHEP
ELSEIF(ID.EQ.131) THEN
ITAU = 1
NP1 = IHEP
NP2 = IHEP
ELSE
CALL HWWARN('HWDTAU',501)
ENDIF
C--set up the tau polarization
POL1(1) = 0.
POL1(2) = 0.
POL1(3) = REAL(POL)
POL1(4) = 0.
C--tau momentum
C--three components
DO I=1,3
IF(ID.EQ.125) THEN
P1(I) =-PHEP(I,IHEP)
P2(I) = PHEP(I,IHEP)
ELSE
P1(I) = PHEP(I,IHEP)
P2(I) =-PHEP(I,IHEP)
ENDIF
C--we measure tau spins in lab frame
Q1(I) = ZERO
ENDDO
C--energies
P1(4)=PHEP(4,IHEP)
P2(4)=PHEP(4,IHEP)
Q1(4)=P1(4)+P2(4)
C--perform the decay and generate QED radiation if needed
NHEPPO=NHEP
CALL DEXAY(ITAU,POL1)
IF(IFPHOT.EQ.1) THEN
IF(ID.EQ.1) THEN
CALL PHOTOS(NP1)
ELSE
CALL PHOTOS(NP2)
ENDIF
ENDIF
IF(NHEPPO.NE.NHEP) THEN
DO 2 I=NHEPPO+1,NHEP
CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,I))
2 CALL HWUIDT(1,IDHEP(I),IDHW(I),DUMMY)
ENDIF
C--write out info at end
ELSEIF(IOPT.EQ.2) THEN
CALL DEXAY(100,POL1)
C--otherwise issue warning
ELSE
CALL HWWARN('HWDTAU',500)
ENDIF
END
CDECK ID>, HWDTHR.
*CMZ :- -26/04/91 14.55.44 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDTHR(P0,P1,P2,P3,WEIGHT)
C-----------------------------------------------------------------------
C GENERATES THREE-BODY DECAY 0->1+2+3 DISTRIBUTED
C ACCORDING TO PHASE SPACE * WEIGHT
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRGEN,HWRUNI,A,B,C,D,AA,BB,CC,DD,EE,FF,PP,QQ,WW,
& RR,PCM1,PC23,WEIGHT,P0(5),P1(5),P2(5),P3(5),P23(5),TWO
EXTERNAL HWRGEN,HWRUNI,WEIGHT
PARAMETER (TWO=2.D0)
A=P0(5)+P1(5)
B=P0(5)-P1(5)
C=P2(5)+P3(5)
IF (B.LT.C) THEN
CALL HWWARN('HWDTHR',100)
GOTO 999
ENDIF
D=ABS(P2(5)-P3(5))
AA=A*A
BB=B*B
CC=C*C
DD=D*D
EE=(B-C)*(A-D)
A=0.5*(AA+BB)
B=0.5*(CC+DD)
C=4./(A-B)**2
C
C CHOOSE MASS OF SUBSYSTEM 23 WITH PRESCRIBED DISTRIBUTION
C
10 FF=HWRUNI(0,BB,CC)
PP=(AA-FF)*(BB-FF)
QQ=(CC-FF)*(DD-FF)
WW=WEIGHT(FF,A,B,C)**2
RR=EE*FF*HWRGEN(0)
IF (PP*QQ*WW.LT.RR*RR) GOTO 10
C
C FF IS MASS SQUARED OF SUBSYSTEM 23.
C
C DO 2-BODY DECAYS 0->1+23, 23->2+3
C
P23(5)=SQRT(FF)
PCM1=SQRT(PP)*0.5/P0(5)
PC23=SQRT(QQ)*0.5/P23(5)
CALL HWDTWO(P0,P1,P23,PCM1,TWO,.TRUE.)
CALL HWDTWO(P23,P2,P3,PC23,TWO,.TRUE.)
999 RETURN
END
CDECK ID>, HWDTOP.
*CMZ :- -09/12/92 11.03.46 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWDTOP(DECAY)
C-----------------------------------------------------------------------
C DECIDES WHETHER TO DO TOP QUARK DECAY BEFORE HADRONIZATION
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
LOGICAL DECAY
DECAY=RMASS(6).GT.130D0
END
CDECK ID>, HWDTWO.
*CMZ :- -27/01/94 17.38.49 by Mike Seymour
*-- Author : Bryan Webber & Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWDTWO(P0,P1,P2,PCM,COSTH,ZAXIS)
C-----------------------------------------------------------------------
C GENERATES DECAY 0 -> 1+2
C
C PCM IS CM MOMENTUM
C
C COSTH = COS THETA IN P0 REST FRAME (>1 FOR ISOTROPIC)
C IF ZAXIS=.TRUE., COS THETA IS MEASURED FROM THE ZAXIS
C IF .FALSE., IT IS MEASURED FROM P0'S DIRECTION
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRUNI,ONE,ZERO,PCM,COSTH,C,S,P0(5),P1(5),P2(5),
& PP(5),R(9)
LOGICAL ZAXIS
EXTERNAL HWRUNI
PARAMETER (ZERO=0.D0, ONE=1.D0)
C--CHOOSE C.M. ANGLES
C=COSTH
IF (C.GT.ONE) C=HWRUNI(0,-ONE,ONE)
S=SQRT(ONE-C*C)
CALL HWRAZM(PCM*S,PP(1),PP(2))
C--PP IS MOMENTUM OF 2 IN C.M.
PP(3)=-PCM*C
PP(4)=SQRT(P2(5)**2+PCM**2)
PP(5)=P2(5)
C--ROTATE IF NECESSARY
IF (COSTH.LE.ONE.AND..NOT.ZAXIS) THEN
CALL HWUROT(P0,ONE,ZERO,R)
CALL HWUROB(R,PP,PP)
ENDIF
C--BOOST FROM C.M. TO LAB FRAME
CALL HWULOB(P0,PP,P2)
CALL HWVDIF(4,P0,P2,P1)
END
CDECK ID>, HWDWWT.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWDWWT(EMSQ,A,B,C)
C-----------------------------------------------------------------------
C MATRIX ELEMENT SQUARED FOR V-A WEAK DECAY
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWDWWT,EMSQ,A,B,C
HWDWWT=(A-EMSQ)*(EMSQ-B)*C
END
CDECK ID>, HWDHWT.
*CMZ :- -26/06/01 14.44.53 by Stefano Moretti
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
FUNCTION HWDHWT(EMSQ,DUMMYA,DUMMYB,DUMMYC)
C-----------------------------------------------------------------------
C MATRIX ELEMENT SQUARED FOR
C ((V-A)*TB1+(V+A)*CT1)*((V-A)*TB2+(V+A)*CT2)) WEAK DECAY
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/FFS/TB,BT
COMMON/SFF/IT1,IB1,IT2,IB2
DOUBLE PRECISION TB,BT
INTEGER IT1,IB1,IT2,IB2
DOUBLE PRECISION TBH,HBT,CB1,TB1,CB2,TB2
DOUBLE PRECISION DUMMYA,DUMMYB,DUMMYC
DOUBLE PRECISION HWDHWT,EMSQ
CB1=RMASS(IT1)**2
TB1=RMASS(IB1)**2
CB2=RMASS(IT2)**2
TB2=RMASS(IB2)**2
C use formula (4.52) page 217 of `Higgs Hunter Guide'.
TBH=(TB1+CB1-EMSQ)*(TB1*TB*TB+CB1/TB/TB)+4.*TB1*CB1
C use formula (B. 1) page 411 of `Higgs Hunter Guide'.
HBT=(EMSQ-TB2-CB2)*(TB2*BT*BT+CB2/BT/BT)-4.*TB2*CB2
HWDHWT=TBH*HBT
HWDHWT=ABS(HWDHWT)*SQRT(EMSQ)
END
CDECK ID>, HWDXLM.
*CMZ :- -07/09/00 10:06:23 by Peter Richardson
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWDXLM(DKVRTX,STAB)
C-----------------------------------------------------------------------
C Sets STAB=.TRUE. if DKVRTX lies outside the specified region.
C Revised 05/09/00 by BRW to put parameters in common
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION DKVRTX(4),RR
LOGICAL STAB
STAB=.FALSE.
RR=DKVRTX(1)**2+DKVRTX(2)**2
IF (IOPDKL.EQ.1) THEN
C Cylindrical geometry
IF (RR.GE.DXRCYL**2.OR.ABS(DKVRTX(3)).GE.DXZMAX) STAB=.TRUE.
ELSEIF (IOPDKL.EQ.2) THEN
C Spherical geometry
RR=RR+DKVRTX(3)**2
IF (RR.GE.DXRSPH**2) STAB=.TRUE.
ELSE
C User supplied geometry -- missing
CALL HWWARN('HWDXLM',500)
ENDIF
END
CDECK ID>, HWECIR.
*CMZ :- -11/05/01 15.44.55 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWECIR(Y)
C-----------------------------------------------------------------------
C INTEGRAND OF BEAMSTRAHLUNG FUNCTION INTEGRATION
C NOTE THAT THE JACOBIAN TRANSFORMATION (1-Z)^ETA HAS ETA HARDCODED
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWECIR,Y,Z,ETA,CIRCEE
EXTERNAL CIRCEE
ETA=0.6D0
Z=1-Y**(1/(1-ETA))
HWECIR=(1-Z)**ETA/(1-ETA)*CIRCEE(Z,-1D0)/SQRT(CIRCEE(-1D0,-1D0))
END
CDECK ID>, HWEFIN.
*CMZ :- -15/07/02 17.56.53 by Peter Richardson
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWEFIN
C-----------------------------------------------------------------------
C TERMINAL CALCULATIONS ON ELEMENTARY PROCESS
C Modified 28/03/01 by BRW to handle negative weights
C Modified 15/07/02 by PR for Les Houches Accord
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I
DOUBLE PRECISION RNWGT,SPWGT,ERWGT
C--Les Houches Common Block
INTEGER MAXPUP
PARAMETER(MAXPUP=100)
INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
& IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
& XMAXUP(MAXPUP),LPRUP(MAXPUP)
IF(TAUDEC.EQ.'TAUOLA') CALL HWDTAU(2,0,0.0D0)
IF (NWGTS.EQ.0) THEN
WRITE (6,1)
WRITE (6,10)
10 FORMAT(10X,'NO WEIGHTS GENERATED')
RETURN
ENDIF
C--output Les Houches common block information
IF(IPROC.LE.0) THEN
C--WRITE THE HEADER
WRITE(6,13)
WRITE(6,14)
C--FOR THE FIRST WEIGHT OPTION CALCULATE THE CROSS SECTION
IF(ABS(IDWTUP).EQ.1) THEN
DO I=1,NPRUP
RNWGT = 1.0D0/DBLE(LHIWGT(I))
LHXSCT(I) = LHWGT(I)*RNWGT
LHXERR(I) = SQRT(MAX(LHWGTS(I)*RNWGT-LHXSCT(I)**2,ZERO))
LHXERR(I) = LHXERR(I)*SQRT(RNWGT)
LHXSCT(I) = LHXSCT(I)*1.0D3
LHXERR(I) = LHXERR(I)*1.0D3
LHXMAX(I) = LHXMAX(I)*1.0D3
ENDDO
C--FOR THE SECOND WEIGHT OPTION THIS WAS AN INPUT
ELSEIF(ABS(IDWTUP).EQ.2) THEN
DO I=1,NPRUP
LHXMAX(I) = LHXMAX(I)*1.0D3
ENDDO
ENDIF
IF(ABS(IDWTUP).LE.2) THEN
AVWGT = ZERO
ERWGT = ZERO
DO I=1,NPRUP
WRITE(6,15) LPRUP(I),LHXSCT(I),LHXERR(I),LHXMAX(I)*1.0D-3,
& LHNEVT(I)
AVWGT = AVWGT+LHXSCT(I)
ERWGT = ERWGT+LHXERR(I)**2
ENDDO
AVWGT = AVWGT*1.0D-3
ERWGT = SQRT(ERWGT)*1.0D-3
ELSE
RNWGT=1./FLOAT(NWGTS)
IF (NEGWTS) AVABW=ABWSUM*RNWGT
AVWGT=WGTSUM*RNWGT
SPWGT=SQRT(MAX(WSQSUM*RNWGT-AVWGT**2,ZERO))
ERWGT=SPWGT*SQRT(RNWGT)
IF (.NOT.NOWGT) WGTMAX=AVWGT
IF (WGTMAX.EQ.ZERO) WGTMAX=ONE
ENDIF
C--STANDARD HERWIG OPTION
ELSE
RNWGT=1./FLOAT(NWGTS)
IF (NEGWTS) AVABW=ABWSUM*RNWGT
AVWGT=WGTSUM*RNWGT
SPWGT=SQRT(MAX(WSQSUM*RNWGT-AVWGT**2,ZERO))
ERWGT=SPWGT*SQRT(RNWGT)
IF (.NOT.NOWGT) WGTMAX=AVWGT
IF (WGTMAX.EQ.ZERO) WGTMAX=ONE
ENDIF
C--PRINT OUT THE INFO
WRITE (6,1)
1 FORMAT(/10X,'OUTPUT ON ELEMENTARY PROCESS'/)
IF (NEGWTS) THEN
WRITE (6,12) NEVHEP,NNEGEV,NWGTS,NNEGWT,AVWGT,SPWGT,
& AVABW,WBIGST,WGTMAX,IPROC,
& 1000.*AVWGT,1000.*ERWGT,100.*AVWGT/WGTMAX
ELSE
WRITE (6,11) NEVHEP,NWGTS,AVWGT,SPWGT,WBIGST,WGTMAX,
& IPROC,
& 1000.*AVWGT,1000.*ERWGT,100.*AVWGT/WGTMAX
ENDIF
11 FORMAT(1P,
& 10X,'N.B. NEGATIVE WEIGHTS NOT ALLOWED'//
& 10X,'NUMBER OF EVENTS = ',I11/
& 10X,'NUMBER OF WEIGHTS = ',I11/
& 10X,'MEAN VALUE OF WGT =',E12.4/
& 10X,'RMS SPREAD IN WGT =',E12.4/
& 10X,'ACTUAL MAX WEIGHT =',E12.4/
& 10X,'ASSUMED MAX WEIGHT =',E12.4//
& 10X,'PROCESS CODE IPROC = ',I11/
& 10X,'CROSS SECTION (PB) =',G12.4/
& 10X,'ERROR IN C-S (PB) =',G12.4/
& 10X,'EFFICIENCY PERCENT =',G12.4)
12 FORMAT(1P,
& 10X,'N.B. NEGATIVE WEIGHTS ALLOWED'//
& 10X,'NUMBER OF EVENTS = ',I11/
& 10X,'NEGATIVE EVENTS = ',I11/
& 10X,'NUMBER OF WEIGHTS = ',I11/
& 10X,'NEGATIVE WEIGHTS = ',I11/
& 10X,'MEAN VALUE OF WGT =',E12.4/
& 10X,'RMS SPREAD IN WGT =',E12.4/
& 10X,'MEAN ABS WEIGHT =',E12.4/
& 10X,'ACTUAL MAX ABS WGT =',E12.4/
& 10X,'ASSUMED MAXABS WGT =',E12.4//
& 10X,'PROCESS CODE IPROC = ',I11/
& 10X,'CROSS SECTION (PB) =',G12.4/
& 10X,'ERROR IN C-S (PB) =',G12.4/
& 10X,'EFFICIENCY PERCENT =',G12.4)
13 FORMAT(/1P,10X,'OUTPUT ON LES HOUCHES EVENTS'/)
14 FORMAT(/1P,5X,' PROC CODE',1X,' XSECT(pb) ',1X,
& ' XERR(pb) ',1X,' Max wgt(nb)',1X,'No. of events'/)
15 FORMAT(5X,I7,E15.5,1X,E15.5,1X,E15.5,2X,I7)
END
CDECK ID>, HWEGAM.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Bryan Webber & Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWEGAM(IHEP,ZMI,ZMA,WWA)
C-----------------------------------------------------------------------
C GENERATES A PHOTON IN WEIZSACKER-WILLIAMS (WWA=.TRUE.) OR
C ELSE EQUIVALENT PHOTON APPROX FROM INCOMING E+, E-, MU+ OR MU-
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,EGMIN,ZMIN,ZMAX,ZGAM,SS,ZMI,ZMA,
& PPL,PMI,QT2,Q2,QQMIN,QQMAX,S0,A
INTEGER IHEP,IHADIS
LOGICAL WWA
EXTERNAL HWRGEN,HWRUNI
SAVE EGMIN
DATA EGMIN/5.D0/
IF (IERROR.NE.0) RETURN
IF (IHEP.LT.1.OR.IHEP.GT.2) CALL HWWARN('HWEGAM',500)
SS=PHEP(5,3)
IF (IHEP.EQ.1) THEN
IHADIS=2
ELSE
IHADIS=1
IF (JDAHEP(1,IHADIS).NE.0) IHADIS=JDAHEP(1,IHADIS)
ENDIF
C---DEFINE LIMITS FOR GAMMA MOMENTUM FRACTION
IF (ZMI.LE.ZERO .OR. ZMA.GT.ONE) THEN
CALL HWEGAS(S0)
IF (S0.GT.ZERO) THEN
S0 = (SQRT(S0)+ABS(PHEP(5,IHADIS)))**2-PHEP(5,IHADIS)**2
S0 = MAX(S0,WHMIN**2)
ZMIN = S0 / (SS**2 - PHEP(5,IHEP)**2 - PHEP(5,IHADIS)**2)
ZMAX = ONE
ELSE
C---UNKNOWN PROCESS: USE ENERGY CUTOFF, AND WARN USER
IF (FSTWGT) CALL HWWARN('HWEGAM',1)
ZMIN = EGMIN / PHEP(4,IHEP)
ZMAX = ONE
ENDIF
ELSE
ZMIN=ZMI
ZMAX=ZMA
ENDIF
C---APPLY USER DEFINED CUTS YWWMIN,YWWMAX AND INDIRECT LIMITS ON Z
IF (.NOT.WWA) THEN
ZMIN=MAX(ZMIN,YWWMIN,SQRT(Q2WWMN)/ABS(PHEP(3,IHEP)))
ZMAX=MIN(ZMAX,YWWMAX)
ELSE
ZMAX=MIN(ZMAX,1-PHEP(5,IHEP)/PHEP(4,IHEP))
ENDIF
IF (ZMIN.GE.ZMAX) THEN
GAMWT=ZERO
RETURN
ENDIF
C---GENERATE GAMMA MOMENTUM FRACTION
A=HALF
10 IF (HWRGEN(2).LT.A) THEN
ZGAM=(ZMIN/ZMAX)**HWRGEN(1)*ZMAX
ELSE
ZGAM=(ZMAX-ZMIN)*HWRGEN(1)+ZMIN
ENDIF
GAMWT = GAMWT * .5*ALPHEM/PIFAC *
+ (1+(1-ZGAM)**2)/(A/LOG(ZMAX/ZMIN)+(1-A)/(ZMAX-ZMIN)*ZGAM)
IF (WWA) THEN
GAMWT = GAMWT * LOG((ONE-ZGAM)/ZGAM*(SS/PHEP(5,IHEP))**2)
ELSE
C---Q2WWMN AND Q2WWMX ARE USER-DEFINED LIMITS IN THE Q**2 INTEGRATION
QQMAX=MIN(Q2WWMX,(ZGAM*PHEP(3,IHEP))**2)
QQMIN=MAX(Q2WWMN,(PHEP(5,IHEP)*ZGAM)**2/(1.-ZGAM))
IF (QQMIN.GT.QQMAX) THEN
CALL HWWARN('HWEGAM',50)
GOTO 10
ENDIF
Q2=EXP(HWRUNI(0,LOG(QQMIN),LOG(QQMAX)))
GAMWT = GAMWT * LOG(QQMAX/QQMIN)
ENDIF
IF (GAMWT.LT.ZERO) GAMWT=ZERO
C---FILL PHOTON
NHEP=NHEP+1
IDHW(NHEP)=59
ISTHEP(NHEP)=3
IDHEP(NHEP)=22
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
JDAHEP(1,IHEP)=NHEP
IF (WWA) THEN
C---FOR COLLINEAR KINEMATICS, ZGAM IS THE ENERGY FRACTION
PHEP(4,NHEP)=PHEP(4,IHEP)*ZGAM
PHEP(3,NHEP)=PHEP(3,IHEP)-SIGN(SQRT(
& (PHEP(4,IHEP)-PHEP(4,NHEP))**2-PHEP(5,IHEP)**2),PHEP(3,IHEP))
PHEP(2,NHEP)=0
PHEP(1,NHEP)=0
CALL HWUMAS(PHEP(1,NHEP))
ELSE
C---FOR EXACT KINEMATICS, ZGAM IS TAKEN TO BE FRACTION OF (E+PZ)
PPL=ZGAM*(ABS(PHEP(3,IHEP))+PHEP(4,IHEP))
QT2=(ONE-ZGAM)*Q2-(ZGAM*PHEP(5,IHEP))**2
PMI=(QT2-Q2)/PPL
PHEP(5,NHEP)=-SQRT(Q2)
PHEP(4,NHEP)=(PPL+PMI)/TWO
PHEP(3,NHEP)=SIGN((PPL-PMI)/TWO,PHEP(3,IHEP))
CALL HWRAZM(SQRT(QT2),PHEP(1,NHEP),PHEP(2,NHEP))
ENDIF
C---UPDATE OVERALL CM FRAME
JMOHEP(IHEP,3)=NHEP
CALL HWVDIF(4,PHEP(1,3),PHEP(1,IHEP),PHEP(1,3))
CALL HWVSUM(4,PHEP(1,NHEP),PHEP(1,3),PHEP(1,3))
CALL HWUMAS(PHEP(1,3))
C---FILL OUTGOING LEPTON
NHEP=NHEP+1
IDHW(NHEP)=IDHW(IHEP)
ISTHEP(NHEP)=1
IDHEP(NHEP)=IDHEP(IHEP)
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
JDAHEP(2,IHEP)=NHEP
CALL HWVDIF(4,PHEP(1,IHEP),PHEP(1,NHEP-1),PHEP(1,NHEP))
PHEP(5,NHEP)=PHEP(5,IHEP)
END
CDECK ID>, HWEGAS.
*CMZ :- -18/04/04 10.45.55 by Mike Seymour
*-- Author : Bryan Webber & Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWEGAS(S0)
C-----------------------------------------------------------------------
C FIND MINIMUM INVARIANT MASS SQUARED NEEDED FOR HARD PROCESS, S0
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION S0,RPM(2)
INTEGER HQ,I
IF (IPRO.EQ.13.OR.IPRO.EQ.14) THEN
S0 = EMMIN**2
ELSEIF(IPRO.EQ.15.OR.IPRO.EQ.18.OR.IPRO.EQ.22.OR.IPRO.EQ.24.OR.
& IPRO.EQ.50.OR.IPRO.EQ.53.OR.IPRO.EQ.55)THEN
S0 = 4.D0*PTMIN**2
ELSEIF (IPRO.EQ.17.OR.IPRO.EQ.51) THEN
HQ = MOD(IPROC,100)
S0 = 4.D0*(PTMIN**2+RMASS(HQ)**2)
ELSEIF (IPRO.EQ.16.OR.IPRO.EQ.19.OR.
& IPRO.EQ.25.OR.IPRO.EQ.26.OR.IPRO.EQ.27.OR.
& IPRO.EQ.95) THEN
S0 = MAX(2*RMASS(1),RMASS(201)-GAMMAX*GAMH)**2
ELSEIF ((IPRO.EQ.31).OR.(IPRO.EQ.32)) THEN
S0 = MAX(2*RMASS(1),RMASS(201+IHIGGS))**2
ELSEIF (IPRO.EQ.33) THEN
IF((MOD(IPROC,10000).EQ.3350).OR.
& (MOD(IPROC,10000).EQ.3355))THEN
S0 = MAX(2*RMASS(1),RMASS(206))**2
ELSEIF(MOD(IPROC,10000).EQ.3315)THEN
S0 = MAX(2*RMASS(1),RMASS(206),RMASS(203))**2
ELSEIF(MOD(IPROC,10000).EQ.3325)THEN
S0 = MAX(2*RMASS(1),RMASS(206),RMASS(204))**2
ELSEIF(MOD(IPROC,10000).EQ.3335)THEN
S0 = MAX(2*RMASS(1),RMASS(206),RMASS(205))**2
ELSEIF(MOD(IPROC,10000).EQ.3365)THEN
S0 = MAX(2*RMASS(1),RMASS(205),RMASS(203))**2
ELSEIF(MOD(IPROC,10000).EQ.3375)THEN
S0 = MAX(2*RMASS(1),RMASS(205),RMASS(204))**2
ELSE
S0 = MAX(2*RMASS(1),RMASS(201+IHIGGS))**2
END IF
ELSEIF ((IPRO.EQ.34).OR.(IPRO.EQ.35)) THEN
S0 = MAX(RMASS(5),RMASS(201+IHIGGS))**2
ELSEIF (IPRO.EQ.36.OR.IPRO.EQ.37) THEN
S0 = MAX(2*RMASS(1),RMASS(201+IHIGGS))**2
ELSEIF (IPRO.EQ.38) THEN
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
S0 = MAX(RMASS(6),RMASS(206))**2
ELSE
S0 = RMASS(201+IHIGGS)**2
END IF
ELSEIF (IPRO.EQ.23) THEN
S0 = MAX(2*RMASS(1),RMASS(201)-GAMMAX*GAMH)**2
S0 = (PTMIN+SQRT(PTMIN**2+S0))**2
ELSEIF (IPRO.EQ.20) THEN
S0 = RMASS(6)**2
ELSEIF (IPRO.EQ.21) THEN
S0 = (PTMIN+SQRT(PTMIN**2+RMASS(198)**2))**2
C--PR MOD 7/7/99
ELSEIF (IPRO.EQ.30) THEN
S0 = 4.0D0*(PTMIN**2+RMMNSS**2)
ELSEIF(IPRO.EQ.40.OR.IPRO.EQ.41) THEN
HQ = MOD(IPROC,100)
RPM(1) = RMMNSS
RPM(2) = ZERO
IF(HQ.GE.10.AND.HQ.LT.20) THEN
RPM(1) = ABS(RMASS(450))
IF(HQ.GT.10) RPM(1) = ABS(RMASS(449+MOD(HQ,10)))
ELSEIF(HQ.GE.20.AND.HQ.LT.30) THEN
RPM(1) = ABS(RMASS(454))
IF(HQ.GT.20) RPM(1) = ABS(RMASS(453+MOD(HQ,20)))
ELSEIF(HQ.EQ.30) THEN
RPM(1) = RMASS(449)
ELSEIF(HQ.EQ.40) THEN
IF(IPRO.EQ.40) THEN
RPM(1) = RMASS(425)
DO I=1,5
RPM(1) = MIN(RPM(1),RMASS(425+I))
ENDDO
ELSE
RPM(1) = MIN(RMASS(405),RMASS(406))
ENDIF
RPM(2) = RMASS(198)
ELSEIF(HQ.EQ.50) THEN
IF(IPRO.EQ.40) THEN
RPM(1) = RMASS(425)
DO I=1,5
RPM(1) = MIN(RPM(1),RMASS(425+I))
ENDDO
DO I=1,3
RPM(2) = MIN(RPM(1),RMASS(433+2*I))
ENDDO
RPM(1) = MIN(RPM(1),RPM(2))
RPM(2) = RMASS(203)
DO I=1,2
RPM(2) = MIN(RPM(2),RMASS(204+I))
ENDDO
ELSE
RPM(1) = RMASS(401)
RPM(2) = RMASS(413)
DO I=1,5
RPM(1) = MIN(RPM(1),RMASS(401+I))
RPM(2) = MIN(RPM(2),RMASS(413+I))
ENDDO
RPM(1) = MIN(RPM(1),RPM(2))
RPM(2) = RMASS(203)
DO I=1,2
RPM(2) = MIN(RPM(2),RMASS(204+I))
ENDDO
ENDIF
RPM(2) = RMASS(203)
DO I=1,2
RPM(2) = MIN(RPM(2),RMASS(204+I))
ENDDO
ELSEIF(HQ.GE.60) THEN
RPM(1) = ZERO
ENDIF
RPM(1) = RPM(1)**2
RPM(2) = RPM(2)**2
S0 = RPM(1)+RPM(2)+TWO*(PTMIN**2+
& SQRT(RPM(1)*RPM(2)+PTMIN**2*(RPM(1)+RPM(2)+PTMIN**2)))
C--end of mod
C--PR MOD 9/9/00
ELSEIF (IPRO.EQ.42) THEN
S0 = EMMIN**2
ELSEIF (IPRO.EQ.52) THEN
HQ = MOD(IPROC,100)
S0 = (PTMIN+SQRT(PTMIN**2+RMASS(HQ)**2))**2
ELSEIF (IPRO.EQ.60) THEN
HQ = MOD(IPROC,100)
IF (HQ.EQ.0) THEN
S0 = 4.D0*PTMIN**2
ELSE
IF (HQ.GT.6) HQ=2*HQ+107
IF (HQ.EQ.127) HQ=198
S0 = 4.D0*(PTMIN**2+RMASS(HQ)**2)
ENDIF
ELSEIF (IPRO.EQ.80) THEN
S0 = WHMIN**2
ELSEIF (IPRO.EQ.90) THEN
S0 = Q2MIN
ELSEIF (IPRO.EQ.91.OR.IPRO.EQ.92) THEN
S0 = Q2MIN+4.D0*PTMIN**2
HQ = MOD(IPROC,100)
IF (HQ.GT.0) S0 = S0+4.D0*RMASS(HQ)**2
IF (IPRO.EQ.91) S0 = MAX(S0,EMMIN**2)
ELSE
S0 = 0
ENDIF
END
CDECK ID>, HWEINI.
*CMZ :- -26/04/91 12.42.30 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWEINI
C-----------------------------------------------------------------------
C INITIALISES ELEMENTARY PROCESS
C Modified 28/03/01 by BRW to handle negative weights
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRSET,DUMMY,SAFETY
EXTERNAL HWRSET
PARAMETER (SAFETY=1.001)
INTEGER NBSH,I
C---NO OF WEIGHT GENERATED
NWGTS=0
NNEGWT=0
C---ACCUMULATED WEIGHTS
WGTSUM=ZERO
ABWSUM=ZERO
C---ACCUMULATED WEIGHT-SQUARED
WSQSUM=ZERO
C---CURRENT MAX WEIGHT
WBIGST=ZERO
C---LAST VALUE OF SCALE
EMLST=ZERO
C---NUMBER OF ERRORS REPORTED
NUMER=0
C---NUMBER OF ERRORS UNREPORTED
NUMERU=0
C---FIND MAXIMUM ABSOLUTE WEIGHT IN CASES WHERE THIS IS REQUIRED
IF (NOWGT) THEN
IF (WGTMAX.EQ.ZERO.AND.IPROC.GT.0) THEN
NBSH=IBSH
DUMMY = HWRSET(IBRN)
WRITE(6,10) IPROC,IBRN,NBSH
10 FORMAT(/10X,'INITIAL SEARCH FOR MAX WEIGHT'//
& 10X,'PROCESS CODE IPROC = ',I11/
& 10X,'RANDOM NO. SEED 1 = ',I11/
& 10X,' SEED 2 = ',I11/
& 10X,'NUMBER OF SHOTS = ',I11)
NEVHEP=0
DO 11 I=1,NBSH
CALL HWEPRO
11 CONTINUE
WRITE(6,20)
20 FORMAT(/10X,'INITIAL SEARCH FINISHED')
IF (WBIGST*NWGTS.LT.SAFETY*WGTSUM)
& WGTMAX=SAFETY*WBIGST
CALL HWEFIN
NWGTS=0
NNEGWT=0
WGTSUM=ZERO
WSQSUM=ZERO
ABWSUM=ZERO
WBIGST=ZERO
ELSE
WRITE(6,21) AVWGT,WGTMAX
21 FORMAT(/1P,10X,'INPUT EVT WEIGHT =',E12.4/
& 10X,'INPUT MAX WEIGHT =',E12.4)
ENDIF
ENDIF
C---RESET RANDOM NUMBER
DUMMY = HWRSET(NRN)
ISTAT=5
END
CDECK ID>, HWEISR.
*CMZ :- -01/04/99 19.55.17 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWEISR(IHEP)
C-----------------------------------------------------------------------
C GENERATES AN ISR PHOTON FROM INCOMING E+, E-, MU+ OR MU-
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION CIRCKP(2)
COMMON /HWCIR2/CIRCKP
DOUBLE PRECISION HWRGEN,QSQMAX,QSQMIN,A,B,B1,B2,B3,B4,B5,B6,B7,B8,
$ R,AA,T0,T1,C1,C2,T,Z(2),QSQ(2),PHI(2),C,NWID,NMASS
INTEGER IHEP,I,J
EXTERNAL HWRGEN
SAVE Z,QSQ,PHI
C---IF ZMXISR IS ZERO, THERE CAN BE NO ISR
IF (ZMXISR.EQ.ZERO.OR.(IPRO.GT.3.AND.IPRO.LT.6)
& .OR.IPRO.GT.12.OR.IPROC.EQ.850) RETURN
C---CHECK CONSISTENCY OF TMNISR AND ZMXISR
IF (ZMXISR**2.LT.TMNISR) CALL HWWARN('HWEISR',200)
C---CALCULATE VIRTUALITY LIMITS
QSQMAX=4*PHEP(4,IHEP)**2
QSQMIN=PHEP(5,IHEP)**2
C---AND THEREFORE THE Z DEPENDENCE
A=ALPHEM/PIFAC
B=A*(LOG(QSQMAX/QSQMIN)-1)
C---DECIDE HOW MUCH WEIGHT TO GIVE THE Z RESONANCE
IF (IHEP.EQ.1) THEN
IF (IPRO.EQ.1.OR.IPRO.EQ.6.OR.IPRO.EQ.8) THEN
AA=10
ELSEIF (IPRO.EQ.2) THEN
AA=0
ELSEIF (IPRO.EQ.3.OR.IPRO.EQ.7.OR.IPRO.EQ.10.OR.IPRO.EQ.11) THEN
AA=1
ELSEIF (IPRO.EQ.9) THEN
AA=0
IF((MOD(IPROC,10000).EQ.960).OR.
& (MOD(IPROC,10000).EQ.970))THEN
AA=1
ELSE
CONTINUE
ENDIF
ELSE
RETURN
ENDIF
C--set up the parameters for the resonance
IF(IPRO.NE.8) THEN
C--first the standard parameters if smoothing the Z resonance
T0=RMASS(200)**2/QSQMAX
T1=GAMZ*RMASS(200)/QSQMAX
ELSE
C--now the parameters for a resonant sneutrino in RPV
C--uses the average of the muon and tau sneutrino mass and either the
C--larger width or the difference in masses (whichever is larger)
NMASS = HALF*(RMASS(428)+RMASS(430))
NWID = MAX(HBAR/RLTIM(428),HBAR/RLTIM(430))
NWID = MAX(NWID,ABS(RMASS(428)-RMASS(430)))
T0 = NMASS**2/QSQMAX
T1 = NWID*NMASS/QSQMAX
ENDIF
IF (T0.GT.ONE) THEN
T0=0
AA=0
ENDIF
AA=AA*(1-T0)
C---GENERATE A T VALUE BETWEEN TMNISR AND 1 ACCORDING TO:
C ( b**2*log(zmxisr**2/t)/t + 2*b*(1-(1-zmxisr)**b)*((1-t)**(2*b-1)+1/t
C +(1-t0)**(2b-1)*aa*t1/((t-t0)**2+t1**2)) ) *theta(zmxisr**2-t)
C +( 2*b*(1-zmxisr)**b*((1-t)**(b-1)+1/t
C +(1-t0)**(b-1)*aa*t1/((t-t0)**2+t1**2)) ) *theta(zmxisr-t)
C +( (1-zmxisr)**(2*b) ) *delta(1-t)
B1=(1-ZMXISR)**(2*B)
B2=B1+2*(1-ZMXISR)**B*((1-TMNISR)**B-(1-ZMXISR)**B)
B3=B2+2*B*(1-ZMXISR)**B*LOG(ZMXISR/TMNISR)
B4=B3+2*B*(1-ZMXISR)**B*AA*(1-T0)**(B-1)
$ *(ATAN((ZMXISR-T0)/T1)-ATAN((TMNISR-T0)/T1))
B5=B4+(1-(1-ZMXISR)**B)*((1-TMNISR)**(2*B)-(1-ZMXISR**2)**(2*B))
B6=B5+2*B*(1-(1-ZMXISR)**B)*LOG(ZMXISR**2/TMNISR)
B7=B6+B**2*LOG(ZMXISR**2/TMNISR)**2/2
B8=B7+2*B*(1-(1-ZMXISR)**B)*AA*(1-T0)**(2*B-1)
$ *(ATAN((ZMXISR**2-T0)/T1)-ATAN((TMNISR-T0)/T1))
R=B8*HWRGEN(0)
IF (R.LE.B1) THEN
C---NEITHER EMITS
T=1
GAMWT=GAMWT*B8/B1
Z(1)=1
ELSEIF (R.LE.B4) THEN
C---ONE EMITS
IF (R.LE.B2) THEN
R=(R-B1)/(B2-B1)
T=1-(1-TMNISR)*(1-R*(1-((1-ZMXISR)/(1-TMNISR))**B))**(1/B)
ELSEIF (R.LE.B3) THEN
R=(R-B2)/(B3-B2)
T=(TMNISR/ZMXISR)**R*ZMXISR
ELSE
R=(R-B3)/(B4-B3)
T=T0+T1*TAN(
$ ATAN((ZMXISR-T0)/T1)*R+ATAN((TMNISR-T0)/T1)*(1-R))
ENDIF
GAMWT=GAMWT*B8/(2*B*(1-ZMXISR)**B*((1-T)**(B-1)+1/T+
$ (1-T0)**(B-1)*AA*T1/((T-T0)**2+T1**2)))
Z(1)=1
IF (HWRGEN(1).GT.HALF) Z(1)=T
GAMWT=GAMWT*2
ELSE
C---BOTH EMIT
IF (R.LE.B5) THEN
R=(R-B4)/(B5-B4)
T=1-(1-TMNISR)*
$ (1-R*(1-((1-ZMXISR**2)/(1-TMNISR))**(2*B)))**(.5/B)
ELSEIF (R.LE.B6) THEN
R=(R-B5)/(B6-B5)
T=(TMNISR/ZMXISR**2)**R*ZMXISR**2
ELSEIF (R.LE.B7) THEN
R=(R-B6)/(B7-B6)
T=(TMNISR/ZMXISR**2)**SQRT(R)*ZMXISR**2
ELSE
R=(R-B7)/(B8-B7)
T=T0+T1*TAN(
$ ATAN((ZMXISR**2-T0)/T1)*R+ATAN((TMNISR-T0)/T1)*(1-R))
ENDIF
GAMWT=GAMWT*B8/(B**2*LOG(ZMXISR**2/T)/T
$ + 2*B*(1-(1-ZMXISR)**B)*((1-T)**(2*B-1)+1/T+
$ (1-T0)**(B-1)*AA*T1/((T-T0)**2+T1**2)))
C---GENERATE A Z VALUE BETWEEN T/ZMXISR AND ZMXISR ACCORDING TO:
C 1/z+(1-z)**(b-1)+t/z**2*(1-t/z)**(b-1)
C1=LOG(ZMXISR**2/T)
C2=C1+2/B*((1-T/ZMXISR)**B-(1-ZMXISR)**B)
IF (C2.GT.ZERO) THEN
R=C2*HWRGEN(4)
IF (R.LE.C1) THEN
Z(1)=(T/ZMXISR**2)**HWRGEN(5)*ZMXISR
ELSE
Z(1)=1-(1-T/ZMXISR)*
$ (1-HWRGEN(6)*(1-((1-ZMXISR)/(1-T/ZMXISR))**B))**(1/B)
IF (2*R.LE.C2+C1) Z(1)=T/Z(1)
ENDIF
ELSE
Z(1)=SQRT(T)
ENDIF
GAMWT=GAMWT*C2/Z(1)
$ /(1/Z(1)+(1-Z(1))**(B-1)+T/Z(1)**2*(1-T/Z(1))**(B-1))
ENDIF
C---INCLUDE DISTRIBUTION FUNCTIONS
Z(2)=T/Z(1)
DO 10 I=1,2
IF (Z(I).GT.ZMXISR) THEN
Z(I)=1
CIRCKP(I)=(1-ZMXISR)**B*EXP(3*B/4)*(1-B**2*PIFAC**2/12)
ELSE
CIRCKP(I)=(B*(1-Z(I))**(B-1)*(1+Z(I)**2)/2
$ *EXP(B*Z(I)/2*(1+Z(I)/2))*(1-B**2*PIFAC**2/12)
$ +B**2/8*((1+Z(I))*((1+Z(I))**2+3*LOG(Z(I)))
$ -4*LOG(Z(I))/(1-Z(I))))
ENDIF
GAMWT=GAMWT*CIRCKP(I)
10 CONTINUE
C---CHOOSE BOTH QSQ VALUES
DO 30 I=1,2
IF (Z(I).GT.ZMXISR .OR. COLISR) THEN
QSQ(I)=0
ELSE
J=3-I
C---ACCORDING TO 1/(QSQ+QSQMIN) FROM 0 TO (1-Z)*(T/(Z+T))*QSQMAX
20 QSQ(I)=(((1-Z(I))*(T/(Z(I)+T))
$ *QSQMAX/QSQMIN+1)**HWRGEN(7)-1)*QSQMIN
C---AND REJECT TO QSQ/(QSQ+QSQMIN)**2
IF (HWRGEN(8)*(QSQ(I)+QSQMIN).GT.QSQ(I)) GOTO 20
ENDIF
30 CONTINUE
C---CHOOSE BOTH AZIMUTHS
PHI(1)=HWRGEN(9)*2*PIFAC
PHI(2)=HWRGEN(10)*2*PIFAC
C---USE S-HAT PRESCRIPTION TO MODIFY Z VALUES
I=0
IF ((1-Z(1))*QSQ(1).GT.(1-Z(2))*QSQ(2)) I=1
IF ((1-Z(2))*QSQ(2).GT.(1-Z(1))*QSQ(1)) I=2
IF (I.GT.0) THEN
J=3-I
Z(I)=Z(I)+QSQ(I)/QSQMAX
IF (QSQ(J).GT.ZERO) THEN
Z(J)=((QSQ(I)*QSQMAX+QSQ(J)*QSQMAX
$ -QSQ(I)*QSQ(J))/QSQMAX**2+T)/Z(I)
C=COS(PHI(1)-PHI(2))*SQRT(QSQ(1)*QSQ(2))/QSQMAX
Z(J)=Z(J)+(-2*C**2*(1-Z(I))+2*C*SQRT((1-Z(I))
$ *(C**2*(1-Z(I))+Z(I)**2*(1-Z(J)))))/Z(I)**2
ENDIF
ENDIF
ELSEIF (IHEP.EQ.2) THEN
C---EVERYTHING WAS GENERATED LAST TIME
ELSE
C---ROUTINE CALLED UNEXPECTEDLY
CALL HWWARN('HWEISR',201)
ENDIF
C---IF Z IS TOO LARGE THERE IS NO EMISSION
IF (Z(IHEP).GT.ZMXISR) RETURN
C---PUT NEW LEPTON IN EVENT RECORD
NHEP=NHEP+1
IDHW(NHEP)=IDHW(IHEP)
IDHEP(NHEP)=IDHEP(IHEP)
ISTHEP(NHEP)=3
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
JDAHEP(1,IHEP)=NHEP
C---AND OUTGOING PHOTON
NHEP=NHEP+1
IDHW(NHEP)=59
IDHEP(NHEP)=22
ISTHEP(NHEP)=1
JMOHEP(1,NHEP)=IHEP
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
JDAHEP(2,IHEP)=NHEP
C---RECONSTRUCT PHOTON KINEMATICS (Z IS LIGHT-CONE MOMENTUM FRACTION)
PHEP(1,NHEP)=SQRT(QSQ(IHEP)*(1-Z(IHEP)))*COS(PHI(IHEP))
PHEP(2,NHEP)=SQRT(QSQ(IHEP)*(1-Z(IHEP)))*SIN(PHI(IHEP))
PHEP(3,NHEP)=(1-Z(IHEP))*PHEP(4,IHEP)-QSQ(IHEP)/(4*PHEP(4,IHEP))
IF (IHEP.EQ.2) PHEP(3,NHEP)=-PHEP(3,NHEP)
PHEP(4,NHEP)=(1-Z(IHEP))*PHEP(4,IHEP)+QSQ(IHEP)/(4*PHEP(4,IHEP))
PHEP(5,NHEP)=0
C---AND LEPTON
CALL HWVDIF(4,PHEP(1,IHEP),PHEP(1,NHEP),PHEP(1,NHEP-1))
CALL HWUMAS(PHEP(1,NHEP-1))
C---UPDATE OVERALL CM FRAME
JMOHEP(IHEP,3)=NHEP-1
CALL HWVDIF(4,PHEP(1,3),PHEP(1,IHEP),PHEP(1,3))
CALL HWVSUM(4,PHEP(1,NHEP-1),PHEP(1,3),PHEP(1,3))
CALL HWUMAS(PHEP(1,3))
END
CDECK ID>, HWEONE.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWEONE
C-----------------------------------------------------------------------
C SETS UP 2->1 (COLOUR SINGLET) HARD SUBPROCESS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION PA
INTEGER ICMF,I,IBM,IHEP
C---INCOMING LINES
ICMF=NHEP+3
DO 15 I=1,2
IBM=I
C---FIND BEAM AND TARGET
IF (JDAHEP(1,I).NE.0) IBM=JDAHEP(1,I)
IHEP=NHEP+I
IDHW(IHEP)=IDN(I)
IDHEP(IHEP)=IDPDG(IDN(I))
ISTHEP(IHEP)=110+I
JMOHEP(1,IHEP)=ICMF
JMOHEP(I,ICMF)=IHEP
JDAHEP(1,IHEP)=ICMF
C---SPECIAL - IF INCOMING PARTON IS INCOMING BEAM THEN COPY IT
IF (XX(I).EQ.ONE.AND.IDHW(IBM).EQ.IDN(I)) THEN
CALL HWVEQU(5,PHEP(1,IBM),PHEP(1,IHEP))
IF (I.EQ.2) PHEP(3,IHEP)=-PHEP(3,IHEP)
ELSE
PHEP(1,IHEP)=0.
PHEP(2,IHEP)=0.
PHEP(5,IHEP)=RMASS(IDN(I))
PA=XX(I)*(PHEP(4,IBM)+ABS(PHEP(3,IBM)))
PHEP(4,IHEP)=0.5*(PA+PHEP(5,IHEP)**2/PA)
PHEP(3,IHEP)=PA-PHEP(4,IHEP)
ENDIF
15 CONTINUE
PHEP(3,NHEP+2)=-PHEP(3,NHEP+2)
C---HARD CENTRE OF MASS
IDHW(ICMF)=IDCMF
IDHEP(ICMF)=IDPDG(IDCMF)
ISTHEP(ICMF)=110
CALL HWVSUM(4,PHEP(1,NHEP+1),PHEP(1,NHEP+2),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
C---SET UP COLOUR STRUCTURE LABELS
JMOHEP(2,NHEP+1)=NHEP+2
JDAHEP(2,NHEP+1)=NHEP+2
JMOHEP(2,NHEP+2)=NHEP+1
JDAHEP(2,NHEP+2)=NHEP+1
JDAHEP(1,NHEP+3)=NHEP+3
JDAHEP(2,NHEP+3)=NHEP+3
NHEP=NHEP+3
END
CDECK ID>, HWEPRO.
*CMZ :- -15/07/02 17.56.53 by Peter Richardson
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWEPRO
C-----------------------------------------------------------------------
C WHEN NEVHEP=0, CHOOSES X VALUES AND FINDS WEIGHT FOR PROCESS IPROC
C OTHERWISE, CHOOSES AND LOADS ALL VARIABLES FOR HARD PROCESS
C modifications for Les Houches accord by PR (7/15/02)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION CIRCKP(2)
COMMON /HWCIR2/CIRCKP
DOUBLE PRECISION Z1,Z2,C1,C2,B1,B2,CIRCEE,CIRCGG,RS,MISS,ETA,
$ HWUGAU,HWECIR,QMX1,QMN1,QMX2,QMN2,TEST
INTEGER IHAD
SAVE MISS
DOUBLE PRECISION HWRGEN
EXTERNAL HWRGEN,HWECIR
C--Les Houches Common Block
INTEGER MAXPUP
PARAMETER(MAXPUP=100)
INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
& IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
& XMAXUP(MAXPUP),LPRUP(MAXPUP)
IF (IERROR.NE.0) RETURN
C--pick the type of event to generate if using Les Houches accord
C--first choice according to maxiumum weight
IF(IPROC.LT.0) THEN
IF(ABS(IDWTUP).EQ.1) THEN
IF(ITYPLH.EQ.0) THEN
TEST = HWRGEN(1)*LHMXSM
DO ITYPLH=1,NPRUP
IF(TEST.LE.ABS(LHXMAX(ITYPLH))) GOTO 5
TEST = TEST-ABS(LHXMAX(ITYPLH))
ENDDO
5 WGTMAX = ABS(LHXMAX(ITYPLH))
WBIGST = ABS(LHXMAX(ITYPLH))
ENDIF
C--second choice according to cross section
ELSEIF(ABS(IDWTUP).EQ.2) THEN
IF(ITYPLH.EQ.0) THEN
TEST = HWRGEN(1)*LHMXSM
DO ITYPLH=1,NPRUP
IF(TEST.LE.ABS(LHXSCT(ITYPLH))) GOTO 6
TEST = TEST-ABS(LHXSCT(ITYPLH))
ENDDO
6 WGTMAX = ABS(LHXMAX(ITYPLH))
WBIGST = ABS(LHXMAX(ITYPLH))
ENDIF
ELSE
WGTMAX = 1.0D0
WBIGST = 1.0D0
ITYPLH = 1
ENDIF
ENDIF
C---ROUTINE LOOPS BACK TO HERE IF GENERATED WEIGHT WAS NOT ACCEPTED
10 GENEV=.FALSE.
C---FSTWGT IS .TRUE. DURING FIRST CALL TO HARD PROCESS ROUTINE
FSTWGT=NWGTS.EQ.0
C---FSTEVT IS .TRUE. THROUGHOUT THE FIRST EVENT
FSTEVT=NEVHEP.EQ.1
C---SET COLOUR CORRECTION TO FALSE
COLUPD = .FALSE.
HRDCOL(1,1)=0
HRDCOL(1,3)=0
C---SET UP INITIAL STATE
NHEP=1
ISTHEP(NHEP)=101
PHEP(1,NHEP)=0.
PHEP(2,NHEP)=0.
PHEP(3,NHEP)=PBEAM1
PHEP(4,NHEP)=EBEAM1
PHEP(5,NHEP)=RMASS(IPART1)
JMOHEP(1,NHEP)=0
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IDHW(NHEP)=IPART1
IDHEP(NHEP)=IDPDG(IPART1)
NHEP=NHEP+1
ISTHEP(NHEP)=102
PHEP(1,NHEP)=0.
PHEP(2,NHEP)=0.
PHEP(3,NHEP)=-PBEAM2
PHEP(4,NHEP)=EBEAM2
PHEP(5,NHEP)=RMASS(IPART2)
JMOHEP(1,NHEP)=0
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IDHW(NHEP)=IPART2
IDHEP(NHEP)=IDPDG(IPART2)
C---NEXT ENTRY IS OVERALL CM FRAME
NHEP=NHEP+1
IDHW(NHEP)=14
IDHEP(NHEP)=0
ISTHEP(NHEP)=103
JMOHEP(1,NHEP)=NHEP-2
JMOHEP(2,NHEP)=NHEP-1
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
CALL HWVSUM(4,PHEP(1,NHEP-1),PHEP(1,NHEP-2),PHEP(1,NHEP))
CALL HWUMAS(PHEP(1,NHEP))
C Select a primary interaction point
IF (PIPSMR) THEN
CALL HWRPIP
ELSE
CALL HWVZRO(4,VTXPIP)
ENDIF
CALL HWVEQU(3,VTXPIP,VHEP(1,NHEP))
VHEP(4,NHEP)=0.0
C---GENERATE PHOTONS (WEIZSACKER-WILLIAMS APPROX)
C FOR HADRONIC PROCESSES WITH LEPTON BEAMS
GAMWT=ONE
IF (IPRO.GT.12.AND.IPRO.LT.90) THEN
IF (CIRCOP.EQ.0) THEN
IF (ABS(IDHEP(1)).EQ.11.OR.ABS(IDHEP(1)).EQ.13)
& CALL HWEGAM(1,ZERO, ONE,.FALSE.)
IF (ABS(IDHEP(2)).EQ.11.OR.ABS(IDHEP(2)).EQ.13)
& CALL HWEGAM(2,ZERO, ONE,.FALSE.)
ELSE
C---MODIFIED TO USE CIRCE FOR BEAMSTRAHLUNG EFFECTS
IF (ABS(IDHEP(1)).NE.11.OR.IDHEP(1)+IDHEP(2).NE.0) STOP
$ 'This version only works for e+e- annihilation'
IF (FSTWGT) THEN
RS=NINT(PHEP(5,3)*10)/1D1
CALL CIRCES(ZERO,ZERO,RS,CIRCAC,CIRCVR,CIRCRV,CIRCCH)
ENDIF
CALL HWEGAM(1,ZERO, ONE,.TRUE.)
CALL HWEGAM(2,ZERO, ONE,.TRUE.)
Z1=PHEP(4,4)/PHEP(4,1)
Z2=PHEP(4,6)/PHEP(4,2)
C---FACTORIZE THE DISTRIBUTIONS FROM CIRCE
C1=CIRCGG(Z1,-1D0)/SQRT(CIRCGG(-1D0,-1D0))
C2=CIRCGG(-1D0,Z2)/SQRT(CIRCGG(-1D0,-1D0))
C---REMOVE SPURIOUS WEIGHT GIVEN IN HWEGAM
GAMWT=GAMWT/(.5*ALPHEM/PIFAC*(1+(1-Z1)**2)/Z1*
$ LOG((ONE-Z1)/Z1*4*PHEP(4,1)*PHEP(4,2)/PHEP(5,1)**2))
$ /(.5*ALPHEM/PIFAC*(1+(1-Z2)**2)/Z2*
$ LOG((ONE-Z2)/Z2*4*PHEP(4,4)*PHEP(4,2)/PHEP(5,1)**2))
C---REPLACE IT BY THE SUM OF BEAM AND BREM STRAHLUNG
QMX1=MIN(Q2WWMX,(Z1*PHEP(3,1))**2)
QMN1=MAX(Q2WWMN,(PHEP(5,1)*Z1)**2/(1-Z1))
QMX2=MIN(Q2WWMX,(Z2*PHEP(3,2))**2)
QMN2=MAX(Q2WWMN,(PHEP(5,2)*Z2)**2/(1-Z2))
B1=.5*ALPHEM/PIFAC*(1+(1-Z1)**2)/Z1*LOG(QMX1/QMN1)
B2=.5*ALPHEM/PIFAC*(1+(1-Z2)**2)/Z2*LOG(QMX2/QMN2)
IF (CIRCOP.EQ.1) THEN
GAMWT=GAMWT*B1*B2
ELSEIF (CIRCOP.EQ.2) THEN
GAMWT=GAMWT*C1*C2
ELSEIF (CIRCOP.EQ.3) THEN
GAMWT=GAMWT*(C1+B1)*(C2+B2)
ELSE
STOP 'Illegal value of circop!'
ENDIF
ENDIF
ELSEIF (IPRO.GE.90) THEN
IF (CIRCOP.NE.0) STOP 'Circe not interfaced for DIS processes'
IF (ABS(IDHEP(2)).EQ.11.OR.ABS(IDHEP(2)).EQ.13)
& CALL HWEGAM(2,ZERO, ONE,.FALSE.)
ENDIF
C---GENERATE ISR PHOTONS FOR LEPTONIC PROCESSES
IF (IPRO.GT.0.AND.IPRO.LE.12) THEN
IF (CIRCOP.EQ.0) THEN
CALL HWEISR(1)
CALL HWEISR(2)
ELSE
C---MODIFIED TO USE CIRCE FOR BEAMSTRAHLUNG EFFECTS
IF (ABS(IDHEP(1)).NE.11.OR.IDHEP(1)+IDHEP(2).NE.0) STOP
$ 'This version only works for e+e- annihilation'
IF (FSTWGT) THEN
RS=NINT(PHEP(5,3)*10)/1D1
CALL CIRCES(ZERO,ZERO,RS,CIRCAC,CIRCVR,CIRCRV,CIRCCH)
C---PRECALCULATE THE PART OF THE SPECTRUM MISSED BETWEEN ZMXISR AND 1
ETA=0.6D0
MISS=HWUGAU(HWECIR,1D-15**(1-ETA),(1-ZMXISR)**(1-ETA),1D-12)
ENDIF
COLISR=.TRUE.
CALL HWEISR(1)
CALL HWEISR(2)
IHAD=1
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
Z1=PHEP(4,IHAD)/PHEP(4,1)
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
Z2=PHEP(4,IHAD)/PHEP(4,2)
C---FACTORIZE THE DISTRIBUTIONS FROM CIRCE
C1=CIRCEE(Z1,-1D0)/SQRT(CIRCEE(-1D0,-1D0))
C2=CIRCEE(-1D0,Z2)/SQRT(CIRCEE(-1D0,-1D0))
IF (Z1.EQ.ONE) C1=C1+MISS
IF (Z2.EQ.ONE) C2=C2+MISS
C---REMOVE WEIGHT GIVEN IN HWEISR
B1=CIRCKP(1)
B2=CIRCKP(2)
GAMWT=GAMWT/(B1*B2)
C---REPLACE IT BY THE SUM OF BEAM AND BREM STRAHLUNG
IF (CIRCOP.EQ.1) THEN
GAMWT=GAMWT*B1*B2
ELSEIF (CIRCOP.EQ.2) THEN
GAMWT=GAMWT*C1*C2
ELSEIF (CIRCOP.EQ.3) THEN
C---IN THE APPROXIMATION OF DOMINANCE BY THE DELTA-FUNCTION TERM
IF (Z1.EQ.ONE) C1=C1-1
IF (Z2.EQ.ONE) C2=C2-1
C---IF IT DOES NOT DOMINATE, ZMXISR SHOULD BE DECREASED
IF (B1+C1.LT.ZERO) CALL HWWARN('HWEPRO',501)
IF (B2+C2.LT.ZERO) CALL HWWARN('HWEPRO',502)
GAMWT=GAMWT*(C1+B1)*(C2+B2)
ELSE
STOP 'Illegal value of circop!'
ENDIF
ENDIF
ENDIF
C---IF USER LIMITS WERE TOO TIGHT, MIGHT NOT BE ANY PHASE-SPACE
IF (GAMWT.LE.ZERO) GOTO 30
C---IF CMF HAS ACQUIRED A TRANSVERSE BOOST, OR USER REQUESTS IT ANYWAY,
C BOOST EVENT RECORD BACK TO CMF
IF (PHEP(1,3)**2+PHEP(2,3)**2.GT.ZERO .OR. USECMF) CALL HWUBST(1)
C---ROUTINE LOOPS BACK TO HERE IF GENERATED WEIGHT WAS ACCEPTED
20 CONTINUE
IPRO=MOD(IPROC/100,100)
C---PROCESS GENERATED BY LES HOUCHES INTERFACE
IF(IPRO.LE.0) THEN
CALL HWHGUP
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
ELSEIF (IPRO.EQ.1) THEN
IF (IPROC.LT.110.OR.IPROC.GE.120) THEN
C--- E+E- -> Q-QBAR OR L-LBAR
CALL HWHEPA
ELSE
C--- E+E- -> Q-QBAR-GLUON
CALL HWHEPG
ENDIF
ELSEIF (IPRO.EQ.2) THEN
C--- E+E- -> W+ W-
CALL HWHEWW
ELSEIF (IPRO.EQ.3) THEN
C---E+E- -> Z H
CALL HWHIGZ
ELSEIF (IPRO.EQ.4) THEN
C---E+E- -> NUEB NUE H
CALL HWHIGW
ELSEIF (IPRO.EQ.5 .AND. IPROC.LT.550) THEN
C---EE -> EE GAMGAM -> EE FFBAR/WW
CALL HWHEGG
ELSEIF (IPRO.EQ.5) THEN
C---EE -> ENU GAMW -> ENU FF'BAR/WZ
CALL HWHEGW
ELSEIF (IPRO.EQ.6) THEN
C---EE -> FOUR JETS
CALL HWH4JT
ELSEIF(IPRO.EQ.7) THEN
C--EE -> SUSY PARTICLES(PAIR PRODUCTION)
CALL HWHESP
ELSEIF(IPRO.EQ.8) THEN
C--EE -> RPV SUSY PARTICLE PRODUCTION
CALL HWHREP
ELSEIF (IPRO.EQ.9) THEN
IF((MOD(IPROC,10000).EQ.955).OR.
& (MOD(IPROC,10000).EQ.965).OR.
& (MOD(IPROC,10000).EQ.975))THEN
C---MSSM Higgs pair production in l+l-: H+ H- and A0 Higgs, Higgs=h0,H0.
CALL HWHIHH
ELSEIF((MOD(IPROC,10000).EQ.910).OR.
& (MOD(IPROC,10000).EQ.920))THEN
C---MSSM scalar Higgs production from vector-vector fusion.
CALL HWHIGW
ELSEIF((MOD(IPROC,10000).EQ.960).OR.
& (MOD(IPROC,10000).EQ.970))THEN
C---MSSM scalar Higgs production from Higgs-strahlung.
CALL HWHIGZ
END IF
ELSEIF ((IPRO.EQ.10).OR.(IPRO.EQ.11)) THEN
C---SM/MSSM Higgs production with heavy quark flavours via e+e-.
CALL HWHIGE
ELSEIF (IPRO.EQ.13) THEN
C---GAMMA/Z0/Z' DRELL-YAN PROCESS
CALL HWHDYP
ELSEIF (IPRO.EQ.14) THEN
C---W+/- PRODUCTION VIA DRELL-YAN PROCESS
CALL HWHWPR
ELSEIF (IPRO.EQ.15) THEN
C---QCD HARD 2->2 PROCESSES
CALL HWHQCD
ELSEIF ((IPRO.EQ.16).OR.(IPRO.EQ.36)) THEN
C---SM/MSSM HIGGS PRODUCTION VIA QUARK/GLUON FUSION
CALL HWHIGS
ELSEIF (IPRO.EQ.17) THEN
C---QCD HEAVY FLAVOUR PRODUCTION
CALL HWHHVY
ELSEIF (IPRO.EQ.18) THEN
C---QCD DIRECT PHOTON + JET PRODUCTION
CALL HWHPHO
ELSEIF ((IPRO.EQ.19).OR.(IPRO.EQ.37)) THEN
C---SM/MSSM HIGGS PRODUCTION VIA W/Z FUSION
CALL HWHIGW
ELSEIF (IPRO.EQ.20) THEN
C---TOP PRODUCTION FROM W EXCHANGE
CALL HWHWEX
ELSEIF (IPRO.EQ.21) THEN
C---VECTOR BOSON + JET PRODUCTION
CALL HWHV1J
ELSEIF (IPRO.EQ.22) THEN
C QCD direct photon pair production
CALL HWHPH2
ELSEIF (IPRO.EQ.23) THEN
C QCD Higgs plus jet production
CALL HWHIGJ
ELSEIF (IPRO.EQ.24) THEN
C---COLOUR-SINGLET EXCHANGE
CALL HWHSNG
ELSEIF (IPRO.EQ.25) THEN
C---SM Higgs production with heavy quark flavours via qq and gg.
CALL HWHIGQ
ELSEIF ((IPRO.EQ.26).OR.(IPRO.EQ.27)) THEN
C---SM Higgs production with heavy gauge bosons via qq(').
CALL HWHIGV
C---Gauge boson pair in hadron hadron
ELSEIF (IPRO.EQ.28) THEN
IF (MOD(IPROC,10000).LT.2850) THEN
CALL HWHGBP
ELSE
CALL HWHVVJ
ENDIF
C--Vector boson + two jets
ELSEIF(IPRO.EQ.29) THEN
CALL HWHV2J
ELSEIF (IPRO.EQ.30) THEN
C---HADRON-HADRON SUSY PROCESSES
CALL HWHSSP
ELSEIF ((IPRO.EQ.31).OR.(IPRO.EQ.32)) THEN
C---MSSM charged/neutral Higgs production in association with squarks.
CALL HWHISQ
ELSEIF (IPRO.EQ.33) THEN
IF(MOD(IPROC,10000).EQ.3350)THEN
C---MSSM charged Higgs production in association with W: W+H- + W-H+.
CALL HWHIBK
ELSEIF((MOD(IPROC,10000).EQ.3310).OR.
& (MOD(IPROC,10000).EQ.3320).OR.
& (MOD(IPROC,10000).EQ.3360).OR.
& (MOD(IPROC,10000).EQ.3370))THEN
C---MSSM Higgs production with heavy gauge bosons via qq(').
CALL HWHIGV
ELSE
C---MSSM charged/neutral Higgs pair production.
CALL HWHIGH
END IF
ELSEIF (IPRO.EQ.34) THEN
C---MSSM charged/neutral Higgs production via bg fusion.
CALL HWHIBG
ELSEIF (IPRO.EQ.35) THEN
C---MSSM charged Higgs production via bq fusion.
CALL HWHIBQ
ELSEIF (IPRO.EQ.38) THEN
C---MSSM charged/neutral Higgs production with heavy quarks via qq and gg.
CALL HWHIGQ
ELSEIF(IPRO.EQ.40.OR.IPRO.EQ.41) THEN
C---HADRON-HADRON R-PARITY VIOLATING SUSY PROCESSES
CALL HWHRSP
ELSEIF (IPRO.EQ.42) THEN
C---SPIN-TWO RESONANCE
CALL HWHGRV
ELSEIF (IPRO.EQ.50) THEN
C Point-like photon two-jet production
CALL HWHPPT
ELSEIF (IPRO.EQ.51) THEN
C Point-like photon/QCD heavy flavour pair production
CALL HWHPPH
ELSEIF (IPRO.EQ.52) THEN
C Point-like photon/QCD heavy flavour single excitation
CALL HWHPPE
ELSEIF (IPRO.EQ.53) THEN
C Compton scattering of point-like photon and (anti)quark
CALL HWHPQS
ELSEIF (IPRO.EQ.55) THEN
C Point-like photon/higher twist meson production
CALL HWHPPM
ELSEIF (IPRO.EQ.60) THEN
C---QPM GAMMA-GAMMA-->QQBAR
CALL HWHQPM
ELSEIF (IPRO.GE.70.AND.IPRO.LE.79) THEN
C---BARYON-NUMBER VIOLATION, AND OTHER MULTI-W PRODUCTION PROCESSES
CALL HVHBVI
ELSEIF (IPRO.EQ.80) THEN
C---MINIMUM-BIAS: NO HARD SUBPROCESS
C FIND WEIGHT
CALL HWMWGT
ELSEIF (IPRO.EQ.90) THEN
C---DEEP INELASTIC
CALL HWHDIS
ELSEIF(IPRO.EQ.91) THEN
C---BOSON - GLUON(QUARK) FUSION --> ANTIQUARK(GLUON) + QUARK
CALL HWHBGF
ELSEIF(IPRO.EQ.92) THEN
C---DEEP INELASTIC WITH EXTRA JET: OBSOLETE PROCESS
WRITE (6,40)
40 FORMAT (1X,' IPROC=92** is no longer supported.'
& /1X,' Please use IPROC=91** instead.')
CALL HWWARN('HWEPRO',500)
ELSEIF(IPRO.EQ.95) THEN
C---HIGGS PRODUCTION VIA W FUSION IN E P
CALL HWHIGW
C !!!!!!!!! IPRO >=0 NOT USED BY LH INTERFACE
ELSE
C---UNKNOWN PROCESS
CALL HWWARN('HWEPRO',102)
GOTO 999
ENDIF
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C genev= false
30 IF (GENEV) THEN
IF (NOWGT) THEN
IF (NEGWTS) THEN
IF (EVWGT.LT.ZERO) THEN
EVWGT=-AVABW
ELSE
EVWGT= AVABW
ENDIF
ELSE
EVWGT=AVWGT
ENDIF
ENDIF
ISTAT=10
C--New call spin correlation code if needed
IF(SYSPIN.AND.(IPRO.EQ. 1.OR.IPRO.EQ.13.OR.IPRO.EQ.14.OR.
& IPRO.EQ.15.OR.IPRO.EQ.17.OR.IPRO.EQ.20.OR.
& IPRO.EQ. 7.OR.IPRO.EQ.30.OR.IPRO.EQ.40.OR.
& IPRO.EQ.41.OR.IPRO.EQ.8)) CALL HWHSPN
C--generate additional photon radiation in top production
IF(ITOPRD.EQ.1.AND.MOD(IPROC,10000).EQ.1706) CALL HWPHTT
RETURN
ELSE
C---IF AN EVENT IS CANCELLED BEFORE IT IS GENERATED, GIVE IT ZERO WEIGHT
IF (IERROR.NE.0) THEN
EVWGT=ZERO
IERROR=0
ENDIF
EVWGT=EVWGT*GAMWT
NWGTS=NWGTS+1
ABWGT=ABS(EVWGT)
IF (EVWGT.LT.ZERO) THEN
IF (NEGWTS) THEN
NNEGWT=NNEGWT+1
ELSE
IF (EVWGT.LT.-1.D-9) CALL HWWARN('HWEPRO',3)
EVWGT=ZERO
ABWGT=ZERO
ENDIF
ENDIF
WGTSUM=WGTSUM+EVWGT
WSQSUM=WSQSUM+EVWGT**2
ABWSUM=ABWSUM+ABWGT
C--weight addition for Les Houches accord
IF(IPROC.LE.0) THEN
IF(ABS(IDWTUP).EQ.1) THEN
LHWGT (ITYPLH) = LHWGT (ITYPLH)+EVWGT
LHWGTS(ITYPLH) = LHWGTS(ITYPLH)+EVWGT**2
LHIWGT(ITYPLH) = LHIWGT(ITYPLH)+1
ENDIF
ENDIF
IF (ABWGT.GT.WBIGST) THEN
WBIGST=ABWGT
IF (NOWGT.AND.WBIGST.GT.WGTMAX) THEN
IF (NEVHEP.NE.0) CALL HWWARN('HWEPRO',1)
WGTMAX=WBIGST*1.1
WRITE (6,99) WGTMAX
C--additional for Les Houche accord
IF(IPROC.LE.0) THEN
IF(ABS(IDWTUP).EQ.1)
& LHMXSM = LHMXSM-LHXMAX(ITYPLH)+ABWGT
LHXMAX(ITYPLH) = EVWGT
ENDIF
ENDIF
ENDIF
IF (NEVHEP.NE.0) THEN
C---LOW EFFICIENCY WARNINGS:
C WARN AT 10*EFFMIN, STOP AT EFFMIN
IF (10*EFFMIN*NWGTS.GT.NEVHEP) THEN
IF (EFFMIN*NWGTS.GT.NEVHEP) THEN
WRITE (*,*) NWGTS
CALL HWWARN('HWEPRO',200)
ENDIF
IF (EFFMIN.GT.ZERO) THEN
IF (MOD(NWGTS,INT(10/EFFMIN)).EQ.0) THEN
CALL HWWARN('HWEPRO',2)
WRITE (6,98) WGTMAX
ENDIF
ENDIF
ENDIF
IF (NOWGT) THEN
GENEV=ABWGT.GT.WGTMAX*HWRGEN(0)
ELSE
GENEV=ABWGT.NE.ZERO
ENDIF
IF (GENEV) GOTO 20
GOTO 10
ENDIF
ENDIF
98 FORMAT(10X,' MAXIMUM WEIGHT =',1PG24.16)
99 FORMAT(10X,'NEW MAXIMUM WEIGHT =',1PG24.16)
999 RETURN
END
CDECK ID>, HWETWO.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWETWO(SMR3,SMR4)
C-----------------------------------------------------------------------
C SETS UP 2->2 HARD SUBPROCESS
c BRW change 18/8/04: BW smearing of mass i only if SMRi is true
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUMBW,HWUPCM,PA,PCM
INTEGER ICMF,IBM,I,J,K,IHEP,NTRY
LOGICAL SMR3,SMR4
EXTERNAL HWUPCM
C---INCOMING LINES
ICMF=NHEP+3
DO 15 I=1,2
IBM=I
C---FIND BEAM AND TARGET
IF (JDAHEP(1,I).NE.0) IBM=JDAHEP(1,I)
IHEP=NHEP+I
IDHW(IHEP)=IDN(I)
IDHEP(IHEP)=IDPDG(IDN(I))
ISTHEP(IHEP)=110+I
JMOHEP(1,IHEP)=ICMF
JMOHEP(I,ICMF)=IHEP
JDAHEP(1,IHEP)=ICMF
C---SPECIAL - IF INCOMING PARTON IS INCOMING BEAM THEN COPY IT
IF (XX(I).EQ.ONE.AND.IDHW(IBM).EQ.IDN(I)) THEN
CALL HWVEQU(5,PHEP(1,IBM),PHEP(1,IHEP))
IF (I.EQ.2) PHEP(3,IHEP)=-PHEP(3,IHEP)
ELSE
PHEP(1,IHEP)=0.
PHEP(2,IHEP)=0.
PHEP(5,IHEP)=RMASS(IDN(I))
PA=XX(I)*(PHEP(4,IBM)+ABS(PHEP(3,IBM)))
PHEP(4,IHEP)=0.5*(PA+PHEP(5,IHEP)**2/PA)
PHEP(3,IHEP)=PA-PHEP(4,IHEP)
ENDIF
15 CONTINUE
PHEP(3,NHEP+2)=-PHEP(3,NHEP+2)
C---HARD CENTRE OF MASS
IDHW(ICMF)=IDCMF
IDHEP(ICMF)=IDPDG(IDCMF)
ISTHEP(ICMF)=110
CALL HWVSUM(4,PHEP(1,NHEP+1),PHEP(1,NHEP+2),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
C---OUTGOING LINES
NTRY=0
DO 16 I=3,4
IHEP=NHEP+I+1
IDHW(IHEP)=IDN(I)
IDHEP(IHEP)=IDPDG(IDN(I))
ISTHEP(IHEP)=110+I
JMOHEP(1,IHEP)=ICMF
16 JDAHEP(I-2,ICMF)=IHEP
19 CONTINUE
IF (SMR3) THEN
PHEP(5,NHEP+4)=HWUMBW(IDN(3))
ELSE
PHEP(5,NHEP+4)=RMASS(IDN(3))
ENDIF
IF (SMR4) THEN
PHEP(5,NHEP+5)=HWUMBW(IDN(4))
ELSE
PHEP(5,NHEP+5)=RMASS(IDN(4))
ENDIF
PCM=HWUPCM(PHEP(5,NHEP+3),PHEP(5,NHEP+4),PHEP(5,NHEP+5))
IF (PCM.LT.ZERO) THEN
NTRY=NTRY+1
IF (NTRY.LE.NETRY) GO TO 19
CALL HWWARN('HWETWO',103)
GOTO 999
ENDIF
IHEP=NHEP+4
PHEP(4,IHEP)=SQRT(PCM**2+PHEP(5,IHEP)**2)
PHEP(3,IHEP)=PCM*COSTH
PHEP(1,IHEP)=SQRT((PCM+PHEP(3,IHEP))*(PCM-PHEP(3,IHEP)))
CALL HWRAZM(PHEP(1,IHEP),PHEP(1,IHEP),PHEP(2,IHEP))
CALL HWULOB(PHEP(1,NHEP+3),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,NHEP+3),PHEP(1,IHEP),PHEP(1,NHEP+5))
C---SET UP COLOUR STRUCTURE LABELS
DO 30 I=1,4
J=I
IF (J.GT.2) J=J+1
K=ICO(I)
IF (K.GT.2) K=K+1
JMOHEP(2,NHEP+J)=NHEP+K
30 JDAHEP(2,NHEP+K)=NHEP+J
NHEP=NHEP+5
999 RETURN
END
CDECK ID>, HWH2BK.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWH2BK(P1,P2,P3,P4,RMW,RMH,RES,RESL,REST)
C-----------------------------------------------------------------------
C...Matrix element for q(1) + q-bar(2) -> W+/-(3) + H-/+(4),
C...all masses retained.
C...It factorises (PIFAC*ALPHA/SWEIN/RMW/RMW/SQRT(2.))**2
C
C...First release: 1-APR-1998 by Stefano Moretti
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3)
DOUBLE PRECISION P(0:3)
DOUBLE PRECISION RES,S,T,U,MB2,MT2,MW2,MHP2,MH02,MA02,MSH2,
& MGAMH0,MGAMA0,MGAMSH,PT,NC,KT2,RESL,REST
DOUBLE PRECISION TT,UU,KKT2,TL
DOUBLE COMPLEX Z,PV,PA
DOUBLE PRECISION RMB,RMT,RMW,RMH
DOUBLE PRECISION RMH01,GAMH01,
& RMH02,GAMH02,
& RMH03,GAMH03
DOUBLE PRECISION VP,CFC
EQUIVALENCE (RMB ,RMASS( 5)),(RMT ,RMASS( 6))
EQUIVALENCE (RMH01,RMASS(204)),
& (RMH02,RMASS(203)),
& (RMH03,RMASS(205))
PARAMETER (Z=(0D0,1D0),NC=3)
C...Higgs widths.
GAMH01=RMASS(204)/DKLTM(204)
GAMH02=RMASS(203)/DKLTM(203)
GAMH03=RMASS(205)/DKLTM(205)
C...constant terms.
MB2=RMB*RMB
MT2=RMT*RMT
MW2=RMW*RMW
MHP2=RMH *RMH
MH02=RMH01*RMH01
MA02=RMH03*RMH03
MSH2=RMH02*RMH02
MGAMH0=RMH01*GAMH01
MGAMA0=RMH03*GAMH03
MGAMSH=RMH02*GAMH02
C...Mandelstam invariants.
S=(P1(0)+P2(0))**2
T=(P1(0)-P3(0))**2
U=(P1(0)-P4(0))**2
DO I=1,3
S=S-(P1(I)+P2(I))**2
T=T-(P1(I)-P3(I))**2
U=U-(P1(I)-P4(I))**2
END DO
C...propagators and couplings.
PV=(-SINA*COSBMA/(S-MSH2+Z*MGAMSH)
& -COSA*SINBMA/(S-MH02+Z*MGAMH0) )/COSB
PA= TANB/(S-MA02+Z*MGAMA0)
PT= 1./(T-MT2)
KT2=(U*T-MHP2*MW2)/S
C...Total ME.
RES=S/NC*( MB2/2.*((S-MW2-MHP2)**2-4.*MW2*MHP2)*
& DREAL(DCONJG(PV)*PV+DCONJG(PA)*PA)+
& MB2*TANB*PT*(MW2*MHP2-S*KT2-T**2)*DREAL(PV-PA)+
& PT**2*((MT2/TANB)**2*(2.*MW2+KT2)
& +MB2*TANB**2*(2.*MW2*KT2+T**2)))
& *2.
C...Extracts spin dependence.
VP=SQRT(P3(1)**2+P3(2)**2+P3(3)**2)
CFC=P3(0)/VP
DO I=1,3
P(I)=P3(I)*CFC
END DO
P(0)=VP**2/P3(0)*CFC
TT=(P1(0)-P(0))**2
UU=(P2(0)-P(0))**2
DO I=1,3
TT=TT-(P1(I)-P(I))**2
UU=UU-(P2(I)-P(I))**2
END DO
KKT2=((MW2+TT)*(MW2+UU)+(MW2+MHP2-T-U)*MW2)/S
TL=((TT+MW2)*(UU+MW2)*((S+U-MW2)*(TT+MW2)/(UU+MW2)-T)
& +MW2*((MW2-T)*(MW2-U)-S*MW2))/S
C...Longitudinal ME (along V direction).
RESL=S/NC*(MB2/2.*((S-MW2-MHP2)**2-4.*MW2*MHP2)*
& DREAL(DCONJG(PV)*PV+DCONJG(PA)*PA)+
& MB2*TANB*PT*(MW2*MHP2-S*KT2-T**2)*DREAL(PV-PA)+
& PT**2*((MT2/TANB)**2*(KKT2)
& +MB2*TANB**2*(TL)))
& *2.
C...Transverse ME (perpendicular to V direction).
REST=RES-RESL
END
CDECK ID>, HWH2DD.
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2DD(ND,I,J,K,L,Z1,Z2)
C-----------------------------------------------------------------------
C Returns the coefficient D1-10 from Nucl. Phys. B262 (1985) 235-262
C N.B. THE STRONG COUPLING AND GV+/-GA ARE INCLUDED IN THE CROSS
C SECTION ROUTINE
C I-L are the particles (all outgoing)
C Z1 and Z2 are the decay products of the Z
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ND,I,J,K,L,Z1,Z2
DOUBLE COMPLEX HWH2DD,ZI,S,D,F
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHZBB/F(8,8)
IF(ND.EQ.1) THEN
HWH2DD = ZI
ELSEIF(ND.EQ.2) THEN
HWH2DD = ZI/F(J,K)/SQRT(TWO*D(I,K))
ELSEIF(ND.EQ.3) THEN
HWH2DD = -ZI/F(I,K)/SQRT(TWO*D(I,K))
ELSEIF(ND.EQ.4) THEN
HWH2DD = -ZI/F(K,L)/(F(Z1,I)+F(Z2,I)+F(Z1,Z2))
ELSEIF(ND.EQ.5) THEN
HWH2DD = ZI/F(K,L)/(F(Z1,J)+F(Z2,J)+F(Z1,Z2))
ELSEIF(ND.EQ.6) THEN
HWH2DD = ZI*HALF/F(J,L)/(F(J,L)+F(J,K)+F(K,L))/D(K,L)
ELSEIF(ND.EQ.7) THEN
HWH2DD = -ZI*HALF/F(I,K)/F(J,L)/D(K,L)
ELSEIF(ND.EQ.8) THEN
HWH2DD = ZI*HALF/F(I,K)/(F(I,K)+F(I,L)+F(K,L))/D(K,L)
ELSEIF(ND.EQ.9) THEN
HWH2DD = -ZI/F(K,L)/(F(J,K)+F(J,L)+F(K,L))
ELSEIF(ND.EQ.10) THEN
HWH2DD = ZI/F(K,L)/(F(I,K)+F(I,L)+F(K,L))
ENDIF
END
CDECK ID>, HWH2BH.
*CMZ :- -30/06/01 18.21.35 by Stefano Moretti
*-- Author : Kosuke Odagiri & Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWH2BH(P1,P2,P3,P4,P5,
& EMW,EMH,EMH01,EMH02,EMH03,EMB,EMT,IFL,IRES,CKM,
& GAMT,M2)
C-----------------------------------------------------------------------
C...Matrix element for b(1) + q(2) -> b(3) + q'(4) + H+/-(5) and C.C.,
C...q(q') massless incoming(outgoing) quark, all other masses retained.
C...It factorises 64.*PIFAC**3*ALPHA**3/4./SWEIN/SWEIN/SWEIN/EMW/EMW.
C
C...First release: 01-APR-1998 by Kosuke Odagiri
C...First modified: 12-APR-1998 by Stefano Moretti
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER MU,IRES,IFL
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION EMB,EMT,EMW,EMH,EMH01,EMH02,EMH03
DOUBLE PRECISION GAMT,GAMWTMP,GAMH01,GAMH03,GAMH02,CKM
DOUBLE PRECISION QW(0:3),QS(0:3)
DOUBLE PRECISION N0,DOTHH,DOTSS,DOTWW,E1234
DOUBLE PRECISION DOTTT,DOT12,DOT13,DOT14,DOT23
DOUBLE PRECISION DOT24,DOT2H,DOT34,DOT3H,DOT4H
DOUBLE PRECISION PT2,PV2,PA2
DOUBLE PRECISION M2
DOUBLE COMPLEX PV,PA,PT,PW,Z
PARAMETER (GAMWTMP=0.D0,GAMH01=0.D0,GAMH03=0.D0,GAMH02=0.D0)
PARAMETER (Z=(0.D0,1.D0))
DOUBLE PRECISION SC,RICCI
EXTERNAL SC,RICCI
C
DO 670 MU=0,3
QW(MU)=P2(MU)-P4(MU)
QS(MU)=P1(MU)-P3(MU)
670 CONTINUE
C
DOTHH=EMH*EMH
DOTSS=SC(QS,QS)
DOTWW=SC(QW,QW)
DOT13=EMB*EMB-DOTSS/2.D0
DOT24=-DOTWW/2.D0
DOT2H=SC(P2,P5)
DOT4H=SC(P4,P5)
C
IF(IFL.EQ.1)THEN
DOT12=SC(P1,P2)
DOT14=SC(P1,P4)
DOT23=SC(P2,P3)
DOT34=SC(P3,P4)
DOT3H=SC(P3,P5)
E1234=RICCI(P1,P2,P3,P4)
ELSE IF(IFL.EQ.-1)THEN
DOT12=-SC(P3,P2)
DOT14=-SC(P3,P4)
DOT23=-SC(P2,P1)
DOT34=-SC(P1,P4)
DOT3H=-SC(P1,P5)
E1234=-RICCI(P1,P2,P3,P4)
END IF
C
DOTTT=DOTHH+EMB*EMB+2.D0*DOT3H
C
PV=COSA*SINBMA/(DOTSS-EMH01*EMH01+Z*EMH01*GAMH01)+
1 SINA*COSBMA/(DOTSS-EMH02*EMH02+Z*EMH02*GAMH02)
PA=SINB/(DOTSS-EMH03*EMH03+Z*EMH03*GAMH03)
PW=1./(DOTWW-EMW*EMW+Z*EMW*GAMWTMP)
C REMOVE TOP DIAGRAM.
IF(IRES.EQ.1)PT=1./(DOTTT-EMT*EMT+Z*EMT*GAMT)
IF(IRES.EQ.0)PT=(0.D0,0.D0)
PT=PT*CKM
PT2 =DREAL(DCONJG(PT)*PT)
PV2 =DREAL(DCONJG(PV)*PV)
PA2 =DREAL(DCONJG(PA)*PA)
C
N0=ABS(PW)
C
M2=N0*N0* ( EMB*EMB/COSB/COSB*(PV2+PA2)*DOT13*
& (2.D0*DOT4H*DOT2H-DOT24*DOTHH)+
T 2.D0*PT2*DOT12*
O (EMB*EMB*TANB*TANB*(2.D0*DOT3H*DOT4H-DOT34*DOTHH)+
P EMT*EMT/TANB/TANB*(EMT*EMT*DOT34))+
& EMB*EMB*TANB/COSB*DREAL(PV+PA)*
X (DREAL(PT)*(4.D0*DOT4H*DOT12*DOT13-
T (2.D0*DOT4H+DOTHH)*(DOT12*DOT34+DOT13*DOT24-DOT14*DOT23))+
M DIMAG(PT)*(2.D0*DOT4H+DOTHH)*E1234) )
END
C
DOUBLE PRECISION FUNCTION SC(A,B)
IMPLICIT NONE
DOUBLE PRECISION A(0:3),B(0:3)
SC=A(0)*B(0)-A(1)*B(1)-A(2)*B(2)-A(3)*B(3)
END
C
DOUBLE PRECISION FUNCTION RICCI(A,B,C,D)
IMPLICIT NONE
DOUBLE PRECISION A(0:3),B(0:3),C(0:3),D(0:3)
RICCI=
& A(0)*B(1)*C(2)*D(3)+A(0)*B(2)*C(3)*D(1)+A(0)*B(3)*C(1)*D(2)-
& A(0)*B(3)*C(2)*D(1)-A(0)*B(1)*C(3)*D(2)-A(0)*B(2)*C(1)*D(3)+
& A(1)*B(0)*C(3)*D(2)+A(1)*B(2)*C(0)*D(3)+A(1)*B(3)*C(2)*D(0)-
& A(1)*B(2)*C(3)*D(0)-A(1)*B(3)*C(0)*D(2)-A(1)*B(0)*C(2)*D(3)+
& A(2)*B(3)*C(0)*D(1)+A(2)*B(0)*C(1)*D(3)+A(2)*B(1)*C(3)*D(0)-
& A(2)*B(1)*C(0)*D(3)-A(2)*B(3)*C(1)*D(0)-A(2)*B(0)*C(3)*D(1)+
& A(3)*B(2)*C(1)*D(0)+A(3)*B(0)*C(2)*D(1)+A(3)*B(1)*C(0)*D(2)-
& A(3)*B(0)*C(1)*D(2)-A(3)*B(1)*C(2)*D(0)-A(3)*B(2)*C(0)*D(1)
END
CDECK ID>, HWH2F1
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2F1(NP,F,I,P,MQ)
C-----------------------------------------------------------------------
C Subroutine to implement the F function of Eijk and Kliess
C fixed first momenta and all second momenta
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION P(5),MQ,PM(5),XMASS,PLAB,PRW,PCM,HWULDO,PDOT,EPS
DOUBLE COMPLEX F(2,2,8),S,D,SIP(2),SJP(2)
INTEGER I,J,NP
EXTERNAL HWULDO
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
PARAMETER(EPS=1D-10)
C--find the massless momentum we need
PDOT = HWULDO(PCM(1,I),P)
P(5) = P(4)**2-P(1)**2-P(2)**2-P(3)**2
IF(ABS(PDOT).LT.EPS.AND.ABS(P(5)).LT.EPS) THEN
PDOT = HALF
ELSE
PDOT = HALF*P(5)/PDOT
ENDIF
DO J=1,4
PM(J) = P(J)-PDOT*PCM(J,I)
ENDDO
IF(P(5).GT.ZERO) THEN
P(5)=SQRT(P(5))
ELSE
P(5)=ZERO
ENDIF
PM(5) = ZERO
C--calculate its spinor product with the fixed momentum
CALL HWH2SS(SIP,PCM(1,I),PM)
C--calculate the F functions
DO J=1,NP
CALL HWH2SS(SJP,PM,PCM(1,J))
F(1,1,J) = SIP(1)*SJP(2)
F(1,2,J) = MQ*S(I,J,1)
F(2,1,J) = MQ*S(I,J,2)
F(2,2,J) = SIP(2)*SJP(1)
ENDDO
END
CDECK ID>, HWH2F2
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2F2(NP,F,I,P,MQ)
C-----------------------------------------------------------------------
C Subroutine to implement the F function of Eijk and Kliess
C fixed second momenta and all first momenta
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION P(5),MQ,PM(5),XMASS,PLAB,PRW,PCM,HWULDO,PDOT,EPS
DOUBLE COMPLEX F(2,2,8),S,D,SIP(2),SJP(2)
INTEGER I,J,NP
EXTERNAL HWULDO
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
PARAMETER(EPS=1D-10)
C--find the massless momentum we need
PDOT = HWULDO(PCM(1,I),P)
P(5) = P(4)**2-P(1)**2-P(2)**2-P(3)**2
IF(ABS(PDOT).LT.EPS.AND.ABS(P(5)).LT.EPS) THEN
PDOT = HALF
ELSE
PDOT = HALF*P(5)/PDOT
ENDIF
DO J=1,4
PM(J) = P(J)-PDOT*PCM(J,I)
ENDDO
IF(P(5).GT.ZERO) THEN
P(5)=SQRT(P(5))
ELSE
P(5)=ZERO
ENDIF
PM(5) = ZERO
C--calculate its spinor product with the fixed momentum
CALL HWH2SS(SIP,PM,PCM(1,I))
C--calculate the F functions
DO J=1,NP
CALL HWH2SS(SJP,PCM(1,J),PM)
F(1,1,J) = SIP(2)*SJP(1)
F(1,2,J) = MQ*S(J,I,1)
F(2,1,J) = MQ*S(J,I,2)
F(2,2,J) = SIP(1)*SJP(2)
ENDDO
END
CDECK ID>, HWH2F3
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2F3(NP,F,P,MQ)
C-----------------------------------------------------------------------
C Subroutine to implement the F function of Eijk and Kliess
C All first and second momenta
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION P(5),MQ,PM(5),XMASS,PLAB,PRW,PCM,HWULDO,PDOT,EPS
DOUBLE COMPLEX F(2,2,8,8),SIP(2),SJP(2),S,D
INTEGER I,J,NP
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
PARAMETER(EPS=1D-10)
C--find the massless momentum we need
DO I=1,NP
PDOT = HWULDO(PCM(1,I),P)
P(5) = P(4)**2-P(1)**2-P(2)**2-P(3)**2
IF(ABS(PDOT).LT.EPS.AND.ABS(P(5)).LT.EPS) THEN
PDOT = HALF
ELSE
PDOT = HALF*P(5)/PDOT
ENDIF
DO J=1,4
PM(J) = P(J)-PDOT*PCM(J,I)
ENDDO
IF(P(5).GT.ZERO) THEN
P(5)=SQRT(P(5))
ELSE
P(5)=ZERO
ENDIF
PM(5) = ZERO
C--calculate its spinor product with the fixed momentum
CALL HWH2SS(SIP,PCM(1,I),PM)
C--calculate the F functions
DO J=I,NP
CALL HWH2SS(SJP,PM,PCM(1,J))
F(1,1,I,J) = SIP(1)*SJP(2)
F(1,2,I,J) = MQ*S(I,J,1)
F(2,1,I,J) = MQ*S(I,J,2)
F(2,2,I,J) = SIP(2)*SJP(1)
ENDDO
ENDDO
DO I=1,NP
DO J=I+1,NP
F(1,1,J,I) = F(2,2,I,J)
F(1,2,J,I) = -F(1,2,I,J)
F(2,1,J,I) = -F(2,1,I,J)
F(2,2,J,I) = F(1,1,I,J)
ENDDO
ENDDO
END
CDECK ID>, HWH2HE.
*CMZ :- -13/10/02 09.43.05 by Peter Richardson
*-- Author : Kosuke Odagiri and Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWH2HE(FIRST,GAUGE,IFL,IH,HFC,HBC,
& E,S2W,TANB,AL,RMW,S,Q3, P3,P4,P5,
& RM3,YM3,GAM3,RM4,YM4,GAM4,RM5,GAM5,
& RML,GAML,RMH,GAMH,RMA,GAMA,
& RMZ,GAMZ,CFAC,RES)
C-----------------------------------------------------------------------
C MATRIX ELEMENT SQUARED FOR
C e-(1) e+(2) -> f(3) f(')bar(4) Higgs(5)
C (SAME QUARK MASSES IN YUKAWA AND KINEMATICS)
C-----------------------------------------------------------------------
IMPLICIT NONE
LOGICAL FIRST,GAUGE
DOUBLE PRECISION HFC,HBC
DOUBLE PRECISION CFAC
DOUBLE PRECISION E,S2W,TANB,AL,RMW,S,Q3,RES
DOUBLE PRECISION P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION RM3,YM3,GAM3,RM4,YM4,GAM4,RM5,GAM5,RMZ,GAMZ
DOUBLE PRECISION RML,GAML,RMH,GAMH,RMA,GAMA,Q2
DOUBLE PRECISION XW,GE(-1:1),G3(-1:1),G4(-1:1),G5(-1:1)
DOUBLE PRECISION RM(-1:1),RN1(-1:1),RN2(-1:1),RN3
DOUBLE PRECISION SQS,TWOSQS,HLFSQS,P34,M34,PREFAC
DOUBLE PRECISION RLE,RLLE,EP3(-1:1),EP4(-1:1),ZERO,ONE,TWO,HLF
DOUBLE PRECISION BE,SA,CA,SB,CB
INTEGER I,LE,L,IFL,IH
DOUBLE COMPLEX PROPZ,PROP3(-1:1),PROP4(-1:1),PROP5,PROP6
DOUBLE COMPLEX PROP7(-1:1)
DOUBLE COMPLEX PP(-1:1),MM(-1:1),QQ(-1:1),ZP3,ZP4,ZP5
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,HLF=.5D0)
SAVE XW,GE,G3,G4,G5,RM,PREFAC
C QUANTITIES WHICH CAN BE COMPUTED ONLY ONCE
IF(FIRST)THEN
C SOME COMMON INITIALISATIONS
DO I=-1,1
RM(I)=ZERO
RN1(I)=ZERO
RN2(I)=ZERO
END DO
RN3=ZERO
XW=TWO*S2W
GE( 0)=-ONE
GE(+1)=-GE(0)*XW
GE(-1)=-ONE+GE(1)
IF(IH.LE.3)THEN
G3( 0)=Q3
G3(+1)=-G3(0)*XW
G3(-1)=-ONE*(-Q3/ABS(Q3))+G3(1)
G4( 0)=G3( 0)
G4(+1)=G3(+1)
G4(-1)=G3(-1)
G5( 0)=ZERO
G5(+1)=ONE
G5(-1)=ONE
C HIGGS ANGLES
BE=ATAN(TANB)
SA=SIN(AL)
CA=COS(AL)
SB=SIN(BE)
CB=COS(BE)
C MSSM SCALING FACTORS FOR COUPLINGS
IF(IH.LE.2)THEN
RM(-1)=+YM3/RMW*HFC
RM(+1)=+YM4/RMW*HFC
ELSE IF(IH.EQ.3)THEN
RM(-1)=+YM3/RMW*HFC
RM(+1)=-YM4/RMW*HFC
END IF
IF(IH.LE.2)THEN
IF(IH.EQ.1)RN1(-1)=+YM3/RMW*((2-IFL)*TANB+(IFL-1)/TANB)
& *(-SQRT(ABS(ONE-HBC**2)))
IF(IH.EQ.1)RN1(+1)=-YM4/RMW*((2-IFL)*TANB+(IFL-1)/TANB)
& *(-SQRT(ABS(ONE-HBC**2)))
IF(IH.EQ.2)RN1(-1)=-YM3/RMW*((2-IFL)*TANB+(IFL-1)/TANB)
& *(+SQRT(ABS(ONE-HBC**2)))
IF(IH.EQ.2)RN1(+1)=+YM4/RMW*((2-IFL)*TANB+(IFL-1)/TANB)
& *(+SQRT(ABS(ONE-HBC**2)))
RN2(-1)=ZERO
RN2(+1)=ZERO
IF(IH.EQ.0)RN3=1.D0
IF(IH.EQ.1)RN3=HBC
IF(IH.EQ.2)RN3=HBC
ELSE IF(IH.EQ.3)THEN
RN1(-1)=+YM3/RMW*((2-IFL)*(-SA/CB)+(IFL-1)*(+CA/SB))
& *COS(BE-AL)
RN1(+1)=+YM4/RMW*((2-IFL)*(-SA/CB)+(IFL-1)*(+CA/SB))
& *COS(BE-AL)
RN2(-1)=+YM3/RMW*((2-IFL)*(+CA/CB)+(IFL-1)*(+SA/SB))
& *SIN(BE-AL)
RN2(+1)=+YM4/RMW*((2-IFL)*(+CA/CB)+(IFL-1)*(+SA/SB))
& *SIN(BE-AL)
RN3=ZERO
END IF
PREFAC=E**6/(XW*S)*CFAC/TWO
ELSE
G3( 0)=Q3
G3(+1)=-G3(0)*XW
G3(-1)=-ONE+G3(1)
G4( 0)=ONE+G3(0)
G4(+1)=-G4(0)*XW
G4(-1)=ONE+G4(1)
G5( 0)=ONE
G5(+1)=ONE-XW
G5(-1)=ONE-XW
RM(-1)=YM3*TANB/RMW
RM(+1)=YM4/TANB/RMW
RN1(-1)=RM(-1)
RN1(+1)=RM(+1)
RN2(-1)=ZERO
RN2(+1)=ZERO
RN3=ZERO
PREFAC=E**6/(XW*S)*CFAC
END IF
FIRST=.FALSE.
END IF
C SOME ENERGY CONSTANTS
SQS=DSQRT(S)
TWOSQS=TWO*SQS
HLFSQS=HLF*SQS
PROPZ=S/(XW*(TWO-XW)*DCMPLX(S-RMZ**2,-RMZ*GAMZ))
C SOME KINEMATICS
P34=P3(0)*P4(0)-P3(1)*P4(1)-P3(2)*P4(2)-P3(3)*P4(3)
M34=RM3*RM4
RES=ZERO
C FF(')-BAR PROPAGATOR
Q2=RM3**2+RM4**2+TWO*P34
C CONSTRUCT AMPLITUDE
DO LE=-1,1,2
RLE=DFLOAT(LE)
IF(IH.LE.2)THEN
PROP5=(GE(0)*G5(0)+GE(LE)*G5(-1)*PROPZ)/
& DCMPLX(Q2-RMA**2,-RMA*GAMA)
PROP6=(0.D0,0.D0)
ELSE IF(IH.EQ.3)THEN
PROP5=(GE(0)*G5(0)+GE(LE)*G5(-1)*PROPZ)/
& DCMPLX(Q2-RML**2,-RML*GAML)
PROP6=(GE(0)*G5(0)+GE(LE)*G5(-1)*PROPZ)/
& DCMPLX(Q2-RMH**2,-RMH*GAMH)
ELSE
PROP5=(GE(0)*G5(0)+GE(LE)*G5(-1)*PROPZ)/
& DCMPLX(Q2-RM5**2,-RM5*GAM5)
END IF
ZP3=DCMPLX(P3(1),-RLE*P3(2))
ZP4=DCMPLX(P4(1),-RLE*P4(2))
ZP5=-ZP3-ZP4
DO L=-1,1,2
PROP3(L)=(GE(0)*G3(0)+GE(LE)*G3(L)*PROPZ)/
& DCMPLX(S-TWOSQS*P3(0),-RM3*GAM3)
PROP4(L)=(GE(0)*G4(0)+GE(LE)*G4(L)*PROPZ)/
& DCMPLX(S-TWOSQS*P4(0),-RM4*GAM4)
PROP7(L)=GE(LE)*G3(L)*PROPZ/DCMPLX(Q2-RMZ**2,-RMZ*GAMZ)
END DO
DO L=-1,1,2
PP(L)=-RM(-L)*SQS*(PROP3(L)+PROP4(-L))
MM(L)=RM3*RM(+L)*(PROP3(L)-PROP3(-L))
& +RM4*RM(-L)*(PROP4(L)-PROP4(-L))
& +TWO*RMZ**2/RMW*RN3*PROP7(L)
IF(GAUGE)THEN
ZP3=P3(0)-HLFSQS
ZP4=P4(0)-HLFSQS
ZP5=P5(0)-HLFSQS
PP(L)=DCMPLX(ZERO,ZERO)
MM(L)=MM(L)+PROPZ*GE(LE)*DFLOAT(L)/TWOSQS*
& (RM3*RM(L)/ZP3-RM4*RM(-L)/ZP4)
END IF
QQ(L)=RM(L)*(PROP3(-L)*ZP3-PROP4(L)*ZP4)
& +RN1(L)*PROP5*ZP5
& -RN2(L)*PROP6*ZP5
& +RM3/RMW*RN3*(PROP7(L)-PROP7(-L))*ZP5
RLLE=DFLOAT(L*LE)
EP3(L)=P3(0)+RLLE*P3(3)
EP4(L)=P4(0)+RLLE*P4(3)
END DO
DO L=-1,1,2
RES=RES+DREAL(
& EP3(+L)*EP4(+L)*DCONJG(PP(+L))*PP(+L)+
& EP3(+L)*EP4(-L)*DCONJG(MM(+L))*MM(+L)-
& TWO*RM3*EP4(+L)*DCONJG(PP(+L))*MM(-L)-
& TWO*RM4*EP3(+L)*DCONJG(PP(+L))*MM(+L)+
& M34*(DCONJG(PP(-L))*PP(+L)+DCONJG(MM(-L))*MM(+L))
& +TWO*DCONJG(QQ(-L))
& *((RM3*MM(-L)-EP3(+L)*PP(+L))*ZP4-
& (RM4*MM(+L)-EP4(+L)*PP(+L))*ZP3+
& P34*QQ(-L)-M34*QQ(+L)))
END DO
END DO
RES=PREFAC*RES
END
CDECK ID>, HWH2M0.
*CMZ :- -14/03/01 09:03:25 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2M0(IQ,IDZ,MG,MQ)
C-----------------------------------------------------------------------
C Massless matrix elements for gg-->qqZ and qq-->qqZ
C using the matrix elements given in Nucl. Phys. B262 (1985) 235-242
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IQ,I,J,OZ(2,2),IDZ,P1,P2,P3,P4,IQI,ID(2),K
DOUBLE PRECISION MG(2),MQ(2,5),G(12,2),FLOW(3,3),CQFC,CQIFC,
& CGFC,CGIFC
DOUBLE COMPLEX MQAMP(2),HWH2T1,HWH2T2,HWH2T3,HWH2T4,HWH2T5,
& HWH2T6,HWH2T7,HWH2T8,HWH2T9,HWH2T0,DCF(8),HWH2DD,
& MGAMP(2,2,2,2,2),TRPGL(2)
EXTERNAL HWH2DD,HWH2T0,HWH2T1,HWH2T2,HWH2T3,HWH2T4,HWH2T5,HWH2T6,
& HWH2T7,HWH2T8,HWH2T9
PARAMETER(CQFC=2.0D0,CQIFC=-2.0D0/3.0D0,CGFC=16.0D0/3.0D0,
& CGIFC=-2.0D0/3.0D0)
COMMON /HWHZBC/G
SAVE OZ,ID
DATA OZ/6,5,5,6/
DATA ID/1,2/
C--flavour of the final-state quark (1 is down-type and 2 is up-type)
IQI = MOD(IQ,2)
IF(IQI.EQ.0) IQI=2
C--calculate qqbar---> q'q'barZ
DCF(1) = HWH2DD(4,2,1,3,4,5,6)
DCF(2) = HWH2DD(5,2,1,3,4,5,6)
DCF(3) = HWH2DD(4,3,4,2,1,5,6)
DCF(4) = HWH2DD(5,3,4,2,1,5,6)
DCF(5) = HWH2DD(4,3,1,2,4,5,6)
DCF(6) = HWH2DD(5,3,1,2,4,5,6)
DCF(7) = HWH2DD(4,2,4,3,1,5,6)
DCF(8) = HWH2DD(5,2,4,3,1,5,6)
DO I=1,3
DO J=1,3
FLOW(I,J) = ZERO
ENDDO
ENDDO
DO I=1,2
C--calculate the matrix element, N.B. two possibe colour flows
DO P1=1,2
DO P2=1,2
DO P3=1,2
MQAMP(1)= G(IDZ,P3)*(
& G(ID(I),P1)*(DCF(1)*HWH2T4(2,1,3,4,OZ(P3,1),OZ(P3,2),P1,P2)
& +DCF(2)*HWH2T5(2,1,3,4,OZ(P3,1),OZ(P3,2),P1,P2))
& +G(IQ,P2)*(DCF(3)*HWH2T4(3,4,2,1,OZ(P3,1),OZ(P3,2),P2,P1)
& +DCF(4)*HWH2T5(3,4,2,1,OZ(P3,1),OZ(P3,2),P2,P1)))
IF(ID(I).NE.IQI) THEN
MQAMP(2)=ZERO
ELSE
MQAMP(2)= G(IDZ,P3)*(
& G(IQ,P1)*(DCF(5)*HWH2T4(3,1,2,4,OZ(P3,1),OZ(P3,2),P1,P2)
& +DCF(6)*HWH2T5(3,1,2,4,OZ(P3,1),OZ(P3,2),P1,P2))
& +G(IQ,P2)*(DCF(7)*HWH2T4(2,4,3,1,OZ(P3,1),OZ(P3,2),P2,P1)
& +DCF(8)*HWH2T5(2,4,3,1,OZ(P3,1),OZ(P3,2),P2,P1)))
ENDIF
FLOW(I,1) = FLOW(I,1)+DBLE(MQAMP(1)*DCONJG(MQAMP(1)))
FLOW(I,2) = ZERO
FLOW(I,3) = ZERO
IF(IQI.EQ.ID(I)) THEN
FLOW(3,1) = FLOW(3,1)+DBLE(MQAMP(1)*DCONJG(MQAMP(1)))
FLOW(3,2) = FLOW(3,2)+DBLE(MQAMP(2)*DCONJG(MQAMP(2)))
IF(P1.EQ.P2) FLOW(3,3) = FLOW(3,3)
& -TWO*DBLE(MQAMP(1)*DCONJG(MQAMP(2)))
ENDIF
ENDDO
ENDDO
ENDDO
ENDDO
DO I=1,3
FLOW(I,1) = CQFC*FLOW(I,1)
FLOW(I,2) = CQFC*FLOW(I,2)
FLOW(I,3) = CQIFC*FLOW(I,3)
ENDDO
C--now find the matrix elements
DO I=1,5
K = MOD(I,2)
IF(K.EQ.0) K=2
IF(I.EQ.IQ) K=3
DO J=1,2
IF(FLOW(K,J).NE.ZERO) MQ(J,I) = FLOW(K,J)*
& (ONE+FLOW(K,3)/(FLOW(K,1)+FLOW(K,2)))
ENDDO
ENDDO
C--calculate gg---> bbbarZ
C--coefficients for the diagrams
DCF(1) = HWH2DD( 6,3,4,1,2,5,6)
DCF(2) = HWH2DD( 7,3,4,1,2,5,6)
DCF(3) = HWH2DD( 8,3,4,1,2,5,6)
DCF(4) = HWH2DD( 6,3,4,2,1,5,6)
DCF(5) = HWH2DD( 7,3,4,2,1,5,6)
DCF(6) = HWH2DD( 8,3,4,2,1,5,6)
DCF(7) = HWH2DD( 9,3,4,1,2,5,6)
DCF(8) = HWH2DD(10,3,4,1,2,5,6)
C--helicity amplitudes
DO P1=1,2
DO P2=1,2
DO P3=1,2
DO P4=1,2
TRPGL(1)=
& DCF(7)*HWH2T9(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P1,P2)
& +DCF(8)*HWH2T0(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P1,P2)
TRPGL(2)=
& DCF(7)*HWH2T9(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P2,P1)
& +DCF(8)*HWH2T0(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P2,P1)
MGAMP(1,P1,P2,P3,P4) = G(IDZ,P4)*G(IQ,P3)*(
& TRPGL(1)
& +DCF(1)*HWH2T6(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P1,P2)
& +DCF(2)*HWH2T7(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P1,P2)
& +DCF(3)*HWH2T8(3,4,1,2,OZ(P4,1),OZ(P4,2),P3,P1,P2)
& )
MGAMP(2,P2,P1,P3,P4) = G(IDZ,P4)*G(IQ,P3)*(-TRPGL(2)
& +DCF(4)*HWH2T6(3,4,2,1,OZ(P4,1),OZ(P4,2),P3,P1,P2)
& +DCF(5)*HWH2T7(3,4,2,1,OZ(P4,1),OZ(P4,2),P3,P1,P2)
& +DCF(6)*HWH2T8(3,4,2,1,OZ(P4,1),OZ(P4,2),P3,P1,P2))
ENDDO
ENDDO
ENDDO
ENDDO
C--square to obtain the matrix element
DO I=1,3
FLOW(1,I) = ZERO
ENDDO
DO P1=1,2
DO P2=1,2
DO P3=1,2
DO P4=1,2
FLOW(1,1) = FLOW(1,1)+DBLE(MGAMP(1,P1,P2,P3,P4)*
& DCONJG(MGAMP(1,P1,P2,P3,P4)))
FLOW(1,2) = FLOW(1,2)+DBLE(MGAMP(2,P1,P2,P3,P4)*
& DCONJG(MGAMP(2,P1,P2,P3,P4)))
FLOW(1,3) = FLOW(1,3)+TWO*DBLE(MGAMP(1,P1,P2,P3,P4)*
& DCONJG(MGAMP(2,P1,P2,P3,P4)))
ENDDO
ENDDO
ENDDO
ENDDO
FLOW(1,1) = CGFC*FLOW(1,1)
FLOW(1,2) = CGFC*FLOW(1,2)
FLOW(1,3) = CGIFC*FLOW(1,3)
DO I=1,2
MG(I) = FLOW(1,I)*(ONE+FLOW(1,3)/(FLOW(1,1)+FLOW(1,2)))
ENDDO
END
CDECK ID>, HWH2MQ.
*CMZ :- -14/03/01 09:03:25 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2MQ(IQ,IDZ,MG,MQ)
C-----------------------------------------------------------------------
C Massive matrix elements for gg --> qqbarZ and qqbar --> qqbarZ
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IQ,I,IDZ,P1,P2,PL,PB,PBB,O(2),J,IQI
DOUBLE PRECISION MG(2),MQ(2,5),G(12,2),CQFC,CQIFC,CGFC,CGIFC,
& PTMP(5,10),XMASS,PLAB,PRW,PCM,HWULDO,QBL,QBBL,Q2B,Q1B,Q2BB,
& Q1BB,QM2,FLOW(3,3),PG,PBQB,PBBQBB,QM,PQ,Q1L,Q2L,
& Q1LB,Q2LB,MQB(2,3),QBB
DOUBLE COMPLEX S,D,FBB(2,2,8),FBBB(2,2,8),FBLL(2,2,8,8),MQP(2),
& FBBLL(2,2,8,8),F1B(2,2,8,8),F1BB(2,2,8,8),F2B(2,2,8,8),
& F2BB(2,2,8,8),DL(2,2),DCF(8),MGAMP(3),MQAMP(3,2,2,2,2),
& MQQAMP(2,2,2,2,2),F1LL(2,2,8,8),F2LL(2,2,8,8)
COMMON/HWHZBC/G
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
PARAMETER(CQFC=2.0D0,CQIFC=-2.0D0/3.0D0,CGFC=16.0D0/3.0D0,
& CGIFC=-2.0D0/3.0D0)
EXTERNAL HWULDO
SAVE DL,O
DATA DL/(1.0D0,0.0D0),(0.0D0,0.0D0),(0.0D0,0.0D0),(1.0D0,0.0D0)/
DATA O /2,1/
C--mass of the final-state quark
QM = RMASS(IQ)
QM2 = RMASS(IQ)**2
C--first calculate the F functions we will need
DO I=1,4
PTMP(I,1) = PCM(I,9)+PCM(I,5)+PCM(I,6)
PTMP(I,2) = -PCM(I,10)-PCM(I,5)-PCM(I,6)
PTMP(I,3) = PCM(I,9)-PCM(I,1)
PTMP(I,4) = PCM(I,1)-PCM(I,10)
PTMP(I,5) = PCM(I,9)-PCM(I,2)
PTMP(I,6) = PCM(I,2)-PCM(I,10)
PTMP(I,7) = PCM(I,9)
PTMP(I,8) = -PCM(I,10)
PTMP(I,9) = PCM(I,1)-PCM(I,5)-PCM(I,6)
PTMP(I,10) =-PCM(I,2)+PCM(I,5)+PCM(I,6)
ENDDO
CALL HWH2F3(8,FBLL , PTMP(1, 1),QM)
CALL HWH2F3(8,FBBLL, PTMP(1, 2),QM)
CALL HWH2F3(8,F1B , PTMP(1, 3),QM)
CALL HWH2F3(8,F1BB , PTMP(1, 4),QM)
CALL HWH2F3(8,F2B , PTMP(1, 5),QM)
CALL HWH2F3(8,F2BB , PTMP(1, 6),QM)
CALL HWH2F1(8,FBB ,3,PTMP(1, 7),QM)
CALL HWH2F2(8,FBBB ,4,PTMP(1, 8),QM)
CALL HWH2F3(8,F1LL , PTMP(1, 9),QM)
CALL HWH2F3(8,F2LL , PTMP(1,10),QM)
C--calculate the momenta squared for the denominators
QBB = HALF/(QM2+HWULDO(PCM(1,9),PCM(1,10)))
QBL = ONE/(HWULDO(PTMP(1,1),PTMP(1,1))-QM2)
QBBL = ONE/(HWULDO(PTMP(1,2),PTMP(1,2))-QM2)
Q1B = ONE/(HWULDO(PTMP(1,3),PTMP(1,3))-QM2)
Q1BB = ONE/(HWULDO(PTMP(1,4),PTMP(1,4))-QM2)
Q2B = ONE/(HWULDO(PTMP(1,5),PTMP(1,5))-QM2)
Q2BB = ONE/(HWULDO(PTMP(1,6),PTMP(1,6))-QM2)
Q1L = HWULDO(PTMP(1, 9),PTMP(1, 9))
Q2L = HWULDO(PTMP(1,10),PTMP(1,10))
Q1LB = ONE/(Q1L-QM2)
Q2LB = ONE/(Q2L-QM2)
Q1L = ONE/Q1L
Q2L = ONE/Q2L
C--first construct the massless momenta
PBQB = HWULDO(PCM(1,3),PCM(1,9))
PBBQBB = HWULDO(PCM(1,4),PCM(1,10))
C--first gg --> q qbar Z
C--calculate the denominators due gluon polaizations and massive quarks
PG = 0.25D0/(PBQB*PBBQBB*DREAL(D(1,2)*D(1,2)))
C--and the denominators
DCF(1) = FOUR*QBL*Q2BB
DCF(2) = FOUR*QBL*Q1BB
DCF(3) = FOUR*Q1B*Q2BB
DCF(4) = FOUR*Q2B*Q1BB
DCF(5) = FOUR*Q1B*QBBL
DCF(6) = FOUR*Q2B*QBBL
DCF(7) = TWO*QBL/D(1,2)
DCF(8) = TWO*QBBL/D(1,2)
C--now calculate the matrix elements we need
DO I=1,3
FLOW(1,I) = ZERO
ENDDO
DO P1=1,2
DO P2=1,2
DO PL=1,2
DO PB=1,2
DO PBB=1,2
C--first amplitude from notes
MGAMP(1) = DCF(1)*(
& ( G(IQ,O(PL))*FBB(PB, PL,6)*FBLL( PL ,P1,5,2)
& +G(IQ, PL )*FBB(PB,O(PL),5)*FBLL(O(PL),P1,6,2))*
& (F2BB( P1 , P2 ,1,1)*FBBB( P2 ,PBB,2)+
& F2BB( P1 ,O(P2),1,2)*FBBB(O(P2),PBB,1))
& +( G(IQ,O(PL))*FBB(PB, PL ,6)*FBLL( PL,O(P1),5,1)
& +G(IQ, PL )*FBB(PB,O(PL),5)*FBLL(O(PL),O(P1),6,1))*
& (F2BB(O(P1), P2 ,2,1)*FBBB( P2 ,PBB,2)+
& F2BB(O(P1),O(P2),2,2)*FBBB(O(P2),PBB,1)))
C--second amplitude from notes (1st with gluons interchanged)
MGAMP(2) = DCF(2)*(
& ( G(IQ,O(PL))*FBB(PB, PL ,6)*FBLL( PL , P2 ,5,1)
& +G(IQ, PL )*FBB(PB,O(PL),5)*FBLL(O(PL), P2 ,6,1))*
& (F1BB( P2 , P1 ,2,2)*FBBB( P1 ,PBB,1)+
& F1BB( P2 ,O(P1),2,1)*FBBB(O(P1),PBB,2))
& +( G(IQ,O(PL))*FBB(PB, PL ,6)*FBLL( PL ,O(P2),5,2)
& +G(IQ, PL )*FBB(PB,O(PL),5)*FBLL(O(PL),O(P2),6,2))*
& (F1BB(O(P2), P1 ,1,2)*FBBB( P1 ,PBB,1)+
& F1BB(O(P2),O(P1),1,1)*FBBB(O(P1),PBB,2)))
C--third amplitude from notes
MGAMP(1) = MGAMP(1)+DCF(3)*(
& G(IQ,O(PL))*( FBB(PB, P1 ,2)*F1B( P1 , PL ,1,6)
& +FBB(PB,O(P1),1)*F1B(O(P1), PL ,2,6))*
& (F2BB(PL, P2 ,5,1)*FBBB( P2 ,PBB,2)+
& F2BB(PL,O(P2),5,2)*FBBB(O(P2),PBB,1))
& +G(IQ, PL )*( FBB(PB, P1 ,2)*F1B( P1 ,O(PL),1,5)
& +FBB(PB,O(P1),1)*F1B(O(P1),O(PL),2,5))*
& (F2BB(O(PL), P2 ,6,1)*FBBB( P2 ,PBB,2)+
& F2BB(O(PL),O(P2),6,2)*FBBB(O(P2),PBB,1)))
C--fourth amplitude from notes (3rd with gluons interchanged)
MGAMP(2) = MGAMP(2)+DCF(4)*(
& G(IQ,O(PL))*( FBB(PB, P2 ,1)*F2B( P2 , PL ,2,6)
& +FBB(PB,O(P2),2)*F2B(O(P2), PL ,1,6))*
& (F1BB( PL , P1 ,5,2)*FBBB( P1 ,PBB,1)+
& F1BB( PL ,O(P1),5,1)*FBBB(O(P1),PBB,2))
& +G(IQ, PL )*( FBB(PB, P2 ,1)*F2B( P2 ,O(PL),2,5)
& +FBB(PB,O(P2),2)*F2B(O(P2),O(PL),1,5))*
& ( F1BB(O(PL), P1 ,6,2)*FBBB( P1 ,PBB,1)
& +F1BB(O(PL),O(P1),6,1)*FBBB(O(P1),PBB,2)))
C--fifth amplitude from notes
MGAMP(1) = MGAMP(1)+DCF(5)*(
& ( G(IQ,O(PL))*FBBLL( P2 , PL ,2,6)*FBBB( PL ,PBB,5)
& +G(IQ, PL )*FBBLL( P2 ,O(PL),2,5)*FBBB(O(PL),PBB,6))*
& ( FBB(PB, P1 ,2)*F1B( P1 , P2 ,1,1)
& +FBB(PB,O(P1),1)*F1B(O(P1), P2 ,2,1))
& +( G(IQ,O(PL))*FBBLL(O(P2), PL ,1,6)*FBBB( PL ,PBB,5)
& +G(IQ, PL )*FBBLL(O(P2),O(PL),1,5)*FBBB(O(PL),PBB,6))*
& ( FBB(PB, P1 ,2)*F1B( P1 ,O(P2),1,2)
& +FBB(PB,O(P1),1)*F1B(O(P1),O(P2),2,2)))
C--sixth amplitude from notes (5th with gluons interchanged)
MGAMP(2) = MGAMP(2)+DCF(6)*(
& ( G(IQ,O(PL))*FBBLL( P1 , PL ,1,6)*FBBB( PL ,PBB,5)
& +G(IQ, PL )*FBBLL( P1 ,O(PL),1,5)*FBBB(O(PL),PBB,6))*
& ( FBB(PB, P2 ,1)*F2B( P2 , P1 ,2,2)
& +FBB(PB,O(P2),2)*F2B(O(P2), P1 ,1,2))
& +( G(IQ,O(PL))*FBBLL(O(P1), PL ,2,6)*FBBB( PL ,PBB,5)
& +G(IQ, PL )*FBBLL(O(P1),O(PL),2,5)*FBBB(O(PL),PBB,6))*
& ( FBB(PB, P2 ,1)*F2B( P2 ,O(P1),2,1)
& +FBB(PB,O(P2),2)*F2B(O(P2),O(P1),1,1)))
C--seventh amplitude from notes (first non-Abelian one)
MGAMP(3) = DCF(7)*DL(P1,P2)*S(1,2,P1)*S(1,2,O(P1))*(
& G(IQ,O(PL))*FBB(PB, PL ,6)*
& ( FBLL( PL ,1,5,1)*FBBB(1,PBB,1)
& +FBLL( PL ,2,5,1)*FBBB(2,PBB,1)
& -FBLL( PL ,1,5,2)*FBBB(1,PBB,2)
& -FBLL( PL ,2,5,2)*FBBB(2,PBB,2))
& +G(IQ, PL )*FBB(PB,O(PL),5)*
& ( FBLL(O(PL),1,6,1)*FBBB(1,PBB,1)
& +FBLL(O(PL),2,6,1)*FBBB(2,PBB,1)
& -FBLL(O(PL),1,6,2)*FBBB(1,PBB,2)
& -FBLL(O(PL),2,6,2)*FBBB(2,PBB,2)))
C--eighth amplitude from notes (second non-Abelian one)
C--bug fix 12/7/03 by PR (too many continuations for NAG)
MGAMP(3) = MGAMP(3)
& + DCF(8)*DL(P1,P2)*S(1,2,P1)*S(1,2,O(P1))*(
& G(IQ,O(PL))*FBBB( PL ,PBB,5)*
& ( FBB(PB,1,1)*FBBLL(1,PL,1,6)
& +FBB(PB,2,1)*FBBLL(2,PL,1,6)
& -FBB(PB,1,2)*FBBLL(1,PL,2,6)
& -FBB(PB,2,2)*FBBLL(2,PL,2,6))
& +G(IQ, PL )*FBBB(O(PL),PBB,6)*
& ( FBB(PB,1,1)*FBBLL(1,O(PL),1,5)
& +FBB(PB,2,1)*FBBLL(2,O(PL),1,5)
& -FBB(PB,1,2)*FBBLL(1,O(PL),2,5)
& -FBB(PB,2,2)*FBBLL(2,O(PL),2,5)))
MGAMP(1) = G(IDZ,PL)*(MGAMP(1)+MGAMP(3))
MGAMP(2) = G(IDZ,PL)*(MGAMP(2)-MGAMP(3))
C--now square them
FLOW(1,1) = FLOW(1,1)+DREAL(MGAMP(1)*DCONJG(MGAMP(1)))
FLOW(1,2) = FLOW(1,2)+DREAL(MGAMP(2)*DCONJG(MGAMP(2)))
FLOW(1,3) = FLOW(1,3)+TWO*DREAL(MGAMP(1)*DCONJG(MGAMP(2)))
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
C--add up the diagrams to obtain the amplitudes for the two colour flows
FLOW(1,1) = CGFC*FLOW(1,1)
FLOW(1,2) = CGFC*FLOW(1,2)
FLOW(1,3) = CGIFC*FLOW(1,3)
DO I=1,2
IF(FLOW(1,3).NE.ZERO) THEN
MG(I) = PG*FLOW(1,I)*(ONE+FLOW(1,3)/(FLOW(1,1)+FLOW(1,2)))
ELSE
MG(I) = PG*FLOW(1,I)
ENDIF
ENDDO
C--now q qbar --> q qbar Z
C--calculate the denominators
DCF(1) = -TWO*QBL/D(1,2)
DCF(2) = -TWO*QBBL/D(1,2)
DCF(3) = -TWO*Q1L*QBB
DCF(4) = +TWO*Q2L*QBB
DCF(5) = TWO*Q1LB*Q2BB
DCF(6) = -TWO*Q2LB*Q1B
DCF(7) = TWO*QBL*Q2BB
DCF(8) = -TWO*QBBL*Q1B
PQ = ONE/PBQB/PBBQBB
DO P1=1,2
DO PL=1,2
DO PB=1,2
DO PBB=1,2
C--first the amplitudes for q qbar --> q' q'bar Z
C--the first two amplitudes have Z off the final state and therefore
C--the flavour of the incoming quarks doesn't matter
C--first amplitude from notes
MQAMP(3,P1,PL,PB,PBB) = G(IDZ,PL)*(
& DCF(1)*(G(IQ,O(PL))*FBB(O(PB), PL ,6)*
& ( FBLL( PL , P1 ,5,1)*FBBB( P1 ,O(PBB),2)
& +FBLL( PL ,O(P1),5,2)*FBBB(O(P1),O(PBB),1))
& +G(IQ, PL )*FBB(O(PB),O(PL),5)*
& ( FBLL(O(PL), P1 ,6,1)*FBBB( P1 ,O(PBB),2)
& +FBLL(O(PL),O(P1),6,2)*FBBB(O(P1),O(PBB),1)))
C--second amplitide from notes
& +DCF(2)*(G(IQ,O(PL))*FBBB( PL ,O(PBB),5)*
& ( FBB(O(PB), P1 ,1)*FBBLL( P1 , PL ,2,6)
& +FBB(O(PB),O(P1),2)*FBBLL(O(P1), PL ,1,6))
& +G(IQ, PL )*FBBB(O(PL),O(PBB),6)*
& ( FBB(O(PB), P1 ,1)*FBBLL( P1 ,O(PL),2,5)
& +FBB(O(PB),O(P1),2)*FBBLL(O(P1),O(PL),1,5))))
C--third amplitide from notes
DO I=1,2
MQAMP(I,P1,PL,PB,PBB) =
& DCF(3)*(G(I,O(PL))*DL(P1,O(PL))*S(5,1, PL )*(
& S(1,6,O(PL))*( FBB(O(PB), P1 ,1)*FBBB( P1 ,O(PBB),2)
& +FBB(O(PB),O(P1),2)*FBBB(O(P1),O(PBB),1))
& -S(5,6,O(PL))*( FBB(O(PB), P1 ,5)*FBBB( P1 ,O(PBB),2)
& +FBB(O(PB),O(P1),2)*FBBB(O(P1),O(PBB),5)))
& +G(I, PL )*DL(P1, PL )*S(6,1,O(PL))*(
& S(1,5, PL )*( FBB(O(PB), P1 ,1)*FBBB( P1 ,O(PBB),2)
& +FBB(O(PB),O(P1),2)*FBBB(O(P1),O(PBB),1))
& -S(6,5, PL )*( FBB(O(PB), P1 ,6)*FBBB( P1 ,O(PBB),2)
& +FBB(O(PB),O(P1),2)*FBBB(O(P1),O(PBB),6))))
C--fourth amplitude from notes
MQAMP(I,P1,PL,PB,PBB) = MQAMP(I,P1,PL,PB,PBB)
& +DCF(4)*(G(I,O(PL))*DL(P1,O(PL))*S(2,6, P1 )*(
& S(5,2, PL )*( FBB(O(PB), P1 ,1)*FBBB( P1 ,O(PBB),2)
& +FBB(O(PB),O(P1),2)*FBBB(O(P1),O(PBB),1))
& -S(5,6, PL )*( FBB(O(PB), P1 ,1)*FBBB( P1 ,O(PBB),6)
& +FBB(O(PB),O(P1),6)*FBBB(O(P1),O(PBB),1)))
& +G(I, PL )*DL(P1, PL )*S(2,5, P1 )*(
& S(6,2,O(PL))*( FBB(O(PB), P1 ,1)*FBBB( P1 ,O(PBB),2)
& +FBB(O(PB),O(P1),2)*FBBB(O(P1),O(PBB),1))
& -S(6,5,O(PL))*( FBB(O(PB), P1 ,1)*FBBB( P1 ,O(PBB),5)
& +FBB(O(PB),O(P1),5)*FBBB(O(P1),O(PBB),1))))
MQAMP(I,P1,PL,PB,PBB) = G(IDZ,PL)*MQAMP(I,P1,PL,PB,PBB)
ENDDO
C--now the extra amplitudes for q qbar --> q qbar Z
DO P2=1,2
C--first amplitude for notes
MQQAMP(P1,P2,PL,PB,PBB) =
& DCF(5)*(DL(P2,PBB)*S(8,4,PBB)*(
& G(IQ,O(PL))*DL(P1,O(PL))*S(5,1, PL )*
& ( FBB(O(PB), PBB,8)*F1LL( P2 , PL ,2,6)
& +FBB(O(PB),O(P2),2)*F1LL(O(PBB), PL ,8,6))
& +G(IQ, PL )*DL(P1, PL )*S(6,1,O(PL))*
& ( FBB(O(PB), PBB ,8)*F1LL( P2 ,O(PL),2,5)
& +FBB(O(PB),O(P2) ,2)*F1LL(O(PBB),O(PL),8,5)))
& -QM*DL(P2,O(PBB))*(
& G(IQ,O(PL))*DL(P1,O(PL))*S(5,1,PL)*
& ( FBB(O(PB),O(PBB),8)*F1LL( P2 , PL ,2,6)
& +FBB(O(PB),O(P2) ,2)*F1LL( PBB , PL ,8,6))
& +G(IQ, PL )*DL(P1, PL )*S(6,1,O(PL))*
& ( FBB(O(PB),O(PBB),8)*F1LL( P2 ,O(PL),2,5)
& +FBB(O(PB), O(P2),2)*F1LL( PBB ,O(PL),8,5))))
C--second amplitude from notes
MQQAMP(P1,P2,PL,PB,PBB) = MQQAMP(P1,P2,PL,PB,PBB)
& +DCF(6)*(DL(P1,PB)*S(3,7,O(PB))*(
& G(IQ,O(PL))*DL(P2,O(PL))*S(2,6, P2 )*
& ( F2LL( PL , P1 ,5,1)*FBBB( PB ,O(PBB),7)
& +F2LL( PL ,O(PB),5,7)*FBBB(O(P1),O(PBB),1))
& +G(IQ, PL )*DL(P2, PL )*S(2,5, P2 )*
& ( F2LL(O(PL), P1 ,6,1)*FBBB( PB ,O(PBB),7)
& +F2LL(O(PL),O(PB),6,7)*FBBB(O(P1),O(PBB),1)))
& -QM*DL(P1,O(PB))*(
& G(IQ,O(PL))*DL(P2,O(PL))*S(2,6, P2 )*
& ( F2LL( PL , P1 ,5,1)*FBBB(O(PB),O(PBB),7)
& +F2LL( PL , PB ,5,7)*FBBB(O(P1),O(PBB),1))
& +G(IQ, PL )*DL(P2, PL )*S(2,5, P2 )*
& ( F2LL(O(PL), P1 ,6,1)*FBBB(O(PB),O(PBB),7)
& +F2LL(O(PL), PB ,6,7)*FBBB(O(P1),O(PBB),1))))
C--third amplitude from notes
MQQAMP(P1,P2,PL,PB,PBB) = MQQAMP(P1,P2,PL,PB,PBB)
& +DCF(7)*(DL(P2,PBB)*S(8,4,PBB)*(
& G(IQ,O(PL))*FBB(O(PB), PL ,6)*
& ( DL(P2,O(P1) )*S(2,1, P2 )*FBLL( PL , PBB ,5,8)
& +DL(P1,PBB )*S(8,1,O(PBB))*FBLL( PL ,O(P2),5,2))
& +G(IQ, PL )*FBB(O(PB),O(PL),5)*
& ( DL(P2,O(P1) )*S(2,1, P2 )*FBLL(O(PL), PBB ,6,8)
& +DL(P1,PBB )*S(8,1,O(PBB))*FBLL(O(PL),O(P2),6,2)))
& -QM*DL(P2,O(PBB))*(
& G(IQ,O(PL))*FBB(O(PB),PL,6)*
& ( DL(P2,O(P1) )*S(2,1, P2 )*FBLL( PL ,O(PBB),5,8)
& +DL(P1,O(PBB))*S(8,1, PBB )*FBLL( PL ,O(P2) ,5,2))
& +G(IQ, PL )*FBB(O(PB),O(PB),5)*
& ( DL(P2,O(PL) )*S(2,1, P2 )*FBLL(O(PL),O(PBB),6,8)
& +DL(P1,O(PBB))*S(8,1, PBB )*FBLL(O(PL),O(P2) ,6,2))))
C--fourth amplitude from notes
MQQAMP(P1,P2,PL,PB,PBB) = MQQAMP(P1,P2,PL,PB,PBB)
& +DCF(8)*(DL(P1,PB)*S(3,7,O(PB))*(
& DL(P1,O(P2))*S(2,1,P2)*
& ( G(IQ,O(PL))*FBBLL(PB, PL ,7,6)*FBBB( PL ,O(PBB),5)
& +G(IQ, PL )*FBBLL(PB,O(PL),7,5)*FBBB(O(PL),O(PBB),6))
& +DL(P2,PB)*S(2,7,P2)*
& (G(IQ,O(PL))*FBBLL(O(P1), PL ,1,6)*FBBB( PL ,O(PBB),5)
& +G(IQ, PL )*FBBLL(O(P1),O(PL),1,5)*FBBB(O(PL),O(PBB),6)))
& +QM*DL(P1,O(PB))*(
& DL(P2,O(P1))*S(2,1,P2)*
& ( G(IQ,O(PL))*FBBLL(O(PB), PL ,3,6)*FBBB( PL ,O(PBB),5)
& +G(IQ, PL )*FBBLL(O(PB),O(PL),3,5)*FBBB(O(PL),O(PBB),6))
& +DL(P2,O(PB))*S(2,3,P2)*
& ( G(IQ,O(PL))*FBBLL(O(P1), PL ,1,6)*FBBB( PL ,O(PBB),5)
& +G(IQ, PL )*FBBLL(O(P1),O(PL),1,5)*FBBB(O(PL),O(PBB),6))))
MQQAMP(P1,P2,PL,PB,PBB) = G(IDZ,PL)*MQQAMP(P1,P2,PL,PB,PBB)
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
C--now obtain the matrix elements squared for the quarks
DO I=1,3
DO J=1,3
FLOW(I,J) = ZERO
ENDDO
ENDDO
IF(MOD(IQ,2).EQ.1) THEN
IQI = 1
ELSE
IQI = 2
ENDIF
DO P1=1,2
DO PL=1,2
DO PB=1,2
DO PBB=1,2
C--different quarks in inital and final states
DO I=1,2
MQP(I) = MQAMP(I,P1,PL,PB,PBB)+MQAMP(3,P1,PL,PB,PBB)
FLOW(I,1) = FLOW(I,1)+DREAL(DCONJG(MQP(I))*MQP(I))
ENDDO
C--same quark in inital and final state
DO P2=1,2
FLOW(3,2) = FLOW(3,2)+DREAL(
& DCONJG(MQQAMP(P1,P2,PL,PB,PBB))*MQQAMP(P1,P2,PL,PB,PBB))
IF(P1.EQ.P2) THEN
FLOW(3,1) = FLOW(3,1)+DREAL(DCONJG(MQP(IQI))*MQP(IQI))
FLOW(3,3) = FLOW(3,3)-TWO*
& DREAL(DCONJG(MQP(IQI))*MQQAMP(P1,P2,PL,PB,PBB))
ENDIF
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
C--split up the non-planar pieces according to Kosuke's prescription
DO I=1,3
FLOW(I,1) = CQFC*FLOW(I,1)
FLOW(I,2) = CQFC*FLOW(I,2)
FLOW(I,3) = CQIFC*FLOW(I,3)
DO J=1,2
IF(FLOW(I,J).NE.ZERO) THEN
MQB(J,I) = PQ*FLOW(I,J)*
& (ONE+FLOW(I,3)/(FLOW(I,1)+FLOW(I,2)))
ELSE
MQB(J,I) = ZERO
ENDIF
ENDDO
ENDDO
C--now set them
DO I=1,5
IF(I.EQ.IQ) THEN
DO J=1,2
MQ(J,I) = MQB(J,3)
ENDDO
ELSEIF(MOD(I,2).EQ.1) THEN
DO J=1,2
MQ(J,I) = MQB(J,1)
ENDDO
ELSE
DO J=1,2
MQ(J,I) = MQB(J,2)
ENDDO
ENDIF
ENDDO
END
CDECK ID>, HWH2PS.
*CMZ :- -14/03/01 09:03:25 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2PS(WEIGHT,GEN,MQ,MQ2)
C-----------------------------------------------------------------------
C Phase Space for vector boson plus 2 jets
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION WEIGHT,XMASS,PLAB,PRW,PCM,Y(3),Y35,Y34,Y45,RAND,
& HWRGEN,HWRUNI,M35,M35S,G(IMAXCH),DEM,MT(3),PT(3),MJAC,ETOT,
& STOT,MQ(3),MQ2(3),PS35,HWUPCM,TWOPI2,MT35,PTJ(3),MT2(3),A,C,
& PT2(3),YMIN,YMAX,EY(3),EY34,YJAC,YJJMAX,YJJMIN,EY35,PHI(3),
& MT45,PS45,EY45,M45,M45S,M34,PS34,M34S,MT34,XJAC,SJAC,PST,TAU,
& FLUX,ETMP,PZTMP,XT1,XT2,WI(IMAXCH)
COMMON /HWPSOM/ WI
INTEGER I,ICH,J
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
LOGICAL GEN
EXTERNAL HWRGEN,HWRUNI,HWUPCM
PARAMETER(YJJMIN=-8.0D0,YJJMAX=8.0D0)
IF(IERROR.NE.0) RETURN
TWOPI2 = FOUR*PIFAC**2
WEIGHT = ZERO
IF(OPTM) THEN
DO I=1,IMAXCH
WI(I) = ZERO
ENDDO
ENDIF
GEN = .FALSE.
C--centre of mass energy
ETOT = PHEP(5,3)
STOT = ETOT**2
C--first select the channel to be used
RAND=HWRGEN(0)
DO ICH=1,IMAXCH
IF(CHON(ICH)) THEN
IF(CHNPRB(ICH).GT.RAND) GOTO 10
RAND = RAND-CHNPRB(ICH)
ENDIF
ENDDO
10 CONTINUE
C--generate the phase space according to the channel selected
C--FIRST CHANNEL
IF(ICH.EQ.1) THEN
C--first generate the mass of 35
CALL HWH2P1(2,MJAC,MQ2(1),M35S,(ETOT-MQ(2))**2,(MQ(1)+MQ(3))**2)
M35 = SQRT(M35S)
PS35 = HWUPCM(M35,MQ(1),MQ(3))
MJAC = HALF*MJAC*PS35/M35/TWOPI2
C--the generate the PT of 4
CALL HWH2P2(2,PTJ(1),MT2(2),MQ2(2)+PTMAX**2,MQ2(2)+PTMIN**2)
MT (2) = SQRT(MT2(2))
PT2(2) = MT2(2)-MQ2(2)
PT(2) = SQRT(PT2(2))
MT35 = SQRT(M35S+PT2(2))
C--generate the rapidities of 4 and 35
YMAX = MIN(YJJMAX, LOG(PHEP(5,3)/MT35))
YMIN = MAX(YJJMIN,-LOG(PHEP(5,3)/MT35))
IF(YMAX.LT.YMIN) RETURN
Y35 = HWRUNI(1,YMIN,YMAX)
EY35 = EXP(Y35)
YJAC = (YMAX-YMIN)
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-MT35*EY35)/MT(2)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-MT35/EY35)/MT(2)))
IF(YMAX.LT.YMIN) RETURN
Y(2) = HWRUNI(2,YMIN,YMAX)
YJAC = (YMAX-YMIN)*YJAC
EY(2) = EXP(Y(2))
C--generate the incoming quark momentum fractions
XX(1) = (MT(2)*EY(2)+MT35*EY35)/ETOT
XX(2) = (MT(2)/EY(2)+MT35/EY35)/ETOT
STOT = XX(1)*XX(2)*STOT
C--azimuthal angle of 4 and 35
PHI(1) = HWRUNI(3,ZERO,TWO*PIFAC)
C--construct the momenta of 4 and 35
PLAB(1,4) = PT(2)*SIN(PHI(1))
PLAB(2,4) = PT(2)*COS(PHI(1))
PLAB(3,4) = HALF*MT(2)*(EY(2)-ONE/EY(2))
PLAB(4,4) = HALF*MT(2)*(EY(2)+ONE/EY(2))
PLAB(5,4) = MQ(2)
PLAB(1,6) =-PT(2)*SIN(PHI(1))
PLAB(2,6) =-PT(2)*COS(PHI(1))
PLAB(3,6) = HALF*MT35*(EY35-ONE/EY35)
PLAB(4,6) = HALF*MT35*(EY35+ONE/EY35)
PLAB(5,6) = M35
C--perform the decay 35 --> 3+5
PLAB(5,3) = MQ(1)
PLAB(5,5) = MQ(3)
CALL HWDTWO(PLAB(1,6),PLAB(1,3),PLAB(1,5),PS35,TWO,.TRUE.)
C--phase space weight
FLUX = MJAC*YJAC*PTJ(1)/16.0D0/PIFAC/STOT**2
C--SECOND CHANNEL
ELSEIF(ICH.EQ.2) THEN
C--first generate the pt's and azimuthal angles of 3 and 4
DO I=1,2
CALL HWH2P2(2,PTJ(I),MT2(I),MQ2(I)+PTMAX**2,MQ2(I)+PTMIN**2)
PT2(I) = MT2(I)-MQ2(I)
MT(I) = SQRT(MT2(I))
PT(I) = SQRT(PT2(I))
PHI(I) = HWRUNI(I,ZERO,TWO*PIFAC)
ENDDO
C--find the pt and azimuth of 5 by conservation of transverse momentum
A = PT(1)*SIN(PHI(1))+PT(2)*SIN(PHI(2))
C = PT(1)*COS(PHI(1))+PT(2)*COS(PHI(2))
PT(3) = A**2+C**2
MT(3) = SQRT(PT(3)+MQ2(3))
PT(3) = SQRT(PT(3))
PHI(3) = -ACOS(-C/PT(3))
IF(A.LT.ZERO) PHI(3)=-PHI(3)
C--generate the rapidities of 3,4 and 5
XX(1) = ZERO
XX(2) = ZERO
YJAC = ONE
DO I=1,3
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-XX(1))/MT(I)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-XX(2))/MT(I)))
IF(YMAX.LT.YMIN) RETURN
Y(I) = HWRUNI(I+2,YMIN,YMAX)
EY(I) = EXP(Y(I))
XX(1) = XX(1)+MT(I)*EY(I)
XX(2) = XX(2)+MT(I)/EY(I)
YJAC = YJAC*(YMAX-YMIN)
ENDDO
C--generate the incoming quark momentum fractions
XX(1) = XX(1)/PHEP(5,3)
XX(2) = XX(2)/PHEP(5,3)
IF(XX(1).GT.ONE.OR.XX(2).GT.ONE) RETURN
C--Construct the 4-momenta of the outgoing particles
DO I=1,3
PLAB(1,I+2) = PT(I)*SIN(PHI(I))
PLAB(2,I+2) = PT(I)*COS(PHI(I))
PLAB(3,I+2) = HALF*MT(I)*(EY(I)-ONE/EY(I))
PLAB(4,I+2) = HALF*MT(I)*(EY(I)+ONE/EY(I))
PLAB(5,I+2) = MQ(I)
ENDDO
C--phase space weight
STOT = XX(1)*XX(2)*STOT
FLUX = YJAC*PTJ(1)*PTJ(2)/64.0D0/PIFAC/TWOPI2/STOT**2
C--THIRD CHANNEL
ELSEIF(ICH.EQ.3) THEN
C--first generate the mass of 45
CALL HWH2P1(2,MJAC,MQ2(2),M45S,(ETOT-MQ(1))**2,(MQ(2)+MQ(3))**2)
M45 = SQRT(M45S)
PS45 = HWUPCM(M45,MQ(2),MQ(3))
MJAC = HALF*MJAC*PS45/M45/TWOPI2
C--the generate the PT of 4
CALL HWH2P2(2,PTJ(1),MT2(1),MQ2(1)+PTMAX**2,MQ2(1)+PTMIN**2)
MT (1) = SQRT(MT2(1))
PT2(1) = MT2(1)-MQ2(1)
PT(1) = SQRT(PT2(1))
MT45 = SQRT(M45S+PT2(1))
C--generate the rapidities of 3 and 45
YMAX = MIN(YJJMAX, LOG(PHEP(5,3)/MT45))
YMIN = MAX(YJJMIN,-LOG(PHEP(5,3)/MT45))
IF(YMAX.LT.YMIN) RETURN
Y45 = HWRUNI(1,YMIN,YMAX)
EY45 = EXP(Y45)
YJAC = (YMAX-YMIN)
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-MT45*EY45)/MT(1)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-MT45/EY45)/MT(1)))
IF(YMAX.LT.YMIN) RETURN
Y(1) = HWRUNI(2,YMIN,YMAX)
YJAC = (YMAX-YMIN)*YJAC
EY(1) = EXP(Y(1))
C--generate the incoming quark momentum fractions
XX(1) = (MT(1)*EY(1)+MT45*EY45)/ETOT
XX(2) = (MT(1)/EY(1)+MT45/EY45)/ETOT
STOT = XX(1)*XX(2)*STOT
C--azimuthal angle of 3 and 45
PHI(1) = HWRUNI(3,ZERO,TWO*PIFAC)
C--construct the momenta of 3 and 45
PLAB(1,3) = PT(1)*SIN(PHI(1))
PLAB(2,3) = PT(1)*COS(PHI(1))
PLAB(3,3) = HALF*MT(1)*(EY(1)-ONE/EY(1))
PLAB(4,3) = HALF*MT(1)*(EY(1)+ONE/EY(1))
PLAB(5,3) = MQ(1)
PLAB(1,6) =-PT(1)*SIN(PHI(1))
PLAB(2,6) =-PT(1)*COS(PHI(1))
PLAB(3,6) = HALF*MT45*(EY45-ONE/EY45)
PLAB(4,6) = HALF*MT45*(EY45+ONE/EY45)
PLAB(5,6) = M45
C--perform the decay 45 --> 4+5
PLAB(5,4) = MQ(2)
PLAB(5,5) = MQ(3)
CALL HWDTWO(PLAB(1,6),PLAB(1,4),PLAB(1,5),PS45,TWO,.TRUE.)
C--phase space weight
FLUX = MJAC*YJAC*PTJ(1)/16.0D0/PIFAC/STOT**2
C--FOURTH CHANNEL
ELSEIF(ICH.EQ.4) THEN
C--generate shat according to a power law
CALL HWHGB1(1,2,200,SJAC,STOT,PHEP(5,3)**2,
& (MQ(1)+MQ(2)+MQ(3))**2)
ETOT = SQRT(STOT)
C--generate x1
TAU = STOT/PHEP(5,3)**2
XJAC = -LOG(TAU)
XX(1) = EXP(HWRUNI(2,LOG(TAU),ZERO))
XX(2) = TAU/XX(1)
C--generate m35
CALL HWH2P1(2,MJAC,MQ2(1),M35S,(ETOT-MQ(2))**2,
& (MQ(1)+MQ(3))**2)
M35 = SQRT(M35S)
PS35 = HWUPCM(M35,MQ(1),MQ(3))
MJAC = HALF*MJAC*PS35/M35/TWOPI2
C--generate the momenta of 4 and 35
PST = HWUPCM(ETOT,M35,MQ(2))
PLAB(1,7) = ZERO
PLAB(2,7) = ZERO
PLAB(3,7) = HALF*(XX(1)-XX(2))*PHEP(5,3)
PLAB(4,7) = HALF*(XX(1)+XX(2))*PHEP(5,3)
PLAB(5,7) = ETOT
PLAB(5,3) = MQ(1)
PLAB(5,6) = M35
PLAB(5,4) = MQ(2)
CALL HWDTWO(PLAB(1,7),PLAB(1,4),PLAB(1,6),PST,TWO,.TRUE.)
C--perform the decay 35 --> 3+5
PLAB(5,4) = MQ(2)
PLAB(5,5) = MQ(3)
CALL HWDTWO(PLAB(1,6),PLAB(1,3),PLAB(1,5),PS35,TWO,.TRUE.)
C--phase space weight
FLUX = SJAC*XJAC*MJAC*PST/ETOT/STOT**2/8.0D0/PIFAC
C--FIFTH CHANNEL
ELSEIF(ICH.EQ.5) THEN
C--generate shat according to a power law
CALL HWHGB1(1,2,200,SJAC,STOT,PHEP(5,3)**2,
& (MQ(1)+MQ(2)+MQ(3))**2)
ETOT = SQRT(STOT)
C--generate x1
TAU = STOT/PHEP(5,3)**2
XJAC = -LOG(TAU)
XX(1) = EXP(HWRUNI(2,LOG(TAU),ZERO))
XX(2) = TAU/XX(1)
C--generate m45
CALL HWH2P1(2,MJAC,MQ2(2),M45S,(ETOT-MQ(1))**2,(MQ(2)+MQ(3))**2)
M45 = SQRT(M45S)
PS45 = HWUPCM(M45,MQ(2),MQ(3))
MJAC = HALF*MJAC*PS45/M45/TWOPI2
C--generate the momenta of 4 and 35
PST = HWUPCM(ETOT,M45,MQ(1))
PLAB(1,7) = ZERO
PLAB(2,7) = ZERO
PLAB(3,7) = HALF*(XX(1)-XX(2))*PHEP(5,3)
PLAB(4,7) = HALF*(XX(1)+XX(2))*PHEP(5,3)
PLAB(5,7) = ETOT
PLAB(5,3) = MQ(1)
PLAB(5,6) = M45
CALL HWDTWO(PLAB(1,7),PLAB(1,3),PLAB(1,6),PST,TWO,.TRUE.)
C--perform the decay 45 --> 4+5
PLAB(5,4) = MQ(2)
PLAB(5,5) = MQ(3)
CALL HWDTWO(PLAB(1,6),PLAB(1,4),PLAB(1,5),PS45,TWO,.TRUE.)
C--phase space weight
FLUX = SJAC*XJAC*MJAC*PST/ETOT/STOT**2/8.0D0/PIFAC
C--SIXTH CHANNEL
ELSEIF(ICH.EQ.6) THEN
C--first generate the mass of 34
CALL HWH2P1(2,MJAC,ZERO,M34S,(ETOT-MQ(3))**2,MJJMIN**2)
M34 = SQRT(M34S)
PS34 = HWUPCM(M34,MQ(1),MQ(2))
MJAC = HALF*MJAC*PS34/M34/TWOPI2
C--the generate the PT of 5
CALL HWH2P2(2,PTJ(1),MT2(3),MQ2(3)+PTMAX**2,MQ2(3))
MT (3) = SQRT(MT2(3))
PT2(3) = MT2(3)-MQ2(3)
PT(3) = SQRT(PT2(3))
MT34 = SQRT(M34S+PT2(3))
C--generate the rapidities of 5 and 34
YMAX = MIN(YJJMAX, LOG(PHEP(5,3)/MT34))
YMIN = MAX(YJJMIN,-LOG(PHEP(5,3)/MT34))
IF(YMAX.LT.YMIN) RETURN
Y34 = HWRUNI(1,YMIN,YMAX)
EY34 = EXP(Y34)
YJAC = (YMAX-YMIN)
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-MT34*EY34)/MT(3)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-MT34/EY34)/MT(3)))
IF(YMAX.LT.YMIN) RETURN
Y(3) = HWRUNI(2,YMIN,YMAX)
YJAC = (YMAX-YMIN)*YJAC
EY(3) = EXP(Y(3))
C--generate the incoming quark momentum fractions
XX(1) = (MT(3)*EY(3)+MT34*EY34)/ETOT
XX(2) = (MT(3)/EY(3)+MT34/EY34)/ETOT
STOT = XX(1)*XX(2)*STOT
C--azimuthal angle of 3 and 45
PHI(1) = HWRUNI(3,ZERO,TWO*PIFAC)
C--construct the momenta of 5 and 34
PLAB(1,5) = PT(3)*SIN(PHI(1))
PLAB(2,5) = PT(3)*COS(PHI(1))
PLAB(3,5) = HALF*MT(3)*(EY(3)-ONE/EY(3))
PLAB(4,5) = HALF*MT(3)*(EY(3)+ONE/EY(3))
PLAB(5,5) = MQ(3)
PLAB(1,6) =-PT(3)*SIN(PHI(1))
PLAB(2,6) =-PT(3)*COS(PHI(1))
PLAB(3,6) = HALF*MT34*(EY34-ONE/EY34)
PLAB(4,6) = HALF*MT34*(EY34+ONE/EY34)
PLAB(5,6) = M34
C--perform the decay 34 --> 3+4
PLAB(5,3) = MQ(1)
PLAB(5,4) = MQ(2)
CALL HWDTWO(PLAB(1,6),PLAB(1,3),PLAB(1,4),PS34,TWO,.TRUE.)
C--phase space weight
FLUX = MJAC*YJAC*PTJ(1)/16.0D0/PIFAC/STOT**2
ELSE
CALL HWWARN('HWH2PS',500)
ENDIF
C--calculate the variables we need for the smoothing functions
C--pt,mt and y for outgoing particles
DO I=1,3
J=I+2
PT2(I) = PLAB(1,J)**2+PLAB(2,J)**2
PT(I) = SQRT(PT2(I))
MT2(I) = MQ2(I)+PT2(I)
MT(I) = SQRT(MT2(I))
Y(I) = HALF*LOG((PLAB(4,J)+PLAB(3,J))/(PLAB(4,J)-PLAB(3,J)))
EY(I) = EXP(Y(I))
IF(I.LE.2.AND.(Y(I).LT.YJMIN.OR.Y(I).GT.YJMAX)) RETURN
ENDDO
IF(PT(1).LT.PTMIN.OR.PT(2).LT.PTMIN) RETURN
C--masses of composite particles
M34S = (PLAB(4,3)+PLAB(4,4))**2
M45S = (PLAB(4,4)+PLAB(4,5))**2
M35S = (PLAB(4,3)+PLAB(4,5))**2
DO I=1,3
M34S = M34S-(PLAB(I,3)+PLAB(I,4))**2
M45S = M45S-(PLAB(I,4)+PLAB(I,5))**2
M35S = M35S-(PLAB(I,3)+PLAB(I,5))**2
ENDDO
M34 = SQRT(M34S)
M45 = SQRT(M45S)
M35 = SQRT(M35S)
IF(M34.LT.MJJMIN) RETURN
C--tramsverse masses of the composite particles
MT34 = ZERO
MT35 = ZERO
MT45 = ZERO
DO I=1,2
MT34 = MT34+(PLAB(I,3)+PLAB(I,4))**2
MT35 = MT35+(PLAB(I,3)+PLAB(I,5))**2
MT45 = MT45+(PLAB(I,4)+PLAB(I,5))**2
ENDDO
MT34 = SQRT(M34S+MT34)
MT35 = SQRT(M35S+MT35)
MT45 = SQRT(M45S+MT45)
C--final the momenta
PS34 = HWUPCM(M34,MQ(1),MQ(2))
PS35 = HWUPCM(M35,MQ(1),MQ(3))
PS45 = HWUPCM(M45,MQ(2),MQ(3))
C--the rapidities of the composite particles
ETMP = PLAB(4,3)+PLAB(4,4)
PZTMP = PLAB(3,3)+PLAB(3,4)
Y34 = HALF*LOG((ETMP+PZTMP)/(ETMP-PZTMP))
EY34 = EXP(Y34)
ETMP = PLAB(4,3)+PLAB(4,5)
PZTMP = PLAB(3,3)+PLAB(3,5)
Y35 = HALF*LOG((ETMP+PZTMP)/(ETMP-PZTMP))
EY35 = EXP(Y35)
ETMP = PLAB(4,4)+PLAB(4,5)
PZTMP = PLAB(3,4)+PLAB(3,5)
Y45 = HALF*LOG((ETMP+PZTMP)/(ETMP-PZTMP))
EY45 = EXP(Y45)
C--find the pdf's and set the scale
ETOT = SQRT(STOT)
EMSCA = ETOT
CALL HWSGEN(.FALSE.)
C--construct the incoming momenta
DO I=1,2
PLAB(1,I) = ZERO
PLAB(2,I) = ZERO
PLAB(3,I) = HALF*XX(I)*PHEP(5,3)
PLAB(4,I) = HALF*XX(I)*PHEP(5,3)
PLAB(5,I) = ZERO
ENDDO
PLAB(3,2) = -PLAB(3,2)
TAU = XX(1)*XX(2)
C--find the smoothing functions for the different channels
C--function for first channel
IF(CHON(1)) THEN
CALL HWH2P1(1,MJAC,MQ2(1),M35S,(PHEP(5,3)-MQ(2))**2,
& (MQ(1)+MQ(3))**2)
MJAC = MJAC/PS35*M35
CALL HWH2P2(1,PTJ(1),MT2(2),PTMAX**2+MQ2(2),MQ2(2)+PTMIN**2)
YMAX = MIN(YJJMAX, LOG(PHEP(5,3)/MT35))
YMIN = MAX(YJJMIN,-LOG(PHEP(5,3)/MT35))
YJAC = (YMAX-YMIN)
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-MT35*EY35)/MT(2)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-MT35/EY35)/MT(2)))
YJAC = (YMAX-YMIN)*YJAC
G(1) = 2.0D0*MJAC*PTJ(1)/YJAC
ENDIF
C--function for second channel
IF(CHON(2)) THEN
DO I=1,2
CALL HWH2P2(1,PTJ(I),MT2(I),PTMAX**2+MQ2(I),MQ2(I)+PTMIN**2)
ENDDO
XT1 = ZERO
XT2 = ZERO
YJAC = ONE
DO I=1,3
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-XT1)/MT(I)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-XT2)/MT(I)))
XT1 = XT1+MT(I)*EY(I)
XT2 = XT2+MT(I)/EY(I)
YJAC = YJAC*(YMAX-YMIN)
ENDDO
G(2) = 4.0D0*PTJ(1)*PTJ(2)/YJAC
ENDIF
C--function for third channel
IF(CHON(3)) THEN
CALL HWH2P1(1,MJAC,MQ2(2),M45S,(PHEP(5,3)-MQ(1))**2,
& (MQ(2)+MQ(3))**2)
MJAC = MJAC/PS45*M45
CALL HWH2P2(1,PTJ(1),MT2(1),PTMAX**2+MQ2(1),MQ2(1)+PTMIN**2)
YMAX = MIN(YJJMAX, LOG(PHEP(5,3)/MT45))
YMIN = MAX(YJJMIN,-LOG(PHEP(5,3)/MT45))
YJAC = (YMAX-YMIN)
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-MT45*EY45)/MT(1)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-MT45/EY45)/MT(1)))
YJAC = (YMAX-YMIN)*YJAC
G(3) = 2.0D0*MJAC*PTJ(1)/YJAC
ENDIF
C--function for fourth channel
IF(CHON(4)) THEN
CALL HWHGB1(1,1,200,SJAC,STOT,PHEP(5,3)**2,
& (MQ(1)+MQ(2)+MQ(3))**2)
XJAC = -LOG(TAU)
CALL HWH2P1(1,MJAC,MQ2(1),M35S,(ETOT-MQ(2))**2,(MQ(1)+MQ(3))**2)
M35 = SQRT(M35S)
MJAC = MJAC/PS35*M35
PST = HWUPCM(ETOT,M35,MQ(2))
G(4) = SJAC*MJAC/XJAC*ETOT/PST
ENDIF
C--function for fifth channel
IF(CHON(5)) THEN
CALL HWHGB1(1,1,200,SJAC,STOT,PHEP(5,3)**2,
& (MQ(1)+MQ(2)+MQ(3))**2)
XJAC = -LOG(TAU)
CALL HWH2P1(1,MJAC,MQ2(2),M45S,(ETOT-MQ(1))**2,(MQ(2)+MQ(3))**2)
MJAC = MJAC/PS45*M45
PST = HWUPCM(ETOT,M45,MQ(1))
G(5) = SJAC/XJAC*MJAC/PST*ETOT
ENDIF
C--function for sixth chaneel
IF(CHON(6)) THEN
CALL HWH2P1(1,MJAC,ZERO,M34S,(PHEP(5,3)-MQ(3))**2,MJJMIN**2)
MJAC = MJAC/PS34*M34
CALL HWH2P2(1,PTJ(1),MT2(3),MQ2(3)+PTMAX**2,MQ2(3))
YMAX = MIN(YJJMAX, LOG(PHEP(5,3)/MT34))
YMIN = MAX(YJJMIN,-LOG(PHEP(5,3)/MT34))
YJAC = (YMAX-YMIN)
YMAX = MIN(YJMAX, LOG((PHEP(5,3)-MT34*EY34)/MT(3)))
YMIN = MAX(YJMIN,-LOG((PHEP(5,3)-MT34/EY34)/MT(3)))
YJAC = (YMAX-YMIN)*YJAC
G(6) = 2.0D0*MJAC/YJAC*PTJ(1)
ENDIF
C--add them all up
DEM = ZERO
DO I=1,IMAXCH
IF(CHON(I)) DEM = DEM+CHNPRB(I)*G(I)
ENDDO
C--now the weight
WEIGHT = FLUX*GEV2NB*G(ICH)/DEM
GEN = .TRUE.
C--compute the weights for the different channels if optimizing
IF(OPTM) THEN
DO I=1,IMAXCH
IF(CHON(I)) WI(I)=G(I)*WEIGHT**2/DEM
ENDDO
ENDIF
END
CDECK ID>, HWH2P1.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2P1(IOPT,FJAC,MQ2,M2,MMX,MMN)
C-----------------------------------------------------------------------
C Subroutine to select virtual quark mass for HWH2PS
C IOPT=1 return the function at M2
C IOPT=2 calculate M2
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOPT
DOUBLE PRECISION FJAC,MPOW,MMN,MQ2,M2,A1,A01,RPOW,QPOW,HWRGEN,MMX
EXTERNAL HWRGEN
C--smooth a powerlaw
IF(EMPOW.EQ.TWO) THEN
A01 = LOG(MMN-MQ2)
A1 = LOG(MMX-MQ2)-A01
IF(IOPT.EQ.1) THEN
FJAC = ONE/(M2-MQ2)/A1
ELSE
M2 = EXP(A01+A1*HWRGEN(2))
FJAC = A1*M2
M2 = M2+MQ2
ENDIF
ELSE
MPOW = -EMPOW/TWO
QPOW = ONE+MPOW
RPOW = ONE/QPOW
A01 = (MMN-MQ2)**QPOW
A1 = (MMX-MQ2)**QPOW-A01
IF(IOPT.EQ.1) THEN
FJAC = QPOW*(M2-MQ2)**MPOW/A1
ELSE
M2 = (A01+A1*HWRGEN(2))**RPOW
FJAC = A1*RPOW/M2**MPOW
M2 = M2+MQ2
ENDIF
ENDIF
END
CDECK ID>, HWH2P2.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2P2(IOPT,FJAC,PT2,PTMX2,PTMN2)
C-----------------------------------------------------------------------
C Subroutine to select virtual quark mass for HWH2PS
C IOPT=1 return the function at M2
C IOPT=2 calculate M2
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOPT
DOUBLE PRECISION FJAC,MPOW,A1,A01,RPOW,QPOW,HWRGEN,PT2,
& PPOW,PTMN2,PTMX2,Z
EXTERNAL HWRGEN
C--smooth a powerlaw
PPOW = HALF*PTPOW
IF(PPOW.EQ.ONE) THEN
A01 = LOG(PTMN2)
A1 = LOG(PTMX2)-A01
IF(IOPT.EQ.1) THEN
FJAC = ONE/PT2/A1
ELSE
PT2 = EXP(A01+A1*HWRGEN(2))
FJAC = A1*PT2
ENDIF
ELSE
MPOW = -PPOW
QPOW = ONE+MPOW
RPOW = ONE/QPOW
A01 = PTMN2**QPOW
A1 = PTMX2**QPOW-A01
IF(IOPT.EQ.1) THEN
FJAC = QPOW*PT2**MPOW/A1
ELSE
Z = A01+A1*HWRGEN(2)
PT2 = Z**RPOW
FJAC = A1*RPOW/Z*PT2
ENDIF
ENDIF
END
CDECK ID>, HWH2QH.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWH2QH(SQS,P1,P2,P3,P4,P5,RM3,RM4,RM5,FACGPM,MGM3,
& IGG,IQQ,GGQQHT,GGQQHU,GGQQHNP,QQQQH)
C-----------------------------------------------------------------------
C MATRIX ELEMENT SQUARED FOR THE PROCESS GG/QQ(BAR) -> QQ(BAR) HIGGS
C-----------------------------------------------------------------------
C NEEDS PREFACTOR G_S^4. COUPLINGS, E.G. FOR T(3)B(4)H-(5) ARE:
C FACGPM(1) = GW/SQRT(TWO) M_B / M_W * TANB
C FACGPM(2) = GW/SQRT(TWO) M_T / M_W / TANB
C MGM3 = (TOP MASS)*(TOP WIDTH)
C INITIAL STATE MOMENTA: P1=(SQS/2)(1,0,0,1), P2=(SQS/2)(1,0,0,-1)
C PREFACTORS:
C GGQQHTOT = (G_S**4)*(GGQQHT+GGQQHU-GGQQHNP/CAFAC**2)/(8.*CFFAC)
C QQQQHTOT = (G_S**4)*(QQQQH )*(1.-1./CAFAC**2)/4.
C N.B. SUBROUTINE CANNOT BE USED FOR PHOTON PHOTON -> ...
C-----------------------------------------------------------------------
IMPLICIT NONE
C --- SUBPROCESS
INTEGER IGG,IQQ
C --- CENTRE-OF-MASS ENERGY, FOUR-MOMENTA, MASSES AND WIDTHS
DOUBLE PRECISION SQS,P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION K3(0:3),K4(0:3), Q3(0:3),Q4(0:3), R3(0:3),R4(0:3)
DOUBLE PRECISION RM3,RM4,RM5, MGM3,MGM4, TWOSQS
C --- SPINORS
DOUBLE COMPLEX U0(4), F3(4,2),F4(4,2), F3K(4,2),F4K(4,2)
DOUBLE COMPLEX F3Q(4,2,2),F4Q(4,2,2), F3R(4,2,2),F4R(4,2,2)
C --- MOMENTUM PROJECTION OPERATORS
DOUBLE COMPLEX P3PROJ(4,4),P4PROJ(4,4),K3PROJ(4,4),K4PROJ(4,4)
DOUBLE COMPLEX Q3PROJ(4,4),Q4PROJ(4,4),R3PROJ(4,4),R4PROJ(4,4)
C --- SPINOR INDICES AND PERMUTATION MATRICES
INTEGER I,J,K,L, PERM0(4), PL(4,2),PR(4,2), PERMU0(4)
C --- CHIRALITY PROJECTION OPERATORS: 1 = - , 2 = +
DOUBLE PRECISION FACGPM(2),FACL(2,2),FACR(2,2),FAC0(2,2)
C --- GG AMPLITUDES
DOUBLE COMPLEX AMPS1(2,2),AMPS2(2,2)
DOUBLE COMPLEX AMPT1(2,2,2,2),AMPT2(2,2,2,2),AMPT3(2,2,2,2)
DOUBLE COMPLEX AMPU1(2,2,2,2),AMPU2(2,2,2,2),AMPU3(2,2,2,2)
DOUBLE COMPLEX AMPS, AMPT, AMPU, AMPST, AMPSU, AMPTU
DOUBLE PRECISION AMPST2, AMPSU2, AMPTU2
DOUBLE PRECISION GGQQHT,GGQQHU,GGQQHNP,QQQQH
C --- QQ AMPLITUDES
DOUBLE PRECISION RM3452
DOUBLE PRECISION S,PT32,PT42,PT52,GLAMBDA,LAMBDA,LAMBDAI,LA34,
& PROP2,PROP3R,PROP3I,PROP4R,PROP4I,PROP34R,PT3452
DOUBLE COMPLEX PROP3,PROP4,PROP
C --- CONSTANTS
DOUBLE PRECISION ZERO,ONE,TWO,MONE,FAC
DOUBLE COMPLEX CZERO,CONE
INTEGER LEFT,RIGHT
C --- PARAMETER DEFINITIONS
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,MONE=-ONE, LEFT=1,RIGHT=2)
PARAMETER (CZERO=(0.D0,0.D0),CONE=(1.D0,0.D0))
SAVE MGM4,PERM0,PL,FACL,PR,FACR,PERMU0,FAC0,U0
DATA MGM4,U0,FAC0 /ZERO, 4*CONE , ONE,ZERO, ZERO, ONE /
DATA PERM0 ,PERMU0 / 1,2, 3,4 , 1,0, 0,4 /
DATA PL ,PR / 0,3, 0,1, 4,0, 2,0, 4,0, 2,0, 0,3, 0,1 /
DATA FACL ,FACR /MONE, ONE, ONE,MONE, ONE,MONE, MONE, ONE /
C --- INITIALIZE
GGQQHT=ZERO
GGQQHU=ZERO
GGQQHNP=ZERO
QQQQH=ZERO
C --- GG ME.
IF(IGG.EQ.0)GOTO 100
TWOSQS = 0.5D0/SQS
DO I = 0, 3
Q3(I) = P3(I)-P1(I)
Q4(I) = P4(I)-P2(I)
R3(I) = P3(I)-P2(I)
R4(I) = P4(I)-P1(I)
K3(I) = P3(I)+P5(I)
K4(I) = P4(I)+P5(I)
END DO
CALL HWUMPO(P3, RM3, (P3(0)-P3(3)) ,ZERO,P3PROJ, .FALSE.)
CALL HWUMPO(P4,-RM4, (P4(0)+P4(3)) ,ZERO,P4PROJ, .FALSE.)
CALL HWUMPO(Q3, RM3,-SQS*(P3(0)-P3(3)) ,ZERO,Q3PROJ, .FALSE.)
CALL HWUMPO(Q4,-RM4,-SQS*(P4(0)+P4(3)) ,ZERO,Q4PROJ, .FALSE.)
CALL HWUMPO(R3, RM3,-SQS*(P3(0)+P3(3)) ,ZERO,R3PROJ, .FALSE.)
CALL HWUMPO(R4,-RM4,-SQS*(P4(0)-P4(3)) ,ZERO,R4PROJ, .FALSE.)
CALL HWUMPO(K3, RM4,SQS*(SQS-2.D0*P4(0)),MGM4,K3PROJ, .TRUE.)
CALL HWUMPO(K4,-RM3,SQS*(SQS-2.D0*P3(0)),MGM3,K4PROJ, .TRUE.)
DO I=1,2
CALL HWUMPP(P3PROJ,FAC0(1,I),PERMU0 ,U0 ,F3(1,I) , LEFT)
CALL HWUMPP(K3PROJ,FACGPM ,PERM0 ,F3(1,I),F3K(1,I) , LEFT)
CALL HWUMPP(P4PROJ,FAC0(1,I),PERMU0 ,U0 ,F4(1,I) , RIGHT)
CALL HWUMPP(K4PROJ,FACGPM ,PERM0 ,F4(1,I),F4K(1,I) , RIGHT)
DO J=1,2
CALL HWUMPP(Q3PROJ,FACL(1,J),PL(1,J),F3(1,I),F3Q(1,I,J), LEFT)
CALL HWUMPP(R3PROJ,FACL(1,J),PL(1,J),F3(1,I),F3R(1,I,J), LEFT)
CALL HWUMPP(R4PROJ,FACR(1,J),PR(1,J),F4(1,I),F4R(1,I,J), RIGHT)
CALL HWUMPP(Q4PROJ,FACR(1,J),PR(1,J),F4(1,I),F4Q(1,I,J), RIGHT)
END DO
END DO
DO I=1,2
DO J=1,2
AMPS1(I,J)=( - F3K(1,I)* F4(3,J) + F3K(2,I)* F4(4,J)
& + F3K(3,I)* F4(1,J) - F3K(4,I)* F4(2,J) ) * TWOSQS
AMPS2(I,J)=( - F3(1,I)*F4K(3,J) + F3(2,I)*F4K(4,J)
& + F3(3,I)*F4K(1,J) - F3(4,I)*F4K(2,J) ) * TWOSQS
DO K=1,2
AMPT1(1,K,I,J)= F3K(1,I)*F4Q(4,J,K)-F3K(3,I)*F4Q(2,J,K)
AMPT1(2,K,I,J)=-F3K(2,I)*F4Q(3,J,K)+F3K(4,I)*F4Q(1,J,K)
AMPT3(K,1,I,J)= F3Q(1,I,K)*F4K(4,J)-F3Q(3,I,K)*F4K(2,J)
AMPT3(K,2,I,J)=-F3Q(2,I,K)*F4K(3,J)+F3Q(4,I,K)*F4K(1,J)
AMPU1(K,1,I,J)= F3K(1,I)*F4R(4,J,K)-F3K(3,I)*F4R(2,J,K)
AMPU1(K,2,I,J)=-F3K(2,I)*F4R(3,J,K)+F3K(4,I)*F4R(1,J,K)
AMPU3(1,K,I,J)= F3R(1,I,K)*F4K(4,J)-F3R(3,I,K)*F4K(2,J)
AMPU3(2,K,I,J)=-F3R(2,I,K)*F4K(3,J)+F3R(4,I,K)*F4K(1,J)
DO L=1,2
AMPT2(K,L,I,J)
& = FACGPM(1)*( F3Q(1,I,K)*F4Q(1,J,L)+F3Q(2,I,K)*F4Q(2,J,L) )
& + FACGPM(2)*( F3Q(3,I,K)*F4Q(3,J,L)+F3Q(4,I,K)*F4Q(4,J,L) )
AMPU2(L,K,I,J)
& = FACGPM(1)*( F3R(1,I,K)*F4R(1,J,L)+F3R(2,I,K)*F4R(2,J,L) )
& + FACGPM(2)*( F3R(3,I,K)*F4R(3,J,L)+F3R(4,I,K)*F4R(4,J,L) )
END DO
END DO
END DO
END DO
AMPST2 = ZERO
AMPSU2 = ZERO
AMPTU2 = ZERO
DO I = 1, 2
DO J = 1, 2
DO K = 1, 2
DO L = 1, 2
IF (I.NE.J) THEN
AMPS = AMPS1(K,L) - AMPS2(K,L)
ELSE
AMPS = CZERO
END IF
AMPT = AMPT1(I,J,K,L)+AMPT2(I,J,K,L)+AMPT3(I,J,K,L)
AMPU = AMPU1(I,J,K,L)+AMPU2(I,J,K,L)+AMPU3(I,J,K,L)
AMPST = AMPS - AMPT
AMPSU = AMPS + AMPU
AMPTU = AMPT + AMPU
AMPST2 = AMPST2 + DREAL(DCONJG(AMPST)*AMPST)
AMPSU2 = AMPSU2 + DREAL(DCONJG(AMPSU)*AMPSU)
AMPTU2 = AMPTU2 + DREAL(DCONJG(AMPTU)*AMPTU)
END DO
END DO
END DO
END DO
FAC = (P3(0)-P3(3))*(P4(0)+P4(3))
GGQQHT = FAC*AMPST2
GGQQHU = FAC*AMPSU2
GGQQHNP = FAC*AMPTU2
100 CONTINUE
C --- QQ ME.
IF(IQQ.EQ.0)GOTO 200
S = SQS**2
PT32 = P3(1)**2+P3(2)**2
PT42 = P4(1)**2+P4(2)**2
PT52 = P5(1)**2+P5(2)**2
PT3452 = (PT32+PT42-PT52)/TWO
RM3452 = (RM3**2+RM4**2-RM5**2)/TWO
GLAMBDA = FACGPM(1)**2+FACGPM(2)**2
LAMBDA = TWO*FACGPM(1)*FACGPM(2)/GLAMBDA
LAMBDAI = (FACGPM(2)**2-FACGPM(1)**2)/GLAMBDA
LA34 = S/TWO-SQS*P5(0)-RM3452-LAMBDA*RM3*RM4
PROP3 = ONE/DCMPLX(SQS*(SQS-TWO*P4(0)),ZERO)
PROP4 = ONE/DCMPLX(SQS*(SQS-TWO*P3(0)),MGM3)
PROP = PROP3+PROP4
PROP2 = DREAL(DCONJG(PROP)*PROP)
PROP3R = DREAL(DCONJG(PROP)*PROP3)
PROP3I = DIMAG(DCONJG(PROP)*PROP3)
PROP4R = DREAL(DCONJG(PROP)*PROP4)
PROP4I = DIMAG(DCONJG(PROP)*PROP4)
PROP34R = DREAL(DCONJG(PROP3)*PROP4)
QQQQH = TWO*GLAMBDA/S*(S*PROP2*(PT3452+TWO*P3(0)*P4(0)-
& LA34)+TWO*LA34*(PROP3R*PT42+PROP4R*PT32-PROP34R*PT52)-TWO*SQS*((
& PROP3R*(P3(0)*PT42+P4(0)*PT3452)+PROP4R*(P4(0)*PT32+P3(0)*PT3452)
& )-(PROP3I*P4(3)-PROP4I*P3(3))*LAMBDAI*(P3(1)*P4(2)-P3(2)*P4(1))))
200 CONTINUE
END
CDECK ID>, HWH2SH.
*CMZ :- -30/06/01 18.25.35 by Stefano Moretti
*-- Author : Kosuke Odagiri & Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWH2SH(SQS,P1,P2,P3,P4,P5,RM3,RM4,RM5,MGM3,MGM4,
& IGG,IQQ,GGSQHT,GGSQHU,GGSQHN,QQSQH)
C-----------------------------------------------------------------------
C MATRIX ELEMENT SQUARED FOR THE PROCESS GG/QQ(BAR) -> SQ SQ* HIGGS
C-----------------------------------------------------------------------
C NEEDS PREFACTOR G_S^4 AND G_(HIGGS-SQ-SQ)^2
C MGM3, MGM4 = MASS * WIDTH
C INITIAL STATE MOMENTA: P1=(SQS/2)(1,0,0,1), P2=(SQS/2)(1,0,0,-1)
C PREFACTORS:
C GGSQHTOT =
C (G_S**4)*(G_HIGGS**2)*(GGSQHT+GGSQHU-GGSQHN/CAFAC**2)/(8.*CFFAC)
C QQSQHTOT =
C (G_S**4)*(G_HIGGS**2)*(QQSQH )*(1.-1./CAFAC**2)/4.
C N.B. SUBROUTINE CANNOT BE USED FOR PHOTON PHOTON -> ...
C
C...First release: 08-OCT-1999 by Kosuke Odagiri
C...First modified: 12-NOV-1999 by Stefano Moretti
C-----------------------------------------------------------------------
IMPLICIT NONE
C --- SUBPROCESS
INTEGER IGG,IQQ
C --- CENTRE-OF-MASS ENERGY, FOUR-MOMENTA, MASSES AND WIDTHS
DOUBLE PRECISION SQS,P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION RM3,RM4,RM5, MGM3,MGM4
C --- POLARISATION INDICES, PROPAGATORS AND GG AMPLITUDES
INTEGER I,J
DOUBLE PRECISION G14,G24,G23,G13,MSQS, GGSQHT,GGSQHU,GGSQHN
DOUBLE COMPLEX G35,G45, AMPT,AMPU,AMPS,AMPC, AMPST,AMPSU,AMPTU
C --- QQ AMPLITUDES
DOUBLE PRECISION QQSQH
DOUBLE PRECISION PT32,PT42,PT34
DOUBLE COMPLEX PROP3,PROP4
C --- CONSTANT PARAMETERS
DOUBLE PRECISION ZERO,ONE,TWO,SQTWO,MSQTWO
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0)
SQTWO=SQRT(TWO)
MSQTWO=-SQTWO/4.D0
GGSQHT = ZERO
GGSQHU = ZERO
GGSQHN = ZERO
QQSQH = ZERO
IF(IGG.EQ.0)GOTO 100
C -- GG SCATTERING.
MSQS = -SQTWO/SQS
G13 = MSQS/(P3(0)-P3(3))
G23 = MSQS/(P3(0)+P3(3))
G14 = MSQS/(P4(0)-P4(3))
G24 = MSQS/(P4(0)+P4(3))
G35 = SQTWO/CMPLX(SQS*(SQS-TWO*P4(0)),MGM4)
G45 = SQTWO/CMPLX(SQS*(SQS-TWO*P3(0)),MGM3)
AMPS = 0.5D0*MSQS*(P4(3)*G35-P3(3)*G45)
AMPC = MSQTWO*(G35+G45)
DO 10 I = 1,2
DO 20 J = 1,2
AMPT=P3(I)*P4(J)*G24*G13-P4(I)*P4(J)*G24*G35-P3(I)*P3(J)*G13*G45
AMPU=P4(I)*P3(J)*G14*G23-P4(I)*P4(J)*G14*G35-P3(I)*P3(J)*G23*G45
IF (I.EQ.J) THEN
AMPST = AMPT-AMPS+AMPC
AMPSU = AMPU+AMPS+AMPC
ELSE
AMPST = AMPT
AMPSU = AMPU
END IF
AMPTU = AMPST+AMPSU
GGSQHT = GGSQHT + DREAL(DCONJG(AMPST)*AMPST)
GGSQHU = GGSQHU + DREAL(DCONJG(AMPSU)*AMPSU)
GGSQHN = GGSQHN + DREAL(DCONJG(AMPTU)*AMPTU)
20 CONTINUE
10 CONTINUE
100 CONTINUE
IF(IQQ.EQ.0)GOTO 200
C -- QQ SCATTERING.
PT32 = P3(1)**2+P3(2)**2
PT42 = P4(1)**2+P4(2)**2
PT34 = P3(1)*P4(1)+P3(2)*P4(2)
PROP3 = ONE/CMPLX(SQS*(SQS-TWO*P3(0)),MGM3)
PROP4 = ONE/CMPLX(SQS*(SQS-TWO*P4(0)),MGM4)
QQSQH = TWO/SQS**2*DREAL(PT32*DCONJG(PROP3)*PROP3+
& PT42*DCONJG(PROP4)*PROP4-TWO*PT34*DCONJG(PROP3)*PROP4)
200 CONTINUE
END
CDECK ID>, HWH2SS
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWH2SS(S,K,KK)
C-----------------------------------------------------------------------
C Subroutine to calculate the spinor products in the notation of
C Kleiss and Strirling S(1) is S and S(2) is T
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION WRN(2),K(5),KK(5),P(5,2),Q1,Q2,EPS,QTI,PTI,
& PT,QT,DPM,DMP,QP,QM,P1,P2,PP,PM
DOUBLE COMPLEX S(2),ZI,Z1,ZT,ZQ,ZQS,ZPS,ZP,ZDPM,ZDMP
INTEGER I,II,JJ
EPS=0.0000001
ZI=DCMPLX(ZERO,ONE)
Z1=DCMPLX(ONE,ZERO)
C FOLLOWING DO LOOP IS TO CONVERT TO OUR STANDARD INDEXING
DO I=1,4
P(I,2) = K(I)
P(I,1) = KK(I)
ENDDO
DO 2 II=1,2
WRN(II)=ONE
IF(P(4,II).LT.ZERO) WRN(II)=-ONE
DO 2 JJ=1,4
P(JJ,II)=WRN(II)*P(JJ,II)
2 CONTINUE
C THE ABOVE CHECKS FOR MOMENTA WITH NEGATIVE ENERGY,INNER PRODUCTS
C ARE EXPRESSED DIFFERENTLY FOR DIFFERENT CASES
Q1=P(4,1)+P(1,1)
QP=ZERO
IF(Q1.GT.EPS) QP=SQRT(Q1)
Q2=P(4,1)-P(1,1)
QM=0.0
IF(Q2.GT.EPS)QM=SQRT(Q2)
P1=P(4,2)+P(1,2)
PP=ZERO
IF(P1.GT.EPS)PP=SQRT(P1)
P2=P(4,2)-P(1,2)
PM=ZERO
IF(P2.GT.EPS)PM=SQRT(P2)
DMP=PM*QP
ZDMP=DCMPLX(DMP,ZERO)
DPM=PP*QM
ZDPM=DCMPLX(DPM,ZERO)
C NOTE THAT IN OUR INNER PRODUCT NOTATION WE ARE COMPUTING
PT=SQRT(P(2,2)**2+P(3,2)**2)
QT=SQRT(P(2,1)**2+P(3,1)**2)
IF(PT.GT.EPS) GOTO 99
ZP=Z1
GOTO 98
99 PTI=ONE/PT
ZP=DCMPLX(PTI*P(2,2),PTI*P(3,2))
98 ZPS=DCONJG(ZP)
IF(QT.GT.EPS) GOTO 89
ZQ=Z1
GOTO 88
89 QTI=ONE/QT
ZQ=DCMPLX(QTI*P(2,1),QTI*P(3,1))
88 ZQS=DCONJG(ZQ)
ZT=Z1
IF(WRN(1).LT.ZERO) ZT=ZT*ZI
IF(WRN(2).LT.ZERO) ZT=ZT*ZI
S(2)=-(ZDMP*ZP-ZDPM*ZQ)*ZT
S(1)=(ZDMP*ZPS-ZDPM*ZQS)*ZT
END
CDECK ID>, HWH2T1.
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T1(I,J,K,L,Z1,Z2,P1)
C-----------------------------------------------------------------------
C Returns the amplitude T1 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T1,S,D
INTEGER I,J,K,L,Z1,Z2,P1
COMMON/HWHEWS/S(8,8,2),D(8,8)
IF(P1.EQ.1) THEN
HWH2T1 = TWO*S(I,Z2,1)*S(Z1,J,2)
ELSEIF(P1.EQ.2) THEN
HWH2T1 = TWO*S(I,Z1,2)*S(Z2,J,1)
ELSE
CALL HWWARN('HWH2T1',500)
ENDIF
END
CDECK ID>, HWH2T2
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T2(I,J,K,L,Z1,Z2,P1,P2)
C-----------------------------------------------------------------------
C Returns the amplitude T2 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T2,S,D
INTEGER I,J,K,L,Z1,Z2,P1,P2
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P1.EQ.1.AND.P2.EQ.1) THEN
HWH2T2 = FOUR*B(J)*S(I,Z2,1)*S(Z1,J,2)*S(J,K,1)*S(I,J,2)
ELSEIF(P1.EQ.1.AND.P2.EQ.2) THEN
HWH2T2 = FOUR*S(I,Z2,1)*S(K,J,2)*(B(J)*S(Z1,J,2)*S(J,I,1)
& +B(K)*S(Z1,K,2)*S(K,I,1))
ELSEIF(P1.EQ.2.AND.P2.EQ.1) THEN
HWH2T2 = FOUR*S(I,Z1,2)*S(K,J,1)*(B(J)*S(Z2,J,1)*S(J,I,2)
& +B(K)*S(Z2,K,1)*S(K,I,2))
ELSEIF(P1.EQ.2.AND.P2.EQ.2) THEN
HWH2T2 = FOUR*B(J)*S(I,Z1,2)*S(Z2,J,1)*S(J,K,2)*S(I,J,1)
ELSE
CALL HWWARN('HWH2T2',500)
ENDIF
END
CDECK ID>, HWH2T3.
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T3(I,J,K,L,Z1,Z2,P1,P2)
C-----------------------------------------------------------------------
C Returns the amplitude T3 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T3,S,D
INTEGER I,J,K,L,Z1,Z2,P1,P2
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P1.EQ.1.AND.P2.EQ.1) THEN
HWH2T3 = FOUR*B(K)*S(I,K,1)*S(I,K,2)*S(K,Z2,1)*S(Z1,J,2)
ELSEIF(P1.EQ.1.AND.P2.EQ.2) THEN
HWH2T3 = ZERO
ELSEIF(P1.EQ.2.AND.P2.EQ.1) THEN
HWH2T3 = ZERO
ELSEIF(P1.EQ.2.AND.P2.EQ.2) THEN
HWH2T3 = FOUR*B(K)*S(I,K,2)*S(I,K,1)*S(K,Z1,2)*S(Z2,J,1)
ELSE
CALL HWWARN('HWH2T3',500)
ENDIF
END
CDECK ID>, HWH2T4
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T4(I,J,K,L,Z1,Z2,P1,P2)
C-----------------------------------------------------------------------
C Returns the amplitude T4 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the line K,L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T4,AP,AM,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,J3,J4,P1,P2
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
AP(J1,J2,J3,J4) = FOUR*S(J1,Z2,1)*S(J4,J2,2)*
& (S(Z1,Z2,2)*S(Z2,J3,1)+B(J1)*S(Z1,J1,2)*S(J1,J3,1))
AM(J1,J2,J3,J4) = FOUR*S(J1,Z1,2)*S(J4,J2,1)*
& (S(Z2,Z1,1)*S(Z1,J3,2)+B(J1)*S(Z2,J1,1)*S(J1,J3,2))
IF(P1.EQ.1.AND.P2.EQ.1) THEN
HWH2T4 = AP(I,J,K,L)
ELSEIF(P1.EQ.1.AND.P2.EQ.2) THEN
HWH2T4 = AP(I,J,L,K)
ELSEIF(P1.EQ.2.AND.P2.EQ.1) THEN
HWH2T4 = AM(I,J,L,K)
ELSEIF(P1.EQ.2.AND.P2.EQ.2) THEN
HWH2T4 = AM(I,J,K,L)
ELSE
CALL HWWARN('HWH2T4',500)
ENDIF
END
CDECK ID>, HWH2T5
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T5(I,J,K,L,Z1,Z2,P1,P2)
C-----------------------------------------------------------------------
C Returns the amplitude T5 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the line K,L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T5,AP,AM,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,J3,J4,P1,P2
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
AP(J1,J2,J3,J4) = FOUR*S(J1,Z2,1)*S(J4,J2,2)*
& (S(Z1,Z2,2)*S(Z2,J3,1)+B(J1)*S(Z1,J1,2)*S(J1,J3,1))
AM(J1,J2,J3,J4) = FOUR*S(J1,Z1,2)*S(J4,J2,1)*
& (S(Z2,Z1,1)*S(Z1,J3,2)+B(J1)*S(Z2,J1,1)*S(J1,J3,2))
IF(P1.EQ.1.AND.P2.EQ.1) THEN
HWH2T5 = AM(J,I,L,K)
ELSEIF(P1.EQ.1.AND.P2.EQ.2) THEN
HWH2T5 = AM(J,I,K,L)
ELSEIF(P1.EQ.2.AND.P2.EQ.1) THEN
HWH2T5 = AP(J,I,K,L)
ELSEIF(P1.EQ.2.AND.P2.EQ.2) THEN
HWH2T5 = AP(J,I,L,K)
ELSE
CALL HWWARN('HWH2T5',500)
ENDIF
END
CDECK ID>, HWH2T6
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T6(I,J,K,L,Z1,Z2,P1,P2,P3)
C-----------------------------------------------------------------------
C Returns the amplitude T6 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C P3 is the polarization of the gluon L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T6,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,P1,P2,P3
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P1.EQ.1) THEN
J1 = Z1
J2 = Z2
ELSE
J1 = Z2
J2 = Z1
ENDIF
IF((P1.EQ.1.AND.P2.EQ.1.AND.P3.EQ.1).OR.
& (P1.EQ.2.AND.P2.EQ.2.AND.P3.EQ.2)) THEN
HWH2T6 = 8.0D0*B(J)*S(I,J2,1)*D(L,J)*S(K,J,2)*
& (B(J)*S(J1,J,2)*S(J,K,1)+B(L)*S(J1,L,2)*S(L,K,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.1.AND.P3.EQ.2).OR.
& (P1.EQ.2.AND.P2.EQ.2.AND.P3.EQ.1)) THEN
HWH2T6 = 8.0D0*B(J)*S(I,J2,1)*S(L,J,2)*S(J,K,1)*S(L,J,2)*
& (B(J)*S(J1,J,2)*S(J,K,1)+B(L)*S(J1,L,2)*S(L,K,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.2.AND.P3.EQ.1).OR.
& (P1.EQ.2.AND.P2.EQ.1.AND.P3.EQ.2)) THEN
HWH2T6 = 8.0D0*B(J)*S(I,J2,1)*S(K,J,2)*S(J,L,1)*S(K,J,2)*
& (B(J)*S(J1,J,2)*S(J,L,1)+B(K)*S(J1,K,2)*S(K,L,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.2.AND.P3.EQ.2).OR.
& (P1.EQ.2.AND.P2.EQ.1.AND.P3.EQ.1)) THEN
HWH2T6 = 8.0D0*S(I,J2,1)*S(L,J,2)*(B(J)*D(K,J)+B(L)*D(K,L))*
& (B(J)*S(J1,J,2)*S(J,L,1)+B(K)*S(J1,K,2)*S(K,L,1))
ELSE
CALL HWWARN('HWH2T6',500)
ENDIF
IF(P1.EQ.2) HWH2T6 = DCONJG(HWH2T6)
END
CDECK ID>, HWH2T7
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T7(I,J,K,L,Z1,Z2,P1,P2,P3)
C-----------------------------------------------------------------------
C Returns the amplitude T7 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C P3 is the polarization of the gluon L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T7,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,P1,P2,P3
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P1.EQ.1) THEN
J1 = Z1
J2 = Z2
ELSE
J1 = Z2
J2 = Z1
ENDIF
IF((P1.EQ.1.AND.P2.EQ.1.AND.P3.EQ.1).OR.
& (P1.EQ.2.AND.P2.EQ.2.AND.P3.EQ.2)) THEN
HWH2T7 = 8.0D0*B(J)*S(I,K,1)*S(J1,J,2)*S(J,L,1)*S(K,J,2)*
& (B(I)*S(L,I,2)*S(I,J2,1)+B(K)*S(L,K,2)*S(K,J2,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.1.AND.P3.EQ.2).OR.
& (P1.EQ.2.AND.P2.EQ.2.AND.P3.EQ.1)) THEN
HWH2T7 = 8.0D0*S(I,K,1)*S(L,J,2)*
& (B(I)*S(L,I,2)*S(I,J2,1)+B(K)*S(L,K,2)*S(K,J2,1))*
& (B(J)*S(J1,J,2)*S(J,K,1)+B(L)*S(J1,L,2)*S(L,K,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.2.AND.P3.EQ.1).OR.
& (P1.EQ.2.AND.P2.EQ.1.AND.P3.EQ.2)) THEN
HWH2T7 = 8.0D0*B(I)*B(J)*S(I,L,1)*S(K,I,2)*
& S(I,J2,1)*S(J1,J,2)*S(J,L,1)*S(K,J,2)
ELSEIF((P1.EQ.1.AND.P2.EQ.2.AND.P3.EQ.2).OR.
& (P1.EQ.2.AND.P2.EQ.1.AND.P3.EQ.1)) THEN
HWH2T7 = 8.0D0*B(I)*S(I,L,1)*S(K,I,2)*S(I,J2,1)*S(L,J,2)*
& (B(J)*S(J1,J,2)*S(J,K,1)+B(L)*S(J1,L,2)*S(L,K,1))
ELSE
CALL HWWARN('HWH2T7',500)
ENDIF
IF(P1.EQ.2) HWH2T7 = DCONJG(HWH2T7)
END
CDECK ID>, HWH2T8
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T8(I,J,K,L,Z1,Z2,P1,P2,P3)
C-----------------------------------------------------------------------
C Returns the amplitude T8 from Nucl. Phys. B262 (1985) 235-262
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C P3 is the polarization of the gluon L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T8,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,P1,P2,P3
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P1.EQ.1) THEN
J1 = Z1
J2 = Z2
ELSE
J1 = Z2
J2 = Z1
ENDIF
IF((P1.EQ.1.AND.P2.EQ.1.AND.P3.EQ.1).OR.
& (P1.EQ.2.AND.P2.EQ.2.AND.P3.EQ.2)) THEN
HWH2T8 = 8.0D0*S(I,K,1)*S(J1,J,2)*(B(I)*D(L,I)+B(K)*D(L,K))*
& (B(I)*S(K,I,2)*S(I,J2,1)+B(L)*S(K,L,2)*S(L,J2,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.1.AND.P3.EQ.2).OR.
& (P1.EQ.2.AND.P2.EQ.2.AND.P3.EQ.1)) THEN
HWH2T8 = 8.0D0*B(I)*S(I,K,1)*S(L,I,2)*S(I,K,1)*S(J1,J,2)*
& (B(I)*S(L,I,2)*S(I,J2,1)+B(K)*S(L,K,2)*S(K,J2,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.2.AND.P3.EQ.1).OR.
& (P1.EQ.2.AND.P2.EQ.1.AND.P3.EQ.2)) THEN
HWH2T8 = 8.0D0*B(I)*S(I,L,1)*S(K,I,2)*S(I,L,1)*S(J1,J,2)*
& (B(I)*S(K,I,2)*S(I,J2,1)+B(L)*S(K,L,2)*S(L,J2,1))
ELSEIF((P1.EQ.1.AND.P2.EQ.2.AND.P3.EQ.2).OR.
& (P1.EQ.2.AND.P2.EQ.1.AND.P3.EQ.1)) THEN
HWH2T8 = 8.0D0*B(I)*S(I,L,1)*D(I,K)*S(J1,J,2)*
& (B(I)*S(L,I,2)*S(I,J2,1)+B(K)*S(L,K,2)*S(K,J2,1))
ELSE
CALL HWWARN('HWH2T8',500)
ENDIF
IF(P1.EQ.2) HWH2T8 = DCONJG(HWH2T8)
END
CDECK ID>, HWH2T9
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T9(I,J,K,L,Z1,Z2,P1,P2,P3)
C-----------------------------------------------------------------------
C Returns the amplitude T9 from Nucl. Phys. B262 (1985) 235-262
C N.B. DELTA FUNCTION FOR THE GLUON POLARIZATIONS HERE
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C P3 is the polarization of the gluon L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T9,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,P1,P2,P3
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P2.NE.P3) THEN
HWH2T9 = ZERO
ELSE
IF(P1.EQ.1) THEN
J1 = Z1
J2 = Z2
ELSEIF(P1.EQ.2) THEN
J1 = Z2
J2 = Z1
ENDIF
HWH2T9 = TWO*S(I,J2,1)*(
& B(K)*S(K,J,2)*(B(J)*S(J1,J,2)*S(J,K,1)
& +B(L)*S(J1,L,2)*S(L,K,1))
& -B(L)*S(L,J,2)*(B(J)*S(J1,J,2)*S(J,L,1)
& +B(K)*S(J1,K,2)*S(K,L,1)))
IF(P1.EQ.2) HWH2T9 = DCONJG(HWH2T9)
ENDIF
END
CDECK ID>, HWH2T0
*CMZ :- -27/02/01 17:04:16 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
FUNCTION HWH2T0(I,J,K,L,Z1,Z2,P1,P2,P3)
C-----------------------------------------------------------------------
C Returns the amplitude T10 from Nucl. Phys. B262 (1985) 235-262
C N.B. DELTA FUNCTION FOR THE GLUON POLARIZATIONS HERE
C I-L are the particles
C Z1 and Z2 are the decay products of the Z
C P1 is the polarization of the line I,J
C P2 is the polarization of the gluon K
C P3 is the polarization of the gluon L
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWH2T0,S,D
INTEGER I,J,K,L,Z1,Z2,J1,J2,P1,P2,P3
DOUBLE PRECISION B(6)
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE B
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
IF(P2.NE.P3) THEN
HWH2T0 = ZERO
ELSE
IF(P1.EQ.1) THEN
J1 = Z1
J2 = Z2
ELSEIF(P1.EQ.2) THEN
J1 = Z2
J2 = Z1
ENDIF
HWH2T0 = TWO*S(J1,J,2)*(
& B(K)*S(I,K,1)*(B(I)*S(K,I,2)*S(I,J2,1)
& +B(L)*S(K,L,2)*S(L,J2,1))
& -B(L)*S(I,L,1)*(B(I)*S(L,I,2)*S(I,J2,1)
& +B(K)*S(L,K,2)*S(K,J2,1)))
IF(P1.EQ.2) HWH2T0 = DCONJG(HWH2T0)
ENDIF
END
CDECK ID>, HWH2VH.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWH2VH(P1,P2,P3,P4,RMV,RES,RESL,REST)
C-----------------------------------------------------------------------
C...Matrix element for q(1) + q(')-bar(2) -> V(3) + Higgs(4),
C...V=Z(W+/-), all masses retained (but no Yukawa couplings to quarks).
C...It factorises 64.*PIFAC**3*ALPHA**3/4./SWEIN/SWEIN/SWEIN/EMW/EMW
C...times:
C... (VQ*VQ+AQ*AQ)/(1.-SWEIN)/(1.-SWEIN) if V=Z
C... VCKM(q,q') if V=W+/-
C
C...First release: 1-APR-1998 by Stefano Moretti
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3)
DOUBLE PRECISION P(0:3)
DOUBLE PRECISION RMV,GAMV,RES,RESL,REST
INTEGER I
DOUBLE PRECISION S,S12,S13,S23
DOUBLE PRECISION T, T13,T23
DOUBLE PRECISION PV,CFC
PARAMETER (GAMV=0.D0)
S=(P1(0)+P2(0))**2
DO I=1,3
S=S-(P1(I)+P2(I))**2
END DO
S12=P1(0)*P2(0)
S13=P1(0)*P3(0)
S23=P2(0)*P3(0)
DO I=1,3
S12=S12-P1(I)*P2(I)
S13=S13-P1(I)*P3(I)
S23=S23-P2(I)*P3(I)
END DO
C...Total ME.
RES=(S12+2.D0/RMV/RMV*(S13*S23))
& /((S-RMV**2)**2+GAMV**2*RMV**2)
& /12.D0
C...Extracts spin dependence.
PV=SQRT(P3(1)**2+P3(2)**2+P3(3)**2)
CFC=P3(0)/PV
DO I=1,3
P(I)=P3(I)*CFC
END DO
P(0)=PV**2/P3(0)*CFC
T=P(0)**2
DO I=1,3
T=T-P(I)**2
END DO
T13=P1(0)*P(0)
T23=P2(0)*P(0)
DO I=1,3
T13=T13-P1(I)*P(I)
T23=T23-P2(I)*P(I)
END DO
C...Longitudinal ME (along V direction).
RESL=(2.D0/RMV/RMV*(T13*T23)-S12*T/RMV/RMV)
& /((S-RMV**2)**2+GAMV**2*RMV**2)
& /12.D0
C...Transverse ME (perpendicular to V direction).
REST=RES-RESL
END
CDECK ID>, HWH4JT.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWH4JT
C-----------------------------------------------------------------------
C Four jet production in e^+e^- annihilation: qqbar+gg & qqbar+qqbar
C IOP4JT controls the treatment of the colour flow interference term
C qqbar-gg case:
C IOP4JT(1)=0 neglect, =1 extreme 2341; =2 extreme 3421
C qqbar-qqbar (identical quark flavour) case:
C IOP4JT(2)=0 neglect, =1 extreme 4123; =2 extreme 2143
C
C Matrix elements based on Ellis Ross & Terrano and Catani & Seymour
C
C WARNING: Phase space factor inaccurate for JADE y_cut > 0.14.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER LM,LP,IQK,I,J,IDMN,IDMX,ID1,ID2,IST(4)
DOUBLE PRECISION HWRGEN,HWUALF,HWUAEM,HWULDO,HWH4J1,HWH4J2,
& HWH4J4,HWH4J5,HWH4J6,HWH4J7,QNOW,Q2NOW,QLST,SCUT,PSFAC,FACT,
& X12,X13,X14,X23,X24,X34,
& COLA,COLB,COLC,CLF(7,6),P12,P13,P14,P23,P24,P34,FACTR,EP1,EP2,
& EP3,EP4,GG1,GG2,GG12,GG3,GG13,GG23,GGINT,WTGG,QQ,QP,QQINT,QQ1,
& QQ2,WTQQ,WTQP,HCS,WTAB,WTBA,WTOT,RCS,YLST
$ ,EF,QF,E(4)
LOGICAL INCLQG(6),INCLQQ(6,6),ORIENT
EXTERNAL HWRGEN,HWUALF,HWUAEM,HWULDO,HWH4J1,HWH4J2,HWH4J4,
& HWH4J5,HWH4J6,HWH4J7
SAVE HCS,QLST,WTQP,WTQQ,WTGG,FACTR,COLA,COLB,COLC,IDMN,IDMX,
& CLF,GG1,GG2,GGINT,INCLQG,INCLQQ,LM,LP,QQ1,QQ2,QQINT,FACT,ORIENT,
& Q2NOW,SCUT,YLST
SAVE IST
DATA QLST,YLST,IST/-1D0,-1D0,113,114,114,114/
C
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
IF (NHEP+5.GT.NMXHEP) THEN
CALL HWWARN('HWH4JT',100)
GOTO 999
ENDIF
QNOW=PHEP(5,3)
IF (QNOW.NE.QLST.OR.Y4JT.NE.YLST) THEN
QLST=QNOW
YLST=Y4JT
Q2NOW=QNOW**2
SCUT=Y4JT*Q2NOW
C Calculate allowed fraction of Phase Space using parameterization
IF (DURHAM) THEN
PSFAC=(1.-6.*Y4JT)**5.50*(1.-173.3*Y4JT*(1.-247.3*Y4JT
& *(1.+148.3*Y4JT*(1.+3.913*Y4JT))))
& /(1.-8.352*Y4JT*(1.-1102.*Y4JT
& *(1.+1603.*Y4JT*(1.+22.99*Y4JT))))
ELSE
PSFAC=(1.-6.*Y4JT)**4.62*(1.-44.72*Y4JT*(1.-176.0*Y4JT
& *(1.+102.9*Y4JT*(1.-6.579*Y4JT))))
& /(1.-3.392*Y4JT*(1.-946.5*Y4JT
& *(1.+423.4*Y4JT*(1.-3.971*Y4JT))))
ENDIF
FACT=GEV2NB*HWUAEM(Q2NOW)**2*CFFAC*FLOAT(NCOLO)*PSFAC
& /(THREE*16*PIFAC)
COLA=CFFAC
COLB=CFFAC-HALF*CAFAC
COLC=HALF
LM=1
IF (JDAHEP(1,LM).NE.0) LM=JDAHEP(1,LM)
LP=2
IF (JDAHEP(1,LP).NE.0) LP=JDAHEP(1,LP)
IQK=MOD(IPROC,10)
IF (IQK.NE.0) THEN
IDMN=IQK
IDMX=IQK
ELSE
IDMN=1
IDMX=6
ENDIF
DO 10 I=1,6
CALL HWUCFF(11,I,Q2NOW,CLF(1,I))
IF (QNOW.GT.TWO*(RMASS(I)+RMASS(13))) THEN
INCLQG(I)=.TRUE.
ELSE
INCLQG(I)=.FALSE.
ENDIF
DO 10 J=I,6
IF (QNOW.GT.TWO*(RMASS(I)+RMASS(J ))) THEN
INCLQQ(I,J)=.TRUE.
INCLQQ(J,I)=.TRUE.
ELSE
INCLQQ(I,J)=.FALSE.
INCLQQ(J,I)=.FALSE.
ENDIF
10 CONTINUE
IF (MOD(IPROC/10,10).EQ.5) THEN
ORIENT=.FALSE.
ELSE
ORIENT=.TRUE.
ENDIF
ENDIF
C Generate phase space point and check it passes cuts
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
DO 20 I=2,5
20 PHEP(5,NHEP+I)=0.
30 CALL HWDFOR(PHEP(1,NHEP+1),PHEP(1,NHEP+2),PHEP(1,NHEP+3),
& PHEP(1,NHEP+4),PHEP(1,NHEP+5))
IF(IERROR.NE.0) RETURN
IF (DURHAM) THEN
P12=2*HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+3))
X12=MIN(PHEP(4,NHEP+2)/PHEP(4,NHEP+3),
& PHEP(4,NHEP+3)/PHEP(4,NHEP+2))*P12
IF (X12.GT.SCUT) THEN
P13=2*HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+4))
X13=MIN(PHEP(4,NHEP+2)/PHEP(4,NHEP+4),
& PHEP(4,NHEP+4)/PHEP(4,NHEP+2))*P13
IF (X13.GT.SCUT) THEN
P14=2*HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+5))
X14=MIN(PHEP(4,NHEP+2)/PHEP(4,NHEP+5),
& PHEP(4,NHEP+5)/PHEP(4,NHEP+2))*P14
IF (X14.GT.SCUT) THEN
P23=2*HWULDO(PHEP(1,NHEP+3),PHEP(1,NHEP+4))
X23=MIN(PHEP(4,NHEP+3)/PHEP(4,NHEP+4),
& PHEP(4,NHEP+4)/PHEP(4,NHEP+3))*P23
IF (X23.GT.SCUT) THEN
P24=2*HWULDO(PHEP(1,NHEP+3),PHEP(1,NHEP+5))
X24=MIN(PHEP(4,NHEP+3)/PHEP(4,NHEP+5),
& PHEP(4,NHEP+5)/PHEP(4,NHEP+3))*P24
IF (X24.GT.SCUT) THEN
P34=2*HWULDO(PHEP(1,NHEP+4),PHEP(1,NHEP+5))
X34=MIN(PHEP(4,NHEP+4)/PHEP(4,NHEP+5),
& PHEP(4,NHEP+5)/PHEP(4,NHEP+4))*P34
IF (X34.GT.SCUT) GOTO 40
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
P12=2*HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+3))
IF (P12.GT.SCUT) THEN
P13=2*HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+4))
IF (P13.GT.SCUT) THEN
P14=2*HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+5))
IF (P14.GT.SCUT) THEN
P23=2*HWULDO(PHEP(1,NHEP+3),PHEP(1,NHEP+4))
IF (P23.GT.SCUT) THEN
P24=2*HWULDO(PHEP(1,NHEP+3),PHEP(1,NHEP+5))
IF (P24.GT.SCUT) THEN
P34=2*HWULDO(PHEP(1,NHEP+4),PHEP(1,NHEP+5))
IF (P34.GT.SCUT) GOTO 40
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
C Failed cuts retry
GOTO 30
C Passed cuts: calculate contributions to Matrix Elements
40 EMSCA=SQRT(MIN(P12,P13,P14,P23,P24,P34))
IF (DURHAM) EMSCA=SQRT(MIN(X12,X13,X14,X23,X24,X34))
IF (FIX4JT) EMSCA=SQRT(SCUT)
FACTR=FACT*HWUALF(1,EMSCA)**2
IF (ORIENT) THEN
QF=HWULDO(PHEP(1,LP),PHEP(1,3))
EF=Q2NOW/(2*SQRT(QF**2-HWULDO(PHEP(1,LP),PHEP(1,LP))*Q2NOW))
QF=HALF-EF*QF/Q2NOW
DO I=1,4
E(I)=EF*PHEP(I,LP)+QF*PHEP(I,3)
ENDDO
EP1=HWULDO(E,PHEP(1,NHEP+2))
EP2=HWULDO(E,PHEP(1,NHEP+3))
EP3=HWULDO(E,PHEP(1,NHEP+4))
EP4=HWULDO(E,PHEP(1,NHEP+5))
ENDIF
C q-qbar-g-g
GG1=HWH4J1(P12,P13,P14,P23,P24,P34,EP1,EP2,EP3,EP4,ORIENT)
& +HWH4J1(P12,P24,P23,P14,P13,P34,EP2,EP1,EP4,EP3,ORIENT)
GG2=HWH4J1(P12,P23,P24,P13,P14,P34,EP2,EP1,EP3,EP4,ORIENT)
& +HWH4J1(P12,P14,P13,P24,P23,P34,EP1,EP2,EP4,EP3,ORIENT)
GG12=HWH4J2(P12,P13,P14,P23,P24,P34,EP1,EP2,EP3,EP4,ORIENT)
& +HWH4J2(P12,P14,P13,P24,P23,P34,EP1,EP2,EP4,EP3,ORIENT)
& +HWH4J2(P12,P23,P24,P13,P14,P34,EP2,EP1,EP3,EP4,ORIENT)
& +HWH4J2(P12,P24,P23,P14,P13,P34,EP2,EP1,EP4,EP3,ORIENT)
GG3=HWH4J4(P12,P13,P14,P23,P24,P34,EP1,EP2,EP3,EP4,ORIENT)
& +HWH4J4(P12,P24,P23,P14,P13,P34,EP2,EP1,EP4,EP3,ORIENT)
GG13=GG3+HWH4J5(P12,P13,P14,P23,P24,P34,EP1,EP2,EP3,EP4,ORIENT)
& +HWH4J5(P12,P24,P23,P14,P13,P34,EP2,EP1,EP4,EP3,ORIENT)
GG23=GG3+HWH4J5(P12,P14,P13,P24,P23,P34,EP1,EP2,EP4,EP3,ORIENT)
& +HWH4J5(P12,P23,P24,P13,P14,P34,EP2,EP1,EP3,EP4,ORIENT)
C Add up weights
GG1 =COLA*(GG1 +GG13)
GG2 =COLA*(GG2 +GG23)
GGINT=COLB*(GG12-GG13-GG23)
WTGG=FACTR*(GG1+GG2+GGINT)
C q-qbar-q-qbar
QP=HWH4J6(P13,P12,P14,P23,P34,P24,EP1,EP3,EP2,EP4,ORIENT)
& +HWH4J6(P24,P12,P23,P14,P34,P13,EP2,EP4,EP1,EP3,ORIENT)
& +HWH4J6(P13,P34,P23,P14,P12,P24,EP3,EP1,EP4,EP2,ORIENT)
& +HWH4J6(P24,P34,P14,P23,P12,P13,EP4,EP2,EP3,EP1,ORIENT)
QQ=HWH4J6(P13,P23,P34,P12,P14,P24,EP3,EP1,EP2,EP4,ORIENT)
& +HWH4J6(P24,P23,P12,P34,P14,P13,EP2,EP4,EP3,EP1,ORIENT)
& +HWH4J6(P13,P14,P12,P34,P23,P24,EP1,EP3,EP4,EP2,ORIENT)
& +HWH4J6(P24,P14,P34,P12,P23,P13,EP4,EP2,EP1,EP3,ORIENT)
QQINT=HWH4J7(P13,P12,P14,P23,P34,P24,EP1,EP3,EP2,EP4,ORIENT)
& +HWH4J7(P24,P12,P23,P14,P34,P13,EP2,EP4,EP1,EP3,ORIENT)
& +HWH4J7(P13,P23,P34,P12,P14,P24,EP3,EP1,EP2,EP4,ORIENT)
& +HWH4J7(P24,P23,P12,P34,P14,P13,EP2,EP4,EP3,EP1,ORIENT)
& +HWH4J7(P13,P14,P12,P34,P23,P24,EP1,EP3,EP4,EP2,ORIENT)
& +HWH4J7(P24,P14,P34,P12,P23,P13,EP4,EP2,EP1,EP3,ORIENT)
& +HWH4J7(P13,P34,P23,P14,P12,P24,EP3,EP1,EP4,EP2,ORIENT)
& +HWH4J7(P24,P34,P14,P23,P12,P13,EP4,EP2,EP3,EP1,ORIENT)
C Add up weights
WTQP=FACTR*COLC*QP/TWO
QQ1 =COLC*QP
QQ2 =COLC*QQ
QQINT=COLB*QQINT
WTQQ=FACTR*(QQ1+QQ2+QQINT)/2
ENDIF
C
HCS=0.
DO 60 ID1=IDMN,IDMX
IF (INCLQG(ID1)) THEN
C Gluon channel
HCS=HCS+CLF(1,ID1)*WTGG
IF (GENEV.AND.HCS.GT.RCS) THEN
C Select colour flow
WTAB=GG1
WTBA=GG2
IF (IOP4JT(1).EQ.1) THEN
IF (GGINT.GE.ZERO) THEN
WTAB=WTAB+GGINT
ELSE
WTBA=MAX(WTBA,WTBA+GGINT)
ENDIF
ELSEIF (IOP4JT(1).EQ.2) THEN
IF (GGINT.GE.ZERO) THEN
WTBA=WTBA+GGINT
ELSE
WTAB=MAX(WTAB,WTAB+GGINT)
ENDIF
ELSEIF (IOP4JT(1).NE.0) THEN
CALL HWWARN('HWH4JT',101)
GOTO 999
ENDIF
WTOT=WTAB+WTBA
IF (WTAB.GT.HWRGEN(1)*WTOT) THEN
CALL HWHQCP( 13, 13,3142,91)
GOTO 99
ELSE
CALL HWHQCP( 13, 13,4123,92)
GOTO 99
ENDIF
ENDIF
ENDIF
C Quark channels
DO 50 ID2=1,6
C Identical quark pairs
IF (ID1.EQ.ID2.AND.INCLQQ(ID1,ID1)) THEN
HCS=HCS+CLF(1,ID1)*WTQQ
IF (GENEV.AND.HCS.GT.RCS) THEN
C Select colour flow
WTAB=QQ1
WTBA=QQ2
IF (IOP4JT(2).EQ.1) THEN
IF (QQINT.GE.ZERO) THEN
WTAB=WTAB+QQINT
ELSE
WTBA=MAX(WTBA,WTBA+QQINT)
ENDIF
ELSEIF (IOP4JT(2).EQ.2) THEN
IF (QQINT.GE.ZERO) THEN
WTBA=WTBA+QQINT
ELSE
WTAB=MAX(WTAB,WTAB+QQINT)
ENDIF
ELSEIF (IOP4JT(2).NE.0) THEN
CALL HWWARN('HWH4JT',102)
GOTO 999
ENDIF
WTOT=WTAB+WTBA
IF (WTAB.GT.HWRGEN(1)*WTOT) THEN
CALL HWHQCP(ID1,ID1+6,4123,93)
GOTO 99
ELSE
CALL HWHQCP(ID1,ID1+6,2143,94)
GOTO 99
ENDIF
ENDIF
C Unlike quark pairs
ELSEIF (INCLQQ(ID1,ID2)) THEN
HCS=HCS+(CLF(1,ID1)+CLF(1,ID2))*WTQP
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID2,ID2+6,4123,95)
GOTO 99
ENDIF
ENDIF
50 CONTINUE
60 CONTINUE
EVWGT=HCS
RETURN
C Set up labels for selected final state
99 IDN(1)=ID1
IDN(2)=ID1+6
J=NHEP+1
IDHW(J)=200
IDHEP(J)=23
ISTHEP(J)=110
JMOHEP(1,J)=LM
JMOHEP(2,J)=LP
JDAHEP(1,J)=NHEP+2
JDAHEP(2,J)=NHEP+5
DO 100 I=1,4
J=NHEP+1+I
IDHW(J)=IDN(I)
IDHEP(J)=IDPDG(IDN(I))
ISTHEP(J)=IST(I)
JMOHEP(1,J)=NHEP+1
100 JDAHEP(1,J)=0
C And colour structure pointers
DO 110 I=1,4
J=ICO(I)
JMOHEP(2,NHEP+1+I)=NHEP+1+J
110 JDAHEP(2,NHEP+1+J)=NHEP+1+I
NHEP=NHEP+5
999 RETURN
END
CDECK ID>, HWH4J1.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
*- Split in 6 files by M. Kirsanov.
C-----------------------------------------------------------------------
FUNCTION HWH4J1(S12,S13,S14,S23,S24,S34,EP1,EP2,EP3,EP4,ORIENT)
C-----------------------------------------------------------------------
C Evaluate `ERT' functions A, B, C, D, E; S12=(p1+p2)^2 etc.
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWH4J1,
& S12,S13,S14,S23,S24,S34,S123,S124,S134,S234,S,EP1,EP2,EP3,EP4
LOGICAL ORIENT
S123=S12+S13+S23
S124=S12+S14+S24
S134=S13+S14+S34
S234=S23+S24+S34
S=S12+S13+S14+S23+S24+S34
HWH4J1=(S12*((S12+S14+S23+S34)**2+S13*(S12+S14-S24)+S24*(S12+S23))
& +(S14*S23-S12*S34-S13*S24)*(S14+S23+S34)/2)
& /(S13*S24*S134*S234)
& +((S12+S24)*(S13+S34)-S14*S23)/(S13*S134**2)
& +2*S23*(S-S13)/(S13*S134*S24) + S34/(2*S13*S24)
IF (ORIENT) THEN
HWH4J1=HWH4J1
& +4*((EP1*EP1*((S-S13)*(S23+S24)-S24*S34)
& -EP1*EP2*(S12*(S123+S124)+(S+S12)*(S14+S23)+2*S14*S23
& +S24*S134+S234*(S13+2*S234))
& +EP1*EP3*(S*(S24-S12)+S12*S13+(S14+2*S234-S34)*S24)
& -EP1*EP4*(S12*S124+S23*(S+S12+S14))
& +EP2*EP2*((S-S24)*(S13+S14)+2*(S13+S34)*S234-S13*S34)
& -EP2*EP3*((S+S23)*(S12+S14)+(S12+2*(S23+S234))*S234)
& +EP2*EP4*(S12*(S24-S)+S13*(S+S23-S34)+2*(S13+S34-S234)*S234)
& +EP3*EP3*(S14+2*S234)*S24
& +EP3*EP4*(-S234*(2*(S12+S23)+S134)+S12*S34-S13*S24-S14*S23)
& +EP4*EP4*S13*S23)*S134
& +EP2*(EP1+EP3+EP4)*2*S14*S24*S234)/(S*S13*S24*S134**2*S234)
ELSE
HWH4J1=2*HWH4J1/3
ENDIF
END
CDECK ID>, HWH4J2.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWH4J2(S12,S13,S14,S23,S24,S34,EP1,EP2,EP3,EP4,ORIENT)
C-----------------------------------------------------------------------
C Evaluate `ERT' functions A, B, C, D, E; S12=(p1+p2)^2 etc.
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWH4J2,
& S12,S13,S14,S23,S24,S34,S123,S124,S134,S234,S,EP1,EP2,EP3,EP4
LOGICAL ORIENT
S123=S12+S13+S23
S124=S12+S14+S24
S134=S13+S14+S34
S234=S23+S24+S34
S=S12+S13+S14+S23+S24+S34
HWH4J2=(S12*S14*(S24+S34)+S24*(S12*(S14+S34)+S13*(S14-S24)))
& /(S14*S23*S13*S134)
& +S12*(S+S34)*S124/(S24*S234*S14*S134)
& -(S13*(2*(S12+S24)+S23)+S14**2)/(S134*S13*S14)
& +S12*S123*S124/(2*S13*S24*S14*S23)
IF (ORIENT) THEN
HWH4J2=HWH4J2
& +4*((EP1*EP1*(S12*S134*S234-4*S23*S24*S34)
& +EP1*EP2*(2*(2*S13*S234+S14*S123)*S24-S12*S134*(S+S12+S34))
& +EP1*EP3*(S12*(4*S24*S34-S134*(S12+S14-S24))
& -4*(S13*S24-S14*S23)*S24)
& +EP1*EP4*(4*(S13+S14)*S23*S24-S12*S134*(S12+S13-S23))
& +EP2*EP2*(S12*S134-4*S13*S24)*S134
& +EP2*EP3*(4*S13*(S12+S23+S24)*S24-S12*S134*(S12-S14+S24))
& -EP2*EP4*(4*(S12*(S14+S134)+S13*(S134-S234))*S24
& +S12*(S12-S13+S23)*S134)
& -EP3*EP3*4*S12*S14*S24
& -EP3*EP4*2*S12*(2*S14*S24+S12*S134))*S234
& +(EP1*(EP1*(S23+S24)+EP2*(S134-2*S))
& -(EP1+EP2)*(EP3+EP4)*S12+EP2*EP2*(S13+S14))*2*S14*S24*S123)
& /(2*S*S13*S14*S234*S23*S24*S134)
ELSE
HWH4J2=2*HWH4J2/3
ENDIF
END
CDECK ID>, HWH4J4.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWH4J4(S12,S13,S14,S23,S24,S34,EP1,EP2,EP3,EP4,ORIENT)
C-----------------------------------------------------------------------
C Evaluate `ERT' functions A, B, C, D, E; S12=(p1+p2)^2 etc.
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWH4J4,
& S12,S13,S14,S23,S24,S34,S134,S234,S,EP1,EP2,EP3,EP4
LOGICAL ORIENT
S134=S13+S14+S34
S234=S23+S24+S34
S=S12+S13+S14+S23+S24+S34
HWH4J4=-(S12*(S34*(3*(S+S34)+S12)-S134*S234-2*(S13*S24+S14*S23))
& +(S14*S23-S13*S24)*(S13-S14+S24-S23))/(2*S134*S234*S34**2)
& -(S12*(S134**2/2+2*S13*S14+S34*(S13+S14-S34))
& +S34*((S13+S14)*(S23+S24)+S14*S24+S13*S23)
& +(S13*S24-S14*S23)*(S14-S13))/(S34*S134)**2
IF (ORIENT) THEN
HWH4J4=HWH4J4
& +4*((-EP1*EP1*2*(S23+S24)*S34
& -EP1*EP2*(S13*(S23+3*S24)+S14*(3*S23+S24)-(4*S12-S34)*S34)
& +EP1*EP3*((2*S12-S24)*S34-(S13-S14)*S24)
& +EP1*EP4*((2*S12-S23)*S34+(S13-S14)*S23)
& -EP2*EP2*2*(S13+S14)*S34
& +EP2*EP3*(2*S12*S34-S14*(S23-S24+S34))
& +EP2*EP4*(2*S12*S34+S13*(S23-S24-S34))
& +EP3*EP3*2*S14*S24
& +EP3*EP4*2*(S12*S34-S13*S24-S14*S23)
& +EP4*EP4*2*S13*S23)/(S*S134*S234*S34**2)
& +(EP1*EP2*(S134*(S134+2*S34)+4*(S13*S14-S34**2))
& +EP2*EP3*2*(2*S13*S34+S14*(S13-S14+S34))
& +EP2*EP4*2*(2*S14*S34-S13*(S13-S14-S34)))
& /(S*(S134*S34)**2))
ELSE
HWH4J4=2*HWH4J4/3
ENDIF
END
CDECK ID>, HWH4J5.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWH4J5(S12,S13,S14,S23,S24,S34,EP1,EP2,EP3,EP4,ORIENT)
C-----------------------------------------------------------------------
C Evaluate `ERT' functions A, B, C, D, E; S12=(p1+p2)^2 etc.
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWH4J5,
& S12,S13,S14,S23,S24,S34,S134,S234,S,EP1,EP2,EP3,EP4,
& SUM
LOGICAL ORIENT
S134=S13+S14+S34
S234=S23+S24+S34
S=S12+S13+S14+S23+S24+S34
HWH4J5=(3*S12*S34**2-3*S13*S24*S34+3*S12*S24*S34+3*S14*S23*S34-
$ S13*S24**2-S12*S23*S34+6*S12*S14*S34+2*S12*S13*S34-
$ 2*S12**2*S34+S14*S23*S24-3*S13*S23*S24-2*S13*S14*S24+
$ 4*S12*S14*S24+2*S12*S13*S24+3*S14*S23**2+2*S14**2*S23+
$ 2*S14**2*S12+2*S12**2*S14+6*S12*S14*S23-2*S12*S13**2-
$ 2*S12**2*S13)/(2*S13*S134*S234*S34)+
$ (2*S12*S34**2-2*S13*S24*S34+S12*S24*S34+4*S13*S23*S34+
$ 4*S12*S14*S34+2*S12*S13*S34+2*S12**2*S34-S13*S24**2+
$ 3*S14*S23*S24+4*S13*S23*S24-2*S13*S14*S24+4*S12*S14*S24+
$ 2*S12*S13*S24+2*S14*S23**2+4*S13*S23**2+2*S13*S14*S23+
$ 2*S12*S14*S23+4*S12*S13*S23+2*S12*S14**2+4*S12**2*S13+
$ 4*S12*S13*S14+2*S12**2*S14)/(2*S13*S134*S24*S34)-
$ (S12*S34**2-2*S14*S24*S34-2*S13*S24*S34-S14*S23*S34+
$ S13*S23*S34+S12*S14*S34+2*S12*S13*S34-2*S14**2*S24-
$ 4*S13*S14*S24-4*S13**2*S24-S14**2*S23-S13**2*S23+
$ S12*S13*S14-S12*S13**2)/(S13*S34*S134**2)
IF (ORIENT) THEN
SUM=
& +EP1*EP1*((S13-S14+S23-3*S24)*S34+(S134+S14+2*S34)*S234)
& *S24*S134
& +EP1*EP2*((2*(S12-S24)+S34)*S134-S14*(4*S12+S14+3*S23)
& +S13*(S13+S23)+S24*S34 )*S24*S134
& -EP1*EP2*(((2*S12*S134+S13*(2*(S12+S14+S23)-S24+S34)
& +S14*(S14-S23)+(2*S14-S34)*S234)*S234)*S134
& + 4*S13**2*S24*S234)
& +EP1*EP3*(S12*(2*S13-S134)+S13*(S24+2*S234)+S14*(3*S24-S234)
& +S34*(S234-3*S24))*S24*S134
& +EP1*EP4*((S12*(S13-S14+3*S34)-S23*(S13+3*S14-S34))*S24
& -(S12*(S13+S134+2*S34)+2*S13*S24
& +(S13-2*S14)*S23)*S234)*S134
& +EP2*EP2*(S13*((2*S13+S34)*S234+S24*(S134-2*S34))
& +2*S14*S134*(S24+S234))*S134
SUM=SUM
& -EP2*EP3*(((S12*(S13+2*S14-S34)+S14*(S+2*S23-S34))*S24
& +(S12*(S13+S134)+(S13+S24+2*S234)*S14
& +2*S13*(2*S23+S34))*S234)*S134
& +4*S13**2*S24*S234)
& +EP2*EP4*(((S12*(S13-2*S134)+S13*(S+2*S23-3*S34))*S24
& -((S-3*S13+S23+2*S24)*S13+2*S12*S14
& +2*S14*(S23+2*S24))*S234)*S134-4*S13**2*S24*S234)
& +EP3*EP3*2*(S13*S234+S14*S24)*S24*S134
& +EP3*EP4*(2*(S12*S34-S13*S24-S14*S23)*S24
& -(S12*S134+2*S13*S23)*S234)*S134
& +EP4*EP4*2*(S12*S234+S23*S24)*S13*S134
HWH4J5=HWH4J5+4*SUM/(S*S234*S134**2*S13*S34*S24)
ELSE
HWH4J5=2*HWH4J5/3
ENDIF
END
CDECK ID>, HWH4J6.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWH4J6(S12,S13,S14,S23,S24,S34,EP1,EP2,EP3,EP4,ORIENT)
C-----------------------------------------------------------------------
C Evaluate `ERT' functions A, B, C, D, E; S12=(p1+p2)^2 etc.
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWH4J6,
& S12,S13,S14,S23,S24,S34,S123,S124,S134,S234,S,EP1,EP2,EP3,EP4
LOGICAL ORIENT
S123=S12+S13+S23
S124=S12+S14+S24
S134=S13+S14+S34
S234=S23+S24+S34
S=S12+S13+S14+S23+S24+S34
HWH4J6=(S23*(S123*S234-S*S23)+S12*(S123*S124-S*S12))/(S13*S123)**2
& -(S12*S34*(S234-2*S23)+S14*S23*(S234-2*S34)
& -S13*S24*(S234+S13))/(S13**2*S123*S134)
IF (ORIENT) THEN
HWH4J6=HWH4J6
& +4*(-EP1*EP1*2*S23*S34
& +EP1*EP2*((S12-S23)*S34-S13*(S24-S34))
& +(EP1*EP3+EP2*EP4)*2*(S12*S34-S13*S24+S14*S23)
& -EP1*EP4*(S13*S24-(3*(S13+S14)+S34)*S23)
& -(EP1+EP2+EP3)*EP4*2
& *(S12*(S13+S23)+(S12+S13)*S23)*S134/S123
& +EP2*EP2*S13*(S14+S34)
& +EP2*EP3*(S13*(S14-S24)-(S12-S23)*S14)
& -EP3*EP3*2*S12*S14
& -EP3*EP4*(S13*S24-(3*(S13+S34)+S14)*S12)
& +EP4*EP4*(S12+S23)*S13)/(S*S134*S123*S13**2)
ELSE
HWH4J6=2*HWH4J6/3
ENDIF
END
CDECK ID>, HWH4J7.
*CMZ :- -01/04/99 19.47.55 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWH4J7(S12,S13,S14,S23,S24,S34,EP1,EP2,EP3,EP4,ORIENT)
C-----------------------------------------------------------------------
C Evaluate `ERT' functions A, B, C, D, E; S12=(p1+p2)^2 etc.
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWH4J7,
& S12,S13,S14,S23,S24,S34,S123,S124,S134,S234,S,EP1,EP2,EP3,EP4
LOGICAL ORIENT
S123=S12+S13+S23
S124=S12+S14+S24
S134=S13+S14+S34
S234=S23+S24+S34
S=S12+S13+S14+S23+S24+S34
HWH4J7=((S12*S34+S13*S24-S14*S23)*(S13+S14+S23+S24)-2*S12*S24*S34)
& /(S13*S134*S23*S123)
& -S12*(S12*S-S123*S124)/(S123**2*S13*S23)
& -(S13+S14)*(S23+S24)*S34/(S13*S134*S23*S234)
IF (ORIENT) THEN
HWH4J7=HWH4J7
& +4*(+2*(EP1+EP2)*(S23*EP1-S13*EP2)*S34*S134
& -EP1*EP2*2*S34**2*S123
& +EP1*EP3*(S123*(S23+S24)*S34+2*S134*(S13*S24-S14*S23))
& +EP1*EP4*(S123*(S23+S24)*S34+2*S12**2*S134*S234/S123
& +2*S134*(S24*(S13-S12)-S23*(S12+S14)))
& +EP2*EP3*(2*(S12*S34+S13*S24-S14*S23)*S134
& +S123*(S13+S14)*S34)
& +EP2*EP4*(S123*(S13+S14)*S34+2*S12**2*S234*S134/S123
& -2*S134*(S12*S234-S13*S24+S14*S23))
& -EP3*EP3*S12*(2*S24*S134+S123*S34)
& +EP3*EP4*2*S12*(S134*(S23-S24)-S34*S123+S12*S134*S234/S123)
& +EP4*EP4*S12*(2*S23*S134-S123*S34))
& /(S*S13*S23*S123*S134*S234)
ELSE
HWH4J7=2*HWH4J7/3
ENDIF
END
CDECK ID>, HWHBGF.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Giovanni Abbiendi & Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWHBGF
C-----------------------------------------------------------------------
C Order Alpha_s processes in charged lepton-hadron collisions
C
C Process code IPROC has to be set in the Main Program
C the following codes IPROC may be selected
C
C 9100 : NC BOSON-GLUON FUSION
C 9100+IQK (IQK=1,...,6) : produced flavour is IQK
C 9107 : produced J/psi + gluon
C
C 9110 : NC QCD COMPTON
C 9110+IQK (IQK=1,...,12) : struck parton is IQK
C
C 9130 : NC order alpha_s processes (9100+9110)
C
C Select maximum and minimum generated flavour when IQK=0
C setting IFLMIN and IFLMAX in the Main Program
C (allowed values from 1 to 6), default are 1 and 5
C allowing d,u,s,c,b,dbar,ubar,sbar,cbar,bbar
C
C CHARGED CURRENT Boson-Gluon Fusion processes
C 9141 : CC s cbar (c sbar)
C 9142 : CC b cbar (c bbar)
C 9143 : CC s tbar (t cbar)
C 9144 : CC b tbar (t bbar)
C
C other inputs : Q2MIN,Q2MAX,YBMIN,YBMAX,PTMIN,EMMIN,EMMAX
C when IPROC=(1)9107 : as above but Q2WWMN, Q2WWMX substitute
C Q2MIN and Q2MAX (EPA is used); ZJMAX cut
C
C Add 10000 to suppress soft remnant fragmentation
C
C Mean EVWGT = cross section in nanoBarn
C
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,
& ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,RSHAT,FSIGMA(18),
& SIGSUM,PROB,PRAN,PVRT(4),X
INTEGER LEP
INTEGER IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,IPROO,LEPFIN,ID1,ID2,I,IDD
LOGICAL CHARGD,INCLUD(18),INSIDE(18),IFGO
EXTERNAL HWRGEN
SAVE LEPFIN,ID1,ID2,FSIGMA,SIGSUM
COMMON /HWAREA/ Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
& MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,LEP,
& IPROO,CHARGD,INCLUD,INSIDE
C---Initialization
IF (FSTWGT) THEN
C---LEP = 1 FOR LEPTONS, -1 FOR ANTILEPTONS
LEP=0
IF (IDHW(1).GE.121.AND.IDHW(1).LE.126) THEN
LEP=1
ELSEIF (IDHW(1).GE.127.AND.IDHW(1).LE.132) THEN
LEP=-1
ENDIF
IF (LEP.EQ.0) CALL HWWARN('HWHBGF',500)
IPROO=MOD(IPROC,100)/10
IF (IPROO.EQ.0.OR.IPROO.EQ.4) THEN
IQK=MOD(IPROC,10)
IFL=IQK
IF (IQK.EQ.7) IFL=164
CHARGD=IPROO.EQ.4
ELSEIF (IPROO.EQ.1.OR.IPROO.EQ.2) THEN
IQK=MOD(IPROC,100)-10
IFL=IQK+6
CHARGD=.FALSE.
ELSEIF (IPROO.EQ.3) THEN
IQK=0
IFL=0
CHARGD=.FALSE.
ELSE
CALL HWWARN('HWHBGF',501)
ENDIF
C
LEPFIN = IDHW(1)
IF(CHARGD) THEN
LEPFIN = IDHW(1)+1
IF (IQK.EQ.1) THEN
IFLAVU=4
IFLAVD=3
ID1 = 3
ID2 = 10
ELSEIF (IQK.EQ.2) THEN
IFLAVU=4
IFLAVD=5
ID1 = 5
ID2 = 10
ELSEIF (IQK.EQ.3) THEN
IFLAVU=6
IFLAVD=3
ID1 = 3
ID2 =12
ELSE
IFLAVU=6
IFLAVD=5
ID1 = 5
ID2 =12
ENDIF
IF (LEP.EQ.-1) THEN
IDD=ID1
ID1=ID2-6
ID2=IDD+6
ENDIF
ENDIF
C
IF (IQK.EQ.0) THEN
DO I=1,18
INCLUD(I)=.TRUE.
ENDDO
IMIN=1
IMAX=18
DO I=1,6
IF (I.LT.IFLMIN.OR.I.GT.IFLMAX) INCLUD(I)=.FALSE.
ENDDO
DO I=7,18
IF (I.LE.12) THEN
IF (I-6.LT.IFLMIN.OR.I-6.GT.IFLMAX) INCLUD(I)=.FALSE.
ELSE
IF (I-12.LT.IFLMIN.OR.I-12.GT.IFLMAX) INCLUD(I)=.FALSE.
ENDIF
ENDDO
IF (IPROO.EQ.0) THEN
DO I=7,18
INCLUD(I)=.FALSE.
ENDDO
IMIN=IFLMIN
IMAX=IFLMAX
ELSEIF (IPROO.EQ.1.OR.IPROO.EQ.2) THEN
DO I=1,6
INCLUD(I)=.FALSE.
ENDDO
IMIN=IFLMIN+6
IMAX=IFLMAX+12
ELSEIF (IPROO.EQ.3) THEN
IMIN=IFLMIN
IMAX=IFLMAX+12
ENDIF
ELSEIF (IQK.NE.0 .AND. (.NOT.CHARGD)) THEN
DO I=1,18
INCLUD(I)=.FALSE.
ENDDO
IF (IFL.LE.18) THEN
INCLUD(IFL)=.TRUE.
IMIN=IFL
IMAX=IFL
ELSEIF (IFL.EQ.164) THEN
INCLUD(7)=.TRUE.
IMIN=7
IMAX=7
ENDIF
ENDIF
ENDIF
C---End of initialization
IF(GENEV) THEN
IF (.NOT.CHARGD) THEN
IF (IQK.EQ.0) THEN
PRAN= SIGSUM * HWRGEN(0)
PROB=ZERO
DO 10 IFL=IMIN,IMAX
IF (.NOT.INSIDE(IFL)) GOTO 10
PROB=PROB+FSIGMA(IFL)
IF (PROB.GE.PRAN) GOTO 20
10 CONTINUE
ENDIF
C---at this point the subprocess has been selected (IFL)
20 CONTINUE
IF (IFL.LE.6) THEN
C---Boson-Gluon Fusion event
IDHW(NHEP+1)=IDHW(1)
IDHW(NHEP+2)=13
IDHW(NHEP+3)=15
IDHW(NHEP+4)=LEPFIN
IDHW(NHEP+5)=IFL
IDHW(NHEP+6)=IFL+6
ELSEIF (IFL.GE.7.AND.IFL.LE.18) THEN
C---QCD_Compton event
IDHW(NHEP+1)=IDHW(1)
IDHW(NHEP+2)=IFL-6
IDHW(NHEP+3)=15
IDHW(NHEP+4)=LEPFIN
IDHW(NHEP+5)=IFL-6
IDHW(NHEP+6)=13
ELSEIF (IFL.EQ.164) THEN
C---gamma+gluon-->J/Psi+gluon
IDHW(NHEP+1)=IDHW(1)
IDHW(NHEP+2)=13
IDHW(NHEP+3)=15
IDHW(NHEP+4)=LEPFIN
IDHW(NHEP+5)=164
IDHW(NHEP+6)=13
ELSE
CALL HWWARN('HWHBGF',503)
ENDIF
ELSE
C---Charged current event of specified flavours
IDHW(NHEP+1)=IDHW(1)
IDHW(NHEP+2)=13
IDHW(NHEP+3)=15
IDHW(NHEP+4)=LEPFIN
IDHW(NHEP+5)=ID1
IDHW(NHEP+6)=ID2
ENDIF
C
DO 1 I=NHEP+1,NHEP+6
1 IDHEP(I)=IDPDG(IDHW(I))
C
C---Codes common for all processes
ISTHEP(NHEP+1)=111
ISTHEP(NHEP+2)=112
ISTHEP(NHEP+3)=110
ISTHEP(NHEP+4)=113
ISTHEP(NHEP+5)=114
ISTHEP(NHEP+6)=114
C
DO I=NHEP+1,NHEP+6
JMOHEP(1,I)=NHEP+3
JDAHEP(1,I)=0
ENDDO
C---Incoming lepton
JMOHEP(2,NHEP+1)=NHEP+4
JDAHEP(2,NHEP+1)=NHEP+4
C---Hard Process C.M.
JMOHEP(1,NHEP+3)=NHEP+1
JMOHEP(2,NHEP+3)=NHEP+2
JDAHEP(1,NHEP+3)=NHEP+4
JDAHEP(2,NHEP+3)=NHEP+6
C---Outgoing lepton
JMOHEP(2,NHEP+4)=NHEP+1
JDAHEP(2,NHEP+4)=NHEP+1
C
IF (IFL.LE.6 .OR. CHARGD) THEN
C---Codes for boson-gluon fusion processes
C--- Incoming gluon
JMOHEP(2,NHEP+2)=NHEP+6
JDAHEP(2,NHEP+2)=NHEP+5
C--- Outgoing quark
JMOHEP(2,NHEP+5)=NHEP+2
JDAHEP(2,NHEP+5)=NHEP+6
C--- Outgoing antiquark
JMOHEP(2,NHEP+6)=NHEP+5
JDAHEP(2,NHEP+6)=NHEP+2
ELSEIF (IFL.GE.7 .AND. IFL.LE.12) THEN
C---Codes for V+q --> q+g
C--- Incoming quark
JMOHEP(2,NHEP+2)=NHEP+5
JDAHEP(2,NHEP+2)=NHEP+6
C--- Outgoing quark
JMOHEP(2,NHEP+5)=NHEP+6
JDAHEP(2,NHEP+5)=NHEP+2
C--- Outgoing gluon
JMOHEP(2,NHEP+6)=NHEP+2
JDAHEP(2,NHEP+6)=NHEP+5
ELSEIF (IFL.GE.13 .AND. IFL.LE.18) THEN
C---Codes for V+qbar --> qbar+g
C--- Incoming antiquark
JMOHEP(2,NHEP+2)=NHEP+6
JDAHEP(2,NHEP+2)=NHEP+5
C--- Outgoing antiquark
JMOHEP(2,NHEP+5)=NHEP+2
JDAHEP(2,NHEP+5)=NHEP+6
C--- Outgoing gluon
JMOHEP(2,NHEP+6)=NHEP+5
JDAHEP(2,NHEP+6)=NHEP+2
ELSEIF (IFL.EQ.164) THEN
C---Codes for Gamma+gluon --> J/Psi+gluon
C--- Incoming gluon
JMOHEP(2,NHEP+2)=NHEP+6
JDAHEP(2,NHEP+2)=NHEP+6
C--- Outgoing J/Psi
JMOHEP(2,NHEP+5)=NHEP+1
JDAHEP(2,NHEP+5)=NHEP+1
C--- Outgoing gluon
JMOHEP(2,NHEP+6)=NHEP+2
JDAHEP(2,NHEP+6)=NHEP+2
ENDIF
C---Computation of momenta in Laboratory frame of reference
CALL HWHBKI
NHEP=NHEP+6
C Decide which quark radiated and assign production vertices
IF (IFL.LE.6) THEN
C Boson-Gluon fusion case
IF (1-Z.LT.HWRGEN(0)) THEN
C Gluon splitting to quark
CALL HWVZRO(4,VHEP(1,NHEP-1))
CALL HWVDIF(4,PHEP(1,NHEP-4),PHEP(1,NHEP),PVRT)
CALL HWUDKL(IFL,PVRT,VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-4))
ELSE
C Gluon splitting to antiquark
CALL HWVZRO(4,VHEP(1,NHEP))
CALL HWVDIF(4,PHEP(1,NHEP-4),PHEP(1,NHEP-1),PVRT)
CALL HWUDKL(IFL,PVRT,VHEP(1,NHEP-1))
CALL HWVEQU(4,VHEP(1,NHEP-1),VHEP(1,NHEP-4))
ENDIF
ELSEIF (IFL.GE.7.AND.IFL.LE.18) THEN
C QCD Compton case
X=1/(1+SHAT/Q2)
IF (1.LT.HWRGEN(0)*(1+(1-X-Z)**2+6*X*(1-X)*Z*(1-Z))) THEN
C Incoming quark radiated the gluon
CALL HWVZRO(4,VHEP(1,NHEP-1))
CALL HWVDIF(4,PHEP(1,NHEP-4),PHEP(1,NHEP),PVRT)
CALL HWUDKL(IFL-6,PVRT,VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-4))
ELSE
C Outgoing quark radiated the gluon
CALL HWVZRO(4,VHEP(1,NHEP-4))
CALL HWVSUM(4,PHEP(1,NHEP-1),PHEP(1,NHEP),PVRT)
CALL HWUDKL(IFL-6,PVRT,VHEP(1,NHEP))
CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-1))
ENDIF
ENDIF
C---HERWIG gets confused if lepton momentum is different from beam
C momentum, which it can be if incoming hadron has negative virtuality
C As a temporary fix, simply copy the momentum.
C Momentum conservation somehow gets taken care of HWBGEN!
call hwvequ(5,phep(1,1),phep(1,nhep-5))
ELSE
EVWGT=ZERO
C---generation of the 5 variables Y,Q2,SHAT,Z,PHI and Jacobian computation
C---in the largest phase space avalaible for selected processes and
C---filling of logical vector INSIDE to tag contributing ones
CALL HWHBRN (IFGO)
IF(IFGO) GOTO 999
C---calculate differential cross section corresponding to the chosen
C---variables and the weight for MC generation
IF (IQK.EQ.0) THEN
C---many subprocesses included
DO I=1,18
FSIGMA(I)=ZERO
ENDDO
SIGSUM=ZERO
DO I=IMIN,IMAX
IF (INSIDE(I)) THEN
IFL=I
DSIGMA=ZERO
CALL HWHBSG
FSIGMA(I)=DSIGMA
SIGSUM=SIGSUM+DSIGMA
ENDIF
ENDDO
EVWGT=SIGSUM * AJACOB
ELSE
C---only one subprocess included
CALL HWHBSG
EVWGT= DSIGMA * AJACOB
ENDIF
IF (EVWGT.LT.ZERO) EVWGT=ZERO
ENDIF
999 RETURN
END
CDECK ID>, HWHBKI.
*CMZ :- -26/04/91 13.19.32 by Federico Carminati
*-- Author : Giovanni Abbiendi & Luca Stanco
C----------------------------------------------------------------------
SUBROUTINE HWHBKI
C----------------------------------------------------------------------
C gives the fourmomenta in the laboratory system for the particles
C of the hard 2-->3 subprocess, to match with HERWIG routines of
C jet evolution.
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUECM,HWUPCM,HWUSQR,Y,Q2,SHAT,Z,PHI,AJACOB,
& DSIGMA,ME,MP,ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,RSHAT,
& PGAMMA(5),SG,MF1,MF2,EP,PP,EL,PL,E1,E2,Q1,COSBET,SINBET,COSTHE,
& SINTHE,SINAZI,COSAZI,ROTAZI(3,3),EGAM,A,PPROT,MREMIN,PGAM,PEP(5),
& COSPHI,SINPHI,ROT(3,3),EPROT,PROTON(5),MPART
INTEGER IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,IPROO,I,IHAD,J,IS,ICMF,LEP
LOGICAL CHARGD,INCLUD(18),INSIDE(18)
EXTERNAL HWUECM,HWUPCM,HWUSQR
COMMON /HWAREA/ Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
& MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,LEP,
& IPROO,CHARGD,INCLUD,INSIDE
C
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
C---Set masses
IF (CHARGD) THEN
MPART=ZERO
MF1=RMASS(IDHW(NHEP+5))
MF2=RMASS(IDHW(NHEP+6))
MREMIN=MP
ELSE
IS = IFL
IF (IFL.EQ.164) IS=IQK
MPART=ZERO
IF (IFL.GE.7.AND.IFL.LE.18) MPART=RMASS(IFL-6)
MF1=MFIN1(IS)
MF2=MFIN2(IS)
MREMIN = MREMIF(IS)
ENDIF
C---Calculation of kinematical variables for the generated event
C in the center of mass frame of the incoming boson and parton
C with parton along +z
EGAM = HWUECM (SHAT, -Q2, MPART**2)
PGAM = SQRT( EGAM**2 + Q2 )
EP = RSHAT-EGAM
PP = PGAM
A = (W2+Q2-MP**2)/TWO
PPROT = (A*PGAM-EGAM*SQRT(A**2+MP**2*Q2))/Q2
IF (PPROT.LT.ZERO) THEN
CALL HWWARN('HWHBKI',101)
GOTO 999
ENDIF
EPROT = SQRT(PPROT**2+MP**2)
IF ((EPROT+PPROT).LT.(EP+PP)) THEN
CALL HWWARN('HWHBKI',102)
GOTO 999
ENDIF
EL = ( PGAM / PPROT * SMA - Q2 ) / TWO
+ / (EGAM + PGAM / PPROT * EPROT)
IF (EL.GT.ME) THEN
PL = SQRT ( EL**2 - ME**2 )
ELSE
CALL HWWARN ('HWHBKI',103)
GOTO 999
ENDIF
COSBET = (TWO * EPROT * EL - SMA) / (TWO * PPROT * PL)
IF ( ABS(COSBET) .GE. ONE ) THEN
COSBET = SIGN (ONE,COSBET)
SINBET = ZERO
ELSE
SINBET = SQRT (ONE - COSBET**2)
ENDIF
SG = ME**2 + MPART**2 + Q2 + TWO * RSHAT * EL
IF (SG.LE.(RSHAT+ML)**2 .OR. SG.GE.(RS-MREMIN)**2) THEN
CALL HWWARN ('HWHBKI',104)
GOTO 999
ENDIF
Q1 = HWUPCM( RSHAT, MF1, MF2)
E1 = SQRT(Q1**2+MF1**2)
E2 = SQRT(Q1**2+MF2**2)
IF (Q1 .GT. ZERO) THEN
COSTHE=(TWO*EP*E1 - Z*(SHAT+Q2))/(TWO*PP*Q1)
IF (ABS(COSTHE) .GT. ONE) THEN
COSTHE=SIGN(ONE,COSTHE)
SINTHE=ZERO
ELSE
SINTHE=SQRT(ONE-COSTHE**2)
ENDIF
ELSE
COSTHE=ZERO
SINTHE=ONE
ENDIF
C---Initial lepton
PHEP(1,NHEP+1)=PL*SINBET
PHEP(2,NHEP+1)=ZERO
PHEP(3,NHEP+1)=PL*COSBET
PHEP(4,NHEP+1)=EL
PHEP(5,NHEP+1)=RMASS(IDHW(1))
C---Initial Hadron
PROTON(1)=ZERO
PROTON(2)=ZERO
PROTON(3)=PPROT
PROTON(4)=EPROT
CALL HWUMAS (PROTON)
C---Initial parton
PHEP(1,NHEP+2)=ZERO
PHEP(2,NHEP+2)=ZERO
PHEP(3,NHEP+2)=PP
PHEP(4,NHEP+2)=EP
PHEP(5,NHEP+2)=MPART
C---HARD SUBPROCESS 2-->3 CENTRE OF MASS
PHEP(1,NHEP+3)=PHEP(1,NHEP+1)+PHEP(1,NHEP+2)
PHEP(2,NHEP+3)=PHEP(2,NHEP+1)+PHEP(2,NHEP+2)
PHEP(3,NHEP+3)=PHEP(3,NHEP+1)+PHEP(3,NHEP+2)
PHEP(4,NHEP+3)=PHEP(4,NHEP+1)+PHEP(4,NHEP+2)
CALL HWUMAS ( PHEP(1,NHEP+3) )
C---Virtual boson
PGAMMA(1)=ZERO
PGAMMA(2)=ZERO
PGAMMA(3)=-PGAM
PGAMMA(4)=EGAM
PGAMMA(5)=HWUSQR(Q2)
C---Scattered lepton
PHEP(1,NHEP+4)=PHEP(1,NHEP+1)-PGAMMA(1)
PHEP(2,NHEP+4)=PHEP(2,NHEP+1)-PGAMMA(2)
PHEP(3,NHEP+4)=PHEP(3,NHEP+1)-PGAMMA(3)
PHEP(4,NHEP+4)=PHEP(4,NHEP+1)-PGAMMA(4)
PHEP(5,NHEP+4)=RMASS(IDHW(1))
IF (CHARGD) PHEP(5,NHEP+4)=ZERO
C---First Final parton: quark (or J/psi) in Boson-Gluon Fusion
C--- quark or antiquark in QCD Compton
PHEP(1,NHEP+5)=Q1*SINTHE*COS(PHI)
PHEP(2,NHEP+5)=Q1*SINTHE*SIN(PHI)
PHEP(3,NHEP+5)=Q1*COSTHE
PHEP(4,NHEP+5)=E1
PHEP(5,NHEP+5)=MF1
C---Second Final parton: antiquark in Boson-Gluon Fusion
C--- gluon in QCD Compton
PHEP(1,NHEP+6)=-PHEP(1,NHEP+5)
PHEP(2,NHEP+6)=-PHEP(2,NHEP+5)
PHEP(3,NHEP+6)=-PHEP(3,NHEP+5)
PHEP(4,NHEP+6)=E2
PHEP(5,NHEP+6)=MF2
C---Boost to lepton-hadron CM frame
PEP(1) = PHEP(1,NHEP+1)
PEP(2) = PHEP(2,NHEP+1)
PEP(3) = PHEP(3,NHEP+1) + PPROT
PEP(4) = PHEP(4,NHEP+1) + EPROT
CALL HWUMAS (PEP)
DO I=1,6
CALL HWULOF (PEP,PHEP(1,NHEP+I),PHEP(1,NHEP+I))
ENDDO
CALL HWULOF (PEP,PROTON,PROTON)
CALL HWULOF (PEP,PGAMMA,PGAMMA)
C---Rotation around y-axis to align lepton beam with z-axis
COSPHI = PHEP(3,NHEP+1) /
& SQRT( PHEP(1,NHEP+1)**2 + PHEP(3,NHEP+1)**2 )
SINPHI = PHEP(1,NHEP+1) /
& SQRT( PHEP(1,NHEP+1)**2 + PHEP(3,NHEP+1)**2 )
DO I=1,3
DO J=1,3
ROT(I,J)=ZERO
ENDDO
ENDDO
ROT(1,1) = COSPHI
ROT(1,3) = -SINPHI
ROT(2,2) = ONE
ROT(3,1) = SINPHI
ROT(3,3) = COSPHI
DO I=1,6
CALL HWUROF (ROT,PHEP(1,NHEP+I),PHEP(1,NHEP+I))
ENDDO
CALL HWUROF (ROT,PROTON,PROTON)
CALL HWUROF (ROT,PGAMMA,PGAMMA)
C---Boost to the LAB frame
ICMF=3
DO I=1,6
CALL HWULOB (PHEP(1,ICMF),PHEP(1,NHEP+I),PHEP(1,NHEP+I))
ENDDO
CALL HWULOB (PHEP(1,ICMF),PROTON,PROTON)
CALL HWULOB (PHEP(1,ICMF),PGAMMA,PGAMMA)
C---Random azimuthal rotation
CALL HWRAZM (ONE,COSAZI,SINAZI)
DO I=1,3
DO J=1,3
ROTAZI(I,J)=ZERO
ENDDO
ENDDO
ROTAZI(1,1) = COSAZI
ROTAZI(1,2) = SINAZI
ROTAZI(2,1) = -SINAZI
ROTAZI(2,2) = COSAZI
ROTAZI(3,3) = ONE
DO I=1,6
CALL HWUROF (ROTAZI,PHEP(1,NHEP+I),PHEP(1,NHEP+I))
ENDDO
CALL HWUROF (ROTAZI,PROTON,PROTON)
CALL HWUROF (ROTAZI,PGAMMA,PGAMMA)
999 RETURN
END
CDECK ID>, HWHBRN.
*CMZ :- -03/07/95 19.02.12 by Giovanni Abbiendi
*-- Author : Giovanni Abbiendi & Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWHBRN (IFGO)
C----------------------------------------------------------------------
C Returns a point in the phase space (Y,Q2,SHAT,Z,PHI) and the
C corresponding Jacobian factor AJACOB
C Fill the logical vector INSIDE to tag contributing subprocesses
C to the cross-section
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
LOGICAL IFGO
DOUBLE PRECISION HWRUNI,HWRGEN,HWUPCM,Y,Q2,SHAT,Z,PHI,AJACOB,
& DSIGMA,ME,MP,ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,RSHAT,
& MF1,MF2,YMIN,YMAX,YJAC,Q2INF,Q2SUP,Q2JAC,EMW2,ZMIN,ZMAX,ZJAC,
& GAMMA2,LAMBDA,PHIJAC,ZINT,ZLMIN,ZL,EMW,TMIN,TMAX,EMLMIN,EMLMAX,
& SHMIN,EMMIF(18),EMMAF(18),WMIF(18),WMIN,MREMIN,YMIF(18),Q1CM(18),
& Q2MAF(18),EMMAWF(18),ZMIF(18),ZMAF(18),PLMAX,PINC,SHINF,SHSUP,
& SHJAC,CTHLIM,Q1,DETDSH,SRY,SRY0,SRY1
INTEGER LEP
INTEGER IQK,IFLAVU,IFLAVD,I,IMIN,IMAX,IFL,IPROO,IHAD,NTRY,DEBUG
LOGICAL CHARGD,INCLUD(18),INSIDE(18)
EXTERNAL HWRUNI,HWRGEN,HWUPCM
SAVE EMLMIN,EMLMAX,EMMIF,EMMAF,MREMIN,MF1,MF2,YMIF,
& YMIN,YMAX,WMIN,WMIF
COMMON /HWAREA/ Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
& MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,LEP,
& IPROO,CHARGD,INCLUD,INSIDE
EQUIVALENCE (EMW,RMASS(198))
C
IFGO = .FALSE.
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
C---Initialization
IF (FSTWGT.OR.IHAD.NE.2) THEN
ME = RMASS(IDHW(1))
MP = RMASS(IDHW(IHAD))
RS = PHEP(5,3)
SMA = RS**2-ME**2-MP**2
PINC = HWUPCM(RS,ME,MP)
C---Charged current
IF (CHARGD) THEN
ML=RMASS(IDHW(1)+1)
YMAX = ONE - TWO*ML*MP / SMA
YMAX = MIN(YMAX,YBMAX)
MREMIN=MP
IF (LEP.EQ.1) THEN
MF1=RMASS(IFLAVD)
MF2=RMASS(IFLAVU)
ELSE
MF1=RMASS(IFLAVU)
MF2=RMASS(IFLAVD)
ENDIF
SHMIN = MF1**2+MF2**2 + TWO * PTMIN**2 +
+ TWO * SQRT(PTMIN**2+MF1**2) * SQRT(PTMIN**2+MF2**2)
EMLMIN=MAX(EMMIN,SQRT(SHMIN))
EMLMAX=MIN(EMMAX,RS-ML-MREMIN)
DEBUG=1
IF (EMLMIN.GT.EMLMAX) GOTO 888
WMIN=EMLMIN+MREMIN
PLMAX=HWUPCM(RS,ML,WMIN)
YMIN = ONE-TWO*(SQRT(PINC**2+MP**2)*SQRT(PLMAX**2+ML**2)+
+ PINC*PLMAX)/SMA
YMIN = MAX(YMIN,YBMIN)
DEBUG=2
IF (YMIN.GT.YMAX) GOTO 888
ELSE
C---Neutral current
ML = ME
YMAX = ONE - TWO*ML*MP / SMA
YMAX = MIN(YMAX,YBMAX)
DO I=1,18
YMIF(I)=ZERO
EMMIF(I)=ZERO
EMMAF(I)=ZERO
WMIF(I)=ZERO
IF (I.LE.8) THEN
C---Boson-Gluon Fusion (also J/Psi) and QCD Compton with struck u or d
MREMIF(I)=MP
IF (I.LE.6) THEN
MFIN1(I)=RMASS(I)
MFIN2(I)=RMASS(I+6)
ELSE
MFIN1(I)=RMASS(I-6)
MFIN2(I)=ZERO
ENDIF
ELSE
C---QCD Compton with struck non-valence parton
MREMIF(I)=MP+RMASS(I-6)
MFIN1(I)=RMASS(I-6)
MFIN2(I)=ZERO
ENDIF
ENDDO
IF (IFL.EQ.164) THEN
C---J/Psi
MFIN1(7)=RMASS(164)
MFIN2(7)=ZERO
ENDIF
C---y boundaries for different flavours and processes
DO 100 I=IMIN,IMAX
IF (INCLUD(I)) THEN
MF1=MFIN1(I)
MF2=MFIN2(I)
MREMIN=MREMIF(I)
SHMIN = MF1**2+MF2**2 + TWO * PTMIN**2 +
+ TWO * SQRT(PTMIN**2+MF1**2) * SQRT(PTMIN**2+MF2**2)
EMMIF(I) = MAX(EMMIN,SQRT(SHMIN))
EMMAF(I) = MIN(EMMAX,RS-ML-MREMIN)
IF (EMMIF(I).GT.EMMAF(I)) THEN
INCLUD(I)=.FALSE.
CALL HWWARN('HWHBRN',3)
GOTO 100
ENDIF
WMIF(I) = EMMIF(I)+MREMIF(I)
WMIN = WMIF(I)
PLMAX = HWUPCM(RS,ML,WMIN)
YMIF(I)=ONE-TWO*(SQRT(PINC**2+MP**2)*SQRT(PLMAX**2+ML**2)+
+ PINC*PLMAX)/SMA
IF (YMIF(I).GT.YMAX) THEN
INCLUD(I)=.FALSE.
CALL HWWARN('HWHBRN',4)
GOTO 100
ENDIF
ENDIF
100 CONTINUE
C---considering the largest boundaries
EMLMIN=EMMIF(IMIN)
EMLMAX=EMMAF(IMIN)
IF (IPROO.EQ.3) THEN
EMLMIN=MIN(EMMIF(IMIN),EMMIF(IMIN+6))
EMLMAX=MAX(EMMAF(IMIN),EMMAF(IMIN+6))
ENDIF
DEBUG=3
IF (EMLMIN.GT.EMLMAX) GOTO 888
YMIN=YMIF(IMIN)
IF (IPROO.EQ.3) YMIN=MIN(YMIF(IMIN),YMIF(IMIN+6))
YMIN = MAX(YMIN,YBMIN)
DEBUG=4
IF (YMIN.GT.YMAX) GOTO 888
WMIN = WMIF(IMIN)
MREMIN = MREMIF(IMIN)
MF1=MFIN1(IMIN)
MF2=MFIN2(IMIN)
IF (IPROO.EQ.3) THEN
WMIN = MIN(WMIF(IMIN),WMIF(IMIN+6))
MREMIN = MIN(MREMIF(IMIN),MREMIF(IMIN+6))
ENDIF
ENDIF
ENDIF
C---Random generation in largest phase space
Y=ZERO
Q2=ZERO
SHAT=ZERO
Z=ZERO
PHI=ZERO
AJACOB=ZERO
C---y generation
IF (.NOT.CHARGD) THEN
IF (IFL.LE.5.OR.(IFL.GE.7.AND.IFL.LE.18)) THEN
SRY0 = SQRT(YMIN)
SRY1 = SQRT(YMAX)
SRY = HWRUNI(0,SRY0,SRY1)
Y = SRY**2
YJAC = TWO*SRY*(SRY1-SRY0)
ELSEIF (IFL.EQ.6) THEN
Y = SQRT(HWRUNI(0,YMIN**2,YMAX**2))
YJAC = HALF * (YMAX**2-YMIN**2) / Y
ELSEIF (IFL.EQ.164) THEN
C---in J/psi photoproduction Y and Q2 are given by the Equivalent Photon
C Approximation
10 NTRY=0
20 NTRY=NTRY+1
IF (NTRY.GT.NETRY) THEN
CALL HWWARN('HWHBRN',50)
GOTO 10
ENDIF
Y = (YMIN/YMAX)**HWRGEN(1)*YMAX
IF (ONE+(ONE-Y)**2.LT.TWO*HWRGEN(2)) GOTO 20
YJAC=(TWO*LOG(YMAX/YMIN)-TWO*(YMAX-YMIN)
& +HALF*(YMAX**2-YMIN**2))
ENDIF
ELSE
IF (IPRO.EQ.5) THEN
Y = EXP(HWRUNI(0,LOG(YMIN),LOG(YMAX)))
YJAC = Y * LOG(YMAX/YMIN)
ELSE
Y = HWRUNI(0,YMIN,YMAX)
YJAC = YMAX - YMIN
ENDIF
ENDIF
C---Q**2 generation
Q2INF = ME**2*Y**2 / (ONE-Y)
Q2SUP = MP**2 + SMA*Y - WMIN**2
IF (IFL.EQ.164) THEN
Q2INF = MAX(Q2INF,Q2WWMN)
Q2SUP = MIN(Q2SUP,Q2WWMX)
ELSE
Q2INF = MAX(Q2INF,Q2MIN)
Q2SUP = MIN(Q2SUP,Q2MAX)
ENDIF
DEBUG=5
IF (Q2INF .GT. Q2SUP) GOTO 888
C
IF (.NOT.CHARGD) THEN
IF (IFL.EQ.164) THEN
Q2 = EXP(HWRUNI(0,LOG(Q2INF),LOG(Q2SUP)))
Q2JAC = LOG(Q2SUP/Q2INF)
ELSEIF (Q2INF.LT.RMASS(4)**2) THEN
Q2 = EXP(HWRUNI(0,LOG(Q2INF),LOG(Q2SUP)))
Q2JAC = Q2 * LOG(Q2SUP/Q2INF)
ELSE
Q2 = Q2INF*Q2SUP/HWRUNI(0,Q2INF,Q2SUP)
Q2JAC = Q2**2 * (Q2SUP-Q2INF)/(Q2SUP*Q2INF)
ENDIF
ELSE
EMW2=EMW**2
Q2=(Q2INF+EMW2)*(Q2SUP+EMW2)/(HWRUNI(0,Q2INF,Q2SUP)+EMW2)-EMW2
Q2JAC=(Q2+EMW2)**2*(Q2SUP-Q2INF)/((Q2SUP+EMW2)*(Q2INF+EMW2))
ENDIF
W2 = MP**2 + SMA*Y - Q2
C---s_hat generation
SHINF = EMLMIN **2
SHSUP = (MIN(SQRT(W2)-MREMIN,EMLMAX))**2
DEBUG=6
IF (SHINF .GT. SHSUP) GOTO 888
C
IF (IPRO.EQ.91) THEN
IF (.NOT.CHARGD) THEN
SHAT = SHINF*SHSUP/HWRUNI(0,SHINF,SHSUP)
SHJAC = SHAT**2 * (SHSUP-SHINF)/(SHSUP*SHINF)
ELSE
SHAT = EXP(HWRUNI(0,LOG(SHINF),LOG(SHSUP)))
SHJAC = SHAT*(LOG(SHSUP/SHINF))
ENDIF
ELSE
EMW2=EMW**2
IF (SHINF.GT.EMW2+10*GAMW*EMW) THEN
SHAT = SHINF*SHSUP/HWRUNI(0,SHINF,SHSUP)
SHJAC = SHAT**2 * (SHSUP-SHINF)/(SHSUP*SHINF)
ELSEIF (SHSUP.LT.EMW2-10*EMW*GAMW) THEN
SHAT = HWRUNI(0,SHINF,SHSUP)
SHJAC = SHSUP-SHINF
ELSE
TMIN=ATAN((SHINF-EMW2)/(GAMW*EMW))
TMAX=ATAN((SHSUP-EMW2)/(GAMW*EMW))
SHAT = GAMW*EMW*TAN(HWRUNI(0,TMIN,TMAX))+EMW2
SHJAC=((SHAT-EMW2)**2+(GAMW*EMW)**2)/(GAMW*EMW)*(TMAX-TMIN)
ENDIF
ENDIF
DETDSH = ONE/SMA/Y
SHJAC=SHJAC*DETDSH
RSHAT = SQRT (SHAT)
C--- z generation
ZMIN = 10E10
ZMAX = -ONE
IF (.NOT.CHARGD) THEN
DO I=1,18
Q1CM(I) = ZERO
ZMIF(I) = ZERO
ZMAF(I) = ZERO
ENDDO
DO 150 I=IMIN,IMAX
IF (INCLUD(I)) THEN
Q1CM(I) = HWUPCM( RSHAT, MFIN1(I), MFIN2(I) )
IF (Q1CM(I) .LT. PTMIN) THEN
ZMAF(I)=-ONE
GOTO 150
ENDIF
CTHLIM = SQRT(ONE - (PTMIN / Q1CM(I))**2)
GAMMA2 = SHAT + MFIN1(I)**2 - MFIN2(I)**2
LAMBDA = (SHAT-MFIN1(I)**2-MFIN2(I)**2)**2 -
+ 4.D0*MFIN1(I)**2*MFIN2(I)**2
ZMIF(I) = (GAMMA2 - SQRT(LAMBDA)*CTHLIM)/TWO/SHAT
ZMIF(I) = MAX(ZMIF(I),ZERO)
ZMAF(I) = (GAMMA2 + SQRT(LAMBDA)*CTHLIM)/TWO/SHAT
ZMAF(I) = MIN(ZMAF(I),ONE)
ZMIN = MIN( ZMIN, ZMIF(I) )
ZMAX = MAX( ZMAX, ZMAF(I) )
ENDIF
150 CONTINUE
IF (IFL.EQ.164) ZMAX=MIN(ZMAX,ZJMAX)
ELSE
Q1 = HWUPCM(RSHAT,MF1,MF2)
DEBUG=7
IF (Q1.LT.PTMIN) GOTO 888
CTHLIM = SQRT(ONE-(PTMIN/Q1)**2)
GAMMA2 = SHAT+MF1**2-MF2**2
LAMBDA = (SHAT-MF1**2-MF2**2)**2-4.D0*MF1**2*MF2**2
ZMIN = (GAMMA2-SQRT(LAMBDA)*CTHLIM)/TWO/SHAT
ZMIN = MAX(ZMIN,1D-6)
ZMAX = (GAMMA2+SQRT(LAMBDA)*CTHLIM)/TWO/SHAT
ZMAX = MIN(ZMAX,ONE-1D-6)
ENDIF
DEBUG=8
IF (ZMIN .GT. ZMAX) GOTO 888
ZLMIN = LOG(ZMIN/(ONE-ZMIN))
ZINT = LOG(ZMAX/(ONE-ZMAX)) - LOG(ZMIN/(ONE-ZMIN))
ZL = ZLMIN+HWRGEN(0)*ZINT
Z = EXP(ZL)/(ONE+EXP(ZL))
ZJAC = Z*(ONE-Z)*ZINT
C
DEBUG=9
IF ((Y.LT.YMIN.OR.Y.GT.YMAX).OR.(Q2.LT.Q2INF.OR.Q2.GT.Q2SUP).OR.
+ (SHAT.LT.SHINF.OR.SHAT.GT.SHSUP).OR.(Z.LT.ZMIN.OR.Z.GT.ZMAX))
+ GOTO 888
C---Phi generation
PHI = HWRUNI(0,ZERO,2*PIFAC)
PHIJAC = 2 * PIFAC
IF (IFL.EQ.164) PHIJAC=ONE
C
AJACOB = YJAC * Q2JAC * SHJAC * ZJAC * PHIJAC
C
IF (IQK.NE.0.OR.IPRO.EQ.5) GOTO 999
C---contributing subprocesses: filling of logical vector INSIDE
DO I=1,18
INSIDE(I)=.FALSE.
Q2MAF(I)=ZERO
EMMAWF(I)=ZERO
ENDDO
DO 200 I=IMIN,IMAX
IF (INCLUD(I)) THEN
IF ( Y.LT.YMIF(I) ) GOTO 200
C
Q2MAF(I) = MP**2 + SMA*Y - WMIF(I)**2
Q2MAF(I) = MIN( Q2MAF(I), Q2MAX)
IF (Q2INF .GT. Q2MAF(I)) GOTO 200
IF (Q2.LT.Q2INF .OR. Q2.GT.Q2MAF(I)) GOTO 200
C
EMMAWF(I) = SQRT(W2) - MREMIF(I)
EMMAWF(I) = MIN( EMMAWF(I), EMLMAX )
C
IF (EMMIF(I) .GT. EMMAWF(I)) GOTO 200
IF (SHAT.LT.EMMIF(I)**2.OR.SHAT.GT.EMMAWF(I)**2) GOTO 200
C
IF (ZMIF(I) .GT. ZMAF(I)) GOTO 200
IF (Z.LT.ZMIF(I) .OR. Z.GT.ZMAF(I)) GOTO 200
INSIDE(I)=.TRUE.
ENDIF
200 CONTINUE
999 RETURN
888 EVWGT=ZERO
C---UNCOMMENT THIS LINE TO GET A DEBUGGING WARNING FOR NO PHASE-SPACE
C CALL HWWARN('HWHBRN',DEBUG)
IFGO = .TRUE.
END
CDECK ID>, HWHBSG.
*CMZ :- -03/07/95 19.02.12 by Giovanni Abbiendi
*-- Author : Giovanni Abbiendi & Luca Stanco
C----------------------------------------------------------------------
SUBROUTINE HWHBSG
C----------------------------------------------------------------------
C Returns differential cross section DSIGMA in (Y,Q2,ETA,Z,PHI)
C Scale for structure functions and alpha_s selected by BGSHAT
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUALF,HWUAEM,Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,
& ME,MP,ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,RSHAT,
& SFUN(13),ALPHA,LDSIG,DLQ(7),SG,XG,MF1,MF2,MSUM,MDIF,MPRO,FFUN,
& GFUN,H43,H41,H11,H12,H14,H16,H21,H22,G11,G12,G1A,G1B,G21,G22,G3,
& GC,A11,A12,A44,ALPHAS,PDENS,AFACT,BFACT,CFACT,DFACT,GAMMA,S,T,U,
& MREMIN,POL,CCOL,ETA
INTEGER LEP
INTEGER IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,IPROO,IHAD,ILEPT,IQ,IS
LOGICAL CHARGD,INCLUD(18),INSIDE(18)
EXTERNAL HWUALF,HWUAEM
COMMON /HWAREA/ Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
& MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,LEP,
& IPROO,CHARGD,INCLUD,INSIDE
C
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
C---set masses
IF (CHARGD) THEN
MREMIN=MP
IF (LEP.EQ.1) THEN
MF1=RMASS(IFLAVD)
MF2=RMASS(IFLAVU)
ELSE
MF1=RMASS(IFLAVU)
MF2=RMASS(IFLAVD)
ENDIF
ELSE
IS=IFL
IF (IFL.EQ.164) IS=IQK
MREMIN = MREMIF(IS)
MF1 = MFIN1(IS)
MF2 = MFIN2(IS)
ENDIF
C---choose subprocess scale
IF (BGSHAT) THEN
EMSCA = RSHAT
ELSE
S=SHAT+Q2
IF (IFL.GE.7.AND.IFL.LE.18) S=SHAT+Q2-MF1**2
T=-S*Z
U=-S-T
IF (IFL.GE.7.AND.IFL.LE.18) U=-S-T-2*MF1**2
EMSCA = SQRT(TWO*S*T*U/(S**2+T**2+U**2))
IF (IFL.EQ.164) EMSCA=SQRT(-U)
ENDIF
ALPHAS = HWUALF(1,EMSCA)
IF (ALPHAS.GE.ONE.OR.ALPHAS.LE.ZERO) THEN
CALL HWWARN('HWHBSG',51)
GOTO 888
ENDIF
C---structure functions
ETA = (SHAT+Q2)/SMA/Y
IF (ETA.GT.ONE) ETA=ONE
CALL HWSFUN (ETA,EMSCA,IDHW(IHAD),NSTRU,SFUN,2)
XG = Q2/(SHAT + Q2)
SG = ETA*SMA
IF (SG.LE.(RSHAT+ML)**2.OR.SG.GE.(RS-MREMIN)**2) GOTO 888
C
IF (IFL.EQ.164) GOTO 200
C
C---Electroweak couplings
ALPHA=HWUAEM(-Q2)
IF (CHARGD) THEN
POL = PPOLN(3) - EPOLN(3)
DLQ(1)=.0625*VCKM(IFLAVU/2,(IFLAVD+1)/2)/SWEIN**2 *
+ Q2**2/((Q2+RMASS(198)**2)**2+(RMASS(198)*GAMW)**2) *
+ (ONE + POL)
DLQ(2)=ZERO
DLQ(3)=DLQ(1)
ELSE
IQ=MOD(IFL-1,6)+1
ILEPT=MOD(IDHW(1)-121,6)+11
CALL HWUCFF(ILEPT,IQ,-Q2,DLQ(1))
ENDIF
C
IF (IFL.LE.6) THEN
C---For Boson-Gluon Fusion
PDENS = SFUN(13)/ETA
CCOL = HALF
MSUM = (MF1**2 + MF2**2) / (Y*SG)
MDIF = (MF1**2 - MF2**2) / (Y*SG)
MPRO = MF1*MF2 / (Y*SG)
C
FFUN = (1.D0-XG)*Z*(1.D0-Z) + (MDIF*(2.D0*Z-1.D0)-MSUM)/2.D0
GFUN = (1.D0-XG)*(1.D0-Z) + XG*Z + MDIF
IF ( FFUN .LT. ZERO ) FFUN = ZERO
H43 = (8.D0*(2.D0*Z**2*XG-Z**2-2.D0*Z*XG+2.D0*Z*MDIF+Z-MDIF
& -MSUM)) / (Z*(1.D0-Z))**2
C
H41 = (8.D0*(Z**2-Z*XG+Z*MDIF-MDIF-MSUM)) / (Z**2*(1.D0-Z))
C
H11 = (4.D0*(2.D0*Z**4-4.D0*Z**3+2.D0*Z**2*MSUM*XG
& -2.D0*Z**2*MSUM+2.D0*Z**2*XG**2-2.D0*Z**2*XG+3.D0*Z**2
& +2.D0*Z*MDIF*MSUM+2.D0*Z*MDIF*XG-2.D0*Z*MSUM*XG
& +2.D0*Z*MSUM-2.D0*Z*XG**2+2.D0*Z*XG-Z-MDIF*MSUM-MDIF*XG
& -MSUM**2-MSUM*XG)) / (Z*(1.D0-Z))**2
C
H12 = (16.D0*(-Z*MDIF+Z*XG+MDIF+MSUM))/(Z**2*(1.D0-Z))
C
H14 = (16.D0*(-2.D0*Z**2*XG-2.D0*Z*MDIF+2.D0*Z*XG+MDIF+MSUM))
& / (Z*(1.D0-Z))**2
C
H16 = (32.D0*(Z*MDIF-Z*XG-MDIF-MSUM)) / (Z**2*(1.D0-Z))
C
H21 = (8.D0*MPRO*(-2.D0*Z**2*XG+2.D0*Z**2-2.D0*Z*MDIF+2.D0*Z*XG
+ -2.D0*Z+MDIF+MSUM)) / (Z*(1.D0-Z))**2
C
H22 = (-32.D0*MPRO) / (Z*(1.D0-Z))
C
G11 = -2.D0*H11 + FFUN*H14
G12 = 2.D0*XG*FFUN*H14 + H12 + GFUN * ( H16+GFUN*H14 )
G1A = SQRT( XG*FFUN ) * ( H16 + 2.D0*GFUN*H14 )
G1B = FFUN*H14
G21 = -2.D0*H21
G22 = H22
G3 = H41 - GFUN*H43
GC = SQRT( XG*FFUN ) * (-2.D0*XG*H43 )
ELSE
C---for QCD Compton, massless matrix element
PDENS = SFUN(IFL-6)/ETA
CCOL = CFFAC
FFUN = XG*(ONE-XG)*Z*(ONE-Z)
GFUN = (ONE-XG)*(ONE-Z)+XG*Z
G11 = 8.D0*((Z**2+XG**2)/(ONE-XG)/(ONE-Z)+TWO*(XG*Z+ONE))
G12 = 64.D0*XG**2*Z+TWO*XG*G11
G1A = 32.D0*XG*GFUN*SQRT(FFUN)/((ONE-XG)*(ONE-Z))
G1B = 16.D0*XG*Z
G3 = -16.D0*(ONE-XG)*(ONE-Z)+G11
GC = -16.D0*XG*SQRT(FFUN)*(ONE-Z-XG)/((ONE-XG)*(ONE-Z))
G21 = ZERO
G22 = ZERO
ENDIF
C
A11 = XG * Y**2 * G11 + (1.D0-Y) * G12
& - (2.D0-Y) * SQRT( 1.D0-Y ) * G1A * COS( PHI )
& + 2.D0 * XG * (1.D0-Y) * G1B * COS( 2.D0*PHI )
C
A12 = XG * Y**2 * G21 + (1.D0-Y) * G22
C
A44 = XG * Y * (2.D0-Y) * G3
& - 2.D0 * Y * SQRT( 1.D0-Y ) * GC * COS( PHI )
C
IF ( Y*Q2**2 .LT. 1D-38 ) THEN
C---prevent numerical uncertainties in DSIGMA computation
DSIGMA = PDENS*ALPHA**2*ALPHAS*GEV2NB*CCOL/(16.D0*PIFAC)
& *(DLQ(1)*A11 + DLQ(2)*A12 + FLOAT(LEP)*DLQ(3)*A44)
IF ( DSIGMA .LE. ZERO ) GOTO 888
LDSIG = LOG (DSIGMA) - LOG (Y) - 2.D0 * LOG (Q2)
DSIGMA = EXP (LDSIG)
ELSE
DSIGMA = PDENS*ALPHA**2*ALPHAS*GEV2NB*CCOL
& * (DLQ(1)*A11 + DLQ(2)*A12 + FLOAT(LEP)*DLQ(3)*A44)
& / (16.D0*PIFAC*Y*Q2**2)
ENDIF
IF (DSIGMA.LT.ZERO) GOTO 888
RETURN
C
200 CONTINUE
C--- J/psi production
ALPHA = HWUAEM(-Q2)
GAMMA = 4.8D-6
PDENS = SFUN(13)/ETA
AFACT = (8.D0*PIFAC*ALPHAS**2*RMASS(164)**3*GAMMA)/(3.D0*ALPHA)
BFACT = ONE/(Y*SG*Z**2*((Z-ONE)*Y*SG-RMASS(164)**2)**2)
CFACT = (RMASS(164)**2-Z*Y*SG)**2/(Y*SG*(ONE-XG)**2*
& ((ONE-XG)*Y*SG-RMASS(164)**2)**2*
& ((Z-ONE)*Y*SG-RMASS(164)**2)**2)
DFACT = ((Z-ONE)*Y*SG)**2/(Y*SG*(ONE-XG)**2*
& ((ONE-XG)*Y*SG-RMASS(164)**2)**2*(Z*Y*SG)**2)
DSIGMA = GEV2NB*ALPHA/(TWO*PIFAC)*AFACT*(BFACT+CFACT+DFACT)*PDENS
IF (DSIGMA.LT.ZERO ) GOTO 888
RETURN
888 DSIGMA=ZERO
END
CDECK ID>, HWHDIS.
*CMZ :- -26/04/91 14.55.44 by Federico Carminati
*-- Author : Giovanni Abbiendi & Luca Stanco
C----------------------------------------------------------------------
SUBROUTINE HWHDIS
C----------------------------------------------------------------------
C DEEP INELASTIC LEPTON-HADRON SCATTERING: MEAN EVWGT = SIGMA IN NB
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUPCM,PRAN,PROB,SAMP,SIG,Q2,
& XBJ,Y,W,S,MLEP,MHAD,MLSCAT,YMIN,YMAX,XXMAX,Q2JAC,XXJAC,
& JACOBI,A1,A2,A3,B1,B2,PCM,PCMEP,PCMLW,PCMEQ,PCMLQ,COSPHI,PA,
& EQ,PZQ,SHAT,PROP,DLEFT,DRGHT,DUP,DWN,FACT,EFACT,OMY2,YPLUS,
& YMNUS,SIGMA,AF(7,12),SMA,Q2SUP,HWUAEM,DCHRG,DNEUT
INTEGER I,IQK,IQKIN,IQKOUT,IDSCAT,IHAD,ILEPT,LEP
LOGICAL CHARGD
EXTERNAL HWRGEN,HWRUNI,HWUPCM
SAVE MLEP,MHAD,S,SMA,PCM,MLSCAT,A1,A2,A3,B1,B2,DLEFT,DRGHT,Q2,
& AF,XBJ,Y,YPLUS,YMNUS,OMY2,FACT,EFACT,SIGMA,IDSCAT,CHARGD,
& ILEPT,DCHRG,DNEUT,LEP
IQK=MOD(IPROC,10)
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
IF (FSTWGT.OR.IHAD.NE.2) THEN
C---INITIALISE PROCESS (MUST BE DONE EVERY TIME IF S VARIES)
C---LEPTON AND HADRON MASSES, INVARIANT MASS, MOMENTUM IN C.M. FRAME
MLEP=PHEP(5,1)
MHAD=PHEP(5,IHAD)
S=PHEP(5,3)**2
SMA=S-MLEP**2-MHAD**2
PCM=HWUPCM(SQRT(S),MLEP,MHAD)
C---LEP = 1 FOR LEPTONS, -1 FOR ANTILEPTONS
IF (IDHW(1).GE.121.AND.IDHW(1).LE.126) THEN
LEP=1
ELSEIF (IDHW(1).GE.127.AND.IDHW(1).LE.132) THEN
LEP=-1
ELSE
CALL HWWARN('HWHDIS',500)
ENDIF
DCHRG=FLOAT(MOD(IDHW(1) ,2))
DNEUT=FLOAT(MOD(IDHW(1)+1,2))
ILEPT=MOD(IDHW(1)-121,6)+11
C---DLEFT,DRIGHT = 1,0 for leptons; = 0,1 for anti-leptons
DLEFT=MAX(LEP,0)
DRGHT=MAX(-LEP,0)
CHARGD=MOD(IPROC,100)/10.EQ.1
C---Evaluate constant factor in cross section and
C find and store scattered lepton identity
IF (CHARGD) THEN
IF ((EPOLN(3)-PPOLN(3)).EQ.ONE) THEN
WRITE(6,5)
CALL HWWARN('HWHDIS',501)
5 FORMAT(1X,'WARNING: Cross-section is zero for the',
& ' specified lepton helicity')
ENDIF
FACT=GEV2NB*(ONE-(EPOLN(3)-PPOLN(3)))*.25D0*PIFAC
& /(SWEIN*RMASS(198)**2)**2
IDSCAT=IDHW(1)+NINT(DCHRG-DNEUT)
ELSE
FACT=GEV2NB*TWO*PIFAC
IDSCAT=IDHW(1)
ENDIF
MLSCAT=RMASS(IDSCAT)
C---PARAMETERS USED FOR THE WEIGHT GENERATION IN NEUTRAL CURRENT
C PROCESSES. ASSUME D(SIGMA)/D(Q**2) GOES LIKE A1+A2/Q**2+A3/Q**4
C AND D(SIGMA)/D(X) LIKE B1+B2/X
A1=0.5
A2=0.5
A3=1.
B1=0.1
B2=1.
ENDIF
IF (GENEV) THEN
C---GENERATE EVENT (KINEMATICAL VARIABLES AND STRUCTURE FUNCTION
C ALREADY FOUND)
PRAN=SIGMA*HWRGEN(0)
IF (CHARGD) THEN
C---CHARGED CURRENT PROCESS
IF (IQK.EQ.0) THEN
C---FIND FLAVOUR OF THE STRUCK QUARK (IF NOT SELECTED BY THE USER)
PROB=ZERO
DO 10 I=1,6
DUP=MOD(I+1,2)
DWN=MOD(I ,2)
PROB=PROB+EFACT*
& ((DCHRG*(DLEFT*DUP+DRGHT*DWN*OMY2)
& +DNEUT*(DLEFT*DWN+DRGHT*DUP*OMY2))*DISF(I ,1)
& +(DCHRG*(DLEFT*DWN*OMY2+DRGHT*DUP)
& +DNEUT*(DLEFT*DUP*OMY2+DRGHT*DWN))*DISF(I+6,1))
IF (PROB.GE.PRAN) GOTO 20
10 CONTINUE
I=6
20 IQK=I
ENDIF
DUP=MOD(IQK+1,2)
DWN=MOD(IQK ,2)
IQKIN=IQK
IF ((LEP.EQ. 1.AND.MOD(IQK+IDHW(1),2).EQ.0)
& .OR.(LEP.EQ.-1.AND.MOD(IQK+IDHW(1),2).EQ.1)) IQKIN=IQK+6
C---FIND FLAVOUR OF THE OUTGOING QUARK
PRAN=HWRGEN(0)
PROB=ZERO
IF (DUP.EQ.ONE) THEN
DO 30 I=1,3
PROB=PROB+VCKM(IQK/2,I)
IF (PROB.GE.PRAN) GOTO 40
30 CONTINUE
I=3
40 IQKOUT=2*I-1
IF (IQKIN.GT.6) IQKOUT=IQKOUT+6
ELSE
DO 50 I=1,3
PROB=PROB+VCKM(I,(IQK+1)/2)
IF (PROB.GE.PRAN) GOTO 60
50 CONTINUE
I=3
60 IQKOUT=2*I
IF (IQKIN.GT.6) IQKOUT=IQKOUT+6
ENDIF
ELSE
C---NEUTRAL CURRENT PROCESS
IF (IQK.NE.0) THEN
IQKIN=IQK
PROB=EFACT*(AF(1,IQK)*YPLUS*DISF(IQK,1)+
& FLOAT(LEP)*AF(3,IQK)*YMNUS*DISF(IQK,1))
IF (PROB.LT.PRAN) IQKIN=IQK+6
ELSE
C---FIND FLAVOUR OF THE STRUCK QUARK (IF NOT SELECTED BY THE USER)
PROB=ZERO
SIG=ONE
DO 70 I=1,12
IF (I.GT.6) SIG=-ONE
PROB=PROB+EFACT*(AF(1,I)*YPLUS*DISF(I,1)+
& FLOAT(LEP)*SIG*AF(3,I)*YMNUS*DISF(I,1))
IF (PROB.GE.PRAN) GOTO 80
70 CONTINUE
I=12
80 IQKIN=I
ENDIF
IQKOUT=IQKIN
ENDIF
IDN(1)=IDHW(1)
IDN(2)=IQKIN
IDN(3)=IDSCAT
IDN(4)=IQKOUT
ICO(1)=1
ICO(2)=4
ICO(3)=3
ICO(4)=2
XX(1)=1.
XX(2)=XBJ
C---CHECK PHASE SPACE WITH THE SELECTED FLAVOUR. IF OUTSIDE THE
C EVENT IS KILLED.
PA=XBJ*(PHEP(4,IHAD)+ABS(PHEP(3,IHAD)))
EQ=HALF*(PA+RMASS(IDN(2))**2/PA)
PZQ=-(PA-EQ)
SHAT=(PHEP(4,1)+EQ)**2-(PHEP(3,1)+PZQ)**2
PCMEQ=HWUPCM(SQRT(SHAT),MLEP,RMASS(IDN(2)))
PCMLQ=HWUPCM(SQRT(SHAT),MLSCAT,RMASS(IDN(4)))
IF (PCMLQ.LT.ZERO) THEN
CALL HWWARN('HWHDIS',101)
GOTO 999
ELSEIF (PCMLQ.EQ.ZERO) THEN
COSTH=ZERO
ELSE
COSTH=(TWO*SQRT(PCMEQ**2+MLEP**2)*SQRT(PCMLQ**2+MLSCAT**2)
& -(Q2+MLEP**2+MLSCAT**2))/(TWO*PCMEQ*PCMLQ)
ENDIF
IF (ABS(COSTH).GT.ONE) THEN
CALL HWWARN('HWHDIS',102)
GOTO 999
ENDIF
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
ELSE
EVWGT=ZERO
IF (CHARGD) THEN
C---CHOOSE X,Y (CC PROCESS)
YMIN=MAX(YBMIN,Q2MIN/SMA)
YMAX=MIN(YBMAX,ONE)
IF (YMIN.GT.YMAX) GOTO 999
Y=HWRUNI(0,YMIN,YMAX)
XXMIN=Q2MIN/S/Y
XXMAX=MIN(Q2MAX/SMA/Y,ONE)
IF (XXMIN.GT.XXMAX) GOTO 999
XBJ=HWRUNI(0,XXMIN,XXMAX)
Q2=XBJ*Y*(S-MLEP**2-MHAD**2)
JACOBI=(YMAX-YMIN)*(XXMAX-XXMIN)*(S-MLEP**2-MHAD**2)*XBJ
ELSE
C---CHOOSE X,Q**2 (NC PROCESS)
Q2SUP=MIN(Q2MAX,SMA*YBMAX)
IF (Q2MIN.GT.Q2SUP) GOTO 999
SAMP=(A1+A2+A3)*HWRGEN(0)
IF (SAMP.LE.A1) THEN
Q2=HWRUNI(0,Q2MIN,Q2SUP)
ELSEIF (SAMP.LE.(A1+A2)) THEN
Q2=EXP(HWRUNI(0,LOG(Q2MIN),LOG(Q2SUP)))
ELSE
Q2=-ONE/HWRUNI(0,-ONE/Q2MIN,-ONE/Q2SUP)
ENDIF
Q2JAC=(A1+A2+A3)/
& (A1/(Q2SUP-Q2MIN)
& +A2/LOG(Q2SUP/Q2MIN)/Q2
& +A3*Q2MIN*Q2SUP/(Q2SUP-Q2MIN)/Q2**2)
XXMIN=Q2/SMA/YBMAX
XXMAX=ONE
IF (YBMIN.GT.ZERO) XXMAX=MIN(Q2/SMA/YBMIN,ONE)
IF (XXMIN.GT.XXMAX) GOTO 999
SAMP=(B1+B2)*HWRGEN(0)
IF (SAMP.LE.B1) THEN
XBJ=HWRUNI(0,XXMIN,XXMAX)
ELSE
XBJ=EXP(HWRUNI(0,LOG(XXMIN),LOG(XXMAX)))
ENDIF
XXJAC=(B1+B2)/(B1/(XXMAX-XXMIN)+B2/LOG(XXMAX/XXMIN)/XBJ)
Y=Q2/(S-MLEP**2-MHAD**2)/XBJ
JACOBI=Q2JAC*XXJAC
ENDIF
C---CHECK IF THE GENERATED POINT IS INSIDE PHASE SPACE. IF NOT
C RETURN WITH WEIGHT EQUAL TO ZERO.
W=SQRT(MHAD**2+Q2*(ONE-XBJ)/XBJ)
IF (W.LT.WHMIN) RETURN
PCMEP=PCM
PCMLW=HWUPCM(SQRT(S),MLSCAT,W)
IF (PCMLW.LT.ZERO) THEN
EVWGT=ZERO
RETURN
ELSEIF (PCMLW.EQ.ZERO) THEN
COSPHI=ZERO
ELSE
COSPHI=
& (TWO*SQRT(PCMEP**2+MLEP**2)*SQRT(PCMLW**2+MLSCAT**2)
& -(Q2+MLEP**2+MLSCAT**2))/(TWO*PCMEP*PCMLW)
ENDIF
IF (ABS(COSPHI).GT.ONE) THEN
EVWGT=ZERO
RETURN
ENDIF
C---SET SCALE EQUAL Q. EVALUATE STRUCTURE FUNCTIONS.
EMSCA=SQRT(Q2)
CALL HWSFUN(XBJ,EMSCA,IDHW(IHAD),NSTRU,DISF,2)
C---SWITCH OFF ANY FLAVOURS THAT ARE BELOW THRESHOLD
DO 90 I=1,12
90 IF (W.LT.2*RMASS(I)) DISF(I,1)=0
C---EVALUATE DIFFERENTIAL CROSS SECTION
IF (CHARGD) THEN
PROP=RMASS(198)**2/(Q2+RMASS(198)**2)
EFACT=FACT*(HWUAEM(-Q2)*PROP)**2/XBJ
OMY2=(ONE-Y)**2
SIGMA=ZERO
DO 100 I=1,6
DUP=MOD(I+1,2)
DWN=MOD(I ,2)
IF (IQK.NE.0.AND.IQK.NE.I) GOTO 100
SIGMA=SIGMA+EFACT*
& ((DCHRG*(DLEFT*DUP+DRGHT*DWN*OMY2)
& +DNEUT*(DLEFT*DWN+DRGHT*DUP*OMY2))*DISF(I ,1)
& +(DCHRG*(DLEFT*DWN*OMY2+DRGHT*DUP)
& +DNEUT*(DLEFT*DUP*OMY2+DRGHT*DWN))*DISF(I+6,1))
100 CONTINUE
ELSE
EFACT=FACT/XBJ*(HWUAEM(-Q2)/Q2)**2
YPLUS=ONE+(ONE-Y)**2
YMNUS=ONE-(ONE-Y)**2
DO 110 I=1,6
CALL HWUCFF(ILEPT,I,-Q2,AF(1,I))
AF(1,I+6)=AF(1,I)
AF(3,I+6)=AF(3,I)
110 CONTINUE
SIGMA=ZERO
DO 200 I=1,6
IF (IQK.NE.0.AND.IQK.NE.I) GOTO 200
SIGMA=SIGMA+EFACT*(AF(1,I)*YPLUS*(DISF(I,1)+DISF(I+6,1))+
& FLOAT(LEP)*AF(3,I)*YMNUS*(DISF(I,1)-DISF(I+6,1)))
200 CONTINUE
ENDIF
C---FIND WEIGHT: DIFFERENTIAL CROSS SECTION TIME THE JACOBIAN FACTOR
EVWGT=SIGMA*JACOBI
IF (EVWGT.LT.ZERO) EVWGT=ZERO
ENDIF
999 RETURN
END
CDECK ID>, HWHDYP.
*CMZ :- -18/05/99 12.41.07 by Mike Seymour
*-- Author : Bryan Webber, Ian Knowles and Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHDYP
C-----------------------------------------------------------------------
C Drell-Yan Production of fermion pairs via photon, Z0 & (if ZPRIME)
C Z' exchange. Lepton universality is assumed for photon and Z, and
C for Z' if no lepton flavour is specified.
C MEAN EVWGT = SIGMA IN NB
C
C Modified 16/01/01 by BRW to implement Peter Richardson's
C fix for bug in lepton mass effects on branching ratio
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUAEM,EPS,C1,C2,C3,EMSQZ,EMGMZ,
& EMSQZP,EMGMZP,CQF(7,6,16),QPOW,RPOW,A01,A1,A02,A2,A03,A3,CRAN,
& EMJ1,EMJ2,EMJ3,EMJAC,FACT,QSQ,HCS,FACTR,RCS,EXTRA,PMAX,PTHETA
INTEGER IMODE,JQMN,JQMX,JQ,JLMN,JLMX,JL,IQ,I,IADD(2,2),ID1,ID2,
& ID3,ID4,JF
EXTERNAL HWRGEN,HWRUNI,HWUAEM
SAVE HCS,JQMN,JQMX,JLMN,JLMX,C1,C2,C3,QPOW,RPOW,EMSQZ,EMGMZ,
& A1,A01,A2,A02,A3,A03,EMSQZP,EMGMZP,FACT,CQF
PARAMETER (EPS=1.D-9)
SAVE IADD
DATA IADD/0,6,6,0/
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
IF (FSTWGT) THEN
C Set limits for which particles to include
JLMN=1
JLMX=0
JQMN=1
JQMX=0
IMODE=MOD(IPROC,100)
IF (IMODE.EQ.0) THEN
JQMN=1
JQMX=6
ELSEIF (IMODE.LE.10) THEN
JQMN=IMODE
JQMX=IMODE
ELSEIF (IMODE.EQ.50) THEN
JLMN=11
JLMX=16
ELSEIF (IMODE.GE.50.AND.IMODE.LE.60) THEN
JLMN=IMODE-40
JLMX=IMODE-40
ELSEIF (IMODE.EQ.99) THEN
JQMN=1
JQMX=6
JLMN=11
JLMX=16
ELSE
CALL HWWARN('HWHDYP',500)
ENDIF
C Set up parameters for importance sampling:
C sum of power law and two Breit-Wigners (relative weights C1,C2,C3)
C1=ONE
C2=ONE
C3=ZERO
IF (ZPRIME) C3=ONE
IF (EMPOW.EQ.ONE) CALL HWWARN('HWHDYP',501)
IF (C2.EQ.ZERO) CALL HWWARN('HWHDYP',502)
IF (C3.EQ.ZERO.AND.ZPRIME) CALL HWWARN('HWHDYP',503)
QPOW=-EMPOW+1
RPOW=1/QPOW
EMSQZ=RMASS(200)**2
EMGMZ=RMASS(200)*GAMZ
A01=EMMIN**QPOW
A1=(EMMAX**QPOW-A01)/C1
A02=ATAN((EMMIN**2-EMSQZ)/EMGMZ)
A2=(ATAN((EMMAX**2-EMSQZ)/EMGMZ)-A02)/C2
IF (C3.GT.ZERO) THEN
EMSQZP=RMASS(202)**2
EMGMZP=RMASS(202)*GAMZP
A03=ATAN((EMMIN**2-EMSQZP)/EMGMZP)
A3=(ATAN((EMMAX**2-EMSQZP)/EMGMZP)-A03)/C3
ENDIF
ENDIF
EVWGT=0.
C Select a mass for the produced pair
CRAN=(C1+C2+C3)*HWRGEN(1)
IF (CRAN.LT.C1) THEN
C Use power law
EMSCA=(A01+A1*CRAN)**RPOW
QSQ=EMSCA**2
ELSEIF (CRAN.LT.C1+C2) THEN
C Use Z Breit-Wigner
CRAN=CRAN-C1
QSQ=EMSQZ+EMGMZ*TAN(A02+A2*CRAN)
EMSCA=SQRT(QSQ)
ELSE
C Use Z' Breit-Wigner
CRAN=CRAN-C1-C2
QSQ=EMSQZP+EMGMZP*TAN(A03+A3*CRAN)
EMSCA=SQRT(QSQ)
ENDIF
EMJ1=EMSCA**EMPOW/(1-EMPOW)*A1
EMJ2=((QSQ-EMSQZ)**2+EMGMZ**2)/(2*EMSCA*EMGMZ)*A2
IF (C3.GT.ZERO) THEN
EMJ3=((QSQ-EMSQZP)**2+EMGMZP**2)/(2*EMSCA*EMGMZP)*A3
EMJAC=(C1+C2+C3)/(1/EMJ1+1/EMJ2+1/EMJ3)
ELSE
EMJAC=(C1+C2)/(1/EMJ1+1/EMJ2)
ENDIF
C Select initial momentum fractions
XXMIN=QSQ/PHEP(5,3)**2
XLMIN=LOG(XXMIN)
CALL HWSGEN(.TRUE.)
FACT=-GEV2NB*HWUAEM(QSQ)**2*PIFAC*8*EMJAC*XLMIN
$ /(3*NCOLO*EMSCA**3)
C Store cross-section coefficients
DO 50 IQ=1,6
DO 30 JQ=JQMN,JQMX
IF (EMSCA.GT.2.*RMASS(JQ)) THEN
CALL HWUCFF(IQ,JQ,QSQ,CQF(1,IQ,JQ))
ELSE
CALL HWVZRO(7,CQF(1,IQ,JQ))
ENDIF
30 CONTINUE
DO 40 JL=JLMN,JLMX
IF (EMSCA.GT.2.*RMASS(JL+110)) THEN
CALL HWUCFF(IQ,JL,QSQ,CQF(1,IQ,JL))
ELSE
CALL HWVZRO(7,CQF(1,IQ,JL))
ENDIF
40 CONTINUE
50 CONTINUE
ENDIF
C
HCS=0.
DO 90 I=1,2
C I=1 quark first, I=2 anti-quark first
DO 80 IQ=1,6
ID1=IQ+IADD(1,I)
ID2=IQ+IADD(2,I)
IF (DISF(ID1,1).LT.EPS.OR.DISF(ID2,2).LT.EPS) GOTO 80
FACTR=FACT*DISF(ID1,1)*DISF(ID2,2)
C Quark final states
DO 60 JQ=JQMN,JQMX
ID3=JQ
ID4=JQ+6
IF (IQ.EQ.JQ) THEN
HCS=HCS+FACTR*(CQF(1,IQ,JQ)*FLOAT(NCOLO)+3*HALF*QFCH(IQ)**4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2143,50)
GOTO 99
ENDIF
ELSE
HCS=HCS+FACTR*CQF(1,IQ,JQ)*FLOAT(NCOLO)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2143,50)
GOTO 99
ENDIF
ENDIF
60 CONTINUE
C Lepton final states
DO 70 JL=JLMN,JLMX
ID3=110+JL
ID4=ID3+6
HCS=HCS+FACTR*CQF(1,IQ,JL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,50)
GOTO 99
ENDIF
70 CONTINUE
80 CONTINUE
90 CONTINUE
EVWGT=HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=200
IF (ID3.LE.6) THEN
JF=JQ
ELSE
JF=JL
ENDIF
C Select polar angle from distribution:
C CQF(1,IQ,JF)*(ONE+COSTH**2)+CQF(3,IQ,JF)*COSTH+EXTRA*(ONE+COSTH)
IF (ID1.EQ.ID3.OR.ID2.EQ.ID3) THEN
EXTRA=TWO*QFCH(ID3)**4/NCOLO
ELSE
EXTRA=0
ENDIF
PMAX=2.*(CQF(1,IQ,JF)+EXTRA)+ABS(CQF(3,IQ,JF))
100 COSTH=HWRUNI(0,-ONE,ONE)
PTHETA=CQF(1,IQ,JF)*(ONE+COSTH**2)+TWO*CQF(3,IQ,JF)*COSTH
& +EXTRA*(ONE+COSTH)
IF (PTHETA.LT.PMAX*HWRGEN(1)) GOTO 100
IF (ID1.GT.ID2) COSTH=-COSTH
IDCMF=200
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHDYQ.
*CMZ :- -14/03/01 09:03:25 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHDYQ(FSTCLL,HCS,IFLOW,IDP,ORD,IQ,MASS)
C-----------------------------------------------------------------------
C Drell-Yan production with a q qbar pair
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,MAP(12),ORD,IFL,IDP(6),IFLOW,QCFL(2,2),GCFL(2),IDZ,IQ
DOUBLE PRECISION HCS,RCS,MQ(2,5),HWRGEN,G(12,2),DIST(2),MG(2)
LOGICAL FSTCLL,MASS
EXTERNAL HWRGEN
COMMON/HWHZBC/G
SAVE MQ,MG
SAVE MAP,QCFL,GCFL
DATA MAP/1,2,3,4,5,6,11,12,13,14,15,16/
DATA QCFL/2413,3142,4123,2341/
DATA GCFL/2413,4123/
IF(GENEV) THEN
RCS = HCS*HWRGEN(1)
ELSE
C--to the initalisation
IF(FSTCLL) THEN
C--G(I,1) is the right charge and G(I,2) is the left charge
DO I=1,12
G(I,1) = VFCH(MAP(I),1)-AFCH(MAP(I),1)
G(I,2) = VFCH(MAP(I),1)+AFCH(MAP(I),1)
ENDDO
FSTCLL = .FALSE.
ENDIF
C--identify the Z decay product
IDZ = IDP(5)
IF(IDZ.GT.6) IDZ = IDZ-114
C--calculate the matrix elements
IF(MASS) THEN
C--massive case
CALL HWH2MQ(IQ,IDZ,MG,MQ)
ELSE
C--massless case
CALL HWH2M0(IQ,IDZ,MG,MQ)
ENDIF
ENDIF
C--multiply the matrix elements by the PDF's to obtain the cross section
HCS = ZERO
IDP(3) = IQ
IDP(4) = IQ+6
C--first the qqbar initial states
DO I=1,5
IDP(1) = I
IDP(2) = IDP(1)+6
DIST(1) = DISF(IDP(1),1)*DISF(IDP(2),2)
DIST(2) = DISF(IDP(1),2)*DISF(IDP(2),1)
DO ORD=1,2
DO IFL=1,2
IFLOW = QCFL(IFL,ORD)
HCS = HCS+DIST(ORD)*MQ(IFL,IDP(1))/36.0D0
IF(GENEV.AND.HCS.GT.RCS) RETURN
ENDDO
ENDDO
ENDDO
C--then the gluon gluon inital state
IDP(1) = 13
IDP(2) = 13
DIST(1) = DISF(IDP(1),1)*DISF(IDP(1),2)
DO IFL=1,2
IFLOW = GCFL(IFL)
HCS = HCS+DIST(1)*MG(IFL)/256.0D0
IF(GENEV.AND.HCS.GT.RCS) RETURN
ENDDO
END
CDECK ID>, HWHEGG.
*CMZ :- -19/03/92 10.13.56 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHEGG
C----------------------------------------------------------------------
C HARD PROCESS: EE --> EEGAMGAM --> EEFFBAR/WW
C MEAN EVENT WEIGHT = CROSS-SECTION IN NB
C AFTER CUTS ON PT AND MASS OF CENTRE-OF-MASS SYSTEM
C AND COS(THETA) IN CENTRE-OF-MASS SYSTEM
C AND TIMES BRANCHING FRACTION IF WW
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWULDO,EMSQ,BETA,S,T,U,TMIN,TMAX,TRAT,
& DSDT,PROB,X,Z(2),ZMIN,ZMAX,PCMIN,PCMAX,PCFAC,PLOGMI,PLOGMA,PTCMF,
& Q,PC,BLOG,EMCMIN,EMCMAX,EMLMIN,EMLMAX,WGT(6),RWGT,CV,CA,BR,QT(2),
& QX(2),QY(2),PX,PY,ROOTS,DOT,A,B,C,SHAT,PCF(2),PCM(2),PCMAC,ZZ(2),
& COLFAC
INTEGER I,IGAM,ID,IDL,ID1,ID2,IHEP,JHEP,NADD,NTRY,NQ,JGAM
LOGICAL HWRLOG
EXTERNAL HWRGEN,HWULDO,HWRLOG
SAVE S,BETA,X,ID,NQ,WGT,EMLMIN,EMLMAX,PCFAC,PLOGMA,PLOGMI,SHAT,
& PCF,PCM,Z,PCMAC,NADD
IF (IERROR.NE.0) RETURN
C---INITIALIZE LOCAL COPIES OF EMMIN,EMMAX
IF (FSTWGT) THEN
EMLMIN=EMMIN
EMLMAX=EMMAX
ENDIF
IF (.NOT.GENEV) THEN
C---CHOOSE Z1,Z2 AND CALCULATE SUB-PROCESS CROSS-SECTION
EVWGT=0
C-----FIND FINAL STATE PARTICLES
IHPRO=MOD(IPROC,100)
IF (IHPRO.EQ.0) THEN
ID=1
NQ=6
COLFAC=FLOAT(NCOLO)
NADD=6
ELSEIF (IHPRO.LE.6) THEN
ID=IHPRO
NQ=1
COLFAC=FLOAT(NCOLO)
NADD=6
Q=QFCH(ID)
ELSEIF (IHPRO.LE.9) THEN
ID=119+2*(IHPRO-6)
NQ=1
COLFAC=1.
NADD=6
Q=QFCH(ID-110)
ELSEIF (IHPRO.LE.10) THEN
ID=198
NQ=1
NADD=1
ELSE
CALL HWWARN('HWHEGG',200)
ENDIF
C-----SPLIT ELECTRONS TO PHOTONS
NHEP=3
GAMWT=1
S=2*HWULDO(PHEP(1,1),PHEP(1,2))
ROOTS=SQRT(S)
EMCMIN=MAX(EMLMIN,MAX(2*RMASS(ID),PTMIN))
EMCMAX=MIN(EMLMAX,ROOTS)
IF (EMCMIN.GT.EMCMAX) RETURN
ZMIN=EMCMIN**2/S
ZMAX=1-PHEP(5,1)/PHEP(4,1)
IF (ZMIN.GT.ZMAX) RETURN
CALL HWEGAM(1,ZMIN,ZMAX,.TRUE.)
Z(1)=PHEP(4,NHEP-1)/PHEP(4,1)
ZMIN=EMCMIN**2/(Z(1)*S)
ZMAX=MIN(EMCMAX**2/(Z(1)*S), ONE-PHEP(5,2)/PHEP(4,2))
IF (ZMIN.GT.ZMAX) RETURN
CALL HWEGAM(2,ZMIN,ZMAX,.TRUE.)
Z(2)=PHEP(4,NHEP-1)/PHEP(4,2)
EMSCA=PHEP(5,3)
SHAT=EMSCA**2
C-----REMOVE LOG TERMS FROM WEIGHT, CALCULATE NEW ONES FROM PT LIMITS
GAMWT=GAMWT/(0.5*LOG((1-Z(1))*S/(Z(1)*PHEP(5,1)**2))
& *0.5*LOG((1-Z(2))*Z(1)*S/(Z(2)*PHEP(5,2)**2)))
PCF(1)=Z(1)*PHEP(5,1)
PCF(2)=Z(2)*PHEP(5,2)
PCFAC=SQRT(PCF(1)*PCF(2))
PCM(1)=(1-Z(1))*PHEP(4,1)
PCM(2)=(1-Z(2))*PHEP(4,2)
PCMAC=SQRT(PCM(1)*PCM(2))
PCMIN=MAX(PTMIN,MAX(PCF(1),PCF(2)))
PCMAX=MIN( MIN(PTMAX,PHEP(5,3)) , MIN(PCM(1),PCM(2)) )
IF (PCMIN.GT.PCMAX) RETURN
PLOGMI=(LOG(PCMIN/PCFAC))**2
PLOGMA=(LOG(PCMAX/PCFAC))**2
GAMWT=GAMWT*(PLOGMA-PLOGMI)
C-----CALCULATE CROSS-SECTION
DO 10 IDL=1,NQ
WGT(IDL)=EVWGT
IF (IHPRO.EQ.0) THEN
ID=IDL
Q=QFCH(ID)
ENDIF
EMSQ=RMASS(ID)**2
X=4*EMSQ/SHAT
IF (X.GT.ONE) GOTO 10
BETA=SQRT(1-X)
BLOG=LOG((1+BETA*CTMAX)/(1-BETA*CTMAX))/BETA
IF (IHPRO.LE.9) THEN
EVWGT=EVWGT+GEV2NB*4*PIFAC*COLFAC*Q**4*ALPHEM**2*BETA
& /SHAT * GAMWT * ( (1+X-0.5*X**2)*BLOG
& - CTMAX*(1+X**2/(CTMAX**2*(X-1)+1)) )
WGT(IDL)=EVWGT
ELSE
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
EVWGT=EVWGT + GEV2NB*6*PIFAC*ALPHEM**2*BETA/SHAT*BR
& * GAMWT * (-( X-0.5*X**2)*BLOG
& + CTMAX*(1+(X**2+16/3.)/(CTMAX**2*(X-1)+1)) )
ENDIF
10 CONTINUE
C-----GAMWT MUST BE RESET TO ONE, SINCE IT IS REAPPLIED LATER!
GAMWT=ONE
ELSE
C---GENERATE EVENT
C-----CHOOSE PT OF THE CMF
PTCMF=PCFAC*EXP(SQRT(HWRGEN(0)*(PLOGMA-PLOGMI)+PLOGMI))
C-----CHOOSE WHICH PHOTON USUALLY HAS SMALLER PT
NTRY=0
20 IGAM=1
IF (LOG(PCM(1)/PCF(1)).LT.HWRGEN(1)*2*LOG(PCMAC/PCFAC)) IGAM=2
JGAM=3-IGAM
C-----CHOOSE ITS PT
30 NTRY=NTRY+1
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWHEGG',100)
GOTO 999
ENDIF
QT(IGAM)=(PCM(IGAM)/PCF(IGAM))**HWRGEN(2)
PROB=(QT(IGAM)**2/(QT(IGAM)**2+1))**2
QT(IGAM)=QT(IGAM)*PCF(IGAM)
IF (HWRLOG(1-PROB)) GOTO 30
C-----CHOOSE ITS DIRECTION
CALL HWRAZM(QT(IGAM),QX(IGAM),QY(IGAM))
C-----CALCULATE THE OTHER PHOTON'S PT
QX(JGAM)=PTCMF-QX(IGAM)
QY(JGAM)= -QY(IGAM)
QT(JGAM)=SQRT(QX(JGAM)**2+QY(JGAM)**2)
IF (QT(JGAM).LT.PCF(JGAM).OR.QT(JGAM).GT.PCM(JGAM)) GOTO 20
C-----APPLY A RANDOM ROTATION AROUND THE BEAM AXIS
CALL HWRAZM(ONE,PX,PY)
IF (PX.EQ.ZERO) PX=1D-20
QX(1)=(QX(1)*PX -QY(1)*PY)
QY(1)=(QY(1) +QX(1)*PY)/PX
QX(2)=(QX(2)*PX -QY(2)*PY)
QY(2)=(QY(2) +QX(2)*PY)/PX
C-----RECONSTRUCT MOMENTA
IF (QT(IGAM).GT.QT(JGAM)) THEN
IGAM=3-IGAM
JGAM=3-JGAM
ENDIF
DOT=-Z(JGAM)*S+SHAT+2*(QX(1)*QX(2)+QY(1)*QY(2))
C-------SOLVE QUADRATIC IN Z(IGAM) TO FIND ELECTRON ENERGIES
A=S*(S*Z(JGAM)+QT(JGAM)**2)
B=S*DOT*(1+Z(JGAM))
C=DOT**2+S*QT(IGAM)**2*(1-Z(JGAM))**2-4*QT(IGAM)**2*QT(JGAM)**2
IF (B**2.LT.4*A*C) GOTO 20
ZZ(IGAM)=(-B+SQRT(B**2-4*A*C))/(2*A)
IF (ZZ(IGAM).LT.ZERO .OR. ZZ(IGAM).GT.ONE-Z(IGAM)) GOTO 20
ZZ(JGAM)=1-Z(JGAM)
C-------REJECT AGAINST PHOTON DISTRIBUTION FUNCTION
PROB=((1+ZZ(IGAM)**2)/(1-ZZ(IGAM)))/((1+(1-Z(IGAM))**2)/Z(IGAM))
& *((1+ZZ(JGAM)**2)/(1-ZZ(JGAM)))/((1+(1-Z(JGAM))**2)/Z(JGAM))
IF (HWRLOG(1-PROB)) GOTO 20
C-------RECONSTRUCT ALL OTHER VARIABLES
DO 40 I=1,2
IGAM=2*I+3
PHEP(1,IGAM)=QX(I)
PHEP(2,IGAM)=QY(I)
PHEP(4,IGAM)=ZZ(I)*PHEP(4,I)
PHEP(5,IGAM)=RMASS(IDHW(IGAM))
C---------IF MOMENTUM CANNOT BE CONSERVED TRY AGAIN
IF (PHEP(4,IGAM)**2-PHEP(5,IGAM)**2-QT(I)**2 .LT. 0) GOTO 20
PHEP(3,IGAM)=SIGN(SQRT(PHEP(4,IGAM)**2-PHEP(5,IGAM)**2-
& QT(I)**2),PHEP(3,IGAM))
CALL HWVDIF(4,PHEP(1,I),PHEP(1,IGAM),PHEP(1,IGAM-1))
CALL HWUMAS(PHEP(1,IGAM-1))
40 CONTINUE
C-----TIDY UP EVENT RECORD
NHEP=NHEP+1
IDHW(NHEP)=IDHW(3)
IDHEP(NHEP)=IDHEP(3)
ISTHEP(NHEP)=110
CALL HWVSUM(4,PHEP(1,4),PHEP(1,6),PHEP(1,NHEP))
CALL HWVSUM(4,PHEP(1,1),PHEP(1,2),PHEP(1,3))
CALL HWUMAS(PHEP(1,NHEP))
CALL HWUMAS(PHEP(1,3))
JMOHEP(1,NHEP)=4
JMOHEP(2,NHEP)=6
JMOHEP(1,3)=0
JMOHEP(2,3)=0
C-----CHOOSE FINAL STATE QUARK
IF (IHPRO.EQ.0) THEN
RWGT=HWRGEN(2)*EVWGT
ID=1
DO 50 IDL=1,NQ
IF (RWGT.GT.WGT(IDL)) ID=IDL+1
50 CONTINUE
EMSQ=RMASS(ID)**2
X=4*EMSQ/SHAT
BETA=SQRT(1-X)
ENDIF
C-----CHOOSE T (WHERE T = MANDELSTAM_T - EMSQ)
TMIN=-SHAT/2
TMAX=-SHAT/2*(1-BETA*CTMAX)
TRAT=TMAX/TMIN
NTRY=0
IF (IHPRO.LE.9) THEN
C-------FOR FFBAR, CHOOSE T ACCORDING TO -SHAT/T
60 NTRY=NTRY+1
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWHEGG',101)
GOTO 999
ENDIF
T=TRAT**HWRGEN(3)*TMIN
U=-T-SHAT
C-------REWEIGHT TO CORRECT DISTRIBUTION
DSDT=(T*U-2*EMSQ*(T+2*EMSQ))/T**2
& +( 2*EMSQ*(SHAT-4*EMSQ))/(T*U)
& +(T*U-2*EMSQ*(U+2*EMSQ))/U**2
PROB=-DSDT*T/SHAT / (1 + 2*X - 2*X**2)
IF (HWRLOG(1-PROB)) GOTO 60
ELSE
C-------FOR WW, CHOOSE T ACCORDING TO (SHAT/T)**2
70 NTRY=NTRY+1
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWHEGG',102)
GOTO 999
ENDIF
T=TMAX/(1-(1-TRAT)*HWRGEN(4))
U=-T-SHAT
C-------REWEIGHT TO CORRECT DISTRIBUTION
DSDT=( 3*(T*U)**2 - SHAT*T*U*(4*SHAT+6*EMSQ)
& + SHAT**2*(2*SHAT**2+6*EMSQ**2) ) / (T*U)**2
PROB=DSDT*(T/SHAT)**2 / (4.75 - 1.5*X + 1.5*X**2)
IF (HWRLOG(1-PROB)) GOTO 70
ENDIF
C-----SYMMETRIZE IN T,U
IF (HWRLOG(HALF)) T=U
C-----FILL EVENT RECORD
COSTH=(1+2*T/SHAT)/BETA
PC=0.5*BETA*PHEP(5,NHEP)
PHEP(5,NHEP+1)=RMASS(ID)
PHEP(5,NHEP+2)=RMASS(ID)
CALL HWDTWO(PHEP(1,NHEP),PHEP(1,NHEP+1),PHEP(1,NHEP+2),
& PC,COSTH,.TRUE.)
DO 80 I=1,2
IHEP=NHEP+I
JHEP=NHEP+3-I
ISTHEP(IHEP)=190
IF (IHPRO.LE.6) ISTHEP(IHEP)=112+I
IDHW(IHEP)=ID+NADD*(I-1)
IDHEP(IHEP)=IDPDG(IDHW(IHEP))
JDAHEP(I,NHEP)=IHEP
JMOHEP(1,IHEP)=NHEP
JMOHEP(2,IHEP)=JHEP
JDAHEP(2,IHEP)=JHEP
IF (IHPRO.EQ.10) THEN
RHOHEP(1,IHEP)=0.3333
RHOHEP(2,IHEP)=0.3333
RHOHEP(3,IHEP)=0.3333
ENDIF
80 CONTINUE
NHEP=NHEP+2
ENDIF
999 RETURN
END
CDECK ID>, HWHEGW.
*CMZ :- -26/04/91 10.18.56 by Bryan Webber
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHEGW
C----------------------------------------------------------------------
C W + GAMMA --> FF'BAR : MEAN EVWGT = CROSS SECTION IN NANOBARN
C BASED ON BOSON GLUON FUSION OF ABBIENDI AND STANCO
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,GMASS,EV(3),RV,Y,Q2,SHAT,Z,PHI,AJACOB,
& DSIGMA,ME,MP,ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,RSHAT
INTEGER LEP
INTEGER LEPFIN,ID1,ID2,I,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,IPROO
LOGICAL CHARGD,INCLUD(18),INSIDE(18),IFGO
EXTERNAL HWRGEN
SAVE LEPFIN,ID1,ID2
COMMON /HWAREA/ Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
& MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,LEP,
& IPROO,CHARGD,INCLUD,INSIDE
IQK=MOD(IPROC,10)
CHARGD=.TRUE.
IF(GENEV) THEN
C
IDHW(4)=IDHW(1)
IDHW(5)=59
IDHW(6)=15
IDHW(7)=LEPFIN
IDHW(8)=ID1
IDHW(9)=ID2
DO 1 I=4,9
1 IDHEP(I)=IDPDG(IDHW(I))
C
IFLAVD=ID1
IFLAVU=ID2-6
C
ISTHEP(4)=111
ISTHEP(5)=112
ISTHEP(6)=110
ISTHEP(7)=113
ISTHEP(8)=114
ISTHEP(9)=114
C
JMOHEP(1,4)=6
JMOHEP(2,4)=7
JMOHEP(1,5)=6
JMOHEP(2,5)=5
JMOHEP(1,6)=4
JMOHEP(2,6)=5
JMOHEP(1,7)=6
JMOHEP(2,7)=4
JMOHEP(1,8)=6
JMOHEP(2,8)=9
JMOHEP(1,9)=6
JMOHEP(2,9)=8
JDAHEP(1,4)=0
JDAHEP(2,4)=7
JDAHEP(1,5)=0
JDAHEP(2,5)=5
JDAHEP(1,6)=7
JDAHEP(2,6)=9
JDAHEP(1,7)=0
JDAHEP(2,7)=4
JDAHEP(1,8)=0
JDAHEP(2,8)=9
JDAHEP(1,9)=0
JDAHEP(2,9)=8
C---COMPUTATION OF MOMENTA IN LABORATORY FRAME OF REFERENCE
C---Persuade HWHBKI that the gluon is actually a photon...
GMASS=RMASS(13)
RMASS(13)=0
CALL HWHBKI
RMASS(13)=GMASS
C---put the other outgoing lepton in as well
IDHW(10)=IDHW(2)
IDHEP(10)=IDPDG(IDHW(10))
ISTHEP(10)=1
JMOHEP(1,10)=2
JMOHEP(2,10)=0
JDAHEP(1,10)=0
JDAHEP(2,10)=0
JDAHEP(1,2)=5
JDAHEP(2,2)=10
CALL HWVDIF(4,PHEP(1,2),PHEP(1,5),PHEP(1,10))
CALL HWUMAS(PHEP(1,10))
NHEP=10
C
C---if antilepton was first, do charge conjugation
IF (LEP.EQ.-1) THEN
DO 27 I=7,9
IF (IDHEP(I).NE.0 .AND. ABS(IDHEP(I)).LT.20) THEN
IDHW(I)=IDHW(I) + 6*SIGN(1,IDHEP(I))
IDHEP(I)=-IDHEP(I)
ENDIF
27 CONTINUE
ENDIF
C
C---half the time, do charge conjugation and parity flip
IF (HWRGEN(0).GT.HALF) THEN
DO 2 I=4,10
IF (IDHEP(I).NE.0 .AND. ABS(IDHEP(I)).LT.20) THEN
IDHW(I)=IDHW(I) + 6*SIGN(1,IDHEP(I))
IDHEP(I)=-IDHEP(I)
ENDIF
PHEP(1,I)=-PHEP(1,I)
PHEP(2,I)=-PHEP(2,I)
PHEP(3,I)=-PHEP(3,I)
2 CONTINUE
JMOHEP(1,10)=3-JMOHEP(1,10)
ENDIF
C
ELSE
C
EVWGT=ZERO
C---LEP = 1 IF TRACK 1 IS A LEPTON, -1 FOR ANTILEPTON
LEP=0
IF (IDHW(1).GE.121.AND.IDHW(1).LE.126) THEN
LEP=1
ELSEIF (IDHW(1).GE.127.AND.IDHW(1).LE.132) THEN
LEP=-1
ENDIF
IF (LEP.EQ.0) CALL HWWARN('HWHEGW',500)
C---program only works if beam and target are charge conjugates
IF (LEP*(IDHW(2)-IDHW(1)).NE.6) CALL HWWARN('HWHEGW',501)
C---program only works for equal energy beams colliding
IF (PHEP(3,3).NE.ZERO) CALL HWWARN('HWHEGW',503)
C
C---FINAL STATE IS ALWAYS SET UP AS IF PARTICLE IS BEFORE ANTI-PARTICLE
C AND THEN INVERTED IF NECESSARY
LEPFIN = MIN(IDHW(1),IDHW(2))+1
IF (IQK.LE.2) THEN
IFLAVU=2
IFLAVD=1
ID1 = 1
ID2 = 8
ELSEIF (IQK.LE.4) THEN
IFLAVU=4
IFLAVD=3
ID1 = 3
ID2 =10
ELSEIF (IQK.LE.6) THEN
IFLAVU=6
IFLAVD=5
ID1 = 5
ID2 =12
ELSEIF (IQK.EQ.7) THEN
IFLAVU=122
IFLAVD=121
ID1 = 121
ID2 = 128
C---INTERFERENCE TERMS IN EE -> EE NUE NUEB NEGLECTED: SIGMA UNRELIABLE
IF (FSTWGT) CALL HWWARN('HWHEGW',1)
ELSEIF (IQK.EQ.8) THEN
IFLAVU=124
IFLAVD=123
ID1 = 123
ID2 = 130
ELSEIF (IQK.EQ.9) THEN
IFLAVU=126
IFLAVD=125
ID1 = 125
ID2 = 132
ELSE
CALL HWWARN('HWHEGW',504)
ENDIF
IF (IQK.GT.0) THEN
IF (IQK.LE.6) IQK=0
CALL HWHBRN(IFGO)
IF(IFGO) GOTO 999
CALL HWHEGX
EVWGT = 2 * DSIGMA * AJACOB
IF (EVWGT.LT.ZERO) EVWGT=ZERO
ELSE
C---SUM OVER QUARK FLAVOURS
CALL HWHBRN(IFGO)
IF(IFGO) GOTO 999
DO 3 I=1,3
IF (SHAT.GT.(RMASS(IFLAVD)+RMASS(IFLAVU))**2) THEN
CALL HWHEGX
EV(I) = 2 * DSIGMA * AJACOB
IF (EV(I).LT.ZERO) EV(I)=ZERO
ELSE
EV(I)=ZERO
ENDIF
EVWGT=EVWGT+EV(I)
EV(I)=EVWGT
IFLAVU=IFLAVU+2
IFLAVD=IFLAVD+2
3 CONTINUE
C---CHOOSE QUARK FLAVOUR
RV=EV(3)*HWRGEN(1)
IF (RV.LT.EV(1)) THEN
ID1 = 1
ID2 = 8
ELSEIF (RV.LT.EV(2)) THEN
ID1 = 3
ID2 =10
ELSE
ID1 = 5
ID2 =12
ENDIF
ENDIF
ENDIF
999 RETURN
END
CDECK ID>, HWHEGX.
*CMZ :- -17/07/92 16.42.56 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHEGX
C-----------------------------------------------------------------------
C COMPUTES DIFFERENTIAL CROSS SECTION DSIGMA IN (Y,Q2,ETA,Z,PHI)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION TMAX,TMIN,A1,A2,B1,B2,I0,I1,I2,I3,I4,I5,MUSQ,
& MDSQ,ETA,Q1,COSTHE,S,G,T,U,C1,C2,D1,D2,F1,F2,COSBET,WPROP,D(4,4),
& C(4,4),QU,QD,QE,QW,PHOTON,EMWSQ,EMSSQ,CFAC,Y,Q2,SHAT,Z,PHI,
& AJACOB,DSIGMA,ME,MP,ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,
& RSHAT
INTEGER IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,IPROO,I,J,LEP
LOGICAL CHARGD,INCLUD(18),INSIDE(18)
COMMON /HWAREA/ Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
& MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,LEP,
& IPROO,CHARGD,INCLUD,INSIDE
C---INPUT VARIABLES
IF (IERROR.NE.0) RETURN
DSIGMA=0
IF (IFLAVU.LE.12) THEN
QU=QFCH(MOD(IFLAVU-1,6)+1)
QD=QFCH(MOD(IFLAVD-1,6)+1)
CFAC=CAFAC
ELSE
QU=QFCH(MOD(IFLAVU-1,6)+11)
QD=QFCH(MOD(IFLAVD-1,6)+11)
CFAC=1
ENDIF
QE=QFCH(11)
QW=+1
EMWSQ=RMASS(198)**2
EMSCA=PHEP(5,3)
EMSSQ=EMSCA**2
MUSQ=RMASS(IFLAVU)**2
MDSQ=RMASS(IFLAVD)**2
ETA=(SHAT+Q2)/EMSSQ/Y
IF (ETA.GT.ONE) RETURN
C---CALCULATE KINEMATIC TERMS
G=0.5*(ETA*EMSSQ*Y-Q2) -0.5*(MUSQ+MDSQ)
S=0.5*ETA*EMSSQ
T=0.5*ETA*EMSSQ*(1-Y)
U=0.5*Q2
C1=0.5*ETA*EMSSQ*Y*Z
C2=0.5*ETA*EMSSQ*Y*(1-Z)
COSBET=(-ETA*EMSSQ*Y+Q2*(2-Y))/(Y*(ETA*EMSSQ-Q2))
IF (SHAT.LE.(RMASS(IFLAVU)+RMASS(IFLAVD))**2) RETURN
Q1=SQRT((SHAT**2+MUSQ**2+MDSQ**2
& -2*SHAT*MUSQ-2*SHAT*MDSQ-2*MUSQ*MDSQ)/SHAT**2)
COSTHE=(1+(MDSQ-MUSQ)/SHAT-2*Z)/Q1
IF (ABS(COSTHE).GE.ONE .OR. ABS(COSBET).GE.ONE) RETURN
D1=0.25*(ETA*EMSSQ-Q2)*(1+(MDSQ-MUSQ)/SHAT-Q1*
& (COSTHE*COSBET+SQRT((1-COSTHE**2)*(1-COSBET**2))*COS(PHI)))
D2=S-U-D1
F1=D1+C1-G -MDSQ
F2=U+T-F1
C---CALCULATE TRACE TERMS
CALL HWVZRO(16,D)
CALL HWVZRO(16,C)
D(1,1)=2*F1*C2*S
D(2,2)=2*C1*D2*T
D(3,3)=-D1*(2*F2*G-D2*(F1+2*U))
& -D2*F1*(F2+U-D2+F1)
& +2*F1*F2*U
& -G*(-2*D1*(F1+F2+U)-F1*(D2+2*U)+2*D2*(U-F2)+2*U*(F2-U+G))
D(4,4)=2*F1*C2*S
D(1,2)=(D1+U-F2)*(D1*F2-F1*D2)-G*(D1*(F2+U)+U*(U-F2-G)+F1*D2)
D(1,3)=D1*F2*(-2*F1+U-F2+D1)
& +F1*(F2*(D2-2*U)+F1*D2)
& +G*(-D1*(2*F1+F2+U)-F1*(D2+2*U)+U*(F2-U+G))
D(1,4)=-2*F1*(D1+U)*(F2+G)
D(2,3)=D1*(D2*(F1+2*(U-F2))+F2*(F2-U-D1))
& +F1*D2**2
& +G*(D1*(F2+U)+D2*(F1-2*(U-F2))+U*(U-F2-G))
D(2,4)=-D1*F2*(U-F2+D1)
& -F1*D2*(U-D1-G-F2)
& -G*(U*(F2-U+G)-D1*(F2+U))
D(3,4)=D1*(F1*(D2+2*F2)+F2*(F2-U-D1))
& +F1*(2*F2*U-D2*(U+F1))
& +G*(D1*(2*F1+F2+U)+U*(2*F1-F2+U-G))
C---REGULATE PROPAGATORS
TMAX=EMSSQ-2*G
TMIN=PHEP(5,2)**2
A1=2*C1+MDSQ*(G+U)/G
A2=2*C2+MUSQ*(G+U)/G
B1=(2*U+MUSQ)/(2*G+2*U)
B2=(2*U+MDSQ)/(2*G+2*U)
I0=LOG(TMAX/TMIN)
I1=1/A1*(I0-LOG((A1+B1*TMAX)/(A1+B1*TMIN)))
I2=1/A2*(I0-LOG((A2+B2*TMAX)/(A2+B2*TMIN)))
I3=(B1*I1-B2*I2)/(B1*A2-B2*A1)
I4=1/A1*(I1+1/(A1+B1*TMAX)-1/(A1+B1*TMIN))
I5=1/A2*(I2+1/(A2+B2*TMAX)-1/(A2+B2*TMIN))
WPROP=1/((2*G-EMWSQ)**2+GAMW**2*EMWSQ)
C---CALCULATE COEFFICIENTS
C(1,1)= QU**2/(2*U+EMWSQ)**2 *I5
C(2,2)= QD**2/(2*U+EMWSQ)**2 *I4
C(3,3)= QW**2/(2*U+EMWSQ)**2 *WPROP *I0
C(4,4)= QE**2/(2*S)**2 *WPROP *I0
C(1,2)= 2*QU*QD/(2*U+EMWSQ)**2 *I3
C(1,3)= 2*QW*QU/(2*U+EMWSQ)**2 *WPROP*(2*G-EMWSQ) *I2
C(1,4)= 2*QU*QE/(2*S*(2*U+EMWSQ)) *WPROP*(2*G-EMWSQ) *I2
C(2,3)= 2*QW*QD/(2*U+EMWSQ)**2 *WPROP*(2*G-EMWSQ) *I1
C(2,4)= 2*QD*QE/(2*S*(2*U+EMWSQ)) *WPROP*(2*G-EMWSQ) *I1
C(3,4)= 2*QW*QE/(2*S*(2*U+EMWSQ)) *WPROP *I0
C---CALCULATE PHOTON STRUCTURE FUNCTION
PHOTON=ALPHEM * (1+(1-ETA)**2) / (2*PIFAC*ETA)
C---SUM ALL TENSOR CONTRIBUTIONS
DO 10 I=1,4
DO 10 J=1,4
10 DSIGMA=DSIGMA + C(I,J)*D(I,J)
C---CALCULATE TOTAL SUMMED AND AVERAGED MATRIX ELEMENT SQUARED
DSIGMA = DSIGMA * 2*CFAC*(4*PIFAC*ALPHEM)**3/SWEIN**2
C---CALCULATE DIFFERENTIAL CROSS-SECTION
DSIGMA = DSIGMA * GEV2NB*PHOTON/(512*PIFAC**4*ETA*EMSSQ)
END
CDECK ID>, HWHEPA.
*CMZ :- -12/10/01 10.05.16 by Peter Richardson
*-- Author : Bryan Webber and Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHEPA
C-----------------------------------------------------------------------
C (Initially polarised) e+e- --> ffbar (f=quark, mu or tau)
C If IPROC=107: --> gg, distributed as sum of light quarks.
C If fermion flavour specified mass effects fully included.
C EVWGT=sig(e+e- --> ffbar) in nb
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUPCM,HWUAEM,Q2NOW,Q2LST,FACTR,
& VF2,VF,CLF(7),PRAN,PQWT,PMAX,PTHETA,SINTH2,CPHI,SPHI,C2PHI,S2PHI,
& PPHI,SINTH,PCM,PP(5),EWGT
INTEGER ID1,ID2,IDF,IQ,IQ1,I
EXTERNAL HWRGEN,HWRUNI,HWUPCM,HWUAEM
SAVE Q2LST,FACTR,ID1,ID2,VF2,VF,CLF,EWGT
DATA Q2LST/0.D0/
IF (GENEV) THEN
IF (ID2.EQ.0) THEN
C Choose quark flavour
PRAN=TQWT*HWRGEN(0)
PQWT=0.
DO 10 IQ=1,MAXFL
PQWT=PQWT+CLQ(1,IQ)
IF (PQWT.GT.PRAN) GOTO 11
10 CONTINUE
IQ=MAXFL
11 IQ1=MAPQ(IQ)
DO 20 I=1,7
20 CLF(I)=CLQ(I,IQ)
ELSE
IQ1=ID1
ENDIF
C Label particles, assign outgoing particle masses
IDHW(NHEP+1)=200
IDHEP(NHEP+1)=23
ISTHEP(NHEP+1)=110
IF (ID1.EQ.7) THEN
IDHW(NHEP+2)=13
IDHW(NHEP+3)=13
IDHEP(NHEP+2)=21
IDHEP(NHEP+3)=21
PHEP(5,NHEP+2)=RMASS(13)
PHEP(5,NHEP+3)=RMASS(13)
ELSE
IDHW(NHEP+2)=IQ1
IDHW(NHEP+3)=IQ1+6
IDHEP(NHEP+2)=IDPDG(IQ1)
IDHEP(NHEP+3)=-IDHEP(NHEP+2)
PHEP(5,NHEP+2)=RMASS(IQ1)
PHEP(5,NHEP+3)=RMASS(IQ1)
ENDIF
ISTHEP(NHEP+2)=113
ISTHEP(NHEP+3)=114
JMOHEP(1,NHEP+1)=1
IF (JDAHEP(1,1).NE.0) JMOHEP(1,NHEP+1)=JDAHEP(1,1)
JMOHEP(2,NHEP+1)=2
IF (JDAHEP(1,2).NE.0) JMOHEP(2,NHEP+1)=JDAHEP(1,2)
JMOHEP(1,NHEP+2)=NHEP+1
JMOHEP(2,NHEP+2)=NHEP+3
JMOHEP(1,NHEP+3)=NHEP+1
JMOHEP(2,NHEP+3)=NHEP+2
JDAHEP(1,NHEP+1)=NHEP+2
JDAHEP(2,NHEP+1)=NHEP+3
JDAHEP(1,NHEP+2)=0
JDAHEP(2,NHEP+2)=NHEP+3
JDAHEP(1,NHEP+3)=0
JDAHEP(2,NHEP+3)=NHEP+2
C Generate polar and azimuthal angular distributions:
C CLF(1)*(1+(VF*COSTH)**2)+CLF(2)*(1-VF**2)+CLF(3)*2.*VF*COSTH
C +(VF*SINTH)**2*(CLF(4)*COS(2*PHI-PHI1-PHI2)
C +CLF(6)*SIN(2*PHI-PHI1-PHI2))
PMAX=CLF(1)*(1.+VF2)+CLF(2)*(1.-VF2)+ABS(CLF(3))*2.*VF
30 COSTH=HWRUNI(0,-ONE, ONE)
PTHETA=CLF(1)*(1.+VF2*COSTH**2)+CLF(2)*(1.-VF2)
& +CLF(3)*2.*VF*COSTH
IF (PTHETA.LT.PMAX*HWRGEN(1)) GOTO 30
IF (IDHW(1).GT.IDHW(2)) COSTH=-COSTH
SINTH2=1.-COSTH**2
IF (TPOL) THEN
PMAX=PTHETA+VF2*SINTH2*SQRT(CLF(4)**2+CLF(6)**2)
40 CALL HWRAZM(ONE,CPHI,SPHI)
C2PHI=2.*CPHI**2-1.
S2PHI=2.*CPHI*SPHI
PPHI=PTHETA+(CLF(4)*(C2PHI*COSS+S2PHI*SINS)
& +CLF(6)*(S2PHI*COSS-C2PHI*SINS))*VF2*SINTH2
IF (PPHI.LT.PMAX*HWRGEN(1)) GOTO 40
ELSE
CALL HWRAZM(ONE,CPHI,SPHI)
ENDIF
C Construct final state 4-mommenta
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PCM=HWUPCM(PHEP(5,NHEP+1),PHEP(5,NHEP+2),PHEP(5,NHEP+3))
C PP is momentum of track NHEP+2 in CoM (track NHEP+1) frame
SINTH=SQRT(SINTH2)
PP(5)=PHEP(5,NHEP+2)
PP(1)=PCM*SINTH*CPHI
PP(2)=PCM*SINTH*SPHI
PP(3)=PCM*COSTH
PP(4)=SQRT(PCM**2+PP(5)**2)
CALL HWULOB(PHEP(1,NHEP+1),PP(1),PHEP(1,NHEP+2))
CALL HWVDIF(4,PHEP(1,NHEP+1),PHEP(1,NHEP+2),PHEP(1,NHEP+3))
C Set production vertices
CALL HWVZRO(4,VHEP(1,NHEP+2))
CALL HWVEQU(4,VHEP(1,NHEP+2),VHEP(1,NHEP+3))
NHEP=NHEP+3
ELSE
EMSCA=PHEP(5,3)
Q2NOW=EMSCA**2
IF (Q2NOW.NE.Q2LST) THEN
C Calculate coefficients for cross-section
EMSCA=PHEP(5,3)
Q2LST=Q2NOW
FACTR=PIFAC*GEV2NB*HWUAEM(Q2NOW)**2/Q2NOW
ID1=MOD(IPROC,10)
ID2=MOD(ID1,7)
IF (ID2.EQ.0) THEN
CALL HWUEEC(1)
VF2=1.
VF=1.
EWGT=FACTR*FLOAT(NCOLO)*TQWT*4./3.
ELSE
IF (IPROC.LT.150) THEN
IDF=ID1
FACTR=FACTR*FLOAT(NCOLO)
ELSE
ID1=2*ID1+119
IDF=ID1-110
ENDIF
IF (EMSCA.LE.2.*RMASS(ID1)) THEN
EWGT=0.
ELSE
CALL HWUCFF(11,IDF,Q2NOW,CLF(1))
VF2=1.-4.*RMASS(ID1)**2/Q2NOW
VF=SQRT(VF2)
EWGT=FACTR*VF*(CLF(1)*(1.+VF2/3.)+CLF(2)*(1.-VF2))
ENDIF
ENDIF
ENDIF
EVWGT=EWGT
ENDIF
END
CDECK ID>, HWHEPG.
*CMZ :- -02/05/91 10.57.27 by Federico Carminati
*-- Author : Bryan Webber and Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHEPG
C-----------------------------------------------------------------------
C (Initially polarised) e-e+ --> qqbar g with parton thrust < THMAX,
C equivalent to: maximum parton energy < THMAX*EMSCA/2; or a JADE E0
c scheme, y_cut=1.-THMAX.
C If flavour specified mass effects fully included.
C EVWGT=sig(e^-e^+ --> qqbar g) in nb
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWUALF,HWUAEM,HWULDO,HWDPWT,Q2NOW,Q2LST,
& PHASP,QGMAX,QGMIN,FACTR,QM2,CLF(7),ORDER,PRAN,PQWT,QQG,QBG,SUM,
& RUT,QQLM,QQLP,QBLM,QBLP,DYN1,DYN2,DYN3,DYN4,DYN5,DYN6,XQ2,X2SUM,
& PVRT(4)
INTEGER ID1,IQ,I,LM,LP,IQ1
LOGICAL MASS
EXTERNAL HWRGEN,HWUALF,HWUAEM,HWULDO,HWDPWT
SAVE Q2NOW,Q2LST,QGMAX,QGMIN,FACTR,ORDER,ID1,MASS,QM2,CLF,LM,LP,
& IQ1,QQG,QBG,SUM
DATA Q2LST/0.D0/
IF (GENEV) THEN
C Label produced partons and calculate gluon spin
IDHW(NHEP+1)=200
IDHW(NHEP+2)=IQ1
IDHW(NHEP+3)=13
IDHW(NHEP+4)=IQ1+6
IDHEP(NHEP+1)=23
IDHEP(NHEP+2)=IQ1
IDHEP(NHEP+3)=21
IDHEP(NHEP+4)=-IQ1
ISTHEP(NHEP+1)=110
ISTHEP(NHEP+2)=113
ISTHEP(NHEP+3)=114
ISTHEP(NHEP+4)=114
JMOHEP(1,NHEP+1)=LM
JMOHEP(2,NHEP+1)=LP
JMOHEP(1,NHEP+2)=NHEP+1
JMOHEP(2,NHEP+2)=NHEP+3
JMOHEP(1,NHEP+3)=NHEP+1
JMOHEP(2,NHEP+3)=NHEP+4
JMOHEP(1,NHEP+4)=NHEP+1
JMOHEP(2,NHEP+4)=NHEP+2
JDAHEP(1,NHEP+1)=NHEP+2
JDAHEP(2,NHEP+1)=NHEP+4
JDAHEP(1,NHEP+2)=0
JDAHEP(2,NHEP+2)=NHEP+4
JDAHEP(1,NHEP+3)=0
JDAHEP(2,NHEP+3)=NHEP+2
JDAHEP(1,NHEP+4)=0
JDAHEP(2,NHEP+4)=NHEP+3
C Decide which quark radiated and assign production vertices
XQ2=(Q2NOW-2.*QBG)**2
X2SUM=XQ2+(Q2NOW-2.*QQG)**2
IF (XQ2.LT.HWRGEN(0)*X2SUM) THEN
C Quark radiated the gluon
CALL HWVZRO(4,VHEP(1,NHEP+4))
CALL HWVSUM(4,PHEP(1,NHEP+2),PHEP(1,NHEP+3),PVRT)
CALL HWUDKL(IQ1,PVRT,VHEP(1,NHEP+3))
CALL HWVEQU(4,VHEP(1,NHEP+3),VHEP(1,NHEP+2))
ELSE
C Anti-quark radiated the gluon
CALL HWVZRO(4,VHEP(1,NHEP+2))
CALL HWVSUM(4,PHEP(1,NHEP+4),PHEP(1,NHEP+3),PVRT)
CALL HWUDKL(IQ1,PVRT,VHEP(1,NHEP+3))
CALL HWVEQU(4,VHEP(1,NHEP+3),VHEP(1,NHEP+4))
ENDIF
IF (AZSPIN) THEN
C Calculate the transverse polarisation of the gluon
C Correlation with leptons presently neglected
GPOLN=(QQG**2+QBG**2)/((Q2NOW-2.*SUM)*Q2NOW)
GPOLN=2./(2.+GPOLN)
ENDIF
NHEP=NHEP+4
ELSE
EMSCA=PHEP(5,3)
Q2NOW=EMSCA**2
IF (Q2NOW.NE.Q2LST) THEN
Q2LST=Q2NOW
PHASP=3.*THMAX-2.
IF (PHASP.LE.ZERO) CALL HWWARN('HWHEPG',400)
QGMAX=.5*Q2NOW*THMAX
QGMIN=.5*Q2NOW*(1.-THMAX)
FACTR=GEV2NB*FLOAT(NCOLO)*CFFAC*HWUALF(1,EMSCA)
& *.5*(HWUAEM(Q2NOW)*PHASP)**2/Q2NOW
LM=1
IF (JDAHEP(1,LM).NE.0) LM=JDAHEP(1,LM)
LP=2
IF (JDAHEP(1,LP).NE.0) LP=JDAHEP(1,LP)
ORDER=1.
IF (IDHW(1).GT.IDHW(2)) ORDER=-ORDER
ID1=MOD(IPROC,10)
IF (ID1.NE.0) THEN
MASS=.TRUE.
QM2=RMASS(ID1)**2
CALL HWUCFF(11,ID1,Q2NOW,CLF(1))
FACTR=FACTR*CLF(1)
ELSE
MASS=.FALSE.
CALL HWUEEC(1)
FACTR=FACTR*TQWT
ENDIF
ENDIF
IF (ID1.EQ.0) THEN
C Select quark flavour
PRAN=TQWT*HWRGEN(1)
PQWT=0.
DO 10 IQ=1,MAXFL
PQWT=PQWT+CLQ(1,IQ)
IF (PQWT.GT.PRAN) GOTO 11
10 CONTINUE
IQ=MAXFL
11 IQ1=MAPQ(IQ)
DO 20 I=1,7
20 CLF(I)=CLQ(I,IQ)
ELSEIF (Q2NOW.GT.4*QM2/(2*THMAX-1)) THEN
IQ1=ID1
ELSE
EVWGT=0.
RETURN
ENDIF
C Select final state momentum configuration
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PHEP(5,NHEP+2)=RMASS(IQ1)
PHEP(5,NHEP+3)=RMASS(13)
PHEP(5,NHEP+4)=RMASS(IQ1)
30 CALL HWDTHR(PHEP(1,NHEP+1),PHEP(1,NHEP+2),
& PHEP(1,NHEP+3),PHEP(1,NHEP+4),HWDPWT)
QQG=HWULDO(PHEP(1,NHEP+2),PHEP(1,NHEP+3))
IF (QQG.LT.QGMIN) GOTO 30
QBG=HWULDO(PHEP(1,NHEP+4),PHEP(1,NHEP+3))
SUM=QQG+QBG
IF (QBG.LT.QGMIN.OR.SUM.GT.QGMAX) GOTO 30
QQLM=HWULDO(PHEP(1,NHEP+2),PHEP(1,LM))
QQLP=HWULDO(PHEP(1,NHEP+2),PHEP(1,LP))
QBLM=HWULDO(PHEP(1,NHEP+4),PHEP(1,LM))
QBLP=HWULDO(PHEP(1,NHEP+4),PHEP(1,LP))
DYN1=QQLM**2+QQLP**2+QBLM**2+QBLP**2
DYN2=0.
DYN3=DYN1-2.*(QQLM**2+QBLP**2)
IF (MASS) THEN
RUT=1./QQG+1./QBG
DYN1=DYN1+8.*QM2*(1.-.25*Q2NOW*RUT
& +QQLM*QQLP/(Q2NOW*QBG)+QBLM*QBLP/(Q2NOW*QQG))
DYN2=QM2*(Q2NOW-SUM*(2.+QM2*RUT)
& -4.*HWULDO(PHEP(1,NHEP+3),PHEP(1,LM))
& *HWULDO(PHEP(1,NHEP+3),PHEP(1,LP))/Q2NOW)
DYN3=DYN3+QM2*2.*RUT*(QBG*(QBLP-QBLM)-QQG*(QQLP-QQLM))
ENDIF
EVWGT=CLF(1)*DYN1+CLF(2)*DYN2+ORDER*CLF(3)*DYN3
IF (TPOL) THEN
C Include event plane azimuthal angle
DYN4=.5*Q2NOW
DYN5=DYN4
DYN6=0.
IF (MASS) THEN
DYN4=DYN4-QM2*SUM/QBG
DYN5=DYN5-QM2*SUM/QQG
DYN6=QM2
ENDIF
EVWGT=EVWGT
& +(CLF(4)*COSS-CLF(6)*SINS)
& *(DYN4*(PHEP(1,NHEP+2)**2-PHEP(2,NHEP+2)**2)
& +DYN5*(PHEP(1,NHEP+4)**2-PHEP(2,NHEP+4)**2))
& +(CLF(4)*SINS+CLF(6)*COSS)*2.
& *(DYN4*PHEP(1,NHEP+2)*PHEP(2,NHEP+2)
& +DYN5*PHEP(1,NHEP+4)*PHEP(2,NHEP+4))
& +(CLF(5)*COSS-CLF(7)*SINS)*DYN6
& *(PHEP(1,NHEP+3)**2-PHEP(2,NHEP+3)**2)
& +(CLF(5)*SINS+CLF(7)*COSS)*DYN6*2.
& *PHEP(1,NHEP+3)*PHEP(2,NHEP+3)
ENDIF
C Assign event weight
EVWGT=EVWGT*FACTR/(QQG*QBG*CLF(1))
ENDIF
END
CDECK ID>, HWHESL.
*CMZ :- -17/10/00 17:43:25 by Peter Richardson
*-- Author : Kosuke Odagiri & Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHESL
C-----------------------------------------------------------------------
C SUSY E+E- -> 2 SLEPTON PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWUAEM,EPS,HCS,RCS,S,PF,QPE,HWUPCM,PCM,
& FACTR,SN2TH,MZ,ME2(2,2,6),EMSC2,HWUMBW,HWRUNI,T,SQPE
INTEGER ID1,ID2,IL,IL1,IL2,I,J,IG,IG1,IHEP,NTRY,IDL,ILP,IDLR(2),
& IDSLP(2)
INTEGER SSNU, SSCH
PARAMETER (SSNU = 449, SSCH = 453)
EXTERNAL HWRGEN, HWUAEM,HWUMBW,HWUPCM,HWRUNI
SAVE HCS,ME2,IDLR,IDSLP
PARAMETER (EPS = 1.D-9)
DOUBLE COMPLEX Z, GZ, A, BL, BR, CL, CR, D, E
DOUBLE PRECISION F,FACT0
PARAMETER (Z = (0.D0,1.D0))
EQUIVALENCE (MZ, RMASS(200))
C
S = PHEP(5,3)**2
EMSC2 = S
EMSCA = SQRT(EMSC2)
IF(FSTWGT) THEN
IL = MOD((IPROC-740),5)
IF(IPROC.EQ.700.OR.IPROC.EQ.740) THEN
IDLR(1) = 0
IDLR(2) = 0
IDSLP(1) = 1
IDSLP(2) = 6
ELSE
IF(IL.EQ.0) THEN
IDLR(1) = 1
IDLR(2) = 1
IDSLP(1) = 2*(IPROC-740)/5
ELSEIF(IL.EQ.1) THEN
IDLR(1) = 0
IDLR(2) = 0
IDSLP(1) = 2*(IPROC-741)/5+1
ELSEIF(IL.EQ.2) THEN
IDLR(1) = 1
IDLR(2) = 1
IDSLP(1) = 2*(IPROC-742)/5+1
ELSEIF(IL.EQ.3) THEN
IDLR(1) = 1
IDLR(2) = 2
IDSLP(1) = 2*(IPROC-743)/5+1
ELSEIF(IL.EQ.4) THEN
IDLR(1) = 2
IDLR(2) = 2
IDSLP(1) = 2*(IPROC-744)/5+1
ENDIF
IDSLP(2) = IDSLP(1)
ENDIF
ENDIF
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
IDL = ABS(IDHEP(1))
ILP = IDL-10
COSTH = HWRUNI(1,-ONE,ONE)
SN2TH = 0.25D0 - 0.25D0*COSTH**2
FACT0 = GEV2NB*PIFAC*HWUAEM(EMSC2)**2/S
FACTR = FACT0*SN2TH
GZ = (S-MZ**2+Z*S*GAMZ/MZ)/S
c ~ ~*
c e+ e- -> l l
c
DO IL=1,6
DO I=1,2
DO J=1,2
ME2(I,J,IL) = ZERO
ENDDO
ENDDO
ENDDO
DO IL = IDSLP(1),IDSLP(2)
DO I = 1,2
DO J = 1,2
IF ((I.EQ.2.OR.J.EQ.2).AND.(((IL/2)*2).EQ.IL).OR.
& (IDLR(1).NE.0.AND.(IDLR(1).NE.I.OR.IDLR(2).NE.J)
& .AND.(IDLR(1).NE.J.OR.IDLR(2).NE.I))) THEN
QPE = -1.
ELSE
ID1 = 412 + I*12 + IL
ID2 = 412 + J*12 + IL
IL1 = IL + 10
QPE = S-(RMASS(ID1)+RMASS(ID2))**2
ENDIF
IF (QPE.GT.ZERO) THEN
SQPE = SQRT(QPE*(S-(RMASS(ID1)-RMASS(ID2))**2))
PF = SQPE/S
IF ((IL.NE.ILP).OR.(I.EQ.J)) THEN
A = QFCH(IL1)*QFCH(IDL)
BL = LFCH(IL1)/GZ
BR = RFCH(IL1)/GZ
CL = LMIXSS(IL,1,I)*LMIXSS(IL,1,J)
CR = LMIXSS(IL,2,I)*LMIXSS(IL,2,J)
D = (A+BL*LFCH(IDL))*CL+(A+BR*LFCH(IDL))*CR
E = (A+BL*RFCH(IDL))*CL+(A+BR*RFCH(IDL))*CR
IF (IL.EQ.ILP+1.OR.IL.EQ.ILP) THEN
F = ZERO
T = HALF*(SQPE*COSTH-S+RMASS(ID1)**2+RMASS(ID2)**2)
IF (IL.EQ.ILP) THEN
IF (I.EQ.J) THEN
IF (I.EQ.1) THEN
DO IG = 1,4
IG1 = SSNU+IG
F = F + SLFCH(IL1,IG)**2/(T-RMASS(IG1)**2)
ENDDO
D = D + F*S
ELSE
DO IG=1,4
IG1 = SSNU+IG
F = F +SRFCH(IL1,IG)**2/(T-RMASS(IG1)**2)
ENDDO
E = E + F*S
ENDIF
ELSE
ENDIF
ELSE
DO IG = 1,2
IG1 = SSCH+IG
F = F + WMXVSS(IG,1)**2/(T-RMASS(IG1)**2)
ENDDO
D = D + F*S/(TWO*SWEIN)
ENDIF
ENDIF
ME2(I,J,IL)=FACTR*PF**3*DREAL(
& (ONE-EPOLN(3))*(ONE+PPOLN(3))*DCONJG(D)*D
& +(ONE+EPOLN(3))*(ONE-PPOLN(3))*DCONJG(E)*E)
ELSE
F = ZERO
T = HALF*(SQPE*COSTH-S+RMASS(ID1)**2+RMASS(ID2)**2)
DO IG = 1,4
IG1 = SSNU+IG
F = F + SLFCH(IL1,IG)*SRFCH(IL1,IG)*
& ZSGNSS(IG)*RMASS(IG1)/(T-RMASS(IG1)**2)
ENDDO
C--production of el- er+
IF(I.EQ.1.AND.J.EQ.2) THEN
ME2(I,J,IL)=FACT0*PF*F**2*S*
& (ONE-EPOLN(3))*(ONE-PPOLN(3))
ELSE
C--production of er- el+
ME2(I,J,IL)=FACT0*PF*F**2*S*
& (ONE+EPOLN(3))*(ONE+PPOLN(3))
ENDIF
ENDIF
ELSE
ME2(I,J,IL)=ZERO
ENDIF
ENDDO
ENDDO
ENDDO
ENDIF
HCS = ZERO
C
DO IL = 1,6
DO I = 1,2
DO J = 1,2
IL1 = IL+I*12+412
IL2 = IL+J*12+418
HCS = HCS + ME2(I,J,IL)
IF (GENEV.AND.HCS.GT.RCS) GOTO 100
ENDDO
ENDDO
ENDDO
C---GENERATE EVENT
100 IF(GENEV) THEN
C--change sign of COSTH if antiparticle first
IF(IDHEP(1).LT.IDHEP(2)) COSTH = -COSTH
IDHW(NHEP+1) = 15
IDHEP(NHEP+1) = 0
ISTHEP(NHEP+1) = 110
IDHW(NHEP+2) = IL1
IDHW(NHEP+3) = IL2
IDHEP(NHEP+2) = IDPDG(IL1)
IDHEP(NHEP+3) = IDPDG(IL2)
C--select the particle masses and momenta
NTRY = 0
110 NTRY = NTRY+1
PHEP(5,NHEP+2) = HWUMBW(IL1)
PHEP(5,NHEP+3) = HWUMBW(IL2)
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PCM = HWUPCM(PHEP(5,NHEP+1),PHEP(5,NHEP+2),PHEP(5,NHEP+3))
IF(PCM.LT.ZERO.AND.NTRY.LE.NETRY) THEN
GOTO 110
ELSEIF(PCM.LT.ZERO) THEN
CALL HWWARN('HWHESL',100)
GOTO 999
ENDIF
C--Set up the colours etc
ISTHEP(NHEP+2) = 113
ISTHEP(NHEP+3) = 114
JMOHEP(1,NHEP+1) = 1
IF (JDAHEP(1,1).NE.0) JMOHEP(1,NHEP+1)=JDAHEP(1,1)
JMOHEP(2,NHEP+1) = 2
IF (JDAHEP(1,2).NE.0) JMOHEP(2,NHEP+1)=JDAHEP(1,2)
JMOHEP(1,NHEP+2) = NHEP+1
JMOHEP(2,NHEP+2) = NHEP+2
JMOHEP(1,NHEP+3) = NHEP+1
JMOHEP(2,NHEP+3) = NHEP+3
JDAHEP(1,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+3
JDAHEP(1,NHEP+2) = 0
JDAHEP(2,NHEP+2) = NHEP+2
JDAHEP(1,NHEP+3) = 0
JDAHEP(2,NHEP+3) = NHEP+3
C--Set up the momenta
IHEP = NHEP+2
IHEP = NHEP+2
PHEP(4,IHEP) = SQRT(PCM**2+PHEP(5,IHEP)**2)
PHEP(3,IHEP) = PCM*COSTH
PHEP(1,IHEP) = SQRT((PCM+PHEP(3,IHEP))*(PCM-PHEP(3,IHEP)))
PHEP(2,IHEP) = ZERO
CALL HWRAZM(PHEP(1,IHEP),PHEP(1,IHEP),PHEP(2,IHEP))
CALL HWULOB(PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP+1))
NHEP = NHEP+3
ELSE
EVWGT = HCS
ENDIF
999 RETURN
END
CDECK ID>, HWHESG.
*CMZ :- -18/10/00 13:46:47 by Peter Richardson
*-- Author : Kosuke Odagiri & Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHESG
C-----------------------------------------------------------------------
C SUSY E+E- -> 2 GAUGINO PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWUAEM,HCS,RCS,MNU(4),MNU2(4),HWRUNI,
& FACA,M1(4,4),S2W,XC(4),XD(4),MSNU,
& MZ,HWHSS2,U,T,QPE,SQPE,MSL,MSL2,MSR,MSR2,
& SGN,S,SM,DM,PF,PCM,HWUPCM,XW,S22W,
& MSNU2,MCH(2),MCH2(2),DAB,M2(2,2),HWUMBW
INTEGER I,IQ1,IQ2,SSNU,NTID(2),CHID(2),IG1,IG2,IHEP,SSCH,ISL,ISR,
& ISN,IDL,NTRY
LOGICAL NEUT,CHAR
SAVE HCS,M1,M2,NTID,ISL,ISR,ISN,IDL,CHID,NEUT,CHAR
EXTERNAL HWRGEN,HWUAEM,HWRUNI,HWHSS2,HWUPCM,HWUMBW
DOUBLE COMPLEX Z, Z0, Z1, C1, C2, C3,GZ, CLL, CLR, CRL, CRR
PARAMETER (Z = (0.D0,1.D0), Z0 = (0.D0,0.D0), Z1 = (1.D0,0.D0))
PARAMETER (SSNU=449,SSCH = 453)
EQUIVALENCE (MZ, RMASS(200))
EQUIVALENCE (XC(1), ZMIXSS(1,3)), (XC(2), ZMIXSS(2,3))
EQUIVALENCE (XC(3), ZMIXSS(3,3)), (XC(4), ZMIXSS(4,3))
EQUIVALENCE (XD(1), ZMIXSS(1,4)), (XD(2), ZMIXSS(2,4))
EQUIVALENCE (XD(3), ZMIXSS(3,4)), (XD(4), ZMIXSS(4,4))
C--Start of the code
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
C--Decide which processes to generate
IF(FSTWGT) THEN
NEUT = .TRUE.
CHAR = .TRUE.
C--neutralino pair production
IF(IPROC.GE.710.AND.IPROC.LE.726) THEN
CHAR = .FALSE.
IF(IPROC.EQ.710) THEN
NTID(1) = 0
NTID(2) = 0
ELSE
NTID(1) = INT((IPROC-707)/4)
NTID(2) = MOD((IPROC-711),4)+1
ENDIF
C--chargino pair production
ELSEIF(IPROC.GE.730.AND.IPROC.LE.734) THEN
NEUT = .FALSE.
IF(IPROC.EQ.730) THEN
CHID(1) = 0
CHID(2) = 0
ELSE
CHID(1) = INT((IPROC-729)/2)
CHID(2) = MOD((IPROC-731),2)+1
ENDIF
ELSEIF(IPROC.NE.700) THEN
CALL HWWARN('HWHESG',500)
ENDIF
C--check the particles in the beam
IF(ABS(IDHEP(1)).EQ.11) THEN
C--electron beams
ISL = 425
ISR = 437
ISN = 426
ELSEIF(ABS(IDHEP(1)).EQ.13) THEN
C--muon beams
ISL = 427
ISR = 439
ISN = 428
ELSE
CALL HWWARN('HWHESG',501)
ENDIF
IDL=ABS(IDHEP(1))
ENDIF
DO I=1,4
MNU(I) = RMASS(SSNU+I)
MNU2(I) = MNU(I)**2
ENDDO
DO IG1 = 1,2
MCH(IG1) = RMASS(IG1+SSCH)
MCH2(IG1) = MCH(IG1)**2
ENDDO
COSTH = HWRUNI(1,-ONE,ONE)
XW = TWO * SWEIN
S22W = XW * (TWO - XW)
S2W = SQRT(S22W)
S = PHEP(5,3)**2
EMSCA = PHEP(5,3)
FACA = HWUAEM(S)**2
GZ = S-MZ**2+Z*S/MZ*GAMZ
MSL = RMASS(ISL)
MSR = RMASS(ISR)
MSL2 = MSL**2
MSR2 = MSR**2
MSNU = RMASS(ISN)
MSNU2 = MSNU**2
C--neutralino pair production
IF(.NOT.NEUT) THEN
DO IQ1=1,4
DO IQ2=1,4
M1(IQ1,IQ2) = ZERO
ENDDO
ENDDO
GOTO 100
ENDIF
DO IQ1=1,4
DO IQ2=1,4
SM = MNU(IQ1) + MNU(IQ2)
QPE = S - SM**2
IF(QPE.GE.ZERO.AND.
& (NTID(1).EQ.0.OR.(IQ1.EQ.NTID(1).AND.IQ2.EQ.NTID(2))
& .OR.(IQ1.EQ.NTID(2).AND.IQ2.EQ.NTID(1)))) THEN
DM = MNU(IQ1) - MNU(IQ2)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH - S + MNU2(IQ1) + MNU2(IQ2))
U = - T - S + MNU2(IQ1) + MNU2(IQ2)
C1 = (XD(IQ1)*XD(IQ2)-XC(IQ1)*XC(IQ2))/S2W/GZ
C2 = - C1
SGN = ZSGNSS(IQ1)*ZSGNSS(IQ2)
CLL = LFCH(IDL)*C1+SLFCH(IDL,IQ1)*SLFCH(IDL,IQ2)/(U-MSL2)
CLR = LFCH(IDL)*C2-SLFCH(IDL,IQ1)*SLFCH(IDL,IQ2)/(T-MSL2)
CRL = RFCH(IDL)*C1-SRFCH(IDL,IQ1)*SRFCH(IDL,IQ2)/(T-MSR2)
CRR = RFCH(IDL)*C2+SRFCH(IDL,IQ1)*SRFCH(IDL,IQ2)/(U-MSR2)
C--modified to include beam polarization PR 10/10/01
M1(IQ1,IQ2) = FACA*PF*GEV2NB*PIFAC/S*HALF*
& HWHSS2(S,T,U,MNU(IQ1),MNU(IQ2),SGN,CLL,CLR,CRL,CRR)
ELSE
M1(IQ1,IQ2) = ZERO
ENDIF
ENDDO
ENDDO
C--chargino pair production
100 IF(.NOT.CHAR) THEN
DO IG1=1,2
DO IG2=1,2
M2(IG1,IG2) = ZERO
ENDDO
ENDDO
GOTO 200
ENDIF
DO IG1 = 1,2
DO IG2 = 1,2
SM = MCH(IG1) + MCH(IG2)
QPE = S - SM**2
IF (QPE.GE.ZERO.AND.
& (CHID(1).EQ.0.OR.(CHID(1).EQ.IG1.AND.CHID(2).EQ.IG2)
& .OR.(CHID(1).EQ.IG2.AND.CHID(2).EQ.IG1))) THEN
DM = MCH(IG1) - MCH(IG2)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH - S + MCH2(IG1) + MCH2(IG2))
U = - T - S + MCH2(IG1) + MCH2(IG2)
DAB = ABS(FLOAT(IG1+IG2-3))
C1 = (-WMXVSS(IG1,2)*WMXVSS(IG2,2)+DAB*S22W/XW)/S2W/GZ
C2 = (-WMXUSS(IG1,2)*WMXUSS(IG2,2)+DAB*S22W/XW)/S2W/GZ
SGN = WSGNSS(IG1)*WSGNSS(IG2)
C3 = -DAB*QFCH(IDL)/S
CLL = C3- LFCH(IDL)*C1
& +WMXVSS(IG1,1)*WMXVSS(IG2,1)/((U-MSNU2)*XW)
CLR = C3- LFCH(IDL)*C2
CRL = C3- RFCH(IDL)*C1
CRR = C3- RFCH(IDL)*C2
C--modified to include beam polarization PR 10/10/01
M2(IG1,IG2)=FACA*PF*GEV2NB*PIFAC/S*
& HWHSS2(S,T,U,MCH(IG1),MCH(IG2),SGN,CLL,CLR,CRL,CRR)
ELSE
M2(IG1,IG2) = ZERO
ENDIF
ENDDO
ENDDO
ENDIF
C--Add up the weights now
200 HCS = ZERO
IF(.NOT.NEUT) GOTO 250
DO IQ1=1,4
IG1 = SSNU+IQ1
DO IQ2=1,4
IG2 = SSNU+IQ2
HCS = HCS+M1(IQ1,IQ2)
IF(GENEV.AND.HCS.GT.RCS) GOTO 900
ENDDO
ENDDO
250 IF(.NOT.CHAR) GOTO 900
DO IQ1 = 1,2
IG1 = SSCH+IQ1
DO IQ2 = 1,2
IG2 = SSCH+IQ2+2
HCS = HCS + M2(IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) GOTO 900
ENDDO
ENDDO
900 IF(GENEV) THEN
C--change sign of COSTH if antiparticle first
IF(IDHEP(1).LT.IDHEP(2)) COSTH = -COSTH
C-Set up the particle types
IDHW(NHEP+1) = 15
IDHEP(NHEP+1) = 0
ISTHEP(NHEP+1) = 110
IDHW(NHEP+2) = IG1
IDHW(NHEP+3) = IG2
IDHEP(NHEP+2) = IDPDG(IG1)
IDHEP(NHEP+3) = IDPDG(IG2)
C--select the particle masses and momenta
NTRY = 0
910 NTRY = NTRY+1
PHEP(5,NHEP+2) = HWUMBW(IG1)
PHEP(5,NHEP+3) = HWUMBW(IG2)
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PCM = HWUPCM(PHEP(5,NHEP+1),PHEP(5,NHEP+2),PHEP(5,NHEP+3))
IF(PCM.LT.ZERO.AND.NTRY.LE.NETRY) THEN
GOTO 910
ELSEIF(PCM.LT.ZERO) THEN
CALL HWWARN('HWHESG',100)
GOTO 999
ENDIF
C--Set up the colours etc
ISTHEP(NHEP+2) = 113
ISTHEP(NHEP+3) = 114
JMOHEP(1,NHEP+1) = 1
C--PR Bug fix 10/10/01
IF (JDAHEP(1,1).NE.0) JMOHEP(1,NHEP+1)=JDAHEP(1,1)
JMOHEP(2,NHEP+1) = 2
IF (JDAHEP(1,2).NE.0) JMOHEP(2,NHEP+1)=JDAHEP(1,2)
JMOHEP(1,NHEP+2) = NHEP+1
JMOHEP(2,NHEP+2) = NHEP+2
JMOHEP(1,NHEP+3) = NHEP+1
JMOHEP(2,NHEP+3) = NHEP+3
JDAHEP(1,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+3
JDAHEP(1,NHEP+2) = 0
JDAHEP(2,NHEP+2) = NHEP+3
JDAHEP(1,NHEP+3) = 0
JDAHEP(2,NHEP+3) = NHEP+2
C--Set up the momenta
IHEP = NHEP+2
PHEP(4,IHEP) = SQRT(PCM**2+PHEP(5,IHEP)**2)
PHEP(3,IHEP) = PCM*COSTH
PHEP(1,IHEP) = SQRT((PCM+PHEP(3,IHEP))*(PCM-PHEP(3,IHEP)))
PHEP(2,IHEP) = ZERO
CALL HWRAZM(PHEP(1,IHEP),PHEP(1,IHEP),PHEP(2,IHEP))
CALL HWULOB(PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP+1))
NHEP = NHEP+3
ELSE
EVWGT = HCS
ENDIF
999 RETURN
END
CDECK ID>, HWHESP.
*CMZ :- -18/10/00 13:46:47 by Peter Richardson
*-- Author : Kosuke Odagiri & Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHESP
C-----------------------------------------------------------------------
C SUSY E+E- -> 2 SPARTICLE PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION SAVWT(3),RANWT,HWRGEN
EXTERNAL HWRGEN
SAVE SAVWT
IF(IPROC.EQ.700) THEN
IF(GENEV) THEN
RANWT = SAVWT(3)*HWRGEN(0)
IF(RANWT.LT.SAVWT(1)) THEN
CALL HWHESG
ELSEIF(RANWT.LT.SAVWT(2)) THEN
CALL HWHESL
ELSEIF(RANWT.LT.SAVWT(3)) THEN
CALL HWHESQ
ENDIF
ELSE
CALL HWHESG
SAVWT(1) = EVWGT
CALL HWHESL
SAVWT(2) = SAVWT(1)+EVWGT
CALL HWHESQ
SAVWT(3) = SAVWT(2)+EVWGT
EVWGT = SAVWT(3)
ENDIF
ELSEIF(IPROC.LT.740) THEN
CALL HWHESG
ELSEIF(IPROC.LT.760) THEN
CALL HWHESL
ELSEIF(IPROC.LT.790) THEN
CALL HWHESQ
ELSE
C---UNRECOGNIZED PROCESS
CALL HWWARN('HWHESP',500)
ENDIF
END
CDECK ID>, HWHESQ.
*CMZ :- -16/10/00 15:34:113 by Peter Richardson
*-- Author : Kosuke Odagiri & Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHESQ
C-----------------------------------------------------------------------
C SUSY E+E- -> 2 SQUARK PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWUAEM,EPS,HCS,RCS,S,PF,QPE,HWUPCM,PCM,
& FACTR,SN2TH,MZ,ME2(2,2,6),EMSC2,HWUMBW,HWRUNI,SQPE
INTEGER ID1,ID2,IQ,IQ1,IQ2,I,J,IHEP,IDL,IDLR(2),IDSQU(2),NTRY
EXTERNAL HWRGEN,HWUAEM,HWUMBW,HWUPCM,HWRUNI
SAVE HCS,ME2,IDLR,IDSQU
PARAMETER (EPS = 1.D-9)
DOUBLE COMPLEX Z, GZ, A, BL, BR, CL, CR, D, E
PARAMETER (Z = (0.D0,1.D0))
EQUIVALENCE (MZ, RMASS(200))
C
S = PHEP(5,3)**2
EMSC2 = S
EMSCA = SQRT(EMSC2)
IF(FSTWGT) THEN
IF(IPROC.EQ.700.OR.IPROC.EQ.760) THEN
IDLR(1) = 0
IDLR(2) = 0
IDSQU(1) = 1
IDSQU(2) = 6
ELSEIF(IPROC.GT.760.AND.IPROC.LE.784) THEN
IQ = MOD((IPROC-761),4)
IF(IQ.EQ.0) THEN
IDLR(1) = 0
IDLR(2) = 0
ELSEIF(IQ.EQ.1) THEN
IDLR(1) = 1
IDLR(2) = 1
ELSEIF(IQ.EQ.2) THEN
IDLR(1) = 1
IDLR(2) = 2
ELSEIF(IQ.EQ.3) THEN
IDLR(1) = 2
IDLR(2) = 2
ENDIF
IDSQU(1) = (IPROC-761)/4+1
IDSQU(2) = IDSQU(1)
ELSE
CALL HWWARN('HWHESQ',500)
ENDIF
ENDIF
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
COSTH = HWRUNI(1,-ONE,ONE)
SN2TH = 0.25D0 - 0.25D0*COSTH**2
FACTR = CAFAC*GEV2NB*PIFAC*HWUAEM(EMSC2)**2*SN2TH/S
GZ = (S-MZ**2+Z*S*GAMZ/MZ)/S
IDL = ABS(IDHEP(1))
c ~ ~*
c e+ e- -> q q
c
DO IQ=1,6
DO I=1,2
DO J=1,2
ME2(I,J,IQ) = ZERO
ENDDO
ENDDO
ENDDO
DO IQ = IDSQU(1),IDSQU(2)
DO I = 1,2
DO J = 1,2
IF ((I.NE.J).AND.(IQ.LT.5).OR.
& (IDLR(1).NE.0.AND.(IDLR(1).NE.I.OR.IDLR(2).NE.J)
& .AND.(IDLR(1).NE.J.OR.IDLR(2).NE.I))) THEN
QPE = -1.
ELSE
ID1 = 388 + I*12 + IQ
ID2 = 388 + J*12 + IQ
QPE = S-(RMASS(ID1)+RMASS(ID2))**2
ENDIF
IF (QPE.GT.ZERO) THEN
SQPE = SQRT(QPE*(S-(RMASS(ID1)-RMASS(ID2))**2))
PF = SQPE/S
A = QFCH(IQ)*QFCH(IDL)
BL = LFCH(IQ)/GZ
BR = RFCH(IQ)/GZ
CL = QMIXSS(IQ,1,I)*QMIXSS(IQ,1,J)
CR = QMIXSS(IQ,2,I)*QMIXSS(IQ,2,J)
D = (A+BL*LFCH(IDL))*CL+(A+BR*LFCH(IDL))*CR
E = (A+BL*RFCH(IDL))*CL+(A+BR*RFCH(IDL))*CR
ME2(I,J,IQ)=FACTR*PF**3*DREAL(
& (ONE-EPOLN(3))*(ONE+PPOLN(3))*DCONJG(D)*D
& +(ONE+EPOLN(3))*(ONE-PPOLN(3))*DCONJG(E)*E)
ELSE
ME2(I,J,IQ)=ZERO
ENDIF
ENDDO
ENDDO
ENDDO
ENDIF
HCS = ZERO
C
DO IQ = 1,6
DO I = 1,2
DO J = 1,2
IQ1 = IQ+I*12+388
IQ2 = IQ+J*12+394
HCS = HCS + ME2(I,J,IQ)
IF (GENEV.AND.HCS.GT.RCS) GOTO 100
ENDDO
ENDDO
ENDDO
C---GENERATE EVENT
100 IF(GENEV) THEN
IDHW(NHEP+1) = 15
IDHEP(NHEP+1) = 0
ISTHEP(NHEP+1) = 110
IDHW(NHEP+2) = IQ1
IDHW(NHEP+3) = IQ2
IDHEP(NHEP+2) = IDPDG(IQ1)
IDHEP(NHEP+3) = IDPDG(IQ2)
C--Select the particle masses and momenta
110 NTRY = NTRY+1
PHEP(5,NHEP+2) = HWUMBW(IQ1)
PHEP(5,NHEP+3) = HWUMBW(IQ2)
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PCM = HWUPCM(PHEP(5,NHEP+1),PHEP(5,NHEP+2),PHEP(5,NHEP+3))
IF(PCM.LT.ZERO.AND.NTRY.LE.NETRY) THEN
GOTO 110
ELSEIF(PCM.LT.ZERO) THEN
CALL HWWARN('HWHESQ',100)
GOTO 999
ENDIF
C--Set up the colours etc
ISTHEP(NHEP+2) = 113
ISTHEP(NHEP+3) = 114
JMOHEP(1,NHEP+1) = 1
IF (JDAHEP(1,1).NE.0) JMOHEP(1,NHEP+1)=JDAHEP(1,1)
JMOHEP(2,NHEP+1) = 2
IF (JDAHEP(1,2).NE.0) JMOHEP(2,NHEP+1)=JDAHEP(1,2)
JMOHEP(1,NHEP+2) = NHEP+1
JMOHEP(2,NHEP+2) = NHEP+3
JMOHEP(1,NHEP+3) = NHEP+1
JMOHEP(2,NHEP+3) = NHEP+2
JDAHEP(1,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+3
JDAHEP(1,NHEP+2) = 0
JDAHEP(2,NHEP+2) = NHEP+3
JDAHEP(1,NHEP+3) = 0
JDAHEP(2,NHEP+3) = NHEP+2
C--Set up the momenta
IHEP = NHEP+2
PHEP(4,IHEP) = SQRT(PCM**2+PHEP(5,IHEP)**2)
PHEP(3,IHEP) = PCM*COSTH
PHEP(1,IHEP) = SQRT((PCM+PHEP(3,IHEP))*(PCM-PHEP(3,IHEP)))
CALL HWRAZM(PHEP(1,IHEP),PHEP(1,IHEP),PHEP(2,IHEP))
CALL HWULOB(PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP+1))
NHEP = NHEP+3
ELSE
EVWGT = HCS
ENDIF
999 RETURN
END
CDECK ID>, HWHEW0.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Zoltan Kunszt, modified by Bryan Webber & Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHEW0(IP,ETOT,XM,PR,WEIGHT,CR)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,ETOT,XM(2),PR(5,2),WEIGHT,CR,XM1,XM2,S,
& D1,PABS,D,CX,C,E,F,SC,G
INTEGER IP,I
EXTERNAL HWRGEN
WEIGHT=ZERO
XM1=XM(1)**2
XM2=XM(2)**2
S=ETOT*ETOT
D1=S-XM1-XM2
PABS=D1*D1-4.*XM1*XM2
IF (PABS.LE.ZERO) RETURN
PABS=SQRT(PABS)
D=D1/PABS
IF(IP.EQ.2)GOTO3
CX=CR
C=D-(D+CX)*((D-CR)/(D+CX))**HWRGEN(2)
GOTO 4
3 E=((D+ONE)/(D-ONE))*(TWO*HWRGEN(3)-ONE)
C=D*((E-ONE)/(E+ONE))
4 F=2D0*PIFAC*HWRGEN(4)
SC=SQRT(ONE-C*C)
PR(4,1)=(S+XM1-XM2)/(TWO*ETOT)
PR(5,1)=PR(4,1)*PR(4,1)-XM1
IF (PR(5,1).LE.ZERO) RETURN
PR(5,1)=SQRT(PR(5,1))
PR(4,2)=ETOT-PR(4,1)
PR(3,1)=PR(5,1)*C
PR(5,2)=PR(5,1)
PR(2,1)=PR(5,1)*SC*COS(F)
PR(1,1)=PR(5,1)*SC*SIN(F)
DO 7 I=1,3
7 PR(I,2)=-PR(I,1)
G=0.
IF(IP.EQ.1)G=(D-C)*LOG((D+CX)/(D-CR))
IF(IP.EQ.2)G=(D*D-C*C)/D*LOG((D+ONE)/(D-ONE))
WEIGHT=PIFAC*G*PR(5,1)/ETOT*HALF
END
CDECK ID>, HWHEW1.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Zoltan Kunszt, modified by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHEW1(NPART)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION P(4,7),XMASS,PLAB,PRW,PCM
INTEGER NPART,I,J,K
COMMON/HWHEWP/ XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
DO 10 I=1,NPART
P(1,I)=PLAB(3,I)
P(2,I)=PLAB(1,I)
P(3,I)=PLAB(2,I)
P(4,I)=PLAB(4,I)
10 CONTINUE
DO 20 J=1,4
DO 30 K=1,(NPART-2)
30 PCM(J,K)=P(J,K+2)
PCM(J,NPART-1)=-P(J,1)
PCM(J,NPART)=-P(J,2)
20 CONTINUE
END
CDECK ID>, HWHEW2.
*CMZ :- -26/04/91 13.22.25 by Federico Carminati
*-- Author : Zoltan Kunszt, modified by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHEW2(NPART,PPCM,H,CH,D)
C-----------------------------------------------------------------------
C PCM SHOULD BE DEFINED SUCH THAT ALL 4-MOMENTA ARE OUTGOING.
C CONVENTION FOR PCM AND P IS THAT DIRECTION 1 =BEAM, COMPONENT
C 4 = ENERGY AND COMPONENT 2 AND 3 ARE TRANSVERSE COMPONENTS.
C THUS INCOMING MOMENTA SHOULD CORRESPOND TO OUTGOING MOMENTA
C OF NEGATIVE ENERGY.
C PCM IS FILLED BY PHASE SPACE MONTE CARLO.
C I1-I7 HERE REFER TO HOW PCM INDEXING IS MAPPED TO OUR STANDARD
C 1-6=GLUON,GLUON,Q,QBAR,QP,QPBAR ORDERING `
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX PT5,ZT,Z1,ZI,ZP,ZQ,ZD,ZPS,ZQS,ZDPM,ZDMP,H(8,8),
& CH(8,8),D(8,8)
DOUBLE PRECISION ZERO,ONE,PPCM(5,8),P(5,8),WRN(8),EPS,Q1,Q2,QP,QM,
& P1,P2,PP,PM,DMP,DPM,PT,QT,PTI,QTI,HALF
INTEGER J,L,IJ,II,JJ,I,NPART,IP1,IPP1
PARAMETER (ZERO=0.D0,ONE=1.D0,HALF=0.5D0)
EPS=0.0000001
ZI=DCMPLX(ZERO,ONE)
Z1=DCMPLX(ONE,ZERO)
C FOLLOWING DO LOOP IS TO CONVERT TO OUR STANDARD INDEXING
DO 1 L=1,NPART
DO 1 IJ=1,4
1 P(IJ,L)=PPCM(IJ,L)
DO 2 II=1,8
WRN(II)=ONE
IF(P(4,II).LT.ZERO) WRN(II)=-ONE
DO 2 JJ=1,4
P(JJ,II)=WRN(II)*P(JJ,II)
2 CONTINUE
C THE ABOVE CHECKS FOR MOMENTA WITH NEGATIVE ENERGY,INNER PRODUCTS
C ARE EXPRESSED DIFFERENTLY FOR DIFFERENT CASES
DO 11 I=1,NPART-1
IP1=I+1
DO 11 J=IP1,NPART
Q1=P(4,I)+P(1,I)
QP=0.0
IF(Q1.GT.EPS)QP=SQRT(Q1)
Q2=P(4,I)-P(1,I)
QM=0.0
IF(Q2.GT.EPS)QM=SQRT(Q2)
P1=P(4,J)+P(1,J)
PP=0.
IF(P1.GT.EPS)PP=SQRT(P1)
P2=P(4,J)-P(1,J)
PM=0.
IF(P2.GT.EPS)PM=SQRT(P2)
DMP=PM*QP
ZDMP=DCMPLX(DMP,ZERO)
DPM=PP*QM
ZDPM=DCMPLX(DPM,ZERO)
C NOTE THAT IN OUR INNER PRODUCT NOTATION WE ARE COMPUTING
PT=SQRT(P(2,J)**2+P(3,J)**2)
QT=SQRT(P(2,I)**2+P(3,I)**2)
IF(PT.GT.EPS) GOTO 99
ZP=Z1
GOTO 98
99 PTI=ONE/PT
ZP=DCMPLX(PTI*P(2,J),PTI*P(3,J))
98 ZPS=DCONJG(ZP)
IF(QT.GT.EPS) GOTO 89
ZQ=Z1
GOTO 88
89 QTI=ONE/QT
ZQ=DCMPLX(QTI*P(2,I),QTI*P(3,I))
88 ZQS=DCONJG(ZQ)
ZT=Z1
IF(WRN(I).LT.ZERO) ZT=ZT*ZI
IF(WRN(J).LT.ZERO) ZT=ZT*ZI
H(J,I)=(ZDMP*ZP-ZDPM*ZQ)*ZT
CH(J,I)=(ZDMP*ZPS-ZDPM*ZQS)*ZT
ZD=H(J,I)*CH(J,I)
PT5=DCMPLX(HALF,ZERO)
D(J,I)=PT5*ZD
11 CONTINUE
DO 60 I=1,NPART-1
IPP1=I+1
DO 60 J=IPP1,NPART
H(I,J)=-H(J,I)
CH(I,J)=-CH(J,I)
60 D(I,J)=D(J,I)
END
CDECK ID>, HWHEW3.
*CMZ :- -27/03/92 19.48.55 by Mike Seymour
*-- Author : Zoltan Kunszt, modified by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHEW3(N1,N2,N3,N4,N5,N6,AMPWW)
C-----------------------------------------------------------------------
C RECALL THAT N1,N3,N5 MUST BE OUTGOING FERMIONS, AND N2,N4,N6 MUST BE
C OUTGOING ANTI-FERMIONS; 3,4 FOR W-, 5,6 FOR W+
C
C EQ1 AND T31 ARE FOR OUTOING INITIAL QUARK
C CHOOSE APPROPRIATE CASE ACCORDING TO NUPDN
C NUPDN=1 FOR UUBAR COLLISIONS, NUPDN=2 FOR DDBAR COLLISIONS
C NFINAL CHOOSES THE FINAL DECAYS, 1 FOR DOUBLE LEPTON, 2 FOR 1 FLAVOR
C LEPTON+2FAMILIES OF QUARKS, 3 THE SAME, 4 FOR DOUBLE 2FAM3COLOR QUARKS
C
C NOTE: EXTERNAL FACTOR OF COLOR AVERAGE AND SPIN AVERAGE AND
C COUPLING (E**8/4/9) MUST BE INCLUDED AS WELL AS COMPENSATION
C FOR ON POLE APPROXIMATION AS DESIRED.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWHEW4,ZH,ZCH,ZD,ZAMP1,ZAMP3,DWW,CWW,BWW,AWW,
& AWWM,AWWP,AMPTEM,ZTWO,ZHALF
DOUBLE PRECISION XW,ZMASS,T3,EQ1,RR,RL,ZM2,AMP2,RKW,COLFAC(4),
& AMPWW(4)
INTEGER I,N1,N2,N3,N4,N5,N6
EXTERNAL HWHEW4
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
EQUIVALENCE (XW,SWEIN),(ZMASS,RMASS(200))
SAVE COLFAC,ZTWO,ZHALF
DATA COLFAC/1.D0,3.D0,3.D0,9.D0/
DATA ZTWO,ZHALF/(2.0D0,0.0D0),(0.5D0,0.0D0)/
T3=-1.D0
EQ1=-1.D0
RR=-2.D0*EQ1*XW
RL=T3+RR
ZM2=ZMASS*ZMASS
ZAMP1=DCMPLX(ZM2)/(ZTWO*ZD(N1,N2))
& /(ZTWO*ZD(N1,N2)+DCMPLX(-ZM2,GAMZ*ZMASS))
ZAMP3=ZHALF/(ZD(N1,N5)+ZD(N1,N6)+ZD(N5,N6))
DWW=DCMPLX(RL)*ZAMP1+T3/(ZTWO*ZD(N1,N2))
CWW=DCMPLX(RR)*ZAMP1
AWW=DWW
BWW=DWW-ZAMP3
AWWM=AWW*HWHEW4(N1,N2,N3,N4,N5,N6)-BWW*HWHEW4(N1,N2,N5,N6,N3,N4)
AWWP=CWW*(HWHEW4(N2,N1,N5,N6,N3,N4)-HWHEW4(N2,N1,N3,N4,N5,N6))
AMPTEM=AWWM*DCONJG(AWWM)+AWWP*DCONJG(AWWP)
AMP2=DREAL(AMPTEM)
C AMP2 DOES NOT INCLUDE COLOR OR FLAVOR SUMS OR AVERAGES YET
C NOR DOES IT INCLUDE TO THIS POINT KWW**2
C 1 LEPTON FLAVOR IF APPROPRIATE FOR NFINAL CHOICE
RKW=0.25D0/XW**2
DO 6 I=1,4
6 AMPWW(I)=AMP2*COLFAC(I)*RKW*RKW
END
CDECK ID>, HWHEW4.
*CMZ :- -26/04/91 10.18.57 by Bryan Webber
*-- Author : Zoltan Kunszt, modified by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWHEW4(N1,N2,N3,N4,N5,N6)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWHEW4,ZH,ZCH,ZD
INTEGER N1,N2,N3,N4,N5,N6
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
HWHEW4=4*ZH(N1,N3)*ZCH(N2,N6)*(ZH(N1,N5)*ZCH(N1,N4)
X +ZH(N3,N5)*ZCH(N3,N4))
END
CDECK ID>, HWHEW5.
*CMZ : 20/08/91 22.09.33 by Federico Carminati
*-- Author : Zoltan Kunszt, modified by Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHEW5(N1,N2,N3,N4,N5,N6,HELSUM,HELCTY,ID1,ID2)
C-----------------------------------------------------------------------
C RECALL THAT N1,N3,N5 MUST BE OUTGOING FERMIONS, AND N2,N4,N6 MUST BE
C OUTGOING ANTI-FERMIONS; 3,4 FOR Z0, 5,6 FOR Z0
C
C EQ1 AND T31 ARE FOR OUTOING INITIAL QUARK
C CHOOSE APPROPRIATE CASE ACCORDING TO NUPDN
C NUPDN=1 FOR UUBAR COLLISIONS, NUPDN=2 FOR DDBAR COLLISIONS
C NFINAL CHOOSES THE FINAL DECAYS, 1 FOR DOUBLE LEPTON, 2 FOR 1 FLAVOR
C LEPTON+2FAMILIES OF QUARKS, 3 THE SAME, 4 FOR DOUBLE 2FAM3COLOR QUARKS
C
C NOTE: EXTERNAL FACTOR OF COLOR AVERAGE AND SPIN AVERAGE AND
C COUPLING (E**8/4/9) MUST BE INCLUDED AS WELL AS COMPENSATION
C FOR ON POLE APPROXIMATION AS DESIRED.
C
C---SLIGHTLY MODIFIED BY MHS, SO THAT HELCTY REFERS TO THE FINAL STATE
C INDICATED BY ID1,ID2
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWHEW4,ZH,ZCH,ZD,ZAMM(8),ZS134,ZS156,ZS234,ZS256,
& ZTWO
DOUBLE PRECISION CPFAC,CPALL,HELSUM,HELCTY,AMM
INTEGER N1,N2,N3,N4,N5,N6,ID1,ID2,I
EXTERNAL HWHEW4
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
COMMON/HWHEWR/CPFAC(12,12,8),CPALL(8)
SAVE ZTWO
DATA ZTWO/(2.0D0,0.0D0)/
C THE MATRIX ELEMENT DEPENDS ON
ZS134=(ZD(N1,N3)+ZD(N1,N4)+ZD(N3,N4))*ZTWO
ZS156=(ZD(N1,N5)+ZD(N1,N6)+ZD(N5,N6))*ZTWO
ZS234=(ZD(N2,N3)+ZD(N2,N4)+ZD(N3,N4))*ZTWO
ZS256=(ZD(N2,N5)+ZD(N2,N6)+ZD(N5,N6))*ZTWO
ZAMM(1)=HWHEW4(N1,N2,N3,N4,N5,N6)/ZS134+
> HWHEW4(N1,N2,N5,N6,N3,N4)/ZS156
ZAMM(2)=HWHEW4(N1,N2,N4,N3,N5,N6)/ZS134+
> HWHEW4(N1,N2,N5,N6,N4,N3)/ZS156
ZAMM(3)=HWHEW4(N1,N2,N3,N4,N6,N5)/ZS134+
> HWHEW4(N1,N2,N6,N5,N3,N4)/ZS156
ZAMM(4)=HWHEW4(N1,N2,N4,N3,N6,N5)/ZS134+
> HWHEW4(N1,N2,N6,N5,N4,N3)/ZS156
ZAMM(5)=HWHEW4(N2,N1,N3,N4,N5,N6)/ZS234+
> HWHEW4(N2,N1,N5,N6,N3,N4)/ZS256
ZAMM(6)=HWHEW4(N2,N1,N4,N3,N5,N6)/ZS234+
> HWHEW4(N2,N1,N5,N6,N4,N3)/ZS256
ZAMM(7)=HWHEW4(N2,N1,N3,N4,N6,N5)/ZS234+
> HWHEW4(N2,N1,N6,N5,N3,N4)/ZS256
ZAMM(8)=HWHEW4(N2,N1,N4,N3,N6,N5)/ZS234+
> HWHEW4(N2,N1,N6,N5,N4,N3)/ZS256
HELSUM=0.0
HELCTY=0.0
DO 1 I=1,8
AMM=DREAL(ZAMM(I)*DCONJG(ZAMM(I)))
HELSUM=HELSUM+CPALL(I)*AMM
HELCTY=HELCTY+CPFAC(ID1,ID2,I)*AMM
1 CONTINUE
END
CDECK ID>, HWHEWW.
*CMZ :- -02/05/91 10.58.29 by Federico Carminati
*-- Author : Zoltan Kunszt, modified by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHEWW
C-----------------------------------------------------------------------
C E+E- -> W+W-/Z0Z0 (BASED ON ZOLTAN KUNSZT'S PROGRAM)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ZH,ZCH,ZD
DOUBLE PRECISION HWUAEM,HWRGEN,HWUPCM,ETOT,STOT,FLUXW,GAMM,GIMM,
& WM2,WXMIN,WX1MAX,WX2MAX,FJAC1,FJAC2,WX1,WX2,WMM1,WMM2,XXM,W2BO,
& PST,WEIGHT,TOTSIG,WMASS,WWIDTH,ELST,CV,CA,BR,XMASS,PLAB,PRW,PCM,
& AMPWW(4),CCC,HELSUM,HELCTY,BRZED(12),BRTOT,CPFAC,CPALL,RLL(12),
& RRL(12),DIST(4)
INTEGER IB,IBOS,I,ID1,ID2,NTRY,IDP(10),IDBOS(2),J1,J2,IPRC,ILST,
& IDZOLT(16),MAP(12),NEWHEP
LOGICAL EISBM1,HWRLOG
EXTERNAL HWUAEM,HWRGEN,HWUPCM
SAVE IDP,STOT,FLUXW,GAMM,GIMM,WM2,WXMIN,WX1MAX,FJAC1,ELST,ILST,
& IDBOS,WMASS,WWIDTH,BRZED
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
COMMON/HWHEWR/CPFAC(12,12,8),CPALL(8)
SAVE IDZOLT,MAP
DATA ELST,ILST/0.D0,0/
DATA IDZOLT/4,3,8,7,12,11,4*0,2,1,6,5,10,9/
DATA MAP/12,11,2,1,14,13,4,3,16,15,6,5/
IF (IERROR.NE.0) RETURN
EISBM1=IDHW(1).LT.IDHW(2)
IF (GENEV) THEN
NEWHEP=NHEP
NHEP=NHEP+2
DO 20 IB=1,2
IBOS=IB+NEWHEP
CALL HWVEQU(5,PRW(1,IB),PHEP(1,IBOS))
IF (EISBM1) PHEP(3,IBOS)=-PHEP(3,IBOS)
CALL HWVZRO(4,VHEP(1,IBOS))
CALL HWUDKL(IDBOS(IB),PHEP(1,IBOS),DIST)
CALL HWVSUM(4,VHEP(1,IBOS),DIST,DIST)
IDHW(IBOS)=IDBOS(IB)
IDHEP(IBOS)=IDPDG(IDBOS(IB))
JMOHEP(1,IBOS)=1
JMOHEP(2,IBOS)=2
ISTHEP(IBOS)=110
DO 10 I=1,2
CALL HWVEQU(5,PLAB(1,2*IB+I),PHEP(1,NHEP+I))
IF (EISBM1) PHEP(3,NHEP+I)=-PHEP(3,NHEP+I)
CALL HWVEQU(4,DIST,VHEP(1,NHEP+I))
C---STATUS, IDs AND POINTERS
ISTHEP(NHEP+I)=112+I
IDHW(NHEP+I)=IDP(2*IB+I)
IDHEP(NHEP+I)=IDPDG(IDP(2*IB+I))
JDAHEP(I,IBOS)=NHEP+I
JMOHEP(1,NHEP+I)=IBOS
JMOHEP(2,NHEP+I)=JMOHEP(1,IBOS)
10 CONTINUE
NHEP=NHEP+2
JMOHEP(2,NHEP)=NHEP-1
JDAHEP(2,NHEP)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP
JDAHEP(2,NHEP-1)=NHEP
20 CONTINUE
ELSE
EMSCA=PHEP(5,3)
ETOT=EMSCA
IPRC=MOD(IPROC,100)
IF (ETOT.NE.ELST .OR. IPRC.NE.ILST) THEN
STOT=ETOT*ETOT
FLUXW=GEV2NB*.125*(HWUAEM(STOT)/PIFAC)**4/STOT
IF (IPRC.EQ.0) THEN
WMASS=RMASS(198)
WWIDTH=GAMW
IDBOS(1)=198
IDBOS(2)=199
ELSEIF (IPRC.EQ.50) THEN
WMASS=RMASS(200)
WWIDTH=GAMZ
IDBOS(1)=200
IDBOS(2)=200
C---LOAD FERMION COUPLINGS TO Z
DO 30 I=1,12
RLL(I)=VFCH(MAP(I),1)+AFCH(MAP(I),1)
RRL(I)=VFCH(MAP(I),1)-AFCH(MAP(I),1)
30 CONTINUE
RLL(11)=0
RRL(11)=0
BRTOT=0
DO 60 J1=1,12
BRZED(J1)=0
DO 50 J2=1,12
CCC=1
IF (MOD(J1-1,4).GE.2) CCC=CCC*CAFAC
IF (MOD(J2-1,4).GE.2) CCC=CCC*CAFAC
CPFAC(J1,J2,1)=CCC*(RLL(2)**2*RLL(J1)*RLL(J2))**2
CPFAC(J1,J2,2)=CCC*(RLL(2)**2*RRL(J1)*RLL(J2))**2
CPFAC(J1,J2,3)=CCC*(RLL(2)**2*RLL(J1)*RRL(J2))**2
CPFAC(J1,J2,4)=CCC*(RLL(2)**2*RRL(J1)*RRL(J2))**2
CPFAC(J1,J2,5)=CCC*(RRL(2)**2*RLL(J1)*RLL(J2))**2
CPFAC(J1,J2,6)=CCC*(RRL(2)**2*RRL(J1)*RLL(J2))**2
CPFAC(J1,J2,7)=CCC*(RRL(2)**2*RLL(J1)*RRL(J2))**2
CPFAC(J1,J2,8)=CCC*(RRL(2)**2*RRL(J1)*RRL(J2))**2
DO 40 I=1,8
IF (J1.EQ.1.AND.J2.EQ.1) CPALL(I)=0
CPALL(I)=CPALL(I)+CPFAC(J1,J2,I)
BRZED(J1)=BRZED(J1)+CPFAC(J1,J2,I)
BRTOT=BRTOT+CPFAC(J1,J2,I)
40 CONTINUE
50 CONTINUE
60 CONTINUE
DO 70 I=1,12
70 BRZED(I)=BRZED(I)/BRTOT
ELSE
CALL HWWARN('HWHEWW',500)
ENDIF
GAMM=WMASS*WWIDTH
GIMM=1.D0/GAMM
WM2=WMASS*WMASS
WXMIN=ATAN(-WMASS/WWIDTH)
WX1MAX=ATAN((STOT-WM2)*GIMM)
FJAC1=WX1MAX-WXMIN
ILST=IPRC
ELST=ETOT
ENDIF
EVWGT=0
C---CHOOSE W MASSES
WX1=WXMIN+FJAC1*HWRGEN(1)
WMM1=GAMM*TAN(WX1)+WM2
IF (WMM1.LE.0) RETURN
XMASS(1)=SQRT(WMM1)
WX2MAX=ATAN(((ETOT-XMASS(1))**2-WM2)*GIMM)
FJAC2=WX2MAX-WXMIN
WX2=WXMIN+FJAC2*HWRGEN(2)
WMM2=GAMM*TAN(WX2)+WM2
IF (WMM2.LE.0) RETURN
XMASS(2)=SQRT(WMM2)
IF (HWRLOG(HALF))THEN
XXM=XMASS(1)
XMASS(1)=XMASS(2)
XMASS(2)=XXM
ENDIF
C---CTMAX=ANGULAR CUT ON COS W-ANGLE
CALL HWHEW0(1,ETOT,XMASS(1),PRW(1,1),W2BO,CTMAX)
IF (W2BO.EQ.ZERO) RETURN
C---FOR ZZ EVENTS, FORCE BOSE STATISTICS, BY KILLING EVENTS WITH COS1<0
IF (IPRC.NE.0) THEN
IF (PRW(3,1).LT.ZERO) RETURN
C---AND THEN SYMMETRIZE (THIS PROCEDURE VASTLY IMPROVES EFFICIENCY)
IF (HWRLOG(HALF)) THEN
PRW(3,1)=-PRW(3,1)
PRW(3,2)=-PRW(3,2)
ENDIF
ENDIF
PLAB(3,1)=0.5*ETOT
PLAB(4,1)=PLAB(3,1)
PLAB(3,2)=-PLAB(3,1)
PLAB(4,2)=PLAB(3,1)
C
C---LET THE W BOSONS DECAY
NTRY=0
80 NTRY=NTRY+1
DO 90 IB=1,2
CALL HWDBOZ(IDBOS(IB),ID1,ID2,CV,CA,BR,1)
PST=HWUPCM(XMASS(IB),RMASS(ID1),RMASS(ID2))
IF (PST.LT.ZERO) THEN
CALL HWDBOZ(IDBOS(IB),ID1,ID2,CV,CA,BR,2)
IF (NTRY.LE.NBTRY) GOTO 80
C CALL HWWARN('HWHEWW',1)
RETURN
ENDIF
PRW(5,IB)=XMASS(IB)
IDP(2*IB+1)=ID1
IDP(2*IB+2)=ID2
PLAB(5,2*IB+1)=RMASS(ID1)
PLAB(5,2*IB+2)=RMASS(ID2)
CALL HWDTWO(PRW(1,IB),PLAB(1,2*IB+1),PLAB(1,2*IB+2),
& PST,TWO,.TRUE.)
90 CONTINUE
WEIGHT=FLUXW*W2BO*FJAC1*FJAC2*(0.5D0*PIFAC*GIMM)**2
CALL HWHEW1(6)
CALL HWHEW2(6,PCM(1,1),ZH,ZCH,ZD)
IF (IPRC.EQ.0) THEN
CALL HWHEW3(5,6,3,4,1,2,AMPWW)
TOTSIG=9.*AMPWW(1)+6.*(AMPWW(2)+AMPWW(3))+4.*AMPWW(4)
EVWGT=TOTSIG*WEIGHT*BR
ELSE
ID1=IDZOLT(IDPDG(IDP(3)))
ID2=IDZOLT(IDPDG(IDP(5)))
CALL HWHEW5(5,6,3,4,1,2,HELSUM,HELCTY,ID1,ID2)
EVWGT=HELCTY*WEIGHT*BR/(BRZED(ID1)*BRZED(ID2))
ENDIF
ENDIF
END
CDECK ID>, HWHGBP.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGBP
C-----------------------------------------------------------------------
C Hadron-Hadron to WW/WZ/ZZ (BASED ON ZOLTAN KUNSZT'S PROGRAM)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX ZH,ZCH,ZD
DOUBLE PRECISION HWUAEM,HWRGEN,HWUPCM,FLUXW,CSW,XMASS,
& PLAB,PRW,PCM,HWRUNI,P(5,10),AMPWW,DIST(4),MW2,CFAC1,AMP,
& MZ2,GMW,GMZ,G(4,2),EE(4),CKM2(12),RF(2),LF(2),TAUI(2),FPI4
INTEGER IB,IBOS,I,IDP,IDBOS,IPRC,NEWHEP,J,ICMF,IHEP,IBRAD,K,IOPT,
& MAP(4),IDRES
LOGICAL PHOTON,GEN
EXTERNAL HWUAEM,HWRGEN,HWUPCM,HWRUNI
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
COMMON/HWHGBC/ MW2,MZ2,GMW,GMZ,G,EE,CKM2,RF,LF,TAUI,CSW,CFAC1
COMMON /HWBOSN/XMASS(2),PLAB(5,10),PRW(5,2),PCM(5,10),IDBOS(2),
& IDRES,IDP(10),IOPT
SAVE AMPWW,IPRC,PHOTON
PARAMETER(FPI4=24936.72731D0)
DOUBLE PRECISION WI(IMAXCH)
COMMON /HWPSOM/ WI
SAVE MAP
DATA MAP/1,2,11,12/
IF (IERROR.NE.0) RETURN
IF (GENEV) THEN
IF (IPRC.EQ.0) THEN
CALL HWHGB2(AMPWW,IDP,PHOTON)
ELSEIF(IPRC.EQ.10) THEN
CALL HWHGB3(AMPWW,IDP,PHOTON)
ELSEIF(IPRC.EQ.20) THEN
CALL HWHGB4(AMPWW,IDP,PHOTON)
IF((IDP(1).LE.6.AND.MOD(IDP(1),2).EQ.1).OR.
& (IDP(2).LE.6.AND.MOD(IDP(2),2).EQ.1)) THEN
IDBOS(1)=199
IDP(3) = IDP(3)+6
IDP(4) = IDP(4)-6
ENDIF
ENDIF
C--change the sign of the z component (in CMF) if particle first
IF(IDP(1).LT.IDP(2)) THEN
DO IB=1,2
PRW(3,IB) = -PRW(3,IB)
DO I=1,2
PLAB(3,2*IB+I)=-PLAB(3,2*IB+I)
ENDDO
ENDDO
ENDIF
C--boost particles back to the lab frame from the centre of mass frame
DO IB=1,2
CALL HWULOB(PLAB(1,7),PRW(1,IB),PRW(1,IB))
ENDDO
DO I=1,6
CALL HWULOB(PLAB(1,7),PLAB(1,I),PLAB(1,I))
ENDDO
C--put the particles in the event record
C--first the incoming quarks
ICMF = NHEP+3
DO I=1,2
IHEP = NHEP+I
CALL HWVEQU(5,PLAB(1,I),PHEP(1,IHEP))
IDHW(IHEP) = IDP(I)
IDHEP(IHEP)=IDPDG(IDP(I))
ISTHEP(IHEP)=110+I
JMOHEP(1,IHEP)=ICMF
JMOHEP(I,ICMF)=IHEP
JDAHEP(1,IHEP)=ICMF
ENDDO
JMOHEP(2,NHEP+1) = NHEP+2
JMOHEP(2,NHEP+2) = NHEP+1
JDAHEP(2,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+2) = NHEP+1
C--Centre-of-mass energy
ICMF = NHEP+3
C--new for spin correlations
IF(SYSPIN) THEN
IDSPN(1) = ICMF
ISNHEP(ICMF) = 1
JMOSPN(1) = 0
JDASPN(1,1) = 2
JDASPN(2,1) = 5
DECSPN(1) = .FALSE.
ENDIF
IDHW(ICMF)=15
IDHEP(ICMF)=IDPDG(15)
ISTHEP(ICMF)=110
CALL HWVEQU(5,PLAB(1,7),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
JDAHEP(1,ICMF) = ICMF+1
JDAHEP(2,ICMF) = ICMF+2
NHEP = NHEP+3
NEWHEP = NHEP
NHEP = NHEP+2
C--Now the bosons
DO IB=1,2
IBOS=IB+NEWHEP
CALL HWVEQU(5,PRW(1,IB),PHEP(1,IBOS))
CALL HWVZRO(4,VHEP(1,IBOS))
CALL HWUDKL(IDBOS(IB),PHEP(1,IBOS),DIST)
CALL HWVSUM(4,VHEP(1,IBOS),DIST,DIST)
IDHW(IBOS)=IDBOS(IB)
IDHEP(IBOS)=IDPDG(IDBOS(IB))
JMOHEP(1,IBOS)=ICMF
JMOHEP(2,IBOS)=ICMF
JDAHEP(2,IBOS)=IBOS
ISTHEP(IBOS)=112+IB
ENDDO
C--now generate the initial state shower
CALL HWBGEN
IF(IERROR.NE.0) RETURN
C--now add the outgoing fermions to the event record
DO 20 IB=1,2
IBOS=IB+NEWHEP
IBRAD = JDAHEP(1,IBOS)
ISTHEP(IBRAD) = 195
DO 10 I=1,2
CALL HWVEQU(5,PLAB(1,2*IB+I),PHEP(1,NHEP+I))
CALL HWVEQU(4,DIST,VHEP(1,NHEP+I))
C--Boost the fermion momenta to the rest frame of the original W
CALL HWULOF(PRW(1,IB),PHEP(1,NHEP+I),PHEP(1,NHEP+I))
C--Now boost back to the lab from rest frame of the W after radiation
CALL HWULOB(PHEP(1,IBRAD),PHEP(1,NHEP+I),PHEP(1,NHEP+I))
C--Set the status and pointers
ISTHEP(NHEP+I)=112+I
IDHW(NHEP+I)=IDP(2*IB+I)
IDHEP(NHEP+I)=IDPDG(IDP(2*IB+I))
JDAHEP(I,IBRAD)=NHEP+I
JMOHEP(1,NHEP+I)=IBRAD
C--New for spin correlations
IF(SYSPIN) THEN
ISNHEP(NHEP+I) = 2*IB+I-1
IDSPN(2*IB+I-1) = NHEP+I
JMOSPN(2*IB+I-1) = 1
DECSPN(2*IB+I-1) = .FALSE.
RHOSPN(1,1,2*IB+I-1) = HALF
RHOSPN(1,2,2*IB+I-1) = ZERO
RHOSPN(2,1,2*IB+I-1) = ZERO
RHOSPN(2,2,2*IB+I-1) = HALF
NSPN = NSPN+1
ENDIF
10 CONTINUE
NHEP=NHEP+2
JMOHEP(2,NHEP)=NHEP-1
JDAHEP(2,NHEP)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP
JDAHEP(2,NHEP-1)=NHEP
20 CONTINUE
ELSE
IF(FSTWGT) THEN
IPRC=MOD(IPROC,100)
IF(MOD(IPRC,5).EQ.0.AND.MOD(IPRC,10).NE.0) THEN
PHOTON = .FALSE.
IPRC = IPRC-5
ELSE
PHOTON = .TRUE.
ENDIF
IOPT=1
IF (IPRC.EQ.0) THEN
C--WW production
IDBOS(1)=199
IDBOS(2)=198
IDRES =200
C--ZZ production
ELSEIF (IPRC.EQ.10) THEN
IDBOS(1)=200
IDBOS(2)=200
IDRES =200
ELSEIF(IPRC.EQ.20) THEN
C--WZ production
IDBOS(1)=198
IDBOS(2)=200
IDRES =198
IOPT = 0
ELSE
CALL HWWARN('HWHGBP',500)
ENDIF
C--calculate the couplings etc
MW2 = RMASS(198)**2
GMW = RMASS(198)*GAMW
MZ2 = RMASS(200)**2
GMZ = RMASS(200)*GAMZ
C--couplings to Z and photon
DO I=1,4
G(I,1) = VFCH(MAP(I),1)+AFCH(MAP(I),1)
G(I,2) = VFCH(MAP(I),1)-AFCH(MAP(I),1)
EE(I) = QFCH(MAP(I))
ENDDO
C--elements of the CKM matrix for the various decay modes of the W
DO I=1,3
DO J=1,3
C**Bug fix 2/7/01 by BRW (unsquare)
CKM2(3*I-3+J) = VCKM(J,I)
C**End bug fix
ENDDO
CKM2(9+I) = ONE
ENDDO
C--couplings of the up and down
TAUI(1) = -ONE
TAUI(2) = ONE
DO I=1,2
RF(I) = -TWO*QFCH(I)*SWEIN
LF(I) = TAUI(I)+RF(I)
ENDDO
CFAC1 = ONE/THREE
CSW = SQRT((ONE-SWEIN)/SWEIN)
ENDIF
EVWGT=ZERO
C--find the momenta and the phase space weight
CALL HWHGBS(FLUXW,GEN)
IF(.NOT.GEN) RETURN
C--couplings
AMP = FPI4*HWUAEM(EMSCA**2)**4
C--copy the momenta and change the sign of the beam
DO I=1,6
P(1,I)=PLAB(3,I)
P(2,I)=PLAB(1,I)
P(3,I)=PLAB(2,I)
P(4,I)=PLAB(4,I)
ENDDO
DO 120 J=1,4
DO 130 K=3,6
130 PCM(J,K)=P(J,K)
PCM(J,1)=-P(J,1)
PCM(J,2)=-P(J,2)
120 CONTINUE
C--use the e+e- code to calulate the spinor products
CALL HWHEW2(6,PCM(1,1),ZH,ZCH,ZD)
C--calculate the matrix elements
IF (IPRC.EQ.0) THEN
C--WW matrix element
CALL HWHGB2(AMPWW,IDP,PHOTON)
ELSEIF(IPRC.EQ.10) THEN
C--ZZ matrix element
CALL HWHGB3(AMPWW,IDP,PHOTON)
ELSEIF(IPRC.EQ.20) THEN
C--WZ matrix element
CALL HWHGB4(AMPWW,IDP,PHOTON)
ENDIF
C--Now calculate the cross section
EVWGT = AMPWW*FLUXW*AMP
IF(OPTM) THEN
DO I=1,IMAXCH
IF(CHON(I)) WI(I) = WI(I)*AMPWW**2*AMP**2
ENDDO
ENDIF
ENDIF
END
CDECK ID>, HWHGBS.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGBS(WEIGHT,GEN)
C-----------------------------------------------------------------------
C Multichannel phase space for gauge boson pair production
C ICH returns the channel used if OPTM=.FALSE.
C ICH specifies the channel to be used if OPTM=.TRUE.
C This is used in optimising the weights for the different channels
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ICH,IDBOS,ISM(2,IMAXCH),I,J,IB(2),IDRES,IDP,IOPT,IPRC,ID1
DOUBLE PRECISION XMASS,PLAB,PRW,PCM,RAND,HWRGEN,BMS2(2),TJAC,PLM,
& MJAC(2),TWOPI2,SJAC,STOT,THAT,UHAT,TMIN,TMAX,UMIN,UMAX,PS(2),
& ETOT,HWUPCM,PST,HWRUNI,TAU,XJAC,PHI,SINTH,SIG(2),CV,CA,BR(2),
& G(IMAXCH),XF,DEM,TN,UN,SN,S1,S2,MB1,MB2,WEIGHT,BRFAC,BRZ(12)
LOGICAL HWRLOG,GEN
COMMON /HWBOSN/ XMASS(2),PLAB(5,10),PRW(5,2),PCM(5,10),IDBOS(2),
& IDRES,IDP(10),IOPT
EXTERNAL HWRGEN,HWRLOG,HWUPCM,HWRUNI
SAVE ISM,IPRC
PARAMETER(TWOPI2=39.4784176D0)
DOUBLE PRECISION WI(IMAXCH)
COMMON /HWPSOM/ WI
SAVE SIG,BRZ
DATA SIG/1.0D0,-1.0D0/
DATA BRZ/0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
& 0.033D0,0.067D0,0.033D0,0.067D0,0.033D0,0.067D0/
IF(IERROR.NE.0) RETURN
WEIGHT = ZERO
IF(OPTM) THEN
DO I=1,IMAXCH
WI(I) = ZERO
ENDDO
ENDIF
GEN = .FALSE.
C--set the smoothing for the bosons in the various channels
IF(FSTWGT) THEN
IPRC = MOD(IPROC,100)
DO I=1,2
ISM(1,I) = 1
DO J=1,2
ISM(1,4*I-2+J ) = 1
ISM(1,4*I+J ) = 2
ISM(2,4*I+2*J-3) = 1
ISM(2,4*I+2*J-2) = 2
ENDDO
ENDDO
ISM(2,1) = 1
ISM(2,2) = 2
ENDIF
C--select the channel to be used
RAND=HWRGEN(0)
DO ICH=1,IMAXCH
IF(CHON(ICH)) THEN
IF(CHNPRB(ICH).GT.RAND) GOTO 10
RAND = RAND-CHNPRB(ICH)
ENDIF
ENDDO
10 CONTINUE
C--select the boson masses and compute that part of the denominator
C--decide which boson to do first
IF(HWRLOG(HALF)) THEN
IB(1) = 1
IB(2) = 2
ELSE
IB(1) = 2
IB(2) = 1
ENDIF
C--find the boson masses
CALL HWHGB1(ISM(IB(1),ICH),2,IDBOS(IB(1)),MJAC(IB(1)),BMS2(IB(1)),
& (PHEP(5,3)-EMMIN)**2,EMMIN**2)
XMASS(IB(1)) = SQRT(BMS2(IB(1)))
CALL HWHGB1(ISM(IB(2),ICH),2,IDBOS(IB(2)),MJAC(IB(2)),BMS2(IB(2)),
& (PHEP(5,3)-XMASS(IB(1)))**2,EMMIN**2)
XMASS(IB(2)) = SQRT(BMS2(IB(2)))
DO I=1,2
MJAC(I) = HALF*MJAC(I)/TWOPI2
ENDDO
C--now generate the values of s
C--according to a Breit-Wigner for the first two
IF(ICH.LE.2) THEN
CALL HWHGB1(1,2,IDRES,SJAC,STOT,PHEP(5,3)**2,
& (SQRT(BMS2(1)+PTMIN**2)+SQRT(BMS2(2)+PTMIN**2))**2)
C--according to a power law for the rest
ELSE
CALL HWHGB1(2,2,IDRES,SJAC,STOT,PHEP(5,3)**2,
& (SQRT(BMS2(1)+PTMIN**2)+SQRT(BMS2(2)+PTMIN**2))**2)
ENDIF
ETOT = SQRT(STOT)
C--find the centre of mass momenta
PST = HWUPCM(ETOT,XMASS(1),XMASS(2))
IF(PST.LT.PTMIN) RETURN
PRW(4,1) = SQRT(BMS2(1)+PST**2)
PRW(4,2) = SQRT(BMS2(2)+PST**2)
C--now generate the value of t and u
PLM = SQRT(PST**2-PTMIN**2)
TMIN = BMS2(1)-ETOT*(PRW(4,1)+PLM)
TMAX = BMS2(1)-ETOT*(PRW(4,1)-PLM)
UMIN = BMS2(2)-ETOT*(PRW(4,2)+PLM)
UMAX = BMS2(2)-ETOT*(PRW(4,2)-PLM)
SN = ONE/(TMAX-TMIN)
C--for the first two channels uniform in t
IF(ICH.LE.2) THEN
THAT = HWRUNI(1,TMIN,TMAX)
UHAT = BMS2(1)+BMS2(2)-STOT-THAT
TJAC = TMAX-TMIN
C--for the next four channels generate t according to 1/t
ELSEIF(ICH.LE.6) THEN
CALL HWHGB5(2,TJAC,THAT,TMAX,TMIN)
UHAT = BMS2(1)+BMS2(2)-STOT-THAT
C--for the last four channels generate u according to 1/u
ELSEIF(ICH.LE.10) THEN
CALL HWHGB5(2,TJAC,UHAT,UMAX,UMIN)
THAT = BMS2(1)+BMS2(2)-STOT-UHAT
ELSE
CALL HWWARN('HWHGBS',500)
ENDIF
CALL HWHGB5(1,TN,THAT,TMAX,TMIN)
CALL HWHGB5(1,UN,UHAT,UMAX,UMIN)
C--generate the parton momentum fractions and find the pdf's
TAU = STOT/PHEP(5,3)**2
XX(1) = EXP(HWRUNI(3,LOG(TAU),ZERO))
XX(2) = TAU/XX(1)
XJAC = -LOG(TAU)*XX(1)
XF = ONE/XJAC
EMSCA=ETOT
CALL HWSGEN(.FALSE.)
C--Centre of mass collison angle
COSTH = (THAT-BMS2(1)+ETOT*PRW(4,1))/ETOT/PST
PHI = HWRUNI(4,ZERO,TWO*PIFAC)
SINTH = SQRT(ONE-COSTH**2)
C--incoming momenta in the centre of mass frame
DO I=1,2
PLAB(1,I) = ZERO
PLAB(2,I) = ZERO
PLAB(3,I) = HALF*ETOT
PLAB(4,I) = HALF*ETOT
PLAB(5,I) = ZERO
ENDDO
PLAB(3,2) = -PLAB(3,2)
C--outgoing boson momenta in the centre of mass frame
DO I=1,2
PRW(1,I) = SIG(I)*SINTH*COS(PHI)*PST
PRW(2,I) = SIG(I)*SINTH*SIN(PHI)*PST
PRW(3,I) = SIG(I)*COSTH*PST
PRW(5,I) = XMASS(I)
ENDDO
C--now find the boson decay products
C--find the momenta of the boson decay products
IF(IPRC.EQ.20) IDBOS(1)=198
DO 90 I=1,2
CALL HWDBZ2(IDBOS(I),IDP(2*I+1),IDP(2*I+2),CV,CA,BR(I),IOPT,
& XMASS(I))
IF(BR(I).EQ.ZERO) RETURN
PRW(5,I)=XMASS(I)
PLAB(5,2*I+1) = ZERO
PLAB(5,2*I+2) = ZERO
PS(I) = HALF*XMASS(I)
PLAB(5,2*I+1)=ZERO
PLAB(5,2*I+2)=ZERO
CALL HWDTWO(PRW(1,I),PLAB(1,2*I+1),PLAB(1,2*I+2),
& PS(I),TWO,.TRUE.)
90 CONTINUE
BRFAC = BR(2)
IF(IOPT.EQ.0) BRFAC = BRFAC*BR(1)
DO I=1,2
IF(IDBOS(I).EQ.200) THEN
ID1 = IDP(1+2*I)
IF(ID1.GE.121) ID1 = ID1-114
BRFAC = BRFAC/BRZ(ID1)
ENDIF
ENDDO
DO I=1,2
MJAC(I) = MJAC(I)*PS(I)/XMASS(I)
ENDDO
C--set up a vector with the centre of mass
PLAB(1,7) = ZERO
PLAB(2,7) = ZERO
PLAB(3,7) = HALF*PHEP(5,3)*(XX(1)-XX(2))
PLAB(4,7) = HALF*PHEP(5,3)*(XX(1)+XX(2))
PLAB(5,7) = ETOT
C--now find the denominator
CALL HWHGB1(1,1,IDRES,S1,STOT,PHEP(5,3)**2,
& (XMASS(1)+XMASS(2))**2)
CALL HWHGB1(2,1,IDRES,S2,STOT,PHEP(5,3)**2,
& (XMASS(1)+XMASS(2))**2)
DEM = ZERO
DO I=1,IMAXCH
IF(CHON(I)) THEN
C--factors due to the choice of s and t
IF(I.LE.2) THEN
G(I) = SN*S1
ELSEIF(I.LE.6) THEN
G(I) = TN*S2
ELSE
G(I) = UN*S2
ENDIF
C--factors due to the boson masses
CALL HWHGB1(ISM(IB(1),I),1,IDBOS(IB(1)),MB1,BMS2(IB(1)),
& (PHEP(5,3)-EMMIN)**2,EMMIN**2)
CALL HWHGB1(ISM(IB(2),I),1,IDBOS(IB(2)),MB2,BMS2(IB(2)),
& (PHEP(5,3)-XMASS(IB(1)))**2,EMMIN**2)
G(I) = G(I)*MB1*MB2*XF
DEM = DEM+CHNPRB(I)*G(I)
ENDIF
ENDDO
C--now combine everything to get the weight
WEIGHT = GEV2NB*TJAC*SJAC*G(ICH)/DEM/XX(1)*
& MJAC(1)*MJAC(2)*XJAC/64.0D0/PIFAC/STOT**3*BRFAC
GEN = .TRUE.
C--compute the weights for the different channels if optimizing
IF(OPTM) THEN
DO I=1,IMAXCH
IF(CHON(I)) WI(I)=G(I)*WEIGHT**2/DEM
ENDDO
ENDIF
END
CDECK ID>, HWHGB1.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGB1(ISM,IOPT,IDBOZ,FJAC,MBOS2,MMAX,MMIN)
C-----------------------------------------------------------------------
C Subroutine to select gauge boson mass for HWHGBP
C ISM=1 select according to Breit-Wigner for IDBOZ
C ISM=2 select according to power law for IDBOZ
C IOPT=1 return the function at MBOS2
C IOPT=2 calculate MBOS2
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IDBOZ,ISM,IOPT
DOUBLE PRECISION MBOZ,FJAC,GBOZ,GMBOZ,MPOW,MMIN,
& MBOS2,A1,A2,A01,A02,RPOW,QPOW,HWRGEN,MMAX,EMSQ
EXTERNAL HWRGEN
C--set the boson mass
IF(IDBOZ.EQ.198.OR.IDBOZ.EQ.199) THEN
MBOZ = RMASS(198)
GBOZ = GAMW
ELSEIF(IDBOZ.EQ.200) THEN
MBOZ = RMASS(200)
GBOZ = GAMZ
ELSE
CALL HWWARN('HWHGB1',500)
ENDIF
EMSQ=MBOZ**2
GMBOZ=MBOZ*GBOZ
C--smooth a Breit-Wigner only
IF(ISM.EQ.1) THEN
A02 = ATAN((MMIN-EMSQ)/GMBOZ)
A2 = ATAN((MMAX-EMSQ)/GMBOZ)-A02
IF(IOPT.EQ.1) THEN
FJAC = GMBOZ/((MBOS2-EMSQ)**2+GMBOZ**2)/A2
ELSE
MBOS2 = EMSQ+GMBOZ*TAN(A02+A2*HWRGEN(1))
FJAC = A2*((MBOS2-EMSQ)**2+GMBOZ**2)/GMBOZ
ENDIF
C--smooth a powerlaw only
ELSEIF(ISM.EQ.2) THEN
IF(EMPOW.EQ.TWO) THEN
A01 = LOG(MMIN)
A1 = LOG(MMAX)-A01
IF(IOPT.EQ.1) THEN
FJAC = ONE/MBOS2/A1
ELSE
MBOS2 = EXP(A01+A1*HWRGEN(2))
FJAC = A1*MBOS2
ENDIF
ELSE
MPOW = -EMPOW/TWO
QPOW = ONE+MPOW
RPOW = ONE/QPOW
A01 = MMIN**QPOW
A1 = (MMAX**QPOW-A01)
IF(IOPT.EQ.1) THEN
FJAC = QPOW*MBOS2**MPOW/A1
ELSE
MBOS2 = (A01+A1*HWRGEN(2))**RPOW
FJAC = A1*RPOW/MBOS2**MPOW
ENDIF
ENDIF
ELSE
CALL HWWARN('HWHGB1',501)
ENDIF
END
CDECK ID>, HWHGB2.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGB2(HCS,IDP,PHOTON)
C-----------------------------------------------------------------------
C WW cross section in hadron hadron
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HCS,RCS,HWRGEN,DIST(2),CFAC,WAMP(2),S34,S56,KWW2,
& MW2,MZ2,GMW,GMZ,G(4,2),EE(4),CKM2(12),RF(2),LF(2),TAUI(2),
& CSW,CFAC1
DOUBLE COMPLEX ZH,ZCH,ZD,Z1,Z2,ZHF,P12,Z12,S134,S156,AWW,BWW,
& CWW,DWW,AWWM(2),AWWP(2),HWHEW4
INTEGER IDP(10),I,I1,I2,MAPZ(4,3),P1,P2,P3,P4
PARAMETER(Z1=(0.0D0,1.0D0),Z2=(2.0D0,0.0D0),
& ZHF=(0.5D0,0.0D0))
LOGICAL PHOTON
EXTERNAL HWRGEN,HWHEW4
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
COMMON /HWHGBC/ MW2,MZ2,GMW,GMZ,G,EE,CKM2,RF,LF,TAUI,CSW,CFAC1
SAVE WAMP,AWWM,AWWP
SAVE MAPZ
DATA MAPZ/1,2,121,122,3,4,123,125,5,6,124,126/
IF(GENEV) THEN
RCS = HCS*HWRGEN(1)
ELSE
C--Now calculate the matrix element
Z12 = ONE/(Z2*ZD(1,2)-MZ2+Z1*GMZ)
P12 = ZHF*(Z2*ZD(1,2)-MZ2)*Z12/ZD(1,2)
S134 = ZHF*(Z2*ZD(1,2)-MZ2)*Z12/(ZD(1,3)+ZD(1,4)+ZD(3,4))
S156 = ZHF*(Z2*ZD(1,2)-MZ2)*Z12/(ZD(1,5)+ZD(1,6)+ZD(5,6))
S34 = DBLE(Z2*ZD(3,4))
S56 = DBLE(Z2*ZD(5,6))
KWW2 = ONE/((S34-MW2)**2+GMW**2)/((S56-MW2)**2+GMW**2)
& /SWEIN**4/16.0D0
DO I=1,2
DWW = LF(I)*Z12-RF(I)*P12
CWW = RF(I)*(Z12-P12)
AWW = DWW + ZHF*S134*(TAUI(I)+ONE)
BWW = DWW + ZHF*S156*(TAUI(I)-ONE)
AWWM(I) = AWW*HWHEW4(1,2,3,4,5,6)-BWW*HWHEW4(1,2,5,6,3,4)
AWWP(I) = CWW*(HWHEW4(2,1,5,6,3,4)-HWHEW4(2,1,3,4,5,6))
WAMP(I) = KWW2*DBLE( AWWM(I)*DCONJG(AWWM(I))
& +AWWP(I)*DCONJG(AWWP(I)))
ENDDO
ENDIF
HCS = ZERO
CFAC = CFAC1*81.0D0
DO I=1,2
DO I1=1,3
IDP(1) = MAPZ(I,I1)
IDP(2) = IDP(1)+6
DIST(1)=DISF(IDP(1),1)*DISF(IDP(2),2)
DIST(2)=DISF(IDP(2),1)*DISF(IDP(1),2)
DO I2=1,2
HCS = HCS+DIST(I2)*CFAC*WAMP(I)
IF(GENEV.AND.HCS.GT.RCS) THEN
C--new for spin correlations
IF(SYSPIN) THEN
NSPN = 1
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 MESPN(P1,P2,P3,P4,1,1) = (0.0D0,0.0D0)
MESPN(1,2,2,1,1,1) = AWWP(I)
MESPN(2,2,2,1,1,1) = AWWM(I)
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
ENDIF
GOTO 999
ENDIF
IDP(1) = IDP(1)+6
IDP(2) = IDP(2)-6
ENDDO
ENDDO
ENDDO
999 RETURN
END
CDECK ID>, HWHGB3.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGB3(HCS,IDP,PHOTON)
C-----------------------------------------------------------------------
C ZZ cross section in hadron hadron
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION AMP(2),RCS,HCS,HWRGEN,DIST(2),S34,S56,CFAC,
& MW2,MZ2,GMW,GMZ,G(4,2),EE(4),CKM2(12),RF(2),LF(2),TAUI(2),
& CSW,CFAC1
DOUBLE COMPLEX ZH,ZCH,ZD,P34,P56,Z34,Z56,Z1,ZAMP(8),S134,S156,
& HWHEW4,TAMP,Z0,AMPT(2,2,2,2),CP
INTEGER I,P1,P2,P3,IDP(10),I2,MAPZ(4,3),I1,ID(2),O(2)
EXTERNAL HWHEW4,HWRGEN
LOGICAL PHOTON
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
COMMON /HWHGBC/ MW2,MZ2,GMW,GMZ,G,EE,CKM2,RF,LF,TAUI,CSW,CFAC1
PARAMETER(Z0=(0.0D0,0.0D0),Z1=(0.0D0,1.0D0))
SAVE AMP,ID,AMPT
SAVE MAPZ,O
DATA MAPZ/1,2,121,122,3,4,123,125,5,6,124,126/
DATA O/2,1/
C--initialisation
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
C--Identitiys of the decay prodcucts (d=1,u=2,e=3,nu=4)
DO I=1,2
ID(I) = IDP(1+2*I)
IF(ID(I).GE.121) ID(I) = ID(I)-114
ID(I) = MOD(ID(I)+1,2)+2*INT((ID(I)-1)/6)+1
ENDDO
C--the various propagators we need
S34 = TWO*DBLE(ZD(3,4))
S56 = TWO*DBLE(ZD(5,6))
Z34 = ONE/(S34-MZ2+Z1*GMZ)
Z56 = ONE/(S56-MZ2+Z1*GMZ)
IF(PHOTON) THEN
P34 = Z34*(S34-MZ2)/S34
P56 = Z56*(S56-MZ2)/S56
ELSE
P34 = Z0
P56 = Z0
ENDIF
S134 = HALF/(ZD(1,3)+ZD(1,4)+ZD(3,4))
S156 = HALF/(ZD(1,5)+ZD(1,6)+ZD(5,6))
C--Now calculate the amplitudes
ZAMP(1)=HWHEW4(1,2,3,4,5,6)*S134+HWHEW4(1,2,5,6,3,4)*S156
ZAMP(2)=HWHEW4(1,2,4,3,5,6)*S134+HWHEW4(1,2,5,6,4,3)*S156
ZAMP(3)=HWHEW4(1,2,3,4,6,5)*S134+HWHEW4(1,2,6,5,3,4)*S156
ZAMP(4)=HWHEW4(1,2,4,3,6,5)*S134+HWHEW4(1,2,6,5,4,3)*S156
ZAMP(5)=HWHEW4(2,1,3,4,5,6)*S156+HWHEW4(2,1,5,6,3,4)*S134
ZAMP(6)=HWHEW4(2,1,4,3,5,6)*S156+HWHEW4(2,1,5,6,4,3)*S134
ZAMP(7)=HWHEW4(2,1,3,4,6,5)*S156+HWHEW4(2,1,6,5,3,4)*S134
ZAMP(8)=HWHEW4(2,1,4,3,6,5)*S156+HWHEW4(2,1,6,5,4,3)*S134
C--Now the amplitudes squared for the process
DO I=1,2
TAMP = Z0
DO P1=1,2
DO P2=1,2
DO P3=1,2
IF(PHOTON) THEN
CP = G(I,P1)**2*G(ID(1),P2)*G(ID(2),P3)*Z34*Z56
& +G(I,P1)*EE(I)*G(ID(1),P2)*EE(ID(2))*Z34*P56
& +G(I,P1)*EE(I)*EE(ID(1))*G(ID(2),P3)*P34*Z56
& +EE(I)**2*EE(ID(1))*EE(ID(2))*P34*P56
ELSE
CP = G(I,P1)**2*G(ID(1),P2)*G(ID(2),P3)*Z34*Z56
ENDIF
AMPT(I,P1,P2,P3) = ZAMP(4*P1+2*P3+P2-6)*CP
TAMP = TAMP+AMPT(I,P1,P2,P3)*DCONJG(AMPT(I,P1,P2,P3))
ENDDO
ENDDO
ENDDO
AMP(I) = HALF*DBLE(TAMP)
ENDDO
ENDIF
C--Now calculate the cross section
HCS = 0.0D0
CFAC = CFAC1
IF(ID(1).LE.2) CFAC = CFAC*THREE
IF(ID(2).LE.2) CFAC = CFAC*THREE
DO I=1,2
DO I1=1,3
IDP(1) = MAPZ(I,I1)
IDP(2) = MAPZ(I,I1)+6
DIST(1)=DISF(IDP(1),1)*DISF(IDP(2),2)
DIST(2)=DISF(IDP(2),1)*DISF(IDP(1),2)
DO I2=1,2
HCS = HCS+CFAC*DIST(I2)*AMP(I)
IF(GENEV.AND.HCS.GT.RCS) THEN
C--New for spin correlations
IF(SYSPIN) THEN
NSPN = 1
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
MESPN(P1,P2,P3,1,1,1) = AMPT(I,O(P1),O(P2),O(P3))
10 MESPN(P1,P2,P3,2,1,1) = (0.0D0,0.0D0)
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
ENDIF
GOTO 999
ENDIF
ENDDO
IDP(1) = IDP(1)+6
IDP(2) = IDP(2)-6
ENDDO
ENDDO
999 RETURN
END
CDECK ID>, HWHGB4.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGB4(HCS,IDP,PHOTON)
C-----------------------------------------------------------------------
C WZ cross section in hadron hadron
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION AMP(2),HCS,RCS,HWRGEN,W34,DIST(2),S34,S56,CFAC,
& TCS,S12,MW2,MZ2,GMW,GMZ,G(4,2),EE(4),CKM2(12),RF(2),LF(2),
& TAUI(2),CSW,CFAC1
DOUBLE COMPLEX ZH,ZCH,ZD,P56,Z56,Z1,Z0,S134,S156,HWHEW4,
& CP(4),W12,F(4),TAMP(2,2)
INTEGER IDP(10),I,J,I1,I2,ID,P1,P2,P3,P4
LOGICAL PHOTON
EXTERNAL HWRGEN,HWHEW4
COMMON/HWHEWQ/ZH(8,8),ZCH(8,8),ZD(8,8)
COMMON /HWHGBC/ MW2,MZ2,GMW,GMZ,G,EE,CKM2,RF,LF,TAUI,CSW,CFAC1
PARAMETER(Z0=(0.0D0,0.0D0),Z1=(0.0D0,1.0D0))
SAVE AMP,ID,TAMP
IF(GENEV) THEN
RCS = HCS*HWRGEN(1)
ELSE
C--identity of the Z decay product (d=1,u=2,e=3,nu=4)
ID = IDP(5)
IF(ID.GE.121) ID = ID-114
ID = MOD(ID+1,2)+2*INT((ID-1)/6)+1
C--the various propagators we need
S12 = TWO*DBLE(ZD(1,2))
S34 = TWO*DBLE(ZD(3,4))
S56 = TWO*DBLE(ZD(5,6))
Z56 = ONE/(S56-MZ2+Z1*GMZ)
IF(PHOTON) THEN
P56 = Z56*(S56-MZ2)/S56
ELSE
P56 = Z0
ENDIF
W12 = ONE/(S12-MW2+Z1*GMW)
S134 = HALF*W12*(S12-MW2)/(ZD(1,3)+ZD(1,4)+ZD(3,4))
S156 = HALF*W12*(S12-MW2)/(ZD(1,5)+ZD(1,6)+ZD(5,6))
W34 = ONE/((S34-MW2)**2+GMW**2)/SWEIN**2/FOUR
C--calculate the coefficents of the various amplitudes
F(1) = HWHEW4(1,2,3,4,5,6)
F(2) = HWHEW4(1,2,5,6,3,4)
F(3) = HWHEW4(1,2,3,4,6,5)
F(4) = HWHEW4(1,2,6,5,3,4)
DO I=1,2
IF(I.EQ.1) THEN
J=2
ELSE
J=1
ENDIF
CP(1) = G(J,1)*S134-TAUI(I)*CSW*W12
CP(2) = G(I,1)*S156+TAUI(I)*CSW*W12
IF(PHOTON) THEN
CP(3) = EE(J)*S134-TAUI(I)*W12
CP(4) = EE(I)*S156+TAUI(I)*W12
ELSE
CP(3) = Z0
CP(4) = Z0
ENDIF
TAMP(I,1) = F(1)*(G(ID,1)*Z56*CP(1)+EE(ID)*P56*CP(3))
& +F(2)*(G(ID,1)*Z56*CP(2)+EE(ID)*P56*CP(4))
TAMP(I,2) = F(3)*(G(ID,2)*Z56*CP(1)+EE(ID)*P56*CP(3))
& +F(4)*(G(ID,2)*Z56*CP(2)+EE(ID)*P56*CP(4))
AMP(I) = W34*DBLE( TAMP(I,1)*DCONJG(TAMP(I,1))
& +TAMP(I,2)*DCONJG(TAMP(I,2)))
ENDDO
ENDIF
C--Now calculate the cross section
HCS = ZERO
CFAC = CFAC1*9.0D0
IF(ID.LE.2) CFAC = CFAC*THREE
DO I=1,2
DO I1=1,3
IF(I.EQ.1) THEN
IDP(1) = 2*I1+5
ELSE
IDP(1) = 2*I1+6
ENDIF
DO J=1,3
IF(I.EQ.1) THEN
IDP(2) = 2*J
C**Bug fix 2/7/01 by BRW (unsquare)
TCS = VCKM(J,I1)
ELSE
IDP(2) = 2*J-1
TCS = VCKM(I1,J)
C**End bug fix
ENDIF
DIST(1) = TCS*DISF(IDP(1),1)*DISF(IDP(2),2)
DIST(2) = TCS*DISF(IDP(2),1)*DISF(IDP(1),2)
DO I2=1,2
HCS = HCS+CFAC*DIST(I2)*AMP(I)
IF(GENEV.AND.HCS.GT.RCS) GOTO 900
ENDDO
ENDDO
ENDDO
ENDDO
900 IF(GENEV.AND.I2.EQ.2) THEN
I1 = IDP(1)
IDP(1) = IDP(2)
IDP(2) = I1
ENDIF
IF(SYSPIN.AND.GENEV) THEN
NSPN = 1
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 MESPN(P1,P2,P3,P4,1,1) = (0.0D0,0.0D0)
MESPN(2 ,2 ,1 ,1 ,1,1) = TAMP(I,2)
MESPN(2 ,2 ,2 ,1 ,1,1) = TAMP(I,1)
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
ENDIF
END
CDECK ID>, HWHGB5.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHGB5(IOPT,FJAC,T,TMAX,TMIN)
C-----------------------------------------------------------------------
C Subroutine to select t or u for HWHGBP
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOPT
DOUBLE PRECISION FJAC,TPOW,TMIN,T,A1,A01,RPOW,QPOW,HWRGEN,TMAX,TN,
& TX,MT
EXTERNAL HWRGEN
TPOW = -1.0D0
TX = -TMIN
TN = -TMAX
IF(TPOW.EQ.-ONE) THEN
A1 = LOG(TX/TN)
IF(IOPT.EQ.1) THEN
FJAC =-ONE/T/A1
ELSE
T = -TN*EXP(A1*HWRGEN(2))
FJAC =-A1*T
ENDIF
ELSE
QPOW = ONE+TPOW
RPOW = ONE/QPOW
A01 = TN**QPOW
A1 = (TX**QPOW-A01)
IF(IOPT.EQ.1) THEN
MT = -T
FJAC =QPOW*MT**TPOW/A1
ELSE
MT = (A01+A1*HWRGEN(2))**RPOW
T = -MT
FJAC = A1*RPOW/MT**TPOW
ENDIF
ENDIF
END
CDECK ID>, HWHGRV.
*CMZ :- -13/10/00 10:48:07 by Peter Richardson
*-- Author Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWHGRV
C-----------------------------------------------------------------------
C Massive spin-2 resonance (massive graviton)
C Universal tensor coupling to the energy-momentum tensor is assumed
C viz L = - G(mu,nu) T(mu,nu) / GRVLAM
C If GAMGRV is zero, it is revaluated during the first run
C MEAN EVWGT = SIGMA IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,EPS,EMSQG,
& EMGMG,S,CC,SS,SS2,M1(16),M2(16),M3,M4,M5(3),M6(3),
& RNGLU,FACT,HCS,FACTR,RCS,A2,A02,QPE,SQPE,RGRV
INTEGER IMODE,JQMN,JQMX,JQ,JLMN,JLMX,JL,IQ,I,ID1,ID2,ID3,ID4,
& IADD(2,2)
LOGICAL JGLU,JPHO,JW,JZ,JH
EXTERNAL HWRGEN,HWRUNI
SAVE HCS,JQMN,JQMX,JLMN,JLMX,JGLU,JPHO,JW,JZ,JH,EMSQG,EMGMG,
& A2,A02,FACT,RNGLU,M1,M2,M3,M4,M5,M6
PARAMETER (EPS=1.D-9)
SAVE IADD
DATA IADD/0,6,6,0/
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
IF (FSTWGT) THEN
C Set limits for which particles to include
JLMN=1
JLMX=0
JQMN=1
JQMX=0
JGLU=.FALSE.
JPHO=.FALSE.
JW =.FALSE.
JZ =.FALSE.
JH =.FALSE.
IMODE=MOD(IPROC,100)
IF (IMODE.EQ.0) THEN
JQMN=1
JQMX=6
JGLU=.TRUE.
JLMN=11
JLMX=16
JPHO=.TRUE.
JW =.TRUE.
JZ =.TRUE.
JH =.TRUE.
ELSEIF (IMODE.EQ.10) THEN
JQMN=1
JQMX=6
JGLU=.TRUE.
ELSEIF (IMODE.GT.10.AND.IMODE.LE.16) THEN
JQMN=IMODE-10
JQMX=IMODE-10
ELSEIF (IMODE.EQ.20) THEN
JGLU=.TRUE.
ELSEIF (IMODE.EQ.50) THEN
JLMN=11
JLMX=16
JPHO=.TRUE.
ELSEIF (IMODE.GT.50.AND.IMODE.LE.56) THEN
JLMN=IMODE-40
JLMX=IMODE-40
ELSEIF (IMODE.EQ.60) THEN
JPHO=.TRUE.
ELSEIF (IMODE.EQ.70) THEN
JW =.TRUE.
JZ =.TRUE.
JH =.TRUE.
ELSEIF (IMODE.EQ.71) THEN
JW =.TRUE.
ELSEIF (IMODE.EQ.72) THEN
JZ =.TRUE.
ELSEIF (IMODE.EQ.73) THEN
JH =.TRUE.
ELSE
CALL HWWARN('HWHGRV',500)
ENDIF
RNGLU=CAFAC**2-ONE
IF (GAMGRV.EQ.ZERO) THEN
C Calculate the width if GAMGRV=ZERO.
C Quarks
DO 10 JQ=1,6
RGRV=(RMASS(JQ)/EMGRV)**2
QPE=ONE-4.D0*RGRV
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
GAMGRV=GAMGRV+CAFAC*SQPE**3*(ONE+8.D0/3.D0*RGRV)/4.D0
END IF
10 CONTINUE
C Leptons
DO 20 JL=121,126
RGRV=(RMASS(JL)/EMGRV)**2
QPE=ONE-4.D0*RGRV
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
GAMGRV=GAMGRV+SQPE**3*(ONE+8.D0/3.D0*RGRV)/4.D0
END IF
20 CONTINUE
C Photons
GAMGRV=GAMGRV+HALF
C gg
GAMGRV=GAMGRV+HALF*RNGLU
C ZZ
RGRV=(RMASS(200)/EMGRV)**2
QPE=ONE-4.D0*RGRV
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
GAMGRV=GAMGRV+SQPE*
& (13.D0/12.D0+14.D0/3.D0*RGRV+4.D0*RGRV**2)/TWO
END IF
C WW
RGRV=(RMASS(198)/EMGRV)**2
QPE=ONE-4.D0*RGRV
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
GAMGRV=GAMGRV+SQPE*
& (13.D0/12.D0+14.D0/3.D0*RGRV+4.D0*RGRV**2)
END IF
C HH
RGRV=(RMASS(201)/EMGRV)**2
QPE=ONE-4.D0*RGRV
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
GAMGRV=GAMGRV+SQPE**5/12.D0/TWO
END IF
GAMGRV=GAMGRV*EMGRV**3/(GRVLAM**2*40.D0*PIFAC)
END IF
EMSQG=EMGRV**2
EMGMG=EMGRV*GAMGRV
A02=ATAN((EMMIN**2-EMSQG)/EMGMG)
A2 =ATAN((EMMAX**2-EMSQG)/EMGMG)-A02
ENDIF
EVWGT=0.
C Select a mass for the produced pair
S=EMSQG+EMGMG*TAN(A02+A2*HWRGEN(1))
EMSCA=SQRT(S)
C Select initial momentum fractions
XXMIN=S/PHEP(5,3)**2
XLMIN=LOG(XXMIN)
CALL HWSGEN(.TRUE.)
COSTH=HWRUNI(0,-ONE,ONE)
C
FACT=-GEV2NB*A2*XLMIN*S**2/(GRVLAM**4*EMGMG*16.D0*PIFAC)
CC = COSTH**2
SS = ONE-CC
SS2= SS**2
C QQ,GG -> FF
DO 110 I=1,6
JQ=I
JL=I+10
QPE=ONE-4.D0*RMASS(JQ)**2/S
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
M1(JQ)=SQPE*QPE*(ONE+CC-4.D0*QPE*SS*CC)/64.D0/CAFAC
M2(JQ)=SQPE*QPE*SS*(TWO-QPE*SS)/16.D0/RNGLU
ELSE
M1(JQ)=ZERO
M2(JQ)=ZERO
END IF
QPE=ONE-4.D0*RMASS(JL+110)**2/S
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
M1(JL)=SQPE*QPE*(ONE+CC-4.D0*QPE*SS*CC)/64.D0/CAFAC
M2(JL)=SQPE*QPE*SS*(TWO-QPE*SS)/16.D0/RNGLU
ELSE
M1(JL)=ZERO
M2(JL)=ZERO
END IF
110 CONTINUE
C QQ,GG -> BB (massless)
M3=SS*(ONE+CC)/32.D0/CAFAC
M4=(CC+SS2/8.D0)/4.D0/RNGLU
C QQ,GG -> W,Z,H
QPE=ONE-4.D0*RMASS(198)**2/S
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
M5(1)=SQPE*(ONE-.5D0*QPE*(ONE+CC)+.75D0*QPE**2*CC*SS)/8.D0/CAFAC
M6(1)=SQPE*(ONE-QPE*SS+3.D0*QPE**2*SS2/16.D0)/2.D0/RNGLU
ELSE
M5(1)=ZERO
M6(1)=ZERO
END IF
QPE=ONE-4.D0*RMASS(200)**2/S
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
M5(2)=SQPE*(ONE-.5D0*QPE*(ONE+CC)+.75D0*QPE**2*CC*SS)/16.D0/CAFAC
M6(2)=SQPE*(ONE-QPE*SS+3.D0*QPE**2*SS2/16.D0)/4.D0/RNGLU
ELSE
M5(2)=ZERO
M6(2)=ZERO
END IF
QPE=ONE-4.D0*RMASS(201)**2/S
IF (QPE.GT.ZERO) THEN
SQPE=SQRT(QPE)
M5(3)=SQPE*(QPE**2*SS*CC)/64.D0/CAFAC
M6(3)=SQPE*(QPE**2*SS2)/64.D0/RNGLU
ELSE
M5(3)=ZERO
M6(3)=ZERO
END IF
END IF
HCS=ZERO
DO 90 I=1,2
C I=1 quark first, I=2 anti-quark first
DO 80 IQ=1,6
ID1=IQ+IADD(1,I)
ID2=IQ+IADD(2,I)
IF (DISF(ID1,1).LT.EPS.OR.DISF(ID2,2).LT.EPS) GOTO 80
FACTR=FACT*DISF(ID1,1)*DISF(ID2,2)
C Quark final states
DO 60 JQ=JQMN,JQMX
ID3=JQ
ID4=JQ+6
HCS=HCS+FACTR*M1(JQ)*CAFAC
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2143,50)
GOTO 99
ENDIF
60 CONTINUE
C Lepton final states
DO 70 JL=JLMN,JLMX
ID3=110+JL
ID4=ID3+6
HCS=HCS+FACTR*M1(JL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,50)
GOTO 99
ENDIF
70 CONTINUE
C Bosonic final states
IF (JPHO) THEN
ID3=59
ID4=59
HCS=HCS+FACTR*M3
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,50)
GOTO 99
ENDIF
END IF
IF (JW) THEN
ID3=198
ID4=199
HCS=HCS+FACTR*M5(1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,50)
GOTO 99
ENDIF
END IF
IF (JZ) THEN
ID3=200
ID4=200
HCS=HCS+FACTR*M5(2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,50)
GOTO 99
ENDIF
END IF
IF (JH) THEN
ID3=201
ID4=201
HCS=HCS+FACTR*M5(3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,50)
GOTO 99
ENDIF
END IF
IF (JGLU) THEN
ID3=13
ID4=13
HCS=HCS+FACTR*M3*RNGLU
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2143,50)
GOTO 99
ENDIF
END IF
80 CONTINUE
90 CONTINUE
C Gluon initial states
ID1=13
ID2=13
IF (DISF(ID1,1).LT.EPS.OR.DISF(ID2,2).LT.EPS) GOTO 30
FACTR=FACT*DISF(ID1,1)*DISF(ID2,2)
C Quark final states
DO 40 JQ=JQMN,JQMX
ID3=JQ
ID4=JQ+6
HCS=HCS+FACTR*M2(JQ)*CAFAC
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2143,51)
GOTO 99
ENDIF
40 CONTINUE
C Lepton final states
DO 50 JL=JLMN,JLMX
ID3=110+JL
ID4=ID3+6
HCS=HCS+FACTR*M2(JL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,51)
GOTO 99
ENDIF
50 CONTINUE
C Vector boson final states
IF (JPHO) THEN
ID3=59
ID4=59
HCS=HCS+FACTR*M4
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,51)
GOTO 99
ENDIF
END IF
IF (JW) THEN
ID3=198
ID4=199
HCS=HCS+FACTR*M6(1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,51)
GOTO 99
ENDIF
END IF
IF (JZ) THEN
ID3=200
ID4=200
HCS=HCS+FACTR*M6(2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,51)
GOTO 99
ENDIF
END IF
IF (JH) THEN
ID3=201
ID4=201
HCS=HCS+FACTR*M6(3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2134,51)
GOTO 99
ENDIF
END IF
IF (JGLU) THEN
ID3=13
ID4=13
HCS=HCS+FACTR*M4*RNGLU
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,2143,51)
GOTO 99
ENDIF
END IF
30 CONTINUE
EVWGT=HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=208
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
C Set to zero for now
CALL HWVZRO(7,GCOEF)
END IF
END
CDECK ID>, HWHGUP.
*CMZ :- -16/07/02 09.40.25 by Peter Richardson
*-- Author : Peter Richardson
C----------------------------------------------------------------------
SUBROUTINE HWHGUP
C----------------------------------------------------------------------
C Use the GUPI (Generic User Process Interface) event common block
C as the hard process for HERWIG
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
C--Les Houches Common Block
INTEGER MAXPUP
PARAMETER(MAXPUP=100)
INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
& IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
& XMAXUP(MAXPUP),LPRUP(MAXPUP)
INTEGER MAXNUP
PARAMETER (MAXNUP=500)
INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,
& IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP),
& ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP),
& SPINUP(MAXNUP)
C--Local variables
COMMON /HWGUP/ILOC(NMXHEP),JLOC(MAXNUP)
INTEGER ILOC,JLOC,JHEP,ID
INTEGER IHEP,IDIN(2),I,IDRES(2,MAXPUP),IRES,ICMF,ISTART,JRES,J
DOUBLE PRECISION PTEMP(5)
CHARACTER *8 DUMMY
LOGICAL HWRLOG
EXTERNAL HWRLOG
IRES = 0
C--zero the variables
DO I=1,NUP
JLOC(I) = 0
ENDDO
DO I=1,NMXHEP
ILOC(I) = 0
ENDDO
c---generate hard subprocess
C--now do the event selection bit
IF(.NOT.GENEV) THEN
IDPRUP = LPRUP(ITYPLH)
CALL UPEVNT_GUP
IF(ABS(IDWTUP).EQ.1.OR.ABS(IDWTUP).EQ.2.OR.
& ABS(IDWTUP).EQ.4) THEN
EVWGT = XWGTUP*1.0D-3
ELSEIF(ABS(IDWTUP).EQ.3) THEN
EVWGT = SIGN(ONE,XWGTUP)
ELSE
CALL HWWARN('HWHGUP',510)
ENDIF
C--check the sign of the weight
IF(IDWTUP.GT.ZERO.AND.EVWGT.LT.ZERO) CALL HWWARN('HWHGUP',520)
RETURN
ENDIF
C--update the number of events
LHNEVT(ITYPLH) = LHNEVT(ITYPLH)+1
ITYPLH = 0
C--first search to see if there are incoming beam particles in the record
I = 0
DO IHEP=1,NUP
IF(ISTUP(IHEP).EQ.-9) THEN
I=I+1
IF(I.EQ.3) THEN
CALL HWWARN('HWHGUP',102)
GOTO 999
ENDIF
IDIN(I) = IHEP
ENDIF
ENDDO
C--put the beam particles in the record
C--require the soft event
GENSOF = LHSOFT.AND.HWRLOG(PRSOF)
C--if given for event from event common block
NHEP = 0
IF(I.EQ.2) THEN
C--otherwise from the process common block
ELSEIF(I.EQ.0) THEN
DO I=1,2
CALL HWUIDT(1,IDBMUP(I),IDHW(I),DUMMY)
PHEP(1,I) = ZERO
PHEP(2,I) = ZERO
PHEP(4,I) = EBMUP(I)
PHEP(5,I) = RMASS(IDHW(I))
PHEP(3,I) = SQRT(EBMUP(I)**2-RMASS(IDHW(I))**2)
ISTHEP(I) = 100+I
ENDDO
PHEP(3,2) = -PHEP(3,2)
NHEP = NHEP+2
C--if not correct issue warning
ELSE
CALL HWWARN('HWHGUP',103)
GOTO 999
ENDIF
C--setup the centre-of-mass energy
CALL HWVSUM(4,PHEP(1,NHEP-1),PHEP(1,NHEP),PHEP(1,NHEP+1))
CALL HWUMAS(PHEP(1,NHEP+1))
JMOHEP(1,NHEP+1) = NHEP-1
JMOHEP(2,NHEP+1) = NHEP
IDHW(3) = 14
ISTHEP(3) = 103
NHEP = NHEP+1
C--search for the incoming particles in collision
I = 0
DO IHEP=1,NUP
IF(ISTUP(IHEP).EQ.-1) THEN
I = I+1
IF(I.EQ.3) THEN
CALL HWWARN('HWHGUP',100)
GOTO 999
ENDIF
IDIN(I) = IHEP
ENDIF
ENDDO
C--require two incoming particles
IF(I.NE.2) THEN
CALL HWWARN('HWHGUP',101)
GOTO 999
ENDIF
C--Now write these particles into the event record
DO I=1,2
IDHEP(NHEP+I) = IDUP(IDIN(I))
ISTHEP(NHEP+I) = 110+I
CALL HWUIDT(1,IDUP(IDIN(I)),IDHW(NHEP+I),DUMMY)
CALL HWVEQU(5,PUP(1,IDIN(I)),PHEP(1,NHEP+I))
JMOHEP(1,NHEP+I) = NHEP+3
ILOC(NHEP+I) = IDIN(I)
JLOC(I) = NHEP+I
C--special for pairtcles which are identical to the beam
DO J=1,2
IF(IDHEP(NHEP+I).EQ.IDHEP(J)) THEN
JDAHEP(1,J) = NHEP+I
JDAHEP(2,J) = NHEP+I
ENDIF
ENDDO
ENDDO
CALL HWVSUM(4,PHEP(1,NHEP+1),PHEP(1,NHEP+2),PHEP(1,NHEP+3))
CALL HWUMAS(PHEP(1,NHEP+3))
C--add the hard entry
IDHW(NHEP+3) = 15
ISTHEP(NHEP+3) = 110
JMOHEP(1,NHEP+3) = NHEP+1
JMOHEP(2,NHEP+3) = NHEP+2
JDAHEP(1,NHEP+3) = NHEP+4
NHEP = NHEP+3
ICMF = NHEP
C--now search for the outgoing particles and add them to the event record
DO I=1,NUP
C--normal outgoing particles
IF(ISTUP(I).EQ.1.AND.
& (MOTHUP(1,I).EQ.IDIN(1).OR.MOTHUP(1,I).EQ.IDIN(2))) THEN
NHEP = NHEP+1
IDHEP(NHEP) = IDUP(I)
CALL HWUIDT(1,IDUP(I),IDHW(NHEP),DUMMY)
CALL HWVEQU(5,PUP(1,I),PHEP(1,NHEP))
JMOHEP(1,NHEP) = ICMF
JMOHEP(2,NHEP) = 0
JDAHEP(2,NHEP) = 0
ILOC(NHEP) = I
JLOC(I) = NHEP
C--resonances which must have mass preserved and resonances
C-- which don't have to have mass preserved
C--for the time being we won't disguish between these two options
ELSEIF((ISTUP(I).EQ.2.OR.ISTUP(I).EQ.3).AND.
& (MOTHUP(1,I).EQ.IDIN(1).OR.MOTHUP(1,I).EQ.IDIN(2))) THEN
NHEP = NHEP+1
IDHEP(NHEP) = IDUP(I)
CALL HWUIDT(1,IDUP(I),IDHW(NHEP),DUMMY)
CALL HWVEQU(5,PUP(1,I),PHEP(1,NHEP))
IRES = IRES+1
IDRES(1,IRES) = NHEP
IDRES(2,IRES) = I
JMOHEP(1,NHEP) = ICMF
JMOHEP(2,NHEP) = 0
JDAHEP(2,NHEP) = 0
ILOC(NHEP) = I
JLOC(I) = NHEP
ELSEIF(ISTUP(I).NE.-9.AND.ISTUP(I).NE.-1.AND.ISTUP(I).NE.1.AND.
& ISTUP(I).NE.2.AND.ISTUP(I).NE.3) THEN
CALL HWWARN('HWHGUP',500)
ENDIF
ENDDO
C--Modified 2/7/03 for 2->1 processes
IF(ICMF+1.EQ.NHEP) THEN
NHEP = NHEP-1
IDHEP(NHEP) = IDHEP(NHEP+1)
IDHEP(NHEP+1) = 0
IDHW(NHEP) = IDHW(NHEP+1)
IDHW(NHEP+1) = 0
CALL HWVEQU(5,PHEP(1,NHEP+1),PHEP(1,NHEP))
JMOHEP(1,NHEP+1) = 0
JMOHEP(2,NHEP+1) = 0
JDAHEP(1,NHEP+1) = 0
JDAHEP(2,NHEP+1) = 0
JDAHEP(1,NHEP ) = NHEP
JDAHEP(2,NHEP ) = NHEP
ILOC(NHEP) = ILOC(NHEP+1)
ILOC(NHEP+1) = 0
JLOC(ILOC(NHEP)) = NHEP
JLOC(NHEP+1) = 0
DO I=1,IRES
IF(IDRES(1,IRES).EQ.NHEP+1) IDRES(1,IRES) = NHEP
ENDDO
ELSE
JDAHEP(2,ICMF) = NHEP
C--setup the status codes
ISTHEP(ICMF+1) = 113
DO IHEP=ICMF+2,NHEP
ISTHEP(IHEP) = 114
ENDDO
ENDIF
C--End mod
ISTART = ICMF-3
EMSCA = SCALUP
C--generate parton shower
CALL HWBGUP(ISTART,ICMF)
C--now we need to sort out the resonances
IF(IRES.EQ.0) RETURN
JRES = 1
35 ID = IDHEP(IDRES(1,JRES))
36 IF(JDAHEP(1,IDRES(1,JRES)).NE.0.AND.
& JDAHEP(1,IDRES(1,JRES)).NE.IDRES(1,JRES)) THEN
IF(IDHEP(IDRES(1,JRES)).EQ.94) THEN
DO IHEP=JDAHEP(1,IDRES(1,JRES)),JDAHEP(2,IDRES(1,JRES))
IF(IDHEP(IHEP).EQ.ID) THEN
IDRES(1,JRES) = IHEP
GOTO 36
ENDIF
ENDDO
ELSE
IDRES(1,JRES) = JDAHEP(1,IDRES(1,JRES))
ENDIF
GOTO 36
ENDIF
C--make a copy of this particle
IHEP = IDRES(1,JRES)
JMOHEP(1,NHEP+1) = JMOHEP(1,IDRES(1,JRES))
JMOHEP(2,NHEP+1) = JMOHEP(2,IDRES(1,JRES))
IDHEP(NHEP+1) = IDHEP(IDRES(1,JRES))
IDHW(NHEP+1) = IDHW(IDRES(1,JRES))
CALL HWVEQU(5,PHEP(1,IDRES(1,JRES)),PHEP(1,NHEP+1))
IDRES(1,JRES) = NHEP+1
JLOC(IDRES(2,JRES)) = IDRES(1,JRES)
ISTHEP(NHEP+1) = 155
NHEP = NHEP+1
C Reset colour pointers (if set)
JHEP=JMOHEP(2,IHEP)
IF (JHEP.GT.0) THEN
IF (JDAHEP(2,JHEP).EQ.IHEP) JDAHEP(2,JHEP)=NHEP
IF(.NOT.RPARTY.AND.ISTHEP(JHEP).EQ.155
& .AND.ABS(IDHEP(JHEP)).GT.1000000
& .AND.JDAHEP(2,JHEP-1).EQ.IHEP) JDAHEP(2,JHEP-1) = NHEP
ENDIF
JHEP=JDAHEP(2,IHEP)
IF (JHEP.GT.0) THEN
IF (JMOHEP(2,JHEP).EQ.IHEP) JMOHEP(2,JHEP)=NHEP
IF(.NOT.RPARTY.AND.ISTHEP(JHEP).EQ.155
& .AND.ABS(IDHEP(JHEP)).GT.1000000
& .AND.JMOHEP(2,JHEP-1).EQ.IHEP) JMOHEP(2,JHEP-1) = NHEP
ENDIF
C Relabel original track
IF (ISTHEP(IHEP).NE.120) ISTHEP(IHEP)=3
JMOHEP(2,IHEP)=JMOHEP(1,IHEP)
JDAHEP(1,IHEP)=NHEP
JDAHEP(2,IHEP)=NHEP
C--look for all the particles which have this as a mother
C--now search for the outgoing particles and add them to the event record
JDAHEP(1,NHEP) = NHEP+1
ISTHEP(NHEP+1) = 113
DO I=1,NUP
IF(ISTUP(I).EQ.1.AND.MOTHUP(1,I).EQ.IDRES(2,JRES)) THEN
NHEP = NHEP+1
IDHEP(NHEP) = IDUP(I)
CALL HWUIDT(1,IDUP(I),IDHW(NHEP),DUMMY)
CALL HWULOF(PUP(1,IDRES(2,JRES)),PUP(1,I),PHEP(1,NHEP))
CALL HWULOB(PHEP(1,IDRES(1,JRES)),PHEP(1,NHEP),PHEP(1,NHEP))
JMOHEP(1,NHEP) = IDRES(1,JRES)
JMOHEP(2,NHEP) = 0
JDAHEP(2,NHEP) = 0
ILOC(NHEP) = I
JLOC(I) = NHEP
ELSEIF((ISTUP(I).EQ.2.OR.ISTUP(I).EQ.3).AND.
& MOTHUP(1,I).EQ.IDRES(2,JRES)) THEN
NHEP = NHEP+1
IDHEP(NHEP) = IDUP(I)
CALL HWUIDT(1,IDUP(I),IDHW(NHEP),DUMMY)
CALL HWULOF(PUP(1,IDRES(2,JRES)),PUP(1,I),PHEP(1,NHEP))
CALL HWULOB(PHEP(1,IDRES(1,JRES)),PHEP(1,NHEP),PHEP(1,NHEP))
IRES = IRES+1
IDRES(1,IRES) = NHEP
IDRES(2,IRES) = I
JMOHEP(1,NHEP) = IDRES(1,JRES)
JMOHEP(2,NHEP) = 0
JDAHEP(2,NHEP) = 0
ILOC(NHEP) = I
JLOC(I) = NHEP
ENDIF
ENDDO
C--special for top decays to ensure b is second and W is first, this seems
C--to cause problems if the order is the other way around
IF(ABS(IDHEP(IDRES(1,JRES))).EQ.6.AND.
& NHEP-IDRES(1,JRES).EQ.2) THEN
IF(ABS(IDHEP(NHEP-1)).EQ.5) THEN
C--swap momenta
CALL HWVEQU(5,PHEP(1,NHEP),PTEMP)
CALL HWVEQU(5,PHEP(1,NHEP-1),PHEP(1,NHEP))
CALL HWVEQU(5,PTEMP,PHEP(1,NHEP-1))
C--swap id's
J = IDHW(NHEP)
IDHW(NHEP) = IDHW(NHEP-1)
IDHW(NHEP-1) = J
J = IDHEP(NHEP)
IDHEP(NHEP) = IDHEP(NHEP-1)
IDHEP(NHEP-1) = J
C--locations
J = ILOC(NHEP)
ILOC(NHEP) = ILOC(NHEP-1)
ILOC(NHEP-1) = J
JLOC(ILOC(NHEP-1)) = NHEP-1
JLOC(ILOC(NHEP)) = NHEP
C--resonances
DO I=1,IRES
IF(IDRES(1,I).EQ.NHEP) IDRES(1,I) = NHEP-1
ENDDO
ENDIF
ENDIF
DO IHEP=IDRES(1,JRES)+2,NHEP
ISTHEP(IHEP) = 114
ENDDO
JDAHEP(2,IDRES(1,JRES)) = NHEP
ISTART = IDRES(1,JRES)
EMSCA = PHEP(4,IDRES(1,JRES))
CALL HWBGUP(ISTART,0)
IF(JRES.NE.IRES) THEN
JRES = JRES+1
GOTO 35
ENDIF
999 RETURN
END
CDECK ID>, HWHHVY.
*CMZ :- -18/05/99 14.55.44 by Kosuke Odagiri
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHHVY
C-----------------------------------------------------------------------
C QCD HEAVY FLAVOUR PRODUCTION: MEAN EVWGT = SIGMA IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,EPS,RCS,Z1,Z2,ET,EJ,
& QM2,QPE,FACTR,S,T,U,ST,TU,US,TUS,UST,EN,RN,AF,ASTU,
& AUST,CF,CN,CS,CSTU,CSUT,CTSU,CTUS,HCS,UT,SU,GT,DIST,KK,KK2,
& YJ1INF,YJ1SUP,YJ2INF,YJ2SUP
INTEGER IQ1,IQ2,ID1,ID2
LOGICAL HQ1,HQ2
EXTERNAL HWRGEN,HWRUNI,HWUALF
SAVE HCS,ASTU,AUST,CSTU,CSUT,CTSU,CTUS,S,T,TU,U,US
PARAMETER (EPS=1.D-9)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
CALL HWRPOW(ET,EJ)
KK = ET/PHEP(5,3)
KK2=KK**2
IF (KK.GE.ONE) RETURN
YJ1INF = MAX( YJMIN, LOG((ONE-SQRT(ONE-KK2))/KK) )
YJ1SUP = MIN( YJMAX, LOG((ONE+SQRT(ONE-KK2))/KK) )
IF (YJ1INF.GE.YJ1SUP) RETURN
Z1=EXP(HWRUNI(1,YJ1INF,YJ1SUP))
YJ2INF = MAX( YJMIN, -LOG(TWO/KK-ONE/Z1) )
YJ2SUP = MIN( YJMAX, LOG(TWO/KK-Z1) )
IF (YJ2INF.GE.YJ2SUP) RETURN
Z2=EXP(HWRUNI(2,YJ2INF,YJ2SUP))
XX(1)=HALF*(Z1+Z2)*KK
IF (XX(1).GE.ONE) RETURN
XX(2)=XX(1)/(Z1*Z2)
IF (XX(2).GE.ONE) RETURN
S=XX(1)*XX(2)*PHEP(5,3)**2
IQ1=MOD(IPROC,100)
QM2=RMASS(IQ1)**2
QPE=S-4.*QM2
IF (QPE.LE.ZERO) RETURN
COSTH=HALF*ET*(Z1-Z2)/SQRT(Z1*Z2*QPE)
IF (ABS(COSTH).GT.ONE) RETURN
C---REDEFINE S, T, U AS P1.P2, -P1.P3, -P1.P4
S=HALF*S
T=-HALF*(1.+Z2/Z1)*(HALF*ET)**2
U=-S-T
C---SET EMSCA TO HEAVY HARD PROCESS SCALE
EMSCA=SQRT(4.*S*T*U/(S*S+T*T+U*U))
FACTR = GEV2NB*.125*PIFAC*EJ*ET*(HWUALF(1,EMSCA)/S)**2
& *(YJ1SUP-YJ1INF)*(YJ2SUP-YJ2INF)
CALL HWSGEN(.FALSE.)
C
ST=S/T
TU=T/U
UT=U/T
US=U/S
SU=S/U
TUS=US/ST
UST=ST/TU
C
EN=CAFAC
RN=CFFAC/EN
AF=FACTR*RN
ASTU=AF*(1.-2.*UST+QM2/T)
AUST=AF*(1.-2.*TUS+QM2/S)
CF=FACTR/(2.*CFFAC)
CN=1./(EN*EN)
C-----------------------------------------------------------------------
C---Heavy flavour colour decomposition modifications below (KO)
C-----------------------------------------------------------------------
CS=(TU+UT-CN/TUS)*(HALF-TUS+QM2/S-QM2**2/U/T/TWO)
CSTU=CF*CS/(ONE+TU**2)
CSUT=CF*CS/(ONE+UT**2)
CS=(SU+US-CN/UST)*(HALF-UST+QM2/T-QM2**2/U/S/TWO)
CTSU=-FACTR*CS/(ONE+SU**2)
CTUS=-FACTR*CS/(ONE+US**2)
C-----------------------------------------------------------------------
C CS=HALF/TU-QM2/T-HALF*(QM2/T)**2
C CSTU=CF*(CS- US**2-QM2/S - CN*(CS+QM2*QM2/(S*T)))
C CS=HALF*TU-QM2/U-HALF*(QM2/U)**2
C CSUT=CF*(CS-1./ST**2-QM2/S - CN*(CS+QM2*QM2/(S*U)))
C CS=HALF*US-QM2/S-HALF*(QM2/S)**2
C CTSU=-FACTR*(CS-1./TU**2-QM2/T - CN*(CS+QM2*QM2/(S*T)))
C CS=HALF/US-QM2/U-HALF*(QM2/U)**2
C CTUS=-FACTR*(CS- ST**2-QM2/T - CN*(CS+QM2*QM2/(T*U)))
C-----------------------------------------------------------------------
ENDIF
C
HCS=0.
IQ2=IQ1+6
DO 6 ID1=1,13
IF (DISF(ID1,1).LT.EPS) GOTO 6
HQ1=ID1.EQ.IQ1.OR.ID1.EQ.IQ2
DO 5 ID2=1,13
IF (DISF(ID2,2).LT.EPS) GOTO 5
HQ2=ID2.EQ.IQ1.OR.ID2.EQ.IQ2
DIST=DISF(ID1,1)*DISF(ID2,2)
IF (HQ1.OR.HQ2) THEN
C---PROCESSES INVOLVING HEAVY CONSTITUENT
C N.B. NEGLECT CASE THAT BOTH ARE HEAVY
IF (HQ1.AND.HQ2) GOTO 5
IF (ID1.LT.7) THEN
C---QUARK FIRST
IF (ID2.LT.7) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421, 3)
GOTO 9
ENDIF
ELSEIF (ID2.NE.13) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142, 9)
GOTO 9
ENDIF
ELSE
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142,10)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421,11)
GOTO 9
ENDIF
ENDIF
ELSEIF (ID1.NE.13) THEN
C---QBAR FIRST
IF (ID2.LT.7) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,17)
GOTO 9
ENDIF
ELSEIF (ID2.NE.13) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,20)
GOTO 9
ENDIF
ELSE
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,21)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,22)
GOTO 9
ENDIF
ENDIF
ELSE
C---GLUON FIRST
IF (ID2.LT.7) THEN
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,23)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421,24)
GOTO 9
ENDIF
ELSEIF (ID2.LT.13) THEN
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142,25)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,26)
GOTO 9
ENDIF
ENDIF
ENDIF
ELSEIF (ID2.NE.13.AND.ID2.EQ.ID1+6) THEN
C---LIGHT Q-QBAR ANNIHILATION
HCS=HCS+AUST*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IQ1,IQ2,2413, 4)
GOTO 9
ENDIF
ELSEIF (ID1.NE.13.AND.ID1.EQ.ID2+6) THEN
C---LIGHT QBAR-Q ANNIHILATION
HCS=HCS+AUST*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IQ2,IQ1,3142,12)
GOTO 9
ENDIF
ELSEIF (ID1.EQ.13.AND.ID2.EQ.13) THEN
C---GLUON FUSION
HCS=HCS+CSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IQ1,IQ2,2413,27)
GOTO 9
ENDIF
HCS=HCS+CSUT*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IQ1,IQ2,4123,28)
GOTO 9
ENDIF
ENDIF
5 CONTINUE
6 CONTINUE
EVWGT=HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
IF (IHPRO.EQ.7 .OR.IHPRO.EQ.8 .OR.
& IHPRO.EQ.15.OR.IHPRO.EQ.16) THEN
C qqbar-->gg or qbarq-->gg
UT=1./TU
GCOEF(1)=UT+TU
GCOEF(2)=-2.
GCOEF(3)=0.
GCOEF(4)=0.
GCOEF(5)=GCOEF(1)
GCOEF(6)=UT-TU
GCOEF(7)=-GCOEF(6)
ELSEIF (IHPRO.EQ.10.OR.IHPRO.EQ.11.OR.
& IHPRO.EQ.21.OR.IHPRO.EQ.22.OR.
& IHPRO.EQ.23.OR.IHPRO.EQ.24.OR.
& IHPRO.EQ.25.OR.IHPRO.EQ.26) THEN
C qg-->qg or qbarg-->qbarg or gq-->gq or gqbar-->gqbar
SU=1./US
GCOEF(1)=-(SU+US)
GCOEF(2)=0.
GCOEF(3)=2.
GCOEF(4)=0.
GCOEF(5)=SU-US
GCOEF(6)=GCOEF(1)
GCOEF(7)=-GCOEF(5)
ELSEIF (IHPRO.EQ.27.OR.IHPRO.EQ.28) THEN
C gg-->qqbar
UT=1./TU
GCOEF(1)=TU+UT
GCOEF(2)=-2.
GCOEF(3)=0.
GCOEF(4)=0.
GCOEF(5)=GCOEF(1)
GCOEF(6)=TU-UT
GCOEF(7)=-GCOEF(6)
ELSEIF (IHPRO.EQ.29.OR.IHPRO.EQ.30.OR.
& IHPRO.EQ.31) THEN
C gg-->gg
GT=S*S+T*T+U*U
GCOEF(2)=2.*U*U*T*T
GCOEF(3)=2.*S*S*U*U
GCOEF(4)=2.*S*S*T*T
GCOEF(1)=GT*GT-GCOEF(2)-GCOEF(3)-GCOEF(4)
GCOEF(5)=GT*(GT-2.*S*S)-GCOEF(2)
GCOEF(6)=GT*(GT-2.*T*T)-GCOEF(3)
GCOEF(7)=GT*(GT-2.*U*U)-GCOEF(4)
ELSE
CALL HWVZRO(7,GCOEF)
ENDIF
ENDIF
END
CDECK ID>, HWHIBG.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Kosuke Odagiri & Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,3 (see below) for the processes IPROC=3410,3420,3430,3450
C...as described in the HERWIG 6 documentation file.
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 6-AUG-1999 by Kosuke Odagiri
C...Last modified: 6-SEP-1999 by Stefano Moretti
C
C-----------------------------------------------------------------------
SUBROUTINE HWHIBG
C-----------------------------------------------------------------------
C HIGGS + HEAVY QUARK (BOTTOM & TOP) PRODUCTION (2HDM)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN, HWUALF, HWUAEM, EPS, HCS, RCS,
& DIST, SM, DM, QPE, PF, SQPE, EMSC2, FACTR, S, T3, U4,
& SN2TH, ME2(0:4), MW, XWEIN, PT2MIN, PT2, GQH(0:4), G1, RMMIN,
& EMG, EMQ, EMH, EMG2, EMQ2, EMH2, EMHWT, ECM_MAX, X(3), XL(3),
& XU(3), WEIGHT, ECM, SHAT, TAU, T, TL, TLMIN, TLMAX, TTMIN, TTMAX,
& CTMP, PCM, PCM2, RCM, RCM2, FKLN
INTEGER ID1, ID2, IH, IQ, I
EXTERNAL HWRGEN, HWUALF, HWUAEM
SAVE HCS,ME2,S,SHAT
PARAMETER (EPS = 1.D-9)
EQUIVALENCE (MW, RMASS(198))
PARAMETER (EMG=0.,EMG2=0.)
C...generate event.
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
HCS = ZERO
EVWGT = ZERO
C...minimum transverse momentum.
PTMIN = ZERO
PT2MIN = PTMIN**2
C...accompanying quark.
IQ=5
IF(IHIGGS.GE.5)IQ=6
EMQ=RMASS(IQ)
EMQ2=EMQ*EMQ
C...on-shell Higgs.
EMH=RMASS(201+IHIGGS)
EMHWT=1.D0
EMH2=EMH*EMH
RMMIN=(EMQ+EMH)/2.
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...IF IQ=5 -> X(1)=(LOG(|T|)-LOG(|TMIN|))/(LOG(|TMAX|)-LOG(|TMIN|),
C...IF IQ=6 -> X(1)=COS(THETA_CM);
C...X(2)=(1./SHAT-1./ECM_MAX**2)/(1./(EMQ+EMH)**2-1./ECM_MAX**2),
C...X(3)=(LOG(TAU)-LOG(X1))/LOG(TAU),
C...phase space borders.
IF(IQ.EQ.5)XL(1)=0.
IF(IQ.EQ.6)XL(1)=-1.
XU(1)=1.
XL(2)=0.
XU(2)=1.
XL(3)=0.
XU(3)=1.
C...single phase space point.
WEIGHT=1.
DO I=1,3
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...energy at parton level.
ECM=SQRT(1./(X(2)*(1./(EMQ+EMH)**2-1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1)=EXP(LOG(TAU)*(1.-X(3)))
XX(2)=TAU/XX(1)
C...reconstruct polar angle.
IF(IQ.EQ.5)THEN
PCM2=((SHAT-EMQ2-EMG2)**2
& -(2.*EMQ*EMG)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
RCM2=((SHAT-EMQ2-EMH2)**2
& -(2.*EMQ*EMH)**2)/(4.*SHAT)
RCM=SQRT(RCM2)
FKLN=SQRT((SHAT-(EMQ+EMG)**2)*(SHAT-(EMQ-EMG)**2))
& *SQRT((SHAT-(EMQ+EMH)**2)*(SHAT-(EMQ-EMH)**2))
TTMAX=EMG2+EMQ2-0.5D0/ECM/ECM
& *((SHAT+EMG2-EMQ2)*(SHAT+EMQ2-EMH2)
& -FKLN)
TTMIN=EMG2+EMQ2-0.5D0/ECM/ECM
& *((SHAT+EMG2-EMQ2)*(SHAT+EMQ2-EMH2)
& +FKLN)
TLMAX=LOG(ABS(TTMIN))
TLMIN=LOG(ABS(TTMAX))
TL=X(1)*(TLMAX-TLMIN)+TLMIN
T=EXP(TL)
CTMP=-T-EMG2-EMQ2
& +2.*SQRT(PCM2+EMG2)*SQRT(RCM2+EMQ2)
COSTH = CTMP/2./PCM/RCM
ELSE IF(IQ.EQ.6)THEN
COSTH = X(1)
END IF
SN2TH = 0.25D0 - 0.25D0*COSTH**2
IF((0.25D0-RMMIN**2/SHAT).LT.0.)THEN
EVWGT=0.
RETURN
END IF
T3 = ( SQRT(0.25D0-RMMIN**2/SHAT) * COSTH - HALF ) * SHAT
U4 = - T3 - SHAT
EMSC2 = TWO*SHAT*T3*U4/(SHAT**2+T3**2+U4**2)
EMSCA = SQRT( EMSC2 )
CALL HWSGEN(.FALSE.)
EVWGT = ZERO
XWEIN = TWO * SWEIN
FACTR = GEV2NB*PIFAC*HWUAEM(EMSC2)/XWEIN/SHAT
& *HWUALF(1,EMSCA)/TWO/CAFAC/2.
C...Jacobians from COSTH to X(1).
IF(IQ.EQ.5)THEN
FACTR=FACTR*(TLMAX-TLMIN)/2./PCM/RCM*T
ELSE
CONTINUE
END IF
C...Jacobians from X1,X2 to X(2),X(3).
FACTR=FACTR/S*(-LOG(TAU))*(1./(EMQ+EMH)**2-1./ECM_MAX**2)
C...CKM mixing top/bottom quark.
c bug fix 20/05/01 SM.
IF(IQ.EQ.6)FACTR=FACTR*VCKM(3,3)
c end of bug fix.
C...Higgs resonance.
FACTR=FACTR*EMHWT
C...constant weight.
FACTR=FACTR*WEIGHT
C...SM/MSSM couplings.
IF (IHIGGS.EQ.0) THEN
GQH(0)=(RMASS(5)/MW)**2/TWO
ELSE
G1 = (RMASS(5)/MW/COSB)**2/TWO
GQH(1) = G1*SINA**2
GQH(2) = G1*COSA**2
GQH(3) = G1*SINB**2
GQH(4) = GQH(3)+(RMASS(6)/MW/TANB)**2/TWO
END IF
C...Matrix elements.
DO IH = 0,4
ME2(IH) = ZERO
END DO
c
c g b -> Q H
c
ID1 = 5
IH=IHIGGS
IF(IHIGGS.NE.0)IH=IHIGGS-1
IF (IH.EQ.4) ID1 = 6
ID2 = 201+IHIGGS
SM = RMASS(ID1)+RMASS(ID2)
QPE = SHAT-SM**2
IF (QPE.GT.ZERO) THEN
DM = RMASS(ID1)-RMASS(ID2)
QPE = QPE*(SHAT-DM**2)/SHAT
END IF
PT2 = QPE*SN2TH
IF (PT2.GT.PT2MIN) THEN
SQPE = SQRT(QPE*SHAT)
PF = SQPE/SHAT
T3 = (SQPE*COSTH - SHAT - SM*DM) / TWO
U4 = - T3 - SHAT
ME2(IH) = FACTR*PF * GQH(IH) *
& U4/SHAT/T3*(-U4+TWO*SM*DM/T3/U4*SHAT*PT2)
ELSE
ME2(IH) = ZERO
END IF
END IF
HCS = ZERO
c
c g b
ID1 = 13
ID2 = 5
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 0,3
HCS = HCS + DIST*ME2(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(5,IHIGGS+201,2314,1)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2(4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(6,207,2314,1)
GOTO 9
ENDIF
END IF
c _
c g b
ID1 = 13
ID2 = 11
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 0,3
HCS = HCS + DIST*ME2(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(11,IHIGGS+201,3124,1)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2(4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(12,206,3124,1)
GOTO 9
ENDIF
END IF
c
c b g
ID1 = 5
ID2 = 13
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 0,3
HCS = HCS + DIST*ME2(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IHIGGS+201,5,4132,1)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2(4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(207,6,4132,1)
GOTO 9
ENDIF
END IF
c _
c b g
ID1 = 11
ID2 = 13
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 0,3
HCS = HCS + DIST*ME2(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IHIGGS+201,11,2431,1)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2(4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(206,12,2431,1)
GOTO 9
ENDIF
END IF
EVWGT = HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
C Set to zero for now
CALL HWVZRO(7,GCOEF)
END IF
END
CDECK ID>, HWHIBK.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,4 (see below) for the process IPROC=3350, as described
C...in the HERWIG 6 documentation file.
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 8-APR-1999 by Stefano Moretti
C
SUBROUTINE HWHIBK
C-----------------------------------------------------------------------
C ASSOCIATE PRODUCTION W+H- FROM QUARK FUSION (2HDM)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,IHEL
DOUBLE PRECISION EMH,EMHWT,RMW,EMW
DOUBLE PRECISION RMH
DOUBLE PRECISION X(4),XL(4),XU(4)
DOUBLE PRECISION CT,ST
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3)
DOUBLE PRECISION ECM_MAX,ECM,SHAT,S,TAU
DOUBLE PRECISION EMIN,PCM2,PCM,RCM2,RCM
DOUBLE PRECISION M2,M2L,M2T
DOUBLE PRECISION ALPHA,EMSC2
DOUBLE PRECISION HWRGEN,HWUAEM
DOUBLE PRECISION RNMIN,RNMAX,THETA_MIN,THETA_MAX
DOUBLE PRECISION EPS,HCS,RCS,FACT,DIST
DOUBLE PRECISION WEIGHT
DOUBLE PRECISION VSAVE
SAVE EMH,EMW,HCS,M2,M2L,M2T,FACT,S,CT
LOGICAL HWRLOG
EXTERNAL HWHIGM,HWRGEN,HWUAEM,HWH2BK,HWETWO,HWRLOG
PARAMETER (EPS=1.D-9)
EQUIVALENCE (RMW ,RMASS(198))
EQUIVALENCE (RMH ,RMASS(206))
IF(GENEV)THEN
RCS=HCS*HWRGEN(0)
ELSE
HCS=0.
EVWGT=0.
C...assign final state masses.
EMH=RMH
EMHWT=1.D0
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...X(1)=COS(THETA_CM),
C...X(2)=(1./SHAT-1./ECM_MAX**2)/(1./(EMW+EMH)**2-1./ECM_MAX**2),
C...X(3)=(LOG(TAU)-LOG(X1))/LOG(TAU),
C...X(4)=(THETA-THETA_MIN)/(THETA_MAX-THETA_MIN),
C...where THETA=ATAN((EMW*EMW-RMW*RMW)/RMW/GAMW);
C...phase space borders.
XL(1)=-1.
XU(1)=1.
XL(2)=0.
XU(2)=1.
XL(3)=0.
XU(3)=1.
XL(4)=0.
XU(4)=1.
C...single phase space point.
WEIGHT=1.
DO I=1,4
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...resonant boson mass (limits to -10*W-widths to improve efficiency).
RNMIN=RMW-GAMMAX*GAMW
THETA_MIN=ATAN((RNMIN*RNMIN-RMW*RMW)/RMW/GAMW)
RNMAX=ECM_MAX-EMH
THETA_MAX=ATAN((RNMAX*RNMAX-RMW*RMW)/RMW/GAMW)
EMW=SQRT((TAN(X(4)*(THETA_MAX-THETA_MIN)+THETA_MIN))
& *RMW*GAMW+RMW*RMW)
C...energy at parton level.
ECM=SQRT(1./(X(2)*(1./(EMW+EMH)**2-1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1)=EXP(LOG(TAU)*(1.-X(3)))
XX(2)=TAU/XX(1)
C...two particle kinematics.
CT=X(1)
IF(HWRLOG(HALF))THEN
ST=+SQRT(1.-CT*CT)
ELSE
ST=-SQRT(1.-CT*CT)
END IF
RCM2=((SHAT-EMW*EMW-EMH*EMH)**2
& -(2.*EMW*EMH)**2)/(4.*SHAT)
RCM=SQRT(RCM2)
P3(0)=SQRT(RCM2+EMW*EMW)
P3(1)=0.
P3(2)=RCM*ST
P3(3)=RCM*CT
P4(0)=SQRT(RCM2+EMH*EMH)
P4(1)=0.
P4(2)=-RCM*ST
P4(3)=-RCM*CT
C...incoming parton: massless.
EMIN=0.
C...initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN*EMIN)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN*EMIN)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...color structured ME summed/averaged over final/initial spins and colors.
CALL HWH2BK(P1,P2,P3,P4,EMW,EMH,M2,M2L,M2T)
IF(M2.LE.0.)RETURN
C...charge conjugation.
M2=M2*2.
M2L=M2L*2.
M2T=M2T*2.
C...constant factors: phi along beam and conversion GeV^2->nb.
FACT=2.*PIFAC*GEV2NB
C...Jacobians from X1,X2 to X(2),X(3)
FACT=FACT/S*(-LOG(TAU))*(1./(EMW+EMH)**2-1./ECM_MAX**2)
C...phase space Jacobians, pi's and flux.
FACT=FACT/64./PIFAC/PIFAC*RCM/PCM
C...hard scale.
EMSCA=RMW+RMH
C...EW couplings.
EMSC2=EMSCA*EMSCA
ALPHA=HWUAEM(EMSC2)
FACT=FACT*(PIFAC*ALPHA/SWEIN/RMW/RMW/SQRT(2.))**2
C...Higgs resonance.
FACT=FACT*EMHWT
C...vector boson resonance.
FACT=FACT*(THETA_MAX-THETA_MIN)/PIFAC
C...constant weight.
FACT=FACT*WEIGHT
END IF
C...set up PDFs.
HCS=0.
CALL HWSGEN(.FALSE.)
DO I=5,11,6
IF(DISF(I,1).LT.EPS)THEN
GOTO 200
END IF
IF(I.LE.6)J=I+6
IF(I.GE.7)J=I-6
IF(DISF(J,2).LT.EPS)THEN
GOTO 200
END IF
DIST=DISF(I,1)*DISF(J,2)*S
C...no need to set up color connections.
HCS=HCS+M2*DIST*FACT
IF(GENEV.AND.HCS.GT.RCS)THEN
C...generate event.
IDN(1)=I
IDN(2)=J
IDN(3)=NINT(198.+HWRGEN(0))
IF(IDN(3).EQ.198)IDN(4)=207
IF(IDN(3).EQ.199)IDN(4)=206
C...set up status and IDs: use HWETWO.
COSTH=CT
IDCMF=15
ICO(1)=2
ICO(2)=1
ICO(3)=3
ICO(4)=4
C...trick HWETWO in using off-shell V mass
VSAVE=RMASS(IDN(3))
RMASS(IDN(3))=EMW
C-- BRW fix 27/8/04: avoid double smearing of V mass
CALL HWETWO(.FALSE.,.TRUE.)
RMASS(IDN(3))=VSAVE
IF(AZSPIN)THEN
C...set to zero the coefficients of the spin density matrices.
CALL HWVZRO(7,GCOEF)
END IF
C...calculates approximately polarized decay matrix of gauge boson.
IF(IERROR.NE.0)RETURN
IHEL=0
IF(ICHRG(I)*ICHRG(IDN(3)).LT.0.D0)IHEL=1
IF(M2L.LT.0.)M2L=0.
IF(M2T.LT.0.)M2T=0.
RHOHEP(2,NHEP-1)=M2L/M2
RHOHEP(1,NHEP-1)=M2T/M2*(1-IHEL)
RHOHEP(3,NHEP-1)=M2T/M2*( IHEL)
RETURN
END IF
200 CONTINUE
END DO
EVWGT=HCS
END
CDECK ID>, HWHIG1.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
*- Split in 3 files by M. Kirsanov
C-----------------------------------------------------------------------
FUNCTION HWHIG1(S,T,U,EH2,EQ2,I,J,K,I1,J1,K1)
C-----------------------------------------------------------------------
C Basic matrix elements for Higgs + jet production; used in HWHIGA
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWHIG1,BI(4),CI(7),DI(3)
DOUBLE PRECISION S,T,U,EH2,EQ2,S1,T1,U1,ONE,TWO,FOUR,HALF
INTEGER I,J,K,I1,J1,K1
COMMON/CINTS/BI,CI,DI
PARAMETER (ONE =1.D0, TWO =2.D0, FOUR =4.D0, HALF =0.5D0)
C-----------------------------------------------------------------------
C +++ helicity amplitude for: g+g --> g+H
C-----------------------------------------------------------------------
S1=S-EH2
T1=T-EH2
U1=U-EH2
HWHIG1=EQ2*FOUR*DSQRT(TWO*S*T*U)*(
& -FOUR*(ONE/(U*T)+ONE/(U*U1)+ONE/(T*T1))
& -FOUR*((TWO*S+T)*BI(K)/U1**2+(TWO*S+U)*BI(J)/T1**2)/S
& -(S-FOUR*EQ2)*(S1*CI(I1)+(U-S)*CI(J1)+(T-S)*CI(K1))/(S*T*U)
& -8.D0*EQ2*(CI(J1)/(T*T1)+CI(K1)/(U*U1))
& +HALF*(S-FOUR*EQ2)*(S*T*DI(K)+U*S*DI(J)-U*T*DI(I))/(S*T*U)
& +FOUR*EQ2*DI(I)/S
& -TWO*(U*CI(K)+T*CI(J)+U1*CI(K1)+T1*CI(J1)-U*T*DI(I))/S**2 )
END
CDECK ID>, HWHIG2.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWHIG2(S,T,U,EH2,EQ2,I,J,K,I1,J1,K1)
C-----------------------------------------------------------------------
C Basic matrix elements for Higgs + jet production; used in HWHIGA
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWHIG2,BI(4),CI(7),DI(3)
DOUBLE PRECISION S,T,U,EH2,EQ2,S1,T1,U1,ONE,TWO,FOUR,HALF
INTEGER I,J,K,I1,J1,K1
COMMON/CINTS/BI,CI,DI
PARAMETER (ONE =1.D0, TWO =2.D0, FOUR =4.D0, HALF =0.5D0)
C-----------------------------------------------------------------------
C ++- helicity amplitude for: g+g --> g+H
C-----------------------------------------------------------------------
S1=S-EH2
T1=T-EH2
U1=U-EH2
HWHIG2=EQ2*FOUR*DSQRT(TWO*S*T*U)*(FOUR*EH2
& +(EH2-FOUR*EQ2)*(S1*CI(4)+T1*CI(5)+U1*CI(6))
& -HALF*(EH2-FOUR*EQ2)*(S*T*DI(3)+U*S*DI(2)+U*T*DI(1)) )/(S*T*U)
END
CDECK ID>, HWHIG5.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWHIG5(S,T,U,EH2,EQ2,I,J,K,I1,J1,K1)
C-----------------------------------------------------------------------
C Basic matrix elements for Higgs + jet production; used in HWHIGA
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWHIG5,BI(4),CI(7),DI(3)
DOUBLE PRECISION S,T,U,EH2,EQ2,ONE,TWO,FOUR,HALF
INTEGER I,J,K,I1,J1,K1
COMMON/CINTS/BI,CI,DI
PARAMETER (ONE =1.D0, TWO =2.D0, FOUR =4.D0, HALF =0.5D0)
C-----------------------------------------------------------------------
C Amplitude for: q+qbar --> g+H
C-----------------------------------------------------------------------
HWHIG5=DCMPLX(TWO)+DCMPLX(TWO*S/(S-EH2))*BI(I)
& +DCMPLX(FOUR*EQ2-U-T)*CI(K)
END
CDECK ID>, HWHIBQ.
*CMZ :- -30/06/01 18.40.33 by Stefano Moretti
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,6 (see below) for the process IPROC=3500, as described
C...in the HERWIG 6 documentation file.
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 12-APR-2000 by Stefano Moretti
C
C-----------------------------------------------------------------------
SUBROUTINE HWHIBQ
C-----------------------------------------------------------------------
C PRODUCTION OF MSSM CHARGED HIGGSES FROM B-QUARK+LIGHT-QUARK FUSION
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,L,M,N
INTEGER II,JJ,ITMP
INTEGER IFL,IRES
DOUBLE PRECISION EMQ,ENQ,EMQH,EMB,EMH,EMHWT,EMT,EMW
DOUBLE PRECISION EMH01,EMH02,EMH03
DOUBLE PRECISION WCKM,CKM,GAMT
DOUBLE PRECISION X(6),XL(6),XU(6)
DOUBLE PRECISION Q3(0:3),Q35(0:3)
DOUBLE PRECISION Q1(5),Q2(5),H(5)
DOUBLE PRECISION CT4,ST4,CT3,ST3,CF3,SF3,RQ42,RQ4,RQ32,RQ3,PQ3
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION ECM_MAX,ECM,SHAT,S,TAU
DOUBLE PRECISION XTMP
DOUBLE PRECISION EMIN1,EMIN2,PCM2,PCM
DOUBLE PRECISION M2B,M2BBAR
DOUBLE PRECISION ALPHA,EMSC2
DOUBLE PRECISION HWRGEN,HWUAEM
DOUBLE PRECISION PHI,CPHI,SPHI,ROT(3,3)
DOUBLE PRECISION QAUX(0:3)
DOUBLE PRECISION EPS,HCS,RCS,FACT,DIST
DOUBLE PRECISION WEIGHT
SAVE HCS,M2B,M2BBAR,FACT,S,WCKM,P3,P4,P5
LOGICAL HWRLOG
EXTERNAL HWRGEN,HWUAEM,HWH2BH,HWEONE,HWRLOG,
& HWUMAS,HWULOB
EQUIVALENCE (EMB,RMASS(5)),(EMT,RMASS(6))
EQUIVALENCE (EMW,RMASS(198))
EQUIVALENCE (EMH01,RMASS(204)),
& (EMH02,RMASS(203)),
& (EMH03,RMASS(205))
EQUIVALENCE (CKM,VCKM(3,3))
PARAMETER (EPS=1.D-9)
IF(GENEV)THEN
RCS=HCS*HWRGEN(0)
ELSE
HCS=0.
EVWGT=0.
C...assign final state masses.
EMQ=0.
ENQ=0
EMH=RMASS(206)
EMHWT=1.
C...assign top width.
GAMT=HBAR/RLTIM(6)
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...X(1)=(EMQH-EMQ-EMH)/(ECM-EMQ-ENQ-EMH),
C...X(2)=1/[-(P2-P3)^2+MW^2],X(3)=COS(THETA4_CM_35),X(4)=FI4_CM_35,
C...X(5)=(1./SHAT-1./ECM_MAX**2)/(1./(EMQ+ENQ+EMH)**2-1./ECM_MAX**2),
C...X(6)=(LOG(TAU)-LOG(X1))/LOG(TAU);
C...phase space borders.
XL(1)=0.
XU(1)=1.
c...for XL(2),XU(2) see below (non constant).
XL(3)=-1.
XU(3)=1.
XL(4)=0.
XU(4)=2.*PIFAC
XL(5)=0.
XU(5)=1.
XL(6)=0.
XU(6)=1.
C...single phase space point.
100 CONTINUE
WEIGHT=1.
DO I=1,6
IF(I.EQ.2)GOTO 125
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
125 CONTINUE
END DO
C...energy at parton level.
ECM=SQRT(1./(X(5)*(1./(EMQ+ENQ+EMH)**2-1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1)=EXP(LOG(TAU)*(1.-X(6)))
XX(2)=TAU/XX(1)
C...incoming partons massless.
EMIN1=0.
EMIN2=0.
C...initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN1*EMIN1-EMIN2*EMIN2)**2
& -(2.*EMIN1*EMIN2)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
C...three particle kinematics.
EMQH=X(1)*(ECM-EMQ-ENQ-EMH)+EMQ+EMH
RQ42=((ECM*ECM-ENQ*ENQ-EMQH*EMQH)**2-(2.*ENQ*EMQH)**2)/
& (4.*ECM*ECM)
IF(RQ42.LT.0.)THEN
GOTO 100
ELSE
RQ4=SQRT(RQ42)
ENDIF
C...X(2): integrate over W propagator.
XL(2)=1./(4.*SQRT(PCM2+EMIN2*EMIN2)*RQ4+EMW*EMW)
XU(2)=1./(EMW*EMW)
X(2)=XL(2)+(XU(2)-XL(2))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(2)-XL(2))
XTMP=1./X(2)
XTMP=(XTMP-EMW*EMW)/2./SQRT(PCM2+EMIN2*EMIN2)
CT4=1.-XTMP/((SHAT-EMQH*EMQH+2.*ENQ*ENQ)/(2.*ECM))
IF(CT4.GT.+1.)CT4=+1.
IF(CT4.LT.-1.)CT4=-1.
IF(HWRLOG(HALF))THEN
ST4=+SQRT(1.-CT4*CT4)
ELSE
ST4=-SQRT(1.-CT4*CT4)
END IF
CT3=X(3)
ST3=SQRT(1.-CT3*CT3)
CF3=COS(X(4))
SF3=SIN(X(4))
P4(1)=0.
P4(2)=-RQ4*ST4
P4(3)=-RQ4*CT4
P4(0)=SQRT(RQ42+ENQ*ENQ)
DO I=1,3
Q35(I)=-P4(I)
END DO
Q35(0)=SQRT(RQ42+EMQH*EMQH)
RQ32=((EMQH*EMQH-EMH*EMH-EMQ*EMQ)**2-(2.*EMH*EMQ)**2)/
& (4.*EMQH*EMQH)
IF(RQ32.LT.0.)THEN
GOTO 100
ELSE
RQ3=SQRT(RQ32)
ENDIF
Q3(1)=RQ3*ST3*CF3
Q3(2)=RQ3*ST3*SF3
Q3(3)=RQ3*CT3
Q3(0)=SQRT(RQ32+EMQ*EMQ)
PQ3=0.
DO I=1,3
PQ3=PQ3+Q35(I)*Q3(I)
END DO
P3(0)=(Q35(0)*Q3(0)+PQ3)/EMQH
P5(0)=Q35(0)-P3(0)
DO I=1,3
P3(I)=Q3(I)+Q35(I)*(P3(0)+Q3(0))/(Q35(0)+EMQH)
P5(I)=Q35(I)-P3(I)
END DO
C...initial state.
P1(0)=SQRT(PCM2+EMIN1*EMIN1)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN2*EMIN2)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...option: top diagram removed if can be resonant to avoid double counting.
IRES=1
C IF((EMT-EMB-EMH).GE.0.)IRES=0
C...color structured ME summed/averaged over final/initial spins and colors.
C...IFL=+1 selects b.
IFL=+1
CALL HWH2BH(P1,P2,P3,P4,P5,EMW,EMH,EMH01,EMH02,EMH03,EMB,EMT,
& IFL,IRES,CKM,GAMT,M2B)
C...IFL=-1 selects b-bar.
IFL=-1
CALL HWH2BH(P1,P2,P3,P4,P5,EMW,EMH,EMH01,EMH02,EMH03,EMB,EMT,
& IFL,IRES,CKM,GAMT,M2BBAR)
C...constant factors: phi along beam and conversion GeV^2->nb.
FACT=2.*PIFAC*GEV2NB
C...Jacobians from X1,X2 to X(5),X(6)
FACT=FACT/S*(-LOG(TAU))*(1./(EMQ+ENQ+EMH)**2-1./ECM_MAX**2)
C...phase space Jacobians, pi's and flux.
FACT=FACT*RQ3*RQ4/PCM/32./(2.*PIFAC)**5
& *(ECM-EMQ-ENQ-EMH)
FACT=FACT/2./P2(0)/P4(0)
FACT=FACT*(2.*P2(0)*P4(0)*(1.-CT4)+EMW*EMW)**2
C...EW couplings.
EMSCA=EMQ+ENQ+EMH
EMSC2=EMSCA*EMSCA
ALPHA=HWUAEM(EMSC2)
FACT=FACT*64.*PIFAC**3*ALPHA**3/4./SWEIN/SWEIN/SWEIN/EMW/EMW
C...Higgs resonance.
FACT=FACT*EMHWT
C...constant weight.
FACT=FACT*WEIGHT
END IF
C...set up PDFs.
HCS=0.
CALL HWSGEN(.FALSE.)
DO I=1,12
IF(DISF(I,1).LT.EPS)THEN
GOTO 200
END IF
DO J=1,12
IF(DISF(J,2).LT.EPS)THEN
GOTO 175
END IF
IF((I.NE.5).AND.(I.NE.11).AND.
& (J.NE.5).AND.(J.NE.11))THEN
GOTO 150
END IF
II=J
IF((I.NE.5).AND.(I.NE.11))II=I
IF(II.GT.6)II=II-6
ITMP=II
II=(II+1)/2
DIST=0.
DO JJ=1,3
WCKM=VCKM(II,JJ)
IF((ITMP.EQ.5).AND.(II.EQ.3).AND.(JJ.EQ.3))WCKM=0.
DIST=DIST+DISF(I,1)*DISF(J,2)*WCKM*S
END DO
IF((I.LE.6).AND.(J.LE.6))THEN
HCS=HCS+M2B*DIST*FACT
ELSE IF((I.LE.6).AND.(J.GE.7))THEN
IF(J.NE.11)HCS=HCS+M2B*DIST*FACT
IF(J.EQ.11)HCS=HCS+M2BBAR*DIST*FACT
ELSE IF((I.GE.7).AND.(J.LE.6))THEN
IF(I.NE.11)HCS=HCS+M2B*DIST*FACT
IF(I.EQ.11)HCS=HCS+M2BBAR*DIST*FACT
ELSE IF((I.GE.7).AND.(J.GE.7))THEN
HCS=HCS+M2BBAR*DIST*FACT
END IF
IF(GENEV.AND.HCS.GT.RCS)THEN
C...generate event.
IDN(1)=I
IDN(2)=J
IF((I.EQ.5).OR.(I.EQ.11))THEN
K=I
L=J+(-1)**(J+1)
IDN(3)=K
IDN(4)=L
ELSE
L=I+(-1)**(J+1)
K=J
IDN(3)=L
IDN(4)=K
END IF
IF(IDN(2).EQ.IDN(4))THEN
IDN(5)=
& NINT(198.5-.1667*FLOAT(ICHRG(IDN(1))-ICHRG(IDN(3))))
ELSE
IDN(5)=
& NINT(198.5-.1667*FLOAT(ICHRG(IDN(2))-ICHRG(IDN(4))))
END IF
IDN(5)=IDN(5)+8
C...sets up incoming status and IDs only for 2->1: use HWEONE.
IDCMF=15
CALL HWEONE
JDAHEP(1,NHEP)=NHEP+1
JDAHEP(2,NHEP)=NHEP+3
JMOHEP(1,NHEP+1)=NHEP
JMOHEP(1,NHEP+2)=NHEP
JMOHEP(1,NHEP+3)=NHEP
C...randomly rotate final state momenta around beam axis.
PHI=2.*PIFAC*HWRGEN(0)
CPHI=COS(PHI)
SPHI=SIN(PHI)
ROT(1,1)=+CPHI
ROT(1,2)=+SPHI
ROT(1,3)=0.
ROT(2,1)=-SPHI
ROT(2,2)=+CPHI
ROT(2,3)=0.
ROT(3,1)=0.
ROT(3,2)=0.
ROT(3,3)=1.
DO L=1,3
DO M=1,3
QAUX(M)=0.
DO N=1,3
IF(L.EQ.1)QAUX(M)=QAUX(M)+ROT(M,N)*P3(N)
IF(L.EQ.2)QAUX(M)=QAUX(M)+ROT(M,N)*P4(N)
IF(L.EQ.3)QAUX(M)=QAUX(M)+ROT(M,N)*P5(N)
END DO
END DO
DO M=1,3
IF(L.EQ.1)P3(M)=QAUX(M)
IF(L.EQ.2)P4(M)=QAUX(M)
IF(L.EQ.3)P5(M)=QAUX(M)
END DO
END DO
C...outgoing momenta (give quark masses non covariantly!)
DO M=1,3
Q1(M)=P3(M)
Q2(M)=P4(M)
H( M)=P5(M)
END DO
Q1(4)=P3(0)
Q2(4)=P4(0)
H( 4)=P5(0)
Q1(5)=RMASS(IDN(3))
Q1(4)=SQRT(Q1(4)**2+Q1(5)**2)
Q2(5)=RMASS(IDN(4))
Q2(4)=SQRT(Q2(4)**2+Q2(5)**2)
H(4)=-Q1(4)-Q2(4)+PHEP(5,NHEP)
CALL HWUMAS(H)
CALL HWULOB(PHEP(1,NHEP),Q1,PHEP(1,NHEP+1))
CALL HWULOB(PHEP(1,NHEP),Q2,PHEP(1,NHEP+2))
CALL HWULOB(PHEP(1,NHEP),H ,PHEP(1,NHEP+3))
C...sets up outgoing status and IDs.
ISTHEP(NHEP+1)=113
ISTHEP(NHEP+2)=114
ISTHEP(NHEP+3)=114
IDHW(NHEP+1)=IDN(3)
IDHEP(NHEP+1)=IDPDG(IDN(3))
IDHW(NHEP+2)=IDN(4)
IDHEP(NHEP+2)=IDPDG(IDN(4))
IDHW(NHEP+3)=IDN(5)
IDHEP(NHEP+3)=IDPDG(IDN(5))
C...sets up colour connections.
JMOHEP(2,NHEP+1)=NHEP-2
JMOHEP(2,NHEP+2)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP+2
JMOHEP(2,NHEP-2)=NHEP+1
JMOHEP(2,NHEP+3)=NHEP+3
JDAHEP(2,NHEP+1)=NHEP-2
JDAHEP(2,NHEP+2)=NHEP-1
JDAHEP(2,NHEP-1)=NHEP+2
JDAHEP(2,NHEP-2)=NHEP+1
JDAHEP(2,NHEP+3)=NHEP+3
NHEP=NHEP+3
IF(AZSPIN)THEN
C...set to zero the coefficients of the spin density matrices.
CALL HWVZRO(7,GCOEF)
END IF
RETURN
END IF
150 CONTINUE
175 CONTINUE
END DO
200 CONTINUE
END DO
EVWGT=HCS
END
CDECK ID>, HWHIGA.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHIGA(S,T,U,EMH2,WTQQ,WTQG,WTGQ,WTGG)
C-----------------------------------------------------------------------
C Gives amplitudes squared for q-qbar, q(bar)-g and gg -> Higgs +jet
C IAPHIG (set in HWIGIN)=0: zero mass approximation =1: exact result
C =2: infinite mass limit.
C Only top loop included. A factor (alpha_s**3*alpha_W) is extracted
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWHIGB,HWHIGC,HWHIGD,HWHIG5,HWHIG1,HWHIG2,BI(4),
& CI(7),DI(3),EPSI,TAMP(7)
DOUBLE PRECISION S,T,U,EMH2,WTQQ,WTQG,WTGQ,WTGG,EMW2,RNGLU,RNQRK,
& FLUXGG,FLUXGQ,FLUXQQ,EMQ2,TAMPI(7),TAMPR(7)
INTEGER I
LOGICAL NOMASS
EXTERNAL HWHIGB,HWHIGC,HWHIGD,HWHIG5,HWHIG1,HWHIG2
COMMON/SMALL/EPSI
COMMON/CINTS/BI,CI,DI
EPSI=DCMPLX(ZERO,-1.D-10)
EMW2=RMASS(198)**2
C Spin and colour flux factors plus enhancement factor
RNGLU=1./FLOAT(NCOLO**2-1)
RNQRK=1./FLOAT(NCOLO)
FLUXGG=.25*RNGLU**2*ENHANC(6)**2
FLUXGQ=.25*RNGLU*RNQRK*ENHANC(6)**2
FLUXQQ=.25*RNQRK**2*ENHANC(6)**2
IF (IAPHIG.EQ.2) THEN
C Infinite mass limit in loops
WTGG=(2./3.)**2*FLOAT(NCOLO*(NCOLO**2-1))
& *(EMH2**4+S**4+T**4+U**4)/(S*T*U*EMW2)*FLUXGG
WTQQ= 16./9.*(U**2+T**2)/(S*EMW2)*FLUXQQ
WTQG=-16./9.*(U**2+S**2)/(T*EMW2)*FLUXGQ
WTGQ=-16./9.*(S**2+T**2)/(U*EMW2)*FLUXGQ
RETURN
ELSEIF (IAPHIG.EQ.1) THEN
C Exact result for loops
NOMASS=.FALSE.
ELSEIF (IAPHIG.EQ.0) THEN
C Small mass approximation in loops
NOMASS=.TRUE.
ELSE
CALL HWWARN('HWHIGA',500)
ENDIF
C Include only top quark contribution
EMQ2=RMASS(6)**2
BI(1)=HWHIGB(NOMASS,S,ZERO,ZERO,EMQ2)
BI(2)=HWHIGB(NOMASS,T,ZERO,ZERO,EMQ2)
BI(3)=HWHIGB(NOMASS,U,ZERO,ZERO,EMQ2)
BI(4)=HWHIGB(NOMASS,EMH2,ZERO,ZERO,EMQ2)
BI(1)=BI(1)-BI(4)
BI(2)=BI(2)-BI(4)
BI(3)=BI(3)-BI(4)
CI(1)=HWHIGC(NOMASS,S,ZERO,ZERO,EMQ2)
CI(2)=HWHIGC(NOMASS,T,ZERO,ZERO,EMQ2)
CI(3)=HWHIGC(NOMASS,U,ZERO,ZERO,EMQ2)
CI(7)=HWHIGC(NOMASS,EMH2,ZERO,ZERO,EMQ2)
CI(4)=(S*CI(1)-EMH2*CI(7))/(S-EMH2)
CI(5)=(T*CI(2)-EMH2*CI(7))/(T-EMH2)
CI(6)=(U*CI(3)-EMH2*CI(7))/(U-EMH2)
DI(1)=HWHIGD(NOMASS,U,T,EMH2,EMQ2)
DI(2)=HWHIGD(NOMASS,S,U,EMH2,EMQ2)
DI(3)=HWHIGD(NOMASS,S,T,EMH2,EMQ2)
C Compute complex amplitudes
TAMP(1)=HWHIG1(S,T,U,EMH2,EMQ2,1,2,3,4,5,6)
TAMP(2)=HWHIG2(S,T,U,EMH2,EMQ2,1,2,3,0,0,0)
TAMP(3)=HWHIG1(T,S,U,EMH2,EMQ2,2,1,3,5,4,6)
TAMP(4)=HWHIG1(U,T,S,EMH2,EMQ2,3,2,1,6,5,4)
TAMP(5)=HWHIG5(S,T,U,EMH2,EMQ2,1,0,4,0,0,0)
TAMP(6)=HWHIG5(T,S,U,EMH2,EMQ2,2,0,5,0,0,0)
TAMP(7)=HWHIG5(U,T,S,EMH2,EMQ2,3,0,6,0,0,0)
DO 20 I=1,7
TAMPI(I)= DREAL(TAMP(I))
20 TAMPR(I)=-DIMAG(TAMP(I))
C Square and add prefactors
WTGG=0.03125*FLOAT(NCOLO*(NCOLO**2-1))/EMW2
& *(TAMPR(1)**2+TAMPI(1)**2+TAMPR(2)**2+TAMPI(2)**2
& +TAMPR(3)**2+TAMPI(3)**2+TAMPR(4)**2+TAMPI(4)**2)*FLUXGG
WTQQ= 16.*(U**2+T**2)/(U+T)**2*EMQ2**2/(S*EMW2)
& *(TAMPR(5)**2+TAMPI(5)**2)*FLUXQQ
WTQG=-16.*(U**2+S**2)/(U+S)**2*EMQ2**2/(T*EMW2)
& *(TAMPR(6)**2+TAMPI(6)**2)*FLUXGQ
WTGQ=-16.*(S**2+T**2)/(S+T)**2*EMQ2**2/(U*EMW2)
& *(TAMPR(7)**2+TAMPI(7)**2)*FLUXGQ
END
CDECK ID>, HWHIGB.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
*- split in 3 files by M. Kirsanov
C-----------------------------------------------------------------------
FUNCTION HWHIGB(NOMASS,S,T,EH2,EQ2)
C-----------------------------------------------------------------------
C One loop scalar integrals, used in HWHIGJ.
C If NOMASS=.TRUE. use a small mass approx. for particle in loop.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWHIGB,HWUCI2,HWULI2,EPSI,PII
DOUBLE PRECISION S,T,EQ2,EH2,RAT
LOGICAL NOMASS
EXTERNAL HWULI2,HWUCI2
COMMON/SMALL/EPSI
C-----------------------------------------------------------------------
C B_0(2p1.p2=S;mq,mq)
C-----------------------------------------------------------------------
PII=DCMPLX(ZERO,PIFAC)
IF (NOMASS) THEN
RAT=DABS(S/EQ2)
HWHIGB=-DLOG(RAT)+TWO
IF (S.GT.ZERO) HWHIGB=HWHIGB+PII
ELSE
RAT=S/(FOUR*EQ2)
IF (S.LT.ZERO) THEN
HWHIGB=TWO-TWO*DSQRT(ONE-ONE/RAT)
& *DLOG(DSQRT(-RAT)+DSQRT(ONE-RAT))
ELSEIF (S.GT.ZERO.AND.RAT.LT.ONE) THEN
HWHIGB=TWO-TWO*DSQRT(ONE/RAT-ONE)*DASIN(DSQRT(RAT))
ELSEIF (RAT.GT.ONE) THEN
HWHIGB=TWO-DSQRT(ONE-ONE/RAT)
& *(TWO*DLOG(DSQRT(RAT)+DSQRT(RAT-ONE))-PII)
ENDIF
ENDIF
END
CDECK ID>, HWHIGC.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWHIGC(NOMASS,S,T,EH2,EQ2)
C-----------------------------------------------------------------------
C One loop scalar integrals, used in HWHIGJ.
C If NOMASS=.TRUE. use a small mass approx. for particle in loop.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWHIGC,HWUCI2,HWULI2,EPSI,PII
DOUBLE PRECISION S,T,EQ2,EH2,RAT,COSH
LOGICAL NOMASS
EXTERNAL HWULI2,HWUCI2
COMMON/SMALL/EPSI
C-----------------------------------------------------------------------
C C_0(p{1,2}^2=0,2p1.p2=S;mq,mq,mq)
C-----------------------------------------------------------------------
PII=DCMPLX(ZERO,PIFAC)
IF (NOMASS) THEN
RAT=DABS(S/EQ2)
HWHIGC=HALF*DLOG(RAT)**2
IF (S.GT.ZERO) HWHIGC=HWHIGC-HALF*PIFAC**2-PII*DLOG(RAT)
HWHIGC=HWHIGC/S
ELSE
RAT=S/(FOUR*EQ2)
IF (S.LT.ZERO) THEN
HWHIGC=TWO*DLOG(DSQRT(-RAT)+DSQRT(ONE-RAT))**2/S
ELSEIF (S.GT.ZERO.AND.RAT.LT.ONE) THEN
HWHIGC=-TWO*(DASIN(DSQRT(RAT)))**2/S
ELSEIF (RAT.GT.ONE) THEN
COSH=DLOG(DSQRT(RAT)+DSQRT(RAT-ONE))
HWHIGC=TWO*(COSH**2-PIFAC**2/FOUR-PII*COSH)/S
ENDIF
ENDIF
END
CDECK ID>, HWHIGD.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWHIGD(NOMASS,S,T,EH2,EQ2)
C-----------------------------------------------------------------------
C One loop scalar integrals, used in HWHIGJ.
C If NOMASS=.TRUE. use a small mass approx. for particle in loop.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE COMPLEX HWHIGD,HWUCI2,HWULI2,EPSI,PII,Z1,Z2
DOUBLE PRECISION S,T,EQ2,EH2,DLS,DLT,DLM,RZ12,DL1,DL2,
& ST,ROOT,XP,XM
LOGICAL NOMASS
EXTERNAL HWULI2,HWUCI2
COMMON/SMALL/EPSI
C-----------------------------------------------------------------------
C D_0(p{1,2,3}^2=0,p4^2=EH2,2p1.p2=S,2p2.p3=T;mq,mq,mq,mq)
C-----------------------------------------------------------------------
PII=DCMPLX(ZERO,PIFAC)
IF (NOMASS) THEN
DLS=DLOG(DABS(S/EQ2))
DLT=DLOG(DABS(T/EQ2))
DLM=DLOG(DABS(EH2/EQ2))
IF (S.GE.ZERO.AND.T.LE.ZERO) THEN
DL1=DLOG((EH2-T)/S)
Z1=T/(T-EH2)
Z2=(S-EH2)/S
HWHIGD=DLS**2+DLT**2-DLM**2+DL1**2
& +TWO*(DLOG(S/(EH2-T))*DLOG(-T/S)+HWULI2(Z1)-HWULI2(Z2)
& +PII*DLOG(EH2/(EH2-T)))
ELSEIF (S.LT.ZERO.AND.T.LT.ZERO) THEN
Z1=(S-EH2)/S
Z2=(T-EH2)/T
RZ12=ONE/DREAL(Z1*Z2)
DL1=DLOG((T-EH2)/(S-EH2))
DL2=DLOG(RZ12)
HWHIGD=DLS**2+DLT**2-DLM**2+TWO*PIFAC**2/THREE
& +TWO*DLOG(S/(T-EH2))*DLOG(ONE/DREAL(Z2))
& +TWO*DLOG(T/(S-EH2))*DLOG(ONE/DREAL(Z1))
& -DL1**2-DL2**2-TWO*(HWULI2(Z1)+HWULI2(Z2))
& +TWO*PII*DLOG(RZ12**2*EH2/EQ2)
ENDIF
HWHIGD=HWHIGD/(S*T)
ELSE
ST=S*T
ROOT=DSQRT(ST**2-FOUR*ST*EQ2*(S+T-EH2))
XP=HALF*(ST+ROOT)/ST
XM=1-XP
HWHIGD=TWO/ROOT*(-HWUCI2(EQ2,S,XP)-HWUCI2(EQ2,T,XP)
& +HWUCI2(EQ2,EH2,XP)+DLOG(-XM/XP)
& *(LOG(EQ2+EPSI)-LOG(EQ2+EPSI-S*XP*XM)
& +LOG(EQ2+EPSI-EH2*XP*XM)-LOG(EQ2+EPSI-T*XP*XM)))
ENDIF
END
CDECK ID>, HWHIGE.
*CMZ :- -13/10/02 09.43.05 by Peter Richardson
*-- Author : Kosuke Odagiri and Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,4 (see below) for the processes from IPROC=1000-1099 (SM),
C...IPROC=1111-1139 (MSSM), as described in the HERWIG 6 documentation file.
C...(For IPROC=1140-1145 it describes MSSM charged Higgs production.)
C
C...First release: 18-SEP-2002 by Stefano Moretti
C
SUBROUTINE HWHIGE
C--------------------------------------------------------------------------
C LEPTOPRODUCTION OF MS(SM) HIGGSES IN ASSOCIATION WITH HEAVY QUARK PAIRS
C--------------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER JHIGGS
INTEGER I,L,M,N,NN
INTEGER IH,IQ,JQ,IIQ,JJQ
INTEGER IAD
INTEGER IDEC,FLIP
INTEGER ID1,ID2
DOUBLE PRECISION CV,CA,BR
DOUBLE PRECISION BRHIGQ,EMQ,ENQ,GMQ,EMQQ,EMH,GMH,EMHWT
DOUBLE PRECISION T,TL,TLMIN,TLMAX,TTMIN,TTMAX,CTMP,RCM,RCM2
DOUBLE PRECISION X(4),XL(4),XU(4)
DOUBLE PRECISION Q4(0:3),Q34(0:3)
DOUBLE PRECISION CT5,ST5,CT4,ST4,CF4,SF4,RQ52,RQ5,RQ42,RQ4,PQ4
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION F(0:3),G(0:3)
DOUBLE PRECISION ECM,SHAT,S
DOUBLE PRECISION EMIN,EMIN1,EMIN2,PCM2,PCM
DOUBLE PRECISION HFC,HBC
DOUBLE PRECISION M2EE
DOUBLE PRECISION ALPHA,EMSC2
DOUBLE PRECISION HWRGEN,HWUAEM
DOUBLE PRECISION PHI,CPHI,SPHI,ROT(3,3)
DOUBLE PRECISION QAUX(0:3)
DOUBLE PRECISION EPS,HCS,RCS,FACT
DOUBLE PRECISION WEIGHT
INTEGER IFL,KHIGGS,JH,JFL
LOGICAL FIRST,GAUGE
DOUBLE PRECISION E,Q3,YM3,GAM3,YM4,GAM4,GAM5,COLOUR
DOUBLE PRECISION RM3,RM4,RM5
DOUBLE PRECISION S2W,RMW,RMZ
DOUBLE PRECISION RMHL,GAMHL
DOUBLE PRECISION RMHH,GAMHH
DOUBLE PRECISION RMHA,GAMHA
EQUIVALENCE (RMHL,RMASS(203)),(RMHH,RMASS(204)),(RMHA,RMASS(205))
LOGICAL HWRLOG
EXTERNAL HWHIGM,HWRGEN,HWUAEM,HWH2HE,HWEONE,HWRLOG
PARAMETER (EPS=1.D-9)
SAVE HCS,M2EE,FACT,S,SHAT,P3,P4,P5
SAVE IIQ,JJQ,JHIGGS
C...ASSIGN Q/Q'-FLAVOUR.
IF(IPROC.GE.1140)THEN
IH=4
IF(IPROC.EQ.1140)IQ=2
IF(IPROC.EQ.1141)IQ=4
IF(IPROC.EQ.1142)IQ=6
IF(IPROC.EQ.1143)IQ=7
IF(IPROC.EQ.1144)IQ=8
IF(IPROC.EQ.1145)IQ=9
IAD=7
JQ=IQ+5
GMQ=ZERO
IF(JQ.EQ.11)GMQ=HBAR/RLTIM(6)
ELSE
IF(IMSSM.EQ.0)THEN
IH=0
IQ=6
ELSE
IF(IPROC.LT.1140)IH=3
IF(IPROC.LT.1130)IH=2
IF(IPROC.LT.1120)IH=1
IQ=IPROC-1100-10*IH
END IF
IAD=6
JQ=IQ+6
GMQ=ZERO
END IF
C...PROCESS EVENT.
IF(GENEV)THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
HCS=0.
C...ASSIGN FINAL STATE MASSES.
IF(IQ.LE.6)THEN
EMQ=RMASS(IQ)
ENQ=RMASS(JQ)
ELSE
EMQ=RMASS(2*IQ-7+114+IAD)
ENQ=RMASS(2*IQ-7+114 )
END IF
EMH=RMASS(201+IHIGGS)
GMH=HBAR/RLTIM(201+IHIGGS)
EMHWT=1.
C...ENERGY AT PARTON LEVEL.
ECM=PBEAM1+PBEAM2
S=ECM*ECM
SHAT=S
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
C...PHASE SPACE VARIABLES.
C...X(1)=(EMQQ**2-(EMQ+ENQ)**2)/((ECM-EMH)**2-(EMQ+ENQ)**2),
C...LIGHT QUARKS -> X(2)=(LOG|T|-LOG|TMIN|)/(LOG|TMAX|-LOG|TMIN|),
C... X(3)=SIN(THETA4_CM_34),X(4)=COS(FI4_CM_34),
C...HEAVY QUARKS -> X(2)=COS(THETA5_CM),
C... X(3)=COS(THETA4_CM_34),X(4)=FI4_CM_34,
C...PHASE SPACE BORDERS.
XL(1)=0.
XU(1)=1.
IF((IQ+JQ).EQ.18)THEN
XL(2)=-1.
XL(4)=0.
XU(4)=2.*PIFAC
ELSE
XL(2)=0.
XL(4)=-1.
XU(4)=1.
END IF
XU(2)=1.
XL(3)=-1.
XU(3)=1.
C...SINGLE PHASE SPACE POINT.
100 CONTINUE
WEIGHT=1.
DO I=1,4
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...THREE PARTICLE KINEMATICS.
EMQQ=SQRT(X(1)*((ECM-EMH)**2-(EMQ+ENQ)**2)+(EMQ+ENQ)**2)
C...INCOMING PARTONS: ALL MASSLESS.
EMIN=0.
IF((IQ+JQ).EQ.18)THEN
CT5=X(2)
CT4=X(3)
ST4=SQRT(1.-CT4*CT4)
CF4=COS(X(4))
SF4=SIN(X(4))
ELSE
PCM2=((ECM*ECM-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*ECM*ECM)
PCM=SQRT(PCM2)
RCM2=((ECM*ECM-EMQQ*EMQQ-EMH*EMH)**2
& -(2.*EMQQ*EMH)**2)/(4.*ECM*ECM)
RCM=SQRT(RCM2)
TTMAX=EMIN**2+EMQQ**2-0.5D0/ECM/ECM
& *((ECM*ECM+EMIN**2-EMIN**2)*(ECM*ECM+EMQQ**2-EMH**2)
& -SQRT((ECM*ECM-(EMIN+EMIN)**2)*(ECM*ECM-(EMIN-EMIN)**2))
& *SQRT((ECM*ECM-(EMQQ+EMH)**2)*(ECM*ECM-(EMQQ-EMH)**2)))
TTMIN=EMIN**2+EMQQ**2-0.5D0/ECM/ECM
& *((ECM*ECM+EMIN**2-EMIN**2)*(ECM*ECM+EMQQ**2-EMH**2)
& +SQRT((ECM*ECM-(EMIN+EMIN)**2)*(ECM*ECM-(EMIN-EMIN)**2))
& *SQRT((ECM*ECM-(EMQQ+EMH)**2)*(ECM*ECM-(EMQQ-EMH)**2)))
TLMIN=LOG(ABS(TTMAX))
TLMAX=LOG(ABS(TTMIN))
TL=X(2)*(TLMAX-TLMIN)+TLMIN
T=EXP(ABS(TL))
CTMP=-T-EMIN**2-EMQQ**2
& +2.*SQRT(PCM**2+EMIN**2)*SQRT(RCM**2+EMQQ**2)
CT5=CTMP/2./PCM/RCM
ST4=X(3)
CT4=SQRT(1.-ST4*ST4)
CF4=X(4)
SF4=SQRT(1.-CF4*CF4)
END IF
IF(HWRLOG(HALF))THEN
ST5=+SQRT(1.-CT5*CT5)
ELSE
ST5=-SQRT(1.-CT5*CT5)
END IF
RQ52=((ECM*ECM-EMH*EMH-EMQQ*EMQQ)**2-(2.*EMH*EMQQ)**2)/
& (4.*ECM*ECM)
IF(RQ52.LT.0.)THEN
GOTO 100
ELSE
RQ5=SQRT(RQ52)
ENDIF
P5(1)=0.
P5(2)=RQ5*ST5
P5(3)=RQ5*CT5
P5(0)=SQRT(RQ52+EMH*EMH)
DO I=1,3
Q34(I)=-P5(I)
END DO
Q34(0)=SQRT(RQ52+EMQQ*EMQQ)
RQ42=((EMQQ*EMQQ-EMQ*EMQ-ENQ*ENQ)**2-(2.*EMQ*ENQ)**2)/
& (4.*EMQQ*EMQQ)
IF(RQ42.LT.0.)THEN
GOTO 100
ELSE
RQ4=SQRT(RQ42)
ENDIF
Q4(1)=RQ4*ST4*CF4
Q4(2)=RQ4*ST4*SF4
Q4(3)=RQ4*CT4
Q4(0)=SQRT(RQ42+ENQ*ENQ)
PQ4=0.
DO I=1,3
PQ4=PQ4+Q34(I)*Q4(I)
END DO
P4(0)=(Q34(0)*Q4(0)+PQ4)/EMQQ
P3(0)=Q34(0)-P4(0)
DO I=1,3
P4(I)=Q4(I)+Q34(I)*(P4(0)+Q4(0))/(Q34(0)+EMQQ)
P3(I)=Q34(I)-P4(I)
END DO
IF(IMSSM.NE.0)THEN
IF(IPROC.GE.1140)THEN
IF(SQRT(P4(1)**2+P4(2)**2).LT.PTMIN)RETURN
ELSE
IF((IQ.NE.6).AND.(IQ.NE.12).AND.
& (JQ.NE.6).AND.(JQ.NE.12))THEN
IF(SQRT(P3(1)**2+P3(2)**2).LT.PTMIN)RETURN
IF(SQRT(P4(1)**2+P4(2)**2).LT.PTMIN)RETURN
ELSE
CONTINUE
END IF
END IF
END IF
C...INITIAL STATE MOMENTA IN THE PARTONIC CM.
PCM2=((SHAT-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN*EMIN)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN*EMIN)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...COLOR STRUCTURED ME SUMMED/AVERAGED OVER FINAL/INITIAL SPINS AND COLORS.
C...EW AND QCD COUPLINGS.
EMSCA=EMQ+ENQ+EMH
EMSC2=EMSCA*EMSCA
ALPHA=HWUAEM(EMSC2)
FIRST=.TRUE.
GAUGE=.FALSE.
E=SQRT(4.D0*PIFAC*ALPHA)
IF(IPROC.GE.1140)THEN
IFL=IQ-1
IF(IQ.EQ.7)IFL=IQ
IF(IQ.EQ.8)IFL=IQ+1
IF(IQ.EQ.9)IFL=IQ+2
RM3=ENQ
YM3=ENQ
GAM3=0.D0
RM4=EMQ
YM4=EMQ
GAM4=GMQ
C...CHARGED HIGGSES
Q3=-1.D0
IF(IFL.LE.6)Q3=-1.D0/3.D0
JFL=0
JH=IH
C...ASSIGN FERMION MOMENTA
DO I=0,3
F(I)=P4(I)
G(I)=P3(I)
END DO
ELSE
IFL=IQ
IF(IQ.EQ.7)IFL=IQ
IF(IQ.EQ.8)IFL=IQ+1
IF(IQ.EQ.9)IFL=IQ+2
RM3=EMQ
YM3=EMQ
GAM3=0.D0
RM4=ENQ
YM4=ENQ
GAM4=0.D0
C...NEUTRAL HIGGSES
IF((IFL.EQ.1).OR.(IFL.EQ.3).OR.(IFL.EQ.5 ))THEN
Q3=-1.D0/3.D0
ELSEIF((IFL.EQ.2).OR.(IFL.EQ.4).OR.(IFL.EQ.6 ))THEN
Q3=+2.D0/3.D0
ELSEIF((IFL.EQ.7).OR.(IFL.EQ.9).OR.(IFL.EQ.11))THEN
Q3=-1.D0
END IF
IF((IFL.EQ.1).OR.(IFL.EQ.3).OR.(IFL.EQ. 5).OR.
& (IFL.EQ.7).OR.(IFL.EQ.9).OR.(IFL.EQ.11))THEN
JFL=1
ELSEIF((IFL.EQ.2).OR.(IFL.EQ.4).OR.(IFL.EQ.6))THEN
JFL=2
END IF
KHIGGS=IHIGGS
IF(IHIGGS.NE.0)KHIGGS=IHIGGS-1
JH=KHIGGS
C...ASSIGN FERMION MOMENTA
DO I=0,3
F(I)=P3(I)
G(I)=P4(I)
END DO
END IF
RM5=EMH
GAM5=GMH
S2W=SWEIN
RMW=RMASS(198)
RMZ=RMASS(200)
GAMHL=HBAR/RLTIM(203)
GAMHH=HBAR/RLTIM(204)
GAMHA=HBAR/RLTIM(205)
COLOUR=1.D0
IF(IFL.LE.6)COLOUR=3.D0
C...MSSM COUPLINGS.
IF(JH.LE.3)THEN
HFC=ENHANC(IQ)
HBC=ENHANC(10)
ELSE
HFC=ONE
HBC=ONE
END IF
C...ME.
CALL HWH2HE(FIRST,GAUGE,JFL,JH,HFC,HBC,
& E,S2W,TANB,ALPHAH,RMW,S,Q3,F,G,P5,
& RM3,YM3,GAM3,RM4,YM4,GAM4,RM5,GAM5,
& RMHL,GAMHL,RMHH,GAMHH,RMHA,GAMHA,
& RMZ,GAMZ,COLOUR,M2EE)
C...CONSTANT FACTORS: PHI ALONG BEAM AND CONVERSION GEV^2->NB.
FACT=2.*PIFAC*GEV2NB
C...PHASE SPACE JACOBIANS, PI'S AND FLUX.
FACT=FACT*RQ4*RQ5/PCM/32./(2.*PIFAC)**5
& *((ECM-EMH)**2-(EMQ+ENQ)**2)
& /2./EMQQ/S
C...JACOBIANS FROM CT5 TO X(2).
IF((IQ+JQ).EQ.18)THEN
CONTINUE
ELSE
FACT=FACT*(TLMAX-TLMIN)/2./PCM/RCM*ABS(T)
FACT=FACT*2.*ABS(ST4/CT4/SF4)
END IF
C...CHARGE CONJUGATION.
IF(IPROC.GE.1140)THEN
C...YES FOR CHARGED HIGGS.
FACT=FACT*2.
ELSE
C...NO FOR NEUTRAL HIGGSES.
CONTINUE
END IF
C...HIGGS RESONANCE.
FACT=FACT*EMHWT
C...CONSTANT WEIGHT.
FACT=FACT*WEIGHT
C...INCLUDE BR OF HIGGS.
IF(IMSSM.EQ.0)THEN
IDEC=MOD(IPROC,100)
IF (IDEC.GT.0.AND.IDEC.LE.12) FACT=FACT*BRHIG(IDEC)
IF (IDEC.EQ.0) THEN
BRHIGQ=0.D0
DO I=1,6
BRHIGQ=BRHIGQ+BRHIG(I)
END DO
FACT=FACT*BRHIGQ
ENDIF
IF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
FACT=FACT*BR
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
FACT=FACT*BR
ENDIF
END IF
END IF
C...SET UP FLAVOURS IN FINAL STATE.
IF(IPROC.GE.1140)THEN
IF(HWRGEN(0).LT.0.5)THEN
JHIGGS=207-201
IIQ=IQ
JJQ=JQ
FLIP=0
ELSE
JHIGGS=206-201
IIQ=IQ-1
JJQ=JQ+1
FLIP=1
END IF
ELSE
JHIGGS=IHIGGS
IIQ=IQ
JJQ=JQ
FLIP=0
END IF
HCS=FACT*M2EE
IF (GENEV.AND.HCS.GT.RCS) THEN
C...GENERATE EVENT.
IDN(1)=IDHW(1)
IDN(2)=IDHW(2)
IF(IIQ.LE.12.AND.JJQ.LE.12)THEN
IDN(3)=IIQ
IDN(4)=JJQ
ELSE
IDN(3)=2*IIQ-7+114
IDN(4)=2*IIQ-7+114+IAD
END IF
IDN(5)=201+JHIGGS
C...INCOMING PARTONS: NOW MASSIVE.
EMIN1=RMASS(IDN(1))
EMIN2=RMASS(IDN(2))
C...REDO INITIAL STATE MOMENTA IN THE PARTONIC CM.
PCM2=((SHAT-EMIN1*EMIN1-EMIN2*EMIN2)**2
& -(2.*EMIN1*EMIN2)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN1*EMIN1)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN2*EMIN2)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...SETS UP INCOMING STATUS AND IDS ONLY FOR 2->1: USE HWEONE.
IDCMF=15
XX(1)=ONE
XX(2)=ONE
CALL HWEONE
JDAHEP(1,NHEP )=NHEP+1
JDAHEP(2,NHEP )=NHEP+3
JMOHEP(1,NHEP+1)=NHEP
JMOHEP(1,NHEP+2)=NHEP
JMOHEP(1,NHEP+3)=NHEP
C...RANDOMLY ROTATE FINAL STATE MOMENTA AROUND BEAM AXIS.
PHI=2.*PIFAC*HWRGEN(0)
CPHI=COS(PHI)
SPHI=SIN(PHI)
ROT(1,1)=+CPHI
ROT(1,2)=+SPHI
ROT(1,3)=0.
ROT(2,1)=-SPHI
ROT(2,2)=+CPHI
ROT(2,3)=0.
ROT(3,1)=0.
ROT(3,2)=0.
ROT(3,3)=1.
DO L=1,3
DO M=1,3
QAUX(M)=0.
DO N=1,3
IF(L.EQ.1)QAUX(M)=QAUX(M)+ROT(M,N)*P3(N)
IF(L.EQ.2)QAUX(M)=QAUX(M)+ROT(M,N)*P4(N)
IF(L.EQ.3)QAUX(M)=QAUX(M)+ROT(M,N)*P5(N)
END DO
END DO
DO M=1,3
IF(L.EQ.1)P3(M)=QAUX(M)
IF(L.EQ.2)P4(M)=QAUX(M)
IF(L.EQ.3)P5(M)=QAUX(M)
END DO
END DO
C...DO REAL INCOMING, OUTGOING MOMENTA IN THE LAB FRAME.
DO M=NHEP-2,NHEP+3
IF(M.EQ.NHEP )GO TO 888
DO N=0,3
NN=N
IF(N.EQ.0)NN=4
IF(M.EQ.NHEP-2)PHEP(NN,M)=P1(N)
IF(M.EQ.NHEP-1)PHEP(NN,M)=P2(N)
IF(M.EQ.NHEP+1)PHEP(NN,M)=P3(N)*(1-FLIP)+P4(N)*FLIP
IF(M.EQ.NHEP+2)PHEP(NN,M)=P4(N)*(1-FLIP)+P3(N)*FLIP
IF(M.EQ.NHEP+3)PHEP(NN,M)=P5(N)
END DO
888 CONTINUE
END DO
C...NEEDS TO SET ALL FINAL STATE MASSES.
PHEP(5,NHEP+1)=SQRT(ABS(PHEP(4,NHEP+1)**2
& -PHEP(3,NHEP+1)**2
& -PHEP(2,NHEP+1)**2
& -PHEP(1,NHEP+1)**2))
PHEP(5,NHEP+2)=SQRT(ABS(PHEP(4,NHEP+2)**2
& -PHEP(3,NHEP+2)**2
& -PHEP(2,NHEP+2)**2
& -PHEP(1,NHEP+2)**2))
PHEP(5,NHEP+3)=SQRT(ABS(PHEP(4,NHEP+3)**2
& -PHEP(3,NHEP+3)**2
& -PHEP(2,NHEP+3)**2
& -PHEP(1,NHEP+3)**2))
C...SETS CMF.
DO I=1,4
PHEP(I,NHEP )=PHEP(I,NHEP-2)+PHEP(I,NHEP-1)
END DO
PHEP(5,NHEP )=SQRT(ABS(PHEP(4,NHEP )**2
& -PHEP(3,NHEP )**2
& -PHEP(2,NHEP )**2
& -PHEP(1,NHEP )**2))
C...SETS UP OUTGOING STATUS AND IDS.
ISTHEP(NHEP+1)=113
ISTHEP(NHEP+2)=114
ISTHEP(NHEP+3)=114
IDHW(NHEP+1)=IDN(3)
IDHEP(NHEP+1)=IDPDG(IDN(3))
IDHW(NHEP+2)=IDN(4)
IDHEP(NHEP+2)=IDPDG(IDN(4))
IDHW(NHEP+3)=IDN(5)
IDHEP(NHEP+3)=IDPDG(IDN(5))
C...SETS UP COLOUR CONNECTIONS.
JMOHEP(2,NHEP+1)=NHEP+2
JMOHEP(2,NHEP+2)=NHEP+1
JMOHEP(2,NHEP-1)=NHEP-2
JMOHEP(2,NHEP-2)=NHEP-1
JMOHEP(2,NHEP+3)=NHEP+3
JDAHEP(2,NHEP+1)=NHEP+2
JDAHEP(2,NHEP+2)=NHEP+1
JDAHEP(2,NHEP-1)=NHEP-1
JDAHEP(2,NHEP-2)=NHEP-2
JDAHEP(2,NHEP+3)=NHEP+3
NHEP=NHEP+3
IF(AZSPIN)THEN
C...SET TO ZERO THE COEFFICIENTS OF THE SPIN DENSITY MATRICES.
CALL HWVZRO(7,GCOEF)
END IF
END IF
C...COLLECT WEIGHT.
EVWGT=HCS
END
CDECK ID>, HWHIGH.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Kosuke Odagiri & Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,3 (see below) for the processes IPROC=3315,3325,3335,3355,
C...3365,3375 as described in the HERWIG 6 documentation file.
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 16-AUG-1999 by Kosuke Odagiri
C...Last modified: 26-SEP-1999 by Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWHIGH
C-----------------------------------------------------------------------
C DRELL-YAN 2 PARTON -> 2 HIGGS PAIR (2HDM)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN, HWUAEM, EPS, HCS, RCS, DIST, S, PF, QPE,
& FACTR, SN2TH, MZ, MW, MNN(2,2), MCC(2), MCN(3), EMSC2, GW2, GZ2,
& GHH(4), XWEIN, S2W, ECM_MAX, X(3), XL(3),
& XU(3), WEIGHT, ECM, SHAT, TAU, RMH1, RMH2, EMH1, EMH2,
& EMHWT1, EMHWT2, EMHHWT
INTEGER I, J, IQ, IQ1, IQ2, ID1, ID2, IH, JH, IH1, IH2
EXTERNAL HWRGEN, HWUAEM
SAVE HCS,MNN,MCC,MCN,EMHHWT,S,SHAT
PARAMETER (EPS = 1.D-9)
DOUBLE COMPLEX Z, GZ, A, D, E
PARAMETER (Z = (0.D0,1.D0))
EQUIVALENCE (MZ, RMASS(200)), (MW, RMASS(198))
C...process event.
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
HCS = ZERO
EVWGT = ZERO
C...minimum transverse momentum.
PTMIN = ZERO
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...X(1)=COS(THETA_CM),
C...X(2)=(1./SHAT-1./ECM_MAX**2)/(1./(EMH1+EMH2)**2-1./ECM_MAX**2),
C...X(3)=(LOG(TAU)-LOG(X1))/LOG(TAU),
C...phase space borders.
XL(1)=-1.
XU(1)=1.
XL(2)=0.
XU(2)=1.
XL(3)=0.
XU(3)=1.
C...single phase space point.
WEIGHT=1.
DO I=1,3
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...final state masses.
IF((MOD(IPROC,10000).EQ.3365).OR.
& (MOD(IPROC,10000).EQ.3375))THEN
JH = IHIGGS-1
ID1 = 205
ID2 = 202 + JH
ELSE IF(MOD(IPROC,10000).EQ.3355)THEN
JH = 4
ID1 = 206
ID2 = 207
ELSE IF((MOD(IPROC,10000).EQ.3315).OR.
& (MOD(IPROC,10000).EQ.3325).OR.
& (MOD(IPROC,10000).EQ.3335))THEN
JH = IHIGGS-1
ID1 = 206
ID2 = 202 + JH
END IF
RMH1=RMASS(ID1)
RMH2=RMASS(ID2)
EMH1=RMH1
EMH2=RMH2
EMHWT1=1.
EMHWT2=1.
EMHHWT=EMHWT1*EMHWT2
C...energy at parton level.
ECM=SQRT(1./(X(2)*(1./(EMH1+EMH2)**2-1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH1.LE.0.).OR.(EMH1.GE.ECM))RETURN
IF((EMH2.LE.0.).OR.(EMH2.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1) = EXP(LOG(TAU)*(1.-X(3)))
XX(2) = TAU/XX(1)
COSTH = X(1)
SN2TH = 0.25D0 - 0.25D0*COSTH**2
EMSCA = EMH1+EMH2
EMSC2 = EMSCA*EMSCA
CALL HWSGEN(.FALSE.)
EVWGT = ZERO
FACTR = GEV2NB*PIFAC*(HWUAEM(EMSC2))**2/SHAT/CAFAC*SN2TH/2.
C...Jacobians from X1,X2 to X(2),X(3).
FACTR = FACTR/S*(-LOG(TAU))*(1./(EMH1+EMH2)**2-1./ECM_MAX**2)
C...constant weight.
FACTR = FACTR*WEIGHT
C...couplings and propagators.
XWEIN = TWO*SWEIN
S2W = DSQRT(XWEIN*(TWO-XWEIN))
GZ = S2W*(SHAT-MZ**2+Z*SHAT*GAMZ/MZ)/SHAT
GZ2 = DREAL(DCONJG(GZ)*GZ)
GW2 = ((ONE-MW**2/SHAT)**2+(GAMW/MW)**2)*XWEIN**2
C...labels: 1 = h0, 2 = H0, 3 = A0, 4 = H+, 5 = H-.
GHH(1)= COSBMA
GHH(2)= SINBMA
GHH(3)= ONE
GHH(4)= ONE-XWEIN
C...set to zero all MEs.
DO I=1,2
MCC(I)=ZERO
MCN(I)=ZERO
DO J=1,2
MNN(I,J)=ZERO
END DO
END DO
MCN(3)=ZERO
C...start subprocesses.
IF((MOD(IPROC,10000).EQ.3365).OR.
& (MOD(IPROC,10000).EQ.3375))THEN
c
c _ o o o
c q q -> A h / H
c
DO IH = JH,JH
QPE = SHAT-(EMH1+EMH2)**2
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(SHAT-(EMH1-EMH2)**2))/SHAT
DO IQ = 1,2
MNN(IH,IQ) =
& FACTR*PF**3*GHH(IH)**2*(LFCH(IQ)**2+RFCH(IQ)**2)/GZ2
END DO
ELSE
CONTINUE
END IF
END DO
ELSE IF(MOD(IPROC,10000).EQ.3355)THEN
c
c _ + -
c q q -> H H
c
IH = JH
QPE = SHAT-(EMH1+EMH2)**2
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(SHAT-(EMH1-EMH2)**2))/SHAT
DO IQ = 1,2
A = GHH(IH)/GZ
D = QFCH(IQ)+A*LFCH(IQ)
E = QFCH(IQ)+A*RFCH(IQ)
MCC(IQ)=FACTR*PF**3*DREAL(DCONJG(D)*D+DCONJG(E)*E)
END DO
ELSE
CONTINUE
END IF
ELSE IF((MOD(IPROC,10000).EQ.3315).OR.
& (MOD(IPROC,10000).EQ.3325).OR.
& (MOD(IPROC,10000).EQ.3335))THEN
c
c _ +- o o o
c q q' -> H h / H / A
c
DO IH = JH,JH
QPE = SHAT-(EMH1+EMH2)**2
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(SHAT-(EMH1-EMH2)**2))/SHAT
MCN(IH)=FACTR*PF**3/GW2*HALF*GHH(IH)**2
ELSE
CONTINUE
END IF
END DO
END IF
END IF
HCS = 0.D0
C...start PDFs.
DO 1 ID1 = 1, 12
IF (DISF(ID1,1).LT.EPS) GOTO 1
IF (ID1.GT.6) THEN
ID2 = ID1 - 6
ELSE
ID2 = ID1 + 6
END IF
IQ = ID1 - ((ID1-1)/2)*2
IF (DISF(ID2,2).LT.EPS) GOTO 1
DIST = DISF(ID1,1)*DISF(ID2,2)*S*SHAT
IH1 = 205
IH2 = 203
HCS = HCS + DIST*EMHHWT*MNN(1,IQ)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,1)
GOTO 9
ENDIF
IH2 = 204
HCS = HCS + DIST*EMHHWT*MNN(2,IQ)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,2)
GOTO 9
ENDIF
IH1 = 206
IH2 = 207
HCS = HCS + DIST*EMHHWT*MCC(IQ)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,3)
GOTO 9
ENDIF
1 CONTINUE
c _ _ _ _
c ud(+), ud(-), du(-), du(+)
c
DO 2 IQ1 = 1, 3
DO IQ2 = 1, 3
IF(VCKM(IQ1,IQ2).GT.EPS) THEN
c _
c ud (+)
c
ID1 = IQ1 * 2
ID2 = IQ2 * 2 + 5
IH1 = 206
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 1,3
IH2 = 202+IH
HCS = HCS + DIST*EMHHWT*MCN(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,3+IH)
GOTO 9
ENDIF
END DO
END IF
c _
c du (+)
c
ID1 = IQ2 * 2 + 5
ID2 = IQ1 * 2
IH1 = 206
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 1,3
IH2 = 202+IH
HCS = HCS + DIST*EMHHWT*MCN(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,3+IH)
GOTO 9
ENDIF
END DO
END IF
c _
c du (-)
c
ID1 = IQ2 * 2 - 1
ID2 = IQ1 * 2 + 6
IH1 = 207
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 1,3
IH2 = 202+IH
HCS = HCS + DIST*EMHHWT*MCN(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,3+IH)
GOTO 9
ENDIF
END DO
END IF
c _
c ud (-)
c
ID1 = IQ1 * 2 + 6
ID2 = IQ2 * 2 - 1
IH1 = 207
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)*S*SHAT
DO IH = 1,3
IH2 = 202+IH
HCS = HCS + DIST*EMHHWT*MCN(IH)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IH1,IH2,2134,3+IH)
GOTO 9
ENDIF
END DO
END IF
END IF
END DO
2 CONTINUE
EVWGT = HCS
RETURN
C...generate event.
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
CALL HWVZRO(7,GCOEF)
END IF
END
CDECK ID>, HWHIGJ.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHIGJ
C-----------------------------------------------------------------------
C QCD Higgs plus jet production; mean EVWGT = Sigma in nb*Higgs B.R.
C Adapted from the program of U. Baur and E.W.N. Glover
C See: Nucl. Phys. B339 (1990) 38
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,HWUAEM,EPS,RCS,EMH,EMHWT,
& EMHTMP,BR,CV,CA,EMH2,ET,EJ,PT,EMT,EMAX,YMAX,YHINF,YHSUP,EXYH,
& YMIN,YJINF,YJSUP,EXYJ,S,T,U,FACT,AMPQQ,AMPQG,AMPGQ,AMPGG,HCS,
& FACTR
INTEGER I,IDEC,ID1,ID2
EXTERNAL HWRGEN,HWRUNI,HWUALF,HWUAEM
SAVE HCS,AMPGG,AMPGQ,AMPQG,AMPQQ,EMH,FACT
PARAMETER (EPS=1.D-9)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
C Select a Higgs mass
CALL HWHIGM(EMH,EMHWT)
IF (EMH.LE.ZERO .OR. EMH.GE.PHEP(5,3)) RETURN
C Store branching ratio for specified Higgs deacy channel
IDEC=MOD(IPROC,100)
BR=1.
IF (IDEC.EQ.0) THEN
BR=0.
DO 10 I=1,6
10 BR=BR+BRHIG(I)
ELSEIF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
BR=BR*BRHIG(IDEC)
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
BR=BR*BRHIG(IDEC)
ELSEIF (IDEC.LE.12) THEN
BR=BRHIG(IDEC)
ENDIF
C Select subprocess kinematics
EMH2=EMH**2
CALL HWRPOW(ET,EJ)
PT=.5*ET
EMT=SQRT(PT**2+EMH2)
EMAX=0.5*(PHEP(5,3)+EMH2/PHEP(5,3))
IF (EMAX.LE.EMT) RETURN
YMAX=LOG((EMAX+SQRT(EMAX**2-EMT**2))/EMT)
YHINF=MAX(YJMIN,-YMAX)
YHSUP=MIN(YJMAX, YMAX)
IF (YHSUP.LE.YHINF) RETURN
EXYH=EXP(HWRUNI(1,YHINF,YHSUP))
YMIN=LOG(PT/(PHEP(5,3)-EMT/EXYH))
YMAX=LOG((PHEP(5,3)-EMT*EXYH)/PT)
YJINF=MAX(YJMIN,YMIN)
YJSUP=MIN(YJMAX,YMAX)
IF (YJSUP.LE.YJINF) RETURN
EXYJ=EXP(HWRUNI(2,YJINF,YJSUP))
XX(1)=(EMT*EXYH+PT*EXYJ)/PHEP(5,3)
XX(2)=(EMT/EXYH+PT/EXYJ)/PHEP(5,3)
S=XX(1)*XX(2)*PHEP(5,3)**2
T=EMH2-XX(1)*EMT*PHEP(5,3)/EXYH
U=EMH2-S-T
COSTH=(S+2.*T-EMH2)/(S-EMH2)
C Set subprocess scale
EMSCA=EMT
CALL HWSGEN(.FALSE.)
FACT=GEV2NB*PT*EJ*(YHSUP-YHINF)*(YJSUP-YJINF)*BR*EMHWT
& *HWUALF(1,EMSCA)**3*HWUAEM(EMH2)/(SWEIN*16*PIFAC*S**2)
CALL HWHIGA(S,T,U,EMH2,AMPQQ,AMPQG,AMPGQ,AMPGG)
ENDIF
HCS=0.
DO 30 ID1=1,13
IF (DISF(ID1,1).LT.EPS) GOTO 30
FACTR=FACT*DISF(ID1,1)
IF (ID1.LT.7) THEN
C Quark first:
ID2=ID1+6
HCS=HCS+FACTR*DISF(ID2,2)*AMPQQ
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(13 ,201,2314,81)
GOTO 99
ENDIF
ID2=13
HCS=HCS+FACTR*DISF(ID2,2)*AMPQG
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,201,3124,82)
GOTO 99
ENDIF
ELSEIF (ID1.LT.13) THEN
C Antiquark first:
ID2=ID1-6
HCS=HCS+FACTR*DISF(ID2,2)*AMPQQ
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(13 ,201,3124,83)
GOTO 99
ENDIF
ID2=13
HCS=HCS+FACTR*DISF(ID2,2)*AMPQG
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,201,2314,84)
GOTO 99
ENDIF
ELSE
C Gluon first:
DO 20 ID2=1,12
IF (DISF(ID2,2).LT.EPS) GOTO 20
IF (ID2.LT.7) THEN
HCS=HCS+FACTR*DISF(ID2,2)*AMPGQ
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID2,201,2314,85)
GOTO 99
ENDIF
ELSE
HCS=HCS+FACTR*DISF(ID2,2)*AMPGQ
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID2,201,3124,86)
GOTO 99
ENDIF
ENDIF
20 CONTINUE
HCS=HCS+FACTR*DISF(13,2)*AMPGG
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(13 ,201,2314,87)
GOTO 99
ENDIF
ENDIF
30 CONTINUE
EVWGT=HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
C Trick HWETWO into using off-shell Higgs mass
EMHTMP=RMASS(IDN(4))
RMASS(IDN(4))=EMH
C-- BRW fix 27/8/04: avoid double smearing of H mass
CALL HWETWO(.TRUE.,.FALSE.)
RMASS(IDN(4))=EMHTMP
END
CDECK ID>, HWHIGM.
*CMZ :- -02/05/91 11.17.14 by Federico Carminati
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHIGM(EM,WEIGHT)
C-----------------------------------------------------------------------
C CHOOSE HIGGS MASS:
C IF (IOPHIG.EQ.0.OR.IOPHIG.EQ.2) THEN
C CHOOSE HIGGS MASS ACCORDING TO
C EM**4 / (EM**2-EMH**2)**2 + (GAMH*EMH)**2
C ELSE
C CHOOSE HIGGS MASS ACCORDING TO
C EMH * GAMH / (EM**2-EMH**2)**2 + (GAMH*EMH)**2
C ENDIF
C IF (IOPHIG.EQ.0.OR.IOPHIG.EQ.1) THEN
C SUPPLY WEIGHT FACTOR TO YIELD
C EM * GAM(EM)/ (EM**2-EMH**2)**2 + (GAM(EM)*EM)**2
C ELSE
C SUPPLY WEIGHT FACTOR TO YIELD
C EM*(EMH/EM)**4 * GAM(EM)
C / (EM**2-EMH**2)**2 + (GAM(EM)*EMH**2/EM)**2
C AS SUGGESTED IN M.H.SEYMOUR, PHYS.LETT.B354(1995)409.
C ENDIF
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRUNI,EM,WEIGHT,EMH,DIF,FUN,THETA,T,EMHLST,W0,
& W1,EMM,GAMEM,T0,TMIN,TMAX,THEMIN,THEMAX,ZMIN,ZMAX,Z,F,GAMOFS
INTEGER I
EXTERNAL HWRUNI
SAVE EMHLST,GAMEM,T0,TMIN,TMAX,THEMIN,THEMAX,ZMIN,ZMAX,W0,W1
EQUIVALENCE (EMH,RMASS(201))
DATA EMHLST/0D0/
C---SET UP INTEGRAND AND INDEFINITE INTEGRAL OF DISTRIBUTION
C THETA=ATAN((EM**2-EMH**2)/(GAMH*EMH)); T=TAN(THETA); T0=EMH/GAMH
DIF(T,T0)=(T+T0)**2
FUN(THETA,T,T0)=T + (T0*T0-1)*THETA + T0*LOG(1+T*T)
C---SET UP CONSTANTS
IF (EMH.NE.EMHLST .OR. FSTWGT) THEN
EMHLST=EMH
GAMEM=GAMH*EMH
T0=EMH/GAMH
TMIN=(MAX(ONE*1E-10,EMH-GAMMAX*GAMH))**2/GAMEM-T0
TMAX=( EMH+GAMMAX*GAMH )**2/GAMEM-T0
THEMIN=ATAN(TMIN)
THEMAX=ATAN(TMAX)
ZMIN=FUN(THEMIN,TMIN,T0)
ZMAX=FUN(THEMAX,TMAX,T0)
W0=(ZMAX-ZMIN) / PIFAC * GAMEM
W1=(THEMAX-THEMIN) / PIFAC
ENDIF
C---CHOOSE HIGGS MASS
IF (IOPHIG.EQ.0.OR.IOPHIG.EQ.2) THEN
EM=0
WEIGHT=0
Z=HWRUNI(1,ZMIN,ZMAX)
C---SOLVE FUN(THETA,TAN(THETA))=Z BY NEWTON'S METHOD
THETA=MAX(THEMIN, MIN(THEMAX, Z/T0**2 ))
I=1
F=0
10 IF (I.LE.20 .AND. ABS(1-F/Z).GT.1E-4) THEN
I=I+1
IF (2*ABS(THETA).GT.PIFAC) THEN
CALL HWWARN('HWHIGM',51)
GOTO 999
ENDIF
T=TAN(THETA)
F=FUN(THETA,T,T0)
THETA=THETA-(F-Z)/DIF(T,T0)
GOTO 10
ENDIF
IF (I.GT.20) CALL HWWARN('HWHIGM',1)
ELSE
THETA=HWRUNI(0,THEMIN,THEMAX)
ENDIF
EM=SQRT(GAMEM*(T0+TAN(THETA)))
C---NOW CALCULATE WEIGHT FACTOR FOR NON-CONSTANT HIGGS WIDTH
GAMOFS=EM
CALL HWDHIG(GAMOFS)
IF (IOPHIG.EQ.0) THEN
WEIGHT=W0*GAMOFS*EM /EM**4 *((EM**2-EMH**2)**2 + GAMEM**2)
& /((EM**2-EMH**2)**2 +(GAMOFS*EM)**2)
ELSEIF (IOPHIG.EQ.1) THEN
WEIGHT=W1*GAMOFS*EM /GAMEM *((EM**2-EMH**2)**2 + GAMEM**2)
& /((EM**2-EMH**2)**2 +(GAMOFS*EM)**2)
ELSEIF (IOPHIG.EQ.2) THEN
EMM=EM*(EMH/EM)**4
WEIGHT=W0*GAMOFS*EMM/EM**4 *((EM**2-EMH**2)**2 + GAMEM**2)
& /((EM**2-EMH**2)**2 +(GAMOFS*EMM)**2)
ELSEIF (IOPHIG.EQ.3) THEN
EMM=EM*(EMH/EM)**4
WEIGHT=W1*GAMOFS*EMM/GAMEM *((EM**2-EMH**2)**2 + GAMEM**2)
& /((EM**2-EMH**2)**2 +(GAMOFS*EMM)**2)
ELSE
CALL HWWARN('HWHIGM',500)
ENDIF
999 RETURN
END
CDECK ID>, HWHIGQ.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,6 (see below) for the processes from IPROC=2500-2599 (SM),
C...IPROC=3811-3899, as described in the HERWIG 6 documentation file.
C...(For IPROC=3839,3869,3899 it describes MSSM charged Higgs production.)
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 08-APR-1999 by Stefano Moretti
C...Last modified: 28-JUN-2001 by Stefano Moretti
C
SUBROUTINE HWHIGQ
C-----------------------------------------------------------------------
C PRODUCTION OF MSSM HIGGSES IN ASSOCIATION WITH HEAVY QUARK PAIRS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER JHIGGS
INTEGER I,J,K,L,M,N
INTEGER IS,IH,IQ,JQ,IIQ,JJQ,IQMIN,IQMAX,IGG,IQQ
INTEGER IDEC,NC,FLIP
INTEGER ID1,ID2
DOUBLE PRECISION CV,CA,BR
DOUBLE PRECISION BRHIGQ,EMQ,ENQ,EMQQ,EMH,EMHWT,EMW
DOUBLE PRECISION PTMMIN,PTNMIN
DOUBLE PRECISION T,TL,TLMIN,TLMAX,TTMIN,TTMAX,CTMP,RCM,RCM2
DOUBLE PRECISION X(6),XL(6),XU(6)
DOUBLE PRECISION Q4(0:3),Q34(0:3)
DOUBLE PRECISION CT5,ST5,CT4,ST4,CF4,SF4,RQ52,RQ5,RQ42,RQ4,PQ4
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION ECM_MAX,ECM,SHAT,S,TAU
DOUBLE PRECISION EMIN,EMIN1,EMIN2,PCM2,PCM
DOUBLE PRECISION M2GG,M2GGPL,M2GGMN,M2QQ
DOUBLE PRECISION GM,GRND,FACGPM(2)
DOUBLE PRECISION GGQQHT,GGQQHU,GGQQHNP,QQQQH
DOUBLE PRECISION ALPHA,ALPHAS,EMSC2
DOUBLE PRECISION HWRGEN,HWUAEM,HWUALF
DOUBLE PRECISION PHI,CPHI,SPHI,ROT(3,3)
DOUBLE PRECISION VCOL,GCOL,QAUX(0:3)
DOUBLE PRECISION EPS,HCS,RCS,FACT,DIST
DOUBLE PRECISION WEIGHT
SAVE HCS,M2QQ,M2GG,M2GGPL,M2GGMN,FACT,S,SHAT,P3,P4,P5
SAVE IIQ,JJQ,JHIGGS
LOGICAL HWRLOG
EXTERNAL HWHIGM,HWRGEN,HWUAEM,HWUALF,HWHQCP,HWH2QH,HWETWO,HWRLOG
PARAMETER (EPS=1.D-9)
EQUIVALENCE (EMW,RMASS(198)),(NC,NCOLO)
C...assign Q/Q'-flavour.
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
IQ=6
JQ=11
GM=HBAR/RLTIM(6)*RMASS(6)
ELSE
IF(IMSSM.EQ.0)THEN
IS=0
IH=0
IQ=6
ELSE
IF(MOD(IPROC,10000).LT.4000)IS=6
IF(MOD(IPROC,10000).LT.3870)IS=3
IF(MOD(IPROC,10000).LT.3840)IS=0
IH=MOD(IPROC,10000)/10-380-IS
IQ=MOD(IPROC,10000)-3800-10*(IH+IS)
END IF
JQ=IQ+6
GM=ZERO
END IF
C...process event.
IF(GENEV)THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
HCS=0.
C...assign final state masses.
EMQ=RMASS(IQ)
ENQ=RMASS(JQ)
EMH=RMASS(201+IHIGGS)
EMHWT=1.
IF(IMSSM.EQ.0)CALL HWHIGM(EMH,EMHWT)
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...X(1)=(EMQQ**2-(EMQ+ENQ)**2)/((ECM-EMH)**2-(EMQ+ENQ)**2),
C...LIGHT QUARKS -> X(2)=(LOG|T|-LOG|TMIN|)/(LOG|TMAX|-LOG|TMIN|),
C... X(3)=SIN(THETA4_CM_34),X(4)=COS(FI4_CM_34),
C...HEAVY QUARKS -> X(2)=COS(THETA5_CM),
C... X(3)=COS(THETA4_CM_34),X(4)=FI4_CM_34,
C...X(5)=(1./SHAT-1./ECM_MAX**2)/(1./(EMQ+ENQ+EMH)**2-1./ECM_MAX**2),
C...X(6)=(LOG(TAU)-LOG(X1))/LOG(TAU);
C...phase space borders.
XL(1)=0.
XU(1)=1.
IF((IQ+JQ).EQ.18)THEN
XL(2)=-1.
XL(4)=0.
XU(4)=2.*PIFAC
ELSE
XL(2)=0.
XL(4)=-1.
XU(4)=1.
END IF
XU(2)=1.
XL(3)=-1.
XU(3)=1.
XL(5)=0.
XU(5)=1.
XL(6)=0.
XU(6)=1.
C...single phase space point.
100 CONTINUE
WEIGHT=1.
DO I=1,6
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...energy at parton level.
PTMMIN=0.
PTNMIN=0.
IF(IMSSM.NE.0)THEN
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
PTNMIN=PTMIN
ELSE
IF((IQ.NE.6).AND.(IQ.NE.12).AND.
& (JQ.NE.6).AND.(JQ.NE.12))THEN
PTMMIN=PTMIN
PTNMIN=PTMIN
ELSE
CONTINUE
END IF
END IF
END IF
ECM=SQRT(1./(X(5)*(1./(SQRT(PTMMIN**2+EMQ**2)
& +SQRT(PTNMIN**2+ENQ**2)+EMH)**2
& -1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1)=EXP(LOG(TAU)*(1.-X(6)))
XX(2)=TAU/XX(1)
C...three particle kinematics.
EMQQ=SQRT(X(1)*((ECM-EMH)**2-(EMQ+ENQ)**2)+(EMQ+ENQ)**2)
C...incoming partons: all massless.
EMIN=0.
IF((IQ+JQ).EQ.18)THEN
CT5=X(2)
CT4=X(3)
ST4=SQRT(1.-CT4*CT4)
CF4=COS(X(4))
SF4=SIN(X(4))
ELSE
PCM2=((ECM*ECM-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*ECM*ECM)
PCM=SQRT(PCM2)
RCM2=((ECM*ECM-EMQQ*EMQQ-EMH*EMH)**2
& -(2.*EMQQ*EMH)**2)/(4.*ECM*ECM)
RCM=SQRT(RCM2)
TTMAX=EMIN**2+EMQQ**2-0.5D0/ECM/ECM
& *((ECM*ECM+EMIN**2-EMIN**2)*(ECM*ECM+EMQQ**2-EMH**2)
& -SQRT((ECM*ECM-(EMIN+EMIN)**2)*(ECM*ECM-(EMIN-EMIN)**2))
& *SQRT((ECM*ECM-(EMQQ+EMH)**2)*(ECM*ECM-(EMQQ-EMH)**2)))
TTMIN=EMIN**2+EMQQ**2-0.5D0/ECM/ECM
& *((ECM*ECM+EMIN**2-EMIN**2)*(ECM*ECM+EMQQ**2-EMH**2)
& +SQRT((ECM*ECM-(EMIN+EMIN)**2)*(ECM*ECM-(EMIN-EMIN)**2))
& *SQRT((ECM*ECM-(EMQQ+EMH)**2)*(ECM*ECM-(EMQQ-EMH)**2)))
TLMIN=LOG(ABS(TTMAX))
TLMAX=LOG(ABS(TTMIN))
TL=X(2)*(TLMAX-TLMIN)+TLMIN
T=EXP(ABS(TL))
CTMP=-T-EMIN**2-EMQQ**2
& +2.*SQRT(PCM**2+EMIN**2)*SQRT(RCM**2+EMQQ**2)
CT5=CTMP/2./PCM/RCM
ST4=X(3)
CT4=SQRT(1.-ST4*ST4)
IF (HWRLOG(HALF)) CT4=-CT4
CF4=X(4)
SF4=SQRT(1.-CF4*CF4)
IF (HWRLOG(HALF)) SF4=-SF4
END IF
ST5=SQRT(1.-CT5*CT5)
IF (HWRLOG(HALF)) ST5=-ST5
RQ52=((ECM*ECM-EMH*EMH-EMQQ*EMQQ)**2-(2.*EMH*EMQQ)**2)/
& (4.*ECM*ECM)
IF(RQ52.LT.0.)THEN
GOTO 100
ELSE
RQ5=SQRT(RQ52)
ENDIF
P5(1)=0.
P5(2)=RQ5*ST5
P5(3)=RQ5*CT5
P5(0)=SQRT(RQ52+EMH*EMH)
DO I=1,3
Q34(I)=-P5(I)
END DO
Q34(0)=SQRT(RQ52+EMQQ*EMQQ)
RQ42=((EMQQ*EMQQ-EMQ*EMQ-ENQ*ENQ)**2-(2.*EMQ*ENQ)**2)/
& (4.*EMQQ*EMQQ)
IF(RQ42.LT.0.)THEN
GOTO 100
ELSE
RQ4=SQRT(RQ42)
ENDIF
Q4(1)=RQ4*ST4*CF4
Q4(2)=RQ4*ST4*SF4
Q4(3)=RQ4*CT4
Q4(0)=SQRT(RQ42+ENQ*ENQ)
PQ4=0.
DO I=1,3
PQ4=PQ4+Q34(I)*Q4(I)
END DO
P4(0)=(Q34(0)*Q4(0)+PQ4)/EMQQ
P3(0)=Q34(0)-P4(0)
DO I=1,3
P4(I)=Q4(I)+Q34(I)*(P4(0)+Q4(0))/(Q34(0)+EMQQ)
P3(I)=Q34(I)-P4(I)
END DO
IF(IMSSM.NE.0)THEN
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
IF(SQRT(P4(1)**2+P4(2)**2).LT.PTMIN)RETURN
ELSE
IF((IQ.NE.6).AND.(IQ.NE.12).AND.
& (JQ.NE.6).AND.(JQ.NE.12))THEN
IF(SQRT(P3(1)**2+P3(2)**2).LT.PTMIN)RETURN
IF(SQRT(P4(1)**2+P4(2)**2).LT.PTMIN)RETURN
ELSE
CONTINUE
END IF
END IF
END IF
C...initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN*EMIN)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN*EMIN)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...color structured ME summed/averaged over final/initial spins and colors.
IGG=1
IQQ=1
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
IF(MOD(IPROC,10000).EQ.3869)IQQ=0
IF(MOD(IPROC,10000).EQ.3899)IGG=0
GRND=TANB
ELSE
IF(IMSSM.NE.0)THEN
IF((MOD(IPROC,10000)/10-380).EQ.4)IQQ=0
IF((MOD(IPROC,10000)/10-380).EQ.7)IGG=0
END IF
GRND=ONE
END IF
FACGPM(1) = ENQ *GRND
FACGPM(2) = EMQ*PARITY/GRND
CALL HWH2QH(ECM,P1,P2,P3,P4,P5,EMQ,ENQ,EMH,FACGPM,GM,IGG,IQQ,
& GGQQHT,GGQQHU,GGQQHNP,QQQQH)
M2GG=GGQQHNP/(8.*CFFAC)
M2GGPL=GGQQHT/(8.*CFFAC)
M2GGMN=GGQQHU/(8.*CFFAC)
M2QQ=QQQQH*(1.-1./CAFAC**2)/4.
C...constant factors: phi along beam and conversion GeV^2->nb.
FACT=2.*PIFAC*GEV2NB
C...Jacobians from X1,X2 to X(5),X(6)
FACT=FACT/S*(-LOG(TAU))*(1./(EMQ+ENQ+EMH)**2-1./ECM_MAX**2)
C...phase space Jacobians, pi's and flux.
FACT=FACT*RQ4*RQ5/PCM/32./(2.*PIFAC)**5
& *((ECM-EMH)**2-(EMQ+ENQ)**2)
& /2./EMQQ
C...Jacobians from CT5 to X(2).
IF((IQ+JQ).EQ.18)THEN
CONTINUE
ELSE
FACT=FACT*(TLMAX-TLMIN)/2./PCM/RCM*ABS(T)
FACT=FACT*2.*ABS(ST4/CT4/SF4)
END IF
C...EW and QCD couplings.
EMSCA=EMQ+ENQ+EMH
EMSC2=EMSCA*EMSCA
ALPHA=HWUAEM(EMSC2)
ALPHAS=HWUALF(1,EMSCA)
FACT=FACT*4.*PIFAC*ALPHA/4./SWEIN/EMW/EMW
FACT=FACT*16.*PIFAC**2*ALPHAS**2
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
C...enhancement factor for coupling+c.c.
FACT=FACT*4.*VCKM(3,3)
ELSE
C...enhancement factor for MSSM.
FACT=FACT*ENHANC(IQ)*ENHANC(IQ)
END IF
C...Higgs resonance.
FACT=FACT*EMHWT
C...constant weight.
FACT=FACT*WEIGHT
C...include BR of Higgs.
IF(IMSSM.EQ.0)THEN
IDEC=MOD(IPROC,100)
IF (IDEC.GT.0.AND.IDEC.LE.12) FACT=FACT*BRHIG(IDEC)
IF (IDEC.EQ.0) THEN
BRHIGQ=0.D0
DO I=1,6
BRHIGQ=BRHIGQ+BRHIG(I)
END DO
FACT=FACT*BRHIGQ
ENDIF
c bug fix 11/10/02 SM.
IF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
FACT=FACT*BR
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
FACT=FACT*BR
ENDIF
c end of bug fix.
END IF
END IF
C...set up flavours in final state.
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
IF(HWRGEN(0).LT.0.5)THEN
JHIGGS=207-201
IIQ=6
JJQ=11
FLIP=0
ELSE
JHIGGS=206-201
IIQ=5
JJQ=12
FLIP=1
END IF
ELSE
JHIGGS=IHIGGS
IIQ=IQ
JJQ=JQ
FLIP=0
END IF
C...set up PDFs.
HCS=0.
CALL HWSGEN(.FALSE.)
IQMAX=13
IQMIN=1
IF((MOD(IPROC,10000).EQ.3839).OR.
& (MOD(IPROC,10000).EQ.3869).OR.
& (MOD(IPROC,10000).EQ.3899))THEN
IF(MOD(IPROC,10000).EQ.3869)IQMIN=13
IF(MOD(IPROC,10000).EQ.3899)IQMAX=12
ELSE
IF(IMSSM.NE.0)THEN
C...Some compilers don't like this statement.
C Since it does nothing, just comment it out.
C IF((MOD(IPROC,10000).GE.3811).AND.
C & (MOD(IPROC,10000).LE.3836))CONTINUE
IF((MOD(IPROC,10000).GE.3841).AND.
& (MOD(IPROC,10000).LE.3866))IQMIN=13
IF((MOD(IPROC,10000).GE.3871).AND.
& (MOD(IPROC,10000).LE.3896))IQMAX=12
END IF
END IF
DO I=IQMIN,IQMAX
IF(DISF(I,1).LT.EPS)THEN
GOTO 200
END IF
K=I/7
L=+1-2*K
IF(I.EQ.13)L=0
J=I+L*6
IF(DISF(J,2).LT.EPS)THEN
GOTO 200
END IF
DIST=DISF(I,1)*DISF(J,2)*S
IF(I.LT.13)THEN
C...set up color connections: qq-scattering.
IF(J.EQ.I+6)THEN
HCS=HCS+M2QQ*DIST*FACT
IF(GENEV.AND.HCS.GT.RCS)THEN
CONTINUE
CALL HWHQCP(IIQ,JJQ,2413, 4)
GOTO 9
END IF
ELSE IF(I.EQ.J+6)THEN
HCS=HCS+M2QQ*DIST*FACT
IF(GENEV.AND.HCS.GT.RCS)THEN
FLIP=(2-2*FLIP)/2
CALL HWHQCP(JJQ,IIQ,3142,12)
GOTO 9
END IF
END IF
ELSE
C...set up color connections: gg-scattering.
HCS=HCS
& +(M2GGPL-M2GG*M2GGPL/(M2GGPL+M2GGMN)/FLOAT(NC)**2)*DIST*FACT
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IIQ,JJQ,2413,27)
GOTO 9
ENDIF
HCS=HCS
& +(M2GGMN-M2GG*M2GGMN/(M2GGPL+M2GGMN)/FLOAT(NC)**2)*DIST*FACT
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(IIQ,JJQ,4123,28)
GOTO 9
ENDIF
END IF
200 CONTINUE
END DO
EVWGT=HCS
RETURN
C...generate event.
9 IDN(1)=I
IDN(2)=J
IDN(5)=201+JHIGGS
C...incoming partons: now massive.
EMIN1=RMASS(IDN(1))
EMIN2=RMASS(IDN(2))
C...redo initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN1*EMIN1-EMIN2*EMIN2)**2
& -(2.*EMIN1*EMIN2)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN1*EMIN1)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN2*EMIN2)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...randomly rotate final state momenta around beam axis.
PHI=2.*PIFAC*HWRGEN(0)
CPHI=COS(PHI)
SPHI=SIN(PHI)
ROT(1,1)=+CPHI
ROT(1,2)=+SPHI
ROT(1,3)=0.
ROT(2,1)=-SPHI
ROT(2,2)=+CPHI
ROT(2,3)=0.
ROT(3,1)=0.
ROT(3,2)=0.
ROT(3,3)=1.
DO L=1,3
DO M=1,3
QAUX(M)=0.
DO N=1,3
IF(L.EQ.1)QAUX(M)=QAUX(M)+ROT(M,N)*P3(N)
IF(L.EQ.2)QAUX(M)=QAUX(M)+ROT(M,N)*P4(N)
IF(L.EQ.3)QAUX(M)=QAUX(M)+ROT(M,N)*P5(N)
END DO
END DO
DO M=1,3
IF(L.EQ.1)P3(M)=QAUX(M)
IF(L.EQ.2)P4(M)=QAUX(M)
IF(L.EQ.3)P5(M)=QAUX(M)
END DO
END DO
C...use HWETWO only to set up status and IDs of quarks.
COSTH=0.
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
C...do real incoming, outgoing momenta in the lab frame.
VCOL=(XX(1)-XX(2))/(XX(1)+XX(2))
GCOL=(XX(1)+XX(2))/2./SQRT(XX(1)*XX(2))
DO M=NHEP-4,NHEP+1
IF(M.EQ.NHEP-2)GO TO 888
DO N=0,3
IF(M.EQ.NHEP-4)QAUX(N)=P1(N)
IF(M.EQ.NHEP-3)QAUX(N)=P2(N)
IF(M.EQ.NHEP-1)QAUX(N)=P3(N)*(1-FLIP)+P4(N)*FLIP
IF(M.EQ.NHEP )QAUX(N)=P4(N)*(1-FLIP)+P3(N)*FLIP
IF(M.EQ.NHEP+1)QAUX(N)=P5(N)
END DO
C...perform boost.
PHEP(4,M)=GCOL*(QAUX(0)+VCOL*QAUX(3))
PHEP(3,M)=GCOL*(QAUX(3)+VCOL*QAUX(0))
PHEP(2,M)=QAUX(2)
PHEP(1,M)=QAUX(1)
888 CONTINUE
END DO
C...needs to set all final state masses.
PHEP(5,NHEP-1)=SQRT(ABS(PHEP(4,NHEP-1)**2
& -PHEP(3,NHEP-1)**2
& -PHEP(2,NHEP-1)**2
& -PHEP(1,NHEP-1)**2))
PHEP(5,NHEP )=SQRT(ABS(PHEP(4,NHEP )**2
& -PHEP(3,NHEP )**2
& -PHEP(2,NHEP )**2
& -PHEP(1,NHEP )**2))
PHEP(5,NHEP+1)=SQRT(ABS(PHEP(4,NHEP+1)**2
& -PHEP(3,NHEP+1)**2
& -PHEP(2,NHEP+1)**2
& -PHEP(1,NHEP+1)**2))
C...sets CMF.
DO I=1,4
PHEP(I,NHEP-2)=PHEP(I,NHEP-4)+PHEP(I,NHEP-3)
END DO
PHEP(5,NHEP-2)=SQRT(ABS(PHEP(4,NHEP-2)**2
& -PHEP(3,NHEP-2)**2
& -PHEP(2,NHEP-2)**2
& -PHEP(1,NHEP-2)**2))
C...status and IDs for Higgs.
ISTHEP(NHEP+1)=114
IDHW(NHEP+1)=IDN(5)
IDHEP(NHEP+1)=IDPDG(IDN(5))
C...Higgs colour (self-)connections.
JMOHEP(1,NHEP+1)=NHEP-2
JMOHEP(2,NHEP+1)=NHEP+1
JDAHEP(2,NHEP+1)=NHEP+1
JDAHEP(2,NHEP-2)=NHEP+1
NHEP=NHEP+1
IF(AZSPIN)THEN
C...set to zero the coefficients of the spin density matrices.
CALL HWVZRO(7,GCOEF)
END IF
END
C-----------------------------------------------------------------------
CDECK ID>, HWHIGS.
*CMZ :- -02/04/98 14.52.22 by Mike Seymour
*-- Author : Mike Seymour
*-- Modified: Stefano Moretti 04/05/98
C-----------------------------------------------------------------------
SUBROUTINE HWHIGS
C-----------------------------------------------------------------------
C HIGGS PRODUCTION VIA GLUON OR QUARK FUSION
C MEAN EVWGT = HIGGS PRODN C-S * BRANCHING FRACTION IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUALF,HWHIGT,HWRGEN,HWUSQR,HWUAEM,BRHIGQ,EMH,
& CSFAC(13),EVSUM(13),EMFAC,CV,CA,BR,RWGT,E1,E2,EMQ,GFACTR,RQM(6)
INTEGER IDEC,I,J,ID1,ID2
EXTERNAL HWUALF,HWHIGT,HWRGEN,HWUSQR,HWUAEM
SAVE CSFAC,BR,EVSUM
IF (GENEV) THEN
RWGT=HWRGEN(0)*EVSUM(13)
IDN(1)=1
DO 10 I=1,12
10 IF (RWGT.GT.EVSUM(I)) IDN(1)=I+1
IDN(2)=13
IF (IDN(1).LE.12) IDN(2)=IDN(1)-6
IF (IDN(1).LE. 6) IDN(2)=IDN(1)+6
IDCMF=201+IHIGGS
CALL HWEONE
ELSE
EVWGT=0.
EMH=RMASS(201+IHIGGS)
EMFAC=1.D0
IF(IMSSM.EQ.0)CALL HWHIGM(EMH,EMFAC)
IF (EMH.LE.0 .OR. EMH.GE.PHEP(5,3)) RETURN
EMSCA=EMH
IF (EMSCA.NE.EMLST) THEN
EMLST=EMH
XXMIN=(EMH/PHEP(5,3))**2
XLMIN=LOG(XXMIN)
GFACTR=GEV2NB*HWUAEM(EMH**2)/(576.*SWEIN*RMASS(198)**2)
C--MOD BY BRW 16/07/03 TO USE RUNNING MASSES
CALL HWURQM(EMH,RQM)
DO 20 I=1,13
IF (I.EQ.13) THEN
CSFAC(I)=-GFACTR*HWHIGT( EMH)*XLMIN
& *HWUALF(1,EMH)**2*EMFAC
ELSEIF (I.GT.6) THEN
CSFAC(I)=CSFAC(I-6)
ELSE
EMQ=RQM(I)
IF (EMQ.GT.ZERO.AND.EMH.GT.TWO*EMQ) THEN
CSFAC(I)=-GFACTR*96.*PIFAC**2 *(1-(TWO*EMQ/EMH)**2)
& *(EMQ/EMH)**2 *XLMIN *EMFAC*ENHANC(I)**2
ELSE
CSFAC(I)=0
ENDIF
ENDIF
C--END MOD
20 CONTINUE
C INCLUDE BRANCHING RATIO OF HIGGS
IDEC=MOD(IPROC,100)
BR=1
IF(IMSSM.EQ.0)THEN
C SM case
IF (IDEC.EQ.0) THEN
BRHIGQ=0
DO 30 I=1,6
30 BRHIGQ=BRHIGQ+BRHIG(I)
BR=BRHIGQ
ELSEIF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
BR=BR*BRHIG(IDEC)
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
BR=BR*BRHIG(IDEC)
ELSEIF (IDEC.LE.12) THEN
BR=BRHIG(IDEC)
ENDIF
ENDIF
ENDIF
CALL HWSGEN(.TRUE.)
EVWGT=0
E1=PHEP(4,MAX(1,JDAHEP(1,1)))
E2=PHEP(4,MAX(2,JDAHEP(1,2)))
DO 40 I=1,13
EMQ=RMASS(I)
IF (EMH.GT.2*EMQ) THEN
J=13
IF (I.LE.12) J=I-6
IF (I.LE. 6) J=I+6
IF (XX(1).LT.0.5*(1-EMQ/E1+HWUSQR(1-2*EMQ/E1)) .AND.
& XX(2).LT.0.5*(1-EMQ/E2+HWUSQR(1-2*EMQ/E2)))
& EVWGT=EVWGT+DISF(I,1)*DISF(J,2)*CSFAC(I)*BR
ENDIF
EVSUM(I)=EVWGT
40 CONTINUE
ENDIF
END
CDECK ID>, HWHIGT.
*CMZ :- -02/04/98 15.00.39 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWHIGT(EMH)
C-----------------------------------------------------------------------
C CALCULATE MOD SQUARED I DEFINED AS IN BARGER & PHILLIPS p433
C WARNING: THIS IS A FACTOR OF 3 GREATER THAN EHLQ'S ETA FUNCTION
C PARITY=+1 FOR SCALAR AND -1 FOR PSEUDOSCALAR
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWHIGT,RATIO,RAT2,EMH,FREAL,FIMAG,ETALOG,AIREAL,
& AIIMAG
INTEGER I,J,K,L
HWHIGT=0
IF (ABS(PARITY).NE.1) CALL HWWARN('HWHIGT',500)
AIREAL=0
AIIMAG=0
C---CONTRIBUTION FROM QUARK LOOPS
DO 100 I=1,NFLAV
RATIO=RMASS(I)/EMH
RAT2=RATIO**2
IF (RAT2.GT.0.25) THEN
FREAL=-2.*ASIN(0.5/RATIO)**2
FIMAG=0
ELSEIF (RAT2.LT.0.25) THEN
ETALOG=LOG( (0.5+SQRT(0.25-RAT2)) / (0.5-SQRT(0.25-RAT2)) )
FREAL=0.5 * (ETALOG**2 - PIFAC**2)
FIMAG=PIFAC * ETALOG
ELSE
FREAL=0.5 * ( - PIFAC**2)
FIMAG=0
ENDIF
IF (PARITY.EQ.1) THEN
AIREAL=AIREAL+3*RAT2*(2 + (4*RAT2-1)*FREAL)*ENHANC(I)
AIIMAG=AIIMAG+3*RAT2*( (4*RAT2-1)*FIMAG)*ENHANC(I)
ELSE
AIREAL=AIREAL-2*RAT2*(FREAL)*ENHANC(I)
AIIMAG=AIIMAG-2*RAT2*(FIMAG)*ENHANC(I)
ENDIF
100 CONTINUE
C---CONTRIBUTION FROM SQUARK LOOPS
DO 200 I=1,12
J=I/7
K=6*J+I
L=K
IF(K.GT.6)L=K-12
RATIO=RMASS(L)/EMH
RAT2=RATIO**2
IF (RAT2.GT.0.25) THEN
FREAL=-2.*ASIN(0.5/RATIO)**2
FIMAG=0
ELSEIF (RAT2.LT.0.25) THEN
ETALOG=LOG( (0.5+SQRT(0.25-RAT2)) / (0.5-SQRT(0.25-RAT2)) )
FREAL=0.5 * (ETALOG**2 - PIFAC**2)
FIMAG=PIFAC * ETALOG
ELSE
FREAL=0.5 * ( - PIFAC**2)
FIMAG=0
ENDIF
IF (PARITY.EQ.1) THEN
AIREAL=AIREAL-3*RAT2*(1 + 2*RAT2*FREAL)*SENHNC(K)
AIIMAG=AIIMAG-3*RAT2*( 2*RAT2*FIMAG)*SENHNC(K)
ENDIF
200 CONTINUE
C---FUNCTION RETURNS MOD-SQUARED OF SUM
HWHIGT=AIREAL**2 + AIIMAG**2
END
CDECK ID>, HWHIGV.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,4 (see below) for the processes of ther series
C...IPROC=2600,2700 as described in the HERWIG 6 documentation file.
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 8-APR-1999 by Stefano Moretti
C
SUBROUTINE HWHIGV
C-----------------------------------------------------------------------
C MSSM NEUTRAL HIGGS PRODUCTION IN ASSOCIATION WITH GAUGE BOSON
C--BRW fix 27/8/04: corrected off-shell gauge boson mass dependence
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,L,M,N
INTEGER IV,IDEC
INTEGER ID1,ID2
DOUBLE PRECISION CV,CA,BR
DOUBLE PRECISION BRHIGQ,EMH,EMHWT,EMV,RMV,GAMV,RMH
DOUBLE PRECISION X(4),XL(4),XU(4)
DOUBLE PRECISION CT,ST,CCT
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3)
DOUBLE PRECISION ECM_MAX,ECM,SHAT,S,TAU
DOUBLE PRECISION EMIN,PCM2,PCM,RCM2,RCM
DOUBLE PRECISION QQV(12,12),C4W,VQ(12),AQ(12)
DOUBLE PRECISION M2,M2L,M2T
DOUBLE PRECISION ALPHA,EMSC2
DOUBLE PRECISION HWRGEN,HWUAEM
DOUBLE PRECISION RNMIN,RNMAX,THETA_MIN,THETA_MAX
DOUBLE PRECISION EPS,HCS,RCS,FACT,DIST
DOUBLE PRECISION WEIGHT
DOUBLE PRECISION VSAVE,HSAVE,CFT,QR,QL
SAVE EMH,EMV,HCS,M2,M2L,M2T,FACT,QQV,S,CT
LOGICAL HWRLOG
EXTERNAL HWHIGM,HWRGEN,HWUAEM,HWH2VH,HWETWO,HWRLOG
PARAMETER (EPS=1.D-9)
IF(IMSSM.EQ.0)THEN
IF(IPRO.EQ.26)IV=0
IF(IPRO.EQ.27)IV=1
ELSE
IF((MOD(IPROC,10000).EQ.3310).OR.
& (MOD(IPROC,10000).EQ.3320))THEN
IV=0
ELSEIF((MOD(IPROC,10000).EQ.3360).OR.
& (MOD(IPROC,10000).EQ.3370))THEN
IV=1
END IF
END IF
IF(GENEV)THEN
RCS=HCS*HWRGEN(0)
ELSE
HCS=0.
EVWGT=0.
C...assign final state masses.
RMV=RMASS(198+2*IV)
RMH=RMASS(201+IHIGGS)
IF(IV.EQ.0)GAMV=GAMW
IF(IV.EQ.1)GAMV=GAMZ
EMH=RMH
EMHWT=1.D0
IF(IMSSM.EQ.0)CALL HWHIGM(EMH,EMHWT)
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...X(1)=COS(THETA_CM),
C...X(2)=(1./SHAT-1./ECM_MAX**2)/(1./(EMV+EMH)**2-1./ECM_MAX**2),
C...X(3)=(LOG(TAU)-LOG(X1))/LOG(TAU),
C...X(4)=(THETA-THETA_MIN)/(THETA_MAX-THETA_MIN),
C...where THETA=ATAN((EMV*EMV-RMV*RMV)/RMV/GAMV);
C...phase space borders.
XL(1)=-1.
XU(1)=1.
XL(2)=0.
XU(2)=1.
XL(3)=0.
XU(3)=1.
XL(4)=0.
XU(4)=1.
C...single phase space point.
WEIGHT=1.
DO I=1,4
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...resonant boson mass.
RNMIN=RMV-GAMMAX*GAMV
THETA_MIN=ATAN((RNMIN*RNMIN-RMV*RMV)/RMV/GAMV)
RNMAX=ECM_MAX-EMH
THETA_MAX=ATAN((RNMAX*RNMAX-RMV*RMV)/RMV/GAMV)
EMV=SQRT((TAN(X(4)*(THETA_MAX-THETA_MIN)+THETA_MIN))
& *RMV*GAMV+RMV*RMV)
C...energy at parton level.
ECM=SQRT(1./(X(2)*(1./(EMV+EMH)**2-1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1)=EXP(LOG(TAU)*(1.-X(3)))
XX(2)=TAU/XX(1)
C...two particle kinematics.
CT=X(1)
IF(HWRLOG(HALF))THEN
ST=+SQRT(1.-CT*CT)
ELSE
ST=-SQRT(1.-CT*CT)
END IF
C...single phase space point.
RCM2=((SHAT-EMV*EMV-EMH*EMH)**2
& -(2.*EMV*EMH)**2)/(4.*SHAT)
RCM=SQRT(RCM2)
P3(0)=SQRT(RCM2+EMV*EMV)
P3(1)=0.
P3(2)=RCM*ST
P3(3)=RCM*CT
P4(0)=SQRT(RCM2+EMH*EMH)
P4(1)=0.
P4(2)=-RCM*ST
P4(3)=-RCM*CT
C...incoming partons: massless.
EMIN=0.
C...initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN*EMIN)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN*EMIN)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...color structured ME summed/averaged over final/initial spins and colors.
CALL HWH2VH(P1,P2,P3,P4,EMV,M2,M2L,M2T)
IF(M2.LE.0.)RETURN
C...vector-axial couplings of V to qq'/qq.
IF(IV.EQ.0)THEN
DO I=2,12,2
K=I
IF(I.GT.6)K=I-6
M=K/2
N=0
DO J=1,11,2
L=J
IF(J.GT.6)L=J-6
N=L-N
c bug fix 20/05/01 SM.
QQV(I,J)=VCKM(M,N)
c end of bug fix.
QQV(J,I)=QQV(I,J)
IF(N.EQ.3)N=0
END DO
END DO
ELSE IF(IV.EQ.1)THEN
C4W=(1.-SWEIN)*(1.-SWEIN)
DO I=1,11,2
VQ(I)=2.*VFCH(1,1)*SQRT(SWEIN)*SQRT(1.-SWEIN)
AQ(I)=2.*AFCH(1,1)*SQRT(SWEIN)*SQRT(1.-SWEIN)
J=I+6
IF(J.GT.12)J=J-12
QQV(I,J)=(VQ(I)*VQ(I)+AQ(I)*AQ(I))/C4W
END DO
DO I=2,12,2
VQ(I)=2.*VFCH(2,1)*SQRT(SWEIN)*SQRT(1.-SWEIN)
AQ(I)=2.*AFCH(2,1)*SQRT(SWEIN)*SQRT(1.-SWEIN)
J=I+6
IF(J.GT.12)J=J-12
QQV(I,J)=(VQ(I)*VQ(I)+AQ(I)*AQ(I))/C4W
END DO
END IF
C...constant factors: phi along beam and conversion GeV^2->nb.
FACT=2.*PIFAC*GEV2NB
C...Jacobians from X1,X2 to X(2),X(3)
FACT=FACT/S*(-LOG(TAU))*(1./(EMV+EMH)**2-1./ECM_MAX**2)
C...phase space Jacobians, pi's and flux.
FACT=FACT/64./PIFAC/PIFAC*RCM/PCM
C...EW couplings.
EMSCA=RMV+RMH
EMSC2=EMSCA*EMSCA
ALPHA=HWUAEM(EMSC2)
C--BRW fix 27/8/04: RMV*RMV --> EMV*EMV
FACT=FACT*16.*PIFAC**2*ALPHA**2/SWEIN/SWEIN*EMV*EMV
C...enhancement factor for MSSM.
FACT=FACT*ENHANC(10+IV)*ENHANC(10+IV)
C...Higgs resonance.
FACT=FACT*EMHWT
C...vector boson resonance.
FACT=FACT*(THETA_MAX-THETA_MIN)/PIFAC
C...constant weight.
FACT=FACT*WEIGHT
C...include BR of Higgs.
IF(IMSSM.EQ.0)THEN
IDEC=MOD(IPROC,100)
IF (IDEC.GT.0.AND.IDEC.LE.12) FACT=FACT*BRHIG(IDEC)
IF (IDEC.EQ.0) THEN
BRHIGQ=0.D0
DO I=1,6
BRHIGQ=BRHIGQ+BRHIG(I)
END DO
FACT=FACT*BRHIGQ
ENDIF
c bug fix 11/10/02 SM.
IF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
FACT=FACT*BR
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
FACT=FACT*BR
ENDIF
c end of bug fix.
END IF
END IF
C...set up PDFs.
HCS=0.
CALL HWSGEN(.FALSE.)
DO I=1,12
IF(DISF(I,1).LT.EPS)THEN
GOTO 200
END IF
K=I/7
L=+1-2*K
IF(IV.EQ.0)THEN
J=I+L*6+(-1)**(I+1)
ELSE IF(IV.EQ.1)THEN
J=I+L*6
END IF
IF(DISF(J,2).LT.EPS)THEN
GOTO 200
END IF
DIST=DISF(I,1)*DISF(J,2)*S
C...QQV vector and axial couplings.
DIST=DIST*QQV(I,J)
C...no need to set up color connections.
HCS=HCS+M2*DIST*FACT
IF(GENEV.AND.HCS.GT.RCS)THEN
C...generate event.
IDN(1)=I
IDN(2)=J
IF(IV.EQ.0)
& IDN(3)=NINT(198.5-.1667*FLOAT(ICHRG(IDN(1))+ICHRG(IDN(2))))
IF(IV.EQ.1)IDN(3)=200
IDN(4)=201+IHIGGS
COSTH=CT
IDCMF=15
ICO(1)=2
ICO(2)=1
ICO(3)=3
ICO(4)=4
C...trick HWETWO in using off-shell V and H masses.
VSAVE=RMASS(IDN(3))
HSAVE=RMASS(IDN(4))
RMASS(IDN(3))=EMV
RMASS(IDN(4))=EMH
C-- BRW fix 27/8/04: avoid double smearing of W and H masses
CALL HWETWO(.FALSE.,.FALSE.)
RMASS(IDN(3))=VSAVE
RMASS(IDN(4))=HSAVE
IF(AZSPIN)THEN
C...set to zero the coefficients of the spin density matrices.
CALL HWVZRO(7,GCOEF)
END IF
C...calculates exactly polarized decay matrix of gauge boson.
IF(IERROR.NE.0)RETURN
CCT=CT
IF(I.GT.6)CCT=-CT
IF(M2L.LT.0.)M2L=0.
IF(M2T.LT.0.)M2T=0.
RHOHEP(2,NHEP-1)=M2L/M2
CFT=(M2-M2L)/(1.+CCT**2)/2.
IF(IV.EQ.0)THEN
RHOHEP(1,NHEP-1)=CFT*(1.+CCT)**2/M2
RHOHEP(3,NHEP-1)=CFT*(1.-CCT)**2/M2
ELSE IF(IV.EQ.1)THEN
QR=(VQ(I)-AQ(I))/2.
QL=(VQ(I)+AQ(I))/2.
RHOHEP(1,NHEP-1)=CFT*(QR**2*(1.-CCT)**2+QL**2*(1.+CCT)**2)
& /(QR**2+QL**2)/M2
RHOHEP(3,NHEP-1)=CFT*(QR**2*(1.+CCT)**2+QL**2*(1.-CCT)**2)
& /(QR**2+QL**2)/M2
END IF
RETURN
END IF
200 CONTINUE
END DO
EVWGT=HCS
END
CDECK ID>, HWHIGW.
*CMZ :- -26/04/91 14.55.44 by Federico Carminati
*-- Author : Mike Seymour, modified by Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWHIGW
C-----------------------------------------------------------------------
C HIGGS PRODUCTION VIA W/Z BOSON FUSION
C MEAN EVWGT = HIGGS PRODN C-S * BRANCHING FRACTION IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWULDO,HWRUNI,HWRGEN,HWUAEM,K1MAX2,K1MIN2,K12,
& K2MAX2,K2MIN2,K22,EMW2,EMW,ROOTS,EMH2,EMH,ROOTS2,P1,PHI1,PHI2,
& COSPHI,COSTH1,SINTH1,COSTH2,SINTH2,P2,WEIGHT,TAU,TAULN,CSFAC,
& PSUM,PROB,Q1(5),Q2(5),H(5),A,B,C,TERM2,BRHIGQ,G1WW,G2WW,G1ZZ(6),
& G2ZZ(6),AWW,AZZ(6),PWW,PZZ(6),EMZ,EMZ2,RSUM,GLUSQ,GRUSQ,GLDSQ,
& GRDSQ,GLESQ,GRESQ,CW,CZ,EMFAC,CV,CA,BR,X2,ETA,P1JAC,FACTR,EH2
INTEGER HWRINT,IDEC,I,ID1,ID2,IHAD
LOGICAL EE,EP
EXTERNAL HWULDO,HWRUNI,HWRGEN,HWUAEM,HWRINT
SAVE EMW2,EMZ2,EE,GLUSQ,GRUSQ,GLDSQ,GRDSQ,GLESQ,GRESQ,G1ZZ,G2ZZ,
& G1WW,G2WW,CW,CZ,PSUM,AWW,PWW,AZZ,PZZ,ROOTS,Q1,Q2,H,FACTR
EQUIVALENCE (EMW,RMASS(198)),(EMZ,RMASS(200))
IHAD=2
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
IF (FSTWGT) THEN
EMW2=EMW**2
EMZ2=EMZ**2
GLUSQ=(VFCH(2,1)+AFCH(2,1))**2
GRUSQ=(VFCH(2,1)-AFCH(2,1))**2
GLDSQ=(VFCH(1,1)+AFCH(1,1))**2
GRDSQ=(VFCH(1,1)-AFCH(1,1))**2
GLESQ=(VFCH(11,1)+AFCH(11,1))**2
GRESQ=(VFCH(11,1)-AFCH(11,1))**2
G1ZZ(1)=GLUSQ*GLUSQ+GRUSQ*GRUSQ
G2ZZ(1)=GLUSQ*GRUSQ+GRUSQ*GLUSQ
G1ZZ(2)=GLUSQ*GLDSQ+GRUSQ*GRDSQ
G2ZZ(2)=GLUSQ*GRDSQ+GRUSQ*GLDSQ
G1ZZ(3)=GLDSQ*GLDSQ+GRDSQ*GRDSQ
G2ZZ(3)=GLDSQ*GRDSQ+GRDSQ*GLDSQ
G1ZZ(4)=GLESQ*GLESQ+GRESQ*GRESQ
G2ZZ(4)=GLESQ*GRESQ+GRESQ*GLESQ
G1ZZ(5)=GLESQ*GLUSQ+GRESQ*GRUSQ
G2ZZ(5)=GLESQ*GRUSQ+GRESQ*GLUSQ
G1ZZ(6)=GLESQ*GLDSQ+GRESQ*GRDSQ
G2ZZ(6)=GLESQ*GRDSQ+GRESQ*GLDSQ
G1WW=0.25
G2WW=0
FACTR=GEV2NB/(128.*PIFAC**3)
EH2=RMASS(201+IHIGGS)**2
CW=256*(PIFAC*HWUAEM(EH2)/SWEIN)**3*EMW2
CZ=256.*(PIFAC*HWUAEM(EH2))**3*EMZ2/(SWEIN*(1.-SWEIN))
ENDIF
EE=IPRO.LE.12
EP=IPRO.GE.90
IF (.NOT.GENEV) THEN
C---CHOOSE PARAMETERS
EVWGT=0.
EMH=RMASS(201+IHIGGS)
EMFAC=ONE
IF(IMSSM.EQ.0)CALL HWHIGM(EMH,EMFAC)
IF (EMH.LE.ZERO .OR. EMH.GE.PHEP(5,3)) RETURN
EMSCA=EMH
IF (EE) THEN
ROOTS=PHEP(5,3)
ELSE
TAU=(EMH/PHEP(5,3))**2
TAULN=LOG(TAU)
ROOTS=PHEP(5,3)*SQRT(EXP(HWRUNI(0,-1D-10,TAULN)))
ENDIF
EMH2=EMH**2
ROOTS2=ROOTS**2
C---CHOOSE P1 ACCORDING TO (1-ETA)*(ETA-X2)/ETA**2
C WHERE ETA=1-2P1/ROOTS AND X2=EMH**2/S
X2=EMH2/ROOTS2
1 ETA=X2**HWRGEN(0)
IF (HWRGEN(0)*(1-EMH/ROOTS)**2*ETA.GT.(1-ETA)*(ETA-X2))GOTO 1
P1JAC=0.5*ROOTS*ETA**2/((1-ETA)*(ETA-X2))
& *(-LOG(X2)*(1+X2)-2*(1-X2))
P1=0.5*ROOTS*(1-ETA)
C---CHOOSE PHI1,2 UNIFORMLY
PHI1=2*PIFAC*HWRGEN(0)
PHI2=2*PIFAC*HWRGEN(0)
COSPHI=COS(PHI2-PHI1)
C---CHOOSE K1^2, ON PROPAGATOR FACTOR
K1MAX2=2*P1*ROOTS
K1MIN2=0
K12=EMW2-(EMW2+K1MAX2)*(EMW2+K1MIN2)/
& ((K1MAX2-K1MIN2)*HWRGEN(0)+(EMW2+K1MIN2))
C---CALCULATE COSTH1 FROM K1^2
COSTH1=1+K12/(P1*ROOTS)
SINTH1=SQRT(1-COSTH1**2)
C---CHOOSE K2^2
K2MAX2=ROOTS*(ROOTS2-EMH2-2*ROOTS*P1)*(ROOTS-P1-P1*COSTH1)
& /((ROOTS-P1)**2-(P1*COSTH1)**2-(P1*SINTH1*COSPHI)**2)
K2MIN2=0
K22=EMW2-(EMW2+K2MAX2)*(EMW2+K2MIN2)/
& ((K2MAX2-K2MIN2)*HWRGEN(0)+(EMW2+K2MIN2))
C---CALCULATE A,B,C FACTORS, AND...
A=-2*K22*P1*COSTH1 - ROOTS*(ROOTS2-EMH2-2*ROOTS*P1)
B=-2*K22*P1*SINTH1*COSPHI
C=+2*K22*P1 - 2*ROOTS*K22 - ROOTS*(ROOTS2-EMH2-2*ROOTS*P1)
C---SOLVE A*COSTH2 + B*SINTH2 + C = 0 FOR COSTH2
TERM2=B**2 + A**2 - C**2
IF (TERM2.LT.ZERO) RETURN
TERM2=B*SQRT(TERM2)
IF (A.GE.ZERO) RETURN
COSTH2=(-A*C + TERM2)/(A**2+B**2)
SINTH2=SQRT(1-COSTH2**2)
C---FINALLY, GET P2
IF (COSTH2.EQ.-ONE) RETURN
P2=-K22/(ROOTS*(1+COSTH2))
C---LOAD UP CMF MOMENTA
Q1(1)=P1*SINTH1*COS(PHI1)
Q1(2)=P1*SINTH1*SIN(PHI1)
Q1(3)=P1*COSTH1
Q1(4)=P1
Q1(5)=0
Q2(1)=P2*SINTH2*COS(PHI2)
Q2(2)=P2*SINTH2*SIN(PHI2)
Q2(3)=P2*COSTH2
Q2(4)=P2
Q2(5)=0
H(1)=-Q1(1)-Q2(1)
H(2)=-Q1(2)-Q2(2)
H(3)=-Q1(3)-Q2(3)
H(4)=-Q1(4)-Q2(4)+ROOTS
CALL HWUMAS(H)
C---CALCULATE MATRIX ELEMENTS SQUARED
AWW=ENHANC(10)**2 * CW*(ROOTS2/2*HWULDO(Q1,Q2)*G1WW
& +ROOTS2/4*P1*P2*(1+COSTH1)*(1-COSTH2)*G2WW)
DO 10 I=1,6
AZZ(I)=ENHANC(11)**2 * CZ*(ROOTS2/2*HWULDO(Q1,Q2)*G1ZZ(I)
& +ROOTS2/4*P1*P2*(1+COSTH1)*(1-COSTH2)*G2ZZ(I))
& *((K12-EMW2)/(K12-EMZ2)*(K22-EMW2)/(K22-EMZ2))**2
10 CONTINUE
C---CALCULATE WEIGHT IN INTEGRAL
WEIGHT=FACTR*P2*P1JAC/(ROOTS2**2*HWULDO(H,Q2))
& *(K1MAX2-K1MIN2)/((K1MAX2+EMW2)*(K1MIN2+EMW2))
& *(K2MAX2-K2MIN2)/((K2MAX2+EMW2)*(K2MIN2+EMW2))
& * EMFAC
EMSCA=EMW
XXMIN=(ROOTS/PHEP(5,3))**2
XLMIN=LOG(XXMIN)
C---INCLUDE BRANCHING RATIO OF HIGGS
IF(IMSSM.EQ.0)THEN
IDEC=MOD(IPROC,100)
IF (IDEC.GT.0.AND.IDEC.LE.12) WEIGHT=WEIGHT*BRHIG(IDEC)
IF (IDEC.EQ.0) THEN
BRHIGQ=0
DO 20 I=1,6
20 BRHIGQ=BRHIGQ+BRHIG(I)
WEIGHT=WEIGHT*BRHIGQ
ENDIF
IF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
WEIGHT=WEIGHT*BR
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
WEIGHT=WEIGHT*BR
ENDIF
END IF
IF (EE) THEN
CSFAC=WEIGHT
PSUM=AWW+AZZ(4)
EVWGT=CSFAC*PSUM
ELSEIF (EP) THEN
CSFAC=-WEIGHT*TAULN
XX(1)=ONE
XX(2)=XXMIN
CALL HWSFUN(XX(2),EMSCA,IDHW(IHAD),NSTRU,DISF(1,2),2)
IF (IDHW(1).LE.126) THEN
PWW=(DISF(2,2)+DISF(4,2)+DISF(7,2)+DISF( 9,2))*AWW
ELSE
PWW=(DISF(1,2)+DISF(3,2)+DISF(8,2)+DISF(10,2))*AWW
ENDIF
PZZ(5)=(DISF(2,2)+DISF(4,2)+DISF(8,2)+DISF(10,2))*AZZ(5)
PZZ(6)=(DISF(1,2)+DISF(3,2)+DISF(7,2)+DISF( 9,2))*AZZ(6)
PSUM=PWW+PZZ(5)+PZZ(6)
EVWGT=CSFAC*PSUM
ELSE
CSFAC=WEIGHT*TAULN*XLMIN
CALL HWSGEN(.TRUE.)
PWW=((DISF(2,1)+DISF(4, 1)+DISF(7,1)+DISF(9,1))
& *(DISF(8,2)+DISF(10,2)+DISF(1,2)+DISF(3,2))
& +(DISF(8,1)+DISF(10,1)+DISF(1,1)+DISF(3,1))
& *(DISF(2,2)+DISF(4, 2)+DISF(7,2)+DISF(9,2)))
& *AWW
PZZ(1)=((DISF(2,1)+DISF(4,1)+DISF(8,1)+DISF(10,1))
& *(DISF(2,2)+DISF(4,2)+DISF(8,2)+DISF(10,2)))
& *AZZ(1)
PZZ(2)=((DISF(2,1)+DISF(4,1)+DISF(8,1)+DISF(10,1))
& *(DISF(1,2)+DISF(3,2)+DISF(7,2)+DISF(9, 2))
& +(DISF(1,1)+DISF(3,1)+DISF(7,1)+DISF(9, 1))
& *(DISF(2,2)+DISF(4,2)+DISF(8,2)+DISF(10,2)))
& *AZZ(2)
PZZ(3)=((DISF(1,1)+DISF(3,1)+DISF(7,1)+DISF(9,1))
& *(DISF(1,2)+DISF(3,2)+DISF(7,2)+DISF(9,2)))
& *AZZ(3)
PSUM=PWW+PZZ(1)+PZZ(2)+PZZ(3)
C---EVENT WEIGHT IS SUM OVER ALL COMBINATIONS
EVWGT=CSFAC*PSUM
ENDIF
ELSE
C---GENERATE EVENT
C---CHOOSE EVENT TYPE
RSUM=PSUM*HWRGEN(0)
C---ELECTRON BEAMS?
IF (EE) THEN
IDN(1)=IDHW(1)
IDN(2)=IDHW(2)
C---WW FUSION?
IF (RSUM.LT.AWW) THEN
IDN(3)=IDN(1)+1
IDN(4)=IDN(2)+1
C---ZZ FUSION?
ELSE
IDN(3)=IDN(1)
IDN(4)=IDN(2)
ENDIF
C---LEPTON-HADRON COLLISION?
ELSEIF (EP) THEN
C---WW FUSION?
IDN(1)=IDHW(1)
IF (RSUM.LT.PWW) THEN
24 IDN(2)=HWRINT(1,8)
IF (IDN(2).GE.5) IDN(2)=IDN(2)+2
IF (ICHRG(IDN(1))*ICHRG(IDN(2)).GT.0) GOTO 24
PROB=DISF(IDN(2),2)*AWW/PWW
IF (HWRGEN(0).GT.PROB) GOTO 24
IDN(3)=IDN(1)+1
IF (HWRGEN(0).GT.SCABI) THEN
IDN(4)= 4*INT((IDN(2)-1)/2)-IDN(2)+3
ELSE
IDN(4)=12*INT((IDN(2)-1)/6)-IDN(2)+5
ENDIF
C---ZZ FUSION FROM U-TYPE QUARK?
ELSEIF (RSUM.LT.PWW+PZZ(5)) THEN
26 IDN(2)=2*HWRINT(1,4)
IF (IDN(2).GE.5) IDN(2)=IDN(2)+2
PROB=DISF(IDN(2),2)*AZZ(5)/PZZ(5)
IF (HWRGEN(0).GT.PROB) GOTO 26
IDN(3)=IDN(1)
IDN(4)=IDN(2)
C---ZZ FUSION FROM D-TYPE QUARK?
ELSE
28 IDN(2)=2*HWRINT(1,4)-1
IF (IDN(2).GE.5) IDN(2)=IDN(2)+2
PROB=DISF(IDN(2),2)*AZZ(6)/PZZ(6)
IF (HWRGEN(0).GT.PROB) GOTO 28
IDN(3)=IDN(1)
IDN(4)=IDN(2)
ENDIF
C---HADRON BEAMS?
ELSE
C---WW FUSION?
IF (RSUM.LT.PWW) THEN
31 DO 32 I=1,2
IDN(I)=HWRINT(1,8)
IF (IDN(I).GE.5) IDN(I)=IDN(I)+2
32 CONTINUE
IF (ICHRG(IDN(1))*ICHRG(IDN(2)).GT.0) GOTO 31
PROB=DISF(IDN(1),1)*DISF(IDN(2),2)*AWW/PWW
IF (HWRGEN(0).GT.PROB) GOTO 31
C---CHOOSE OUTGOING QUARKS
DO 33 I=1,2
IF (HWRGEN(0).GT.SCABI) THEN
IDN(I+2)=4*INT((IDN(I)-1)/2)-IDN(I)+3
ELSE
IDN(I+2)=12*INT((IDN(I)-1)/6)-IDN(I)+5
ENDIF
33 CONTINUE
C---ZZ FUSION FROM U-TYPE QUARKS?
ELSEIF (RSUM.LT.PWW+PZZ(1)) THEN
41 DO 42 I=1,2
IDN(I)=2*HWRINT(1,4)
IF (IDN(I).GE.5) IDN(I)=IDN(I)+2
42 CONTINUE
PROB=DISF(IDN(1),1)*DISF(IDN(2),2)*AZZ(1)/PZZ(1)
IF (HWRGEN(0).GT.PROB) GOTO 41
IDN(3)=IDN(1)
IDN(4)=IDN(2)
C---ZZ FUSION FROM D-TYPE QUARKS?
ELSEIF (RSUM.LT.PWW+PZZ(1)+PZZ(3)) THEN
51 DO 52 I=1,2
IDN(I)=2*HWRINT(1,4)-1
IF (IDN(I).GE.5) IDN(I)=IDN(I)+2
52 CONTINUE
PROB=DISF(IDN(1),1)*DISF(IDN(2),2)*AZZ(3)/PZZ(3)
IF (HWRGEN(0).GT.PROB) GOTO 51
IDN(3)=IDN(1)
IDN(4)=IDN(2)
C---ZZ FUSION FROM UD-TYPE PAIRS?
ELSE
61 IF (HWRGEN(0).GT.HALF) THEN
IDN(1)=2*HWRINT(1,4)-1
IDN(2)=2*HWRINT(1,4)
ELSE
IDN(1)=2*HWRINT(1,4)
IDN(2)=2*HWRINT(1,4)-1
ENDIF
DO 62 I=1,2
62 IF (IDN(I).GE.5) IDN(I)=IDN(I)+2
PROB=DISF(IDN(1),1)*DISF(IDN(2),2)*AZZ(2)/PZZ(2)
IF (HWRGEN(0).GT.PROB) GOTO 61
IDN(3)=IDN(1)
IDN(4)=IDN(2)
ENDIF
ENDIF
C---NOW BOOST TO LAB, AND SET UP STATUS CODES etc
IDCMF=15
C---INCOMING
IF (.NOT.EE) CALL HWEONE
C---CMF POINTERS
JDAHEP(1,NHEP)=NHEP+1
JDAHEP(2,NHEP)=NHEP+3
JMOHEP(1,NHEP+1)=NHEP
JMOHEP(1,NHEP+2)=NHEP
JMOHEP(1,NHEP+3)=NHEP
C---OUTGOING MOMENTA (GIVE QUARKS MASS NON-COVARIANTLY!)
Q1(5)=RMASS(IDN(1))
Q1(4)=SQRT(Q1(4)**2+Q1(5)**2)
Q2(5)=RMASS(IDN(2))
Q2(4)=SQRT(Q2(4)**2+Q2(5)**2)
H(4)=-Q1(4)-Q2(4)+PHEP(5,NHEP)
CALL HWUMAS(H)
CALL HWULOB(PHEP(1,NHEP),Q1,PHEP(1,NHEP+1))
CALL HWULOB(PHEP(1,NHEP),Q2,PHEP(1,NHEP+2))
CALL HWULOB(PHEP(1,NHEP),H,PHEP(1,NHEP+3))
C---STATUS AND IDs
ISTHEP(NHEP+1)=113
ISTHEP(NHEP+2)=114
ISTHEP(NHEP+3)=114
IDHW(NHEP+1)=IDN(3)
IDHEP(NHEP+1)=IDPDG(IDN(3))
IDHW(NHEP+2)=IDN(4)
IDHEP(NHEP+2)=IDPDG(IDN(4))
IDHW(NHEP+3)=201+IHIGGS
IDHEP(NHEP+3)=IDPDG(201+IHIGGS)
C---COLOUR LABELS
JMOHEP(2,NHEP+1)=NHEP-2
JMOHEP(2,NHEP+2)=NHEP-1
JMOHEP(2,NHEP-1)=NHEP+2
JMOHEP(2,NHEP-2)=NHEP+1
JMOHEP(2,NHEP+3)=NHEP+3
JDAHEP(2,NHEP+1)=NHEP-2
JDAHEP(2,NHEP+2)=NHEP-1
JDAHEP(2,NHEP-1)=NHEP+2
JDAHEP(2,NHEP-2)=NHEP+1
JDAHEP(2,NHEP+3)=NHEP+3
NHEP=NHEP+3
ENDIF
END
CDECK ID>, HWHIGY.
*CMZ :- -26/04/91 13.37.37 by Federico Carminati
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWHIGY(A,B,XP)
C-----------------------------------------------------------------------
C CALCULATE THE INTEGRAL OF BERENDS AND KLEISS APPENDIX B
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX XQ,Z1,Z2,Z3,Z4,C0,C1,C2,C3,C4,C5,C6,C7,C8,FUN,Z
DOUBLE PRECISION HWHIGY,TWO,A,B,XP,Y
PARAMETER (TWO=2.D0)
C---DECLARE ALL THE STATEMENT-FUNCTION DEFINITIONS
C0(Z,A)=(Z**2-A)**2*((Z**2+A)**2-24*Z*(Z**2+A)+8*Z**2*(A+6))/Z**4
C1(Z,A)=A**4/(3*Z)
C2(Z,A)=-A**3*(24*Z-A)/(2*Z**2)
C3(Z,A)=A**2*(8*Z**2*(A+6)-24*A*Z+A**2)/Z**3
C4(Z,A)=-A**2*(24*Z**3+8*Z**2*(A+6)-24*A*Z+A**2)/Z**4
C5(Z,A)=Z**3-24*Z**2+8*Z*(A+6)+24*A
C6(Z,A)=0.5*Z**2-12*Z+4*(A+6)
C7(Z,A)=Z/3-8
C8(Z,A)=0.25
FUN(Z,Y,A)=C0(Z,A)*LOG(Y-Z)
& +C1(Z,A)/Y**3
& +C2(Z,A)/Y**2
& +C3(Z,A)/Y
& +C4(Z,A)*LOG(Y)
& +C5(Z,A)*Y
& +C6(Z,A)*Y**2
& +C7(Z,A)*Y**3
& +C8(Z,A)*Y**4
C---NOW EVALUATE THE INTEGRAL
HWHIGY=0
IF (A.GT.4) RETURN
XQ=DCMPLX(XP,B)
Z1=XQ+SQRT(XQ**2-A)
Z2=XQ-SQRT(XQ**2-A)
Z3=FUN(Z1,TWO,A)-FUN(Z1,SQRT(A),A)
Z4=FUN(Z2,TWO,A)-FUN(Z2,SQRT(A),A)
HWHIGY=DIMAG((Z3-Z4)/(Z1-Z2))/(8*B)
END
CDECK ID>, HWHIGZ.
*CMZ :- -02/05/91 11.18.44 by Federico Carminati
*-- Author : Mike Seymour, modified by Stefano Moretti
C-----------------------------------------------------------------------
SUBROUTINE HWHIGZ
C-----------------------------------------------------------------------
C HIGGS PRODUCTION VIA THE BJORKEN PROCESS: E+E- --> Z(*) --> Z(*)H
C WHERE ONE OR BOTH OF THE Zs IS OFF-SHELL
C USES ALGORITHM OF BERENDS AND KLEISS: NUCL.PHYS. B260(1985)32
C
C MEAN EVWGT = CROSS-SECTION (IN NB) * HIGGS BRANCHING FRACTION
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUAEM,HWHIGY,HWRUNI,HWRGEN,HWULDO,EMZ,CVE,CAE,
& POL1,POL2,CE1,CE2,CE3,PMAX,EMZ2,S,B,FACTR,EMH,EMFAC,EMH2,A,XP,
& CV,CA,BRHIGQ,BR,X1,X2,FAC1,FAC2,XPP,XPPSQ,COEF,X,XSQ,PROB,C1,C2,
& CHIGG,PTHETA,SHIGG,C3,PHIMAX,CPHI,SPHI,C2PHI,S2PHI,PCM,ELST
INTEGER IDEC,I,NLOOP,ICMF,IHIG,IZED,IFER,IANT,ID1,ID2,IN1,IN2
EXTERNAL HWUAEM,HWHIGY,HWRUNI,HWRGEN,HWULDO
SAVE CVE,CAE,CE1,CE2,CE3,PMAX,EMZ2,S,EMH,B,FACTR,A,EMH2
EQUIVALENCE (EMZ,RMASS(200))
SAVE ELST
DATA ELST/0/
C---SET UP CONSTANTS
IN1=1
IF (JDAHEP(1,IN1).NE.0) IN1=JDAHEP(1,IN1)
IN2=2
IF (JDAHEP(1,IN2).NE.0) IN2=JDAHEP(1,IN2)
IF (FSTWGT.OR.ELST.NE.PHEP(5,3)) THEN
ELST=PHEP(5,3)
CVE=VFCH(11,1)
CAE=AFCH(11,1)
POL1=1.-EPOLN(3)*PPOLN(3)
POL2=EPOLN(3)-PPOLN(3)
CE1=(POL1*(CVE**2+CAE**2)+POL2*2.*CVE*CAE)
CE2=(POL1*2.*CVE*CAE+POL2*(CVE**2+CAE**2))
IF ((IDHW(IN1).GT.IDHW(IN2).AND.PHEP(3,IN1).LT.ZERO).OR.
& (IDHW(IN2).GT.IDHW(IN1).AND.PHEP(3,IN2).LT.ZERO)) CE2=-CE2
IF (TPOL) CE3=(CVE**2-CAE**2)
PMAX=4
EMZ2=EMZ**2
S=PHEP(5,3)**2
B=EMZ*GAMZ/S
FACTR=GEV2NB*CE1*(HWUAEM(RMASS(201+IHIGGS)**2)*ENHANC(11))**2
& /(12.*S*SWEIN*(1.-SWEIN))*B/((1-EMZ2/S)**2+B**2)
ENDIF
IF (.NOT.GENEV) THEN
C---CHOOSE HIGGS MASS, AND CALCULATE EVENT WEIGHT
EVWGT=0D0
EMH=RMASS(201+IHIGGS)
EMFAC=ONE
IF(IMSSM.EQ.0)CALL HWHIGM(EMH,EMFAC)
IF (EMH.LE.ZERO .OR. EMH.GT.PHEP(5,3)) RETURN
EMSCA=EMH
EMH2=EMH**2
A=4*EMH2/S
XP=1+(EMH2-EMZ2)/S
EVWGT=FACTR*HWHIGY(A,B,XP)*EMFAC
C---INCLUDE BRANCHING RATIO OF HIGGS
IF(IMSSM.EQ.0)THEN
IDEC=MOD(IPROC,100)
IF (IDEC.GT.0.AND.IDEC.LE.12) EVWGT=EVWGT*BRHIG(IDEC)
IF (IDEC.EQ.0) THEN
BRHIGQ=0
DO 10 I=1,6
10 BRHIGQ=BRHIGQ+BRHIG(I)
EVWGT=EVWGT*BRHIGQ
ENDIF
C Add Z branching fractions
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,0)
EVWGT=EVWGT*BR
IF (IDEC.EQ.10) THEN
CALL HWDBOZ(198,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(199,ID1,ID2,CV,CA,BR,1)
EVWGT=EVWGT*BR
ELSEIF (IDEC.EQ.11) THEN
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
CALL HWDBOZ(200,ID1,ID2,CV,CA,BR,1)
EVWGT=EVWGT*BR
ENDIF
END IF
ELSE
C---GENERATE EVENT
ICMF=NHEP+1
IHIG=NHEP+2
IZED=NHEP+3
IFER=NHEP+4
IANT=NHEP+5
CALL HWVEQU(5,PHEP(1,3),PHEP(1,ICMF))
NHEP=NHEP+5
C---CHOOSE ENERGY FRACTION OF HIGGS
X1=SQRT(A)
X2=1+0.25*A
XP=1+(EMH2-EMZ2)/S
FAC1=ATAN((X1-XP)/B)
FAC2=ATAN((X2-XP)/B)
XPP=MIN(X2,MAX(X1+B,XP))
XPPSQ=XPP**2
NLOOP=0
COEF=1./((12+2*A-12*XPP+XPPSQ)*SQRT(XPPSQ-A))
20 NLOOP=NLOOP+1
IF (NLOOP.GT.NBTRY) THEN
CALL HWWARN('HWHIGZ',101)
GOTO 999
ENDIF
X=XP+B*TAN(HWRUNI(1,FAC1,FAC2))
XSQ=X**2
PROB=COEF*((12+2*A-12*X+XSQ)*SQRT(XSQ-A))
IF (PROB.GT.PMAX) THEN
PMAX=1.1*PROB
CALL HWWARN('HWHIGZ',1)
WRITE (6,21) PMAX
21 FORMAT(7X,'NEW HWHIGZ MAX WEIGHT =',F8.4)
ENDIF
IF (PROB.LT.PMAX*HWRGEN(0)) GOTO 20
C Choose Z decay mode
CALL HWDBOZ(200,IDHW(IFER),IDHW(IANT),CV,CA,BR,0)
C1=CE1*(CV**2+CA**2)
C2=CE2*2.*CV*CA
C---CHOOSE HIGGS DIRECTION
C First polar angle
NLOOP=0
COEF=(XSQ-A)/(8.*(1.-X)+XSQ+A)
30 NLOOP=NLOOP+1
IF (NLOOP.GT.NBTRY) THEN
CALL HWWARN('HWHIGZ',102)
GOTO 999
ENDIF
CHIGG=HWRUNI(2,-ONE, ONE)
PTHETA=1-COEF*CHIGG**2
IF (PTHETA.LT.HWRGEN(1)) GOTO 30
SHIGG=SQRT(1-CHIGG**2)
C Now azimuthal angle
IF (TPOL) THEN
C3=CE3*(CV*2+CA**2)
COEF=COEF*SHIGG**2*C3/C1
PHIMAX=PTHETA+ABS(COEF)
40 CALL HWRAZM(ONE,CPHI,SPHI)
C2PHI=2.*CPHI**2-1.
S2PHI=2.*CPHI*SPHI
PROB=PTHETA-COEF*(C2PHI*COSS+S2PHI*SINS)
IF (PROB.LT.HWRGEN(1)*PHIMAX) GOTO 40
ELSE
CALL HWRAZM(ONE,CPHI,SPHI)
ENDIF
C Construct Higgs and Z momenta
PHEP(5,IHIG)=EMH
PHEP(4,IHIG)=X*PHEP(5,ICMF)/2
PCM=SQRT(PHEP(4,IHIG)**2-EMH2)
PHEP(3,IHIG)=CHIGG*PCM
PHEP(1,IHIG)=SHIGG*PCM*CPHI
PHEP(2,IHIG)=SHIGG*PCM*SPHI
CALL HWVDIF(4,PHEP(1,ICMF),PHEP(1,IHIG),PHEP(1,IZED))
CALL HWUMAS(PHEP(1,IZED))
C Choose orientation of Z decay
NLOOP=0
COEF=2.*(C1+ABS(C2))*HWULDO(PHEP(1,IN1),PHEP(1,IZED))
& *HWULDO(PHEP(1,IN2),PHEP(1,IZED))/S
IF (TPOL) COEF=COEF*(C1+ABS(C2)+ABS(C3))/(C1+ABS(C2))
PCM=PHEP(5,IZED)/2
PHEP(5,IFER)=0
PHEP(5,IANT)=0
50 NLOOP=NLOOP+1
IF (NLOOP.GT.NBTRY) THEN
CALL HWWARN('HWHIGZ',103)
GOTO 999
ENDIF
CALL HWDTWO(PHEP(1,IZED),PHEP(1,IFER),PHEP(1,IANT),
& PCM,TWO,.TRUE.)
PROB=C1*(PHEP(4,IFER)*PHEP(4,IANT)-PHEP(3,IFER)*PHEP(3,IANT))
& +C2*(PHEP(4,IFER)*PHEP(3,IANT)-PHEP(3,IFER)*PHEP(4,IANT))
IF (TPOL) PROB=PROB+C3*
& (COSS*(PHEP(1,IFER)*PHEP(1,IANT)-PHEP(2,IFER)*PHEP(2,IANT))
& +SINS*(PHEP(1,IFER)*PHEP(2,IANT)+PHEP(2,IFER)*PHEP(1,IANT)))
IF (PROB.LT.HWRGEN(2)*COEF) GOTO 50
C---SET UP STATUS CODES,
ISTHEP(ICMF)=120
ISTHEP(IHIG)=190
ISTHEP(IZED)=195
ISTHEP(IFER)=113
ISTHEP(IANT)=114
C---COLOR CONNECTIONS,
JMOHEP(1,ICMF)=1
JMOHEP(2,ICMF)=2
JDAHEP(1,ICMF)=IHIG
JDAHEP(2,ICMF)=IZED
JMOHEP(1,IHIG)=ICMF
JMOHEP(1,IZED)=ICMF
JMOHEP(1,IFER)=IZED
JMOHEP(1,IANT)=IZED
JMOHEP(2,IFER)=IANT
JMOHEP(2,IANT)=IFER
JDAHEP(1,IZED)=IFER
JDAHEP(2,IZED)=IANT
JDAHEP(2,IFER)=IANT
JDAHEP(2,IANT)=IFER
C---IDENTITY CODES
IDHW(ICMF)=200
IDHW(IHIG)=201+IHIGGS
IDHW(IZED)=200
IDHEP(ICMF)=IDPDG(IDHW(ICMF))
IDHEP(IHIG)=IDPDG(IDHW(IHIG))
IDHEP(IZED)=IDPDG(IDHW(IZED))
IDHEP(IFER)=IDPDG(IDHW(IFER))
IDHEP(IANT)=IDPDG(IDHW(IANT))
ENDIF
999 RETURN
END
CDECK ID>, HWHIHH.
*CMZ :- -25/11/01 17.11.33 by Stefano Moretti
*-- Author : Kosuke Odagiri, modified by Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variable
C...X(I) with I=1 (see below) for the processes IPROC=955,965,975 as
C...described in the HERWIG 6 documentation file.
C
C...First release: 12-NOV-2001 by Stefano Moretti
C
C-----------------------------------------------------------------------
SUBROUTINE HWHIHH
C-----------------------------------------------------------------------
C PRODUCTION OF MSSM HIGGS PAIRS IN L+L- (L=E,MU)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN, HWUAEM, HCS, RCS, S, PF, QPE,
& FACTR, SN2TH, MZ, MNN(2), MCC, EMSC2, GZ2,
& GHH(4), XWEIN, S2W, X(1), XL(1),
& XU(1), WEIGHT, ECM, RMH1, RMH2, EMH1, EMH2,
& EMHWT1, EMHWT2, EMHHWT, SHAT
INTEGER I, ID1, ID2, IH1, IH2, IH, JH
EXTERNAL HWRGEN, HWUAEM
SAVE HCS,MNN,MCC,EMHHWT,S,SHAT
DOUBLE COMPLEX Z, GZ, A, D, E
PARAMETER (Z = (0.D0,1.D0))
EQUIVALENCE (MZ, RMASS(200))
C...process event.
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
HCS = ZERO
EVWGT = ZERO
C...energy at parton level.
ECM = PBEAM1+PBEAM2
S = ECM*ECM
SHAT = S
C...phase space variables.
C...X(1)=COS(THETA_CM),
C...phase space borders.
XL(1)= -1.
XU(1)= 1.
C...single phase space point.
WEIGHT=1.
DO I=1,1
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...final state masses.
IF((MOD(IPROC,10000).EQ.965).OR.
& (MOD(IPROC,10000).EQ.975))THEN
JH = IHIGGS-1
ID1 = 205
ID2 = 202 + JH
ELSE IF(MOD(IPROC,10000).EQ.955)THEN
JH = 4
ID1 = 206
ID2 = 207
END IF
RMH1=RMASS(ID1)
RMH2=RMASS(ID2)
EMH1=RMH1
EMH2=RMH2
EMHWT1=1.
EMHWT2=1.
EMHHWT=EMHWT1*EMHWT2
C...polar angle.
COSTH = X(1)
SN2TH = 0.25D0 - 0.25D0*COSTH**2
EMSCA = EMH1+EMH2
EMSC2 = EMSCA*EMSCA
EVWGT = ZERO
FACTR = GEV2NB*PIFAC*(HWUAEM(EMSC2))**2/SHAT*SN2TH/2.
C...constant weight.
FACTR = FACTR*WEIGHT
C...couplings and propagators.
XWEIN = TWO*SWEIN
S2W = DSQRT(XWEIN*(TWO-XWEIN))
GZ = S2W*(SHAT-MZ**2+Z*SHAT*GAMZ/MZ)/SHAT
GZ2 = DREAL(DCONJG(GZ)*GZ)
C...labels: 1 = h0, 2 = H0, 3 = A0, 4 = H+, 5 = H-.
GHH(1)= COSBMA
GHH(2)= SINBMA
GHH(3)= ONE
GHH(4)= ONE-XWEIN
C...set to zero all MEs.
DO I=1,2
MNN(I)=ZERO
END DO
MCC=ZERO
C...start subprocesses.
IF((MOD(IPROC,10000).EQ.965).OR.
& (MOD(IPROC,10000).EQ.975))THEN
c
c - + o o o
c l l -> A h / H
c
DO IH = JH,JH
QPE = SHAT-(EMH1+EMH2)**2
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(SHAT-(EMH1-EMH2)**2))/SHAT
MNN(IH) =
& FACTR*PF**3*GHH(IH)**2*(LFCH(11)**2+RFCH(11)**2)/GZ2
ELSE
CONTINUE
END IF
END DO
ELSE IF(MOD(IPROC,10000).EQ.955)THEN
c
c - + + -
c l l -> H H
c
IH = JH
QPE = SHAT-(EMH1+EMH2)**2
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(SHAT-(EMH1-EMH2)**2))/SHAT
A = GHH(IH)/GZ
D = QFCH(11)+A*LFCH(11)
E = QFCH(11)+A*RFCH(11)
MCC=FACTR*PF**3*DREAL(DCONJG(D)*D+DCONJG(E)*E)
ELSE
CONTINUE
END IF
END IF
END IF
HCS = ZERO
IF(MOD(IPROC,10000).EQ.965)THEN
IH1 = 205
IH2 = 203
HCS = HCS + EMHHWT*MNN(1)
ELSE IF(MOD(IPROC,10000).EQ.975)THEN
IH1 = 205
IH2 = 204
HCS = HCS + EMHHWT*MNN(2)
ELSE IF(MOD(IPROC,10000).EQ.955)THEN
IH1 = 206
IH2 = 207
HCS = HCS + EMHHWT*MCC
END IF
IF (GENEV.AND.HCS.GT.RCS) THEN
C...generate event.
IDN(1)=IDHW(1)
IDN(2)=IDHW(2)
IDN(3)=IH1
IDN(4)=IH2
IDCMF=15
XX(1) = ONE
XX(2) = ONE
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
CALL HWVZRO(7,GCOEF)
END IF
END IF
EVWGT = HCS
END
CDECK ID>, HWHISQ.
*CMZ :- -30/06/01 18.41.23 by Stefano Moretti
*-- Author : Stefano Moretti
C-----------------------------------------------------------------------
C...Generate completely differential cross section (EVWGT) in the variables
C...X(I) with I=1,6 (see below) for the processes from IPROC=3110
C...to IPROC=3298, as described in the HERWIG 6 documentation file.
C...It includes interface to PDFs and takes into account color connections
C...among partons.
C
C...First release: 08-APR-2000 by Stefano Moretti
C...Last modified: 29-JUN-2001 by Stefano Moretti
C
C-----------------------------------------------------------------------
SUBROUTINE HWHISQ
C-----------------------------------------------------------------------
C PRODUCTION OF MSSM HIGGSES IN ASSOCIATION WITH B,T-SQUARK PAIRS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/SQSQH/JHIGGS,ILBL,JH,IF1MIN,IF1MAX,IF2MIN,IF2MAX
INTEGER JHIGGS,ILBL,JH,IF1MIN,IF1MAX,IF2MIN,IF2MAX
INTEGER I,J,K,L,M,N
INTEGER IQMIN,IQMAX,IGG,IQQ,JPP
INTEGER NC,FLIP
INTEGER IF1,IF2
INTEGER JHH,IMIX1,IMIX2
INTEGER JSQ,JSQ1,JSQ2
INTEGER IME,JME
DOUBLE PRECISION EMSQ1,EMSQ2,GAMSQ1,GAMSQ2,EMSQQ,EMH,EMHWT
DOUBLE PRECISION GSQ1,GSQ2
DOUBLE PRECISION X(6),XL(6),XU(6)
DOUBLE PRECISION Q4(0:3),Q34(0:3)
DOUBLE PRECISION CT5,ST5,CT4,ST4,CF4,SF4,RQ52,RQ5,RQ42,RQ4,PQ4
DOUBLE PRECISION P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
DOUBLE PRECISION ECM_MAX,ECM,SHAT,S,TAU
DOUBLE PRECISION EMIN,EMIN1,EMIN2,PCM2,PCM
DOUBLE PRECISION GGSQHT,GGSQHU,GGSQHN,QQSQH
DOUBLE PRECISION M2GG(8),M2GGPL(8),M2GGMN(8),M2QQ(8)
DOUBLE PRECISION ALPHA,ALPHAS,EMSC2
DOUBLE PRECISION HWRGEN,HWUAEM,HWUALF
DOUBLE PRECISION PHI,CPHI,SPHI,ROT(3,3)
DOUBLE PRECISION VCOL,GCOL,QAUX(0:3)
DOUBLE PRECISION EPS,HCS,RCS,GACT,FACT(8),DIST
DOUBLE PRECISION WEIGHT
SAVE HCS,M2QQ,M2GG,M2GGPL,M2GGMN,FACT,S,SHAT,P3,P4,P5
SAVE IME,JSQ1,JSQ2
LOGICAL HWRLOG
EXTERNAL HWRGEN,HWUAEM,HWUALF,HWHQCP,HWH2SH,HWETWO,HWRLOG
PARAMETER (EPS=1.D-9)
EQUIVALENCE (NC,NCOLO)
C...process the event.
IF(GENEV)THEN
RCS=HCS*HWRGEN(0)
ELSE
HCS=0.
EVWGT=0.
C...loop over final state flavours.
IME=0
DO I=1,8
M2GG(I)=0.
M2GGPL(I)=0.
M2GGMN(I)=0.
M2QQ(I)=0.
FACT(I)=0.
END DO
DO 2 IF1=IF1MIN,IF1MAX
IF((IF1.GE.407).AND.(IF1.LE.416))GOTO 2
DO 1 IF2=IF2MIN,IF2MAX
IF((IF2.GE.413).AND.(IF2.LE.422))GOTO 1
C...assign squark flavour.
JSQ1=IF1
JSQ2=IF2
C...check charge.
IF((ICHRG(JSQ1)+ICHRG(JSQ2))/3.NE.-ICHRG(201+JHIGGS+1))GOTO 1
IME=IME+1
IF((IME.LE.0).OR.(IME.GT.8)) THEN
CALL HWWARN('HWHISQ',100)
GOTO 999
ENDIF
C...assign final state masses and widths.
EMSQ1=RMASS(JSQ1)
EMSQ2=RMASS(JSQ2)
GAMSQ1=HBAR/RLTIM(JSQ1)
GAMSQ2=HBAR/RLTIM(JSQ2)
EMH=RMASS(201+JHIGGS+1)
EMHWT=1.
C...energy at hadron level.
ECM_MAX=PBEAM1+PBEAM2
S=ECM_MAX*ECM_MAX
C...phase space variables.
C...X(1)=(EMSQQ-EMSQ1-EMSQ2)/(ECM-EMSQ1-EMSQ2-EMH),
C...X(2)=COS(THETA5_CM),X(3)=COS(THETA4_CM_34),X(4)=FI4_CM_34,
C...X(5)=(1./SHAT-1./ECM_MAX**2)/(1./(EMSQ1+EMSQ2+EMH)**2-1./ECM_MAX**2),
C...X(6)=(LOG(TAU)-LOG(X1))/LOG(TAU);
C...phase space borders.
XL(1)=0.
XU(1)=1.
XL(2)=-1.
XU(2)=1.
XL(3)=-1.
XU(3)=1.
XL(4)=0.
XU(4)=2.*PIFAC
XL(5)=0.
XU(5)=1.
XL(6)=0.
XU(6)=1.
C...single phase space point.
100 CONTINUE
WEIGHT=1.
DO I=1,6
X(I)=XL(I)+(XU(I)-XL(I))*HWRGEN(0)
WEIGHT=WEIGHT*ABS(XU(I)-XL(I))
END DO
C...energy at parton level.
ECM=SQRT(1./(X(5)*(1./(EMSQ1+EMSQ2+EMH)**2-1./ECM_MAX**2)
& +1./ECM_MAX**2))
IF((EMH.LE.0.).OR.(EMH.GE.ECM))RETURN
SHAT=ECM*ECM
TAU=SHAT/S
C...momentum fractions X1 and X2.
XX(1)=EXP(LOG(TAU)*(1.-X(6)))
XX(2)=TAU/XX(1)
C...three particle kinematics.
EMSQQ=X(1)*(ECM-EMSQ1-EMSQ2-EMH)+EMSQ1+EMSQ2
CT5=X(2)
IF(HWRLOG(HALF))THEN
ST5=+SQRT(1.-CT5*CT5)
ELSE
ST5=-SQRT(1.-CT5*CT5)
END IF
CT4=X(3)
ST4=SQRT(1.-CT4*CT4)
CF4=COS(X(4))
SF4=SIN(X(4))
RQ52=((ECM*ECM-EMH*EMH-EMSQQ*EMSQQ)**2-(2.*EMH*EMSQQ)**2)/
& (4.*ECM*ECM)
IF(RQ52.LT.0.)THEN
GOTO 100
ELSE
RQ5=SQRT(RQ52)
ENDIF
P5(1)=0.
P5(2)=RQ5*ST5
P5(3)=RQ5*CT5
P5(0)=SQRT(RQ52+EMH*EMH)
DO I=1,3
Q34(I)=-P5(I)
END DO
Q34(0)=SQRT(RQ52+EMSQQ*EMSQQ)
RQ42=((EMSQQ*EMSQQ-EMSQ1*EMSQ1-EMSQ2*EMSQ2)**2
& -(2.*EMSQ1*EMSQ2)**2)/
& (4.*EMSQQ*EMSQQ)
IF(RQ42.LT.0.)THEN
GOTO 100
ELSE
RQ4=SQRT(RQ42)
ENDIF
Q4(1)=RQ4*ST4*CF4
Q4(2)=RQ4*ST4*SF4
Q4(3)=RQ4*CT4
Q4(0)=SQRT(RQ42+EMSQ2*EMSQ2)
PQ4=0.
DO I=1,3
PQ4=PQ4+Q34(I)*Q4(I)
END DO
P4(0)=(Q34(0)*Q4(0)+PQ4)/EMSQQ
P3(0)=Q34(0)-P4(0)
DO I=1,3
P4(I)=Q4(I)+Q34(I)*(P4(0)+Q4(0))/(Q34(0)+EMSQQ)
P3(I)=Q34(I)-P4(I)
END DO
C...incoming partons: all massless.
EMIN=0.
C...initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN*EMIN-EMIN*EMIN)**2
& -(2.*EMIN*EMIN)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN*EMIN)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN*EMIN)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...color structured ME summed/averaged over final/initial spins and colors.
IGG=1
IQQ=1
JPP=(MOD(IPROC,10000)/10-ILBL/10)
IF((JPP.EQ.4).OR.(JPP.EQ.5).OR.(JPP.EQ.6))IQQ=0
IF((JPP.EQ.7).OR.(JPP.EQ.8).OR.(JPP.EQ.9))IGG=0
GSQ1=GAMSQ1*EMSQ1
GSQ2=GAMSQ2*EMSQ2
CALL HWH2SH(ECM,P1,P2,P3,P4,P5,EMSQ1,EMSQ2,EMH,GSQ1,GSQ2,
& IGG,IQQ,GGSQHT,GGSQHU,GGSQHN,QQSQH)
M2GG(IME)=GGSQHN/(8.*CFFAC)
M2GGPL(IME)=GGSQHT/(8.*CFFAC)
M2GGMN(IME)=GGSQHU/(8.*CFFAC)
M2QQ(IME)=QQSQH*(1.-1./CAFAC**2)/4.
C...constant factors: phi along beam and conversion GeV^2->nb.
GACT=2.*PIFAC*GEV2NB
C...Jacobians from X1,X2 to X(5),X(6)
GACT=GACT/S*(-LOG(TAU))*(1./(EMSQ1+EMSQ2+EMH)**2-1./ECM_MAX**2)
C...phase space Jacobians, pi's and flux.
GACT=GACT*RQ4*RQ5/PCM/32./(2.*PIFAC)**5
& *(ECM-EMSQ1-EMSQ2-EMH)
C...EW and QCD couplings.
EMSCA=EMSQ1+EMSQ2+EMH
EMSC2=EMSCA*EMSCA
ALPHA=HWUAEM(EMSC2)
ALPHAS=HWUALF(1,EMSCA)
GACT=GACT*4.*PIFAC*ALPHA/SWEIN
GACT=GACT*16.*PIFAC**2*ALPHAS**2
C...enhancement factor for MSSM.
JHH=JHIGGS
IF(JHIGGS.EQ.5)JHH=4
JSQ=JSQ1-400
IF(JSQ1.GT.412)JSQ=JSQ1-412
IMIX1=1
IMIX2=1
IF(JSQ1.GT.412)IMIX1=2
IF(JSQ2.GT.418)IMIX2=2
SENHNC(JSQ)=GHSQSS(JHH,JSQ,IMIX1,IMIX2)
GACT=GACT*SENHNC(JSQ)*SENHNC(JSQ)
C...Higgs resonance.
GACT=GACT*EMHWT
C...constant weight.
GACT=GACT*WEIGHT
C...collects it.
FACT(IME)=GACT
1 CONTINUE
2 CONTINUE
END IF
C...set up flavours in final state.
FLIP=0
C...set up PDFs.
HCS=0.
CALL HWSGEN(.FALSE.)
IQMAX=13
IF(MOD(IPROC,10000)-ILBL.GE.70)IQMAX=12
IQMIN=1
IF(MOD(IPROC,10000)-ILBL.GE.40)IQMIN=13
IF(MOD(IPROC,10000)-ILBL.GE.70)IQMIN=1
DO 3 JME=1,IME
IF((M2GGPL(JME)+M2GGMN(JME)).EQ.0.)GOTO 3
DO I=IQMIN,IQMAX
IF(DISF(I,1).LT.EPS)THEN
GOTO 200
END IF
K=I/7
L=+1-2*K
IF(I.EQ.13)L=0
J=I+L*6
IF(DISF(J,2).LT.EPS)THEN
GOTO 200
END IF
DIST=DISF(I,1)*DISF(J,2)*S
IF(I.LT.13)THEN
C...set up color connections: qq-scattering.
IF(J.EQ.I+6)THEN
HCS=HCS+M2QQ(JME)*DIST*FACT(JME)
IF(GENEV.AND.HCS.GT.RCS)THEN
CONTINUE
CALL HWHQCP(JSQ1,JSQ2,2413, 4)
GOTO 9
END IF
ELSE IF(I.EQ.J+6)THEN
HCS=HCS+M2QQ(JME)*DIST*FACT(JME)
IF(GENEV.AND.HCS.GT.RCS)THEN
FLIP=1
CALL HWHQCP(JSQ2,JSQ1,3142,12)
GOTO 9
END IF
END IF
ELSE
C...set up color connections: gg-scattering.
HCS=HCS
& +(M2GGPL(JME)-M2GG(JME)*M2GGPL(JME)
& /(M2GGPL(JME)+M2GGMN(JME))/FLOAT(NC)**2)*DIST*FACT(JME)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(JSQ1,JSQ2,2413,27)
GOTO 9
ENDIF
HCS=HCS
& +(M2GGMN(JME)-M2GG(JME)*M2GGMN(JME)
& /(M2GGPL(JME)+M2GGMN(JME))/FLOAT(NC)**2)*DIST*FACT(JME)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(JSQ1,JSQ2,4123,28)
GOTO 9
ENDIF
END IF
200 CONTINUE
END DO
3 CONTINUE
EVWGT=HCS
RETURN
C...generate event.
9 IDN(1)=I
IDN(2)=J
IDN(5)=JH
C...incoming partons: now massive.
EMIN1=RMASS(IDN(1))
EMIN2=RMASS(IDN(2))
C...redo initial state momenta in the partonic CM.
PCM2=((SHAT-EMIN1*EMIN1-EMIN2*EMIN2)**2
& -(2.*EMIN1*EMIN2)**2)/(4.*SHAT)
PCM=SQRT(PCM2)
P1(0)=SQRT(PCM2+EMIN1*EMIN1)
P1(1)=0.
P1(2)=0.
P1(3)=PCM
P2(0)=SQRT(PCM2+EMIN2*EMIN2)
P2(1)=0.
P2(2)=0.
P2(3)=-PCM
C...randomly rotate final state momenta around beam axis.
PHI=2.*PIFAC*HWRGEN(0)
CPHI=COS(PHI)
SPHI=SIN(PHI)
ROT(1,1)=+CPHI
ROT(1,2)=+SPHI
ROT(1,3)=0.
ROT(2,1)=-SPHI
ROT(2,2)=+CPHI
ROT(2,3)=0.
ROT(3,1)=0.
ROT(3,2)=0.
ROT(3,3)=1.
DO L=1,3
DO M=1,3
QAUX(M)=0.
DO N=1,3
IF(L.EQ.1)QAUX(M)=QAUX(M)+ROT(M,N)*P3(N)
IF(L.EQ.2)QAUX(M)=QAUX(M)+ROT(M,N)*P4(N)
IF(L.EQ.3)QAUX(M)=QAUX(M)+ROT(M,N)*P5(N)
END DO
END DO
DO M=1,3
IF(L.EQ.1)P3(M)=QAUX(M)
IF(L.EQ.2)P4(M)=QAUX(M)
IF(L.EQ.3)P5(M)=QAUX(M)
END DO
END DO
C...use HWETWO only to set up status and IDs of (s)quarks.
COSTH=0.
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
C...do real incoming, outgoing momenta in the lab frame.
VCOL=(XX(1)-XX(2))/(XX(1)+XX(2))
GCOL=(XX(1)+XX(2))/2./SQRT(XX(1)*XX(2))
DO M=NHEP-4,NHEP+1
IF(M.EQ.NHEP-2)GO TO 888
DO N=0,3
IF(M.EQ.NHEP-4)QAUX(N)=P1(N)
IF(M.EQ.NHEP-3)QAUX(N)=P2(N)
IF(M.EQ.NHEP-1)QAUX(N)=P3(N)*(1-FLIP)+P4(N)*FLIP
IF(M.EQ.NHEP )QAUX(N)=P4(N)*(1-FLIP)+P3(N)*FLIP
IF(M.EQ.NHEP+1)QAUX(N)=P5(N)
END DO
C...perform boost.
PHEP(4,M)=GCOL*(QAUX(0)+VCOL*QAUX(3))
PHEP(3,M)=GCOL*(QAUX(3)+VCOL*QAUX(0))
PHEP(2,M)=QAUX(2)
PHEP(1,M)=QAUX(1)
888 CONTINUE
END DO
C...needs to set all final state masses.
PHEP(5,NHEP-1)=SQRT(ABS(PHEP(4,NHEP-1)**2
& -PHEP(3,NHEP-1)**2
& -PHEP(2,NHEP-1)**2
& -PHEP(1,NHEP-1)**2))
PHEP(5,NHEP )=SQRT(ABS(PHEP(4,NHEP )**2
& -PHEP(3,NHEP )**2
& -PHEP(2,NHEP )**2
& -PHEP(1,NHEP )**2))
PHEP(5,NHEP+1)=SQRT(ABS(PHEP(4,NHEP+1)**2
& -PHEP(3,NHEP+1)**2
& -PHEP(2,NHEP+1)**2
& -PHEP(1,NHEP+1)**2))
C...sets CMF.
DO I=1,4
PHEP(I,NHEP-2)=PHEP(I,NHEP-4)+PHEP(I,NHEP-3)
END DO
PHEP(5,NHEP-2)=SQRT(ABS(PHEP(4,NHEP-2)**2
& -PHEP(3,NHEP-2)**2
& -PHEP(2,NHEP-2)**2
& -PHEP(1,NHEP-2)**2))
C...status and IDs for Higgs.
ISTHEP(NHEP+1)=114
IDHW(NHEP+1)=IDN(5)
IDHEP(NHEP+1)=IDPDG(IDN(5))
C...Higgs colour (self-)connections.
JMOHEP(1,NHEP+1)=NHEP-2
JMOHEP(2,NHEP+1)=NHEP+1
JDAHEP(2,NHEP+1)=NHEP+1
JDAHEP(2,NHEP-2)=NHEP+1
NHEP=NHEP+1
IF(AZSPIN)THEN
C...set to zero the coefficients of the spin density matrices.
CALL HWVZRO(7,GCOEF)
END IF
999 RETURN
END
CDECK ID>, HWHPH2.
*CMZ :- -12/01/93 10.12.43 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHPH2
C-----------------------------------------------------------------------
C QQD direct photon pair production: mean EVWGT = sigma in nb
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,HWHPPB,EPS,RCS,ET,EJ,KK,KK2,
& YJ1INF,YJ1SUP,Z1,YJ2INF,YJ2SUP,Z2,FACT,FACTR,RS,S,T,U,CSTU,TQSQ,
& DSTU,HCS
INTEGER ID,ID1,ID2
EXTERNAL HWRGEN,HWRUNI,HWUALF,HWHPPB
SAVE HCS,CSTU,DSTU,FACT
PARAMETER (EPS=1.D-9)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
CALL HWRPOW(ET,EJ)
KK=ET/PHEP(5,3)
KK2=KK**2
IF (KK.GE.ONE) RETURN
YJ1INF=MAX( YJMIN , LOG((1.-SQRT(1.-KK2))/KK) )
YJ1SUP=MIN( YJMAX , LOG((1.+SQRT(1.-KK2))/KK) )
IF (YJ1INF.GE.YJ1SUP) RETURN
Z1=EXP(HWRUNI(1,YJ1INF,YJ1SUP))
YJ2INF=MAX( YJMIN , -LOG(2./KK-1./Z1) )
YJ2SUP=MIN( YJMAX , LOG(2./KK-Z1) )
IF (YJ2INF.GE.YJ2SUP) RETURN
Z2=EXP(HWRUNI(2,YJ2INF,YJ2SUP))
XX(1)=0.5*(Z1+Z2)*KK
IF (XX(1).GE.ONE) RETURN
XX(2)=XX(1)/(Z1*Z2)
IF (XX(2).GE.ONE) RETURN
COSTH=(Z1-Z2)/(Z1+Z2)
S=XX(1)*XX(2)*PHEP(5,3)**2
RS=0.5*SQRT(S)
T=-0.5*S*(1.-COSTH)
U=-S-T
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
FACT=GEV2NB*PIFAC*0.5*ET*EJ*(YJ1SUP-YJ1INF)*(YJ2SUP-YJ2INF)
& *(ALPHEM/S)**2
CALL HWSGEN(.FALSE.)
CSTU=2.*(U/T+T/U)/CAFAC
IF (DISF(13,1).GT.EPS.AND.DISF(13,2).GT.EPS) THEN
TQSQ=0.
DO 10 ID=1,6
10 IF (RMASS(ID).LT.RS) TQSQ=TQSQ+QFCH(ID)**2
DSTU=DISF(13,1)*DISF(13,2)*FACT*HWHPPB(S,T,U)
& /64.*(HWUALF(1,EMSCA)*TQSQ/PIFAC)**2
ELSE
DSTU=0
ENDIF
ENDIF
HCS=0.
DO 30 ID=1,6
FACTR=FACT*CSTU*QFCH(ID)**4
C q+qbar ---> gamma+gamma
ID1=ID
ID2=ID+6
IF (DISF(ID1,1).LT.EPS.OR.DISF(ID2,2).LT.EPS) GOTO 20
HCS=HCS+FACTR*DISF(ID1,1)*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(59,59,2134,61)
GOTO 99
ENDIF
C qbar+q ---> gamma+gamma
20 ID1=ID+6
ID2=ID
IF (DISF(ID1,1).LT.EPS.OR.DISF(ID2,2).LT.EPS) GOTO 30
HCS=HCS+FACTR*DISF(ID1,1)*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(59,59,2134,62)
GOTO 99
ENDIF
30 CONTINUE
C g+g ---> gamma+gamma
ID1=13
ID2=13
HCS=HCS+DSTU
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(59,59,2134,63)
GOTO 99
ENDIF
EVWGT=HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHPHO.
*CMZ :- -26/04/91 14.55.45 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHPHO
C-----------------------------------------------------------------------
C QCD DIRECT PHOTON + JET PRODUCTION: MEAN EVWGT = SIGMA IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,HWHPPB,EPS,RCS,ET,EJ,KK,KK2,
& YJ1INF,YJ1SUP,Z1,YJ2INF,YJ2SUP,Z2,FACT,FACTR,FACTF,RS,S,T,U,CF,
& AF,CSTU,CTSU,CUST,DSTU,HCS,TQCH
INTEGER ID,ID1,ID2
EXTERNAL HWRGEN,HWRUNI,HWUALF,HWHPPB
SAVE HCS,FACT,CSTU,CTSU,CUST,DSTU
PARAMETER (EPS=1.D-9)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
CALL HWRPOW(ET,EJ)
KK=ET/PHEP(5,3)
KK2=KK**2
IF (KK.GE.ONE) RETURN
YJ1INF=MAX( YJMIN , LOG((1.-SQRT(1.-KK2))/KK) )
YJ1SUP=MIN( YJMAX , LOG((1.+SQRT(1.-KK2))/KK) )
IF (YJ1INF.GE.YJ1SUP) RETURN
Z1=EXP(HWRUNI(1,YJ1INF,YJ1SUP))
YJ2INF=MAX( YJMIN , -LOG(2./KK-1./Z1) )
YJ2SUP=MIN( YJMAX , LOG(2./KK-Z1) )
IF (YJ2INF.GE.YJ2SUP) RETURN
Z2=EXP(HWRUNI(2,YJ2INF,YJ2SUP))
XX(1)=0.5*(Z1+Z2)*KK
IF (XX(1).GE.ONE) RETURN
XX(2)=XX(1)/(Z1*Z2)
IF (XX(2).GE.ONE) RETURN
COSTH=(Z1-Z2)/(Z1+Z2)
S=XX(1)*XX(2)*PHEP(5,3)**2
RS=0.5*SQRT(S)
T=-0.5*S*(1.-COSTH)
U=-S-T
C---SET EMSCA TO HARD PROCESS SCALE (APPROX ET-JET)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
FACT=GEV2NB*PIFAC*0.5*ET*EJ*ALPHEM
& *HWUALF(1,EMSCA)*(YJ1SUP-YJ1INF)*(YJ2SUP-YJ2INF)/S**2
CALL HWSGEN(.FALSE.)
C
CF=2.*CFFAC/CAFAC
AF=-1./CAFAC
CSTU=CF*(U/T+T/U)
CTSU=AF*(U/S+S/U)
CUST=AF*(T/S+S/T)
IF (DISF(13,1).GT.EPS.AND.DISF(13,2).GT.EPS) THEN
TQCH=0.
DO 10 ID=1,6
10 IF (RMASS(ID).LT.RS) TQCH=TQCH+QFCH(ID)
DSTU=DISF(13,1)*DISF(13,2)*FACT*HWHPPB(S,T,U)
& *5./768.*(HWUALF(1,EMSCA)*TQCH/PIFAC)**2
ELSE
DSTU=0
ENDIF
ENDIF
C
HCS=0.
DO 30 ID=1,6
FACTR=FACT*QFCH(ID)**2
C---QUARK FIRST
ID1=ID
IF (DISF(ID1,1).LT.EPS) GOTO 20
ID2=ID1+6
HCS=HCS+CSTU*FACTR*DISF(ID1,1)*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 59,2314,41)
GOTO 9
ENDIF
ID2=13
HCS=HCS+CTSU*FACTR*DISF(ID1,1)*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1, 59,3124,42)
GOTO 9
ENDIF
C---QBAR FIRST
20 ID1=ID+6
IF (DISF(ID1,1).LT.EPS) GOTO 30
ID2=ID
HCS=HCS+CSTU*FACTR*DISF(ID1,1)*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 59,3124,43)
GOTO 9
ENDIF
ID2=13
HCS=HCS+CTSU*FACTR*DISF(ID1,1)*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1, 59,2314,44)
GOTO 9
ENDIF
30 CONTINUE
C---GLUON FIRST
ID1=13
FACTF=FACT*CUST*DISF(ID1,1)
DO 50 ID=1,6
FACTR=FACTF*QFCH(ID)**2
ID2=ID
IF (DISF(ID2,2).LT.EPS) GOTO 40
HCS=HCS+FACTR*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID2, 59,2314,45)
GOTO 9
ENDIF
40 ID2=ID+6
IF (DISF(ID2,2).LT.EPS) GOTO 50
HCS=HCS+FACTR*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID2, 59,3124,46)
GOTO 9
ENDIF
50 CONTINUE
C g+g ---> g+gamma
ID2=13
HCS=HCS+DSTU
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 59,2314,47)
GOTO 9
ENDIF
EVWGT=HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHPPB.
*CMZ :- -12/01/93 10.12.43 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWHPPB(S,T,U)
C-----------------------------------------------------------------------
C Quark box diagram contribution to photon/gluon scattering
C Internal quark mass neglected: m_q << U,T,S
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWHPPB,S,T,U,S2,T2,U2,PI2,ALNTU,ALNST,ALNSU
PI2=ACOS(-1.D0)**2
S2=S**2
T2=T**2
U2=U**2
ALNTU=LOG(T/U)
ALNST=LOG(-S/T)
ALNSU=ALNST+ALNTU
HWHPPB=5.*4.
& +((2.*S2+2.*(U2-T2)*ALNTU+(T2+U2)*(ALNTU**2+PI2))/S2)**2
& +((2.*U2+2.*(T2-S2)*ALNST+(T2+S2)* ALNST**2 )/U2)**2
& +((2.*T2+2.*(U2-S2)*ALNSU+(U2+S2)* ALNSU**2 )/T2)**2
& +4.*PI2*(((T2-S2+(T2+S2)*ALNST)/U2)**2
& +((U2-S2+(U2+S2)*ALNSU)/T2)**2)
END
CDECK ID>, HWHPPE.
*CMZ :- -12/01/93 10.12.43 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHPPE
C-----------------------------------------------------------------------
C point-like photon/QCD heavy flavour single excitation, using exact
C massive lightcone kinematics, mean EVWGT = sigma in nb.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,EPS,PP1,PP2,QM2,FACTR,
& PT,PJ,PT2,PTM,EXY,T,CC,EXY2,S,U,C,SIGE,HCS,RCS
INTEGER IQ1,IQ2,ID1,ID2,IHAD1,IHAD2
EXTERNAL HWRGEN,HWRUNI,HWUALF
SAVE PP1,PP2,IQ1,IQ2,QM2,FACTR,SIGE,HCS
PARAMETER (EPS=1.E-9)
IHAD1=1
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IHAD2=2
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
IF (FSTWGT.OR.IHAD1.NE.1.OR.IHAD2.NE.2) THEN
PP1=PHEP(4,IHAD1)+ABS(PHEP(3,IHAD1))
PP2=PHEP(4,IHAD2)+ABS(PHEP(3,IHAD2))
XX(1)=1.
IQ1=MOD(IPROC,100)
IQ2=IQ1+6
QM2=RMASS(IQ1)**2
FACTR=GEV2NB*(YJMAX-YJMIN)*4.*PIFAC*CFFAC*PP1
& *ALPHEM*QFCH(IQ1)**2
ENDIF
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
CALL HWRPOW(PT,PJ)
PT2=PT**2
PTM=SQRT(PT2+QM2)
EXY=EXP(HWRUNI(1,YJMIN,YJMAX))
T=-PP1*PT/EXY
CC=T**2-4.*QM2*(PT2+T)
IF (CC.LT.ZERO) RETURN
EXY2=(2.*PT2+T-SQRT(CC))*PP1/(2.*T*PTM)
IF (EXY2.LT.EXP(YJMIN).OR.EXY2.GT.EXP(YJMAX)) RETURN
XX(2)=(PT/EXY+PTM/EXY2)/PP2
IF (XX(2).GT.ONE) RETURN
C define: S=Shat-M**2, T=That ,U=Uhat-M**2 (2p.Q, -2p.g, -2p.Q')
S=XX(2)*PP1*PP2
U=-S-T
COSTH=(1.+QM2/S)*(T-U)/S-QM2/S
C Set hard process scale (Approx ET-jet)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
C=QM2*T/(U*S)
SIGE=-FACTR*PT*PJ*HWUALF(1,EMSCA)*(S/U+U/S+4.*C*(1.-C))
& /(S**2*EXY2*PTM*(1-QM2/(XX(2)*PP2*EXY2)**2))
CALL HWSFUN(XX(2),EMSCA,IDHW(IHAD2),NSTRU,DISF(1,2),2)
ENDIF
HCS=0.
ID1=59
C photon+Q ---> g+Q
ID2=IQ1
IF (DISF(ID2,2).LT.EPS) GOTO 10
HCS=HCS+SIGE*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(13,ID2,1423,51)
GOTO 99
ENDIF
C photon+Qbar ---> g+Qbar
10 ID2=IQ2
IF (DISF(ID2,2).LT.EPS) GOTO 20
HCS=HCS+SIGE*DISF(ID2,2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(13,ID2,1342,52)
GOTO 99
ENDIF
20 EVWGT=HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHPPH.
*CMZ :- -12/01/93 10.12.43 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHPPH
C-----------------------------------------------------------------------
C Point-like photon/gluon heavy flavour pair production, with
C exact lightcone massive kinematics, mean EVWGT = sigma in nb.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRUNI,HWUALF,EPS,PP1,PP2,QM2,FACTR,ET,EJ,ET2,
& EXY,EXY2,S,T,U,C
INTEGER IQ1,IHAD1,IHAD2
EXTERNAL HWRUNI,HWUALF
SAVE PP1,PP2,IQ1,QM2,FACTR
PARAMETER (EPS=1.E-9)
IHAD1=1
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IHAD2=2
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
IF (FSTWGT.OR.IHAD1.NE.1.OR.IHAD2.NE.2) THEN
PP1=PHEP(4,IHAD1)+ABS(PHEP(3,IHAD1))
PP2=PHEP(4,IHAD2)+ABS(PHEP(3,IHAD2))
XX(1)=1.
IQ1=MOD(IPROC,100)
QM2=RMASS(IQ1)**2
IHPRO=53
FACTR=-GEV2NB*(YJMAX-YJMIN)*.5*PIFAC*ALPHEM*QFCH(IQ1)**2
ENDIF
IF (GENEV) THEN
C Generate event
IDN(1)=59
IDN(2)=13
IDN(3)=IQ1
IDN(4)=IQ1+6
ICO(1)=1
ICO(2)=4
ICO(3)=2
ICO(4)=3
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
ELSE
C Select kinematics
EVWGT=0.
CALL HWRPOW(ET,EJ)
ET2=ET**2
EXY=EXP(HWRUNI(1,YJMIN,YJMAX))
EXY2=2.*PP1/ET-EXY
IF (EXY2.LT.EXP(YJMIN).OR.EXY2.GT.EXP(YJMAX)) RETURN
XX(2)=.5*ET*(1./EXY+1./EXY2)/PP2
IF (XX(2).LT.ZERO.OR.XX(2).GT.ONE) RETURN
S=XX(2)*PP1*PP2
IF (S.LT.ET2) RETURN
C define: S=Shat, T=That-M**2, U=Uhat-M**2 (2p.g, -2p.Q, -2p.QBar)
T=-.5*PP1*ET/EXY
U=-S-T
COSTH=(T-U)/(S*SQRT(1.-4.*QM2/S))
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
CALL HWSFUN(XX(2),EMSCA,IDHW(IHAD2),NSTRU,DISF(1,2),2)
C photon+g ---> Q+Qbar
IF (DISF(13,2).LT.EPS) THEN
EVWGT=0.
ELSE
C=QM2*S/(U*T)
EVWGT=FACTR*EJ*ET*HWUALF(1,EMSCA)
& *DISF(13,2)*(T/U+U/T+4.*C*(1.-C))/(S*T)
ENDIF
ENDIF
END
CDECK ID>, HWHPPM.
*CMZ :- -09/12/93 15.50.26 by Mike Seymour
*-- Author : Ian Knowles & Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHPPM
C-----------------------------------------------------------------------
C Point-like photon/QCD direct meson production
C See M. Benayoun, et al., Nucl. Phys. B282 (1987) 653 for details.
C mean EVWGT = sigma in nb
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,EPS,PP1,PP2,ET,EJ,EXY,EXY2,
& FACT,FACTR,S,T,U,REDS,DELT(3,3),C1STU,C3STU,HCS,RCS,CMIX,SMIX,
& C1WVFN,FPI,FETA8,FETA1,FRHO,FPHI8,FPHI1,FPI2,FETA2(3),FETAP2(3),
7 FRHO2,FPHI2(3),FOMEG2(3)
INTEGER MNAME(3,3,2),N4(3),I,J,ID2,ID4,I2,I4,M1,M2,IHAD1,IHAD2
LOGICAL SPIN0,SPIN1
EXTERNAL HWRGEN,HWRUNI,HWUALF
SAVE FPI2,FETA2,FETAP2,FRHO2,FPHI2,FOMEG2,HCS,REDS,FACT,DELT,
& C1STU,C3STU
PARAMETER (EPS=1.D-20)
SAVE MNAME,N4,SPIN0,SPIN1,C1WVFN,FPI,FETA8,FETA1,FRHO,FPHI8,FPHI1
DATA MNAME/21,38,42,30,21,34,50,46,0,23,39,43,31,23,35,51,47,0/
DATA N4,SPIN0,SPIN1/3,3,2,.TRUE.,.TRUE./
DATA C1WVFN,FPI,FETA8,FETA1,FRHO,FPHI8,FPHI1
& /1.D0,3*0.093D0,3*0.107D0/
IF (FSTWGT) THEN
FPI2=FPI**2
CMIX=COS(ETAMIX*PIFAC/180.D0)
SMIX=SIN(ETAMIX*PIFAC/180.D0)
FETA2(1) =(+CMIX*FETA8/SQRT(TWO)-SMIX*FETA1)**2/THREE
FETA2(2) =FETA2(1)
FETA2(3) =(-CMIX*FETA8*SQRT(TWO)-SMIX*FETA1)**2/THREE
FETAP2(1)=(+SMIX*FETA8/SQRT(TWO)+CMIX*FETA1)**2/THREE
FETAP2(2)=FETAP2(1)
FETAP2(3)=(-SMIX*FETA8*SQRT(TWO)+CMIX*FETA1)**2/THREE
FRHO2=FRHO**2
CMIX=COS(PHIMIX*PIFAC/180.D0)
SMIX=SIN(PHIMIX*PIFAC/180.D0)
FPHI2(1) =(+CMIX*FPHI8/SQRT(TWO)-SMIX*FPHI1)**2/THREE
FPHI2(2) =FPHI2(1)
FPHI2(3) =(-CMIX*FPHI8*SQRT(TWO)-SMIX*FPHI1)**2/THREE
FOMEG2(1)=(+SMIX*FPHI8/SQRT(TWO)+CMIX*FPHI1)**2/THREE
FOMEG2(2)=FOMEG2(1)
FOMEG2(3)=(-SMIX*FPHI8*SQRT(TWO)+CMIX*FPHI1)**2/THREE
ENDIF
SPIN0=.NOT.(MOD(IPROC/10,10).EQ.2)
SPIN1=.NOT.(MOD(IPROC/10,10).EQ.1)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=ZERO
IHAD1=1
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IHAD2=2
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
PP1=PHEP(4,IHAD1)+ABS(PHEP(3,IHAD1))
PP2=PHEP(4,IHAD2)+ABS(PHEP(3,IHAD2))
XX(1)=ONE
CALL HWRPOW(ET,EJ)
EXY=EXP(HWRUNI(1,YJMIN,YJMAX))
EXY2=TWO*PP1/ET-EXY
IF (EXY2.LE.EXP(YJMIN).OR.EXY2.GE.EXP(YJMAX)) RETURN
XX(2)=PP1/(PP2*EXY*EXY2)
IF (XX(2).LE.ZERO.OR.XX(2).GE.ONE) RETURN
S=XX(2)*PP1*PP2
REDS=SQRT(S-ET*SQRT(S))
T=-HALF*PP1*ET/EXY
U=-S-T
COSTH=(T-U)/S
C Set EMSCA to hard process scale (Approx ET-jet)
EMSCA=SQRT(TWO*S*T*U/(S*S+T*T+U*U))
FACT=-GEV2NB*ET*EJ*(YJMAX-YJMIN)*ALPHEM*CFFAC
& *(HWUALF(1,EMSCA)*PIFAC*C1WVFN)**2*32.D0/(THREE*S*T)
CALL HWSFUN(XX(2),EMSCA,IDHW(IHAD2),NSTRU,DISF(1,2),2)
DO 10 I=1,3
DO 10 J=1,3
10 DELT(I,J)=(QFCH(I)*U+QFCH(J)*S)**2
C1STU=-(S**2+U**2)/(T*S**2*U**2)
C3STU=-8.D0*T/(S**2*U**2)
ENDIF
HCS=ZERO
DO 50 I2=1,3
C Quark initiated processes
ID2=I2
IF (DISF(ID2,2).LT.EPS) GOTO 30
DO 20 ID4=1,N4(I2)
M1=MNAME(ID2,ID4,1)
FACTR=FACT*DELT(ID2,ID4)*DISF(ID2,2)
IF (ID2.EQ.ID4) FACTR=HALF*FACTR
IF (SPIN0.AND.REDS.GT.RMASS(M1)) THEN
C photon+q --> meson_0+q'
HCS=HCS+HALF*FACTR*C1STU*FPI2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(M1,ID4,1432,71)
GOTO 99
ENDIF
ENDIF
M2=MNAME(ID2,ID4,2)
IF (SPIN1.AND.REDS.GT.RMASS(M2)) THEN
C photon+q --> meson_L+q'
HCS=HCS+FACTR*C1STU*FRHO2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(M2,ID4,1432,72)
GOTO 99
ENDIF
C photon+q --> meson_T+q'
HCS=HCS+FACTR*C3STU*FRHO2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(M2,ID4,1432,73)
GOTO 99
ENDIF
ENDIF
20 CONTINUE
FACTR=FACT*DELT(I2,I2)*DISF(ID2,2)
IF (SPIN0.AND.REDS.GT.RMASS(22)) THEN
C photon+q -->eta+q
HCS=HCS+HALF*FACTR*C1STU*FETA2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(22,ID2,1432,71)
GOTO 99
ENDIF
ENDIF
IF (SPIN0.AND.REDS.GT.RMASS(25)) THEN
C photon+q -->eta'+q
HCS=HCS+HALF*FACTR*C1STU*FETAP2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(25,ID2,1432,71)
GOTO 99
ENDIF
ENDIF
IF (SPIN1.AND.REDS.GT.RMASS(56)) THEN
C photon+q -->phi_L+q
HCS=HCS+FACTR*C1STU*FPHI2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(56,ID2,1432,72)
GOTO 99
ENDIF
C photon+q -->phi_T+q
HCS=HCS+FACTR*C3STU*FPHI2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(56,ID2,1432,73)
GOTO 99
ENDIF
ENDIF
IF (SPIN1.AND.REDS.GT.RMASS(24)) THEN
C photon+q -->omega_L+q
HCS=HCS+FACTR*C1STU*FOMEG2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(24,ID2,1432,72)
GOTO 99
ENDIF
C photon+q -->omega_T+q
HCS=HCS+FACTR*C3STU*FOMEG2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(24,ID2,1432,73)
GOTO 99
ENDIF
ENDIF
C Anti-quark initiated processes
30 ID2=I2+6
IF (DISF(ID2,2).LT.EPS) GOTO 50
DO 40 I4=1,N4(I2)
ID4=I4+6
FACTR=FACT*DELT(I2,I4)*DISF(ID2,2)
IF (ID2.EQ.ID4) FACTR=HALF*FACTR
M1=MNAME(I4,I2,1)
IF (SPIN0.AND.REDS.GT.RMASS(M1)) THEN
C photon+qbar --> meson_0+qbar'
HCS=HCS+HALF*FACTR*C1STU*FPI2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(M1,ID4,1432,74)
GOTO 99
ENDIF
ENDIF
M2=MNAME(I4,I2,2)
IF (SPIN1.AND.REDS.GT.RMASS(M2)) THEN
C photon+qbar --> meson_L+qbar'
HCS=HCS+FACTR*C1STU*FRHO2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(M2,ID4,1432,75)
GOTO 99
ENDIF
C photon+qbar --> meson_T+qbar'
HCS=HCS+FACTR*C3STU*FRHO2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(M2,ID4,1432,76)
GOTO 99
ENDIF
ENDIF
40 CONTINUE
FACTR=FACT*DELT(I2,I2)*DISF(ID2,2)
IF (SPIN0.AND.REDS.GT.RMASS(22)) THEN
C photon+qbar -->eta+qbar
HCS=HCS+HALF*FACTR*C1STU*FETA2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(22,ID2,1432,74)
GOTO 99
ENDIF
ENDIF
IF (SPIN0.AND.REDS.GT.RMASS(25)) THEN
C photon+qbar -->eta'+qbar
HCS=HCS+HALF*FACTR*C1STU*FETAP2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(25,ID2,1432,74)
GOTO 99
ENDIF
ENDIF
IF (SPIN1.AND.REDS.GT.RMASS(56)) THEN
C photon+qbar -->phi_L+qbar
HCS=HCS+FACTR*C1STU*FPHI2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(56,ID2,1432,75)
GOTO 99
ENDIF
C photon+qbar -->phi_T+qbar
HCS=HCS+FACTR*C3STU*FPHI2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(56,ID2,1432,76)
GOTO 99
ENDIF
ENDIF
IF (SPIN1.AND.REDS.GT.RMASS(24)) THEN
C photon+qbar -->omega_L+qbar
HCS=HCS+FACTR*C1STU*FOMEG2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(24,ID2,1432,75)
GOTO 99
ENDIF
C photon+qbar -->omega_T+qbar
HCS=HCS+FACTR*C3STU*FOMEG2(I2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(24,ID2,1432,76)
GOTO 99
ENDIF
ENDIF
50 CONTINUE
EVWGT=HCS
RETURN
C Generate event
99 IDN(1)=59
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
C Set polarization vector
IF (IHPRO.EQ.72.OR.IHPRO.EQ.75) THEN
RHOHEP(2,NHEP-1)=ONE
ELSEIF (IHPRO.EQ.73.OR.IHPRO.EQ.76) THEN
RHOHEP(1,NHEP-1)=HALF
RHOHEP(3,NHEP-1)=HALF
ENDIF
END
CDECK ID>, HWHPPT.
*CMZ :- -12/01/93 10.12.43 by Bryan Webber
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHPPT
C-----------------------------------------------------------------------
C point-like photon/QCD di-jet production: mean EVWGT = sigma in nb
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,EPS,RCS,PP1,PP2,ET,EJ,
& EXY,EXY2,FACTR,RS,S,T,U,CSTU,CTSU,HCS
INTEGER ID1,ID2,ID3,ID4,IHAD1,IHAD2
EXTERNAL HWRGEN,HWRUNI,HWUALF
SAVE CSTU,CTSU,HCS,FACTR,RS
PARAMETER (EPS=1.E-9)
IHAD1=1
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IHAD2=2
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
PP1=PHEP(4,IHAD1)+ABS(PHEP(3,IHAD1))
PP2=PHEP(4,IHAD2)+ABS(PHEP(3,IHAD2))
XX(1)=1.
CALL HWRPOW(ET,EJ)
EXY=EXP(HWRUNI(1,YJMIN,YJMAX))
EXY2=2.*PP1/ET-EXY
IF (EXY2.LE.EXP(YJMIN).OR.EXY2.GE.EXP(YJMAX)) RETURN
XX(2)=PP1/(PP2*EXY*EXY2)
IF (XX(2).LE.ZERO.OR.XX(2).GE.ONE) RETURN
S=XX(2)*PP1*PP2
RS=.5*SQRT(S)
T=-PP1*0.5*ET/EXY
U=-S-T
COSTH=(T-U)/S
C Set EMSCA to hard process scale (Approx ET-jet)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
FACTR=-GEV2NB*0.5*EJ*(YJMAX-YJMIN)*ET*PIFAC*ALPHEM
& *HWUALF(1,EMSCA)/(S*T)
CALL HWSFUN(XX(2),EMSCA,IDHW(IHAD2),NSTRU,DISF(1,2),2)
CSTU=U/T+T/U
CTSU=-2.*CFFAC*(U/S+S/U)
ENDIF
HCS=0.
ID1=59
DO 20 ID2=1,13
IF (DISF(ID2,2).LT.EPS) GOTO 20
IF (ID2.LT.7) THEN
C photon+q ---> g+q
HCS=HCS+CTSU*DISF(ID2,2)*QFCH(ID2)**2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13,ID2,1423,51)
GOTO 99
ENDIF
ELSEIF (ID2.LT.13) THEN
C photon+qbar ---> g+qbar
HCS=HCS+CTSU*DISF(ID2,2)*QFCH(ID2-6)**2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13,ID2,1342,52)
GOTO 99
ENDIF
ELSE
C photon+g ---> q+qbar
DO 10 ID3=1,6
IF (RS.GT.RMASS(ID3)) THEN
ID4=ID3+6
HCS=HCS+CSTU*DISF(ID2,2)*QFCH(ID3)**2
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,1423,53)
GOTO 99
ENDIF
ENDIF
10 CONTINUE
ENDIF
20 CONTINUE
EVWGT=FACTR*HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHPQS.
*CMZ :- -27/03/95 13.27.22 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWHPQS
C-----------------------------------------------------------------------
C Compton scattering of point-like photon and (anti)quark
C mean EVWGT = sigma in nb
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,EPS,RCS,PP1,PP2,ET,EJ,EXY,EXY2,
& FACTR,S,T,U,CTSU,HCS
INTEGER ID1,ID2,IHAD1,IHAD2
EXTERNAL HWRGEN,HWRUNI
SAVE CTSU,HCS,FACTR
PARAMETER (EPS=1.E-9)
IHAD1=1
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IHAD2=2
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
PP1=PHEP(4,IHAD1)+ABS(PHEP(3,IHAD1))
PP2=PHEP(4,IHAD2)+ABS(PHEP(3,IHAD2))
XX(1)=1.
CALL HWRPOW(ET,EJ)
EXY=EXP(HWRUNI(1,YJMIN,YJMAX))
EXY2=2.*PP1/ET-EXY
IF (EXY2.LE.EXP(YJMIN).OR.EXY2.GE.EXP(YJMAX)) RETURN
XX(2)=PP1/(PP2*EXY*EXY2)
IF (XX(2).LE.ZERO.OR.XX(2).GE.ONE) RETURN
S=XX(2)*PP1*PP2
T=-PP1*0.5*ET/EXY
U=-S-T
COSTH=(T-U)/S
C Set EMSCA to hard process scale (Approx ET-jet)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
FACTR=-GEV2NB*0.5*EJ*(YJMAX-YJMIN)*ET*PIFAC*ALPHEM**2/(S*T)
CALL HWSFUN(XX(2),EMSCA,IDHW(IHAD2),NSTRU,DISF(1,2),2)
CTSU=-2.*(U/S+S/U)
ENDIF
HCS=0.
ID1=59
DO 20 ID2=1,12
IF (DISF(ID2,2).LT.EPS) GOTO 20
IF (ID2.LT.7) THEN
C photon+q ---> photon+q
HCS=HCS+CTSU*DISF(ID2,2)*QFCH(ID2)**4
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 59,ID2,1432,66)
GOTO 99
ENDIF
ELSE
C photon+qbar ---> photon+qbar
HCS=HCS+CTSU*DISF(ID2,2)*QFCH(ID2-6)**4
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 59,ID2,1432,67)
GOTO 99
ENDIF
ENDIF
20 CONTINUE
EVWGT=FACTR*HCS
RETURN
C Generate event
99 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHQCD.
*CMZ :- -20/05/99 12.39.45 by Kosuke Odagiri
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHQCD
C-----------------------------------------------------------------------
C QCD HARD 2->2 PROCESSES: MEAN EVWGT = SIGMA IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUALF,RS,EPS,HF,RCS,Z1,Z2,ET,EJ,
& FACTR,S,T,U,ST,TU,US,STU,TUS,UST,EN,RN,GFLA,AF,ASTU,ASUT,AUST,
& BF,BSTU,BSUT,BUST,BUTS,CF,CSTU,CSUT,CTSU,CTUS,DF,DSTU,DTSU,DUTS,
& DIST,HCS,UT,SU,GT,KK,KK2,YJ1INF,YJ1SUP,YJ2INF,YJ2SUP
INTEGER ID1,ID2,I
EXTERNAL HWRGEN,HWRUNI,HWUALF
SAVE HCS,ASTU,AUST,BSTU,BSUT,BUST,BUTS,CSTU,CSUT,CTSU,CTUS,
& DSTU,DTSU,DUTS,GFLA,RCS,S,T,TU,U,US
PARAMETER (EPS=1.E-9,HF=0.5)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
CALL HWRPOW(ET,EJ)
KK = ET/PHEP(5,3)
KK2=KK**2
IF (KK.GE.ONE) RETURN
YJ1INF = MAX( YJMIN, LOG((ONE-SQRT(ONE-KK2))/KK) )
YJ1SUP = MIN( YJMAX, LOG((ONE+SQRT(ONE-KK2))/KK) )
IF (YJ1INF.GE.YJ1SUP) RETURN
Z1=EXP(HWRUNI(1,YJ1INF,YJ1SUP))
YJ2INF = MAX( YJMIN, -LOG(TWO/KK-ONE/Z1) )
YJ2SUP = MIN( YJMAX, LOG(TWO/KK-Z1) )
IF (YJ2INF.GE.YJ2SUP) RETURN
Z2=EXP(HWRUNI(2,YJ2INF,YJ2SUP))
XX(1)=.5*(Z1+Z2)*KK
IF (XX(1).GE.ONE) RETURN
XX(2)=XX(1)/(Z1*Z2)
IF (XX(2).GE.ONE) RETURN
COSTH=(Z1-Z2)/(Z1+Z2)
S=XX(1)*XX(2)*PHEP(5,3)**2
RS=HF*SQRT(S)
DO 3 I=1,NFLAV
IF (RS.LT.RMASS(I)) GOTO 4
3 CONTINUE
I=NFLAV+1
4 MAXFL=I-1
IF (MAXFL.EQ.0) THEN
CALL HWWARN('HWHQCD',100)
GOTO 999
ENDIF
C
T=-HF*S*(1.-COSTH)
U=-S-T
C---SET EMSCA TO HARD PROCESS SCALE (APPROX ET-JET)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
FACTR = GEV2NB*.5*PIFAC*EJ*ET*(HWUALF(1,EMSCA)/S)**2
& * (YJ1SUP-YJ1INF)*(YJ2SUP-YJ2INF)
CALL HWSGEN(.FALSE.)
C
ST=S/T
TU=T/U
US=U/S
STU=TU/US
TUS=US/ST
UST=ST/TU
C
EN=CAFAC
RN=CFFAC/EN
GFLA=HF*FLOAT(MAXFL)/(EN*RN)**2
AF=FACTR*RN
ASTU=AF*(1.-2.*UST)
ASUT=AF*(1.-2.*STU)
AUST=AF*(1.-2.*TUS)
C-----------------------------------------------------------------------
C---Colour decomposition modifications below (KO)
C-----------------------------------------------------------------------
BF=HF-AF/EN/TUS/(ASTU+ASUT)
BSTU=BF*ASTU
BSUT=BF*ASUT
BF=ONE-TWO*AF/EN/STU/(AUST+ASTU)
BUST=BF*AUST
BUTS=BF*ASTU
C-----------------------------------------------------------------------
C BF=2.*AF/EN
C BSTU=HF*(ASTU+BF*ST)
C BSUT=HF*(ASUT+BF/US)
C BUST=AUST+BF*US
C BUTS=ASTU+BF/TU
C-----------------------------------------------------------------------
CF=AF*EN
CSTU=(CF*(RN-TUS))/TU
CSUT=(CF*(RN-TUS))*TU
CTSU=(FACTR*(UST-RN))*US
CTUS=(FACTR*(UST-RN))/US
DF=HF*FACTR/RN
DSTU=DF*(1.+1./TUS-STU-UST)
DTSU=DF*(1.+1./UST-STU-TUS)
DUTS=DF*(1.+1./STU-UST-TUS)
ENDIF
C
HCS=0.
DO 6 ID1=1,13
IF (DISF(ID1,1).LT.EPS) GOTO 6
DO 5 ID2=1,13
IF (DISF(ID2,2).LT.EPS) GOTO 5
DIST=DISF(ID1,1)*DISF(ID2,2)
IF (ID1.LT.7) THEN
C---QUARK FIRST
IF (ID2.LT.7) THEN
IF (ID1.NE.ID2) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421, 3)
GOTO 9
ENDIF
ELSE
HCS=HCS+BSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421, 1)
GOTO 9
ENDIF
HCS=HCS+BSUT*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312, 2)
GOTO 9
ENDIF
ENDIF
ELSEIF (ID2.NE.13) THEN
IF (ID2.NE.ID1+6) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142, 9)
GOTO 9
ENDIF
ELSE
HCS=HCS+FLOAT(MAXFL-1)*AUST*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(-ID1, 0,2413, 4)
GOTO 9
ENDIF
HCS=HCS+BUTS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142, 5)
GOTO 9
ENDIF
HCS=HCS+BUST*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413, 6)
GOTO 9
ENDIF
HCS=HCS+CSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 13,2413, 7)
GOTO 9
ENDIF
HCS=HCS+CSUT*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 13,2341, 8)
GOTO 9
ENDIF
ENDIF
ELSE
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142,10)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421,11)
GOTO 9
ENDIF
ENDIF
ELSEIF (ID1.NE.13) THEN
C---QBAR FIRST
IF (ID2.LT.7) THEN
IF (ID1.NE.ID2+6) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,17)
GOTO 9
ENDIF
ELSE
HCS=HCS+FLOAT(MAXFL-1)*AUST*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(-ID1, 0,3142,12)
GOTO 9
ENDIF
HCS=HCS+BUTS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,13)
GOTO 9
ENDIF
HCS=HCS+BUST*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142,14)
GOTO 9
ENDIF
HCS=HCS+CSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 13,3142,15)
GOTO 9
ENDIF
HCS=HCS+CSUT*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 13, 13,4123,16)
GOTO 9
ENDIF
ENDIF
ELSEIF (ID2.NE.13) THEN
IF (ID1.NE.ID2) THEN
HCS=HCS+ASTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,20)
GOTO 9
ENDIF
ELSE
HCS=HCS+BSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,18)
GOTO 9
ENDIF
HCS=HCS+BSUT*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421,19)
GOTO 9
ENDIF
ENDIF
ELSE
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,21)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,22)
GOTO 9
ENDIF
ENDIF
ELSE
C---GLUON FIRST
IF (ID2.LT.7) THEN
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,23)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421,24)
GOTO 9
ENDIF
ELSEIF (ID2.LT.13) THEN
HCS=HCS+CTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3142,25)
GOTO 9
ENDIF
HCS=HCS+CTUS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,4312,26)
GOTO 9
ENDIF
ELSE
HCS=HCS+GFLA*CSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 0, 0,2413,27)
GOTO 9
ENDIF
HCS=HCS+GFLA*CSUT*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP( 0, 0,4123,28)
GOTO 9
ENDIF
HCS=HCS+DTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2341,29)
GOTO 9
ENDIF
HCS=HCS+DSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3421,30)
GOTO 9
ENDIF
HCS=HCS+DUTS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,2413,31)
GOTO 9
ENDIF
ENDIF
ENDIF
5 CONTINUE
6 CONTINUE
EVWGT=HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
IF (IHPRO.EQ.7 .OR.IHPRO.EQ.8 .OR.
& IHPRO.EQ.15.OR.IHPRO.EQ.16) THEN
C qqbar-->gg or qbarq-->gg
UT=1./TU
GCOEF(1)=UT+TU
GCOEF(2)=-2.
GCOEF(3)=0.
GCOEF(4)=0.
GCOEF(5)=GCOEF(1)
GCOEF(6)=UT-TU
GCOEF(7)=-GCOEF(6)
ELSEIF (IHPRO.EQ.10.OR.IHPRO.EQ.11.OR.
& IHPRO.EQ.21.OR.IHPRO.EQ.22.OR.
& IHPRO.EQ.23.OR.IHPRO.EQ.24.OR.
& IHPRO.EQ.25.OR.IHPRO.EQ.26) THEN
C qg-->qg or qbarg-->qbarg or gq-->gq or gqbar-->gqbar
SU=1./US
GCOEF(1)=-(SU+US)
GCOEF(2)=0.
GCOEF(3)=2.
GCOEF(4)=0.
GCOEF(5)=SU-US
GCOEF(6)=GCOEF(1)
GCOEF(7)=-GCOEF(5)
ELSEIF (IHPRO.EQ.27.OR.IHPRO.EQ.28) THEN
C gg-->qqbar
UT=1./TU
GCOEF(1)=TU+UT
GCOEF(2)=-2.
GCOEF(3)=0.
GCOEF(4)=0.
GCOEF(5)=GCOEF(1)
GCOEF(6)=TU-UT
GCOEF(7)=-GCOEF(6)
ELSEIF (IHPRO.EQ.29.OR.IHPRO.EQ.30.OR.
& IHPRO.EQ.31) THEN
C gg-->gg
GT=S*S+T*T+U*U
GCOEF(2)=2.*U*U*T*T
GCOEF(3)=2.*S*S*U*U
GCOEF(4)=2.*S*S*T*T
GCOEF(1)=GT*GT-GCOEF(2)-GCOEF(3)-GCOEF(4)
GCOEF(5)=GT*(GT-2.*S*S)-GCOEF(2)
GCOEF(6)=GT*(GT-2.*T*T)-GCOEF(3)
GCOEF(7)=GT*(GT-2.*U*U)-GCOEF(4)
ELSE
CALL HWVZRO(7,GCOEF)
ENDIF
ENDIF
999 RETURN
END
CDECK ID>, HWHQCP.
*CMZ :- -26/04/91 10.18.57 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHQCP(ID3,ID4,IPERM,IHPR)
C-----------------------------------------------------------------------
C IDENTIFIES HARD SUBPROCESS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER HWRINT,ID3,ID4,IPERM,IHPR,ND3
EXTERNAL HWRINT
IHPRO=IHPR
IF (ID3.GT.0) THEN
IDN(3)=ID3
IDN(4)=ID4
ELSE
ND3=-ID3
IF (ID3.GT.-7) THEN
1 IDN(3)=HWRINT(1,MAXFL)
IF (IDN(3).EQ.ND3) GOTO 1
IDN(4)=IDN(3)+6
ELSE
2 IDN(3)=HWRINT(1,MAXFL)+6
IF (IDN(3).EQ.ND3) GOTO 2
IDN(4)=IDN(3)-6
ENDIF
ENDIF
ICO(1)=IPERM/1000
ICO(2)=IPERM/100-10*ICO(1)
ICO(3)=IPERM/10 -10*(IPERM/100)
ICO(4)=IPERM -10*(IPERM/10)
END
CDECK ID>, HWHQPM.
*CMZ :- -27/07/95 14.13.56 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHQPM
C HARD PROCESS: GAMGAM --> QQBAR/LLBAR/W+W-
C MEAN EVENT WEIGHT = CROSS-SECTION IN NB AFTER CUTS ON PT
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION RCS,HCS,RS,S,EMSQ,BE,TMIN,TMAX,T,U,FACTR,Q,CFAC,
$ HWRGEN
INTEGER IHAD1,IHAD2,HQ,ID3,ID4,I1,I2
SAVE HCS,FACTR,HQ,RS
IHAD1=1
IF (JDAHEP(1,IHAD1).NE.0) IHAD1=JDAHEP(1,IHAD1)
IHAD2=2
IF (JDAHEP(1,IHAD2).NE.0) IHAD2=JDAHEP(1,IHAD2)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
RS=PHEP(5,3)
S=RS**2
HQ=MOD(IPROC,100)
IF (HQ.EQ.0) THEN
EMSQ=0
BE=1
CFAC=3
ELSE
IF (HQ.GT.6) HQ=2*HQ+107
IF (HQ.EQ.127) HQ=198
EMSQ=RMASS(HQ)**2
BE=1-4*EMSQ/S
IF (BE.LT.ZERO) RETURN
BE=SQRT(BE)
CFAC=1
IF (HQ.LE.6) CFAC=3
ENDIF
TMIN=S/2*(1-SQRT(MAX(1-4*(EMSQ+PTMIN**2)/S,ZERO)))
TMAX=S/2*(1-SQRT(MAX(1-4*(EMSQ+PTMAX**2)/S,ZERO)))
IF (TMIN.GE.TMAX) RETURN
T=-(TMAX/TMIN)**HWRGEN(1)*TMIN
IF (HWRGEN(2).GT.HALF) T=-S-T
U=-S-T
COSTH=(T-U)/(BE*S)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
IF (HQ.NE.198) THEN
FACTR=-GEV2NB*2*LOG(TMAX/TMIN)*MAX(T,U)
$ *2*PIFAC*CFAC*ALPHEM**2/S**2
$ *((U-4*EMSQ)/T+(T-4*EMSQ)/U-4*(EMSQ/T+EMSQ/U)**2)
ELSE
FACTR=-GEV2NB*2*LOG(TMAX/TMIN)*MAX(T,U)
$ *6*PIFAC*CFAC*ALPHEM**2/S**2
$ *(1-S/(T*U)*(4D0/3*S+2*EMSQ)
$ +(S/(T*U))**2*(2D0/3*S**2+2*EMSQ**2))
ENDIF
ENDIF
HCS=0.
XX(1)=1.
XX(2)=1.
IF (HQ.EQ.0) THEN
I1=1
I2=6
ELSE
I1=HQ
I2=HQ
ENDIF
DO 10 ID3=I1,I2
IF (RS.GT.2*RMASS(ID3)) THEN
Q=ICHRG(ID3)
IF (HQ.LE.6) Q=Q/THREE
ID4=ID3+6
IF (HQ.EQ.198) ID4=199
HCS=HCS+Q**4
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID3,ID4,1243,61)
GOTO 99
ENDIF
ENDIF
10 CONTINUE
EVWGT=FACTR*HCS
RETURN
99 IDN(1)=59
IDN(2)=59
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHRBB.
*CMZ :- -20/10/99 09:46:43 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRBB
C-----------------------------------------------------------------------
C Subroutine for 2 parton -> 2 parton via UDD resonant squarks
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HCS,S,RCS,HWRGEN,MQ1,MQ2,TAU,LOWTLM,UPPTLM,RTAB,
& SQSH,MATELM,SCF(12),CHANPB(2),HWRUNI,PCM,MIX(12),
& ME(2,3,3,3,3),WD,MS(12),SWD(12),RAND,TAUA,
& CHAN(12),EPS,SH,FAC,TAUB,LAM(6,3,3,3,3),
& XMIN,XMAX,XPOW,XUPP,MS2(12),MSWD(12)
INTEGER I,J,K,L,I1,J1,K1,L1,N,THEP,CONECT(4,5),HWRINT,
& GENR,GN,MIG,MXG,GEN
LOGICAL FIRST
EXTERNAL HWRGEN,HWRUNI
PARAMETER(EPS=1D-20)
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
SAVE HCS,ME,MS,SWD,CHAN,LAM,MIX,FAC,SH,SQSH,SCF,MS2,MSWD
SAVE CONECT
DATA CONECT/1,1,3,4,-1,-1,2,3,0,0,0,0,1,1,-2,-3,-1,-1,-3,-4/
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
IF(FSTWGT) THEN
C--Extract masses and width's needed
DO I=1,3
MS(2*I-1) = RMASS(399+2*I)
MS(2*I) = RMASS(411+2*I)
MS(2*I+5) = RMASS(400+2*I)
MS(2*I+6) = RMASS(412+2*I)
SWD(2*I-1) = HBAR/RLTIM(399+2*I)
SWD(2*I) = HBAR/RLTIM(411+2*I)
SWD(2*I+5) = HBAR/RLTIM(400+2*I)
SWD(2*I+6) = HBAR/RLTIM(412+2*I)
ENDDO
DO I=1,12
MS2(I) = MS(I)**2
MSWD(I) = MS(I)*SWD(I)
ENDDO
C--Now set up the parmaters for multichannel integration
RAND = ZERO
DO K=1,3
CHANPB(1) = ZERO
CHANPB(2) = ZERO
DO I=1,3
DO J=1,3
CHANPB(1)=CHANPB(1)+LAMDA3(I,J,K)**2
CHANPB(2)=CHANPB(2)+LAMDA3(K,I,J)**2
ENDDO
ENDDO
RAND=RAND+CHANPB(1)+CHANPB(2)
DO J=1,2
CHAN(2*K-2+J) = CHANPB(1)*QMIXSS(2*K-1,2,J)**2
CHAN(2*K+4+J) = CHANPB(2)*QMIXSS(2*K ,2,J)**2
MIX(2*K-2+J) = QMIXSS(2*K-1,2,J)**2
MIX(2*K+4+J) = QMIXSS(2*K,2,J)**2
ENDDO
ENDDO
IF(RAND.GT.ZERO) THEN
DO I=1,12
CHAN(I)=CHAN(I)/RAND
ENDDO
ELSE
HCS =ZERO
CALL HWWARN('HWHRBB',500)
ENDIF
C--find the couplings
DO GN=1,3
DO I=1,3
DO J=1,3
DO K=1,3
DO L=1,3
LAM(GN,I,J,K,L) =LAMDA3(I,J,GN)*LAMDA3(K,L,GN)
LAM(GN+3,I,J,K,L)=LAMDA3(GN,I,J)*LAMDA3(GN,K,L)
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
ENDIF
EVWGT = ZERO
S = PHEP(5,3)**2
COSTH = HWRUNI(0,-ONE,ONE)
C--Generate the smoothing
RAND=HWRUNI(0,ZERO,ONE)
DO I=1,12
IF(CHAN(I).GT.RAND) GOTO 20
RAND=RAND-CHAN(I)
ENDDO
20 GENR=I
C--Calculate hard scale and obtain parton distributions
TAUA = MS2(GENR)/S
TAUB = SWD(GENR)**2/S
RTAB = SQRT(TAUA*TAUB)
XUPP = XMAX
IF(XMAX**2.GT.S) XUPP = SQRT(S)
LOWTLM = DATAN((XMIN**2/S-TAUA)/RTAB)/RTAB
UPPTLM = DATAN((XUPP**2/S-TAUA)/RTAB)/RTAB
TAU = HWRUNI(0,LOWTLM,UPPTLM)
TAU = RTAB*TAN(RTAB*TAU)+TAUA
SH = S*TAU
SQSH = SQRT(SH)
EMSCA = SQSH
XX(1) = EXP(HWRUNI(0,ZERO,LOG(TAU)))
XX(2) = TAU/XX(1)
CALL HWSGEN(.FALSE.)
C--Calculate the prefactor due multichannel approach
FAC = ZERO
DO GN=1,12
SCF(GN)=1/((SH-MS2(GN))**2+MSWD(GN)**2)
FAC=FAC+CHAN(GN)*SCF(GN)
ENDDO
FAC=-(UPPTLM-LOWTLM)*LOG(TAU)*GEV2NB
& /(24*PIFAC*SQSH*SH*TAU*FAC*S**2)
ENDIF
C--loop over the quarks
HCS = ZERO
DO GN=1,2
IF(GN.EQ.1) THEN
MIG = 1
MXG = 6
ELSE
MIG = 7
MXG = 12
ENDIF
DO K1=1,3
DO 70 L1=1,3
IF(GN.EQ.1) THEN
K = 2*K1
L = 2*L1-1
ELSE
K=2*K1-1
L=2*L1-1
IF(GN.EQ.2.AND.L1.GE.K1) GOTO 70
ENDIF
MQ1=RMASS(K)
MQ2=RMASS(L)
IF(SQSH.GT.(MQ1+MQ2)) THEN
PCM=SQRT((SH-(MQ1+MQ2)**2)*(SH-(MQ1-MQ2)**2)/(4*SH))
WD = SH*(SH-MQ1**2-MQ2**2)*PCM
ELSE
GOTO 70
ENDIF
DO I1=1,3
DO 60 J1=1,3
IF(GN.EQ.1) THEN
I = 2*I1
J = 2*J1-1
ELSE
I=2*I1-1
J=2*J1-1
IF(J1.GT.I1) GOTO 60
ENDIF
IF(GENEV) GOTO 50
MATELM = ZERO
DO 40 GEN=MIG,MXG
IF(ABS(MIX(GEN)).LT.EPS.OR.
& ABS(LAM(INT((GEN+1)/2),I1,J1,K1,L1)).LT.EPS) GOTO 40
DO 30 GENR=MIG,MXG
IF(ABS(LAM(INT((GENR+1)/2),I1,J1,K1,L1)).LT.EPS.
& OR.ABS(MIX(GENR)).LT.EPS) GOTO 30
MATELM =MATELM+SCF(GEN)*SCF(GENR)*WD*
& ((SH-MS2(GEN))*(SH-MS2(GENR))+
& MSWD(GEN)*MSWD(GENR))
& *LAM(INT((GEN+1)/2),I1,J1,K1,L1)*MIX(GEN)
& *LAM(INT((GENR+1)/2),I1,J1,K1,L1)*MIX(GENR)
30 CONTINUE
40 CONTINUE
ME(GN,I1,J1,K1,L1) = MATELM*FAC
C--Add up the term to get the cross-section
50 HCS = HCS+ME(GN,I1,J1,K1,L1)*DISF(I,1)*DISF(J,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(1,I,J,K,L,0,0)
GOTO 100
ENDIF
HCS = HCS+ME(GN,I1,J1,K1,L1)*DISF(J,1)*DISF(I,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(2,J,I,K,L,0,0)
GOTO 100
ENDIF
HCS = HCS+ME(GN,I1,J1,K1,L1)*DISF(I+6,1)*DISF(J+6,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(1,I,J,K,L,1,0)
GOTO 100
ENDIF
HCS = HCS+ME(GN,I1,J1,K1,L1)*DISF(J+6,1)*DISF(I+6,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(2,J,I,K,L,1,0)
GOTO 100
ENDIF
60 CONTINUE
ENDDO
70 CONTINUE
ENDDO
ENDDO
100 IF(GENEV) THEN
CALL HWETWO(.TRUE.,.TRUE.)
C--first stage of the colour connection corrections
DO THEP=1,5
IF(THEP.NE.3) THEN
JMOHEP(2,THEP+NHEP-5)=NHEP-5+THEP+CONECT(HWRINT(1,4),THEP)
JDAHEP(2,THEP+NHEP-5) = JMOHEP(2,THEP+NHEP-5)
ENDIF
ENDDO
THEP = NHEP-4
IF(HWRINT(1,2).EQ.1) THEN
HRDCOL(2,1) = THEP+3
HRDCOL(2,2) = THEP+4
HRDCOL(1,4) = THEP
HRDCOL(1,5) = THEP+1
ELSE
HRDCOL(2,1) = THEP+4
HRDCOL(2,2) = THEP+3
HRDCOL(1,4) = THEP+1
HRDCOL(1,5) = THEP
ENDIF
DO N=1,5
IF(N.LE.2) THEN
HRDCOL(1,N)=HRDCOL(2,N)
ELSEIF(N.GE.4) THEN
HRDCOL(2,N)=HRDCOL(1,N)
ENDIF
ENDDO
HRDCOL(1,3) = 4
COLUPD = .TRUE.
ELSE
EVWGT = HCS
ENDIF
END
CDECK ID>, HWHRBS.
*CMZ :- -20/10/99 09:46:43 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRBS
C-----------------------------------------------------------------------
C Subroutine for 2 parton -> parton SUSY particle via UDD resonant
C squarks.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HCS,S,RCS,HWRGEN,ME(4),CW,MER(6),MZ,TAU,TAUA,
& TAUB,LOWTLM,UPPTLM,HWRUNI,SH,SQSH,SCF(12),MW2,
& LAMC(3),CHANPB(2),PCM,ECM,RAND,MEN(7,6,3,3),
& MEC(2,6,3,3),RTAB,MS(12),SWD(12),AS,HWUALF,
& MQ,MN,MQS,TH,UH,FAC,MX(14),CHAN(12),MC(2),
& MNS,HWUAEM,SW,G,EC,MW,A(7,14),B(7,14),EPS,XUPP,
& MEH(3,42),XMIN,XMAX,XPOW,FAC2,MH(4),ZSQU(2,2),
& ZQRK(2),MZ2,GUU(4),GDD(4),ME2,MS2(12),MSWD(12)
INTEGER I,J,K,I1,J1,GEN,THEP,HWRINT,L,GT,GU,GR,I2,
& CONECT(2,6,5),GN,GENR,SP,SPMN,SPMX,CON,CHARMN,CHARMX,
& CM,CN
LOGICAL RAD,NEUT,CHAR,HIGGS,FIRST
EXTERNAL HWRGEN,HWRUNI,HWUAEM,HWUALF,HWRINT
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
SAVE HCS,MS,SWD,MX,CHAN,A,B,SPMN,SPMX,RAD,MEN,MEC,HIGGS,
& CHARMN,CHARMX,NEUT,CHAR,SQSH,MEH,SW,CW,MW,MZ,MER,SH,MH,
& AS,EC,FAC,G,SCF,ZSQU,ZQRK,MW2,MZ2,MS2,MSWD,GUU,GDD
PARAMETER(EPS=1D-20)
SAVE CONECT
DATA CONECT/ 4, 4, 2, 3, 0, 0, 1,-2,-1,-3,-4,-4,
& 3, 4, 3, 3, 0, 0, 1,-3,-1,-4,-3,-3,
& 1, 4,-1, 3, 0, 0, 1, 1,-3,-4,-1,-1,
& 1, 3,-1, 2, 0, 0,-3,-2, 0, 0, 0, 0,
& 1, 4,-1, 3, 0, 0,-3,-2,-1,-1,-1,-1/
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
IF(FSTWGT) THEN
C--Extract masses and width's needed
DO I=1,3
MS(2*I-1) = RMASS(399+2*I)
MS(2*I) = RMASS(411+2*I)
MS(2*I+5) = RMASS(400+2*I)
MS(2*I+6) = RMASS(412+2*I)
SWD(2*I-1) = HBAR/RLTIM(399+2*I)
SWD(2*I) = HBAR/RLTIM(411+2*I)
SWD(2*I+5) = HBAR/RLTIM(400+2*I)
SWD(2*I+6) = HBAR/RLTIM(412+2*I)
ENDDO
DO I=1,12
MS2(I) = MS(I)**2
MSWD(I) = MS(I)*SWD(I)
ENDDO
C--Electroweak parameters
SW = SQRT(SWEIN)
CW = SQRT(1-SWEIN)
MW = RMASS(198)
MZ = RMASS(200)
MW2 = MW**2
MZ2 = MZ**2
C--Now set up the parmaters for multichannel integration
RAND = ZERO
DO K=1,3
CHANPB(1) = ZERO
CHANPB(2) = ZERO
DO I=1,3
DO J=1,3
CHANPB(1)=CHANPB(1)+LAMDA3(I,J,K)**2
CHANPB(2)=CHANPB(2)+LAMDA3(K,I,J)**2
ENDDO
ENDDO
RAND=RAND+CHANPB(1)+CHANPB(2)
DO J=1,2
CHAN(2*K-2+J) = CHANPB(1)*QMIXSS(2*K-1,2,J)**2
CHAN(2*K+4+J) = CHANPB(2)*QMIXSS(2*K ,2,J)**2
MX(2*K-2+J) = QMIXSS(2*K-1,2,J)
MX(2*K+4+J) = QMIXSS(2*K,2,J)
ENDDO
MX(13) = ZERO
MX(14) = ZERO
ENDDO
IF(RAND.GT.ZERO) THEN
DO I=1,12
CHAN(I)=CHAN(I)/RAND
ENDDO
ELSE
CALL HWWARN('HWHRBS',500)
ENDIF
C--Couplings we need for the various processes
C--Gluino
DO I=1,3
DO J=1,2
A(1,2*I-2+J) = QMIXSS(2*I-1,2,J)
B(1,2*I-2+J) = -QMIXSS(2*I-1,1,J)
A(1,2*I+4+J) = QMIXSS(2*I,2,J)
B(1,2*I+4+J) = -QMIXSS(2*I,1,J)
ENDDO
ENDDO
C--Now the neutralinos
DO L=1,4
MC(1) = ZMIXSS(L,3)/(2*MW*COSB*SW)
MC(2) = ZMIXSS(L,4)/(2*MW*SINB*SW)
DO I=1,3
DO J=1,2
A(L+1,2*I-2+J) = ZSGNSS(L)*(MC(1)*QMIXSS(2*I-1,1,J)*
& RMASS(2*I-1)+SRFCH(2*I-1,L)*QMIXSS(2*I-1,2,J))
B(L+1,2*I-2+J) = MC(1)*QMIXSS(2*I-1,2,J)*
& RMASS(2*I-1)+SLFCH(2*I-1,L)*QMIXSS(2*I-1,1,J)
A(L+1,2*I+4+J) = ZSGNSS(L)*(MC(2)*QMIXSS(2*I,1,J)*
& RMASS(2*I)+SRFCH(2*I ,L)*QMIXSS(2*I,2,J))
B(L+1,2*I+4+J) = MC(2)*QMIXSS(2*I,2,J)*
& RMASS(2*I)+SLFCH(2*I, L)*QMIXSS(2*I,1,J)
ENDDO
ENDDO
ENDDO
C--Now for the charginos
DO L=1,2
MC(1) = 1/(SQRT(2.0D0)*MW*COSB)
MC(2) = 1/(SQRT(2.0D0)*MW*SINB)
DO I=1,3
DO J=1,2
A(5+L,2*I-2+J) = -WSGNSS(L)*WMXVSS(L,2)*MC(2)*
& RMASS(2*I)*QMIXSS(2*I-1,1,J)
B(5+L,2*I-2+J) = WMXUSS(L,1)*QMIXSS(2*I-1,1,J)
& -WMXUSS(L,2)*MC(1)*RMASS(2*I-1)*QMIXSS(2*I-1,2,J)
A(5+L,2*I+4+J) = -WMXUSS(L,2)*MC(1)*RMASS(2*I-1)
& *QMIXSS(2*I,1,J)
B(5+L,2*I+4+J) = WSGNSS(L)*(WMXVSS(L,1)*QMIXSS(2*I,1,J)
& -WMXVSS(L,2)*MC(2)*RMASS(2*I)*QMIXSS(2*I,2,J))
ENDDO
ENDDO
ENDDO
C--Zero couplings
DO I=1,7
A(I,13) = ZERO
B(I,13) = ZERO
A(I,14) = ZERO
B(I,14) = ZERO
ENDDO
C--Couplings to the Z boson of squarks and right-handed quarks
ZQRK(1) = -SW**2/6.0D0/CW
ZQRK(2) = SW**2/3.0D0/CW
ZSQU(1,1) = HALF*(QMIXSS(5,1,1)**2-2.0D0*SW**2/3.0D0)/CW
ZSQU(1,2) = HALF*QMIXSS(5,1,1)*QMIXSS(5,1,2)/CW
ZSQU(2,1) = -HALF*(QMIXSS(6,1,1)**2-4.0D0*SW**2/3.0D0)/CW
ZSQU(2,2) = -HALF*QMIXSS(6,1,1)*QMIXSS(6,1,2)/CW
C--Higgs Masses
DO I=1,4
MH(I) = RMASS(202+I)
ENDDO
C--Higgs couplings to quarks
DO I=1,3
GUU(I) = GHUUSS(I)**2*HALF**2/MW2
GDD(I) = GHDDSS(I)**2*HALF**2/MW2
ENDDO
GUU(4) = ONE/TANB**2/MW2/8.0D0
GDD(4) = ONE*TANB**2/MW2/8.0D0
C--decide which processes to generate from IPROC
RAD = .FALSE.
NEUT = .FALSE.
CHAR = .FALSE.
HIGGS = .FALSE.
SPMN = 1
SPMX = 5
CHARMN = 1
CHARMX = 2
IF(MOD(IPROC,10000).EQ.4100) THEN
RAD = .TRUE.
NEUT = .TRUE.
CHAR = .TRUE.
HIGGS = .TRUE.
ELSEIF(MOD(IPROC,10000).LT.4120) THEN
SPMN = 2
IF(MOD(IPROC,10000).NE.4110) THEN
SPMN = MOD(IPROC,10)+1
SPMX = SPMN
ENDIF
NEUT=.TRUE.
ELSEIF(MOD(IPROC,10000).LT.4130) THEN
IF(MOD(IPROC,10000).NE.4120) THEN
CHARMN = MOD(IPROC,10)
CHARMX=CHARMN
ENDIF
CHAR = .TRUE.
ELSEIF(MOD(IPROC,10000).EQ.4130) THEN
SPMX = 1
NEUT=.TRUE.
ELSEIF(MOD(IPROC,10000).EQ.4140) THEN
RAD = .TRUE.
ELSEIF(MOD(IPROC,10000).EQ.4150) THEN
HIGGS = .TRUE.
ELSE
CALL HWWARN('HWHRBS',501)
ENDIF
ENDIF
EVWGT = ZERO
S = PHEP(5,3)**2
COSTH = HWRUNI(0,-ONE,ONE)
C--zero the array
DO I=1,6
DO J=1,3
DO K=1,3
DO L=1,7
MEN(L,I,J,K)=ZERO
ENDDO
DO L=1,2
MEC(L,I,J,K)=ZERO
ENDDO
ENDDO
ENDDO
ENDDO
C--Multichannel peak
RAND=HWRUNI(0,ZERO,ONE)
DO I=1,12
IF(CHAN(I).GT.RAND) GOTO 25
RAND=RAND-CHAN(I)
ENDDO
25 GENR=I
C--Calculate the hard scale and obtain parton distributions
TAUA = MS2(GENR)/S
TAUB = SWD(GENR)**2/S
RTAB = SQRT(TAUA*TAUB)
XUPP = XMAX
IF(XMAX**2.GT.S) XUPP = SQRT(S)
LOWTLM = DATAN((XMIN**2/S-TAUA)/RTAB)/RTAB
UPPTLM = DATAN((XUPP**2/S-TAUA)/RTAB)/RTAB
TAU = HWRUNI(0,LOWTLM,UPPTLM)
TAU = RTAB*TAN(RTAB*TAU)+TAUA
SH = S*TAU
SQSH = SQRT(SH)
EMSCA = SQSH
XX(1) = EXP(HWRUNI(0,ZERO,LOG(TAU)))
XX(2) = TAU/XX(1)
CALL HWSGEN(.FALSE.)
C--Strong, EM coupling and weak couplings
AS = HWUALF(1,EMSCA)
EC = SQRT(4*PIFAC*HWUAEM(SH))
G = EC/SW
C--Calculate the prefactor due multichannel approach
FAC = ZERO
DO GN=1,12
SCF(GN)=1/((SH-MS2(GN))**2+MSWD(GN)**2)
FAC=FAC+CHAN(GN)*SCF(GN)
ENDDO
FAC=-(UPPTLM-LOWTLM)*LOG(TAU)*GEV2NB
& /(48*PIFAC*SQSH*SH*TAU*FAC*S**2)
ENDIF
HCS = ZERO
IF(.NOT.NEUT) GOTO 200
DO 140 GN=1,6
GR=2*GN
IF(CHAN(GR).LT.EPS) GOTO 140
DO 130 L=SPMN,SPMX
K = 2*GN+5
IF(GN.GT.3) K = 2*GN
MQ = RMASS(K)
MN = ABS(RMASS(448+L))
MQS = MQ**2
MNS = MN**2
IF(SQSH.LT.(MQ+MN)) GOTO 130
PCM=SQRT((SH-(MQ+MN)**2)*(SH-(MQ-MN)**2)/(4*SH))
ECM=SQRT(PCM**2+MQS)
TH = MQS-SQSH*(ECM-PCM*COSTH)
UH = MQS-SQSH*(ECM+PCM*COSTH)
DO I=1,3
DO 120 J=1,3
IF(GN.LE.3) THEN
GU = 6+2*I
I1 = 2*I
LAMC(1) = LAMDA3(I,J,GN)**2
ELSE
GU = 2*I
I1 = 2*I-1
LAMC(1) = LAMDA3(GN-3,I,J)**2
IF(J.GT.I) LAMC(1) = ZERO
ENDIF
GT = 2*J
J1 = 2*J-1
C--Now the matrix elements
IF(LAMC(1).LT.EPS) GOTO 120
IF(GENEV) GOTO 110
C--S channel
ME(3) = MX(GR)**2*SCF(GR)*SH*((SH-MQS-MNS)*(A(L,GR)**2+
& B(L,GR)**2)-4*MQ*MN*A(L,GR)*B(L,GR))
ME(4) =-TWO*MX(GU)*MX(GT)*(MQS*MNS-UH*TH)*A(L,GT)*A(L,GU)
& /(TH-MS2(GT))/(UH-MS2(GU))
& +TWO*MX(GR)*MX(GU)*(SH-MS2(GR))*SCF(GR)*SH*
& A(L,GU)*(A(L,GR)*UH+B(L,GR)*MQ*MN)/(UH-MS2(GU))
& +TWO*MX(GR)*MX(GT)*(SH-MS2(GR))*SCF(GR)*SH*
& A(L,GT)*(A(L,GR)*TH+B(L,GR)*MQ*MN)/(TH-MS2(GT))
C--L/R s channel and interference
IF(ABS(MX(GR-1)).GT.EPS) THEN
ME(3) = ME(3)+
& MX(GR-1)**2*SCF(GR-1)*SH*((SH-MQS-MNS)*(A(L,GR-1)**2
& +B(L,GR-1)**2)-4*MQ*MN*A(L,GR-1)*B(L,GR-1))
& +TWO*MX(GR)*MX(GR-1)*SCF(GR)*SCF(GR-1)*SH*
& ((SH-MS2(GR))*(SH-MS2(GR-1))+MSWD(GR)*MSWD(GR-1))*
& ((SH-MQS-MNS)*(A(L,GR)*A(L,GR-1)
& +B(L,GR)*B(L,GR-1))
& -TWO*MQ*MN*(A(L,GR)*B(L,GR-1)+A(L,GR-1)*B(L,GR)))
ME(4) = ME(4)+TWO*MX(GR-1)*MX(GU)*(SH-MS2(GR-1))
& *SCF(GR-1)*A(L,GU)*SH*(A(L,GR-1)*UH+B(L,GR-1)*MQ*MN)
& /(UH-MS2(GU))
& +TWO*MX(GR-1)*MX(GT)*(SH-MS2(GR-1))*SCF(GR-1)*SH*
& A(L,GT)*(A(L,GR-1)*TH+B(L,GR-1)*MQ*MN)/(TH-MS2(GT))
IF(ABS(MX(GU-1)).GT.EPS) ME(4)=ME(4)+TWO*MX(GR-1)*
& MX(GU-1)*(SH-MS2(GR-1))*SCF(GR-1)*A(L,GU-1)*SH*(
& A(L,GR-1)*UH+B(L,GR-1)*MQ*MN)/(UH-MS2(GU-1))
IF(ABS(MX(GT-1)).GT.EPS) ME(4)=ME(4)+TWO*MX(GR-1)*
& MX(GT-1)*(SH-MS2(GR-1))*SCF(GR-1)*A(L,GT-1)*SH*
& (A(L,GR-1)*TH+B(L,GR-1)*MQ*MN)/(TH-MS2(GT-1))
ENDIF
C--u channel and L/R mixing
ME(1)= MX(GU)**2*(MQS-UH)*(MNS-UH)*
& (A(L,GU)**2+B(L,GU)**2)/(UH-MS2(GU))**2
IF(ABS(MX(GU-1)).GT.EPS) THEN
ME(1) = ME(1)+MX(GU-1)**2*(MQS-UH)*(MNS-UH)*
& (A(L,GU-1)**2+B(L,GU-1)**2)/(UH-MS2(GU-1))**2
& +TWO*MX(GU)*MX(GU-1)*(MQS-UH)*(MNS-UH)*
& (A(L,GU)*A(L,GU-1)+B(L,GU)*B(L,GU-1))
& /(UH-MS2(GU))/(UH-MS2(GU-1))
ME(4) =ME(4)+TWO*MX(GR)*MX(GU-1)*(SH-MS2(GR))*
& SCF(GR)*A(L,GU-1)*SH*(A(L,GR)*UH+B(L,GR)*MQ*MN)
& /(UH-MS2(GU-1))
& -2*MX(GU-1)*MX(GT)*(MQS*MNS-UH*TH)*A(L,GT)*
& A(L,GU-1)/(TH-MS2(GT))/(UH-MS2(GU-1))
IF(ABS(MX(GT-1)).GT.EPS) ME(4)=ME(4)-2*MX(GU-1)*MX(GT-1)
& *(MQS*MNS-UH*TH)*A(L,GT-1)*A(L,GU-1)
& /(TH-MS2(GT-1))/(UH-MS2(GU-1))
ENDIF
C--t channel and t channel L/R mixing
ME(2) = MX(GT)**2*(MQS-TH)*(MNS-TH)*
& (A(L,GT)**2+B(L,GT)**2)/(TH-MS2(GT))**2
IF(ABS(MX(GT-1)).GT.EPS) THEN
ME(2) = ME(2)+MX(GT-1)**2*(MQS-TH)*(MNS-TH)*
& (A(L,GT-1)**2+B(L,GT-1)**2)/(TH-MS2(GT-1))**2
& +TWO*MX(GT)*MX(GT-1)*(MQS-TH)*(MNS-TH)*(A(L,GT)*
& A(L,GT-1)+ B(L,GT)*B(L,GT-1))
& /(TH-MS2(GT))/(TH-MS2(GT-1))
ME(4)=ME(4)-TWO*MX(GU)*MX(GT-1)*(MQS*MNS-UH*TH)*
& A(L,GT-1)*A(L,GU)/(TH-MS2(GT-1))/(UH-MS2(GU))
& +TWO*MX(GR)*MX(GT-1)*(SH-MS2(GR))*SCF(GR)*
& A(L,GT-1)*SH*(A(L,GR)*TH+B(L,GR)*MQ*MN)
& /(TH-MS2(GT-1))
ENDIF
C--Angular ordering and the phase space factors
IF(L.EQ.1) THEN
ME(4)=-HALF*ME(4)/(ME(1)+ME(2)+ME(3))
LAMC(1) = 32.0D0*LAMC(1)*AS*PIFAC/THREE
DO GEN=1,3
MEN(GEN,GN,I,J) = FAC*PCM*LAMC(1)*ME(GEN)*(ONE+ME(4))
ENDDO
ELSE
LAMC(1) = TWO*LAMC(1)*EC**2
MEN(L+2,GN,I,J)=FAC*PCM*LAMC(1)*(ME(1)+ME(2)+ME(3)+ME(4))
ENDIF
C--Multiply by the pdf's
110 IF(L.EQ.1) THEN
CM = 1
CN = 3
ELSE
CM = L+2
CN = L+2
ENDIF
DO GEN=CM,CN
CON = 4
IF(GEN.LE.3) CON = GEN
HCS=HCS+MEN(GEN,GN,I,J)*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(3,I1,J1,K,GEN,0,0)
GOTO 900
ENDIF
HCS=HCS+MEN(GEN,GN,I,J)*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(4,J1,I1,K,GEN,0,0)
GOTO 900
ENDIF
HCS=HCS+MEN(GEN,GN,I,J)*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(3,I1,J1,K,GEN,1,0)
GOTO 900
ENDIF
HCS=HCS+MEN(GEN,GN,I,J)*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(4,J1,I1,K,GEN,1,0)
GOTO 900
ENDIF
ENDDO
120 CONTINUE
ENDDO
130 CONTINUE
140 CONTINUE
C--Now the chargino processes if wanted
200 IF(.NOT.CHAR) GOTO 300
DO 240 GN=1,6
GR=2*GN
IF(CHAN(GR).LT.EPS) GOTO 240
DO 230 L=CHARMN,CHARMX
SP =5+L
K = 2*GN+6
IF(GN.GT.3) K = 2*GN-1
MQ = RMASS(K)
MN = ABS(RMASS(453+L))
MQS = MQ**2
MNS = MN**2
IF(SQSH.LT.(MQ+MN)) GOTO 230
PCM=SQRT((SH-(MQ+MN)**2)*(SH-(MQ-MN)**2)/(4*SH))
ECM=SQRT(PCM**2+MQS)
TH = MQS-SQSH*(ECM-PCM*COSTH)
UH = MQS-SQSH*(ECM+PCM*COSTH)
DO I=1,3
DO 220 J=1,3
IF(GN.LE.3) THEN
GU = 2*I
GT = 14
I1 = 2*I
LAMC(1) = LAMDA3(I,J,GN)
LAMC(2) = LAMDA3(GN,I,J)
LAMC(3) = ZERO
ELSE
GU = 6+2*I
GT = 6+2*J
I1 = 2*I-1
LAMC(1) = LAMDA3(GN-3,I,J)
LAMC(2) = LAMDA3(I,J,GN-3)
LAMC(3) = LAMDA3(J,GN-3,I)
IF(J.GT.I) LAMC(1) = ZERO
ENDIF
J1 = 2*J-1
IF(ABS(LAMC(1)).LT.EPS) GOTO 220
IF(GENEV) GOTO 210
C--Matrix element
C--S channel
ME(1) = LAMC(1)**2*MX(GR)**2*SCF(GR)*SH*((SH-MQS-MNS)*
& (A(SP,GR)**2+B(SP,GR)**2)-4*MQ*MN*A(SP,GR)*B(SP,GR))
IF(ABS(MX(GU)).GT.EPS) THEN
ME(1) = ME(1)+LAMC(2)**2*MX(GU)**2*(MQS-UH)*(MNS-UH)*
& (A(SP,GU)**2+B(SP,GU)**2)/(UH-MS2(GU))**2
& +LAMC(1)*LAMC(2)*TWO*MX(GR)*MX(GU)*
& (SH-MS2(GR))*SCF(GR)*A(SP,GU)*SH*
& (A(SP,GR)*UH+B(SP,GR)*MQ*MN)/(UH-MS2(GU))
IF(ABS(MX(GT)).GT.EPS) ME(1) = ME(1)-LAMC(2)*LAMC(3)*
& TWO*MX(GU)*MX(GT)*(MQS*MNS-UH*TH)*A(SP,GT)*
& A(SP,GU)/(TH-MS2(GT))/(UH-MS2(GU))
ENDIF
IF(ABS(MX(GT)).GT.EPS) THEN
ME(1) = ME(1)+LAMC(3)**2*MX(GT)**2*(MQS-TH)*(MNS-TH)*
& (A(SP,GT)**2+B(SP,GT)**2)/(TH-MS2(GT))**2
& +LAMC(1)*LAMC(3)*TWO*MX(GR)*MX(GT)*
& (SH-MS2(GR))*SCF(GR)*A(SP,GT)*SH*
& (A(SP,GR)*TH+B(SP,GR)*MQ*MN)/(TH-MS2(GT))
ENDIF
c--L/R s channel and interference
IF(ABS(MX(GR-1)).GT.EPS) THEN
ME(1) = ME(1)+LAMC(1)**2*MX(GR-1)**2*SCF(GR-1)*SH*
& ((SH-MQS-MNS)*(A(SP,GR-1)**2+B(SP,GR-1)**2)
& -4*MQ*MN*A(SP,GR-1)*B(SP,GR-1))
& +LAMC(1)**2*TWO*MX(GR)*MX(GR-1)*SCF(GR)*
& SCF(GR-1)*SH*
& ((SH-MS2(GR))*(SH-MS2(GR-1))+
& MSWD(GR)*MSWD(GR-1))*
& ((SH-MQS-MNS)*(A(SP,GR)*A(SP,GR-1)+
& B(SP,GR)*B(SP,GR-1))-TWO*MQ*MN*
& (A(SP,GR)*B(SP,GR-1)+A(SP,GR-1)*B(SP,GR)))
IF(ABS(MX(GU)).GT.EPS) ME(1) = ME(1)+LAMC(1)*LAMC(2)*
& TWO*MX(GR-1)*MX(GU)*(SH-MS2(GR-1))*SCF(GR-1)*
& A(SP,GU)*SH*(A(SP,GR-1)*UH+B(SP,GR-1)*MQ*MN)
& /(UH-MS2(GU))
IF(ABS(MX(GT)).GT.EPS) ME(1) = ME(1)+LAMC(1)*LAMC(3)*
& TWO*MX(GR-1)*MX(GT)*(SH-MS2(GR-1))*SCF(GR-1)*
& A(SP,GT)*SH*(A(SP,GR-1)*TH+B(SP,GR-1)*MQ*MN)
& /(TH-MS2(GT))
IF(ABS(MX(GU-1)).GT.EPS) ME(1)=ME(1)+LAMC(1)*LAMC(2)*
& TWO*MX(GR-1)*MX(GU-1)*(SH-MS2(GR-1))*
& SCF(GR-1)*A(SP,GU-1)*SH*(A(SP,GR-1)*UH+
& B(SP,GR-1)*MQ*MN)/(UH-MS2(GU-1))
IF(ABS(MX(GT-1)).GT.EPS) ME(1)=ME(1)+LAMC(1)*LAMC(3)*
& TWO*MX(GR-1)*MX(GT-1)*(SH-MS2(GR-1))*
& SCF(GR-1)*A(SP,GT-1)*SH*(A(SP,GR-1)*TH+
& B(SP,GR-1)*MQ*MN)/(TH-MS2(GT-1))
ENDIF
C--u channel and L/R mixing
IF(ABS(MX(GU-1)).GT.EPS) THEN
ME(1) = ME(1)+LAMC(2)**2*MX(GU-1)**2*(MQS-UH)*(MNS-UH)*
& (A(SP,GU-1)**2+B(SP,GU-1)**2)/(UH-MS2(GU-1))**2
& +LAMC(2)**2*TWO*MX(GU)*MX(GU-1)*(MQS-UH)*(MNS-UH)*
& (A(SP,GU)*A(SP,GU-1)+B(SP,GU)*B(SP,GU-1))
& /(UH-MS2(GU))/(UH-MS2(GU-1))
& +TWO*LAMC(1)*LAMC(2)*MX(GR)*MX(GU-1)*
& (SH-MS2(GR))*SCF(GR)*A(SP,GU-1)*SH*
& (A(SP,GR)*UH+B(SP,GR)*MQ*MN)/(UH-MS2(GU-1))
IF(ABS(MX(GT)).GT.EPS) ME(1)=ME(1)-LAMC(2)*LAMC(3)*TWO*
& MX(GU-1)*MX(GT)*(MQS*MNS-UH*TH)*A(SP,GT)*A(SP,GU-1)
& /(TH-MS2(GT))/(UH-MS2(GU-1))
IF(ABS(MX(GT-1)).GT.EPS) ME(1)=ME(1)-LAMC(2)*LAMC(3)*
& TWO*MX(GU-1)*MX(GT-1)*(MQS*MNS-UH*TH)*A(SP,GT-1)*
& A(SP,GU-1)/(TH-MS2(GT-1))/(UH-MS2(GU-1))
ENDIF
C--t channel and t channel L/R mixing
IF(ABS(MX(GT-1)).GT.EPS) THEN
ME(1) = ME(1)+LAMC(3)**2*MX(GT-1)**2*(MQS-TH)*(MNS-TH)*
& (A(SP,GT-1)**2+B(SP,GT-1)**2)/(TH-MS2(GT-1))**2
& +LAMC(3)**2*TWO*MX(GT)*MX(GT-1)*(MQS-TH)*(MNS-TH)*
& (A(SP,GT)*A(SP,GT-1)+B(SP,GT)*B(SP,GT-1))
& /(TH-MS2(GT))/(TH-MS2(GT-1))
& +LAMC(1)*LAMC(3)*TWO*MX(GR)*MX(GT-1)*
& (SH-MS2(GR))*SCF(GR)*A(SP,GT-1)*SH*
& (A(SP,GR)*TH+B(SP,GR)*MQ*MN)/(TH-MS2(GT-1))
IF(ABS(MX(GU)).GT.EPS) ME(1)=ME(1)-LAMC(2)*LAMC(3)*TWO*
& MX(GU)*MX(GT-1)*(MQS*MNS-UH*TH)*A(SP,GT-1)*A(SP,GU)
& /(TH-MS2(GT-1))/(UH-MS2(GU))
ENDIF
c--phase space factors
MEC(L,GN,I,J) = G**2*FAC*ME(1)*PCM
210 CON = 4
I2 = SP+2
IF(MOD(K,2).EQ.1) I2 =I2+2
HCS=HCS+MEC(L,GN,I,J)*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(3,I1,J1,K,I2,0,0)
GOTO 900
ENDIF
HCS=HCS+MEC(L,GN,I,J)*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(4,J1,I1,K,I2,0,0)
GOTO 900
ENDIF
HCS=HCS+MEC(L,GN,I,J)*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(3,I1,J1,K,I2+2,1,0)
GOTO 900
ENDIF
HCS=HCS+MEC(L,GN,I,J)*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(4,J1,I1,K,I2+2,1,0)
GOTO 900
ENDIF
220 CONTINUE
ENDDO
230 CONTINUE
240 CONTINUE
C--Now the radiative decays, if possible
300 IF(.NOT.RAD.OR.(CHAN(5).LT.EPS.AND.CHAN(11).LT.EPS)) GOTO 400
IF(GENEV) GOTO 320
DO 310 I=1,6
310 MER(I)=ZERO
C--stop to light stop and Z
IF(SH.GT.(MZ+MS(11))**2) THEN
PCM = SQRT((SH-(MZ+MS(11))**2)*(SH-(MZ-MS(11))**2))*HALF/SQSH
ECM=SQRT(PCM**2+MZ2)
TH = MZ2-SQSH*(ECM-PCM*COSTH)
UH = MZ2-SQSH*(ECM+PCM*COSTH)
MER(3) = SH**2*PCM**2*(SCF(11)*ZSQU(2,1)**2*QMIXSS(6,2,1)**2
& +SCF(12)*ZSQU(2,2)**2*QMIXSS(6,2,2)**2
& +TWO*SCF(11)*SCF(12)*QMIXSS(6,2,1)*QMIXSS(6,2,2)*
& ZSQU(2,1)*ZSQU(2,2)*((SH-MS2(11))*
& (SH-MS2(12))+MSWD(11)*MSWD(12)))
& +QMIXSS(6,2,1)**2/UH**2*ZQRK(1)**2*(
& TWO*MZ2*(UH*TH-MS2(11)*MZ2)+UH**2*SH)
& +QMIXSS(6,2,1)**2/TH**2*ZQRK(1)**2*(
& TWO*MZ2*(UH*TH-MS2(11)*MZ2)+TH**2*SH)
& +ZQRK(1)*SH*QMIXSS(6,2,1)*
& (QMIXSS(6,2,1)*ZSQU(2,1)*(SH-MS2(11))*SCF(11)
& +QMIXSS(6,2,2)*ZSQU(2,2)*(SH-MS2(12))*SCF(12))
& *((MZ2*(TWO*MS2(11)-TH)+TH*(SH-MS2(11)))/TH
& +(MZ2*(TWO*MS2(11)-UH)+UH*(SH-MS2(11)))/UH)
& -TWO*QMIXSS(6,2,1)**2/UH/TH*ZQRK(1)**2*
& (TWO*MZ2*(MS2(11)-UH)*(MS2(11)-TH)-SH*TH*UH)
MER(3) = MER(3)*FOUR*PCM/MZ2
ENDIF
C--sbottom to light sbottom and Z
IF(SH.GT.(MZ+MS(5))**2) THEN
PCM = SQRT((SH-(MZ+MS(5))**2)*(SH-(MZ-MS(5))**2))*HALF/SQSH
ECM=SQRT(PCM**2+MZ2)
TH = MZ2-SQSH*(ECM-PCM*COSTH)
UH = MZ2-SQSH*(ECM+PCM*COSTH)
MER(6) = SH**2*PCM**2*(SCF(5)*QMIXSS(5,2,1)**2*ZSQU(1,1)**2
& +SCF(6)*QMIXSS(5,2,2)**2*ZSQU(1,2)**2
& +TWO*SCF(5)*SCF(6)*QMIXSS(5,2,1)*QMIXSS(5,2,2)*
& ZSQU(1,1)*ZSQU(1,2)*((SH-MS2(5))*
& (SH-MS2(6))+MSWD(5)*MSWD(6)))
& +QMIXSS(5,2,1)**2/UH**2*ZQRK(1)**2*
& (TWO*MZ2*(UH*TH-MS2(5)*MZ2)+UH**2*SH)
& +QMIXSS(5,2,1)**2/TH**2*ZQRK(2)**2*
& (TWO*MZ2*(UH*TH-MS2(5)*MZ2)+TH**2*SH)
& +QMIXSS(5,2,1)*SH*
& (QMIXSS(5,2,1)*ZSQU(1,1)*(SH-MS2(5))*SCF(5)
& +QMIXSS(5,2,2)*ZSQU(1,2)*(SH-MS2(6))*SCF(6))*
& (ZQRK(1)/UH*(MZ2*(TWO*MS2(5)-UH)+(SH-MS2(5))*UH)
& +ZQRK(2)/TH*(MZ2*(TWO*MS2(5)-TH)+(SH-MS2(5))*TH))
& -TWO*QMIXSS(5,2,1)**2*ZQRK(1)*ZQRK(2)/UH/TH*
& (TWO*MZ2*(MS2(5)-UH)*(MS2(5)-TH)-SH*TH*UH)
MER(6) = MER(6)*FOUR*PCM/MZ2
ENDIF
C--stop to sbottom and W
DO J=1,2
IF(SH.GT.(MW+MS(4+J))**2) THEN
PCM =SQRT((SH-(MW+MS(4+J))**2)*(SH-(MW-MS(4+J))**2))*HALF/SQSH
C--diagram square pieces
DO I=1,2
MER(J)=MER(J)+SCF(10+I)*
& (QMIXSS(6,2,I)*QMIXSS(6,1,I)*QMIXSS(5,1,J))**2
ENDDO
C--light/heavy interference
MER(J)=TWO*SH**2*PCM**3/MW2*(MER(J)+TWO*SCF(11)*SCF(12)*
& ((SH-MS2(11))*(SH-MS2(12))
& +MSWD(11)*MSWD(12))*QMIXSS(5,1,J)**2*
& QMIXSS(6,2,1)*QMIXSS(6,2,2)*QMIXSS(6,1,1)*QMIXSS(6,1,2))
ENDIF
C--sbottom to stop and W
IF(SH.GT.(MW+MS(10+J))**2) THEN
PCM=SQRT((SH-(MW+MS(10+J))**2)*(SH-(MW-MS(10+J))**2))*HALF/SQSH
C--diagram square pieces
DO I=1,2
MER(J+3)=MER(J+3)+SCF(4+I)*
& (QMIXSS(5,2,I)*QMIXSS(5,1,I)*QMIXSS(6,1,J))**2
ENDDO
C--light/heavy interference
MER(J+3)=TWO*SH**2*PCM**3/MW2*(MER(J+3)+TWO*SCF(5)*SCF(6)*
& ((SH-MS2(5))*(SH-MS2(6))+
& MSWD(5)*MSWD(6))*QMIXSS(6,1,J)**2*
& QMIXSS(5,2,1)*QMIXSS(5,2,2)*QMIXSS(5,1,1)*QMIXSS(5,1,2))
ENDIF
ENDDO
C--Now multiply by the parton distributions and phase space factors
320 DO J=1,3
DO K=1,3
CON = 5
C--resonant stop's
IF(ABS(LAMDA3(3,J,K)).GT.EPS.AND.J.LT.K) THEN
FAC2 = LAMDA3(3,J,K)**2*FAC*G**2
DO I=1,3
I1=2*J-1
J1=2*K-1
ME2 = MER(I)*FAC2
HCS=HCS+ME2*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(5,I1,J1,I,I,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(6,J1,I1,I,I,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(5,I1,J1,I,I,1,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(6,J1,I1,I,I,1,0)
GOTO 900
ENDIF
ENDDO
ENDIF
C--resonant sbottom's
IF(ABS(LAMDA3(J,K,3)).GT.EPS) THEN
FAC2 = LAMDA3(J,K,3)**2*FAC*G**2
DO I=4,6
I1=2*J
J1=2*K-1
ME2 = MER(I)*FAC2
HCS=HCS+ME2*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(5,I1,J1,I,I,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(6,J1,I1,I,I,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(5,I1,J1,I,I,1,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(6,J1,I1,I,I,1,0)
GOTO 900
ENDIF
ENDDO
ENDIF
ENDDO
ENDDO
C--Now the Higgs decays if possible
400 IF(.NOT.HIGGS) GOTO 900
IF(GENEV) GOTO 490
DO I=1,3
DO 405 J=1,42
405 MEH(I,J) = ZERO
ENDDO
DO I=1,3
DO 420 J=1,3
C--Neutral Higgs down type squark
IF(SQSH.LT.MH(J)+MS(2*I-1)) GOTO 410
PCM = SQRT((SH-(MH(J)+MS(2*I-1))**2)*
& (SH-(MH(J)-MS(2*I-1))**2))*HALF/SQSH
ECM=SQRT(PCM**2+MH(J)**2)
TH = MH(J)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(J)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,3*I-3+J) = PCM*SH*(
& QMIXSS(2*I-1,2,1)**2*SCF(2*I-1)*GHSQSS(J,2*I-1,1,1)**2
& +QMIXSS(2*I-1,2,2)**2*SCF(2*I)*GHSQSS(J,2*I-1,2,1)**2
& +TWO*QMIXSS(2*I-1,2,1)*QMIXSS(2*I-1,2,2)*SCF(2*I-1)
& *SCF(2*I)*GHSQSS(J,2*I-1,1,1)*GHSQSS(J,2*I-1,2,1)*
& ((SH-MS2(2*I-1))*(SH-MS2(2*I))+MSWD(2*I-1)*MSWD(2*I)))
MEH(2,3*I-3+J) = PCM*GUU(J)*QMIXSS(2*I,2,1)**2/TH**2*
& (TH*UH-MH(J)**2*MS2(2*I-1))
MEH(3,3*I-3+J) = PCM*GDD(J)*QMIXSS(2*I,2,1)**2/UH**2*
& (TH*UH-MH(J)**2*MS2(2*I-1))
C--Neutral Higgs up type squarks
410 IF(SQSH.LT.MH(J)+MS(2*I+5)) GOTO 420
PCM = SQRT((SH-(MH(J)+MS(2*I+5))**2)*
& (SH-(MH(J)-MS(2*I+5))**2))*HALF/SQSH
ECM=SQRT(PCM**2+MH(J)**2)
TH = MH(J)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(J)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,3*I+6+J) = PCM*SH*(
& QMIXSS(2*I,2,1)**2*SCF(2*I+5)*GHSQSS(J,2*I,1,1)**2
& +QMIXSS(2*I,2,2)**2*SCF(2*I+6)*GHSQSS(J,2*I,2,1)**2
& +TWO*QMIXSS(2*I,2,1)*QMIXSS(2*I,2,2)*SCF(2*I+5)
& *SCF(2*I+6)*GHSQSS(J,2*I,1,1)*GHSQSS(J,2*I,2,1)*
& ((SH-MS2(2*I+5))*(SH-MS2(2*I+6))+
& MSWD(2*I+5)*MSWD(2*I+6)))
MEH(2,3*I+6+J) = PCM*GDD(J)*QMIXSS(2*I-1,2,1)**2/TH**2*
& (TH*UH-MH(J)**2*MS2(2*I+5))
MEH(3,3*I+6+J) = PCM*GDD(J)*QMIXSS(2*I-1,2,1)**2/UH**2*
& (TH*UH-MH(J)**2*MS2(2*I+5))
420 CONTINUE
C--Charged Higgs up type squark
DO 440 J=1,2
IF(SQSH.LT.MH(4)+MS(2*I+4+J)) GOTO 430
PCM = SQRT((SH-(MH(4)+MS(2*I+4+J))**2)*
& (SH-(MH(4)-MS(2*I+4+J))**2))*HALF/SQSH
ECM=SQRT(PCM**2+MH(4)**2)
TH = MH(4)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(4)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,4*I+14+J) = PCM*SH*(
& QMIXSS(2*I-1,2,1)**2*GHSQSS(4,2*I,J,1)**2*SCF(2*I-1)
& +QMIXSS(2*I-1,2,2)**2*GHSQSS(4,2*I,J,2)**2*SCF(2*I)
& +TWO*QMIXSS(2*I-1,2,1)*QMIXSS(2*I-1,2,2)*SCF(2*I-1)
& *SCF(2*I)*GHSQSS(4,2*I,J,1)*GHSQSS(4,2*I,J,2)*
& ((SH-MS2(2*I-1))*(SH-MS2(2*I))+
& MSWD(2*I-1)*MSWD(2*I)))
MEH(2,4*I+14+J) = PCM*QMIXSS(2*I,2,J)**2*GDD(4)/TH**2*
& (UH*TH-MS2(2*I+4+J)*MH(4)**2)
C--Charged Higgs down type squark
430 IF(SQSH.LT.MH(4)+MS(2*I-2+J)) GOTO 440
PCM = SQRT((SH-(MH(4)+MS(2*I-2+J))**2)*
& (SH-(MH(4)-MS(2*I-2+J))**2))*HALF/SQSH
ECM=SQRT(PCM**2+MH(4)**2)
TH = MH(4)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(4)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,4*I+16+J) = PCM*SH*(
& QMIXSS(2*I,2,1)**2*GHSQSS(4,2*I-1,J,1)**2*SCF(2*I+5)
& +QMIXSS(2*I,2,2)**2*GHSQSS(4,2*I-1,J,2)**2*SCF(2*I+6)
& +TWO*QMIXSS(2*I,2,1)*QMIXSS(2*I,2,2)*SCF(2*I+5)
& *SCF(2*I+6)*GHSQSS(4,2*I-1,J,1)*GHSQSS(4,2*I-1,J,2)*
& ((SH-MS2(2*I+5))*(SH-MS2(2*I+6))+
& MSWD(2*I+5)*MSWD(2*I+6)))
MEH(2,4*I+16+J) = PCM*QMIXSS(2*I-1,2,J)**2*GUU(4)/TH**2*
& (UH*TH-MS2(2*I-2+J)*MH(4)**2)
MEH(3,4*I+16+J) = PCM*QMIXSS(2*I-1,2,J)**2*GUU(4)/UH**2*
& (UH*TH-MS2(2*I-2+J)*MH(4)**2)
440 CONTINUE
ENDDO
490 DO I=1,3
DO J=1,3
DO K=1,3
CON = 5
DO L=1,3
IF(ABS(LAMDA3(J,K,I)).GT.EPS) THEN
C--neutral higgs and sdown
FAC2 = FAC*G**2*LAMDA3(J,K,I)**2
I1=2*J
J1=2*K-1
ME2 = FAC2*(MEH(1,3*I-3+L)+RMASS(I1)**2*MEH(2,3*I-3+L)
& +RMASS(J1)**2*MEH(3,3*I-3+L))
HCS=HCS+ME2*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,L,2*I-1,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,L,2*I-1,0,0)
GOTO 900
ENDIF
IF(I2.NE.200) I2=198
HCS=HCS+ME2*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,L,2*I-1,1,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,L,2*I-1,1,0)
GOTO 900
ENDIF
ENDIF
IF(ABS(LAMDA3(I,J,K)).GT.EPS.AND.J.LT.K) THEN
FAC2 = FAC*G**2*LAMDA3(I,J,K)**2
C--neutral higgs and sup
I1=2*J-1
J1=2*K-1
ME2 = FAC2*(MEH(1,3*I+6+L)+RMASS(I1)**2*MEH(2,3*I+6+L)
& +RMASS(J1)**2*MEH(3,3*I+6+L))
HCS=HCS+ME2*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,L,2*I+5,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,L,2*I+5,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,L,2*I+5,1,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,L,2*I+5,1,0)
GOTO 900
ENDIF
ENDIF
ENDDO
DO L=1,2
IF(ABS(LAMDA3(J,K,I)).GT.EPS) THEN
C--charged higgs and sup
I1=2*J
J1=2*K-1
FAC2 = FAC*G**2
ME2 = FAC2*(LAMDA3(J,K,I)**2*MEH(1,4*I+L+14)
& +LAMDA3(I,J,K)**2*RMASS(I1-1)**2*MEH(2,4*I+L+14))
HCS= HCS+ME2*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,4,2*I+4+L,0,0)
GOTO 900
ENDIF
HCS= HCS+ME2*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,4,2*I+4+L,0,0)
GOTO 900
ENDIF
HCS= HCS+ME2*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,5,2*I+4+L,1,0)
GOTO 900
ENDIF
HCS= HCS+ME2*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,5,2*I+4+L,1,0)
GOTO 900
ENDIF
ENDIF
C--charged higgs and sdown
IF(ABS(LAMDA3(I,J,K)).GT.EPS.AND.J.LT.K) THEN
I1=2*J-1
J1=2*K-1
FAC2 = FAC*G**2
ME2 = FAC2*(MEH(1,4*I+L+16)*LAMDA3(I,J,K)**2
& +RMASS(I1+1)**2*LAMDA3(J,I,K)**2*MEH(2,4*I+L+16)
& +RMASS(J1+1)**2*LAMDA3(K,I,J)**2*MEH(3,4*I+L+16))
HCS=HCS+ME2*DISF(I1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,5,2*I-2+L,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1,1)*DISF(I1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,5,2*I-2+L,0,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(I1+6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(7,I1,J1,4,2*I-2+L,1,0)
GOTO 900
ENDIF
HCS=HCS+ME2*DISF(J1+6,1)*DISF(I1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(8,J1,I1,4,2*I-2+L,1,0)
GOTO 900
ENDIF
ENDIF
ENDDO
ENDDO
ENDDO
ENDDO
C--calculate of the matrix elements
900 IF(GENEV) THEN
CALL HWETWO(.TRUE.,.TRUE.)
IF(IERROR.NE.0) RETURN
HVFCEN = .TRUE.
C--first stage of the colour connection corrections
DO THEP=1,5
IF(THEP.NE.3) THEN
JMOHEP(2,THEP+NHEP-5)=NHEP-5+THEP
& +CONECT(HWRINT(1,2),THEP,CON)
JDAHEP(2,THEP+NHEP-5) = JMOHEP(2,THEP+NHEP-5)
ENDIF
ENDDO
IF(IDHEP(NHEP-4).LT.0) THEN
JDAHEP(2,NHEP-4)=NHEP-1
JDAHEP(2,NHEP-3)=NHEP-3
JDAHEP(2,NHEP-1)=NHEP-4
IF(CON.EQ.5) JDAHEP(2,NHEP-4)=NHEP
JDAHEP(2,NHEP)=CONECT(1,6,CON)+NHEP
ELSE
JMOHEP(2,NHEP-4)=NHEP-1
JMOHEP(2,NHEP-3)=NHEP-3
JMOHEP(2,NHEP-1)=NHEP-4
IF(CON.EQ.5) JMOHEP(2,NHEP-4)=NHEP
JMOHEP(2,NHEP)=CONECT(1,6,CON)+NHEP
ENDIF
IF(CON.EQ.5) THEN
SP=JDAHEP(2,NHEP)
JDAHEP(2,NHEP) = JDAHEP(2,NHEP-1)
JDAHEP(2,NHEP-1) = SP
SP=JMOHEP(2,NHEP)
JMOHEP(2,NHEP) = JMOHEP(2,NHEP-1)
JMOHEP(2,NHEP-1) = SP
ENDIF
HRDCOL(1,1) = NHEP
HRDCOL(1,2) = NHEP-2
ELSE
EVWGT = HCS
ENDIF
END
CDECK ID>, HWHREE.
*CMZ :- -05/04/02 15:40:41 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHREE
C-----------------------------------------------------------------------
C SUSY E+E- --> SM PARTICLES VIA RPV
C MODIFIED TO INCLUDE BEAM POLARIZATION EFFECTS BY PETER RICHARDSON
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUPCM,HWUMBW,HWUAEM,HCS,RCS,FACA,
& S,T,PCM,MQ1,MQ2,SP,TP,TPZ,TPN,TPN2,MSL2(3),MZ,
& MZ2,MSU2(3,2),MWD(3),GL,GR,GLP,GRP,EC,EE,THTMIN,
& MIX(3,2),CFAC,LAM(4,3,3,3,3,3),MET,ME(2,3,3)
DOUBLE COMPLEX FSLL,FSLR,FSRL,FSRR,FTLL,FTLR,FTRL,FTRR,Z,Z0,GZ,
& SCF(3)
INTEGER I,IHEP,RSID(2),IL,GN,J,K,L,GNMN,GNMX,K1,L1,NTRY,GNR,FID(2)
SAVE HCS,MSL2,MWD,LAM,ME,GL,GR,MZ,MZ2,MSU2,MIX,GNMN,GNMX,IL,RSID,
& FID
EXTERNAL HWRGEN,HWRUNI,HWUPCM,HWUMBW,HWUAEM
PARAMETER(Z=(0.D0,1.D0),Z0=(0.D0,0.D0))
C--Start of the code
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
IF(FSTWGT) THEN
C--identify the beam particles
IF(ABS(IDHEP(1)).EQ.11) THEN
C--electron beams
RSID(1) = 2
IL = 1
ELSEIF(ABS(IDHEP(1)).EQ.13) THEN
C--muon beams
RSID(1) = 1
IL = 2
C--unrecognized beam particles issue warning
ELSE
CALL HWWARN('HWHREE',500)
ENDIF
RSID(2) = 3
C--masses of the sleptons
DO I=1,3
MSL2(I) = RMASS(424+2*I)
MWD(I) = MSL2(I)*HBAR/RLTIM(424+2*I)
MSL2(I) = MSL2(I)**2
ENDDO
C--masses and mixings of the t channel squarks
DO I=1,3
MSU2(I,1) = RMASS(400+2*I)
MSU2(I,2) = RMASS(412+2*I)
DO J=1,2
MIX(I,J) = QMIXSS(2*I,1,J)**2
MSU2(I,J) = MSU2(I,J)**2
ENDDO
ENDDO
C--Z mass
MZ = RMASS(200)
MZ2 = MZ**2
C--find the couplings
DO GN=1,3
DO I=1,3
DO J=1,3
DO K=1,3
DO L=1,3
LAM(1,GN,I,J,K,L) = LAMDA1(GN,I,J)*LAMDA1(GN,K,L)
LAM(2,GN,I,J,K,L) = LAMDA1(GN,I,J)*LAMDA2(GN,K,L)
LAM(3,GN,I,J,K,L) = LAM(1,GN,I,J,K,L)
LAM(4,GN,I,J,K,L) = LAMDA2(I,GN,J)*LAMDA2(K,GN,L)
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
C--Z couplings
GL = LFCH(11)
GR = RFCH(11)
C--select the process from the IPROC code
IF(IPROC.EQ.860) THEN
GNMN = 1
GNMX = 2
FID(1) = 0
FID(2) = 0
ELSEIF(IPROC.GE.870.AND.IPROC.LT.890) THEN
J = MOD(IPROC,10)
IF(MOD(IPROC,10).EQ.0) THEN
FID(1) = 0
FID(2) = 0
ELSE
FID(1) = MOD(J-1,3)+1
FID(2) = INT((J-1)/3)+1
ENDIF
IF(IPROC.LT.880) THEN
GNMN = 1
ELSE
GNMN = 2
ENDIF
GNMX = GNMN
ELSE
CALL HWWARN('HWHREE',501)
ENDIF
ENDIF
C--calculate the kinematic varibles
EVWGT = ZERO
S = PHEP(5,3)**2
THTMIN = ONE-FOUR*PTMIN**2/S
IF(THTMIN.LT.ZERO) CALL HWWARN('HWHREE',502)
THTMIN = SQRT(THTMIN)
COSTH = HWRUNI(0,-THTMIN,THTMIN)
EMSCA = PHEP(5,3)
GZ = ONE/(S-MZ**2+Z*MZ*GAMZ)
EE = HWUAEM(S)
FACA = GEV2NB*EE**2*PIFAC*S/FOUR
EE = 0.25D0/EE/PIFAC
SP = ONE/S
T = -HALF*S*(ONE-COSTH)
TP = ONE/T
TPZ = ONE/(T-MZ2)
C--Calculate the prefactor due multichannel approach
DO GN=1,3
IF(GN.EQ.RSID(1).OR.GN.EQ.RSID(2)) THEN
SCF(GN)= ONE/(S-MSL2(GN)+Z*MWD(GN))
ELSE
SCF(GN) = Z0
ENDIF
ENDDO
ENDIF
C--Now the loop to actually calculate the cross sections
HCS = ZERO
DO GN=GNMN,GNMX
GNR = GN+2
DO K1=1,3
DO 80 L1=1,3
IF(FID(1).NE.0.AND.(FID(1).NE.K1.OR.FID(2).NE.L1).AND.
& (FID(1).NE.L1.OR.FID(2).NE.K1)) GOTO 80
IF(GN.EQ.1) THEN
K = 119+2*K1
L = 125+2*L1
GLP = GL
GRP = GR
EC = ONE
CFAC = ONE
ELSEIF(GN.EQ.2) THEN
K = 2*K1-1
L = 2*L1+5
GLP = LFCH(K)
GRP = RFCH(K)
EC = ONE/THREE
CFAC = THREE
ENDIF
MQ1 = RMASS(K)
MQ2 = RMASS(L)
IF(EMSCA.LT.(MQ1+MQ2)) GOTO 80
MET = ZERO
IF(GENEV) GOTO 60
C--calculate the matrix element
C--set all coefficents to zero
FSLL = Z0
FSLR = Z0
FSRL = Z0
FSRR = Z0
FTLL = Z0
FTLR = Z0
FTRL = Z0
FTRR = Z0
C--Standard Model terms
IF(K1.EQ.L1) THEN
C--first if same flavour pair production
FSLL = EC*SP+GL*GRP*GZ
FSLR = EC*SP+GL*GLP*GZ
FSRL = EC*SP+GR*GRP*GZ
FSRR = EC*SP+GR*GLP*GZ
C--t channel terms if e+e- --> e+e-
IF(K1.EQ.IL.AND.GN.EQ.1) THEN
FTLL = TP+GL*GR*TPZ
FTLR = TP+GL**2*TPZ
FTRL = TP+GR**2*TPZ
FTRR = TP+GL*GR*TPZ
ENDIF
ENDIF
C--Now add the RPV terms
DO I=1,3
IF(GN.EQ.1) THEN
TPN = ONE/(T-MSL2(I))
TPN2 = TPN
ELSE
TPN = MIX(I,1)/(T-MSU2(I,1))+ MIX(I,2)/(T-MSU2(I,2))
TPN2 = ZERO
ENDIF
FSLL = FSLL+HALF*LAM(GNR,I,IL,K1,IL,L1)*EE*TPN
FSRR = FSRR+HALF*LAM(GNR,I,K1,IL,L1,IL)*EE*TPN2
FTLL = FTLL+HALF*LAM(GN,I,IL,IL,K1,L1)*EE*SCF(I)
FTRR = FTRR+HALF*LAM(GN,I,IL,IL,L1,K1)*EE*SCF(I)
ENDDO
C--now calculate the matrix element (including beam polarization)
MET =(ONE+COSTH)**2*DREAL(
& DCONJG(FSLR)*FSLR*(ONE-EPOLN(3))*(ONE+PPOLN(3))
& +DCONJG(FSRL)*FSRL*(ONE+EPOLN(3))*(ONE-PPOLN(3))
& +DCONJG(FTLR)*FTLR*(ONE-EPOLN(3))*(ONE+PPOLN(3))
& +DCONJG(FTRL)*FTRL*(ONE+EPOLN(3))*(ONE-PPOLN(3))
& +TWO*FTLR*DCONJG(FSLR)*(ONE-EPOLN(3))*(ONE+PPOLN(3))
& +TWO*FTRL*DCONJG(FSRL)*(ONE+EPOLN(3))*(ONE-PPOLN(3)))
& +(ONE-COSTH)**2*DREAL(
& DCONJG(FSLL)*FSLL*(ONE-EPOLN(3))*(ONE+PPOLN(3))
& +DCONJG(FSRR)*FSRR*(ONE+EPOLN(3))*(ONE-PPOLN(3)))
& +FOUR*DREAL(
& DCONJG(FTLL)*FTLL*(ONE+EPOLN(3))*(ONE+PPOLN(3))
& +DCONJG(FTRR)*FTRR*(ONE-EPOLN(3))*(ONE-PPOLN(3)))
C--final phase space factors
ME(GN,K1,L1) = MET*CFAC*FACA*THTMIN
60 HCS = HCS+ME(GN,K1,L1)
IF(HCS.GT.RCS.AND.GENEV) GOTO 900
80 CONTINUE
ENDDO
ENDDO
900 IF(GENEV) THEN
C--change sign of COSTH if antiparticle first
IF(IDHEP(1).LT.IDHEP(2)) COSTH = -COSTH
C-Set up the particle types
IDHW(NHEP+1) = 15
IDHEP(NHEP+1) = 0
ISTHEP(NHEP+1) = 110
IDHW(NHEP+2) = K
IDHW(NHEP+3) = L
IDHEP(NHEP+2) = IDPDG(K)
IDHEP(NHEP+3) = IDPDG(L)
C--Select the masses of the particles and the final-state momenta
910 NTRY = NTRY+1
PHEP(5,NHEP+2) = HWUMBW(K)
PHEP(5,NHEP+3) = HWUMBW(L)
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PCM = HWUPCM(PHEP(5,NHEP+1),PHEP(5,NHEP+2),PHEP(5,NHEP+3))
IF(PCM.LT.ZERO.AND.NTRY.LE.NETRY) THEN
GOTO 910
ELSEIF(PCM.LT.ZERO) THEN
CALL HWWARN('HWHREE',100)
GOTO 999
ENDIF
C--Set up the colours etc
ISTHEP(NHEP+2) = 113
ISTHEP(NHEP+3) = 114
JMOHEP(1,NHEP+1) = 1
IF (JDAHEP(1,1).NE.0) JMOHEP(1,NHEP+1)=JDAHEP(1,1)
JMOHEP(2,NHEP+1) = 2
IF (JDAHEP(1,2).NE.0) JMOHEP(2,NHEP+1)=JDAHEP(1,2)
JMOHEP(1,NHEP+2) = NHEP+1
JMOHEP(2,NHEP+2) = NHEP+3
JMOHEP(1,NHEP+3) = NHEP+1
JMOHEP(2,NHEP+3) = NHEP+2
JDAHEP(1,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+3
JDAHEP(1,NHEP+2) = 0
JDAHEP(2,NHEP+2) = NHEP+3
JDAHEP(1,NHEP+3) = 0
JDAHEP(2,NHEP+3) = NHEP+2
C--Set up the momenta
IHEP = NHEP+2
PHEP(4,IHEP) = SQRT(PCM**2+PHEP(5,IHEP)**2)
PHEP(3,IHEP) = PCM*COSTH
PHEP(1,IHEP) = SQRT((PCM+PHEP(3,IHEP))*(PCM-PHEP(3,IHEP)))
PHEP(2,IHEP) = ZERO
CALL HWRAZM(PHEP(1,IHEP),PHEP(1,IHEP),PHEP(2,IHEP))
CALL HWULOB(PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP+1))
NHEP = NHEP+3
ELSE
EVWGT = HCS
ENDIF
999 RETURN
END
CDECK ID>, HWHREM.
*CMZ :- -01/06/94 17.03.31 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHREM(IBEAM,ITARG)
C-----------------------------------------------------------------------
C IDENTIFY THE REMNANTS OF THE HARD SCATTERING
C AND BREAK THEIR COLOUR CONNECTION IF NECESSARY
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION PCL(5),
$ P1P2,P1SQ,P2SQ,S,M1SQ,M2SQ,TMP1,TMP2,A,B,C,D,PTOT(4),HWULDO
INTEGER IBEAM,ITARG,IHEP,NTEMP,I,ICOL,IANT
LOGICAL LTEMP,T,COL,ANT
PARAMETER (T=.TRUE.)
COL(I)=I.EQ.13 .OR. I.GE.1.AND.I.LE.6 .OR. I.GE.115.AND.I.LE.120
ANT(I)=I.EQ.13 .OR. I.GE.7.AND.I.LE.12.OR. I.GE.109.AND.I.LE.114
C---LOOK FOR UNTREATED BEAM AND TARGET REMNANTS
IBEAM=0
ITARG=0
DO 10 IHEP=1,NHEP
IF (ISTHEP(IHEP).EQ.148) THEN
IF (ITARG.NE.0) THEN
CALL HWWARN('HWHREM',100)
GOTO 999
ENDIF
ITARG=IHEP
ELSEIF (ISTHEP(IHEP).EQ.147) THEN
IF (IBEAM.NE.0) THEN
CALL HWWARN('HWHREM',101)
GOTO 999
ENDIF
IBEAM=IHEP
ENDIF
10 CONTINUE
IF (ITARG.EQ.0) THEN
CALL HWWARN('HWHREM',102)
GOTO 999
ENDIF
IF (IBEAM.EQ.0) THEN
CALL HWWARN('HWHREM',103)
GOTO 999
ENDIF
C---MHS FIX TO PREVENT MOMENTUM VIOLATION DUE TO OFF-SHELL BEAM REMNANTS
C---FIND REMNANT MOMENTA AND MASSES
P1P2=HWULDO(PHEP(1,IBEAM),PHEP(1,ITARG))
P1SQ=HWULDO(PHEP(1,IBEAM),PHEP(1,IBEAM))
P2SQ=HWULDO(PHEP(1,ITARG),PHEP(1,ITARG))
S=P1SQ+2*P1P2+P2SQ
TMP1=P1P2**2-P1SQ*P2SQ
IF (TMP1.LE.0) THEN
CALL HWWARN('HWHREM',104)
GOTO 999
ENDIF
TMP1=SQRT(TMP1)
M1SQ=RMASS(IDHW(IBEAM))**2
M2SQ=RMASS(IDHW(ITARG))**2
TMP2=(S-M1SQ-M2SQ)**2-4*M1SQ*M2SQ
IF (TMP2.LE.0) THEN
CALL HWWARN('HWHREM',105)
GOTO 999
ENDIF
TMP2=SQRT(TMP2)
C---EXCHANGE A LITTLE MOMENTUM TO PUT THEM BOTH ON MASS-SHELL
A=(1-(P1P2+P2SQ)/TMP1)/2
B=(1-(P1P2+P1SQ)/TMP1)/2
C=(S-M1SQ+M2SQ-TMP2)/(2*S)
D=(S+M1SQ-M2SQ-TMP2)/(2*S)
CALL HWVSUM(4,PHEP(1,IBEAM),PHEP(1,ITARG),PTOT)
CALL HWVSCA(4,(1-A)*(1-C)+A*D,PHEP(1,IBEAM),PHEP(1,IBEAM))
CALL HWVSCA(4,B*(1-C)+(1-B)*D,PHEP(1,ITARG),PHEP(1,ITARG))
CALL HWVSUM(4,PHEP(1,IBEAM),PHEP(1,ITARG),PHEP(1,IBEAM))
CALL HWVDIF(4,PTOT,PHEP(1,IBEAM),PHEP(1,ITARG))
CALL HWUMAS(PHEP(1,IBEAM))
CALL HWUMAS(PHEP(1,ITARG))
C---END MHS FIX
C---IF THEY ARE COLOUR CONNECTED, DISCONNECT THEM BY EMITTING A SOFT
C GLUON AND SPLITTING THAT GLUON TO LIGHT QUARKS
C (WHICH NORMALLY GETS DONE AS THE FIRST STAGE OF CLUSTER FORMATION)
C---LOOP OVER COLOUR/ANTICOLOUR LINE
DO 20 I=1,2
IF (I.EQ.1) THEN
ICOL=IBEAM
IANT=ITARG
ELSE
ICOL=ITARG
IANT=IBEAM
ENDIF
IF (COL(IDHW(ICOL)).AND.ANT(IDHW(IANT)).AND.
$ JMOHEP(2,ICOL).EQ.IANT.AND.JDAHEP(2,IANT).EQ.ICOL) THEN
CALL HWVSUM(4,PHEP(1,ICOL),PHEP(1,IANT),PCL)
CALL HWUMAS(PCL)
NTEMP=NHEP
CALL HWCCUT(ICOL,IANT,PCL,T,LTEMP)
IF (IERROR.NE.0) RETURN
C---IF NOTHING WAS CREATED THEY MUST BE BELOW THRESHOLD, SO GIVE UP
IF (NHEP.NE.NTEMP+2) RETURN
C---RELABEL THEM AS PERTUBATIVE JUST TO NEATEN UP THE EVENT RECORD
ISTHEP(NHEP-1)=149
ISTHEP(NHEP)=149
ENDIF
20 CONTINUE
999 RETURN
END
CDECK ID>, HWHREP.
*CMZ :- -18/10/00 13:46:47 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHREP
C-----------------------------------------------------------------------
C SUSY E+E- RPV PRODUCTION
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
IF(IPROC.GE.800.AND.IPROC.LE.850) THEN
CALL HWHRES
ELSEIF(IPROC.GE.860.AND.IPROC.LT.890) THEN
CALL HWHREE
C---UNRECOGNIZED PROCESS
ELSE
CALL HWWARN('HWHREP',500)
ENDIF
END
CDECK ID>, HWHRES.
*CMZ :- -07/04/02 10:38:51 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRES
C-----------------------------------------------------------------------
C SUSY E+E- --> RPV SINGLE SPARTICLE PRODUCTION
C POLARZATION EFFECTS ADDED 5/4/02 BY PETER RICHARDSON
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWUAEM,HWRUNI,HWUPCM,HWUMBW,HCS,RCS,FACA,
& FACB,FACC,FACD,FACE,M1(4,4),M2(2,4),M3(8,2),
& MW,MZ,MSCL(2,2),MSCL2(2,2),MZ2,MSL2,MSR2,MSNU2,
& MW2,MCH(2),MCH2(2),MNU(4),MNU2(4),MLT(3),MLT2(3),
& MNUT(2),MNUT2(2),RMNUT(2),S,U,T,QPE,SQPE,SM,DM,
& PF,PCM,SCF(2),UP,TP,MH(4),MH2(4),THCOS(2),THTMIN,
& A(6,4),B(6,4),SW,CW,MC,SIN2B,ZNU,RHO,HSL(2,2),
& HL(4),M4(10,2),HNU(3)
INTEGER I,SSNU,NTID(2),CHID(2),IG1,IG2,IHEP,SSCH,ISL,ISR,NTRY,
& ISN,IDL,J,L,RSID(2),K,L2,IL,IDZ,RADID(2,8),GMIN,GMAX
LOGICAL NEUT,CHAR,RAD,HIGGS,THSGN
SAVE HCS,M1,M2,M3,M4,SW,CW,MW,MZ,MW2,MZ2,MLT,MLT2,MNUT,MNUT2,
& RMNUT,MNU,MNU2,MCH,MCH2,MSNU2,A,B,MSL2,MSR2,MSCL,
& MSCL2,ZNU,THCOS,HSL,HL,HNU,MH,MH2,GMIN,GMAX,
& RADID,NTID,ISL,ISR,ISN,IDL,CHID,RSID,IL,NEUT,CHAR,RAD,HIGGS
EXTERNAL HWRGEN,HWUAEM,HWRUNI,HWUPCM,HWUMBW
PARAMETER (SSNU=449,SSCH = 455)
C--Start of the code
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
C--Initialise the hard processes
IF(FSTWGT) THEN
C--Decide which processes to generate
NEUT = .FALSE.
CHAR = .FALSE.
RAD = .FALSE.
HIGGS = .FALSE.
C--all single sparticle production
IF(IPROC.EQ.800) THEN
NEUT = .TRUE.
CHAR = .TRUE.
RAD = .TRUE.
HIGGS = .TRUE.
NTID(1) = 1
NTID(2) = 4
CHID(1) = 1
CHID(2) = 2
GMIN = 1
GMAX = 6
C--single neutralino production
ELSEIF(IPROC.GE.810.AND.IPROC.LE.814) THEN
NEUT = .TRUE.
IF(IPROC.EQ.810) THEN
NTID(1) = 1
NTID(2) = 4
ELSE
NTID(1) = IPROC-810
NTID(2) = NTID(1)
ENDIF
C--single chargino production
ELSEIF(IPROC.GE.820.AND.IPROC.LE.822) THEN
CHAR = .TRUE.
IF(IPROC.EQ.820) THEN
CHID(1) = 1
CHID(2) = 2
ELSE
CHID(1) = IPROC-820
CHID(2) = CHID(1)
ENDIF
C--single slepton production with gauge boson
ELSEIF(IPROC.EQ.830) THEN
RAD = .TRUE.
GMIN = 1
GMAX = 6
C--single slepton production with Higgs boson
ELSEIF(IPROC.EQ.840) THEN
HIGGS = .TRUE.
C--photon radiation processes
ELSEIF(IPROC.EQ.850) THEN
RAD = .TRUE.
GMIN = 7
GMAX = 8
C--unrecognized process issue warning
ELSE
CALL HWWARN('HWHRES',500)
ENDIF
C--check the particles in the beam
RSID(2) = 3
IF(ABS(IDHEP(1)).EQ.11) THEN
C--electron beams
ISL = 425
ISR = 437
ISN = 426
RSID(1) = 2
IL = 1
ELSEIF(ABS(IDHEP(1)).EQ.13) THEN
C--muon beams
ISL = 427
ISR = 439
ISN = 428
RSID(1) = 1
IL = 2
C--unrecognised beam particles issue warning
ELSE
CALL HWWARN('HWHRES',501)
ENDIF
IDL=ABS(IDHEP(1))
C--masses and electroweak parameters
SW = SQRT(SWEIN)
CW = SQRT(1-SWEIN)
MW = RMASS(198)
MZ = RMASS(200)
MW2 = MW**2
MZ2 = MZ**2
SIN2B = TWO*SINB*COSB
C--neutralino and chargino masses
DO I=1,4
MNU(I) = RMASS(SSNU+I)
MNU2(I) = MNU(I)**2
ENDDO
DO I = 1,2
MCH(I) = RMASS(I+SSCH)
MCH2(I) = MCH(I)**2
ENDDO
C--incoming lepton mass
MLT(1) = RMASS(IDL+110)
C--lepton masses in chargino production
DO I=1,2
MLT(I+1) = RMASS(119+2*RSID(I))
ENDDO
DO I=1,3
MLT2(I) = MLT(I)**2
ENDDO
C--t-channel slepton masses
MSL2 = RMASS(ISL)**2
MSR2 = RMASS(ISR)**2
MSNU2 = RMASS(ISN)**2
C--resonant sneutrino masses and widths
DO I=1,2
MNUT(I) = RMASS(424+2*RSID(I))
MNUT2(I) = MNUT(I)**2
RMNUT(I) = MNUT2(I)*HBAR**2/RLTIM(424+2*RSID(I))**2
ENDDO
C--now calculate the coefficients for the processes
C--first neutralino production
DO L=1,4
MC = MLT(1)*ZMIXSS(L,3)/(TWO*MW*COSB*SW)
C--first for the left slepton
A(L,1) = SLFCH(IDL,L)
B(L,1) = ZSGNSS(L)*MC
C--then the right slepton
A(L,2) = ZSGNSS(L)*SRFCH(IDL,L)
B(L,2) = MC
C--the resonant sneutrino
DO I=1,2
A(L,2+I) = SLFCH(10+2*RSID(I),L)
B(L,2+I) = ZERO
ENDDO
ENDDO
C--now chargino production
DO L=1,2
J=L+4
MC = WMXUSS(L,2)/(SQRT(TWO)*MW*COSB*SW)
C--first for the t channel sneutrino
A(J,1) = WSGNSS(L)*WMXVSS(L,1)/SW
B(J,1) = -MLT(1)*MC
C--now for the resonant sneutrinos
DO I=1,2
A(J,I+1) = WSGNSS(L)*WMXVSS(L,1)/SW
B(J,I+1) = -MLT(I+1)*MC
ENDDO
ENDDO
C--coupling of the Z to the sneutrino
ZNU = HALF/SW/CW
C--now the masses and IDs of the slepton in the radiative processes
C--IDs and masses of the charged sleptons
DO I=1,2
RADID(2,2*I-1) = 423+RSID(I)*2
RADID(2,2*I ) = 435+RSID(I)*2
MSCL(I,1) = RMASS(RADID(2,2*I-1))
MSCL(I,2) = RMASS(RADID(2,2*I))
DO J=1,2
MSCL2(I,J) = MSCL(I,J)**2
ENDDO
ENDDO
C--ID of the W for charged slepton processes
DO I=1,4
RADID(1,I) = 198
ENDDO
C--ID's for the Z and gamma processes
DO I=1,2
RADID(1,I+4) = 200
RADID(1,I+6) = 59
RADID(2,I+4) = 424+RSID(I)*2
RADID(2,I+6) = RADID(2,I+4)
ENDDO
C--couplings of the sleptons to the Higgs
DO I=1,2
DO J=1,2
K = 2*RSID(I)-1
L = 119+2*RSID(I)
HSL(I,J) = LMIXSS(K,1,J)*(RMASS(L)**2*TANB-MW2*SIN2B)
& +LMIXSS(K,2,J)*RMASS(L)*MUSS
IF(RSID(I).EQ.3) HSL(I,J) = HSL(I,J)
& +LMIXSS(K,2,J)*RMASS(L)*ALSS*TANB
HSL(I,J) = HSL(I,J)/SQRT(HALF)/MW
ENDDO
ENDDO
C--coupling of the sneutrino to the Higgs
HNU(1) = HALF*MZ*SINBPA/CW
HNU(2) = -HALF*MZ*COSBPA/CW
HNU(3) = ZERO
C--couplings of the leptons to the Higgs
RHO = HALF*MLT(1)/MW
HL(1) = -RHO*SINA/COSB
HL(2) = RHO*COSA/COSB
HL(3) = RHO*TANB
HL(4) = RHO*TANB/SQRT(HALF)
C--Higgs Masses
DO I=1,4
MH(I) = RMASS(202+I)
MH2(I) = MH(I)**2
ENDDO
ENDIF
C--Now calculate the weights
COSTH = HWRUNI(1,-ONE,ONE)
S = PHEP(5,3)**2
EMSCA = PHEP(5,3)
FACA = HWUAEM(S)*GEV2NB/S/8.0D0
FACD = HALF*FACA/SWEIN
FACB = HALF*FACD/MW2
FACC = HALF*FACA/MZ2
FACE = ALPHEM*GEV2NB/S/8.0D0
DO I=1,2
SCF(I) = ONE/((S-MNUT2(I))**2+RMNUT(I))
ENDDO
C--single neutralino production
IF(.NOT.NEUT) THEN
DO L=1,4
DO J=1,4
M1(L,J) = ZERO
ENDDO
ENDDO
GOTO 100
ENDIF
DO L=NTID(1),NTID(2)
DO J=1,2
SQPE = S - MNU2(L)
K = J+2
IF(SQPE.GE.ZERO) THEN
PF = SQPE/S
T = HALF*(SQPE*COSTH-S+MNU2(L))
U = -T-S+MNU2(L)
UP = ONE/(U-MSL2)
TP = ONE/(T-MSR2)
C--neutralino antineutrino production (including beam polarization)
M1(L,J) = (ONE-EPOLN(3))*(ONE-PPOLN(3))*(
& A(L,K)**2*S*(S-MNU2(L))*SCF(J)
& +TWO*S*U*(S-MNUT2(J))*UP*SCF(J)*A(L,K)*A(L,1)
& +TWO*S*T*(S-MNUT2(J))*TP*SCF(J)*A(L,K)*A(L,2)
& +TWO*U*T*UP*TP*A(L,1)*A(L,2))
& +U*(U-MNU2(L))*UP**2*(ONE-PPOLN(3))*
& (A(L,1)**2*(ONE-EPOLN(3))+B(L,1)**2*(ONE+EPOLN(3)))
& +T*(T-MNU2(L))*TP**2*(ONE-EPOLN(3))*
& (A(L,2)**2*(ONE-PPOLN(3))+B(L,2)**2*(ONE+PPOLN(3)))
C--neutralino neutrino production (including beam polarization)
M1(L,K) = (ONE+EPOLN(3))*(ONE+PPOLN(3))*(
& A(L,K)**2*S*(S-MNU2(L))*SCF(J)
& +TWO*S*U*(S-MNUT2(J))*UP*SCF(J)*A(L,K)*A(L,1)
& +TWO*S*T*(S-MNUT2(J))*TP*SCF(J)*A(L,K)*A(L,2)
& +TWO*U*T*UP*TP*A(L,1)*A(L,2))
& +U*(U-MNU2(L))*UP**2*(ONE+PPOLN(3))*
& (A(L,1)**2*(ONE+EPOLN(3))+B(L,1)**2*(ONE-EPOLN(3)))
& +T*(T-MNU2(L))*TP**2*(ONE+EPOLN(3))*
& (A(L,2)**2*(ONE+PPOLN(3))+B(L,2)**2*(ONE-PPOLN(3)))
C--final coefficients
M1(L,J) = LAMDA1(RSID(J),IL,IL)**2*FACA*PF*M1(L,J)
M1(L,K) = LAMDA1(RSID(J),IL,IL)**2*FACA*PF*M1(L,K)
ELSE
M1(L,J) = ZERO
M1(L,K) = ZERO
ENDIF
ENDDO
ENDDO
C--single chargino production
100 IF(.NOT.CHAR) THEN
DO L=1,2
DO J=1,4
M2(L,J) = ZERO
ENDDO
ENDDO
GOTO 200
ENDIF
DO L = CHID(1),CHID(2)
DO J = 1,2
K = J+1
L2 = L+4
SM = MCH(L) + MLT(K)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MCH(L) - MLT(K)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH-S+MCH2(L)+MLT2(K))
U = -T-S+MCH2(L)+MLT2(K)
UP = ONE/(U-MSNU2)
C--chargino antilepton (including beam polarization)
M2(L,J) = S*SCF(J)*(-FOUR*MLT(K)*MCH(L)*A(L2,K)*B(L2,K)
& +(S-MLT2(K)-MCH2(L))*(A(L2,K)**2+B(L2,K)**2))*
& (ONE-EPOLN(3))*(ONE-PPOLN(3))
& +(MLT2(K)-U)*(MCH2(L)-U)*UP**2*(ONE-PPOLN(3))*
& (A(L2,1)**2*(ONE-EPOLN(3))+B(L2,1)**2*(ONE+EPOLN(3)))
& -TWO*S*(S-MNUT2(J))*UP*SCF(J)*A(L2,1)*(ONE-EPOLN(3))*
& (ONE-PPOLN(3))*(U*A(L2,K)+MLT(K)*MCH(L)*B(L2,K))
C--chargino lepton (including beam polarization)
M2(L,J+2) = S*SCF(J)*(-FOUR*MLT(K)*MCH(L)*A(L2,K)*B(L2,K)
& +(S-MLT2(K)-MCH2(L))*(A(L2,K)**2+B(L2,K)**2))*
& (ONE+EPOLN(3))*(ONE+PPOLN(3))
& +(MLT2(K)-U)*(MCH2(L)-U)*UP**2*(ONE+PPOLN(3))*
& (A(L2,1)**2*(ONE+EPOLN(3))+B(L2,1)**2*(ONE-EPOLN(3)))
& -TWO*S*(S-MNUT2(J))*UP*SCF(J)*A(L2,1)*(ONE+EPOLN(3))*
& (ONE+PPOLN(3))*(U*A(L2,K)+MLT(K)*MCH(L)*B(L2,K))
C--final coefficients
M2(L,J) =HALF*LAMDA1(RSID(J),IL,IL)**2*FACA*PF*M2(L,J)
M2(L,J+2)=HALF*LAMDA1(RSID(J),IL,IL)**2*FACA*PF*M2(L,J+2)
ELSE
M2(L,J) = ZERO
M2(L,J+2) = ZERO
ENDIF
ENDDO
ENDDO
C--Radiative processes
200 IF(.NOT.RAD) THEN
DO I=1,8
DO J=1,2
M3(I,J) = ZERO
ENDDO
ENDDO
GOTO 300
ENDIF
IF(GMAX.LT.7) THEN
C--W charged slepton production
DO I=1,2
DO J=1,2
QPE = S-(MW+MSCL(I,J))**2
IF(QPE.GE.ZERO) THEN
DM = MW-MSCL(I,J)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH-S+MW2+MSCL2(I,J))
U = -T-S+MW2+MSCL2(I,J)
UP = ONE/U
C--W slepton
M3(2*I+J-2,1) = SCF(I)*S*SQPE**2
& +UP**2*(TWO*MW2*(U*T-MW2*MSCL2(I,J))+U**2*S)
& -TWO*UP*SCF(I)*(S-MNUT2(I))*S*(MW2*(TWO*MSCL2(I,J)-U)+
& U*(S-MSCL2(I,J)))
M3(2*I+J-2,1) = LAMDA1(RSID(I),IL,IL)**2*FACB*PF
& *LMIXSS(2*RSID(I)-1,1,J)**2*M3(2*I+J-2,1)
C--W- antislepton (including beam polarization)
M3(2*I+J-2,2) = (ONE-EPOLN(3))*(ONE-PPOLN(3))*
& M3(2*I+J-2,1)
C--W+ antislepton (including beam polarization)
M3(2*I+J-2,1) = (ONE+EPOLN(3))*(ONE+PPOLN(3))*
& M3(2*I+J-2,1)
ELSE
M3(2*I+J-2,1) = ZERO
M3(2*I+J-2,2) = ZERO
ENDIF
ENDDO
ENDDO
C--Z sneutrino production
DO I=1,2
QPE = S-(MZ+MNUT(I))**2
IF(QPE.GE.ZERO) THEN
DM = MZ-MNUT(I)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH-S+MZ2+MNUT2(I))
U = -T-S+MZ2+MNUT2(I)
UP = ONE/U
TP = ONE/T
IDZ = 9+RSID(I)*2
C--Z sneutrino production
M3(I+4,1) = SCF(I)*S*SQPE**2*ZNU**2
& +TP**2*RFCH(IDZ)**2*(TWO*MZ2*(U*T-MNUT2(I)*MZ2)+S*T**2)
& +UP**2*LFCH(IDZ)**2*(TWO*MZ2*(U*T-MNUT2(I)*MZ2)+S*U**2)
& -TWO*ZNU*RFCH(IDZ)*TP*S*SCF(I)*(S-MNUT2(I))*
& (MZ2*(TWO*MNUT2(I)-T)+T*(S-MNUT2(I)))
& +TWO*ZNU*LFCH(IDZ)*UP*S*SCF(I)*(S-MNUT2(I))*
& (MZ2*(TWO*MNUT2(I)-U)+U*(S-MNUT2(I)))
& +TWO*LFCH(IDZ)*RFCH(IDZ)*UP*TP*
& (TWO*MZ2*(MNUT2(I)-T)*(MNUT2(I)-U)-S*U*T)
M3(I+4,1) = LAMDA1(RSID(I),IL,IL)**2*FACC*PF*M3(I+4,1)
C--Z antisneutrino (including beam polarization)
M3(I+4,2) = (ONE-EPOLN(3))*(ONE-PPOLN(3))*M3(I+4,1)
C--Z sneutrino (including beam polarization)
M3(I+4,1) = (ONE+EPOLN(3))*(ONE+PPOLN(3))*M3(I+4,1)
ELSE
M3(I+4,1) = ZERO
M3(I+4,2) = ZERO
ENDIF
ENDDO
ELSE
C--gamma sneutrino production (includes Jacobian 1-costh**2)
C--now includes polarization effects
DO I=1,2
SQPE = S-MNUT2(I)
IF(SQPE.GE.ZERO) THEN
PF = SQPE/S
PCM = HALF*EMSCA*PF
THTMIN = PTMIN/PCM
IF(THTMIN.GT.ONE) CALL HWWARN('HWHRES',502)
THTMIN = ONE-THTMIN**2
THTMIN = HALF*LOG((1+THTMIN)/(1-THTMIN))
RHO = HWRUNI(2,-THTMIN,THTMIN)
THCOS(I) = -TANH(RHO)
T = HALF*(SQPE*THCOS(I)-S+MNUT2(I))
U = -T-S+MNUT2(I)
UP = ONE/U
TP = ONE/T
M3(I+6,1) = U*TP+T*UP+TWO*UP*TP*(MNUT2(I)-U)*(MNUT2(I)-T)
M3(I+6,1) = LAMDA1(RSID(I),IL,IL)**2*FACE*PF*M3(I+6,1)*
& (ONE-THCOS(I)**2)*THTMIN
M3(I+6,2) = M3(I+6,1)*(ONE-EPOLN(3))*(ONE-PPOLN(3))
M3(I+6,1) = M3(I+6,1)*(ONE+EPOLN(3))*(ONE+PPOLN(3))
ELSE
M3(I+6,1) = ZERO
M3(I+6,2) = ZERO
ENDIF
ENDDO
ENDIF
C--Higgs processes
300 IF(.NOT.HIGGS) THEN
DO I=1,10
DO J=1,2
M4(I,J) = ZERO
ENDDO
ENDDO
GOTO 500
ENDIF
C--Charged Higgs charged slepton production
DO I=1,2
DO J=1,2
QPE = S-(MH(4)+MSCL(I,J))**2
IF(QPE.GE.ZERO) THEN
DM = MH(4)-MSCL(I,J)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH-S+MH2(4)+MSCL2(I,J))
U = -T-S+MH2(4)+MSCL2(I,J)
C--charged Higgs antislepton
M4(2*I+J-2,1) = HSL(I,J)**2*S*SCF(I)*
& (ONE-EPOLN(3))*(ONE-PPOLN(3))
& +FOUR*LMIXSS(2*RSID(I)-1,1,J)**2*HL(4)**2
& *(U*T-MSCL2(I,J)*MH2(4))/U**2*
& (ONE+EPOLN(3))*(ONE-PPOLN(3))
C--charged Higgs slepton
M4(2*I+J-2,2) = HSL(I,J)**2*S*SCF(I)*
& (ONE+EPOLN(3))*(ONE+PPOLN(3))
& +FOUR*LMIXSS(2*RSID(I)-1,1,J)**2*HL(4)**2
& *(U*T-MSCL2(I,J)*MH2(4))/U**2*
& (ONE-EPOLN(3))*(ONE+PPOLN(3))
C--final coefficients
M4(2*I+J-2,1) = FACD*LAMDA1(RSID(I),IL,IL)**2*
& M4(2*I+J-2,1)*PF
M4(2*I+J-2,2) = FACD*LAMDA1(RSID(I),IL,IL)**2*
& M4(2*I+J-2,2)*PF
ELSE
M4(2*I+J-2,1) = ZERO
M4(2*I+J-2,2) = ZERO
ENDIF
ENDDO
ENDDO
C--neutral higgs sneutrino production
DO L=1,3
DO I=1,2
QPE = S-(MH(L)+MNUT(I))**2
IF(QPE.GE.ZERO) THEN
DM = MH(L)-MNUT(I)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = HALF*(SQPE*COSTH-S+MH2(L)+MNUT2(I))
U = -T-S+MH2(L)+MNUT2(I)
IF(L.NE.3) THEN
C--h0, H0 antisneutrino (including beam polarization)
M4(2*L+I+2,1) = HNU(L)**2*S*SCF(I)*
& (ONE-EPOLN(3))*(ONE-PPOLN(3))
& +HL(L)**2*( ONE/T**2*(ONE+EPOLN(3))*(ONE-PPOLN(3))
& +ONE/U**2*(ONE-EPOLN(3))*(ONE+PPOLN(3)))
& *(U*T-MH2(L)*MNUT2(I))
C--h0, H0 sneutrino (including beam polarization)
M4(2*L+I+2,2) = HNU(L)**2*S*SCF(I)*
& (ONE+EPOLN(3))*(ONE+PPOLN(3))
& +HL(L)**2*( ONE/T**2*(ONE-EPOLN(3))*(ONE+PPOLN(3))
& +ONE/U**2*(ONE+EPOLN(3))*(ONE-PPOLN(3)))
& *(U*T-MH2(L)*MNUT2(I))
ELSE
C--A0 antisneutrino (including beam polarization)
M4(2*L+I+2,1) = (ONE-EPOLN(3))*(ONE-PPOLN(3))*(
& HNU(L)**2*S*SCF(I)
& +HL(L)**2*(ONE/T**2+ONE/U**2)*(U*T-MH2(L)*MNUT2(I)))
C--A0 sneutrino (including beam polarization)
M4(2*L+I+2,2) = (ONE+EPOLN(3))*(ONE+PPOLN(3))*(
& HNU(L)**2*S*SCF(I)
& +HL(L)**2*(ONE/T**2+ONE/U**2)*(U*T-MH2(L)*MNUT2(I)))
ENDIF
C--final coefficients
M4(2*L+I+2,1) = FACD*LAMDA1(RSID(I),IL,IL)**2*
& M4(2*L+I+2,1)*PF
M4(2*L+I+2,2) = FACD*LAMDA1(RSID(I),IL,IL)**2*
& M4(2*L+I+2,2)*PF
ELSE
M4(2*L+I+2,1) = ZERO
M4(2*L+I+2,2) = ZERO
ENDIF
ENDDO
ENDDO
ENDIF
C--Add up the weights now
500 HCS = ZERO
C--single neutralino production
IF(.NOT.NEUT) GOTO 550
DO L=NTID(1),NTID(2)
IG1= SSNU+L
DO J=1,4
IG2 = 126+2*RSID(MOD(J-1,2)+1)-6*INT((J-1)/2)
HCS = HCS+M1(L,J)
THSGN = (IDHEP(1).LT.IDHEP(2).AND.J.GT.2).OR.
& (IDHEP(1).GT.IDHEP(2).AND.J.LE.2)
IF(GENEV.AND.HCS.GT.RCS) GOTO 900
ENDDO
ENDDO
C--single chargino production
550 IF(.NOT.CHAR) GOTO 600
DO L=CHID(1),CHID(2)
DO J=1,4
IG1 = SSCH+L-2*INT((J-1)/2)
IG2 = 125+2*RSID(MOD((J-1),2)+1)-6*INT((J-1)/2)
HCS = HCS + M2(L,J)
THSGN = (IDHEP(1).LT.IDHEP(2).AND.J.GT.2).OR.
& (IDHEP(1).GT.IDHEP(2).AND.J.LE.2)
IF (GENEV.AND.HCS.GT.RCS) GOTO 900
ENDDO
ENDDO
C--gauge boson slepton production
600 IF(.NOT.RAD) GOTO 650
DO I=GMIN,GMAX
IG1 = RADID(1,I)
IG2 = RADID(2,I)
IF(I.GE.7) COSTH = THCOS(I-6)
DO J=1,2
HCS = HCS+M3(I,J)
THSGN = (IDHEP(1).LT.IDHEP(2).AND.J.EQ.1).OR.
& (IDHEP(1).GT.IDHEP(2).AND.J.EQ.2)
IF(GENEV.AND.HCS.GT.RCS) GOTO 900
IF(I.LE.4) IG1 = IG1+1
IG2 = IG2+6
ENDDO
ENDDO
C--higgs slepton production
650 IF(.NOT.HIGGS) GOTO 900
C--charged Higgs slepton
DO I=1,4
IG1 = 207
IG2 = RADID(2,I)+6
DO J=1,2
HCS=HCS+M4(I,J)
THSGN = (IDHEP(1).LT.IDHEP(2).AND.J.EQ.1).OR.
& (IDHEP(1).GT.IDHEP(2).AND.J.EQ.2)
IF(GENEV.AND.HCS.GT.RCS) GOTO 900
IG1 = IG1-1
IG2 = IG2-6
ENDDO
ENDDO
C--Neutral Higgs sneutrino
DO L=1,3
DO I=1,2
IG1 = 202+L
IG2 = 430+2*RSID(I)
DO J=1,2
HCS = HCS+M4(2+2*L+I,J)
THSGN = (IDHEP(1).LT.IDHEP(2).AND.J.EQ.1).OR.
& (IDHEP(1).GT.IDHEP(2).AND.J.EQ.2)
IF(GENEV.AND.HCS.GT.RCS) GOTO 900
IG2 = IG2-6
ENDDO
ENDDO
ENDDO
900 IF(GENEV) THEN
C--change sign of COSTH if antiparticle first
IF(THSGN) COSTH = -COSTH
C-Set up the particle types
IDHW(NHEP+1) = 15
IDHEP(NHEP+1) = 0
ISTHEP(NHEP+1) = 110
IDHW(NHEP+2) = IG1
IDHW(NHEP+3) = IG2
IDHEP(NHEP+2) = IDPDG(IG1)
IDHEP(NHEP+3) = IDPDG(IG2)
C--generate the particle masses and final-state momenta
NTRY = 0
910 NTRY = NTRY+1
PHEP(5,NHEP+2) = HWUMBW(IG1)
PHEP(5,NHEP+3) = HWUMBW(IG2)
C--Set up the Centre-of-mass energy
CALL HWVEQU(5,PHEP(1,3),PHEP(1,NHEP+1))
PCM = HWUPCM(PHEP(5,NHEP+1),PHEP(5,NHEP+2),PHEP(5,NHEP+3))
IF(PCM.LT.ZERO.AND.NTRY.LE.NETRY) THEN
GOTO 910
ELSEIF(PCM.LT.ZERO) THEN
CALL HWWARN('HWHRES',100)
GOTO 999
ENDIF
C--Set up the colours etc
ISTHEP(NHEP+2) = 113
ISTHEP(NHEP+3) = 114
JMOHEP(1,NHEP+1) = 1
IF (JDAHEP(1,1).NE.0) JMOHEP(1,NHEP+1)=JDAHEP(1,1)
JMOHEP(2,NHEP+1) = 2
IF (JDAHEP(1,2).NE.0) JMOHEP(2,NHEP+1)=JDAHEP(1,2)
JMOHEP(1,NHEP+2) = NHEP+1
JMOHEP(2,NHEP+2) = NHEP+2
JMOHEP(1,NHEP+3) = NHEP+1
JMOHEP(2,NHEP+3) = NHEP+3
JDAHEP(1,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+3
JDAHEP(1,NHEP+2) = 0
JDAHEP(2,NHEP+2) = NHEP+2
JDAHEP(1,NHEP+3) = 0
JDAHEP(2,NHEP+3) = NHEP+3
C--set up the rest of the momenta
IHEP = NHEP+2
PHEP(4,IHEP) = SQRT(PCM**2+PHEP(5,IHEP)**2)
PHEP(3,IHEP) = PCM*COSTH
PHEP(1,IHEP) = SQRT((PCM+PHEP(3,IHEP))*(PCM-PHEP(3,IHEP)))
PHEP(2,IHEP) = ZERO
CALL HWRAZM(PHEP(1,IHEP),PHEP(1,IHEP),PHEP(2,IHEP))
CALL HWULOB(PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWVDIF(4,PHEP(1,NHEP+1),PHEP(1,IHEP),PHEP(1,IHEP+1))
NHEP = NHEP+3
ELSE
EVWGT = HCS
ENDIF
999 RETURN
END
CDECK ID>, HWHRLL.
*CMZ :- -08/04/02 09:00:27 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRLL
C-----------------------------------------------------------------------
C Subroutine for resonant sleptons to standard model particles
C slepton mass and mass*width added to save statement to
C avoid problems with Linux by Peter Richardson
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HCS,S,RCS,HWRGEN,FAC,ECM,TH,PCM,CFAC,CHANPB,SH,
& TAU,TAUA,TAUB,LOWTLM,UPPTLM,HWRUNI,MSL(12),
& SQSH,MET(2),SCF(12),MIX(12),ME(4,3,3,3,3,2),
& RAND,CHAN(12),LAM(2,7,3,3,3,3),SLWD(12),RTAB,
& WD,MQ1,MQ2,EPS,XMIN,XMAX,XPOW,XUPP,MSL2(12),
& MSWD(12)
INTEGER I,J,K,L,I1,J1,K1,L1,GEN,GN,GR,GNMX,GNMN,MIG,MXG,CUP,CF
LOGICAL FIRST
EXTERNAL HWRGEN,HWRUNI
PARAMETER(EPS=1D-20)
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
SAVE HCS,ME,MSL,SLWD,LAM,MIX,CHAN,GNMN,GNMX,SH,SQSH,FAC,SCF,MSL2,
& MSWD
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
IF(FSTWGT) THEN
DO I=1,3
MSL(2*I-1) = RMASS(423+2*I)
MSL(2*I) = RMASS(435+2*I)
MSL(2*I+5) = RMASS(424+2*I)
MSL(2*I+6) = RMASS(436+2*I)
SLWD(2*I-1) = HBAR/RLTIM(423+2*I)
SLWD(2*I) = HBAR/RLTIM(435+2*I)
SLWD(2*I+5) = HBAR/RLTIM(424+2*I)
SLWD(2*I+6) = HBAR/RLTIM(436+2*I)
ENDDO
DO I=1,12
MSL2(I) = MSL(I)**2
MSWD(I) = MSL(I)*SLWD(I)
ENDDO
RAND = ZERO
DO I=1,3
CHANPB=ZERO
DO J=1,3
DO K=1,3
CHANPB=CHANPB+LAMDA2(I,J,K)**4
ENDDO
ENDDO
RAND=RAND+2*CHANPB
DO J=1,2
CHAN(2*I-2+J) = LMIXSS(2*I-1,1,J)**2*CHANPB
CHAN(2*I+4+J) = LMIXSS(2*I ,1,J)**2*CHANPB
MIX(2*I-2+J) = LMIXSS(2*I-1,1,J)**2
MIX(2*I+4+J) = LMIXSS(2*I ,1,J)**2
ENDDO
ENDDO
IF(RAND.GT.ZERO) THEN
DO I=1,12
CHAN(I)=CHAN(I)/RAND
ENDDO
ELSE
CALL HWWARN('HWHRLL',500)
ENDIF
C--find the couplings
DO GN=1,3
DO I=1,3
DO J=1,3
DO K=1,3
DO L=1,3
LAM(1,GN,I,J,K,L) =LAMDA2(GN,I,J)*LAMDA1(GN,K,L)
LAM(2,GN,I,J,K,L) =LAMDA2(GN,I,J)*LAMDA2(GN,K,L)
LAM(1,GN+3,I,J,K,L)=LAM(1,GN,I,J,K,L)
LAM(2,GN+3,I,J,K,L)=LAM(2,GN,I,J,K,L)
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
C--select the process from the IPROC code
GNMN = 1
GNMX = 4
IF(MOD(IPROC,10000).EQ.4070) THEN
GNMX = 2
ELSEIF(MOD(IPROC,10000).EQ.4080) THEN
GNMN = 3
ENDIF
ENDIF
EVWGT = ZERO
S = PHEP(5,3)**2
COSTH = HWRUNI(0,-ONE,ONE)
C--Generate the smoothing
RAND=HWRUNI(0,ZERO,ONE)
DO I=1,12
IF(CHAN(I).GT.RAND) GOTO 20
RAND=RAND-CHAN(I)
ENDDO
20 GR = I
C--Calculate hard scale and obtain parton distributions
TAUA = MSL2(GR)/S
TAUB = SLWD(GR)**2/S
RTAB = SQRT(TAUA*TAUB)
XUPP = XMAX
IF(XMAX**2.GT.S) XUPP = SQRT(S)
LOWTLM = DATAN((XMIN**2/S-TAUA)/RTAB)/RTAB
UPPTLM = DATAN((XUPP**2/S-TAUA)/RTAB)/RTAB
TAU = HWRUNI(0,LOWTLM,UPPTLM)
TAU = RTAB*TAN(RTAB*TAU)+TAUA
SH = S*TAU
SQSH = SQRT(SH)
EMSCA = SQSH
XX(1) = EXP(HWRUNI(0,ZERO,LOG(TAU)))
XX(2) = TAU/XX(1)
CALL HWSGEN(.FALSE.)
C--Calculate the prefactor due multichannel approach
FAC = ZERO
DO GN=1,12
SCF(GN)=1/((SH-MSL2(GN))**2+MSWD(GN)**2)
FAC=FAC+CHAN(GN)*SCF(GN)
ENDDO
FAC=-(UPPTLM-LOWTLM)*LOG(TAU)*GEV2NB
& /(96*PIFAC*SQSH*SH*TAU*FAC*S**2)
ENDIF
C--Now the loop to actually calculate the cross-sections
HCS = ZERO
DO GN=GNMN,GNMX
IF(MOD(GN,2).EQ.1) THEN
MIG = 1
MXG = 6
ELSE
MIG = 7
MXG = 12
ENDIF
IF(GN.LE.2) THEN
CFAC = THREE*FAC
CUP=2
ELSE
CFAC = FAC
CUP=1
ENDIF
DO K1=1,3
DO 80 L1=1,3
IF(GN.EQ.1) THEN
K = 2*K1
L = 2*L1+5
ELSEIF(GN.EQ.2) THEN
K = 2*K1-1
L = 2*L1+5
ELSEIF(GN.EQ.3) THEN
K = 120+2*K1
L = 125+2*L1
ELSEIF(GN.EQ.4) THEN
K = 119+2*K1
L = 125+2*L1
ENDIF
MQ1 = RMASS(K)
MQ2 = RMASS(L)
IF(SQSH.GT.(MQ1+MQ2)) THEN
PCM = SQRT((SH-(MQ1+MQ2)**2)*(SH-(MQ1-MQ2)**2))/(2*SQSH)
WD = (SH-MQ1**2-MQ2**2)*SH*PCM
ELSE
GOTO 80
ENDIF
DO I1=1,3
DO 70 J1=1,3
IF(MOD(GN,2).EQ.1) THEN
I=2*I1
J=2*J1+5
ELSE
I=2*I1-1
J=2*J1+5
ENDIF
DO GR =1,2
MET(GR) = ZERO
ENDDO
IF(GENEV) GOTO 60
DO 50 GEN=MIG,MXG
IF(ABS(LAM(CUP,INT((GEN+1)/2),I1,J1,K1,L1)).LT.EPS.
& OR.ABS(MIX(GEN)).LT.EPS) GOTO 50
DO GR=MIG,MXG
IF(ABS(LAM(CUP,INT((GR+1)/2),I1,J1,K1,L1)).GT.EPS.
& AND.ABS(MIX(GR)).GT.EPS) THEN
MET(1) =MET(1)+SCF(GEN)*SCF(GR)*WD*
& ((SH-MSL2(GEN))*(SH-MSL2(GR))+MSWD(GEN)*MSWD(GR))
& *LAM(CUP,INT((GEN+1)/2),I1,J1,K1,L1)*MIX(GEN)
& *LAM(CUP,INT((GR+1)/2),I1,J1,K1,L1)*MIX(GR)
ENDIF
ENDDO
C--Now the t-channel diagrams if the s-channel particles is a sneutrino
IF(GN.EQ.2) THEN
ECM=SQRT(PCM**2+MQ1**2)
TH=MQ1**2-SQSH*(ECM-PCM*COSTH)
DO GR=MIG,MXG
MET(2)=MET(2)+(MQ1**2-TH)*(MQ2**2-TH)*PCM*
& LAM(2,INT((GEN+1)/2),I1,K1,J1,L1)*MIX(GEN)*
& LAM(2,INT((GR+1)/2),I1,K1,J1,L1)*MIX(GR)
& /((TH-MSL2(GEN))*(TH-MSL2(GR)))
ENDDO
ENDIF
50 CONTINUE
C--final phase space factors
IF(MET(1).LT.EPS.AND.MET(2).LT.EPS) GOTO 70
DO GR = 1,2
ME(GN,I1,J1,K1,L1,GR) = MET(GR)*CFAC
ENDDO
60 DO GR = 1,2
CF = GR
IF(CUP.EQ.1) CF=0
HCS = HCS+ME(GN,I1,J1,K1,L1,GR)*DISF(I,1)*DISF(J,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(9,I,J,K,L,0,CF)
GOTO 100
ENDIF
HCS = HCS+ME(GN,I1,J1,K1,L1,GR)*DISF(J,1)*DISF(I,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(10,J,I,K,L,0,CF)
GOTO 100
ENDIF
HCS = HCS+ME(GN,I1,J1,K1,L1,GR)
& *DISF(I+6,1)*DISF(J-6,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(9,I,J,K,L,1,CF)
GOTO 100
ENDIF
HCS = HCS+ME(GN,I1,J1,K1,L1,GR)
& *DISF(J-6,1)*DISF(I+6,2)
IF(HCS.GT.RCS.AND.GENEV) THEN
CALL HWHRSS(10,J,I,K,L,1,CF)
GOTO 100
ENDIF
ENDDO
70 CONTINUE
ENDDO
80 CONTINUE
ENDDO
ENDDO
100 IF(GENEV) THEN
CALL HWETWO(.TRUE.,.TRUE.)
ELSE
EVWGT = HCS
ENDIF
END
CDECK ID>, HWHRLS.
*CMZ :- -23/10/00 13:53:06 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRLS
C-----------------------------------------------------------------------
C Subroutine for 2 parton -> sparticle + X via LQD
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HCS,A(6,12),B(6,12),S,RCS,HWRGEN,CW,FAC2,EC,ME2,
& MW,G,TAU,TAUA,TAUB,LOWTLM,UPPTLM,HWRUNI,SW,SQSH,LC,
& SH,MSL(12),MSU(12),MST(6),C(2,6,12),D(2,6,12),UH,
& TH,MEN(4,6,3,3),SCF(12),SLWD(12),MLT(6),MNT(4),PCM,
& MXS(12),MER(8),MCR(2),RTAB,H(18),MEH(3,18),MXT(12),
& CHAN(12),MXU(12),RAND,FAC,ECM,MC(2),MEC(2,6,3,3),
& MZ,CHPROB,EPS,HWUAEM,XMIN,XMAX,XPOW,SIN2B,GUU(4),
& ML,MN,MLS,MNS,XUPP,MW2,MZ2,ZSLP(2),ZQRK(2),GDD(4),
& MSL2(12),MH(4),MSWD(12)
INTEGER I,J,K,L,J1,K1,GN,GR,SP,GU,GT,I2,I1,NEUTMN
& ,NEUTMX,CHARMN,CHARMX,P
LOGICAL RAD,NEUT,CHAR,HIGGS,FIRST
EXTERNAL HWRGEN,HWRUNI,HWUAEM
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
SAVE HCS,A,B,C,D,FAC,MER,MEC,MEN,MLT,MSL,MSU,MST,SLWD,MNT,MXT,MXU,
& SW,CW,MXS,H,MEH,CHAN,NEUTMN,NEUTMX,CHARMN,CHARMX,RAD,NEUT,
& CHAR,HIGGS,MW,MZ,MW2,MZ2,MCR,SH,SQSH,EC,G,SCF,ZSLP,ZQRK,GUU,
& GDD,MSL2,MH,MSWD
PARAMETER(EPS=1D-20)
IF(GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
IF(FSTWGT) THEN
C--Calculate Electroweak parameters needed
SW = SQRT(SWEIN)
CW = SQRT(1-SWEIN)
MW = RMASS(198)
MZ = RMASS(200)
MW2 = MW**2
MZ2 = MZ**2
SIN2B = TWO*SINB*COSB
C--Masses and widths
DO I=1,3
MSL(2*I-1) = RMASS(423+2*I)
MSL(2*I) = RMASS(435+2*I)
MSL(2*I+5) = RMASS(424+2*I)
MSL(2*I+6) = RMASS(436+2*I)
SLWD(2*I-1) = HBAR/RLTIM(423+2*I)
SLWD(2*I) = HBAR/RLTIM(435+2*I)
SLWD(2*I+5) = HBAR/RLTIM(424+2*I)
SLWD(2*I+6) = HBAR/RLTIM(436+2*I)
MSU(2*I-1) = RMASS(400+2*I)**2
MSU(2*I) = RMASS(412+2*I)**2
MSU(2*I+5) = RMASS(399+2*I)**2
MSU(2*I+6) = RMASS(411+2*I)**2
MST(2*I-1) = RMASS(399+2*I)**2
MST(2*I) = RMASS(411+2*I)**2
MLT(2*I) = ZERO
MLT(2*I-1) = RMASS(119+2*I)
ENDDO
DO I=1,12
MSL2(I) = MSL(I)**2
MSWD(I) = MSL(I)*SLWD(I)
ENDDO
DO I=1,4
MNT(I) = ABS(RMASS(449+I))
ENDDO
MCR(1) = ABS(RMASS(454))
MCR(2) = ABS(RMASS(455))
C--Couplings for the neutralinos
DO L=1,4
MC(1) = ZMIXSS(L,3)/(2*MW*COSB*SW)
MC(2) = ZMIXSS(L,4)/(2*MW*SINB*SW)
DO I=1,3
DO J=1,2
C--resonant charged sleptons
A(L,2*I-2+J) = MC(1)*MLT(2*I-1)*LMIXSS(2*I-1,2,J)
& +SLFCH(9+2*I,L)*LMIXSS(2*I-1,1,J)
B(L,2*I-2+J) = ZSGNSS(L)*(MC(1)*MLT(2*I-1)*
& LMIXSS(2*I-1,1,J)+SRFCH(9+2*I,L)*LMIXSS(2*I-1,2,J))
C--resonant sneutrinos
A(L,2*I+4+J) = SLFCH(10+2*I,L)*LMIXSS(2*I,1,J)
B(L,2*I+4+J) = ZERO
C--u channel up type squarks
C(1,L,2*I-2+J) = MC(2)*QMIXSS(2*I,2,J)*
& RMASS(2*I)+SLFCH(2*I,L)*QMIXSS(2*I,1,J)
D(1,L,2*I-2+J) = ZSGNSS(L)*(MC(2)*QMIXSS(2*I,1,J)*
& RMASS(2*I)+SRFCH(2*I ,L)*QMIXSS(2*I,2,J))
C--u channel down type squarks
C(1,L,2*I+4+J) = MC(1)*QMIXSS(2*I-1,2,J)*
& RMASS(2*I-1)+SLFCH(2*I-1,L)*QMIXSS(2*I-1,1,J)
D(1,L,2*I+4+J) = ZSGNSS(L)*(MC(1)*QMIXSS(2*I-1,1,J)*
& RMASS(2*I-1)+SRFCH(2*I-1,L)*QMIXSS(2*I-1,2,J))
C--t channel down type squarks
C(2,L,2*I-2+J) = ZSGNSS(L)*(MC(1)*QMIXSS(2*I-1,1,J)*
& RMASS(2*I-1)+SRFCH(2*I-1,L)*QMIXSS(2*I-1,2,J))
D(2,L,2*I-2+J) = MC(1)*QMIXSS(2*I-1,2,J)*
& RMASS(2*I-1)+SLFCH(2*I-1,L)*QMIXSS(2*I-1,1,J)
ENDDO
ENDDO
DO I=1,6
C(2,L,6+I) = C(2,L,I)
D(2,L,6+I) = D(2,L,I)
ENDDO
ENDDO
C--Couplings for charginos
DO L=1,2
MC(1) = 1/(SQRT(2.0D0)*MW*COSB)
MC(2) = 1/(SQRT(2.0D0)*MW*SINB)
SP=L+4
DO I=1,3
DO J=1,2
C--resonant charged slepton
A(SP,2*I-2+J) = WMXUSS(L,1)*LMIXSS(2*I-1,1,J)
& -LMIXSS(2*I-1,2,J)*WMXUSS(L,2)*
& MLT(2*I-1)*MC(1)
B(SP,2*I-2+J) = ZERO
C--resonant sneutrinos
A(SP,2*I+4+J) = WSGNSS(L)*WMXVSS(L,1)*LMIXSS(2*I,1,J)
B(SP,2*I+4+J) = -MLT(2*I-1)*WMXUSS(L,2)*LMIXSS(2*I,1,J)
& *MC(1)
C--u channel sup
C(1,SP,2*I-2+J) = WSGNSS(L)*(WMXVSS(L,1)*QMIXSS(2*I,1,J)
& -WMXVSS(L,2)*MC(2)*RMASS(2*I)*QMIXSS(2*I,2,J))
D(1,SP,2*I-2+J) = -WMXUSS(L,2)*MC(1)*RMASS(2*I-1)
& *QMIXSS(2*I,1,J)
C--u channel sdown
C(1,SP,2*I+4+J) = WMXUSS(L,1)*QMIXSS(2*I-1,1,J)
& -WMXUSS(L,2)*MC(1)*RMASS(2*I-1)*QMIXSS(2*I-1,2,J)
D(1,SP,2*I+4+J) = -WSGNSS(L)*WMXVSS(L,2)*MC(2)*
& RMASS(2*I)*QMIXSS(2*I-1,1,J)
ENDDO
ENDDO
ENDDO
C--Couplings and massesfor Higgs
DO I=1,4
MH(I) = RMASS(202+I)
ENDDO
C--first the neutral Higgs
C--fix to the sign of the A and mu term 31/03/00 PR
DO I=1,3
H(I) = MLT(2*I-1)*HALF/MW/COSB*MUSS*COSA
H(I+4) = MLT(2*I-1)*HALF/MW/COSB*MUSS*SINA
H(I+8) = -MLT(2*I-1)*HALF/MW*MUSS
ENDDO
H(3) = (H(3)+MLT(5)*HALF/MW/COSB*ALSS*SINA)*TWO*
& LMIXSS(5,2,1)*LMIXSS(5,1,1)
& -MZ*SINBPA/CW*(LMIXSS(5,1,1)**2*(HALF-SWEIN)
& +SWEIN*LMIXSS(5,2,1)**2)+MLT(5)**2*SINA/MW/COSB
H(4) = -MZ*SINBPA/CW*(LMIXSS(5,1,1)*LMIXSS(5,1,2)*(HALF-SWEIN)
& +SWEIN*LMIXSS(5,2,1)*LMIXSS(5,2,2))
& +MLT(5)*HALF/COSB/MW*(MUSS*COSA+ALSS*SINA)*
& (LMIXSS(5,2,2)*LMIXSS(5,1,1)+LMIXSS(5,1,2)*LMIXSS(5,2,1))
H(7) = (H(7)-MLT(5)*HALF/MW/COSB*ALSS*COSA)*TWO*
& LMIXSS(5,2,1)*LMIXSS(5,1,1)
& +MZ*COSBPA/CW*(LMIXSS(5,1,1)**2*(HALF-SWEIN)
& +LMIXSS(5,2,1)**2*SWEIN)-MLT(5)**2*COSA/MW/COSB
H(8) = MZ*COSBPA/CW*(LMIXSS(5,1,2)*LMIXSS(5,1,1)*(HALF-SWEIN)
& +LMIXSS(5,2,2)*LMIXSS(5,2,1)*SWEIN)
& +MLT(5)*HALF/MW/COSB*(MUSS*SINA-ALSS*COSA)*
& (LMIXSS(5,2,2)*LMIXSS(5,1,1)+LMIXSS(5,1,2)*LMIXSS(5,2,1))
H(12) = H(11)-MLT(5)*HALF/MW*ALSS*TANB
H(11) = ZERO
C--Now the charged Higgs
DO J=1,2
DO I=1,3
H(10+2*I+J) = LMIXSS(2*I-1,1,J)*
& (MLT(2*I-1)**2*TANB-MW2*SIN2B)
& +LMIXSS(2*I-1,2,J)*MLT(2*I-1)*MUSS
ENDDO
H(16+J) = H(16+J)+LMIXSS(5,2,J)*MLT(5)*ALSS*TANB
ENDDO
C--End of fix
C--couplings of the Higgs to quarks
DO I=1,3
GUU(I) = GHUUSS(I)**2/MW2*HALF**2
GDD(I) = GHDDSS(I)**2/MW2*HALF**2
ENDDO
GUU(4) = ONE/TANB**2/MW2/8.0D0
GDD(4) = ONE*TANB**2/MW2/8.0D0
C--Couplings of the Z to quarks, left up right down, and charged sleptons
ZQRK(1) = -SW**2/6.0D0/CW
ZQRK(2) = (SW**2/3.0D0-HALF**2)/CW
ZSLP(1) = HALF*(LMIXSS(5,1,1)**2-2.0D0*SW**2)/CW
ZSLP(2) = HALF*LMIXSS(5,1,1)*LMIXSS(5,1,2)/CW
C--parameters for multichannel integration
RAND = ZERO
DO I=1,3
CHPROB = ZERO
DO J=1,3
DO K=1,3
CHPROB=CHPROB+LAMDA2(I,J,K)**2
ENDDO
ENDDO
RAND = RAND+2*CHPROB
DO J=1,2
MXS(2*I-2+J) = LMIXSS(2*I-1,1,J)
MXS(2*I+4+J) = LMIXSS(2*I,1,J)
MXU(2*I-2+J) = QMIXSS(2*I,1,J)
MXU(2*I+4+J) = QMIXSS(2*I-1,1,J)
MXT(2*I-2+J) = QMIXSS(2*I-1,2,J)
MXT(2*I+4+J) = QMIXSS(2*I-1,2,J)
CHAN(2*I-2+J) = LMIXSS(2*I-1,1,J)**2*CHPROB
CHAN(2*I+4+J) = LMIXSS(2*I,1,J)**2*CHPROB
ENDDO
ENDDO
IF(RAND.GT.ZERO) THEN
DO I=1,12
CHAN(I)=CHAN(I)/RAND
ENDDO
ELSE
CALL HWWARN('HWHRLS',500)
ENDIF
C--decide what processes to generate
RAD = .FALSE.
NEUT = .FALSE.
CHAR = .FALSE.
HIGGS = .FALSE.
NEUTMN= 1
NEUTMX = 4
CHARMN = 1
CHARMX = 2
C--Decide which process to generate
IF(MOD(IPROC,10000).EQ.4000) THEN
RAD = .TRUE.
NEUT = .TRUE.
CHAR = .TRUE.
HIGGS = .TRUE.
ELSEIF(MOD(IPROC,10000).LT.4020) THEN
IF(MOD(IPROC,10000).NE.4010) THEN
NEUTMN = MOD(IPROC,10)
NEUTMX = NEUTMN
ENDIF
NEUT=.TRUE.
ELSEIF(MOD(IPROC,10000).LT.4030) THEN
IF(MOD(IPROC,10000).NE.4020) THEN
CHARMN = MOD(IPROC,10)
CHARMX=CHARMN
ENDIF
CHAR = .TRUE.
ELSEIF(MOD(IPROC,10000).EQ.4040) THEN
RAD = .TRUE.
ELSEIF(MOD(IPROC,10000).EQ.4050) THEN
HIGGS = .TRUE.
ENDIF
ENDIF
C--basic parameters
EVWGT = ZERO
S = PHEP(5,3)**2
COSTH = HWRUNI(0,-ONE,ONE)
RAND = HWRUNI(0,ZERO,ONE)
C--zero arrays
DO I=1,6
DO J=1,3
DO K=1,3
DO L=1,2
MEN(L,I,J,K) = ZERO
MEN(L+2,I,J,K) = ZERO
MEC(L,I,J,K) = ZERO
ENDDO
ENDDO
ENDDO
ENDDO
DO I=1,8
MER(I)=ZERO
ENDDO
C--Perform multichannel integration
DO I=1,12
IF(CHAN(I).GT.RAND) THEN
GR=I
GOTO 25
ENDIF
RAND=RAND-CHAN(I)
ENDDO
C--Calculate the hard scale and obtain parton distributions
25 TAUA = MSL2(GR)/S
TAUB = SLWD(GR)**2/S
RTAB = SQRT(TAUA*TAUB)
XUPP = XMAX
IF(XMAX**2.GT.S) XUPP = SQRT(S)
LOWTLM = DATAN((XMIN**2/S-TAUA)/RTAB)/RTAB
UPPTLM = DATAN((XUPP**2/S-TAUA)/RTAB)/RTAB
TAU = HWRUNI(0,LOWTLM,UPPTLM)
TAU = RTAB*TAN(RTAB*TAU)+TAUA
SH = S*TAU
SQSH = SQRT(SH)
EMSCA = SQSH
XX(1) = EXP(HWRUNI(0,LOG(TAU),ZERO))
XX(2) = TAU/XX(1)
CALL HWSGEN(.FALSE.)
C--EM and Weak couplings
EC = SQRT(4*PIFAC*HWUAEM(SH))
G = EC/SW
C--Calculate the prefactor due multichannel approach
FAC = ZERO
DO GN=1,12
SCF(GN)=1/((SH-MSL2(GN))**2+MSWD(GN)**2)
FAC=FAC+CHAN(GN)*SCF(GN)
ENDDO
FAC=-(UPPTLM-LOWTLM)*GEV2NB*LOG(TAU)/
& (48*TAU*FAC*PIFAC*S**2*SH*SQSH)
ENDIF
HCS = ZERO
C--First we do the neutralino production
IF(.NOT.NEUT) GOTO 200
DO 140 GN=1,6
I=GN
GR = 2*GN-1
I1 = 2*GN-1
IF(GN.GT.3) THEN
I=I-3
I1=I1-5
ENDIF
IF(CHAN(GR).LT.EPS) GOTO 140
DO 130 L=NEUTMN,NEUTMX
MN = MNT(L)
MNS = MN**2
ML = MLT(I1)
MLS = ML**2
IF((ML+MN).GT.SQSH) GOTO 130
C--that and uhat
PCM = SQRT((SH-(ML+MN)**2)*(SH-(ML-MN)**2))*HALF/SQSH
ECM = SQRT(PCM**2+MLS)
TH = MLS-SQSH*(ECM-PCM*COSTH)
UH = MLS-SQSH*(ECM+PCM*COSTH)
DO J=1,3
DO 120 K=1,3
IF(ABS(LAMDA2(I,J,K)).LT.EPS) GOTO 120
J1 = 2*J
K1 = 2*K+5
IF(GN.GT.3) J1=J1-1
IF(GENEV) GOTO 110
C--squarks in u and t channels
GU = 6*INT((GN-1)/3)+2*J-1
GT = 2*K
C--calulate the matrix element
ME2=MXS(GR)**2*SCF(GR)*SH*((SH-MLS-MNS)*
& (A(L,GR)**2+B(L,GR)**2)-4*ML*MN*A(L,GR)*B(L,GR))
& +MXU(GU)**2*(MLS-UH)*(MNS-UH)*
& (C(1,L,GU)**2+D(1,L,GU)**2)/(UH-MSU(GU))**2
& +MXT(GT)**2*(MLS-TH)*(MNS-TH)*
& (C(2,L,GT)**2+D(2,L,GT)**2)/(TH-MST(GT))**2
& -TWO*MXT(GT)*MXU(GU)*C(1,L,GU)*C(2,L,GT)*(MLS*MNS-UH*TH)
& /(UH-MSU(GU))/(TH-MST(GT))
& +TWO*MXS(GR)*MXU(GU)*(SH-MSL2(GR))*SCF(GR)*C(1,L,GU)*
& SH*(UH*A(L,GR)+ML*MN*B(L,GR))/(UH-MSU(GU))
& +TWO*MXS(GR)*MXT(GT)*(SH-MSL2(GR))*SCF(GR)*C(2,L,GT)*
& SH*(TH*A(L,GR)+ML*MN*B(L,GR))/(TH-MST(GT))
C--s channel mixing L/R mixing
IF(ABS(MXS(GR+1)).GT.EPS) THEN
ME2=ME2+MXS(GR+1)**2*SCF(GR+1)*SH*((SH-MLS-MNS)*
& (A(L,GR+1)**2+B(L,GR+1)**2)
& -4*ML*MN*A(L,GR+1)*B(L,GR+1))
& +TWO*MXS(GR)*MXS(GR+1)*SCF(GR)*SCF(GR+1)*
& ((SH-MSL2(GR))*(SH-MSL2(GR+1))+
& MSWD(GR)*MSWD(GR+1))*SH*
& ((SH-MLS-MNS)*(A(L,GR)*A(L,GR+1)+B(L,GR)*B(L,GR+1))
& -2*ML*MN*(A(L,GR)*B(L,GR+1)+A(L,GR+1)*B(L,GR)))
& +TWO*MXS(GR+1)*MXU(GU)*(SH-MSL2(GR+1))*SCF(GR+1)*
& SH*C(1,L,GU)*(UH*A(L,GR+1)+ML*MN*B(L,GR+1))
& /(UH-MSU(GU))
& +TWO*MXS(GR+1)*MXT(GT)*(SH-MSL2(GR+1))*SCF(GR+1)*
& SH*C(2,L,GT)*(TH*A(L,GR+1)+ML*MN*B(L,GR+1))
& /(TH-MST(GT))
IF(ABS(MXU(GU+1)).GT.EPS) ME2=ME2+TWO*MXS(GR+1)*MXU(GU+1)*
& (SH-MSL2(GR+1))*SCF(GR+1)*SH*C(1,L,GU+1)*
& (UH*A(L,GR+1)+ML*MN*B(L,GR+1))/(UH-MSU(GU+1))
IF(ABS(MXT(GT-1)).GT.EPS) ME2=ME2+TWO*MXS(GR+1)*MXT(GT-1)*
& (SH-MSL2(GR+1))*SCF(GR+1)*SH*C(2,L,GT-1)*
& (TH*A(L,GR+1)+ML*MN*B(L,GR+1))/(TH-MST(GT-1))
ENDIF
C--u channel L/R mixing
IF(ABS(MXU(GU+1)).GT.EPS) THEN
ME2=ME2+MXU(GU+1)**2*(MLS-UH)*(MNS-UH)*(C(1,L,GU+1)**2+
& D(1,L,GU+1)**2)/(UH-MSU(GU+1))**2
& +TWO*MXU(GU)*MXU(GU+1)*(MLS-UH)*(MNS-UH)*
& (C(1,L,GU)*C(1,L,GU+1)+D(1,L,GU)*D(1,L,GU+1))
& /(UH-MSU(GU))/(UH-MSU(GU+1))
& -TWO*MXT(GT)*MXU(GU+1)*C(1,L,GU+1)*C(2,L,GT)*
& (MLS*MNS-UH*TH)/(UH-MSU(GU+1))/(TH-MST(GT))
& +TWO*MXS(GR)*MXU(GU+1)*(SH-MSL2(GR))*SCF(GR)*
& SH*C(1,L,GU+1)*(UH*A(L,GR)+ML*MN*B(L,GR))
& /(UH-MSU(GU+1))
IF(ABS(MXT(GT-1)).GT.EPS) ME2=ME2-TWO*MXT(GT-1)*MXU(GU+1)*
& C(1,L,GU+1)*C(2,L,GT-1)*(MLS*MNS-UH*TH)
& /(UH-MSU(GU+1))/(TH-MST(GT-1))
ENDIF
C--t channel L/R mixing
IF(ABS(MXT(GT-1)).GT.EPS) THEN
ME2=ME2+MXT(GT-1)**2*(MLS-TH)*(MNS-TH)*(C(2,L,GT-1)**2
& +D(2,L,GT-1)**2)/(TH-MST(GT-1))**2
& +TWO*MXT(GT)*MXT(GT-1)*(MLS-TH)*(MNS-TH)*
& (C(2,L,GT)*C(2,L,GT-1)+D(2,L,GT)*D(2,L,GT-1))
& /(TH-MST(GT))/(TH-MST(GT-1))
& -TWO*MXT(GT-1)*MXU(GU)*C(1,L,GU)*C(2,L,GT-1)*
& (MLS*MNS-UH*TH)/(UH-MSU(GU))/(TH-MST(GT-1))
& +TWO*MXS(GR)*MXT(GT-1)*(SH-MSL2(GR))*SCF(GR)*
& SH*C(2,L,GT-1)*(TH*A(L,GR)+ML*MN*B(L,GR))
& /(TH-MST(GT-1))
ENDIF
C--multiply by lamda and factors
MEN(L,GN,J,K) = FAC*ME2*EC**2*LAMDA2(I,J,K)**2*PCM
110 I2=I1+6
HCS = HCS+MEN(L,GN,J,K)*DISF(J1,1)*DISF(K1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(11,J1,K1,I2,L,0,0)
GOTO 500
ENDIF
HCS = HCS+MEN(L,GN,J,K)*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(12,K1,J1,I2,L,0,0)
GOTO 500
ENDIF
HCS = HCS+MEN(L,GN,J,K)*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(11,J1,K1,I2,L,1,0)
GOTO 500
ENDIF
HCS = HCS+MEN(L,GN,J,K)*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(12,K1,J1,I2,L,1,0)
GOTO 500
ENDIF
120 CONTINUE
ENDDO
130 CONTINUE
140 CONTINUE
200 IF(.NOT.CHAR) GOTO 300
C--Chargino production
DO 240 GN=1,6
GR=2*GN-1
I=GN
I1 = 2*GN
IF(GN.GT.3) THEN
I1=I1-7
I=GN-3
ENDIF
IF(CHAN(GR).LT.EPS) GOTO 240
DO 230 L=CHARMN,CHARMX
MN = MCR(L)
MNS = MN**2
ML = MLT(I1)
MLS = ML**2
SP = L+4
IF((ML+MN).GT.EMSCA) GOTO 230
PCM = SQRT((SH-(ML+MN)**2)*(SH-(ML-MN)**2))*HALF/SQSH
ECM = SQRT(PCM**2+MLS)
TH = MLS-SQSH*(ECM-PCM*COSTH)
UH = MLS-SQSH*(ECM+PCM*COSTH)
DO J=1,3
DO 220 K=1,3
IF(ABS(LAMDA2(I,J,K)).LT.EPS) GOTO 220
J1=2*J
K1=2*K+5
IF(GN.GT.3) J1=J1-1
IF(GENEV) GOTO 210
GU = 2*J-1
IF(GN.LE.3) GU=GU+6
C--Calculate the matrix element, s and u terms
ME2 =MXS(GR)**2*SCF(GR)*SH*(
& (SH-MLS-MNS)*(A(SP,GR)**2+B(SP,GR)**2)
& -4*ML*MN*A(SP,GR)*B(SP,GR))
& +MXU(GU)**2*(MLS-UH)*(MNS-UH)*
& (C(1,SP,GU)**2+D(1,SP,GU)**2)/(UH-MSU(GU))**2
& -2*MXS(GR)*MXU(GU)*(SH-MSL2(GR))*SCF(GR)*C(1,SP,GU)*
& SH*(UH*A(SP,GR)+B(SP,GR)*ML*MN)/(UH-MSU(GU))
C--s channel L/R mixing
IF(ABS(MXS(GR+1)).GT.EPS) THEN
ME2=ME2+MXS(GR+1)**2*SCF(GR+1)*SH*((SH-MLS-MNS)*
& (A(SP,GR+1)**2+B(SP,GR+1)**2)
& -4*ML*MN*A(SP,GR+1)*B(SP,GR+1))
& +2*MXS(GR)*MXS(GR+1)*SCF(GR)*SCF(GR+1)*
& ((SH-MSL2(GR))*(SH-MSL2(GR+1))+
& MSWD(GR)*MSWD(GR+1))*SH*
& ((SH-MLS-MNS)*(A(SP,GR)*A(SP,GR+1)
& +B(SP,GR)*B(SP,GR+1))-4*ML*MN*
& (A(SP,GR)*B(SP,GR+1)+B(SP,GR)*A(SP,GR+1)))
& -2*MXS(GR+1)*MXU(GU)*(SH-MSL2(GR+1))*SCF(GR+1)*SH*
& C(1,SP,GU)*(UH*A(SP,GR+1)+B(SP,GR+1)*ML*MN)
& /(UH-MSU(GU))
IF(ABS(MXU(GU+1)).GT.EPS) ME2=ME2-2*MXS(GR+1)*MXU(GU+1)*
& (SH-MSL2(GR+1))*SCF(GR+1)*C(1,SP,GU+1)*SH*
& (UH*A(SP,GR+1)+B(SP,GR+1)*ML*MN)/(UH-MSU(GU+1))
ENDIF
C--u channel L/R mixing
IF(ABS(MXU(GU+1)).GT.EPS) ME2 = ME2+MXU(GU+1)**2*(MLS-UH)*
& (MNS-UH)*(C(1,SP,GU+1)**2+D(1,SP,GU+1)**2)
& /(UH-MSU(GU+1))**2
& +2*MXU(GU)*MXU(GU+1)*(MLS-UH)*(MNS-UH)*
& (C(1,SP,GU)*C(1,SP,GU+1)+D(1,SP,GU)*D(1,SP,GU+1))
& /(UH-MSU(GU))/(UH-MSU(GU+1))
& -2*MXS(GR)*MXU(GU+1)*(SH-MSL2(GR))*SCF(GR)*SH*
& C(1,SP,GU+1)*(UH*A(SP,GR)+B(SP,GR)*ML*MN)
& /(UH-MSU(GU+1))
MEC(L,GN,J,K) = FAC*ME2*G**2*LAMDA2(I,J,K)**2*PCM*HALF
210 I2 = I1+6
P = L+4
HCS = HCS+MEC(L,GN,J,K)*DISF(J1,1)*DISF(K1,2)
IF(GN.GT.3) P = P+2
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(11,J1,K1,I2,P,0,0)
GOTO 500
ENDIF
HCS = HCS+MEC(L,GN,J,K)*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(12,K1,J1,I2,P,0,0)
GOTO 500
ENDIF
HCS = HCS+MEC(L,GN,J,K)*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(11,J1,K1,I2,P,1,0)
GOTO 500
ENDIF
HCS = HCS+MEC(L,GN,J,K)*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(12,K1,J1,I2,P,1,0)
GOTO 500
ENDIF
220 CONTINUE
ENDDO
230 CONTINUE
240 CONTINUE
300 IF(.NOT.RAD) GOTO 400
C--Radiative decays
IF(GENEV) GOTO 320
DO 310 GN=1,3
I1= 2*GN+5
I = 2*GN-1
C--charged slepton to sneutrino W
IF(SQSH.GT.(MW+MSL(I1))) THEN
PCM = SQRT((SH-(MW+MSL(I1))**2)*(SH-(MW-MSL(I1))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MW2)
TH = MW2-SQSH*(ECM-PCM*COSTH)
UH = MW2-SQSH*(ECM+PCM*COSTH)
ME2 = MXS(I)**4*SCF(I)*SH**2*PCM**2
& +HALF**2/TH**2*(TWO*MW2*(UH*TH-MSL2(I1)*MW2)+TH**2*SH)
& -HALF*MXS(I)**2*SH*(SH-MSL2(I))*SCF(I)/TH*
& (MW2*(TWO*MSL2(I1)-TH)+(SH-MSL2(I1))*TH)
IF(GN.EQ.3) ME2 = ME2+MXS(I+1)**4*SCF(I+1)*SH**2*PCM**2
& +2.0D0*MXS(I)**2*MXS(I+1)**2*SCF(I)*SCF(I+1)*SH**2*PCM**2
& *((SH-MSL2(I))*(SH-MSL2(I+1))+MSWD(I)*MSWD(I+1))
& -HALF*MXS(I+1)**2*SH*(SH-MSL2(I+1))*SCF(I+1)/TH*
& (MW2*(TWO*MSL2(I1)-TH)+(SH-MSL2(I1))*TH)
MER(GN) = ME2*PCM/MW2
ENDIF
C--sneutrino to charged slepton W
IF(SQSH.GT.(MW+MSL(I))) THEN
PCM = SQRT((SH-(MW+MSL(I))**2)*(SH-(MW-MSL(I))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MW2)
TH = MW2-SQSH*(ECM-PCM*COSTH)
UH = MW2-SQSH*(ECM+PCM*COSTH)
ME2 = MXS(I)**2*SCF(I1)*SH**2*PCM**2
& +HALF**2*MXS(I)**2/TH**2*
& (TWO*MW2*(UH*TH-MW2*MSL2(I))+TH**2*SH)
& -HALF*MXS(I)**2*SH*(SH-MSL2(I1))*SCF(I1)/TH*
& (MW2*(TWO*MSL2(I)-TH)+(SH-MSL2(I))*TH)
MER(GN+4) = ME2*PCM/MW2
ENDIF
310 CONTINUE
C--now the decay stau_2 to stau_1 Z
IF(SQSH.GT.(MZ+MSL(5))) THEN
PCM = SQRT((SH-(MZ+MSL(5))**2)*(SH-(MZ-MSL(5))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MZ2)
TH = MZ2-SQSH*(ECM-PCM*COSTH)
UH = MZ2-SQSH*(ECM+PCM*COSTH)
ME2 = SH**2*PCM**2*(SCF(5)*MXS(5)**2*ZSLP(1)**2
& +SCF(6)*MXS(6)**2*ZSLP(2)**2+TWO*SCF(5)*SCF(6)*
& MXS(5)*MXS(6)*ZSLP(1)*ZSLP(2)*((SH-MSL2(5))*
& (SH-MSL2(6))+MSWD(5)*MSWD(6)))
& +MXS(5)**2*ZQRK(2)**2/TH**2*
& (TWO*MZ2*(UH*TH-MZ2*MSL2(5))+TH**2*SH)
& +MXS(5)**2*ZQRK(1)**2/UH**2*
& (TWO*MZ2*(UH*TH-MZ2*MSL2(5))+UH**2*SH)
& +MXS(5)*SH*(MXS(5)*SCF(5)*ZSLP(1)*(SH-MSL2(5))
& +MXS(6)*SCF(6)*ZSLP(2)*(SH-MSL2(6)))*
& (-ZQRK(2)/TH*(MZ2*(TWO*MSL2(5)-TH)+TH*(SH-MSL2(5)))
& +ZQRK(1)/UH*(MZ2*(TWO*MSL2(5)-UH)+UH*(SH-MSL2(5))))
& +TWO*MXS(5)**2*ZQRK(1)*ZQRK(2)/UH/TH*
& (TWO*MZ2*(MSL2(5)-UH)*(MSL2(5)-TH)-SH*UH*TH)
MER(4) = TWO*ME2*PCM/MZ2
ENDIF
C--now the decay tau sneutrino to tau_2 W
IF(SQSH.GT.(MW+MSL(6))) THEN
PCM = SQRT((SH-(MW+MSL(6))**2)*(SH-(MW-MSL(6))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MW2)
TH = MW2-SQSH*(ECM-PCM*COSTH)
UH = MW2-SQSH*(ECM+PCM*COSTH)
ME2 = MXS(6)**2*SCF(11)*SH**2*PCM**2
& +HALF**2*MXS(6)**2/TH**2*
& (TWO*MW2*(UH*TH-MW2*MSL2(6))+TH**2*SH)
& -HALF*MXS(6)**2*SH*(SH-MSL2(11))*SCF(11)/TH*
& (MW2*(2*MSL2(6)-TH)+(SH-MSL2(6))*TH)
MER(8) = ME2*PCM/MW2
ENDIF
C--Multiply by the parton distributions
320 DO I=1,4
DO J=1,3
DO 330 K=1,3
IF(I.LE.3) THEN
LC = LAMDA2(I,J,K)**2
ELSE
LC = LAMDA2(3,J,K)**2
ENDIF
IF(LC.LT.EPS) GOTO 330
FAC2 = G**2*LC*FAC
C--radiative cross-sections
J1=2*J
K1=2*K+5
ME2 = FAC2*MER(I)
HCS = HCS+ME2*DISF(J1,1)*DISF(K1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(13,J1,K1,I,I,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(14,K1,J1,I,I,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(13,J1,K1,I,I,1,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(14,K1,J1,I,I,1,0)
GOTO 500
ENDIF
J1=2*J-1
K1=2*K+5
ME2 = FAC2*MER(I+4)
HCS = HCS+ME2*DISF(J1,1)*DISF(K1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(13,J1,K1,I+4,I+4,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(14,K1,J1,I+4,I+4,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(13,J1,K1,I+4,I+4,1,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(14,K1,J1,I+4,I+4,1,0)
GOTO 500
ENDIF
330 CONTINUE
ENDDO
ENDDO
400 IF(.NOT.HIGGS) GOTO 500
IF(GENEV) GOTO 480
DO I=1,3
DO 405 J=1,18
405 MEH(I,J) = ZERO
ENDDO
C--Neutral higgs charged slepton
DO 420 L=1,3
DO 410 I=1,2
C--first two generations
IF(SQSH.LT.MH(L)+MSL(2*I)) GOTO 410
PCM = SQRT((SH-(MSL(2*I)+MH(L))**2)*
& (SH-(MSL(2*I)-MH(L))**2))*HALF/SQSH
MEH(1,3*L-3+I) = PCM*SH*SCF(2*I-1)*H(4*L+I-4)**2
410 CONTINUE
C--third generation
IF(SQSH.LT.MH(L)+MSL(5)) GOTO 420
PCM = SQRT((SH-(MSL(5)+MH(L))**2)*
& (SH-(MSL(5)-MH(L))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MH(L)**2)
TH = MH(L)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(L)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,3*L) = PCM*SH*(MXS(5)**2*SCF(5)*H(4*L-1)**2
& +MXS(6)**2*SCF(6)*H(4*L)**2
& +TWO*MXS(5)*MXS(6)*SCF(5)*SCF(6)*H(4*L-1)*
& H(4*L)*((SH-MSL2(5))*(SH-MSL2(6))+
& MSWD(5)*MSWD(6)) )
ME2 = MXS(5)**2*PCM*(UH*TH-MSL2(5)*MH(L)**2)
MEH(2,3*L) =ME2*GUU(L)/TH**2
MEH(3,3*L) =ME2*GDD(L)/UH**2
420 CONTINUE
C--Charged higgs
DO 440 I=1,3
C--charged slepton charged Higgs
DO 430 J=1,2
IF(SQSH.LT.(MH(4)+MSL(2*I-2+J))) GOTO 430
PCM = SQRT((SH-(MH(4)+MSL(2*I-2+J))**2)*
& (SH-(MH(4)-MSL(2*I-2+J))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MH(4)**2)
TH = MH(4)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(4)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,2*I+J+7) = PCM*SH*HALF/MW2*H(2*I+J+10)**2*SCF(5+2*I)
MEH(2,2*I+J+7) = PCM*GDD(4)*MXS(2*I-2+J)**2*
& (UH*TH-MH(4)**2*MSL2(2*I-2+J))/TH**2
430 CONTINUE
C--Sneutrino Charged Higgs
IF(SQSH.LT.(MH(4)+MSL(2*I+5))) GOTO 440
PCM = SQRT((SH-(MH(4)+MSL(2*I+5))**2)*
& (SH-(MH(4)-MSL(2*I+5))**2))*HALF/SQSH
ECM = SQRT(PCM**2+MH(4)**2)
TH = MH(4)**2-SQSH*(ECM-PCM*COSTH)
UH = MH(4)**2-SQSH*(ECM+PCM*COSTH)
MEH(1,15+I) = PCM*SH*HALF/MW2*(
& MXS(2*I-1)**2*SCF(2*I-1)*H(11+2*I)**2
& +MXS(2*I)**2*SCF(2*I)*H(12+2*I)**2
& +TWO*MXS(2*I-1)*MXS(2*I)*SCF(2*I-1)*
& SCF(2*I)*H(11+2*I)*H(12+2*I)*
& ((SH-MSL2(2*I-1))*(SH-MSL2(2*I))+
& MSWD(2*I-1)*MSWD(2*I)))
MEH(2,15+I) = PCM*GUU(4)*
& (UH*TH-MH(4)**2*MSL2(2*I+5))/TH**2
440 CONTINUE
C--Multiply by the parton distributions
480 DO I=1,3
DO J=1,3
DO 490 K=1,3
IF(LAMDA2(I,J,K).LT.EPS) GOTO 490
C--Higgs cross-sections
J1=2*J
K1=2*K+5
FAC2 = G**2*LAMDA2(I,J,K)**2*FAC*HALF
DO L=1,3
ME2 = FAC2*(MEH(1,3*L-3+I)+RMASS(J1)**2*MEH(2,3*L-3+I)
& +RMASS(K1)**2*MEH(3,3*L-3+I))
HCS = HCS+ME2*DISF(J1,1)*DISF(K1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(15,J1,K1,I,L,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(16,K1,J1,I,L,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(15,J1,K1,I,L,1,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(16,K1,J1,I,L,1,0)
GOTO 500
ENDIF
ENDDO
ME2 = FAC2*(MEH(1,15+I)+RMASS(J1)**2*MEH(2,15+I))
HCS = HCS+ME2*DISF(J1,1)*DISF(K1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(15,J1,K1,9+I,4,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(16,K1,J1,9+I,4,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(15,J1,K1,9+I,5,1,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(16,K1,J1,9+I,5,1,0)
GOTO 500
ENDIF
J1=2*J-1
K1=2*K+5
DO L=2,3
ME2 = FAC2*(MEH(1,2*I+L+6)+RMASS(J1)**2*MEH(2,2*I+L+6))
HCS = HCS+ME2*DISF(J1,1)*DISF(K1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(15,J1,K1,2*I+L,5,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1,1)*DISF(J1,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(16,K1,J1,2*I+L,5,0,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(J1+6,1)*DISF(K1-6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(15,J1,K1,2*I+L,4,1,0)
GOTO 500
ENDIF
HCS = HCS+ME2*DISF(K1-6,1)*DISF(J1+6,2)
IF(GENEV.AND.HCS.GT.RCS) THEN
CALL HWHRSS(16,K1,J1,2*I+L,4,1,0)
GOTO 500
ENDIF
ENDDO
490 CONTINUE
ENDDO
ENDDO
C--Setup to generate the event
500 IF(GENEV) THEN
CALL HWETWO(.TRUE.,.TRUE.)
ELSE
EVWGT = HCS
ENDIF
END
CDECK ID>, HWHRSP.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRSP
C-----------------------------------------------------------------------
C Subroutine for all hadron-hadron Rparity violating processes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
IF(MOD(IPROC,10000).GE.4000.AND.MOD(IPROC,10000).LT.4060) THEN
C--SINGLE SPARTICLE VIA LQD
CALL HWHRLS
ELSEIF(MOD(IPROC,10000).GE.4060.AND.MOD(IPROC,10000).LT.4100) THEN
C--RESONANT SLEPTONS TO STANDARD MODEL VIA LQD
CALL HWHRLL
ELSEIF(MOD(IPROC,10000).GE.4100.AND.MOD(IPROC,10000).LT.4160) THEN
C--SINGLE SPARTICLE VIA UDD
CALL HWHRBS
C--RESONANT SQUARKS TO STANDARD MODEL VIA UDD
ELSEIF(MOD(IPROC,10000).EQ.4160) THEN
CALL HWHRBB
ELSE
C--UNKNOWN PROCESS
CALL HWWARN('HWHRSP',500)
ENDIF
END
CDECK ID>, HWHRSS.
*CMZ :- -20/07/99 10:56:12 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHRSS(TYPE,ID1,ID2,ID3,ID4,R4,IPERM)
C-----------------------------------------------------------------------
C IDENTIDY HARD R-PARITY VIOLATING PROCESS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID3, ID4, R4, IPERM,TYPE,ID1,ID2,NEUTD1(8),SLEPID(8),
& NEUTD2(13),SQUID(6),SGN,HWUANT,SQUID2(12),SLPID2(12),
& GAGID1(6),GAGID2(8)
EXTERNAL HWUANT
SAVE NEUTD1,NEUTD2,SLEPID,SQUID ,SQUID2,SLPID2,GAGID1,GAGID2
DATA NEUTD1 /450,451,452,453,454,455,456,457/
DATA NEUTD2 /449,449,449,450,451,452,453,454,455,456,457,454,455/
DATA SLEPID /432,434,436,435,431,433,435,447/
DATA SQUID /411,423,412,412,424,411/
DATA SQUID2 /407,419,409,421,411,423,408,420,410,422,412,424/
DATA SLPID2 /443,445,435,431,443,433,445,435,447,432,434,436/
DATA GAGID1 /199,199,200,198,198,200/
DATA GAGID2 /198,198,198,200,199,199,199,199/
IDCMF = 15
IF(IPERM.EQ.0) THEN
ICO(1) = 2
ICO(2) = 1
ICO(3) = 3
ICO(4) = 4
ELSEIF(IPERM.EQ.1) THEN
ICO(1) = 2
ICO(2) = 1
ICO(3) = 4
ICO(4) = 3
ELSEIF(IPERM.EQ.2) THEN
ICO(1) = 3
ICO(2) = 4
ICO(3) = 1
ICO(4) = 2
ELSE
CALL HWWARN('HWHRSS',100)
GOTO 999
ENDIF
IF(TYPE.LE.8) THEN
IDN(1) = ID1+R4*6
IDN(2) = ID2+R4*6
ELSE
SGN = 1
IF(MOD(TYPE,2).EQ.0) SGN = -1
IDN(1) = ID1+R4*6*SGN
IDN(2) = ID2-R4*6*SGN
ENDIF
IF(TYPE.LE.2) THEN
IDN(3) = ID3+6*R4
IDN(4) = ID4+6*R4
ELSEIF(TYPE.GE.3.AND.TYPE.LE.4) THEN
IDN(3) = ID3-R4*6
IDN(4) = NEUTD2(ID4)
ELSEIF(TYPE.GE.5.AND.TYPE.LE.6) THEN
IDN(3) = GAGID1(ID3)
IDN(4) = SQUID(ID4)-R4*6
IF(R4.EQ.1) IDN(3) = HWUANT(IDN(3))
ELSEIF(TYPE.GE.7.AND.TYPE.LE.8) THEN
IDN(3) =202+ID3
IDN(4) = SQUID2(ID4)-R4*6
ELSEIF(TYPE.GE.9.AND.TYPE.LE.10) THEN
IDN(3) = ID3+6*R4
IDN(4) = ID4-6*R4
IF(IPERM.EQ.2.AND.TYPE.EQ.10) THEN
SGN=IDN(3)
IDN(3) = IDN(4)
IDN(4) = SGN
ENDIF
ELSEIF(TYPE.GE.11.AND.TYPE.LE.12) THEN
IDN(3) = 120+ID3-R4*6
IDN(4) = NEUTD1(ID4)
IF(R4.EQ.1) IDN(4) = HWUANT(IDN(4))
ELSEIF(TYPE.GE.13.AND.TYPE.LE.14) THEN
IDN(3) = SLEPID(ID3)-R4*6
IDN(4) = GAGID2(ID4)
IF(R4.NE.0) IDN(4) = HWUANT(IDN(4))
ELSEIF(TYPE.GE.15.AND.TYPE.LE.16) THEN
IDN(3) = SLPID2(ID3)-R4*6
IDN(4) = 202+ID4
ENDIF
IF(MOD(TYPE,2).EQ.0.AND.TYPE.NE.8) COSTH=-COSTH
999 RETURN
END
CDECK ID>, HWHSCT.
*CMZ :- -18/03/04 18.42.43 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHSCT(REPORT,FIRSTC,JMUEO,PTJIM)
C-----------------------------------------------------------------------
C RELABEL THE EVENT RECORD FOR EXTRA HARD SCATTERING,
C DO THE SCATTERING, PARTON SHOWER IT, AND CLEAN UP THE EVENT RECORD
C REPORT RETURNS THE OUTCOME:
C 0 = SUCCESSFUL
C 1 = FAILED DUE TO ERROR IN HARD SCATTERING GENERATION
C 2 = FAILED DUE TO ENERGY CONSERVATION IN HARD SCATTERING
C 3 = FAILED DUE TO ERROR IN PARTON EVOLUTION
C 4 = FAILED DUE TO ENERGY CONSERVATION IN PARTON EVOLUTION
C 5 = COMPLETELY FAILED (IERROR IS ALSO NON-ZERO TO CANCEL EVENT)
C FIRSTC IS AN INPUT FLAG THAT SAYS THAT THIS IS THE FIRST CALL
C OF THE EVENT
C JMUEO IS THE UNDERLYING EVENT OPTION: 1=>VETO EVENTS WITH M
C SCATTERS ABOVE PTMIN WITH PROBABILITY 1/(M+1)
C PTJIM IS THE MINIMUM TRANSVERSE MOMENTUM FOR ADDITIONAL SCATTERS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRGET,HWRSET,WGT,PBOOST(5),RBOOST(3,3),
$ WJMAX,PT,PTJIM,DUMMY,HWUPCM
INTEGER IHEP,IBM,ITG,IBMN,ITGN,IBMT,ITGT,I,REPORT,NHARD,
$ MYRN(2),TMPRN(2),JMUEO
LOGICAL COL,FIRSTC,TMPFLG
INTEGER IPRTMP
EXTERNAL HWRGEN,HWRGET,HWRSET,HWUPCM
SAVE WJMAX,MYRN,NHARD
DATA WJMAX,MYRN,NHARD/0,004122,7679781,0/
COL(I)=I.EQ.13 .OR. I.GE.1.AND.I.LE.6 .OR. I.GE.115.AND.I.LE.120
REPORT=5
IF (IERROR.NE.0) RETURN
C---RESET THE COUNTER FOR HARD SCATTERS ON THE FIRST CALL
IF (FIRSTC) NHARD=0
C---FIND BEAM AND TARGET REMNANTS
CALL HWHREM(IBM,ITG)
IF (IERROR.NE.0) RETURN
C---RECALCULATE THEIR MASS CORRECTLY
CALL HWUMAS(PHEP(1,IBM))
CALL HWUMAS(PHEP(1,ITG))
C---SET UP NEW ENTRIES IN THE EVENT RECORD
NHEP=NHEP+1
CALL HWVEQU(5,PHEP(1,IBM),PHEP(1,NHEP))
ISTHEP(NHEP)=3
IBMN=NHEP
IBMT=JDAHEP(1,1)
IF (IBMT.EQ.0) THEN
JMOHEP(1,NHEP)=1
IDHW(NHEP)=72
ELSE
JMOHEP(1,NHEP)=IBMT
IDHW(NHEP)=71
ENDIF
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IDHEP(NHEP)=IDPDG(IDHW(NHEP))
NHEP=NHEP+1
CALL HWVEQU(5,PHEP(1,ITG),PHEP(1,NHEP))
ISTHEP(NHEP)=3
ITGN=NHEP
ITGT=JDAHEP(1,2)
IF (ITGT.EQ.0) THEN
JMOHEP(1,NHEP)=2
IDHW(NHEP)=72
ELSE
JMOHEP(1,NHEP)=ITGT
IDHW(NHEP)=71
ENDIF
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IDHEP(NHEP)=IDPDG(IDHW(NHEP))
C---BOOST TO THEIR CENTRE-OF-MASS FRAME
CALL HWVSUM(4,PHEP(1,IBMN),PHEP(1,ITGN),PBOOST)
CALL HWUMAS(PBOOST)
DO 100 IHEP=IBMN,NHEP
CALL HWULOF(PBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
100 CONTINUE
CALL HWUROT(PHEP(1,IBMN),ONE,ZERO,RBOOST)
DO 110 IHEP=IBMN,NHEP
CALL HWUROF(RBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
110 CONTINUE
C---PERFORM A SEARCH FOR THE MAXIMUM WEIGHT, IF IT IS NOT YET FOUND
IF (WJMAX.EQ.0) THEN
C---USING LOCAL RANDOM NUMBER SEEDS
DUMMY=HWRGET(TMPRN)
DUMMY=HWRSET(MYRN)
GENEV=.FALSE.
DO I=1,IBSH
CALL HWHSCU(WGT,PTJIM)
WJMAX=MAX(WJMAX,WGT)
ENDDO
WRITE (6,'(A,G12.4)') ' Jimmy search for maximum weight=',WJMAX
DUMMY=HWRGET(MYRN)
DUMMY=HWRSET(TMPRN)
C---BECAUSE OF THE ENERGY DEPENDENCE, LEAVE LOTS OF SAFETY MARGIN
WJMAX=WJMAX*2
ENDIF
C---GENERATE A NEW HARD SCATTERING
5 GENEV=.FALSE.
10 CALL HWHSCU(WGT,PTJIM)
IF (WGT.GT.WJMAX) THEN
WRITE (6,'(A,G12.4/A,G12.4,A,G12.4)')
$ ' Jimmy maximum weight exceeded! SQRT(S)=',PHEP(5,3),
$ ' Increasing from ',WJMAX,' to ',WGT*2
WJMAX=WGT*2
ENDIF
IF (WGT.LE.WJMAX*HWRGEN(0)) GOTO 10
GENEV=.TRUE.
CALL HWHSCU(WGT,PTJIM)
C---IF ADDING LOW PT SCATTERS TO HIGH PT EVENTS ADD AN EXTRA VETO ON
C SCATTERS THAT HAPPEN TO BE HIGH PT
TMPFLG=.FALSE.
IF (JMUEO.EQ.1) THEN
C---FIRST RECONSTRUCT THE PT THAT WAS GENERATED IN THE SCATTERING
PT=SQRT(PHEP(1,NHEP)**2+PHEP(2,NHEP)**2)*
$ SQRT(XX(1)*XX(2))*PHEP(5,3)
$ /(2*HWUPCM(PHEP(5,NHEP-2),PHEP(5,NHEP-1),PHEP(5,NHEP)))
C---IF IT IS ABOVE THE TRIGGER THRESHOLD APPLY THE VETO
IF (PT.GT.PTMIN) THEN
IF ((NHARD+2)*HWRGEN(1).LT.1) THEN
NHEP=IBMN-1
GOTO 5
ENDIF
TMPFLG=.TRUE.
ENDIF
ENDIF
C---IF MOMENTUM CANNOT BE CONSERVED, STOP GENERATING HARD SCATTERS
IF ( PHEP(4,IBMN+2) .GT. PHEP(4,IBMN).OR.
$ PHEP(4,ITGN+2) .GT. PHEP(4,ITGN).OR.
$ PHEP(3,IBMN+2) .GT. PHEP(3,IBMN).OR.
$ -PHEP(3,ITGN+2) .GT.-PHEP(3,ITGN).OR.IERROR.NE.0) THEN
IF (IERROR.GT.0) THEN
WRITE (6,'(A/A)')
$ ' THIS ERROR OCCURED DURING A SECONDARY SCATTER AND WAS',
$ ' CAUGHT BY HWHSCT, SO EVENT IS NOT KILLED AFTER ALL'
REPORT=1
ELSE
REPORT=2
ENDIF
NHEP=IBMN-1
IERROR=0
RETURN
ENDIF
C---RELABEL OUTGOING REMNANTS AS INCOMING HADRONS
JDAHEP(1,1)=IBMN
JDAHEP(1,2)=ITGN
C---EVOLVE THEM
ISLENT=-1
C---SAVE THE CURRENT PROCESS TYPE, AND SWITCH TO
C QCD SCATTERING TO AVOID PROBLEMS WITH THE
C PARTON SHOWER.
IPRTMP=IPRO
IPRO=15
CALL HWBGEN
IPRO=IPRTMP
ISLENT=1
C---PUT THE LABELS BACK
JDAHEP(1,1)=IBMT
JDAHEP(1,2)=ITGT
C---IF THERE WERE ANY PROBLEMS, STOP GENERATING HARD SCATTERS
IF (IERROR.NE.0) THEN
IF (IERROR.GT.0) THEN
WRITE (6,'(A/A)')
$ ' THIS ERROR OCCURED DURING A SECONDARY SCATTER AND WAS',
$ ' CAUGHT BY HWHSCT, SO EVENT IS NOT KILLED AFTER ALL'
REPORT=3
ELSE
REPORT=4
ENDIF
NHEP=IBMN-1
IERROR=0
RETURN
ENDIF
C---UNDO THE LORENTZ BOOST
DO 200 IHEP=IBMN,NHEP
CALL HWUROB(RBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULOB(PBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
200 CONTINUE
C---FIND THE NEW BEAM AND TARGET REMNANTS
ISTHEP(IBM)=3
ISTHEP(ITG)=3
CALL HWHREM(IBMN,ITGN)
IF (IERROR.NE.0) RETURN
C---CONNECT UP THE COLOUR/FLAVOUR LINES OF THE TWO SCATTERS
IDHW(IBMN)=IDHW(IBM)
IDHEP(IBMN)=IDHEP(IBM)
IF (COL(IDHW(IBM))) THEN
JMOHEP(2,JDAHEP(2,IBMN))=JMOHEP(2,IBM)
JDAHEP(2,JMOHEP(2,IBM))=JDAHEP(2,IBMN)
JDAHEP(2,IBMN)=JDAHEP(2,IBM)
JMOHEP(2,JDAHEP(2,IBM))=IBMN
ELSE
JDAHEP(2,JMOHEP(2,IBMN))=JDAHEP(2,IBM)
JMOHEP(2,JDAHEP(2,IBM))=JMOHEP(2,IBMN)
JMOHEP(2,IBMN)=JMOHEP(2,IBM)
JDAHEP(2,JMOHEP(2,IBM))=IBMN
ENDIF
JMOHEP(2,IBM)=0
JDAHEP(1,IBM)=IBMN
JDAHEP(2,IBM)=0
IDHW(ITGN)=IDHW(ITG)
IDHEP(ITGN)=IDHEP(ITG)
IF (COL(IDHW(ITG))) THEN
JMOHEP(2,JDAHEP(2,ITGN))=JMOHEP(2,ITG)
JDAHEP(2,JMOHEP(2,ITG))=JDAHEP(2,ITGN)
JDAHEP(2,ITGN)=JDAHEP(2,ITG)
JMOHEP(2,JDAHEP(2,ITG))=ITGN
ELSE
JDAHEP(2,JMOHEP(2,ITGN))=JDAHEP(2,ITG)
JMOHEP(2,JDAHEP(2,ITG))=JMOHEP(2,ITGN)
JMOHEP(2,ITGN)=JMOHEP(2,ITG)
JDAHEP(2,JMOHEP(2,ITG))=ITGN
ENDIF
JMOHEP(2,ITG)=0
JDAHEP(1,ITG)=ITGN
JDAHEP(2,ITG)=0
C---LOOK FOR COLOUR SINGLET GLUONS (A RARE BUT ANNOYING SPECIAL CASE)
DO 20 IHEP=1,NHEP
IF (IDHW(IHEP).EQ.13.AND.JMOHEP(2,IHEP).EQ.IHEP) THEN
CALL HWWARN('HWHSCT',120)
GOTO 999
ENDIF
20 CONTINUE
REPORT=0
IF (TMPFLG) NHARD=NHARD+1
999 RETURN
END
CDECK ID>, HWHSCU
*CMZ :- -17/03/04 14.37.43 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHSCU(WGT,PTJIM)
C-----------------------------------------------------------------------
C SWAP THE HARD PROCESS GENERATION PARAMETERS,
C CALL HWHQCD, AND SWAP BACK
C WGT IS THE OUTPUT EVENT WEIGHT
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION WGT,PTJIM,XMIN,XMAX,XPOW,
$ TMPXMN,TMPXMX,TMPXPW,TMPWGT
LOGICAL FIRST
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
C---STORE THE CURRENT VALUES
TMPWGT=EVWGT
TMPXMN=XMIN
TMPXMX=XMAX
TMPXPW=XPOW
C---REPLACE BY NEW ONES
XMIN=2*PTJIM
XMAX=2*SQRT(HALF*(EBEAM1*EBEAM2+PBEAM1*PBEAM2))
XPOW=-4D0
C---AND ENSURE THAT HWRPOW GETS REINITIALIZED
FIRST=.TRUE.
C---GENERATE A PHASE SPACE POINT
CALL HWHQCD
IF (IERROR.NE.0.OR.EVWGT.LT.0) THEN
IERROR=0
EVWGT=0
ENDIF
WGT=EVWGT
C---PUT THE OLD VALUES BACK
EVWGT=TMPWGT
XMIN=TMPXMN
XMAX=TMPXMX
XPOW=TMPXPW
C---AND AGAIN ENSURE THAT HWRPOW GETS REINITIALIZED
FIRST=.TRUE.
C---INCLUDE GAMWT HERE
WGT=WGT*GAMWT
END
CDECK ID>, HWHSNG.
*CMZ :- -20/09/95 14.59.15 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHSNG
C PARTON-PARTON SCATTERING VIA COLOUR SINGLET
C MEAN EVWGT = SIGMA IN NB
C TREATS ALL PARTONS ON EQUAL FOOTING WITH HWHSNM(ID1,ID2,S,T)
C PROVIDING THE MATRIX ELEMENT SQUARED FOR PARTON TYPES ID1 AND ID2
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID1,ID2
DOUBLE PRECISION HWRGEN,HWRUNI,HWHSNM,EPS,RCS,ET,EJ,KK,KK2,
& YJ1INF,YJ1SUP,Z1,YJ2INF,YJ2SUP,Z2,FACT,S,T,U,HCS
SAVE HCS,FACT,S,T
PARAMETER (EPS=1.D-9)
IF (GENEV) THEN
RCS=HCS*HWRGEN(0)
ELSE
EVWGT=0.
CALL HWRPOW(ET,EJ)
KK=ET/PHEP(5,3)
KK2=KK**2
IF (KK.GE.ONE) RETURN
YJ1INF=MAX( YJMIN , LOG((1.-SQRT(1.-KK2))/KK) )
YJ1SUP=MIN( YJMAX , LOG((1.+SQRT(1.-KK2))/KK) )
IF (YJ1INF.GE.YJ1SUP) RETURN
Z1=EXP(HWRUNI(1,YJ1INF,YJ1SUP))
YJ2INF=MAX( YJMIN , -LOG(2./KK-1./Z1) )
YJ2SUP=MIN( YJMAX , LOG(2./KK-Z1) )
IF (YJ2INF.GE.YJ2SUP) RETURN
Z2=EXP(HWRUNI(2,YJ2INF,YJ2SUP))
XX(1)=0.5*(Z1+Z2)*KK
IF (XX(1).GE.ONE) RETURN
XX(2)=XX(1)/(Z1*Z2)
IF (XX(2).GE.ONE) RETURN
COSTH=(Z1-Z2)/(Z1+Z2)
S=XX(1)*XX(2)*PHEP(5,3)**2
T=-0.5*S*(1.-COSTH)
U=-S-T
C---SET EMSCA TO HARD PROCESS SCALE (APPROX ET-JET)
EMSCA=SQRT(2.*S*T*U/(S*S+T*T+U*U))
FACT=GEV2NB*0.5*ET*EJ*(YJ1SUP-YJ1INF)*(YJ2SUP-YJ2INF)
$ /(16*PIFAC*S**2)
CALL HWSGEN(.FALSE.)
ENDIF
C
HCS=0.
DO 20 ID1=1,13
IF (DISF(ID1,1).LT.EPS) GOTO 20
DO 10 ID2=1,13
IF (DISF(ID2,1).LT.EPS) GOTO 10
HCS=HCS+FACT*DISF(ID1,1)*DISF(ID2,2)*HWHSNM(ID1,ID2,S,T)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHQCP(ID1,ID2,3412,90)
GOTO 30
ENDIF
10 CONTINUE
20 CONTINUE
EVWGT=HCS
RETURN
C---GENERATE EVENT
30 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
END
CDECK ID>, HWHSNM.
*CMZ :- -20/09/95 15.28.53 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWHSNM(ID1,ID2,S,T)
C MATRIX ELEMENT SQUARED FOR COLOUR-SINGLET PARTON-PARTON SCATTERING
C INCLUDES SPIN AND COLOUR AVERAGES AND SUMS.
C FOR PHOTON EXCHANGE, INTERFERENCE WITH U-CHANNEL CONTRIBUTION IS
C INCLUDED FOR IDENTICAL QUARKS AND LIKEWISE S-CHANNEL CONTRIBUTION
C FOR IDENTICAL QUARK-ANTIQUARK PAIRS.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWHSNM,HWUAEM,HWUALF,S,T,ASQ,AINU,AINS,Y,SOLD,
$ TOLD,QQ(13,13),ZETA3
INTEGER ID1,ID2
LOGICAL PHOTON
C---ZETA3=RIEMANN ZETA FUNCTION(3)
PARAMETER (ZETA3=1.202056903159594D0)
SAVE ASQ,AINU,AINS,SOLD,TOLD,QQ
DATA ASQ,AINU,AINS,SOLD,TOLD,QQ/5*0,169*-1/
C---PHOTON=.TRUE. FOR PHOTON EXCHANGE, .FALSE. FOR MUELLER-TANG
PHOTON=MOD(IPROC,100).GE.50
C---QQ CACHES THE KINEMATIC-INDEPENDENT FACTORS, TO MAKE IT RUN FASTER
C (BEARING IN MIND THAT THIS ROUTINE IS CALLED 169 TIMES PER EVENT)
IF (QQ(ID1,ID2).LT.ZERO) THEN
IF (PHOTON) THEN
IF (ID1.EQ.13.OR.ID2.EQ.13) THEN
QQ(ID1,ID2)=0
ELSE
QQ(ID1,ID2)=(QFCH(MOD(ID1-1,6)+1)*QFCH(MOD(ID2-1,6)+1))**2
$ *(4*PIFAC)**2
ENDIF
ELSE
IF (ID1.EQ.13.AND.ID2.EQ.13) THEN
QQ(ID1,ID2)=CAFAC**4
ELSEIF (ID1.EQ.13.OR.ID2.EQ.13) THEN
QQ(ID1,ID2)=(CAFAC*CFFAC)**2
ELSE
QQ(ID1,ID2)=CFFAC**4
ENDIF
QQ(ID1,ID2)=QQ(ID1,ID2)*
$ PIFAC**3/(4*(3.5*ASFIXD*CAFAC*ZETA3)**3)
$ *(16*PIFAC)
ENDIF
ENDIF
C---THE KINEMATIC-DEPENDENT PART IS ALSO CACHED
IF (S.NE.SOLD.OR.T.NE.TOLD) THEN
IF (PHOTON) THEN
AINS=HWUAEM(T)**2
ASQ=2*(S**2+(S+T)**2)/T**2*AINS
AINU=-4*S/T*AINS/NCOLO
AINS=4*AINS/NCOLO-AINU
ELSE
Y=LOG(S/(-T))+ONE
ASQ=HWUALF(1,EMSCA)**4*(S/T)**2*EXP(2*OMEGA0*Y)/Y**3
AINU=0
AINS=0
ENDIF
ENDIF
C---THE FINAL ANSWER IS JUST THEIR PRODUCT
IF (ID1.EQ.ID2) THEN
HWHSNM=QQ(ID1,ID2)*(ASQ+AINU)
ELSEIF (ABS(ID1-ID2).EQ.6) THEN
HWHSNM=QQ(ID1,ID2)*(ASQ+AINS)
ELSE
HWHSNM=QQ(ID1,ID2)*ASQ
ENDIF
END
CDECK ID>, HWHSPN.
*CMZ :- -01/10/01 19.41.18 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHSPN
C-----------------------------------------------------------------------
C Calculates the spin correlations for the hard process
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ZI,S,D,ME(2,2,2,2,NCFMAX),MED(2,2,2,2),F3(2,2,8),
& F4(2,2,8),F3M(2,2,8),F4M(2,2,8),FTP(2,2,8,8),FTM(2,2,8,8),
& FUP(2,2,8,8),FUM(2,2,8,8),FST(2,2,8)
DOUBLE PRECISION P(5,4),A(2,NDIAHD),B(2,NDIAHD),XMASS,PLAB,
& PRW,PCM,MS(NDIAHD),MWD(NDIAHD),MR(NDIAHD),HWULDO,EE,
& PREF(5),EPS,N(3),HWVDOT,PP,PRE,SH,TH,UH,PM(5,4),DIJ(2,2),
& MA(4),MA2(4),PTMP(5),WGT,WGTB(NCFMAX),WGTC,HWRGEN
INTEGER ICM,IHEP,IST,JHEP,KHEP,ID,LHEP,MHEP,IK,IL,IM,IJ,L1,L2,I,J,
& IDP(4+NDIAHD),DRTYPE(NDIAHD),NDIA,P1,P2,P3,P4,IFLOW(NDIAHD),
& ID1,ID2,III,JJJ,KKK,O(2),LLL,MMM
DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN(2,12,2,4),
& AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
& HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
& HZZ(2),ZAB(12,2,2),HHB(2,3),HWUAEM
COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
& OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
LOGICAL SPIN,FIRST
EXTERNAL HWUAEM
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
PARAMETER(EPS=1D-20)
EXTERNAL HWULDO,HWVDOT,HWRGEN
SAVE PREF,DIJ,O,FIRST
DATA PREF/1.0D0,0.0D0,0.0D0,1.0D0,0.0D0/
DATA DIJ/1.0D0,0.0D0,0.0D0,1.0D0/
DATA O/2,1/
DATA FIRST/.TRUE./
IF(IERROR.NE.0) RETURN
IF(FIRST) THEN
CALL HWISPC
FIRST = .FALSE.
ENDIF
C--search the event record for the hard process
DO 1 IHEP=1,NHEP
IST = ISTHEP(IHEP)
IF(IST.EQ.110.OR.IST.EQ.120) THEN
ICM = IHEP
GOTO 2
ENDIF
1 CONTINUE
C--now decide whether or not to perform spin correlation
2 KHEP = JDAHEP(1,ICM)
IK = IDHW(KHEP)
JHEP = JDAHEP(2,ICM)
IJ = IDHW(JHEP)
IF(JHEP-KHEP+1.NE.2) CALL HWWARN('HWHSPN',500)
SPIN = .FALSE.
DO 3 IHEP=KHEP,JHEP
ID = IDHW(IHEP)
IF(RSPIN(ID).EQ.0.5D0) SPIN=.TRUE.
3 CONTINUE
IF(.NOT.SPIN) RETURN
IF((RSPIN(IDHW(KHEP)).EQ.ONE.AND.RSPIN(IDHW(JHEP)).EQ.ZERO).OR.
& (RSPIN(IDHW(KHEP)).EQ.ZERO.AND.RSPIN(IDHW(JHEP)).EQ.ONE)) RETURN
LHEP = JMOHEP(1,ICM)
MHEP = JMOHEP(2,ICM)
C--now identify the hard process
C--SM processes first
C--fermion-antifermion production in lepton-lepton collisions
C--or via Z/gamma in hadron-hadron collisions
IF(IPRO.EQ.1.OR.IPRO.EQ.13) THEN
C--only need spin correlations for top and tau production
IF((IK.EQ. 6.AND.IJ.EQ. 12).OR.(IK.EQ. 12.AND.IJ.EQ.6 ).OR.
& (IK.EQ.125.AND.IJ.EQ.131).OR.(IK.EQ.131.AND.IJ.EQ.125)) THEN
C--check fermion first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--Id's of the incoming and outgoing fermions
IL = IDHW(LHEP)
ID1 = IL-6*INT((IL-1)/6)+10*INT((IL-1)/120)
ID2 = IK-6*INT((IK-1)/6)+10*INT((IK-1)/120)
C--couplings for the diagrams
C--first the photon exchange
A(1,1) = -QFCH(ID1)
A(2,1) = -QFCH(ID1)
B(1,1) = -QFCH(ID2)
B(2,1) = -QFCH(ID2)
IDP(5) = 59
DRTYPE(1) = 4
C--then the Z exchange
A(1,2) = -RFCH(ID1)
A(2,2) = -LFCH(ID1)
B(1,2) = -RFCH(ID2)
B(2,2) = -LFCH(ID2)
IDP(6) = 200
DRTYPE(2) = 4
C--setup the colour flow
NDIA = 2
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
IFLOW(2) = 1
ELSE
RETURN
ENDIF
C--fermion-antifermion via s-channel W in hadron-hadron
ELSEIF(IPRO.EQ.14) THEN
IF(IK.EQ. 6.OR.IK.EQ. 12.OR.IJ.EQ. 6.OR.IJ.EQ. 12.OR.
& IK.EQ.125.OR.IJ.EQ.131.OR.IK.EQ.131.OR.IJ.EQ.125) THEN
C--check fermion first and reorder if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--couplings for the diagram
A(1,1) = ZERO
A(2,1) =-ORT/SW
B(1,1) = ZERO
B(2,1) =-ORT/SW
IDP(5) = 198
DRTYPE(1) = 4
NDIA = 1
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
ELSE
RETURN
ENDIF
C--top quark production via QCD
ELSEIF(IPRO.EQ.15.OR.IPRO.EQ.17) THEN
IF((IK.EQ.6.AND.IJ.EQ.12).OR.(IK.EQ.12.AND.IJ.EQ.6)) THEN
C--check if the outgoing fermion is first and change order if not
IF(IDHEP(KHEP).LT.0) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
ENDIF
C--quark-quark to t tbar
IF(IDHW(LHEP).LE.12.AND.IDHW(MHEP).LE.12) THEN
C--first check the incoming fermion is first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHW(LHEP)
C--couplings for the diagram
A(1,1) =-ONE
A(2,1) =-ONE
B(1,1) =-ONE
B(2,1) =-ONE
IDP(5) = 13
DRTYPE(1) = 4
NDIA = 1
C--setup the colour flow
NCFL(1) = 1
SPNCFC(1,1,1) = TWO/9.0D0
IFLOW(1) = 1
C--gluon-gluon to t tbar
ELSEIF(IDHW(LHEP).EQ.13.AND.IDHW(MHEP).EQ.13) THEN
C--setup the diagrams
IDP(5) = 12
IDP(6) = 12
IDP(7) = 13
IDP(8) = 13
DRTYPE(1) = 5
DRTYPE(2) = 6
DRTYPE(3) = 7
DRTYPE(4) = 7
NDIA = 4
C--setup the colour flow
NCFL(1) = 2
IFLOW(1) = 1
IFLOW(2) = 2
IFLOW(3) = 1
IFLOW(4) = 2
SPNCFC(1,1,1) = 0.25D0/THREE
SPNCFC(2,2,1) = SPNCFC(1,1,1)
SPNCFC(1,2,1) = ONE/THREE/32.0D0
SPNCFC(2,1,1) = ONE/THREE/32.0D0
C--incorrect initial state
ELSE
CALL HWWARN('HWHSPN',501)
ENDIF
C--don't need spin correlations haven't produced top
ELSE
RETURN
ENDIF
C--single top quark production in hadron collisions
ELSEIF(IPRO.EQ.20) THEN
C--change order if b quark not first and identify incoming particles
IF(ABS(IDHEP(LHEP)).NE.5) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHEP(LHEP)
IM = IDHEP(MHEP)
C--change order if t quark not first
IF(ABS(IDHEP(KHEP)).NE.6) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
ENDIF
C--identify diagram type
C--fermion fermion
IF(IL.GT.0.AND.IM.GT.0) THEN
DRTYPE(1) = 17
C--fermion antifermion
ELSEIF(IL.GT.0.AND.IM.LT.0) THEN
DRTYPE(1) = 18
C--antifermion fermion
ELSEIF(IL.LT.0.AND.IM.GT.0) THEN
DRTYPE(1) = 19
C--antifermion antifermion
ELSEIF(IL.LT.0.AND.IM.LT.0) THEN
DRTYPE(1) = 20
C--incorrect initial state
ELSE
CALL HWWARN('HWHSPN',502)
ENDIF
C--couplings
A(1,1) = ZERO
A(2,1) = -ORT/SW
B(1,1) = ZERO
B(2,1) = -ORT/SW
C--virtual particle etc
IDP(5) = 198
NDIA = 1
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
C--SUSY particle production
ELSEIF(IPRO.EQ.7.OR.IPRO.EQ.30) THEN
IF(MOD(IPROC,10000).GT.3030) RETURN
C--fermion-antifermion to neutralino neutralino
IF(IK.GE.450.AND.IK.LE.453.AND.IJ.GE.450.AND.IJ.LE.453) THEN
C--first check the fermion is first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHW(LHEP)
IM = IDHW(MHEP)
C--couplings of the various diagrams
L1 = IK-449
L2 = IJ-449
ID = IL-6*INT((IL-1)/6)+10*INT((IL-1)/120)
C--couplings for the Z exchange diagram
A(1,1) = -RFCH(ID)
A(2,1) = -LFCH(ID)
B(2,1) = HALF*(-ZMIXSS(L1,3)*ZMIXSS(L2,3)
& +ZMIXSS(L1,4)*ZMIXSS(L2,4))/SW/CW
B(1,1) = -B(2,1)
B(2,1) = B(2,1)*ZSGNSS(L1)*ZSGNSS(L2)
DRTYPE(1) = 1
IDP(5) = 200
C--couplings for the t-channel diagrams
A(1,2) = ZERO
A(2,2) =-RT*SLFCH(ID,L1)
B(1,2) =-RT*SLFCH(ID,L2)
B(2,2) = ZERO
IDP(6) = IL-6*INT((IL-1)/6)+24*INT((IL-1)/120)+400
A(1,3) =-RT*SRFCH(ID,L1)*ZSGNSS(L1)
A(2,3) = ZERO
B(1,3) = ZERO
B(2,3) =-RT*SRFCH(ID,L2)*ZSGNSS(L2)
IDP(7) = IL-6*INT((IL-1)/6)+24*INT((IL-1)/120)+412
DRTYPE(2) = 2
DRTYPE(3) = 2
C--couplings for the u-channel diagrams
A(1,4) = ZERO
A(2,4) =-RT*SLFCH(ID,L2)*ZSGNSS(L2)
B(1,4) =-RT*SLFCH(ID,L1)*ZSGNSS(L1)
B(2,4) = ZERO
IDP(8) = IDP(6)
A(1,5) =-RT*SRFCH(ID,L2)
A(2,5) = ZERO
B(1,5) = ZERO
B(2,5) =-RT*SRFCH(ID,L1)
IDP(9) = IDP(7)
DRTYPE(4) = 3
DRTYPE(5) = 3
NDIA=5
C--setup the colour flow
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
IFLOW(2) = 1
IFLOW(3) = 1
IFLOW(4) = 1
IFLOW(5) = 1
C--chargino pair production
ELSEIF(IK.GE.454.AND.IK.LE.457.AND.IJ.GE.454.AND.IJ.LE.457) THEN
C--first check the fermion is first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHW(LHEP)
IM = IDHW(MHEP)
C--couplings of the various diagrams
L1 = IK-453-2*INT((IK-454)/2)
L2 = IJ-453-2*INT((IJ-454)/2)
ID = IL-6*INT((IL-1)/6)+10*INT((IL-1)/120)
C--couplings for the s-channel photon exchange
A(1,1) = -QFCH(ID)
A(2,1) = -QFCH(ID)
B(1,1) = -DIJ(L1,L2)
B(2,1) = -DIJ(L1,L2)
IDP(5) = 59
DRTYPE(1) = 1
C--couplings for the s-channel Z exchange
A(1,2) = -RFCH(ID)
A(2,2) = -LFCH(ID)
B(1,2) =(-WMXUSS(L1,1)*WMXUSS(L2,1)
& -HALF*WMXUSS(L1,2)*WMXUSS(L2,2)+DIJ(L1,L2)*SWEIN)/CW/SW
B(2,2) =WSGNSS(L1)*WSGNSS(L2)*(-WMXVSS(L1,1)*WMXVSS(L2,1)
& -HALF*WMXVSS(L1,2)*WMXVSS(L2,2)+DIJ(L1,L2)*SWEIN)/CW/SW
IDP(6) = 200
DRTYPE(2) = 1
C--couplings for the t-channel diagram
IF(IDHEP(KHEP).GT.0.AND.MOD(IL,2).EQ.0) THEN
A(1,3) = ZERO
A(2,3) =-WMXUSS(L1,1)/SW
B(1,3) =-WMXUSS(L2,1)/SW
B(2,3) = ZERO
DRTYPE(3) = 2
ELSEIF(IDHEP(KHEP).LT.0.AND.MOD(IL,2).NE.0) THEN
A(1,3) =-WMXVSS(L1,1)*WSGNSS(L1)/SW
A(2,3) = ZERO
B(1,3) = ZERO
B(2,3) =-WMXVSS(L2,1)*WSGNSS(L2)/SW
DRTYPE(3) = 2
ELSEIF(IDHEP(KHEP).GT.0.AND.MOD(IL,2).NE.0) THEN
A(1,3) = ZERO
A(2,3) =-WMXVSS(L2,1)*WSGNSS(L2)/SW
B(1,3) =-WMXVSS(L1,1)*WSGNSS(L1)/SW
B(2,3) = ZERO
DRTYPE(3) = 3
ELSE
A(1,3) =-WMXUSS(L2,1)/SW
A(2,3) = ZERO
B(1,3) = ZERO
B(2,3) =-WMXUSS(L1,1)/SW
DRTYPE(3) = 3
ENDIF
IDP(7) = IL-6*INT((IL-1)/6)+24*INT((IL-1)/120)+400
& +2*MOD(IL,2)-1
NDIA = 3
C--setup the colour flow
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
IFLOW(2) = 1
IFLOW(3) = 1
C--chargino neutralino production
ELSEIF((IK.GE.454.AND.IK.LE.457.AND.IJ.GE.450.AND.IJ.LE.453).OR.
& (IJ.GE.454.AND.IJ.LE.457.AND.IK.GE.450.AND.IK.LE.453)) THEN
C--first check the fermion is first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--chargino first
IF(IK.GT.453) THEN
C--change order of outgoing particles if negative chargino
IF(IDHEP(KHEP).LT.0) THEN
ID =KHEP
KHEP=JHEP
JHEP=ID
ENDIF
L1 = IK-453-2*INT((IK-454)/2)
L2 = IJ-449
C--chargino second
ELSE
IF(IDHEP(JHEP).GT.0) THEN
ID =KHEP
KHEP=JHEP
JHEP=ID
ENDIF
L1 = IJ-453-2*INT((IJ-454)/2)
L2 = IK-449
ENDIF
C--first the W exchange diagram
A(1,1) = ZERO
A(2,1) =-ORT/SW
B(1,1) =( ORT*ZMXNSS(L2,3)*WMXUSS(L1,2)
& +ZMXNSS(L2,2)*WMXUSS(L1,1))/SW
B(2,1) =WSGNSS(L1)*ZSGNSS(L2)*(-ORT*ZMXNSS(L2,4)*WMXVSS(L1,2)
& +ZMXNSS(L2,2)*WMXVSS(L1,1))/SW
IDP(5) = 198
DRTYPE(1) = 1
C--intermediate particles for the t and u channel diagrams
IL = IDHW(LHEP)
IM = IDHW(MHEP)
IDP(6) = IM+394
IDP(7) = IL+406
IF(MOD(IL,2).EQ.0) THEN
A(1,2) = ZERO
A(2,2) =-WMXUSS(L1,1)/SW
B(1,2) =-RT*SLFCH(IM-6,L2)
B(2,2) = ZERO
DRTYPE(2) = 2
A(1,3) = ZERO
A(2,3) =-RT*ZSGNSS(L2)*SLFCH(IL,L2)
B(1,3) =-WSGNSS(L1)*WMXVSS(L1,1)/SW
B(2,3) = ZERO
DRTYPE(3) = 3
ELSE
A(1,2) = ZERO
A(2,2) =-WSGNSS(L1)*WMXVSS(L1,1)/SW
B(1,2) =-RT*ZSGNSS(L2)*SLFCH(IM-6,L2)
B(2,2) = ZERO
DRTYPE(2) = 3
A(1,3) = ZERO
A(2,3) =-RT*SLFCH(IL,L2)
B(1,3) =-WMXUSS(L1,1)/SW
B(2,3) = ZERO
DRTYPE(3) = 2
ENDIF
C--setup the colour flow
NDIA = 3
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
IFLOW(2) = 1
IFLOW(3) = 1
C--neutralino gluino production
ELSEIF((IK.EQ.449.AND.IJ.GE.450.AND.IJ.LE.453).OR.
& (IJ.EQ.449.AND.IK.GE.450.AND.IK.LE.453)) THEN
C--first check the fermion is first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--check neutralino first and change order if not
IF(IK.EQ.449) THEN
L1 = IJ-449
ID = KHEP
KHEP = JHEP
JHEP = ID
ELSE
L1 = IK-449
ENDIF
IL = IDHW(LHEP)
C--coupling for the diagrams
C--first t-channel squark exchange
IDP(5) = 400+IL
A(1,1) = ZERO
A(2,1) =-RT*SLFCH(IL,L1)
B(1,1) =-RT
B(2,1) = ZERO
DRTYPE(1) = 2
IDP(6) = 412+IL
A(1,2) =-RT*ZSGNSS(L1)*SRFCH(IL,L1)
A(2,2) = ZERO
B(1,2) = ZERO
B(2,2) = RT
DRTYPE(2) = 2
C--then u-channel s squark exchange
IDP(7) = 400+IL
A(1,3) = ZERO
A(2,3) =-RT
B(1,3) =-RT*ZSGNSS(L1)*SLFCH(IL,L1)
B(2,3) = ZERO
DRTYPE(3) = 3
IDP(8) = 412+IL
A(1,4) = RT
A(2,4) = ZERO
B(1,4) = ZERO
B(2,4) =-RT*SRFCH(IL,L1)
DRTYPE(4) = 3
C--colour flow information
NDIA = 4
NCFL(1) = 1
IFLOW(1) = 1
IFLOW(2) = 1
IFLOW(3) = 1
IFLOW(4) = 1
SPNCFC(1,1,1) = ONE
C--chargino gluino production
ELSEIF((IK.GE.454.AND.IK.LE.457.AND.IJ.EQ.449).OR.
& (IJ.GE.454.AND.IJ.LE.457.AND.IK.EQ.449)) THEN
C--first check the fermion is first and change order if not
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--check chargino first and change order if not
IF(IK.EQ.449) THEN
L1 = IJ-453-2*INT((IJ-454)/2)
ID = KHEP
KHEP = JHEP
JHEP = ID
ELSE
L1 = IK-453-2*INT((IK-454)/2)
ENDIF
IL = IDHW(LHEP)
IM = IDHW(MHEP)
IDP(5) = IM+394
IDP(6) = IL+406
IF(MOD(IL,2).EQ.0) THEN
A(1,1) = ZERO
A(2,1) =-WMXUSS(L1,1)/SW
B(1,1) =-RT
B(2,1) = ZERO
DRTYPE(1) = 2
A(1,2) = ZERO
A(2,2) =-RT
B(1,2) =-WSGNSS(L1)*WMXVSS(L1,1)/SW
B(2,2) = ZERO
DRTYPE(2) = 3
ELSE
A(1,1) = ZERO
A(2,1) =-WSGNSS(L1)*WMXVSS(L1,1)/SW
B(1,1) =-RT
B(2,1) = ZERO
DRTYPE(1) = 2
A(1,2) = ZERO
A(2,2) =-RT
B(1,2) =-WMXUSS(L1,1)/SW
B(2,2) = ZERO
DRTYPE(2) = 3
ENDIF
C--setup the colour flow
NDIA = 2
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
IFLOW(2) = 1
C--quark quark to gluino gluino
ELSEIF(IJ.EQ.449.AND.IK.EQ.449.AND.
& IDHW(LHEP).LE.12.AND.IDHW(MHEP).LE.12) THEN
C--change order if antiquark first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHW(LHEP)
C--couplings of the various diagrams
A(1,1) = ZERO
A(2,1) =-RT
B(1,1) =-RT
B(2,1) = ZERO
A(1,2) = RT
A(2,2) = ZERO
B(1,2) = ZERO
B(2,2) = RT
DO 4 I=1,2
A(I,3) = A(I,1)
B(I,3) = B(I,1)
A(I,4) = A(I,2)
4 B(I,4) = B(I,2)
A(1,5) = ONE
A(2,5) = ONE
B(1,5) = ONE
B(2,5) = ONE
A(1,6) =-ONE
A(2,6) =-ONE
B(1,6) = ONE
B(2,6) = ONE
C--intermediate particles
IDP(5) = 400+IL
IDP(6) = 412+IL
IDP(7) = 400+IL
IDP(8) = 412+IL
IDP(9) = 13
IDP(10) = 13
C--types of diagram
DRTYPE(1) = 2
DRTYPE(2) = 2
DRTYPE(3) = 3
DRTYPE(4) = 3
DRTYPE(5) = 1
DRTYPE(6) = 1
NDIA = 6
C--setup the colour flow
NCFL(1) = 2
SPNCFC(1,1,1) = 8.0D0/27.0D0
SPNCFC(2,2,1) = 8.0D0/27.0D0
SPNCFC(1,2,1) =-ONE/27.0D0
SPNCFC(2,1,1) =-ONE/27.0D0
IFLOW(1) = 1
IFLOW(2) = 1
IFLOW(3) = 2
IFLOW(4) = 2
IFLOW(5) = 1
IFLOW(6) = 2
C--gluon gluon to gluino gluino
ELSEIF(IDHW(LHEP).EQ.13.AND.IDHW(MHEP).EQ.13.AND.IJ.EQ.449
& .AND.IK.EQ.449) THEN
C--setup the diagrams
IDP(5) = 449
IDP(6) = 449
IDP(7) = 13
IDP(8) = 13
DRTYPE(1) = 14
DRTYPE(2) = 15
DRTYPE(3) = 16
DRTYPE(4) = 16
NDIA = 4
C--setup the colour flow
NCFL(1) = 2
IFLOW(1) = 1
IFLOW(2) = 2
IFLOW(3) = 1
IFLOW(4) = 2
SPNCFC(1,1,1) = 9.0D0/16.0D0
SPNCFC(2,2,1) = SPNCFC(1,1,1)
SPNCFC(1,2,1) =-9.0D0/32.0D0
SPNCFC(2,1,1) =-9.0D0/32.0D0
C--neutralino squark production
ELSEIF( (IK.GE.450.AND.IK.LE.453.AND.
& ((IJ.GE.401.AND.IJ.LE.406).OR.(IJ.GE.413.AND.IJ.LE.418)))
& .OR.(IJ.GE.450.AND.IJ.LE.453.AND.
& ((IK.GE.401.AND.IK.LE.406).OR.(IK.GE.413.AND.IK.LE.418))))
& THEN
C--change order if gluon first
IF(IDHW(LHEP).EQ.13) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--change order in squark first
IF(IJ.GE.450) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
IK = IDHW(KHEP)
IJ = IDHW(JHEP)
ENDIF
IL = IDHW(LHEP)
L1 = IK-449
C--left handed (lighter) squark
IF(IJ.LT.412) THEN
A(1,1) =-RT*SRFCH(IL,L1)*QMIXSS(IL,2,1)
A(2,1) =-RT*ZSGNSS(L1)*SLFCH(IL,L1)*QMIXSS(IL,1,1)
C--right handed (heavier) squark
ELSEIF(IJ.GT.412) THEN
A(1,1) =-RT*SRFCH(IL,L1)*QMIXSS(IL,2,2)
A(2,1) =-RT*ZSGNSS(L1)*SLFCH(IL,L1)*QMIXSS(IL,1,2)
ENDIF
DO 5 I=1,2
5 A(I,2) = A(I,1)
IDP(5) = IJ
IDP(6) = IL
C--colour flow info
DRTYPE(1) = 8
DRTYPE(2) = 10
NDIA = 2
NCFL(1) = 1
SPNCFC(1,1,1) = HALF/THREE
IFLOW(1) = 1
IFLOW(2) = 1
C--neutralino antisquark production
ELSEIF( (IK.GE.450.AND.IK.LE.453.AND.
& ((IJ.GE.407.AND.IJ.LE.412).OR.(IJ.GE.419.AND.IJ.LE.424)))
& .OR.(IJ.GE.450.AND.IJ.LE.453.AND.
& ((IK.GE.407.AND.IK.LE.412).OR.(IK.GE.419.AND.IK.LE.424))))
& THEN
C--change order if gluon first
IF(IDHW(LHEP).EQ.13) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--change order in squark first
IF(IJ.GE.450) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
IK = IDHW(KHEP)
IJ = IDHW(JHEP)
ENDIF
IL = IDHW(LHEP)-6
L1 = IK-449
C--left handed (lighter) squark
IF(IJ.LE.412) THEN
A(1,1) =-RT*ZSGNSS(L1)*SLFCH(IL,L1)*QMIXSS(IL,1,1)
A(2,1) =-RT*SRFCH(IL,L1)*QMIXSS(IL,2,1)
C--right handed (heavier) squark
ELSEIF(IJ.GT.412) THEN
A(1,1) =-RT*ZSGNSS(L1)*SLFCH(IL,L1)*QMIXSS(IL,1,2)
A(2,1) =-RT*SRFCH(IL,L1)*QMIXSS(IL,2,2)
ENDIF
DO 6 I=1,2
6 A(I,2) = A(I,1)
IDP(5) = IJ
IDP(6) = IL
C--colour flow info
DRTYPE(1) = 9
DRTYPE(2) = 11
NDIA = 2
NCFL(1) = 1
SPNCFC(1,1,1) = HALF/THREE
IFLOW(1) = 1
IFLOW(2) = 1
C--chargino squark
ELSEIF((IK.GE.454.AND.IK.LE.457.AND.
& ((IJ.GE.401.AND.IJ.LE.406).OR.(IJ.GE.413.AND.IJ.LE.418)))
& .OR.(IJ.GE.454.AND.IJ.LE.457.AND.
& ((IK.GE.401.AND.IK.LE.406).OR.(IK.GE.413.AND.IK.LE.418))))
& THEN
C--change order if gluon first
IF(IDHW(LHEP).EQ.13) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--change order if squark first
IF(IJ.GE.454) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
IK = IDHW(KHEP)
IJ = IDHW(JHEP)
ENDIF
IL = IDHW(LHEP)
L1 = IK-453-2*INT((IK-454)/2)
C--left handed (lighter) squark
A(1,1) = ZERO
IF(IJ.LE.412) THEN
IF(MOD(IL,2).EQ.0) THEN
A(2,1) = -WMXUSS(L1,1)*QMIXSS(IL-1,1,1)/SW
ELSE
A(2,1) = -WSGNSS(L1)*WMXVSS(L1,1)*QMIXSS(IL+1,1,1)/SW
ENDIF
C--right handed (heavier) squark
ELSEIF(IJ.GT.412) THEN
IF(MOD(IL,2).EQ.0) THEN
A(2,1) = -WMXUSS(L1,1)*QMIXSS(IL-1,1,2)/SW
ELSE
A(2,1) = -WSGNSS(L1)*WMXVSS(L1,1)*QMIXSS(IL+1,1,2)/SW
ENDIF
ENDIF
DO 7 I=1,2
7 A(I,2) = A(I,1)
IDP(5) = IJ
IDP(6) = IL
C--colour flow info
DRTYPE(1) = 8
DRTYPE(2) = 10
NDIA = 2
NCFL(1) = 1
SPNCFC(1,1,1) = HALF/THREE
IFLOW(1) = 1
IFLOW(2) = 1
C--chargino antisquark
ELSEIF((IK.GE.454.AND.IK.LE.457.AND.
& ((IJ.GE.407.AND.IJ.LE.412).OR.(IJ.GE.419.AND.IJ.LE.424)))
& .OR.(IJ.GE.454.AND.IJ.LE.457.AND.
& ((IK.GE.407.AND.IK.LE.412).OR.(IK.GE.419.AND.IK.LE.424))))
& THEN
C--change order if gluon first
IF(IDHW(LHEP).EQ.13) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--change order in squark first
IF(IJ.GE.454) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
IK = IDHW(KHEP)
IJ = IDHW(JHEP)
ENDIF
IL = IDHW(LHEP)-6
L1 = IK-453-2*INT((IK-454)/2)
C--left handed (lighter) squark
A(2,1) = ZERO
IF(IJ.LE.412) THEN
IF(MOD(IL,2).EQ.0) THEN
A(1,1) = -WMXUSS(L1,1)*QMIXSS(IL-1,1,1)/SW
ELSE
A(1,1) = -WSGNSS(L1)*WMXVSS(L1,1)*QMIXSS(IL+1,1,1)/SW
ENDIF
C--right handed (heavier) squark
ELSEIF(IJ.GT.412) THEN
IF(MOD(IL,2).EQ.0) THEN
A(1,1) = -WMXUSS(L1,1)*QMIXSS(IL-1,1,2)/SW
ELSE
A(1,1) = -WMXVSS(L1,1)*QMIXSS(IL+1,1,2)/SW
ENDIF
ENDIF
DO 8 I=1,2
8 A(I,2) = A(I,1)
IDP(5) = IJ
IDP(6) = IL
C--colour flow info
DRTYPE(1) = 9
DRTYPE(2) = 11
NDIA = 2
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
IFLOW(1) = 1
IFLOW(2) = 1
C--squark gluino production
ELSEIF((IK.EQ.449.AND.((IJ.GE.401.AND.IJ.LE.406)
& .OR.(IJ.GE.413.AND.IJ.LE.418)))
& .OR.(IJ.GE.449.AND.((IK.GE.401.AND.IK.LE.406)
& .OR.(IK.GE.413.AND.IK.LE.418)))) THEN
C--change order if gluon first
IF(IDHW(LHEP).EQ.13) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHW(LHEP)
C--change order in squark first
IF(IJ.EQ.449) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
IJ = IDHW(JHEP)
ENDIF
ID = INT((IJ-401)/12)+1
IF(ID.EQ.1) THEN
A(1,1) = ZERO
A(2,1) =-RT
ELSE
A(1,1) = RT
A(2,1) = ZERO
ENDIF
DO 9 I=1,2
A(I,2) =-A(I,1)
A(I,3) = A(I,1)
9 A(I,4) = A(I,1)
DRTYPE(1) = 12
DRTYPE(2) = 12
DRTYPE(3) = 8
DRTYPE(4) = 10
IDP(5) = 449
IDP(6) = 449
IDP(7) = IJ
IDP(8) = IL
C--colour flows
NDIA = 4
NCFL(1) = 2
IFLOW(1) = 1
IFLOW(2) = 2
IFLOW(3) = 1
IFLOW(4) = 2
SPNCFC(1,1,1) = 2.0D0/9.0D0
SPNCFC(2,2,1) = 2.0D0/9.0D0
SPNCFC(1,2,1) = -0.25D0/9.0D0
SPNCFC(2,1,1) = -0.25D0/9.0D0
C--antisquark gluino production
ELSEIF((IK.GE.449..AND.((IJ.GE.407.AND.IJ.LE.412)
& .OR.(IJ.GE.419.AND.IJ.LE.424)))
& .OR.(IJ.GE.449.AND.((IK.GE.407.AND.IK.LE.412)
& .OR.(IK.GE.419.AND.IK.LE.424)))) THEN
C--change order if gluon first
IF(IDHW(LHEP).EQ.13) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
IL = IDHW(LHEP)
C--change order in squark first
IF(IJ.EQ.449) THEN
ID = KHEP
KHEP = JHEP
JHEP = ID
IJ = IDHW(JHEP)
ENDIF
ID = INT((IJ-401)/12)+1
IF(ID.EQ.1) THEN
A(1,1) =-RT
A(2,1) = ZERO
ELSE
A(1,1) = ZERO
A(2,1) = RT
ENDIF
DO 10 I=1,2
A(I,2) =-A(I,1)
A(I,3) = A(I,1)
10 A(I,4) = A(I,1)
DRTYPE(1) = 13
DRTYPE(2) = 13
DRTYPE(3) = 9
DRTYPE(4) = 11
IDP(5) = 449
IDP(6) = 449
IDP(7) = IJ
IDP(8) = IL
C--colour flows
NDIA = 4
NCFL(1) = 2
IFLOW(1) = 1
IFLOW(2) = 2
IFLOW(3) = 1
IFLOW(4) = 2
SPNCFC(1,1,1) = 2.0D0/9.0D0
SPNCFC(2,2,1) = 2.0D0/9.0D0
SPNCFC(1,2,1) = -0.25D0/9.0D0
SPNCFC(2,1,1) = -0.25D0/9.0D0
C--unrecognised SUSY process
ELSE
CALL HWWARN('HWHSPN',503)
ENDIF
C--LLE processes
ELSEIF(IPRO.EQ.8) THEN
C--neutralino antineutrino production
IF(IK.GE.450.AND.IK.LE.453.AND.
& IJ.GE.127.AND.IJ.LE.132.AND.MOD(IJ,2).EQ.0) THEN
C--ensure lepton first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IJ-126)/2
JJJ = (IDHW(LHEP)-119)/2
KKK = (IDHW(MHEP)-125)/2
L1 = IK-449
IDP(5) = 424+2*III
DO 11 I=1,2
IDP(5+I) = 423+2*JJJ+(I-1)*12
11 IDP(7+I) = 423+2*KKK+(I-1)*12
C--types of diagram
DRTYPE(1) = 21
DRTYPE(2) = 22
DRTYPE(3) = 22
DRTYPE(4) = 23
DRTYPE(5) = 23
C--RPV couplings
A(1,1) = ZERO
A(2,1) = -LAMDA1(III,JJJ,KKK)
DO 12 I=1,2
B(1,I+1) = ZERO
B(2,I+1) = -LMIXSS(2*JJJ-1,1,I)*LAMDA1(III,JJJ,KKK)
A(1,I+3) = ZERO
12 A(2,I+3) = -LMIXSS(2*KKK-1,2,I)*LAMDA1(III,JJJ,KKK)
C--MSSM couplings
DO 13 J=1,2
B(J,1) = AFN(O(J),2*III+6,1,L1)
DO 13 I=1,2
A(J,I+1) = AFN(O(J),2*JJJ+5,I,L1)
13 B(J,I+3) = AFN( J ,2*KKK+5,I,L1)
C--colour flows
NDIA = 5
NCFL(1) = 1
DO 14 I=1,5
14 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE
C--neutralino neutrino production
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.
& IJ.GE.121.AND.IJ.LE.126.AND.MOD(IJ,2).EQ.0) THEN
C--ensure lepton first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IJ-120)/2
JJJ = (IDHW(MHEP)-125)/2
KKK = (IDHW(LHEP)-119)/2
L1 = IK-449
IDP(5) = 424+2*III
DO 15 I=1,2
IDP(5+I) = 423+2*JJJ+(I-1)*12
15 IDP(7+I) = 423+2*KKK+(I-1)*12
C--types of diagram
DRTYPE(1) = 24
DRTYPE(2) = 25
DRTYPE(3) = 25
DRTYPE(4) = 26
DRTYPE(5) = 26
C--RPV couplings
A(1,1) = -LAMDA1(III,JJJ,KKK)
A(2,1) = ZERO
DO 16 I=1,2
B(1,I+1) = -LMIXSS(2*JJJ-1,1,I)*LAMDA1(III,JJJ,KKK)
B(2,I+1) = ZERO
A(1,I+3) = -LMIXSS(2*KKK-1,2,I)*LAMDA1(III,JJJ,KKK)
16 A(2,I+3) = ZERO
C--MSSM couplings
DO 17 J=1,2
B(J,1) = AFN( J ,2*III+6,1,L1)
DO 17 I=1,2
A(J,I+1) = AFN( J ,2*JJJ+5,I,L1)
17 B(J,I+3) = AFN(O(J),2*KKK+5,I,L1)
C--colour flows
NDIA = 5
NCFL(1) = 1
DO 18 I=1,5
18 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE
C--chargino antilepton
ELSEIF(IK.GE.456.AND.IK.LE.457.AND.
& IJ.GE.127.AND.IJ.LE.132.AND.MOD(IJ,2).EQ.1) THEN
C--ensure lepton first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IJ-125)/2
JJJ = (IDHW(LHEP)-119)/2
KKK = (IDHW(MHEP)-125)/2
L1 = IK-455
IDP(5) = 2*III+424
IDP(6) = 2*JJJ+424
C--RPV couplings
A(1,1) = ZERO
A(2,1) = LAMDA1(III,JJJ,KKK)
B(1,2) = ZERO
B(2,2) =-LAMDA1(III,JJJ,KKK)
C--MSSM couplings
DO 19 J=1,2
B(J,1) = AFC(O(J),2*III+6,1,L1)
19 A(J,2) = AFC(O(J),2*JJJ+6,1,L1)
C--colour flows
DRTYPE(1) = 21
DRTYPE(2) = 22
NDIA = 2
NCFL(1) = 1
DO 20 I=1,2
20 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE
C--chargino lepton
ELSEIF(IK.GE.454.AND.IK.LE.455.AND.
& IJ.GE.121.AND.IJ.LE.126.AND.MOD(IJ,2).EQ.1) THEN
C--ensure lepton first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IJ-119)/2
JJJ = (IDHW(MHEP)-125)/2
KKK = (IDHW(LHEP)-119)/2
L1 = IK-453
IDP(5) = 2*III+424
IDP(6) = 2*JJJ+424
C--RPV couplings
A(1,1) = LAMDA1(III,JJJ,KKK)
A(2,1) = ZERO
B(1,2) =-LAMDA1(III,JJJ,KKK)
B(2,2) = ZERO
C--MSSM couplings
DO 21 J=1,2
B(J,1) = AFC(J,2*III+6,1,L1)
21 A(J,2) = AFC(J,2*JJJ+6,1,L1)
C--colour flows
DRTYPE(1) = 24
DRTYPE(2) = 25
NDIA = 2
NCFL(1) = 1
DO 22 I=1,2
22 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE
C--e+e- production
ELSEIF(IK.GE.121.AND.IK.LE.132.AND.MOD(IK,2).EQ.1.AND.
& IJ.GE.121.AND.IJ.LE.132.AND.MOD(IJ,2).EQ.1) THEN
C--ensure incoming lepton first
IF(IDHEP(LHEP).LT.0) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--ensure outgoing lepton first
IF(IDHEP(KHEP).LT.0) THEN
ID = IK
IK = IJ
IJ = ID
ID = KHEP
KHEP = JHEP
JHEP = ID
ENDIF
C--only need the correlations for tau production
IF(IK.NE.125.AND.IJ.NE.131) RETURN
C--find the RPV indices
III = (IDHW(LHEP)-119)/2
KKK = (IK-119)/2
LLL = (IJ-125)/2
NDIA = 0
EE = SQRT(HWUAEM(SH)*FOUR*PIFAC)
C--s-channel photon and Z exchange if needed
IF(KKK.EQ.LLL) THEN
NDIA = 2
ID1 = 9+2*III
ID2 = 9+2*KKK
C--photon first
A(1,1) = -EE*QFCH(ID1)
A(2,1) = -EE*QFCH(ID1)
B(1,1) = -EE*QFCH(ID2)
B(2,1) = -EE*QFCH(ID2)
IDP(5) = 59
DRTYPE(1) = 4
C--then the Z exchange
A(1,2) = -EE*RFCH(ID1)
A(2,2) = -EE*LFCH(ID1)
B(1,2) = -EE*RFCH(ID2)
B(2,2) = -EE*LFCH(ID2)
IDP(6) = 200
DRTYPE(2) = 4
ENDIF
DO 23 JJJ=1,3
C--s-channel sneutrino exchange
IF(ABS(LAMDA1(III,JJJ,III)*LAMDA1(LLL,JJJ,KKK)).GT.EPS) THEN
NDIA = NDIA+1
DRTYPE(NDIA) = 21
IDP(NDIA+4) = 424+2*JJJ
A(1,NDIA) = LAMDA1(III,JJJ,III)
A(2,NDIA) = ZERO
B(1,NDIA) = ZERO
B(2,NDIA) = LAMDA1(LLL,JJJ,KKK)
ENDIF
C--s-channel antisneutrino exchange
IF(ABS(LAMDA1(III,JJJ,III)*LAMDA1(KKK,JJJ,LLL)).GT.EPS) THEN
NDIA = NDIA+1
DRTYPE(NDIA) = 21
IDP(NDIA+4) = 424+2*JJJ
A(1,NDIA) = ZERO
A(2,NDIA) = LAMDA1(III,JJJ,III)
B(1,NDIA) = LAMDA1(KKK,JJJ,LLL)
B(2,NDIA) = ZERO
ENDIF
C--t-channel sneutrino exchange
IF(ABS(LAMDA1(KKK,JJJ,III)*LAMDA1(LLL,JJJ,III)).GT.EPS) THEN
NDIA = NDIA+1
DRTYPE(NDIA) = 22
IDP(NDIA+4) = 424+2*JJJ
A(1,NDIA) = LAMDA1(KKK,JJJ,III)
A(2,NDIA) = ZERO
B(1,NDIA) = ZERO
B(2,NDIA) = LAMDA1(LLL,JJJ,III)
ENDIF
C--t-channel antisneutrino exchange
IF(ABS(LAMDA1(III,JJJ,KKK)*LAMDA1(III,JJJ,LLL)).GT.EPS) THEN
NDIA = NDIA+1
DRTYPE(NDIA) = 22
IDP(NDIA+4) = 424+2*JJJ
A(1,NDIA) = ZERO
A(2,NDIA) = LAMDA1(III,JJJ,KKK)
B(1,NDIA) = LAMDA1(III,JJJ,LLL)
B(2,NDIA) = ZERO
ENDIF
23 CONTINUE
C--setup the colour flow
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
DO 24 I=1,NDIA
24 IFLOW(I) = 1
C--d dbar production
ELSEIF(IK.LE.12.AND.IK.LE.12.AND.
& MOD(IJ,2).EQ.1.AND.MOD(IK,2).EQ.1) THEN
C--can't produce quark which decays before hadronization
RETURN
C--unrecognised process
ELSE
CALL HWWARN('HWHSPN',504)
ENDIF
C--LQD processes
ELSEIF(IPRO.EQ.40) THEN
C--change outgoing order
ID = IJ
IJ = IK
IK = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
C--neutrino neutralino production
IF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.0.AND.
& IDPDG(IJ).GT.0) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV coupling
III = (IJ-120)/2
JJJ = (IDHW(MHEP)-5)/2
KKK = (IDHW(LHEP)+1)/2
L1 = IK - 449
IDP(5) = 424+2*III
DO 25 I=1,2
IDP(5+I) = 399+2*JJJ+(I-1)*12
25 IDP(7+I) = 399+2*KKK+(I-1)*12
C--types of diagram
DRTYPE(1) = 24
DRTYPE(2) = 25
DRTYPE(3) = 25
DRTYPE(4) = 26
DRTYPE(5) = 26
C--RPV couplings
A(1,1) = -LAMDA2(III,JJJ,KKK)
A(2,1) = ZERO
DO 26 I=1,2
B(1,I+1) = -QMIXSS(2*JJJ-1,1,I)*LAMDA2(III,JJJ,KKK)
B(2,I+1) = ZERO
A(1,I+3) = -QMIXSS(2*KKK-1,2,I)*LAMDA2(III,JJJ,KKK)
26 A(2,I+3) = ZERO
C--MSSM couplings
DO 27 J=1,2
B(J,1) = AFN( J ,2*III+6,1,L1)
DO 27 I=1,2
A(J,I+1) = AFN( J ,2*JJJ-1,I,L1)
27 B(J,I+3) = AFN(O(J),2*KKK-1,I,L1)
C--colour flows
NDIA = 5
NCFL(1) = 1
DO 28 I=1,5
28 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C--antineutrino neutralino production
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.0.AND.
& IDPDG(IJ).LT.0) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV coupling
III = (IJ-126)/2
JJJ = (IDHW(LHEP)+1)/2
KKK = (IDHW(MHEP)-5)/2
L1 = IK - 449
IDP(5) = 424+2*III
DO 29 I=1,2
IDP(5+I) = 399+2*JJJ+(I-1)*12
29 IDP(7+I) = 399+2*KKK+(I-1)*12
C--types of diagram
DRTYPE(1) = 21
DRTYPE(2) = 22
DRTYPE(3) = 22
DRTYPE(4) = 23
DRTYPE(5) = 23
C--RPV couplings
A(1,1) = ZERO
A(2,1) = -LAMDA2(III,JJJ,KKK)
DO 30 I=1,2
B(1,I+1) = ZERO
B(2,I+1) = -QMIXSS(2*JJJ-1,1,I)*LAMDA2(III,JJJ,KKK)
A(1,I+3) = ZERO
30 A(2,I+3) = -QMIXSS(2*KKK-1,2,I)*LAMDA2(III,JJJ,KKK)
C--MSSM couplings
DO 31 J=1,2
B(J,1) = AFN(O(J),2*III+6,1,L1)
DO 31 I=1,2
A(J,I+1) = AFN(O(J),2*JJJ-1,I,L1)
31 B(J,I+3) = AFN( J ,2*KKK-1,I,L1)
C--colour flows
NDIA = 5
NCFL(1) = 1
DO 32 I=1,5
32 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C--lepton neutralino production
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.1.AND.
& IDPDG(IJ).GT.0) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV coupling
III = (IJ-119)/2
JJJ = (IDHW(MHEP)-6)/2
KKK = (IDHW(LHEP)+1)/2
L1 = IK - 449
DO 33 I=1,2
IDP(4+I) = 423+2*III+(I-1)*12
IDP(6+I) = 400+2*JJJ+(I-1)*12
33 IDP(8+I) = 399+2*KKK+(I-1)*12
C--types of diagram
DRTYPE(1) = 24
DRTYPE(2) = 24
DRTYPE(3) = 25
DRTYPE(4) = 25
DRTYPE(5) = 26
DRTYPE(6) = 26
C--RPV couplings
DO 34 I=1,2
A(1,I ) = LMIXSS(2*III-1,1,I)*LAMDA2(III,JJJ,KKK)
A(2,I ) = 0.0D0
B(1,I+2) = QMIXSS(2*JJJ ,1,I)*LAMDA2(III,JJJ,KKK)
B(2,I+2) = 0.0D0
A(1,I+4) = QMIXSS(2*KKK-1,2,I)*LAMDA2(III,JJJ,KKK)
A(2,I+4) = 0.0D0
C--MSSM couplings
DO 34 J=1,2
B(J,I ) = AFN( J ,2*III+5,I,L1)
A(J,I+2) = AFN( J ,2*JJJ ,I,L1)
34 B(J,I+4) = AFN(O(J),2*KKK-1,I,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 35 I=1,6
35 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C--antilepton neutralino production
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.1.AND.
& IDPDG(IJ).LT.0) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV coupling
III = (IJ-125)/2
JJJ = IDHW(LHEP)/2
KKK = (IDHW(MHEP)-5)/2
L1 = IK - 449
DO 36 I=1,2
IDP(4+I) = 423+2*III+(I-1)*12
IDP(6+I) = 400+2*JJJ+(I-1)*12
36 IDP(8+I) = 399+2*KKK+(I-1)*12
C--types of diagram
DRTYPE(1) = 21
DRTYPE(2) = 21
DRTYPE(3) = 22
DRTYPE(4) = 22
DRTYPE(5) = 23
DRTYPE(6) = 23
C--RPV couplings
DO 37 I=1,2
A(1,I ) = 0.0D0
A(2,I ) = LMIXSS(2*III-1,1,I)*LAMDA2(III,JJJ,KKK)
B(1,I+2) = 0.0D0
B(2,I+2) = QMIXSS(2*JJJ ,1,I)*LAMDA2(III,JJJ,KKK)
A(1,I+4) = 0.0D0
A(2,I+4) = QMIXSS(2*KKK-1,2,I)*LAMDA2(III,JJJ,KKK)
C--MSSM couplings
DO 37 J=1,2
B(J,I ) = AFN(O(J),2*III+5,I,L1)
A(J,I+2) = AFN(O(J),2*JJJ ,I,L1)
37 B(J,I+4) = AFN( J ,2*KKK-1,I,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 39 I=1,6
39 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C-- +ve chargino antineutrino
ELSEIF(IK.GE.454.AND.IK.LE.455.AND.MOD(IJ,2).EQ.0) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV
III = (IJ-126)/2
JJJ = IDHW(LHEP)/2
KKK = (IDHW(MHEP)-5)/2
L1 = IK-453
DO 40 I=1,2
IDP(4+I) = 423+2*III+(I-1)*12
40 IDP(6+I) = 399+2*JJJ+(I-1)*12
C--types of diagram
DRTYPE(1) = 21
DRTYPE(2) = 21
DRTYPE(3) = 22
DRTYPE(4) = 22
DO 41 I=1,2
C--RPV couplings
A(1,I ) = ZERO
A(2,I ) = LMIXSS(2*III-1,1,I)*LAMDA2(III,JJJ,KKK)
B(1,I+2) = ZERO
B(2,I+2) =-QMIXSS(2*JJJ-1,1,I)*LAMDA2(III,JJJ,KKK)
C--MSSM couplings
DO 41 J=1,2
B(J,I ) = AFC(O(J),2*III+5,I,L1)
41 A(J,I+2) = AFC(O(J),2*JJJ-1,I,L1)
C--colour flows
NDIA = 4
NCFL(1) = 1
DO 42 I=1,4
42 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C-- -ve chargino neutrino
ELSEIF(IK.GE.456.AND.IK.LE.457.AND.MOD(IJ,2).EQ.0) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV
III = (IJ-120)/2
JJJ = (IDHW(MHEP)-6)/2
KKK = (IDHW(LHEP)+1)/2
L1 = IK-455
DO 43 I=1,2
IDP(4+I) = 423+2*III+(I-1)*12
43 IDP(6+I) = 399+2*JJJ+(I-1)*12
C--types of diagram
DRTYPE(1) = 24
DRTYPE(2) = 24
DRTYPE(3) = 25
DRTYPE(4) = 25
DO 44 I=1,2
C--RPV couplings
A(1,I ) = LMIXSS(2*III-1,1,I)*LAMDA2(III,JJJ,KKK)
A(2,I ) = ZERO
B(1,I+2) =-QMIXSS(2*JJJ-1,1,I)*LAMDA2(III,JJJ,KKK)
B(2,I+2) = ZERO
C--MSSM couplings
DO 44 J=1,2
B(J,I ) = AFC(J,2*III+5,I,L1)
44 A(J,I+2) = AFC(J,2*JJJ-1,I,L1)
C--colour flows
NDIA = 4
NCFL(1) = 1
DO 45 I=1,4
45 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C-- -ve chargino antilepton
ELSEIF(IK.GE.456.AND.IK.LE.457.AND.MOD(IJ,2).EQ.1) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV
III = (IJ-125)/2
JJJ = (IDHW(LHEP)+1)/2
KKK = (IDHW(MHEP)-5)/2
L1 = IK-455
IDP(5) = 424+2*III
DO 46 I=1,2
46 IDP(5+I) = 400+2*JJJ+(I-1)*12
C--types of diagram
DRTYPE(1) = 21
DRTYPE(2) = 22
DRTYPE(3) = 22
C--RPV couplings
A(1,1) = 0.0D0
A(2,1) =-LAMDA2(III,JJJ,KKK)
DO 47 I=1,2
B(1,I+1) = 0.0D0
47 B(2,I+1) = QMIXSS(2*JJJ,1,I)*LAMDA2(III,JJJ,KKK)
C--MSSM couplings
DO 48 J=1,2
B(J,1) = AFC(O(J),2*III+6,1,L1)
DO 48 I=1,2
48 A(J,I+1) = AFC(O(J),2*JJJ,I,L1)
C--colour flows
NDIA = 3
NCFL(1) = 1
DO 49 I=1,3
49 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C-- +ve chargino lepton
ELSEIF(IK.GE.454.AND.IK.LE.455.AND.MOD(IJ,2).EQ.1) THEN
C--change order if antiparticle first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--indices for RPV
III = (IJ-119)/2
JJJ = (IDHW(MHEP)-5)/2
KKK = (IDHW(LHEP)+1)/2
L1 = IK-453
IDP(5) = 424+2*III
DO 50 I=1,2
50 IDP(5+I) = 400+2*JJJ+(I-1)*12
C--types of diagram
DRTYPE(1) = 24
DRTYPE(2) = 25
DRTYPE(3) = 25
C--RPV couplings
A(1,1) =-LAMDA2(III,JJJ,KKK)
A(2,1) = 0.0D0
DO 51 I=1,2
B(1,I+1) = QMIXSS(2*JJJ,1,I)*LAMDA2(III,JJJ,KKK)
51 B(2,I+1) = 0.0D0
C--MSSM couplings
DO 52 J=1,2
B(J,1) = AFC(J,2*III+6,1,L1)
DO 52 I=1,2
52 A(J,I+1) = AFC(J,2*JJJ,I,L1)
C--colour flows
NDIA = 3
NCFL(1) = 1
DO 53 I=1,3
53 IFLOW(I) = 1
SPNCFC(1,1,1) = ONE/THREE
C--d dbar d dbar
ELSEIF(IK.LE.12.AND.IJ.LE.12.AND.
& MOD(IJ,2).EQ.1.AND.MOD(IK,2).EQ.1) THEN
C--can't produce unstable quark (on hadronization timescale)
RETURN
C--u dbar --> u dbar
ELSEIF((IJ.LE. 6.AND.MOD(IJ,2).EQ.0.AND.
& IK.LE.12.AND.MOD(IK,2).EQ.1).OR.
& (IK.LE.6 .AND.MOD(IK,2).EQ.0.AND.
& IJ.LE.12.AND.MOD(IJ,2).EQ.1)) THEN
C--ensure u first (incoming)
IF(MOD(IDHW(LHEP),2).EQ.1) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--ensure u first (outgoing)
IF(MOD(IK,2).EQ.1) THEN
ID = IJ
IJ = IK
IK = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
ENDIF
C--can't produce unstable quark (on hadronization timescale)
IF(IK.NE.6) RETURN
C--RPV indices
JJJ = IDHW(LHEP)/2
KKK = (IDHW(MHEP)-5)/2
LLL = IK/2
MMM = (IJ-5)/2
NDIA = 0
DO 54 III=1,3
IF(ABS(LAMDA2(III,JJJ,KKK)*LAMDA2(III,LLL,MMM)).LT.EPS)
& GOTO 54
DO 55 J=1,2
IFLOW(NDIA+J) = 1
IDP(4+NDIA+J) = 423+2*III+12*(J-1)
A(1,NDIA+J) = ZERO
A(2,NDIA+J) = LAMDA2(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
B(1,NDIA+J) = LAMDA2(III,LLL,MMM)*LMIXSS(2*III-1,1,J)
B(2,NDIA+J) = ZERO
55 DRTYPE(NDIA+J) = 21
NDIA = NDIA+2
54 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
C--ubar d --> ubar d
ELSEIF((IJ.LE.12.AND.MOD(IJ,2).EQ.0.AND.
& IK.LE. 6.AND.MOD(IK,2).EQ.1).OR.
& (IK.LE.12.AND.MOD(IK,2).EQ.0.AND.
& IJ.LE. 6.AND.MOD(IJ,2).EQ.1)) THEN
C--ensure d first (incoming)
IF(MOD(IDHW(LHEP),2).EQ.0) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--ensure d first (outgoing)
IF(MOD(IK,2).EQ.0) THEN
ID = IJ
IJ = IK
IK = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
ENDIF
C--can't produce unstable quark (on hadronization timescale)
IF(IJ.NE.12) RETURN
C--RPV indices
JJJ = (IDHW(MHEP)-6)/2
KKK = (IDHW(LHEP)+1)/2
LLL = (IJ-6)/2
MMM = (IK+1)/2
NDIA = 0
DO 56 III=1,3
IF(ABS(LAMDA2(III,JJJ,KKK)*LAMDA2(III,LLL,MMM)).LT.EPS)
& GOTO 56
DO 57 J=1,2
IFLOW(NDIA+J) = 1
IDP(4+NDIA+J) = 423+2*III+12*(J-1)
A(1,NDIA+J) = LAMDA2(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
A(2,NDIA+J) = ZERO
B(1,NDIA+J) = ZERO
B(2,NDIA+J) = LAMDA2(III,LLL,MMM)*LMIXSS(2*III-1,1,J)
57 DRTYPE(NDIA+J) = 21
NDIA = NDIA+2
56 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE
C--d dbar --> ell- ell+
ELSEIF(IDHW(LHEP).LE.12.AND.MOD(IDHW(LHEP),2).EQ.1.AND.
& IDHW(MHEP).LE.12.AND.MOD(IDHW(MHEP),2).EQ.1.AND.
& IK.GE.127.AND.IK.LE.132.AND.MOD(IK,2).EQ.1.AND.
& IJ.GE.121.AND.IJ.LE.126.AND.MOD(IJ,2).EQ.1) THEN
C--change outgoing order
ID = IK
IK = IJ
IJ = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
C--change order if dbar first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--don't do correlations if no taus
IF(IK.NE.125.AND.IJ.NE.131) RETURN
C--RPV couplings
JJJ = (IDHW(LHEP)+1)/2
KKK = (IDHW(MHEP)-5)/2
LLL = (IK-119)/2
MMM = (IJ-125)/2
NDIA = 0
DO 58 III=1,3
IF(ABS(LAMDA2(III,JJJ,KKK)*LAMDA1(III,LLL,MMM)).LT.EPS)
& GOTO 58
NDIA = NDIA+1
IFLOW(NDIA) = 1
IDP(4+NDIA) = 424+2*III
A(1,NDIA) = ZERO
A(2,NDIA) = LAMDA2(III,JJJ,KKK)
B(1,NDIA) = LAMDA1(III,LLL,MMM)
B(2,NDIA) = ZERO
DRTYPE(NDIA) = 21
58 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE/THREE
C--dbar d --> ell+ ell-
ELSEIF(IDHW(LHEP).LE.12.AND.MOD(IDHW(LHEP),2).EQ.1.AND.
& IDHW(MHEP).LE.12.AND.MOD(IDHW(MHEP),2).EQ.1.AND.
& IK.GE.121.AND.IK.LE.126.AND.MOD(IK,2).EQ.1.AND.
& IJ.GE.127.AND.IJ.LE.132.AND.MOD(IJ,2).EQ.1) THEN
C--change order if dbar first
IF(IDHEP(LHEP).LT.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--don't do correlations if no taus
IF(IK.NE.125.AND.IJ.NE.131) RETURN
C--RPV couplings
JJJ = (IDHW(MHEP)-5)/2
KKK = (IDHW(LHEP)+1)/2
LLL = (IJ-125)/2
MMM = (IK-119)/2
NDIA = 0
DO 59 III=1,3
IF(ABS(LAMDA2(III,JJJ,KKK)*LAMDA1(III,LLL,MMM)).LT.EPS)
& GOTO 59
NDIA = NDIA+1
IFLOW(NDIA) = 1
IDP(4+NDIA) = 424+2*III
A(1,NDIA) = LAMDA2(III,JJJ,KKK)
A(2,NDIA) = ZERO
B(1,NDIA) = ZERO
B(2,NDIA) = LAMDA1(III,LLL,MMM)
DRTYPE(NDIA) = 21
59 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE/THREE
C--u dbar --> nu ell+
ELSEIF((IK.GE.121.AND.IK.LE.126.AND.MOD(IK,2).EQ.0.AND.
& IJ.GE.127.AND.IJ.LE.132.AND.MOD(IJ,2).EQ.1).OR.
& (IK.GE.127.AND.IK.LE.132.AND.MOD(IK,2).EQ.1.AND.
& IJ.GE.121.AND.IJ.LE.126.AND.MOD(IJ,2).EQ.0)) THEN
C--ensure u first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--ensure nu first
IF(MOD(IK,2).NE.0) THEN
ID = IK
IK = IJ
IJ = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
ENDIF
C--only need correlations if tau
IF(IJ.NE.131) RETURN
C--RPV couplings
JJJ = IDHW(LHEP)/2
KKK = (IDHW(MHEP)-5)/2
LLL = (IK-120)/2
MMM = (IJ-125)/2
NDIA = 0
DO 60 III=1,3
IF(ABS(LAMDA2(III,JJJ,KKK)*LAMDA1(III,LLL,MMM)).LT.EPS)
& GOTO 60
DO 61 J=1,2
IFLOW(NDIA+J) = 1
IDP(4+NDIA+J) = 423+2*III+12*(J-1)
A(1,NDIA+J) = ZERO
A(2,NDIA+J) = LAMDA2(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
B(1,NDIA+J) = LAMDA1(III,LLL,MMM)*LMIXSS(2*III-1,1,J)
B(2,NDIA+J) = ZERO
61 DRTYPE(NDIA+J) = 21
NDIA = NDIA+2
60 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE/THREE
C--ubar d --> ell nubar
ELSEIF((IK.GE.127.AND.IK.LE.132.AND.MOD(IK,2).EQ.0.AND.
& IJ.GE.121.AND.IJ.LE.126.AND.MOD(IJ,2).EQ.1).OR.
& (IK.GE.121.AND.IK.LE.126.AND.MOD(IK,2).EQ.1.AND.
& IJ.GE.127.AND.IJ.LE.132.AND.MOD(IJ,2).EQ.0)) THEN
C--ensure u second
IF(MOD(IDHW(MHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C-- ensure nu second
IF(MOD(IJ,2).NE.0) THEN
ID = IK
IK = IJ
IJ = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
ENDIF
C--only need correlations if tau
IF(IK.NE.125) RETURN
C--RPV couplings
JJJ = (IDHW(MHEP)-6)/2
KKK = (IDHW(LHEP)+1)/2
LLL = (IJ-126)/2
MMM = (IK-119)/2
NDIA = 0
DO 62 III=1,3
IF(ABS(LAMDA2(III,JJJ,KKK)*LAMDA1(III,LLL,MMM)).LT.EPS)
& GOTO 62
DO 63 J=1,2
IFLOW(NDIA+J) = 1
IDP(4+NDIA+J) = 423+2*III+12*(J-1)
A(1,NDIA+J) = LAMDA2(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
A(2,NDIA+J) = ZERO
B(1,NDIA+J) = ZERO
B(2,NDIA+J) = LAMDA1(III,LLL,MMM)*LMIXSS(2*III-1,1,J)
63 DRTYPE(NDIA+J) = 21
NDIA = NDIA+2
62 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE/THREE
C--unrecognized process
ELSE
CALL HWWARN('HWHSPN',505)
ENDIF
C--UDD processes
ELSEIF(IPRO.EQ.41) THEN
C--change outgoing order
ID = IJ
IJ = IK
IK = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
C--ubar neutralino
IF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.0.AND.
& IDPDG(IJ).LT.0) THEN
C--indices for RPV
III = (IJ-6)/2
JJJ = (IDHW(LHEP)+1)/2
KKK = (IDHW(MHEP)+1)/2
L1 = IK - 449
C--types of diagram
DRTYPE(1) = 27
DRTYPE(2) = 27
DRTYPE(3) = 28
DRTYPE(4) = 28
DRTYPE(5) = 29
DRTYPE(6) = 29
C--RPV couplings
DO 64 J=1,2
A(1,J ) = QMIXSS(2*III,2,J)*LAMDA3(III,JJJ,KKK)
A(2,J ) = ZERO
B(1,J+2) = QMIXSS(2*JJJ-1,2,J)*LAMDA3(III,JJJ,KKK)
B(2,J+2) = ZERO
A(1,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA3(III,JJJ,KKK)
A(2,J+4) = ZERO
C--particles
IDP(4+J) = 400+2*III+12*(J-1)
IDP(6+J) = 399+2*JJJ+12*(J-1)
IDP(8+J) = 399+2*KKK+12*(J-1)
C--MSSM couplings
DO 64 I=1,2
B(I,J) = AFN(O(I),2*III,J,L1)
A(I,J+2) = AFN(O(I),2*JJJ-1,J,L1)
64 B(I,J+4) = AFN(O(I),2*KKK-1,J,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 65 I=1,6
65 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--u neutralino
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.0.AND.
& IDPDG(IJ).GT.0) THEN
C--indices for RPV
III = IJ/2
JJJ = (IDHW(LHEP)-5)/2
KKK = (IDHW(MHEP)-5)/2
L1 = IK - 449
C--types of diagram
DRTYPE(1) = 30
DRTYPE(2) = 30
DRTYPE(3) = 31
DRTYPE(4) = 31
DRTYPE(5) = 32
DRTYPE(6) = 32
C--RPV couplings
DO 66 J=1,2
A(1,J ) = ZERO
A(2,J ) = QMIXSS(2*III,2,J)*LAMDA3(III,JJJ,KKK)
B(1,J+2) = ZERO
B(2,J+2) = QMIXSS(2*JJJ-1,2,J)*LAMDA3(III,JJJ,KKK)
A(1,J+4) = ZERO
A(2,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA3(III,JJJ,KKK)
C--particles
IDP(4+J) = 400+2*III+12*(J-1)
IDP(6+J) = 399+2*JJJ+12*(J-1)
IDP(8+J) = 399+2*KKK+12*(J-1)
C--MSSM couplings
DO 66 I=1,2
B(I,J) = AFN(I,2*III,J,L1)
A(I,J+2) = AFN(I,2*JJJ-1,J,L1)
66 B(I,J+4) = AFN(I,2*KKK-1,J,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 67 I=1,6
67 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--dbar neutralino
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.1.AND.
& IDPDG(IJ).LT.0) THEN
C--ensure u type first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = IDHW(LHEP)/2
JJJ = (IDHW(MHEP)+1)/2
KKK = (IJ-5)/2
L1 = IK - 449
C--types of diagram
DRTYPE(1) = 27
DRTYPE(2) = 27
DRTYPE(3) = 28
DRTYPE(4) = 28
DRTYPE(5) = 29
DRTYPE(6) = 29
C--RPV couplings
DO 68 I=1,2
A(1,I ) = QMIXSS(2*KKK-1,2,I)*LAMDA3(III,JJJ,KKK)
A(2,I ) = ZERO
B(1,I+2) = QMIXSS(2*III,2,I)*LAMDA3(III,JJJ,KKK)
B(2,I+2) = ZERO
A(1,I+4) = QMIXSS(2*JJJ-1,2,I)*LAMDA3(III,JJJ,KKK)
A(2,I+4) = ZERO
C--particles
IDP(4+I) = 399+2*KKK+12*(I-1)
IDP(6+I) = 400+2*III+12*(I-1)
IDP(8+I) = 399+2*JJJ+12*(I-1)
C--MSSM couplings
DO 68 J=1,2
B(J,I ) = AFN(O(J),2*KKK-1,I,L1)
A(J,I+2) = AFN(O(J),2*III ,I,L1)
68 B(J,I+4) = AFN(O(J),2*JJJ-1,I,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 69 I=1,6
69 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--d neutralino
ELSEIF(IK.GE.450.AND.IK.LE.453.AND.MOD(IJ,2).EQ.1.AND.
& IDPDG(IJ).GT.0) THEN
C--ensure u type first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IDHW(LHEP)-6)/2
JJJ = (IDHW(MHEP)-5)/2
KKK = (IJ+1)/2
L1 = IK - 449
C--types of diagram
DRTYPE(1) = 30
DRTYPE(2) = 30
DRTYPE(3) = 31
DRTYPE(4) = 31
DRTYPE(5) = 32
DRTYPE(6) = 32
C--RPV couplings
DO 70 I=1,2
A(1,I ) = ZERO
A(2,I ) = QMIXSS(2*KKK-1,2,I)*LAMDA3(III,JJJ,KKK)
B(1,I+2) = ZERO
B(2,I+2) = QMIXSS(2*III,2,I)*LAMDA3(III,JJJ,KKK)
A(1,I+4) = ZERO
A(2,I+4) = QMIXSS(2*JJJ-1,2,I)*LAMDA3(III,JJJ,KKK)
C--particles
IDP(4+I) = 399+2*KKK+12*(I-1)
IDP(6+I) = 400+2*III+12*(I-1)
IDP(8+I) = 399+2*JJJ+12*(I-1)
C--MSSM couplings
DO 70 J=1,2
B(J,I ) = AFN(J,2*KKK-1,I,L1)
A(J,I+2) = AFN(J,2*III ,I,L1)
70 B(J,I+4) = AFN(J,2*JJJ-1,I,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 71 I=1,6
71 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--ubar gluino
ELSEIF(IK.EQ.449.AND.MOD(IJ,2).EQ.0.AND.IDPDG(IJ).LT.0) THEN
C--indices for RPV
III = (IJ-6)/2
JJJ = (IDHW(LHEP)+1)/2
KKK = (IDHW(MHEP)+1)/2
C--types of diagram
DRTYPE(1) = 27
DRTYPE(2) = 27
DRTYPE(3) = 28
DRTYPE(4) = 28
DRTYPE(5) = 29
DRTYPE(6) = 29
C--RPV couplings
DO 72 J=1,2
A(1,J ) = QMIXSS(2*III,2,J)*LAMDA3(III,JJJ,KKK)
A(2,J ) = ZERO
B(1,J+2) = QMIXSS(2*JJJ-1,2,J)*LAMDA3(III,JJJ,KKK)
B(2,J+2) = ZERO
A(1,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA3(III,JJJ,KKK)
A(2,J+4) = ZERO
C--particles
IDP(4+J) = 400+2*III+12*(J-1)
IDP(6+J) = 399+2*JJJ+12*(J-1)
IDP(8+J) = 399+2*KKK+12*(J-1)
C--MSSM couplings
DO 72 I=1,2
B(I,J) = AFG(O(I),2*III,J)
A(I,J+2) = AFG(O(I),2*JJJ-1,J)
72 B(I,J+4) = AFG(O(I),2*KKK-1,J)
C--colour flows
NDIA = 6
NCFL(1) = 3
DO 73 I=1,2
IFLOW(I ) = 1
IFLOW(I+2) = 2
73 IFLOW(I+4) = 3
DO 74 I=1,3
DO 74 J=1,3
IF(I.EQ.J) THEN
SPNCFC(I,J,1) = 8.0D0/9.0D0
ELSE
SPNCFC(I,J,1) =-4.0D0/9.0D0
ENDIF
74 CONTINUE
C--u gluino
ELSEIF(IK.EQ.449.AND.MOD(IJ,2).EQ.0.AND.IDPDG(IJ).GT.0) THEN
C--indices for RPV
III = IJ/2
JJJ = (IDHW(LHEP)-5)/2
KKK = (IDHW(MHEP)-5)/2
C--types of diagram
DRTYPE(1) = 30
DRTYPE(2) = 30
DRTYPE(3) = 31
DRTYPE(4) = 31
DRTYPE(5) = 32
DRTYPE(6) = 32
C--RPV couplings
DO 75 J=1,2
A(1,J ) = ZERO
A(2,J ) = QMIXSS(2*III,2,J)*LAMDA3(III,JJJ,KKK)
B(1,J+2) = ZERO
B(2,J+2) = QMIXSS(2*JJJ-1,2,J)*LAMDA3(III,JJJ,KKK)
A(1,J+4) = ZERO
A(2,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA3(III,JJJ,KKK)
C--particles
IDP(4+J) = 400+2*III+12*(J-1)
IDP(6+J) = 399+2*JJJ+12*(J-1)
IDP(8+J) = 399+2*KKK+12*(J-1)
C--MSSM couplings
DO 75 I=1,2
B(I,J) = AFG(I,2*III,J)
A(I,J+2) = AFG(I,2*JJJ-1,J)
75 B(I,J+4) = AFG(I,2*KKK-1,J)
C--colour flows
NDIA = 6
NCFL(1) = 3
DO 76 I=1,2
IFLOW(I ) = 1
IFLOW(I+2) = 2
76 IFLOW(I+4) = 3
DO 77 I=1,3
DO 77 J=1,3
IF(I.EQ.J) THEN
SPNCFC(I,J,1) = 8.0D0/9.0D0
ELSE
SPNCFC(I,J,1) =-4.0D0/9.0D0
ENDIF
77 CONTINUE
C--dbar gluino
ELSEIF(IK.EQ.449.AND.MOD(IJ,2).EQ.1.AND.IDPDG(IJ).LT.0) THEN
C--ensure u type first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = IDHW(LHEP)/2
JJJ = (IDHW(MHEP)+1)/2
KKK = (IJ-5)/2
C--types of diagram
DRTYPE(1) = 27
DRTYPE(2) = 27
DRTYPE(3) = 28
DRTYPE(4) = 28
DRTYPE(5) = 29
DRTYPE(6) = 29
C--RPV couplings
DO 78 I=1,2
A(1,I ) = QMIXSS(2*KKK-1,2,I)*LAMDA3(III,JJJ,KKK)
A(2,I ) = ZERO
B(1,I+2) = QMIXSS(2*III,2,I)*LAMDA3(III,JJJ,KKK)
B(2,I+2) = ZERO
A(1,I+4) = QMIXSS(2*JJJ-1,2,I)*LAMDA3(III,JJJ,KKK)
A(2,I+4) = ZERO
C--particles
IDP(4+I) = 399+2*KKK+12*(I-1)
IDP(6+I) = 400+2*III+12*(I-1)
IDP(8+I) = 399+2*JJJ+12*(I-1)
C--MSSM couplings
DO 78 J=1,2
B(J,I ) = AFG(O(J),2*KKK-1,I)
A(J,I+2) = AFG(O(J),2*III ,I)
78 B(J,I+4) = AFG(O(J),2*JJJ-1,I)
C--colour flows
NDIA = 6
NCFL(1) = 3
DO 79 I=1,2
IFLOW(I ) = 1
IFLOW(I+2) = 2
79 IFLOW(I+4) = 3
DO 80 I=1,3
DO 80 J=1,3
IF(I.EQ.J) THEN
SPNCFC(I,J,1) = 8.0D0/9.0D0
ELSE
SPNCFC(I,J,1) =-4.0D0/9.0D0
ENDIF
80 CONTINUE
C--d gluino
ELSEIF(IK.EQ.449.AND.MOD(IJ,2).EQ.1.AND.IDPDG(IJ).GT.0) THEN
C--ensure u type first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IDHW(LHEP)-6)/2
JJJ = (IDHW(MHEP)-5)/2
KKK = (IJ+1)/2
C--types of diagram
DRTYPE(1) = 30
DRTYPE(2) = 30
DRTYPE(3) = 31
DRTYPE(4) = 31
DRTYPE(5) = 32
DRTYPE(6) = 32
C--RPV couplings
DO 81 I=1,2
A(1,I ) = ZERO
A(2,I ) = QMIXSS(2*KKK-1,2,I)*LAMDA3(III,JJJ,KKK)
B(1,I+2) = ZERO
B(2,I+2) = QMIXSS(2*III,2,I)*LAMDA3(III,JJJ,KKK)
A(1,I+4) = ZERO
A(2,I+4) = QMIXSS(2*JJJ-1,2,I)*LAMDA3(III,JJJ,KKK)
C--particles
IDP(4+I) = 399+2*KKK+12*(I-1)
IDP(6+I) = 400+2*III+12*(I-1)
IDP(8+I) = 399+2*JJJ+12*(I-1)
C--MSSM couplings
DO 81 J=1,2
B(J,I ) = AFG(J,2*KKK-1,I)
A(J,I+2) = AFG(J,2*III ,I)
81 B(J,I+4) = AFG(J,2*JJJ-1,I)
C--colour flows
NDIA = 6
NCFL(1) = 3
DO 82 I=1,2
IFLOW(I ) = 1
IFLOW(I+2) = 2
82 IFLOW(I+4) = 3
DO 83 I=1,3
DO 83 J=1,3
IF(I.EQ.J) THEN
SPNCFC(I,J,1) = 8.0D0/9.0D0
ELSE
SPNCFC(I,J,1) =-4.0D0/9.0D0
ENDIF
83 CONTINUE
C--dbar -ve chargino
ELSEIF(IK.GE.456.AND.IK.LE.457.AND.MOD(IJ,2).EQ.1) THEN
C--change order so highest generation first
IF(IDHW(MHEP).GT.IDHW(LHEP)) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--RPV indices
III = (IJ-5)/2
JJJ = (IDHW(LHEP)+1)/2
KKK = (IDHW(MHEP)+1)/2
L1 = IK-455
C--types of diagram
DRTYPE(1) = 27
DRTYPE(2) = 27
DRTYPE(3) = 28
DRTYPE(4) = 28
DRTYPE(5) = 29
DRTYPE(6) = 29
C--RPV couplings
DO 84 I=1,2
A(1,I ) = QMIXSS(2*III,2,I)*LAMDA3(III,JJJ,KKK)
A(2,I ) = ZERO
B(1,I+2) = QMIXSS(2*JJJ,2,I)*LAMDA3(JJJ,KKK,III)
B(2,I+2) = ZERO
A(1,I+4) = QMIXSS(2*KKK,2,I)*LAMDA3(KKK,III,JJJ)
A(2,I+4) = ZERO
C--particles
IDP(4+I) = 400+2*III+12*(I-1)
IDP(6+I) = 400+2*JJJ+12*(I-1)
IDP(8+I) = 400+2*KKK+12*(I-1)
C--MSSM couplings
DO 84 J=1,2
B(J,I ) = AFC(O(J),2*III,I,L1)
A(J,I+2) = AFC(O(J),2*JJJ,I,L1)
84 B(J,I+4) = AFC(O(J),2*KKK,I,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 85 I=1,6
85 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--d +ve chargino
ELSEIF(IK.GE.454.AND.IK.LE.455.AND.MOD(IJ,2).EQ.1) THEN
C--change order so highest generation first
IF(IDHW(MHEP).GT.IDHW(LHEP)) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--RPV indices
III = (IJ+1)/2
JJJ = (IDHW(LHEP)-5)/2
KKK = (IDHW(MHEP)-5)/2
L1 = IK-453
C--types of diagram
DRTYPE(1) = 30
DRTYPE(2) = 30
DRTYPE(3) = 31
DRTYPE(4) = 31
DRTYPE(5) = 32
DRTYPE(6) = 32
C--RPV couplings
DO 86 I=1,2
A(1,I ) = ZERO
A(2,I ) = QMIXSS(2*III,2,I)*LAMDA3(III,JJJ,KKK)
B(1,I+2) = ZERO
B(2,I+2) = QMIXSS(2*JJJ,2,I)*LAMDA3(JJJ,KKK,III)
A(1,I+4) = ZERO
A(2,I+4) = QMIXSS(2*KKK,2,I)*LAMDA3(KKK,III,JJJ)
C--particles
IDP(4+I) = 400+2*III+12*(I-1)
IDP(6+I) = 400+2*JJJ+12*(I-1)
IDP(8+I) = 400+2*KKK+12*(I-1)
C--MSSM couplings
DO 86 J=1,2
B(J,I ) = AFC(J,2*III,I,L1)
A(J,I+2) = AFC(J,2*JJJ,I,L1)
86 B(J,I+4) = AFC(J,2*KKK,I,L1)
C--colour flows
NDIA = 6
NCFL(1) = 1
DO 87 I=1,6
87 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--ubar +ve chargino
ELSEIF(IK.GE.454.AND.IK.LE.455.AND.MOD(IJ,2).EQ.0) THEN
C--ensure u type first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = IDHW(LHEP)/2
JJJ = (IDHW(MHEP)+1)/2
KKK = (IJ-6)/2
L1 = IK-453
C--types of diagram
DRTYPE(1) = 27
DRTYPE(2) = 27
DRTYPE(3) = 28
DRTYPE(4) = 28
C--RPV couplings
DO 88 I=1,2
A(1,I ) = QMIXSS(2*KKK-1,2,I)*LAMDA3(III,JJJ,KKK)
A(2,I ) = ZERO
B(1,I+2) = QMIXSS(2*III-1,2,I)*LAMDA3(KKK,III,JJJ)
B(2,I+2) = ZERO
C--particles
IDP(4+I) = 399+2*KKK+12*(I-1)
IDP(6+I) = 399+2*III+12*(I-1)
C--MSSM couplings
DO 88 J=1,2
B(J,I ) = AFC(O(J),2*KKK-1,I,L1)
88 A(J,I+2) = AFC(O(J),2*III-1,I,L1)
C--colour flows
NDIA = 4
NCFL(1) = 1
DO 89 I=1,4
89 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--u -ve chargino
ELSEIF(IK.GE.456.AND.IK.LE.457.AND.MOD(IJ,2).EQ.0) THEN
C--ensure u type first
IF(MOD(IDHW(LHEP),2).NE.0) THEN
ID = LHEP
LHEP = MHEP
MHEP = ID
ENDIF
C--RPV indices
III = (IDHW(LHEP)-6)/2
JJJ = (IDHW(MHEP)-5)/2
KKK = IJ/2
L1 = IK-455
C--types of diagram
DRTYPE(1) = 30
DRTYPE(2) = 30
DRTYPE(3) = 31
DRTYPE(4) = 31
C--RPV couplings
DO 90 I=1,2
A(1,I ) = ZERO
A(2,I ) = QMIXSS(2*KKK-1,2,I)*LAMDA3(III,JJJ,KKK)
B(1,I+2) = ZERO
B(2,I+2) = QMIXSS(2*III-1,2,I)*LAMDA3(KKK,III,JJJ)
C--particles
IDP(4+I) = 399+2*KKK+12*(I-1)
IDP(6+I) = 399+2*III+12*(I-1)
C--MSSM couplings
DO 90 J=1,2
B(J,I ) = AFC(J,2*KKK-1,I,L1)
90 A(J,I+2) = AFC(J,2*III-1,I,L1)
C--colour flows
NDIA = 4
NCFL(1) = 1
DO 91 I=1,4
91 IFLOW(I) = 1
SPNCFC(1,1,1) = TWO/THREE
C--d d --> d d
ELSEIF(IDPDG(IK).GT.0.AND.IDPDG(IK).GT.0.AND.
& MOD(IK,2).EQ.1.AND.MOD(IJ,2).EQ.1) THEN
C--can't produce unstable quark on hadronisation timescale
RETURN
C--dbar dbar --> dbar dbar
ELSEIF(IDPDG(IK).LT.0.AND.IDPDG(IJ).LT.0.AND.
& MOD(IJ,2).EQ.1.AND.MOD(IK,2).EQ.1) THEN
C--can't produce unstable quark on hadronisation timescale
RETURN
C--u d --> u d
ELSEIF(IDPDG(IK).GT.0.AND.IDPDG(IJ).GT.0.AND.
& ((MOD(IJ,2).EQ.1.AND.MOD(IK,2).EQ.0).OR.
& (MOD(IJ,2).EQ.0.AND.MOD(IK,2).EQ.1))) THEN
C--ensure u first (incoming)
IF(MOD(IDHW(LHEP),2).EQ.1) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--ensure u first (outgoing)
IF(MOD(IK,2).EQ.1) THEN
ID = IJ
IJ = IK
IK = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
ENDIF
C--can't produce unstable quark on hadronisation timescale
IF(IK.NE.6) RETURN
C--RPV indices
III = IDHW(LHEP)/2
KKK = (IDHW(MHEP)+1)/2
LLL = IK/2
MMM = (IJ+1)/2
NDIA = 0
DO 92 JJJ=1,3
IF(ABS(LAMDA3(III,JJJ,KKK)*LAMDA3(LLL,JJJ,MMM)).LT.EPS)
& GOTO 92
DO 93 J=1,2
IFLOW(NDIA+J) = 1
IDP(4+NDIA+J) = 399+2*JJJ+12*(J-1)
A(1,NDIA+J) = LAMDA3(III,JJJ,KKK)*QMIXSS(2*JJJ-1,2,J)
A(2,NDIA+J) = ZERO
B(1,NDIA+J) = ZERO
B(2,NDIA+J) = LAMDA3(LLL,JJJ,MMM)*QMIXSS(2*JJJ-1,2,J)
93 DRTYPE(NDIA+J) = 33
NDIA = NDIA+2
92 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE/THREE
C--ubar dbar --> ubar dbar
ELSEIF(IDPDG(IK).LT.0.AND.IDPDG(IJ).LT.0.AND.
& ((MOD(IJ,2).EQ.1.AND.MOD(IK,2).EQ.0).OR.
& (MOD(IJ,2).EQ.0.AND.MOD(IK,2).EQ.1))) THEN
C--ensure u first (incoming)
IF(MOD(IDHW(LHEP),2).EQ.1) THEN
ID = MHEP
MHEP = LHEP
LHEP = ID
ENDIF
C--ensure u first (outgoing)
IF(MOD(IK,2).EQ.1) THEN
ID = IJ
IJ = IK
IK = ID
ID = JHEP
JHEP = KHEP
KHEP = ID
ENDIF
C--can't produce unstable quark on hadronisation timescale
IF(IK.NE.6) RETURN
C--RPV indices
III = (IDHW(LHEP)-6)/2
KKK = (IDHW(MHEP)-5)/2
LLL = (IK-6)/2
MMM = (IJ-5)/2
NDIA = 0
DO 94 JJJ=1,3
IF(ABS(LAMDA3(III,JJJ,KKK)*LAMDA3(LLL,JJJ,MMM)).LT.EPS)
& GOTO 94
DO 95 J=1,2
IFLOW(NDIA+J) = 1
IDP(4+NDIA+J) = 399+2*JJJ+12*(J-1)
A(1,NDIA+J) = ZERO
A(2,NDIA+J) = LAMDA3(III,JJJ,KKK)*QMIXSS(2*JJJ-1,2,J)
B(1,NDIA+J) = LAMDA3(LLL,JJJ,MMM)*QMIXSS(2*JJJ-1,2,J)
B(2,NDIA+J) = ZERO
95 DRTYPE(NDIA+J) = 34
NDIA = NDIA+2
94 CONTINUE
NCFL(1) = 1
SPNCFC(1,1,1) = ONE/THREE
C--unrecognized process
ELSE
CALL HWWARN('HWHSPN',506)
ENDIF
C--unrecognized process
ELSE
CALL HWWARN('HWHSPN',507)
ENDIF
C--copy the momenta into the internal array
CALL HWVEQU(5,PHEP(1,LHEP),P(1,1))
CALL HWVEQU(5,PHEP(1,MHEP),P(1,2))
CALL HWVEQU(5,PHEP(1,KHEP),P(1,3))
CALL HWVEQU(5,PHEP(1,JHEP),P(1,4))
C--now compute the masses etc for the diagrams
IDP(1) = IDHW(LHEP)
IDP(2) = IDHW(MHEP)
IDP(3) = IDHW(KHEP)
IDP(4) = IDHW(JHEP)
DO 104 I=1,4
MA (I) = P(5,I)
104 MA2(I) = SIGN(MA(I)**2,MA(I))
DO 105 I=1,NDIA
MR(I) = RMASS(IDP(4+I))
MS(I) = MR(I)**2
IF(IDP(I+4).EQ.200) THEN
MWD(I) = RMASS(200)*GAMZ
ELSEIF(IDP(I+4).EQ.198.OR.IDP(I+4).EQ.199) THEN
MWD(I) = RMASS(198)*GAMW
ELSEIF(IDP(I+4).EQ.59.OR.IDP(I+4).EQ.13.OR.
& IDP(I+4).LE.5.OR.(IDP(I+4).GE.7.AND.IDP(I+4).LE.11)) THEN
MR(I) = ZERO
MS(I) = ZERO
MWD(I) = ZERO
ELSE
MWD(I) = MR(I)*HBAR/RLTIM(IDP(I+4))
ENDIF
105 CONTINUE
C--set up the mandelstam variables
SH = TWO*HWULDO(P(1,1),P(1,2))
CALL HWVSCA(4,-ONE,P(1,3),PLAB(1,2))
CALL HWVSUM(5,P(1,1),PLAB(1,2),PLAB(1,1))
TH = P(5,3)**2-TWO*HWULDO(P(1,1),P(1,3))
UH = P(5,4)**2-TWO*HWULDO(P(1,1),P(1,4))
C--copy the momenta into the common block for spinor computation
DO 106 I=1,4
IF(IDP(I).LT.400.AND.(IDP(I).NE.6.AND.IDP(I).NE.12
& .AND.IDP(I).NE.125.AND.IDP(I).NE.131)) THEN
CALL HWVEQU(5,PREF,PLAB(1,I+4))
C--all other particles
ELSE
PP = SQRT(HWVDOT(3,P(1,I),P(1,I)))
CALL HWVSCA(3,ONE/PP,P(1,I),N)
PLAB(4,I+4) = HALF*(P(4,I)-PP)
PP = HALF*(PP-P(5,I)-PP**2/(P(5,I)+P(4,I)))
CALL HWVSCA(3,PP,N,PLAB(1,I+4))
CALL HWUMAS(PLAB(1,I+4))
PP = HWVDOT(3,PLAB(1,I+4),PLAB(1,I+4))
C--fix to avoid problems if approx massless due to energy
IF(PP.LT.EPS) CALL HWVEQU(5,PREF,PLAB(1,I+4))
ENDIF
C--now the massless vectors
PP = HALF*MA2(I)/HWULDO(PLAB(1,I+4),P(1,I))
DO 107 J=1,4
107 PLAB(J,I) = P(J,I)-PP*PLAB(J,I+4)
106 CALL HWUMAS(PLAB(1,I))
C--change order of momenta for call to HE code
DO 108 I=1,4
PM(1,I) = P(3,I)
PM(2,I) = P(1,I)
PM(3,I) = P(2,I)
PM(4,I) = P(4,I)
108 PM(5,I) = P(5,I)
DO 109 I=1,8
PCM(1,I)=PLAB(3,I)
PCM(2,I)=PLAB(1,I)
PCM(3,I)=PLAB(2,I)
PCM(4,I)=PLAB(4,I)
109 PCM(5,I)=PLAB(5,I)
C--compute the S functions
CALL HWHEW2(8,PCM(1,1),S(1,1,2),S(1,1,1),D)
DO 110 I=1,8
DO 110 J=1,8
S(I,J,2) = -S(I,J,2)
110 D(I,J) = TWO*D(I,J)
C--compute the F functions
CALL HWH2F1(8,F3 ,7,PM(1,3), MA(3))
CALL HWH2F2(8,F4 ,8,PM(1,4),-MA(4))
CALL HWH2F1(8,F4M,8,PM(1,4), MA(4))
CALL HWH2F2(8,F3M,7,PM(1,3),-MA(3))
C--t and u channel functions
C--first the t channel ones
CALL HWVSCA(4,-ONE,PM(1,4),PTMP)
CALL HWVSUM(4,PM(1,2),PTMP,PTMP)
CALL HWUMAS(PTMP)
CALL HWH2F3(8,FTP,PTMP, MR(1))
CALL HWH2F3(8,FTM,PTMP,-MR(1))
C--then the u-channel ones
CALL HWVSCA(4,-ONE,PM(1,4),PTMP)
CALL HWVSUM(4,PM(1,1),PTMP,PTMP)
CALL HWUMAS(PTMP)
CALL HWH2F3(8,FUP,PTMP, MR(1))
CALL HWH2F3(8,FUM,PTMP,-MR(1))
C--function for t-channel scalar exchange
CALL HWVSUM(4,PM(1,4),PM(1,4),PTMP)
CALL HWUMAS(PTMP)
CALL HWH2F1(8,FST,2,PTMP,ZERO)
C--compute the prefactor for all diagrams
PRE = HWULDO(PCM(1,7),PM(1,3))*HWULDO(PCM(1,8),PM(1,4))
PRE = ONE/SQRT(PRE)
C--zero the matrix element
DO 200 P1=1,2
DO 200 P2=1,2
DO 200 P3=1,2
DO 200 P4=1,2
DO 200 I=1,NCFL(1)
200 ME(P1,P2,P3,P4,I) = (0.0D0,0.0D0)
C--now call the subroutines to compute the individual diagrams
DO 210 I=1,NDIA
C--s-channel vector boson exchange diagram (f fbar to fermion fermion)
IF(DRTYPE(I).EQ.1) THEN
CALL HWHS01(I,MED)
C--t-channel sfermion exchange diagram (f fbar to fermion fermion)
ELSEIF(DRTYPE(I).EQ.2) THEN
CALL HWHS02(I,MED)
C--u-channel sfermion exchange diagram(f fbar to fermion fermion)
ELSEIF(DRTYPE(I).EQ.3) THEN
CALL HWHS03(I,MED)
C--s-channel vector boson (f fbar to fermion antifermion)
ELSEIF(DRTYPE(I).EQ.4) THEN
CALL HWHS04(I,MED)
C--t-channel fermion exchange (g g to fermion antifermion)
ELSEIF(DRTYPE(I).EQ.5) THEN
CALL HWHS05(I,MED)
C--u-channel fermion exchange (g g to fermion antifermion)
ELSEIF(DRTYPE(I).EQ.6) THEN
CALL HWHS06(I,MED)
C--s-channel gluon exchange (g g to fermion antifermion)
ELSEIF(DRTYPE(I).EQ.7) THEN
CALL HWHS07(I,MED)
C--t-channel sfermion exchange (g q to fermion sfermion)
ELSEIF(DRTYPE(I).EQ.8) THEN
CALL HWHS08(I,MED)
C--t-channel sfermion exchange (g qbar to fermion antisfermion)
ELSEIF(DRTYPE(I).EQ.9) THEN
CALL HWHS09(I,MED)
C--s-channel quark exchange (g q to fermion antisfermion)
ELSEIF(DRTYPE(I).EQ.10) THEN
CALL HWHS10(I,MED)
C--s-channel antiquark exchange (g qbar to fermion antisfermion)
ELSEIF(DRTYPE(I).EQ.11) THEN
CALL HWHS11(I,MED)
C--u-channel gluino exchange (g q to fermion antisfermion)
ELSEIF(DRTYPE(I).EQ.12) THEN
CALL HWHS12(I,MED)
C--u-channel gluino exchange (g qbar to fermion antisfermion)
ELSEIF(DRTYPE(I).EQ.13) THEN
CALL HWHS13(I,MED)
C--t-channel fermion exchange (g g to fermion fermion)
ELSEIF(DRTYPE(I).EQ.14) THEN
CALL HWHS14(I,MED)
C--u-channel fermion exchange (g g to fermion fermion)
ELSEIF(DRTYPE(I).EQ.15) THEN
CALL HWHS15(I,MED)
C--s-channel gluon exchange (g g to fermion fermion)
ELSEIF(DRTYPE(I).EQ.16) THEN
CALL HWHS16(I,MED)
C--t-channel gauge boson exchange (fermion fermion)
ELSEIF(DRTYPE(I).EQ.17) THEN
CALL HWHS17(I,MED)
C--t-channel gauge boson exchange (fermion antifermion)
ELSEIF(DRTYPE(I).EQ.18) THEN
CALL HWHS18(I,MED)
C--t-channel gauge boson exchange (antifermion fermion)
ELSEIF(DRTYPE(I).EQ.19) THEN
CALL HWHS19(I,MED)
C--t-channel gauge boson exchange (antifermion antifermion)
ELSEIF(DRTYPE(I).EQ.20) THEN
CALL HWHS20(I,MED)
C--s-channel scalar exchange (f fbar --> f fbar)
ELSEIF(DRTYPE(I).EQ.21) THEN
CALL HWHS21(I,MED)
C--t-channel scalar exchange (f fbar --> f fbar)
ELSEIF(DRTYPE(I).EQ.22) THEN
CALL HWHS22(I,MED)
C--u-channel scalar exchange (f fbar --> f fbar)
ELSEIF(DRTYPE(I).EQ.23) THEN
CALL HWHS23(I,MED)
C--s-channel scalar exchange (fbar f --> f f)
ELSEIF(DRTYPE(I).EQ.24) THEN
CALL HWHS24(I,MED)
C--t-channel scalar exchange (fbar f --> f f)
ELSEIF(DRTYPE(I).EQ.25) THEN
CALL HWHS25(I,MED)
C--u-channel scalar exchange (fbar f --> f f)
ELSEIF(DRTYPE(I).EQ.26) THEN
CALL HWHS26(I,MED)
C--s-channel scalar exchange (f f --> f fbar)
ELSEIF(DRTYPE(I).EQ.27) THEN
CALL HWHS27(I,MED)
C--t-channel scalar exchange (f f --> f fbar)
ELSEIF(DRTYPE(I).EQ.28) THEN
CALL HWHS28(I,MED)
C--u-channel scalar exchange (f f --> f fbar)
ELSEIF(DRTYPE(I).EQ.29) THEN
CALL HWHS29(I,MED)
C--s-channel scalar exchange (fbar fbar --> f f)
ELSEIF(DRTYPE(I).EQ.30) THEN
CALL HWHS30(I,MED)
C--t-channel scalar exchange (fbar fbar --> f f)
ELSEIF(DRTYPE(I).EQ.31) THEN
CALL HWHS31(I,MED)
C--u-channel scalar exchange (fbar fbar --> f f)
ELSEIF(DRTYPE(I).EQ.32) THEN
CALL HWHS32(I,MED)
C--s-channel scalar exchange (f f --> f f)
ELSEIF(DRTYPE(I).EQ.33) THEN
CALL HWHS33(I,MED)
C--s-channel scalar exchange (fbar fbar --> fbar fbar)
ELSEIF(DRTYPE(I).EQ.34) THEN
CALL HWHS34(I,MED)
C--error not known
ELSE
CALL HWWARN('HWHSPN',508)
ENDIF
C--add up the matrix elements
DO 210 P1=1,2
DO 210 P2=1,2
DO 210 P3=1,2
DO 210 P4=1,2
210 ME(P1,P2,P3,P4,IFLOW(I)) = ME(P1,P2,P3,P4,IFLOW(I))
& +MED(P1,P2,P3,P4)
C--preform the final normalisation
DO 215 P1=1,2
DO 215 P2=1,2
DO 215 P3=1,2
DO 215 P4=1,2
DO 215 I=1,NCFL(1)
215 ME(P1,P2,P3,P4,I) = PRE*ME(P1,P2,P3,P4,I)
C--now enter the matrix element in the spin common block
NSPN = 1
IDSPN(1) = ICM
ISNHEP(ICM) = 1
JMOSPN(1) = 0
JDASPN(1,1) = 2
JDASPN(2,1) = 3
DECSPN(1) = .FALSE.
DO 225 P1=1,2
DO 225 P2=1,2
DO 225 P3=1,2
DO 225 P4=1,2
DO 225 I=1,NCFL(1)
225 MESPN(P1,P2,P3,P4,I,1) = ME(P1,P2,P3,P4,I)
C--now enter the daughter particles
NSPN = NSPN+2
IDSPN(2) = KHEP
ISNHEP(KHEP) = 2
IDSPN(3) = JHEP
ISNHEP(JHEP) = 3
JMOSPN(2) = 1
JMOSPN(3) = 1
C--spin density matrices for daughter particles
DO 230 P1=1,2
DO 230 P2=1,2
DO 230 I=1,3
RHOSPN(1,1,I) = HALF
RHOSPN(1,2,I) = ZERO
RHOSPN(2,1,I) = ZERO
230 RHOSPN(2,2,I) = HALF
DECSPN(2) = .FALSE.
DECSPN(3) = .FALSE.
C--select the colour flow if needed
IF(SPCOPT.EQ.2.AND.NCFL(1).NE.1) THEN
WGT = ZERO
C--assume no incoming polarization, no processes with more than one
C--colour flow in e+e-
DO 335 I =1,NCFL(1)
WGTB(I) = ZERO
DO 335 P1=1,2
DO 335 P2=1,2
DO 335 P3=1,2
DO 335 P4=1,2
WGTB(I) = WGTB(I)+SPNCFC(I,I,1)*DREAL(
& MESPN(P1,P2,P3,P4,I,1)*DCONJG(MESPN(P1,P2,P3,P4,I,1)))
DO 335 J =1,NCFL(1)
335 WGT = WGT+SPNCFC(I,J,1)*DREAL(
& MESPN(P1,P2,P3,P4,I,1)*DCONJG(MESPN(P1,P2,P3,P4,J,1)))
WGTC = ZERO
DO 340 I=1,NCFL(1)
340 WGTC = WGTC+WGTB(I)
WGTC = WGT/WGTC
DO 345 I=1,NCFL(1)
345 WGTB(I) = WGTB(I)*WGTC
WGTC = WGT*HWRGEN(0)
DO 350 I=1,NCFL(1)
IF(WGTB(I).GE.WGTC) THEN
NCFL(1) = I
RETURN
ENDIF
350 WGTC =WGTC-WGTB(I)
ENDIF
END
CDECK ID>, HWHS01.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS01(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar --> gauge boson --> fermion fermion
C This diagram 1 from DAMTP-2001-83 with opposite sign of P4
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -ONE/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
IF(P1.EQ.P2) THEN
ME(P1,P2,P3,P4) = PRE*A(P1,ID)*(
& B(O(P1),ID)*F3(O(P3), P1 ,1)*F4( P1 ,P4,2)
& +B( P1 ,ID)*F3(O(P3),O(P1),2)*F4(O(P1),P4,1))
ELSE
ME(P1,P2,P3,P4) = ZERO
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS02.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS02(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> fermion fermion via t-channel scalar exchange
C This diagram 2 from DAMTP-2001-83 with opposite sign of P4
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -HALF/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*A(P1,ID)*B(O(P2),ID)*
& F3(O(P3),P1,1)*F4(P2,P4,2)
END
CDECK ID>, HWHS03.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS03(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> fermion fermion via u-channel scalar exchange
C This diagram 3 from DAMTP-2001-83 with opposite sign of P4
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*A(P1,ID)*B(O(P2),ID)*
& F4M(O(P4),P1,1)*F3M(P2,P3,2)
END
CDECK ID>, HWHS04.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS04(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar --> gauge boson --> fermion antifermion
C This diagram 1 from DAMTP-2001-83
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -ONE/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
IF(P1.EQ.P2) THEN
ME(P1,P2,P3,P4) = PRE*A(P1,ID)*(
& B(O(P1),ID)*F3(O(P3), P1 ,1)*F4( P1 ,O(P4),2)
& +B( P1 ,ID)*F3(O(P3),O(P1),2)*F4(O(P1),O(P4),1))
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS05.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS05(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section gluon gluon --> fermion antifermion (1st colour flow)
C N.B. a gauge choice has been made to simplify the triple gluon vertex
C This diagram 4 from DAMTP-2001-83 with the gauge choice L1=2 L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =+ONE/SH/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*(
& F3(O(P3), P1 ,2)*( FTP( P1 , P2 ,1,1)*F4( P2 ,O(P4),2)
& +FTP( P1 ,O(P2),1,2)*F4(O(P2),O(P4),1))
& +F3(O(P3),O(P1),1)*( FTP(O(P1), P2 ,2,1)*F4( P2 ,O(P4),2)
& +FTP(O(P1),O(P2),2,2)*F4(O(P2),O(P4),1)))
END
CDECK ID>, HWHS06.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS06(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section gluon gluon --> fermion antifermion (2st colour flow)
C N.B. a gauge choice has been made to simplify the triple gluon vertex
C This diagram 5 from DAMTP-2001-83 with the gauge choice L1=2 L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =-ONE/SH/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*(
& F3(O(P3), P2 ,1)*( FUP( P2 , P1 ,2,2)*F4( P1 ,O(P4),1)
& +FUP( P2 ,O(P1),2,1)*F4(O(P1),O(P4),2))
& +F3(O(P3),O(P2),2)*( FUP(O(P2), P1 ,1,2)*F4( P1 ,O(P4),1)
& +FUP(O(P2),O(P1),1,1)*F4(O(P1),O(P4),2)))
END
CDECK ID>, HWHS07.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS07(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section gluon gluon --> fermion antifermion (triple gluon piece)
C N.B. a gauge choice has been made to simplify the triple gluon vertex
C This diagram 6 from DAMTP-2001-83 with the gauge choice L1=2 L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),MET,FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER I,P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/SH**2
DO 10 P3=1,2
DO 10 P4=1,2
MET = (0.0D0,0.0D0)
DO 5 I=1,2
5 MET=MET+F3(O(P3),I,1)*F4(I,O(P4),1)-F3(O(P3),I,2)*F4(I,O(P4),2)
DO 10 P1=1,2
DO 10 P2=1,2
IF(P1.EQ.P2) THEN
ME(P1,P2,P3,P4) = PRE*S(1,2,P1)*S(1,2,O(P1))*MET
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS08.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS08(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section quark gluon --> fermion sfermion
C This diagram 7 from DAMTP-2001-83 with the gauge choice L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF*SQRT(HWULDO(PCM(1,8),PCM(1,4)))/SQRT(TWO)/
& SQRT(HWULDO(PCM(1,1),PCM(1,2)))/
& (TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
ME(P1,P2,P3,2) = ZERO
10 ME(P1,P2,P3,1) = A(P1,ID)*PRE*FST(P2,P2,1)*F3(O(P3), P1,1)
END
CDECK ID>, HWHS09.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS09(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section antiquark gluon --> fermion antisfermion
C This diagram 10 from DAMTP-2001-83 with the gauge choice L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF*SQRT(HWULDO(PCM(1,8),PCM(1,4)))/SQRT(TWO)/
& SQRT(HWULDO(PCM(1,1),PCM(1,2)))/
& (TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
ME(P1,P2,P3,2) = ZERO
10 ME(P1,P2,P3,1) = A(O(P1),ID)*PRE*FST(P2,P2,1)*F3M(P1,P3,1)
END
CDECK ID>, HWHS10.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS10(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section quark gluon --> fermion antisfermion (s-channel quark)
C This is diagram 8 from DAMTP-2001-83 with the gauge choice L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = SQRT(HWULDO(PCM(1,8),PCM(1,4)))/SQRT(TWO)/
& SQRT(HWULDO(PCM(1,1),PCM(1,2)))/SH
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
IF(P1.EQ.P2) THEN
ME(p1,p2,p3,1) = PRE*A( P2 ,ID)*F3(O(P3), P2 ,1)*S(1,2,P2)*
& S(1,1,O(P2))
ELSE
ME(P1,P2,P3,1) = PRE*
& A(O(P2),ID)*( F3(O(P3),O(P2),1)*S(1,1,O(P2))
& +F3(O(P3),O(P2),2)*S(2,1,O(P2)))*S(2,1,P2)
ENDIF
10 ME(P1,P2,P3,2) = ZERO
END
CDECK ID>, HWHS11.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS11(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section quark gluon --> fermion antisfermion (s-channel quark)
C This is diagram 11 from DAMTP-2001-83 with the gauge choice L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = SQRT(HWULDO(PCM(1,8),PCM(1,4)))/SQRT(TWO)/
& SQRT(HWULDO(PCM(1,1),PCM(1,2)))/SH
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
IF(P1.EQ.P2) THEN
ME(P1,P2,P3,1) = PRE*A(O(P2),ID)*S(1,2,P1)*
& (S(1,1,O(P2))*F3M(P2,P3,1)+S(1,2,O(P2))*F3M(P2,P3,2))
ELSE
ME(P1,P2,P3,1)=PRE*A(P2,ID)*S(1,1,P1)*S(2,1,P2)*F3M(O(P2),P3,1)
ENDIF
10 ME(P1,P2,P3,2) = ZERO
END
CDECK ID>, HWHS12.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS12(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section quark gluon --> fermion antisfermion (s-channel quark)
C This is diagram 9 from DAMTP-2001-83 with the gauge choice L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =-SQRT(HWULDO(PCM(1,8),PCM(1,4)))/SQRT(TWO)/
& SQRT(HWULDO(PCM(1,1),PCM(1,2)))/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
ME(P1,P2,P3,1) = PRE*A(P1,ID)*(
& F3(O(P3), P2 ,1)*FUP( P2 ,P1, 2,1)
& +F3(O(P3),O(P2), 2)*FUP(O(P2),P1,1,1))
10 ME(P1,P2,P3,2) = ZERO
END
CDECK ID>, HWHS13.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS13(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section quark gluon --> fermion antisfermion (s-channel quark)
C This is diagram 12 from DAMTP-2001-83 with the gauge choice L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =-SQRT(HWULDO(PCM(1,8),PCM(1,4)))/SQRT(TWO)/
& SQRT(HWULDO(PCM(1,1),PCM(1,2)))/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
ME(P1,P2,P3,1) = PRE*A(O(P1),ID)*(
& FUM(P1, P2 ,1,1)*F3M( P2 ,P3, 2)
& +FUM(P1,O(P2),1, 2)*F3M(O(P2),P3,1))
10 ME(P1,P2,P3,2) = ZERO
END
CDECK ID>, HWHS14.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS14(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section gluon gluon --> fermion antifermion (1st colour flow)
C N.B. a gauge choice has been made to simplify the triple gluon vertex
C This diagram 4 from DAMTP-2001-83 with opposite helicity for 4
C and gauge choice L1=2 L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),FTP(2,2,8,8),FTM(2,2,8,8),
& FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =+ONE/(TH-MS(ID))/SH
C--matrix element
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*(
& F3(O(P3), P1 ,2)*( FTP( P1 , P2 , 1,1)*F4( P2 ,P4,2)
& +FTP( P1 ,O(P2), 1,2)*F4(O(P2),P4,1))
& +F3(O(P3),O(P1),1)*( FTP(O(P1), P2 ,2,1)*F4( P2 ,P4,2)
& +FTP(O(P1),O(P2),2,2)*F4(O(P2),P4,1)))
END
CDECK ID>, HWHS15.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS15(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section gluon gluon --> fermion antifermion (2st colour flow)
C N.B. a gauge choice has been made to simplify the triple gluon vertex
C This diagram 5 from DAMTP-2001-83 with opposite helicity for 4
C and gauge choice L1=2 L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),FTP(2,2,8,8),FTM(2,2,8,8),
& FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST, A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =-ONE/(UH-MS(ID))/SH
C--matrix element
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*(
& F3(O(P3), P2 ,1)*( FUP( P2 , P1 ,2,2)*F4( P1 ,P4,1)
& +FUP( P2 ,O(P1),2,1)*F4(O(P1),P4,2))
&+F3(O(P3),O(P2),2)*( FUP(O(P2), P1 ,1,2)*F4( P1 ,P4,1)
& +FUP(O(P2),O(P1),1,1)*F4(O(P1),P4,2)))
END
CDECK ID>, HWHS16.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS16(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section gluon gluon --> fermion antifermion (triple gluon piece)
C N.B. a gauge choice has been made to simplify the triple gluon vertex
C This diagram 6 from DAMTP-2001-83 with opposite helicity for 4
C and gauge choice L1=2 L2=1
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI
& ,F3M(2,2,8),F4M(2,2,8),MET,FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER I,P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/SH**2
C--matrix element
DO 10 P3=1,2
DO 10 P4=1,2
MET = (0.0D0,0.0D0)
DO 5 I=1,2
5 MET=MET+F3(O(P3),I,1)*F4(I,P4,1)-F3(O(P3),I,2)*F4(I,P4,2)
DO 10 P1=1,2
DO 10 P2=1,2
IF(P1.EQ.P2) THEN
ME(P1,P2,P3,P4) = PRE*MET*S(1,2,P1)*S(1,2,O(P1))
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS17.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS17(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section fermion fermion --> fermion fermion (t-channel boson)
C This diagram 13 from DAMTP-2001-83
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8),DL(2,2)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O,DL
DATA O/2,1/
DATA DL/(1.0,0.0D0),(0.0D0,0.0D0),(0.0D0,0.0D0),(1.0D0,0.0D0)/
C--compute the propagator factor
PRE = SQRT(TWO*HWULDO(PCM(1,8),PCM(1,4)))/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
IF(P2.EQ.P4) THEN
ME(P1,P2,P3,P4) = PRE*A(P1,ID)*B(P2,ID)*
& ( DL(P1,O(P2))*F3(O(P3), P2 ,2)*S(4,1, P2 )
& +DL(P1, P2 )*F3(O(P3),O(P2),4)*S(2,1,O(P2)))
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS18.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS18(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section fermion antifermion --> fermion antifermion (t-channel boson)
C This diagram 14 from DAMTP-2001-83
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8),DL(2,2)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O,DL
DATA O/2,1/
DATA DL/(1.0,0.0D0),(0.0D0,0.0D0),(0.0D0,0.0D0),(1.0D0,0.0D0)/
C--compute the propagator factor
PRE = SQRT(TWO*HWULDO(PCM(1,8),PCM(1,4)))/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
IF(P2.EQ.P4) THEN
ME(P1,P2,P3,P4) = PRE*A(P1,ID)*B(P2,ID)*
& ( DL(P1,O(P2))*F3(O(P3), P2 ,4)*S(2,1, P2 )
& +DL(P1, P2 )*F3(O(P3),O(P2),2)*S(4,1,O(P2)))
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS19.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS19(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section antifermion fermion --> antifermion fermion (t-channel boson)
C This diagram 15 from DAMTP-2001-83
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8),DL(2,2)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O,DL
DATA O/2,1/
DATA DL/(1.0,0.0D0),(0.0D0,0.0D0),(0.0D0,0.0D0),(1.0D0,0.0D0)/
C--compute the propagator factor
PRE = SQRT(TWO*HWULDO(PCM(1,8),PCM(1,4)))/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
IF(P2.EQ.P4) THEN
ME(P1,P2,P3,P4) = PRE*A(P1,ID)*B(P2,ID)*
& ( DL(P1,O(P2))*S(1,2, P1 )*F3M( P2 ,O(P3),4)
& +DL(P1, P2 )*S(1,4, P1 )*F3M(O(P2),O(P3),2))
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS20.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS20(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section antifermion fermion --> antifermion fermion (t-channel boson)
C This diagram 16 from DAMTP-2001-83
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE,ZI,
& F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8),DL(2,2)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH,HWULDO,XMASS,PLAB,PRW,PCM
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
PARAMETER(ZI=(0.0D0,1.0D0))
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
EXTERNAL HWULDO
SAVE O,DL
DATA O/2,1/
DATA DL/(1.0,0.0D0),(0.0D0,0.0D0),(0.0D0,0.0D0),(1.0D0,0.0D0)/
C--compute the propagator factor
PRE = SQRT(TWO*HWULDO(PCM(1,8),PCM(1,4)))/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
IF(P2.EQ.P4) THEN
ME(P1,P2,P3,P4) = PRE*A(P1,ID)*B(P2,ID)*
& ( DL(P1,O(P2))*S(1,4, P1 )*F3M( P2 ,O(P3),2)
& +DL(P1, P2 )*S(1,2, P1 )*F3M(O(P2),O(P3),4))
ELSE
ME(P1,P2,P3,P4) = (0.0D0,0.0D0)
ENDIF
10 CONTINUE
END
CDECK ID>, HWHS21.
*CMZ :- -02/10/01 10:17:10 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS21(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> f fbar via s-channel scalar exchange
C This is diagram 1 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P3=1,2
DO 10 P4=1,2
ME(P1, P1 ,P3,P4) = (0.0D0,0.0D0)
10 ME(P1,O(P1),P3,P4) = PRE*A(P1,ID)*S(2,1,O(P1))*
& ( B( P4 ,ID)*F3(O(P3), P4 ,4)*S(4,8,P4)
& -B(O(P4),ID)*F3(O(P3),O(P4),8)*MA(4))
END
CDECK ID>, HWHS22.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS22(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> f fbar via t-channel scalar exchange
C This is diagram 2 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -HALF/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(O(P2),ID)*A( P1 ,ID)*
& F4(P2,O(P4),2)*F3(O(P3),P1,1)
END
CDECK ID>, HWHS23.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS23(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> fermion fermion via t-channel scalar exchange
C This is diagram 3 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(O(P2),ID)*A( P1 ,ID)*
& F4M(P4,P1,1)*F3M(P2,P3,2)
END
CDECK ID>, HWHS24.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS24(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> f f via s-channel scalar exchange
C This is diagram 4 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P3=1,2
DO 10 P4=1,2
ME(P1, P1 ,P3,P4) = (0.0D0,0.0D0)
10 ME(P1,O(P1),P3,P4) = PRE*A(P1,ID)*S(2,1,O(P1))*
& ( B(O(P3),ID)*F4M(O(P4),O(P3),3)*S(3,7,O(P3))
& -B( P3 ,ID)*F4M(O(P4), P3 ,7)*MA(3))
END
CDECK ID>, HWHS25.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS25(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> f f via u-channel scalar exchange
C This is diagram 5 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -HALF/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(P1,ID)*A(O(P2),ID)*
& F4M(O(P4),P1,1)*F3M(P2,P3,2)
END
CDECK ID>, HWHS26.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS26(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f fbar ---> f f via t-channel scalar exchange
C This is diagram 6 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(P1,ID)*A(O(P2),ID)*
& F4(P2,P4,2)*F3(O(P3),P1,1)
END
CDECK ID>, HWHS27.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS27(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f f ---> f fbar via s-channel scalar exchange
C This is diagram 7 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =-HALF/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P3=1,2
DO 10 P4=1,2
ME(P1,O(P1),P3,P4) = (0.0D0,0.0D0)
10 ME(P1, P1 ,P3,P4) = PRE*A(P1,ID)*S(1,2,O(P1))*
& ( B( P4 ,ID)*F3(O(P3), P4 ,4)*S(4,8,P4)
& -B(O(P4),ID)*F3(O(P3),O(P4),8)*MA(4))
END
CDECK ID>, HWHS28.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS28(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f f ---> f fbar via t-channel scalar exchange
C This is diagram 8 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = -HALF/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(P2,ID)*A( P1 ,ID)*
& F4(O(P2),O(P4),2)*F3(O(P3),P1,1)
END
CDECK ID>, HWHS29.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS29(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f f ---> f fbar via u-channel scalar exchange
C This is diagram 9 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(P2,ID)*A(P1,ID)*
& F3(O(P3),P2,2)*F4(O(P1),O(P4),1)
END
CDECK ID>, HWHS30.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS30(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section fbar fbar ---> f f via s-channel scalar exchange
C This is diagram 10 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P3=1,2
DO 10 P4=1,2
ME(P1,O(P1),P3,P4) = (0.0D0,0.0D0)
10 ME(P1, P1 ,P3,P4) = PRE*A(O(P1),ID)*S(2,1,P1)*
& ( B(O(P3),ID)*F4M(O(P4),O(P3),3)*S(3,7,O(P3))
& -B( P3 ,ID)*F4M(O(P4), P3 ,7)*MA(3))
END
CDECK ID>, HWHS31.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS31(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section fbar fbar ---> f f via t-channel scalar exchange
C This is diagram 11 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(TH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(O(P2),ID)*A(O(P1),ID)*
& F4M(O(P4),O(P2),2)*F3M(P1,P3,1)
END
CDECK ID>, HWHS32.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS32(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section fbar fbar ---> f f via u-channel scalar exchange
C This is diagram 12 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P2,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE =-HALF/(UH-MS(ID))
DO 10 P1=1,2
DO 10 P2=1,2
DO 10 P3=1,2
DO 10 P4=1,2
10 ME(P1,P2,P3,P4) = PRE*B(O(P2),ID)*A(O(P1),ID)*
& F4M(O(P4),O(P1),1)*F3M(P2,P3,2)
END
CDECK ID>, HWHS33.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS33(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section f f ---> f f via s-channel scalar exchange
C This is diagram 13 from RPV
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P3=1,2
DO 10 P4=1,2
ME(P1,O(P1),P3,P4) = (0.0D0,0.0D0)
10 ME(P1, P1 ,P3,P4) = PRE*A(P1,ID)*S(1,2,O(P1))*
& ( B(O(P3),ID)*F4M(O(P4),O(P3),3)*S(3,7,O(P3))
& -B( P3 ,ID)*F4M(O(P4), P3 ,7)*MA(3))
END
CDECK ID>, HWHS34.
*CMZ :- -08/04/02 11:54:39 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHS34(ID,ME)
C-----------------------------------------------------------------------
C Subroutine to calculate the helicity amplitudes for the 2-to-2 cross
C section fbar fbar ---> fbar fbar via t-channel scalar exchange
C This is diagram 14 from RPV notes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NDIAHD
PARAMETER(NDIAHD=10)
DOUBLE COMPLEX ME(2,2,2,2),S,D,F3(2,2,8),F4(2,2,8),PRE
& ,F3M(2,2,8),F4M(2,2,8),FST(2,2,8),ZI,
& FTP(2,2,8,8),FTM(2,2,8,8),FUP(2,2,8,8),FUM(2,2,8,8)
DOUBLE PRECISION A(2,NDIAHD),B(2,NDIAHD),MS(NDIAHD),MWD(NDIAHD),
& MA(4),MA2(4),MR(NDIAHD),SH,TH,UH
INTEGER P1,P3,P4,ID,O(2),IDP(4+NDIAHD),DRTYPE(NDIAHD)
COMMON/HWSPHC/F3,F4,F3M,F4M,FTP,FTM,FUP,FUM,FST,A,B,MS,MWD,MR,MA,
& MA2,SH,TH,UH,IDP,DRTYPE
COMMON/HWHEWS/S(8,8,2),D(8,8)
PARAMETER(ZI=(0.0D0,1.0D0))
SAVE O
DATA O/2,1/
C--compute the propagator factor
PRE = HALF/(SH-MS(ID)+ZI*MWD(ID))
DO 10 P1=1,2
DO 10 P3=1,2
DO 10 P4=1,2
ME(P1,O(P1),P3,P4) = (0.0D0,0.0D0)
10 ME(P1, P1 ,P3,P4) = PRE*A(O(P1),ID)*S(2,1,P1)*
& ( B( P4 ,ID)*F3(P3, P4 ,4)*S(4,8,P4)
& -B(O(P4),ID)*F3(P3,O(P4),8)*MA(4))
END
CDECK ID>, HWHSS1.
*CMZ :- -18/05/99 20.33.45 by Kosuke Odagiri
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
FUNCTION HWHSS1(S, T, U, M3, M4, SGN, CLL, CLR, CRL, CRR)
C-----------------------------------------------------------------------
C QQ(BAR) -> GAUGINOS
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWHSS1, S, T, U, M3, M4, SGN
DOUBLE COMPLEX CLL, CLR, CRL, CRR
HWHSS1 = DREAL(
& (DCONJG(CLL)*CLL+DCONJG(CRR)*CRR)*(U-M3*M3)*(U-M4*M4)+
& (DCONJG(CLR)*CLR+DCONJG(CRL)*CRL)*(T-M3*M3)*(T-M4*M4)+
& (DCONJG(CLL)*CLR+DCONJG(CRL)*CRR)*2.*SGN*M3*M4*S )
END
CDECK ID>, HWHSS2.
*CMZ :- -10/10/01 10:38:15 by Peter Richardson
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
FUNCTION HWHSS2(S, T, U, M3, M4, SGN, CLL, CLR, CRL, CRR)
C-----------------------------------------------------------------------
C LL(BAR) -> GAUGINOS (including beam polarization)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWHSS2, S, T, U, M3, M4, SGN
DOUBLE COMPLEX CLL, CLR, CRL, CRR
HWHSS2 =
C--first the incoming left electron
& (ONE-EPOLN(3))*(ONE+PPOLN(3))*DREAL(
& DCONJG(CLL)*CLL*(U-M3*M3)*(U-M4*M4)+
& DCONJG(CLR)*CLR*(T-M3*M3)*(T-M4*M4)+
& DCONJG(CLL)*CLR*2.*SGN*M3*M4*S )
C--then the incoming right electron
&+(ONE+EPOLN(3))*(ONE-PPOLN(3))*DREAL(
& DCONJG(CRR)*CRR*(U-M3*M3)*(U-M4*M4)+
& DCONJG(CRL)*CRL*(T-M3*M3)*(T-M4*M4)+
& DCONJG(CRL)*CRR*2.*SGN*M3*M4*S )
END
CDECK ID>, HWHSSG.
*CMZ :- -31/03/00 17:54:05 by Peter Richardson
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWHSSG
C-----------------------------------------------------------------------
C SUSY 2 PARTON -> 2 GAUGINOS PROCESSES (1 - 3)
C -> GAUGINO + SPARTON PROCESSES (4 - 7)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN, HWUALF, HWUAEM, EPS, HCS, RCS, DIST,
& ML(6), ML2(6), MR(6), MR2(6), MCH(2), MCH2(2), MNU(4), MNU2(4),
& MSQK, MG, MG2, SM, DM, DAB, QPE, SGN, PF, SQPE, EMSC2,
& FAC0, FACA, FACB, FACC, S, T, T3, U, U4, SN2TH
DOUBLE PRECISION M1(2,2,6), M2(4,4,6), M3(2,4,6,6),
& M4(4,6), M5(2,6,6), M6L(4,6), M6R(4,6), M7(2,2,6,6),
& XA(4), XB(4), XC(4), XD(4), MZ, MW, XW, SQXW, S2W, S22W
INTEGER I, IQ, IQ1, IQ2, IQ3, IQ4, IG1, IG2, IG3, IG4,
& ID1, ID2, IGL, SSL, SSR, GLU, SSNU, SSCH, INU, ICH, IWD(6), IPB
DOUBLE PRECISION DQD(6), DQU(6), HWHSS1
EXTERNAL HWRGEN, HWUALF, HWUAEM, HWHSS1
SAVE HCS, M1, M2, M3, M4, M5, M6L, M6R, M7
PARAMETER (EPS = 1.D-9, IGL = 49, SSL = 400, SSR = 412, GLU = 449)
PARAMETER (SSNU = 449, SSCH = 453, INU = 49, ICH = 53)
DOUBLE COMPLEX Z, Z0, C1, C2, C3, GZ, GW, CLL, CLR, CRL, CRR
PARAMETER (Z = (0.D0,1.D0), Z0 = (0.D0,0.D0))
EQUIVALENCE (MZ, RMASS(200)), (MW, RMASS(198)), (MG, RMASS(GLU))
EQUIVALENCE (XA(1), ZMIXSS(1,1)), (XA(2), ZMIXSS(2,1))
EQUIVALENCE (XA(3), ZMIXSS(3,1)), (XA(4), ZMIXSS(4,1))
EQUIVALENCE (XB(1), ZMIXSS(1,2)), (XB(2), ZMIXSS(2,2))
EQUIVALENCE (XB(3), ZMIXSS(3,2)), (XB(4), ZMIXSS(4,2))
EQUIVALENCE (XC(1), ZMIXSS(1,3)), (XC(2), ZMIXSS(2,3))
EQUIVALENCE (XC(3), ZMIXSS(3,3)), (XC(4), ZMIXSS(4,3))
EQUIVALENCE (XD(1), ZMIXSS(1,4)), (XD(2), ZMIXSS(2,4))
EQUIVALENCE (XD(3), ZMIXSS(3,4)), (XD(4), ZMIXSS(4,4))
SAVE IWD,DQD,DQU
DATA IWD/2,1,4,3,6,5/
DATA DQD/ONE,ZERO,ONE,ZERO,ONE,ZERO/
DATA DQU/ZERO,ONE,ZERO,ONE,ZERO,ONE/
C
CALL HWSGEN(.FALSE.)
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
SN2TH = 0.25D0 - 0.25D0*COSTH**2
S=XX(1)*XX(2)*PHEP(5,3)**2
EMSC2 = EMSCA**2
FAC0 = FACTSS*HWUAEM(EMSC2)
c prefactor for pair production, includes 1/Nc colour factor
FACA = FAC0*HWUAEM(EMSC2) / CAFAC
c prefactor for qq -> gaugino + gluino, includes CF/Nc colour factor
FACB = FAC0*HWUALF(1,EMSCA) * CFFAC / CAFAC
c prefactor for qg -> gaugino + squark, includes 1/2Nc colour factor
FACC = FACB / CFFAC / TWO
MG2 = MG**2
GZ = S-MZ**2+Z*S/MZ*GAMZ
GW = S-MW**2+Z*S/MW*GAMW
DO IQ = 1,6
IQ1 = SSL + IQ
IQ2 = SSR + IQ
ML(IQ) = RMASS(IQ1)
ML2(IQ) = ML(IQ)**2
MR(IQ) = RMASS(IQ2)
MR2(IQ) = MR(IQ)**2
END DO
XW = TWO * SWEIN
SQXW = SQRT(XW)
S22W = XW * (TWO - XW)
S2W = SQRT(S22W)
DO IG1 = 1,4
MNU(IG1) = RMASS(IG1+SSNU)
MNU2(IG1) = MNU(IG1)**2
END DO
DO IG1 = 1,2
MCH(IG1) = RMASS(IG1+SSCH)
MCH2(IG1) = MCH(IG1)**2
END DO
c _ ~+ ~-
c (1) q q -> X X
c a b
DO IG1 = 1,2
DO IG2 = 1,2
SM = MCH(IG1) + MCH(IG2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MCH(IG1) - MCH(IG2)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = (SQPE*COSTH - S + MCH2(IG1) + MCH2(IG2)) / TWO
U = - T - S + MCH2(IG1) + MCH2(IG2)
DAB = ABS(FLOAT(IG1+IG2-3))
C1 = (-WMXVSS(IG1,2)*WMXVSS(IG2,2)+DAB*S22W/XW)/S2W/GZ
C2 = (-WMXUSS(IG1,2)*WMXUSS(IG2,2)+DAB*S22W/XW)/S2W/GZ
SGN = WSGNSS(IG1)*WSGNSS(IG2)
C--PR bug fix 31/03/00
DO IQ = 1,6
C3 = -DAB*QFCH(IQ)/S
CLL = C3 - LFCH(IQ)*C1 +
& DQD(IQ)*WMXVSS(IG1,1)*WMXVSS(IG2,1)/((U-ML2(IWD(IQ)))*XW)
CLR = C3 - LFCH(IQ)*C2 -
& DQU(IQ)*WMXUSS(IG1,1)*WMXUSS(IG2,1)/((T-ML2(IWD(IQ)))*XW)
CRL = C3 - RFCH(IQ)*C1
CRR = C3 - RFCH(IQ)*C2
M1(IG1,IG2,IQ)=FACA*PF*
& HWHSS1(S,T,U,MCH(IG1),MCH(IG2),SGN,CLL,CLR,CRL,CRR)
END DO
C--End of Fix
ELSE
DO IQ = 1,6
M1(IG1,IG2,IQ) = ZERO
END DO
END IF
END DO
END DO
c _ ~o ~o
c (2) q q -> X X
c i j
DO IG1 = 1,4
DO IG2 = 1,4
SM = MNU(IG1) + MNU(IG2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MNU(IG1) - MNU(IG2)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = (SQPE*COSTH - S + MNU2(IG1) + MNU2(IG2)) / TWO
U = - T - S + MNU2(IG1) + MNU2(IG2)
C1 = (XD(IG1)*XD(IG2)-XC(IG1)*XC(IG2))/S2W/GZ
C2 = - C1
SGN = ZSGNSS(IG1)*ZSGNSS(IG2)
DO IQ = 1,6
CLL =LFCH(IQ)*C1+SLFCH(IQ,IG1)*SLFCH(IQ,IG2)/(U-ML2(IQ))
CLR =LFCH(IQ)*C2-SLFCH(IQ,IG1)*SLFCH(IQ,IG2)/(T-ML2(IQ))
CRL =RFCH(IQ)*C1-SRFCH(IQ,IG1)*SRFCH(IQ,IG2)/(T-MR2(IQ))
CRR =RFCH(IQ)*C2+SRFCH(IQ,IG1)*SRFCH(IQ,IG2)/(U-MR2(IQ))
M2(IG1,IG2,IQ) = FACA*PF*HALF*
& HWHSS1(S,T,U,MNU(IG1),MNU(IG2),SGN,CLL,CLR,CRL,CRR)
END DO
ELSE
DO IQ = 1,6
M2(IG1,IG2,IQ) = ZERO
END DO
END IF
END DO
END DO
c _ ~+ ~o
c (3) U D -> X X
c a i
DO IG1 = 1,2
DO IG2 = 1,4
SM = MCH(IG1) + MNU(IG2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MCH(IG1) - MNU(IG2)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = (SQPE*COSTH - S + MCH2(IG1) + MNU2(IG2)) / TWO
U = - T - S + MCH2(IG1) + MNU2(IG2)
C1 = XA(IG2)+S2W/XW*XB(IG2)
c note the new s-channel signs below. (PR BUG FIX 3/9/01)
C2 = (-XD(IG2)*WMXVSS(IG1,2)/SQXW+C1*WMXVSS(IG1,1))/GW
C3 = ( XC(IG2)*WMXUSS(IG1,2)/SQXW+C1*WMXUSS(IG1,1))/GW
SGN = WSGNSS(IG1)*ZSGNSS(IG2)
DO IQ1 = 1,3
IQ3 = IQ1*2
DO IQ2 = 1,3
IQ4 = IQ2*2-1
CLL = C2+WMXVSS(IG1,1)*SLFCH(IQ3,IG2)/(U-ML2(IQ3))
CLR = C3-WMXUSS(IG1,1)*SLFCH(IQ4,IG2)/(T-ML2(IQ4))
M3(IG1,IG2,IQ1,IQ2) = FACA*PF*VCKM(IQ1,IQ2)/XW*
& HWHSS1(S,T,U,MCH(IG1),MNU(IG2),SGN,CLL,CLR,Z0,Z0)
END DO
END DO
ELSE
DO IQ1 = 1,3
DO IQ2 = 1,3
M3(IG1,IG2,IQ1,IQ2) = ZERO
END DO
END DO
END IF
END DO
END DO
c _ ~o ~
c (4) q q -> X g
c i
DO IG1 = 1,4
SM = MNU(IG1) + MG
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MNU(IG1) - MG
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = (SQPE*COSTH - S + MG2 + MNU2(IG1)) / TWO
U = - T - S + MG2 + MNU2(IG1)
DO IQ = 1,6
CLL = SLFCH(IQ,IG1)/(U-ML2(IQ))
CLR = - SLFCH(IQ,IG1)/(T-ML2(IQ))
CRL = - SRFCH(IQ,IG1)/(T-MR2(IQ))
CRR = SRFCH(IQ,IG1)/(U-MR2(IQ))
M4(IG1,IQ) = FACB*PF*
& HWHSS1(S,T,U,MNU(IG1),MG,ZSGNSS(IG1),CLL,CLR,CRL,CRR)
END DO
ELSE
DO IQ = 1,6
M4(IG1,IQ) = ZERO
END DO
END IF
END DO
c _ ~+ ~
c (5) U D -> X g
c a
DO IG1 = 1,2
SM = MCH(IG1) + MG
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MCH(IG1) - MG
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T = (SQPE*COSTH - S + MCH2(IG1) + MG2) / TWO
U = - T - S + MCH2(IG1) + MG2
DO IQ1 = 1,3
IQ3 = IQ1*2
DO IQ2 = 1,3
IQ4 = IQ2*2-1
CLL = WMXVSS(IG1,1)/(U-ML2(IQ3))
CLR = - WMXUSS(IG1,1)/(T-ML2(IQ4))
M5(IG1,IQ1,IQ2) = FACB*PF*VCKM(IQ1,IQ2)/XW*
& HWHSS1(S,T,U,MCH(IG1),MG,WSGNSS(IG1),CLL,CLR,Z0,Z0)
END DO
END DO
ELSE
DO IQ1 = 1,3
DO IQ2 = 1,3
M5(IG1,IQ1,IQ2) = ZERO
END DO
END DO
END IF
END DO
c ~o ~
c (6) g q -> X q
c i LR
DO IG1 = 1,4
DO IQ = 1,6
c left squarks
SM = MNU(IG1)+ML(IQ)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MNU(IG1)-ML(IQ)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T3 = (SQPE*COSTH - S - SM*DM) / TWO
U4 = - T3 - S
C--KO bug fix 06/10/00
M6L(IG1,IQ) = FACC*PF*((QMIXSS(IQ,1,1)*SLFCH(IQ,IG1))**2
& +(QMIXSS(IQ,2,1)*SRFCH(IQ,IG1))**2)*
& T3/S/U4*(-U4+TWO*SM*DM/T3/U4*SQPE*SQPE*SN2TH)
ELSE
M6L(IG1,IQ) = ZERO
END IF
c right squarks
SM = MNU(IG1)+MR(IQ)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = MNU(IG1)-MR(IQ)
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T3 = (SQPE*COSTH - S - SM*DM) / TWO
U4 = - T3 - S
C--PR bug fix 28/08/01
M6R(IG1,IQ) = FACC*PF * ((QMIXSS(IQ,1,2)*SLFCH(IQ,IG1))**2
& +(QMIXSS(IQ,2,2)*SRFCH(IQ,IG1))**2)*
& T3/S/U4*(-U4+TWO*SM*DM/T3/U4*SQPE*SQPE*SN2TH)
ELSE
M6R(IG1,IQ) = ZERO
END IF
END DO
END DO
c ~+-~
c (7) g q -> X q'
c a L
DO IG1 = 1,2
DO IQ1 = 1,3
IQ3 = IQ1*2
DO IQ2 = 1,3
IQ4 = IQ2*2-1
DO I = 1,2
c U initiated processes
IF (I.EQ.1) THEN
MSQK = ML(IQ4)
ELSE
MSQK = MR(IQ4)
END IF
SM = MCH(IG1) + MSQK
QPE = S - SM**2
IF (((I.EQ.1).OR.(IQ2.EQ.3)).AND.(QPE.GE.ZERO)) THEN
DM = MCH(IG1) - MSQK
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T3 = (SQPE*COSTH - S - SM*DM) / TWO
U4 = - T3 - S
M7(I,IG1,IQ3,IQ4)=FACC*PF*WMXUSS(IG1,1)**2*VCKM(IQ1,IQ2)
& /XW*T3/S/U4*(-U4+TWO*SM*DM/T3/U4*SQPE*SQPE*SN2TH)*
& QMIXSS(IQ4,1,I)**2
ELSE
M7(I,IG1,IQ3,IQ4) = ZERO
END IF
c D initiated processes
IF (I.EQ.1) THEN
MSQK = ML(IQ3)
ELSE
MSQK = MR(IQ3)
END IF
SM = MCH(IG1) + MSQK
QPE = S - SM**2
IF (((I.EQ.1).OR.(IQ1.EQ.3)).AND.(QPE.GE.ZERO)) THEN
DM = MCH(IG1) - MSQK
SQPE = SQRT(QPE*(S-DM**2))
PF = SQPE/S
T3 = (SQPE*COSTH - S - SM*DM) / TWO
U4 = - T3 - S
M7(I,IG1,IQ4,IQ3)=FACC*PF*WMXVSS(IG1,1)**2*VCKM(IQ1,IQ2)
& /XW*T3/S/U4*(-U4+TWO*SM*DM/T3/U4*SQPE*SQPE*SN2TH)*
& QMIXSS(IQ3,1,I)**2
ELSE
M7(I,IG1,IQ4,IQ3) = ZERO
END IF
END DO
END DO
END DO
END DO
END IF
HCS = 0.
c _ _ ~+ ~- ~o ~o ~o ~
c q q , q q -> X X , X X , X g
c a b i j i
DO 1 ID1 = 1,12
IF (DISF(ID1,1).LT.EPS) GOTO 1
IF (ID1.GT.6) THEN
ID2 = ID1 - 6
IQ = ID2
IPB = 4132
ELSE
ID2 = ID1 + 6
IQ = ID1
IPB = 2431
END IF
IF (DISF(ID2,2).LT.EPS) GOTO 1
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,2
IG3 = ICH+IG1
DO IG2 = 1,2
IG4 = ICH+IG2+2
HCS = HCS + DIST*M1(IG1,IG2,IQ)
C--PR bug fix 10/10/01
IF (GENEV.AND.HCS.GT.RCS) THEN
IF(ID2.LT.ID1) COSTH=-COSTH
CALL HWHSSS(IG3,0,IG4,0,2134,21)
GOTO 9
ENDIF
END DO
END DO
DO IG1 = 1,4
IG3 = INU+IG1
DO IG2 = 1,4
IG4 = INU+IG2
IF (IG2.GE.IG1) HCS = HCS + DIST*M2(IG1,IG2,IQ)
C--PR bug fix 10/10/01
IF (GENEV.AND.HCS.GT.RCS) THEN
IF(ID2.LT.ID1) COSTH=-COSTH
CALL HWHSSS(IG3,0,IG4,0,2134,22)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*M4(IG1,IQ)
C--PR bug fix 10/10/01
IF (GENEV.AND.HCS.GT.RCS) THEN
IF(ID2.LT.ID1) COSTH=-COSTH
CALL HWHSSS(IG3,0,IGL,0, IPB,24)
GOTO 9
ENDIF
END DO
1 CONTINUE
c _ _ ~+-~o ~+-~
c q q', q q' -> X X , X g
c a i a
c
c _ _ _ _
c ud(+), ud(-), du(-), du(+)
DO 2 IQ1 = 1, 3
DO IQ2 = 1, 3
IF(VCKM(IQ1,IQ2).GT.EPS) THEN
c _
c ud (+)
ID1 = IQ1 * 2
ID2 = IQ2 * 2 + 5
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,2
IG3 = ICH+IG1
DO IG2 = 1,4
IG4 = INU+IG2
HCS = HCS + DIST*M3(IG1,IG2,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IG4,0,2134,23)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*M5(IG1,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IGL,0,2431,25)
GOTO 9
ENDIF
END DO
END IF
c _
c du (+)
ID1 = IQ2 * 2 + 5
ID2 = IQ1 * 2
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,2
IG3 = ICH+IG1
DO IG2 = 1,4
IG4 = INU+IG2
HCS = HCS + DIST*M3(IG1,IG2,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG4,0,IG3,0,2134,23)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*M5(IG1,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IGL,0,IG3,0,3124,25)
GOTO 9
ENDIF
END DO
END IF
c _
c du (-)
ID1 = IQ2 * 2 - 1
ID2 = IQ1 * 2 + 6
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,2
IG3 = ICH+IG1+2
DO IG2 = 1,4
IG4 = INU+IG2
HCS = HCS + DIST*M3(IG1,IG2,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG4,0,IG3,0,2134,23)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*M5(IG1,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IGL,0,IG3,0,2314,25)
GOTO 9
ENDIF
END DO
END IF
c _
c ud (-)
ID1 = IQ1 * 2 + 6
ID2 = IQ2 * 2 - 1
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,2
IG3 = ICH+IG1+2
DO IG2 = 1,4
IG4 = INU+IG2
HCS = HCS + DIST*M3(IG1,IG2,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IG4,0,2134,23)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*M5(IG1,IQ1,IQ2)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IGL,0,4132,25)
GOTO 9
ENDIF
END DO
END IF
END IF
END DO
2 CONTINUE
c _ _ ~o ~ ~+-~
c g q , g q , q g , q g -> X q , X q'
c i LR a L
c neutralino
DO IQ1 = 1,6
c
c gq
ID1 = 13
ID2 = IQ1
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,4
IG3 = INU+IG1
HCS = HCS + DIST*M6L(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,ID2,0,2431,26)
GOTO 9
ENDIF
HCS = HCS + DIST*M6R(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,ID2,2,2431,26)
GOTO 9
ENDIF
END DO
END IF
c _
c gq
ID1 = 13
ID2 = IQ1 + 6
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,4
IG3 = INU+IG1
HCS = HCS + DIST*M6L(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,ID2,0,4132,26)
GOTO 9
ENDIF
HCS = HCS + DIST*M6R(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,ID2,2,4132,26)
GOTO 9
ENDIF
END DO
END IF
c
c qg
ID1 = IQ1
ID2 = 13
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,4
IG3 = INU+IG1
HCS = HCS + DIST*M6L(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(ID1,0,IG3,0,3124,26)
GOTO 9
ENDIF
HCS = HCS + DIST*M6R(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(ID1,2,IG3,0,3124,26)
GOTO 9
ENDIF
END DO
END IF
c _
c qg
ID1 = IQ1 + 6
ID2 = 13
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IG1 = 1,4
IG3 = INU+IG1
HCS = HCS + DIST*M6L(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(ID1,0,IG3,0,2314,26)
GOTO 9
ENDIF
HCS = HCS + DIST*M6R(IG1,IQ1)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(ID1,2,IG3,0,2314,26)
GOTO 9
ENDIF
END DO
END IF
END DO
c chargino
DO IQ1 = 1,3
IQ3 = IQ1*2
DO 3 IQ2 = 1,3
IF (VCKM(IQ1,IQ2).LT.EPS) GOTO 3
IQ4 = IQ2*2-1
DO IG1 = 1,2
IG3 = ICH+IG1
IG4 = ICH+IG1+2
c
c gq & qg
ID1 = 13
ID2 = IQ3
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IQ4,0,2431,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IQ4,2,2431,27)
GOTO 9
ENDIF
ID2 = IQ4
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG4,0,IQ3,0,2431,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG4,0,IQ3,2,2431,27)
GOTO 9
ENDIF
ID1 = IQ3
ID2 = 13
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ4,0,IG3,0,3124,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ4,2,IG3,0,3124,27)
GOTO 9
ENDIF
ID1 = IQ4
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ3,0,IG4,0,3124,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ3,2,IG4,0,3124,27)
GOTO 9
ENDIF
c _ _
c gq & qg
ID1 = 13
ID2 = IQ3 + 6
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG4,0,IQ4,1,4132,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG4,0,IQ4,3,4132,27)
GOTO 9
ENDIF
ID2 = IQ4 + 6
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IQ3,1,4132,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IG3,0,IQ3,3,4132,27)
GOTO 9
ENDIF
ID1 = IQ3 + 6
ID2 = 13
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ4,1,IG4,0,2314,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ3,IQ4)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ4,3,IG4,0,2314,27)
GOTO 9
ENDIF
ID1 = IQ4 + 6
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(1,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ3,1,IG3,0,2314,27)
GOTO 9
ENDIF
HCS = HCS + DISF(ID1,1)*DISF(ID2,2)*M7(2,IG1,IQ4,IQ3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ3,3,IG3,0,2314,27)
GOTO 9
ENDIF
END DO
3 CONTINUE
END DO
EVWGT = HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
C Set to zero for now
CALL HWVZRO(7,GCOEF)
END IF
END
CDECK ID>, HWHSSL.
*CMZ :- -18/05/99 20.33.45 by Kosuke Odagiri
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWHSSL
C-----------------------------------------------------------------------
C SUSY 2 PARTON -> 2 SLEPTON PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN, HWUAEM, EPS, HCS, RCS, DIST, S, PF, QPE,
& FACTR, SN2TH, MZ, MW, ME2(2,2,6,2), ME2W(2,3), EMSC2, GW2
INTEGER IQ, IQ1, IQ2, ID1, ID2, IL, IL1, IL2, I, J
EXTERNAL HWRGEN, HWUAEM
SAVE HCS, ME2, ME2W
PARAMETER (EPS = 1.D-9)
DOUBLE COMPLEX Z, GZ, A, BL, BR, CL, CR, D, E
PARAMETER (Z = (0.D0,1.D0))
EQUIVALENCE (MZ, RMASS(200)), (MW, RMASS(198))
C
S = XX(1)*XX(2)*PHEP(5,3)**2
EMSC2 = S
EMSCA = SQRT(EMSC2)
CALL HWSGEN(.FALSE.)
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
SN2TH = 0.25D0 - 0.25D0*COSTH**2
FACTR = FACTSS*HWUAEM(EMSC2)**2/CAFAC*SN2TH
GZ = (S-MZ**2+Z*S*GAMZ/MZ)/S
GW2 = ((ONE-MW**2/S)**2+(GAMW/MW)**2)*(TWO*SWEIN)**2
c _ ~ ~*
c q q -> l l
c
DO IL = 1,6
DO I = 1,2
DO J = 1,2
IF (((I.NE.J).AND.(IL.NE.5)).OR.
& ((I.EQ.2).AND.(((IL/2)*2).EQ.IL))) THEN
QPE = -1.
ELSE
ID1 = 412 + I*12 + IL
ID2 = 412 + J*12 + IL
IL1 = IL + 10
QPE = S-(RMASS(ID1)+RMASS(ID2))**2
END IF
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(S-(RMASS(ID1)-RMASS(ID2))**2))/S
DO IQ = 1,2
A = QFCH(IL1)*QFCH(IQ)
BL = LFCH(IL1)/GZ
BR = RFCH(IL1)/GZ
CL = LMIXSS(IL,1,I)*LMIXSS(IL,1,J)
CR = LMIXSS(IL,2,I)*LMIXSS(IL,2,J)
D = (A+BL*LFCH(IQ))*CL+(A+BR*LFCH(IQ))*CR
E = (A+BL*RFCH(IQ))*CL+(A+BR*RFCH(IQ))*CR
ME2(I,J,IL,IQ)=FACTR*PF**3
$ *DREAL(DCONJG(D)*D+DCONJG(E)*E)
END DO
ELSE
ME2(I,J,IL,1)=ZERO
ME2(I,J,IL,2)=ZERO
END IF
END DO
END DO
END DO
c _ ~ ~*
c q q' -> l v
c
DO IL = 1,3
DO I = 1,2
IF ((IL.NE.3).AND.(I.EQ.2)) THEN
QPE = -1.
ELSE
ID1 = 411 + IL*2 + I*12
ID2 = 424 + IL*2
QPE = S-(RMASS(ID1)+RMASS(ID2))**2
END IF
IF (QPE.GT.ZERO) THEN
PF = SQRT(QPE*(S-(RMASS(ID1)-RMASS(ID2))**2))/S
ME2W(I,IL)=FACTR*PF**3/GW2
IF (IL.EQ.3) ME2W(I,3)=ME2W(I,3)*LMIXSS(5,1,I)**2
ELSE
ME2W(I,IL)=ZERO
END IF
END DO
END DO
END IF
HCS = 0.
C
DO 1 ID1 = 1, 12
IF (DISF(ID1,1).LT.EPS) GOTO 1
IF (ID1.GT.6) THEN
ID2 = ID1 - 6
ELSE
ID2 = ID1 + 6
END IF
IQ = ID1 - ((ID1-1)/2)*2
IF (DISF(ID2,2).LT.EPS) GOTO 1
DIST = DISF(ID1,1)*DISF(ID2,2)
DO IL = 1,6
DO I = 1,2
DO J = 1,2
IL1 = IL+I*12
IL2 = IL+J*12
HCS = HCS + DIST*ME2(I,J,IL,IQ)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IL1,2,IL2,3,2134,30)
GOTO 9
ENDIF
END DO
END DO
END DO
1 CONTINUE
c _ _ _ _
c ud(+), ud(-), du(-), du(+)
DO 2 IQ1 = 1, 3
DO IQ2 = 1, 3
IF(VCKM(IQ1,IQ2).GT.EPS) THEN
c _
c ud (+)
ID1 = IQ1 * 2
ID2 = IQ2 * 2 + 5
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)
DO IL = 1,3
IL1 = IL*2-1
IL2 = IL1+1
HCS = HCS + DIST*ME2W(1,IL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IL1,5,IL2,4,2134,30)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2W(2,3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(5,7,6,4,2134,30)
GOTO 9
ENDIF
END IF
c _
c du (+)
ID1 = IQ2 * 2 + 5
ID2 = IQ1 * 2
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)
DO IL = 1,3
IL1 = IL*2-1
IL2 = IL1+1
HCS = HCS + DIST*ME2W(1,IL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IL1,5,IL2,4,2134,30)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2W(2,3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(5,7,6,4,2134,30)
GOTO 9
ENDIF
END IF
c _
c du (-)
ID1 = IQ2 * 2 - 1
ID2 = IQ1 * 2 + 6
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)
DO IL = 1,3
IL1 = IL*2-1
IL2 = IL1+1
HCS = HCS + DIST*ME2W(1,IL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IL1,4,IL2,5,2134,30)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2W(2,3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(5,6,6,5,2134,30)
GOTO 9
ENDIF
END IF
c _
c ud (-)
ID1 = IQ1 * 2 + 6
ID2 = IQ2 * 2 - 1
IF ((DISF(ID1,1).GT.EPS).AND.(DISF(ID2,2).GT.EPS)) THEN
DIST = VCKM(IQ1,IQ2)*DISF(ID1,1)*DISF(ID2,2)
DO IL = 1,3
IL1 = IL*2-1
IL2 = IL1+1
HCS = HCS + DIST*ME2W(1,IL)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IL1,4,IL2,5,2134,30)
GOTO 9
ENDIF
END DO
HCS = HCS + DIST*ME2W(2,3)
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(5,6,6,5,2134,30)
GOTO 9
ENDIF
END IF
END IF
END DO
2 CONTINUE
EVWGT = HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
C Set to zero for now
CALL HWVZRO(7,GCOEF)
END IF
END
CDECK ID>, HWHSSQ.
*CMZ :- -18/05/99 20.33.45 by Kosuke Odagiri
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWHSSQ
C-----------------------------------------------------------------------
C SUSY HARD 2 PARTON -> 2 SPARTON PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN, HWUALF, EPS, HCS, RCS, DIST, NC, NC2,
& NC2C, ML2(6), ML4(6), MR2(6), MR4(6), MG2, SM, DM, QPE,
& SQPE, FACTR, AFAC, AF, BONE, CFAC, CFC2, CFC3, CONE,
& CONN, CONT, CONU, CONL, CONR, DFAC, DONE, PF, S,
& S2, TT, TT2, TMG, TMG2, UU, UU2, UMG, UMG2,
& L, L2, TTML, UUML, R, R2, TTMR, UUMR, SN2TH
DOUBLE PRECISION
& AUSTLL(6), AUSTRR(6),
& ASTULL(6,6), ASTURR(6,6), ASTULR(6,6), ASTURL(6,6),
& AUTSLL(6,6), AUTSRR(6,6), AUTSLR(6,6), AUTSRL(6,6),
& BSTULL(6), BSTURR(6), BSTULR(6), BSTURL(6),
& BSUTLL(6), BSUTRR(6), BSUTLR(6), BSUTRL(6),
& BUTSLL(6), BUTSRR(6), BUTSLR(6), BUTSRL(6),
& BUSTLL(6), BUSTRR(6), BUSTLR(6), BUSTRL(6),
& CSTU(6), CSUT(6), CSTUL(6), CSTUR(6), CSUTL(6), CSUTR(6),
& CTSUL(6), CTSUR(6), CTUSL(6), CTUSR(6), DUTS, DTSU, DSTU
INTEGER IQ, IQ1, IQ2, ID1, ID2, ID2MIN, IGL, SSL, SSR, GLU
EXTERNAL HWRGEN, HWUALF
SAVE HCS, AUSTLL, AUSTRR, ASTULL, ASTURR, ASTULR, ASTURL,
& AUTSLL, AUTSRR, AUTSLR, AUTSRL, BSTULL, BSTURR, BSTULR,
& BSTURL, BSUTLL, BSUTRR, BSUTLR, BSUTRL, BUTSLL, BUTSRR, BUTSLR,
& BUTSRL, BUSTLL, BUSTRR, BUSTLR, BUSTRL, CSTU, CSUT, CSTUL, CSTUR,
& CSUTL, CSUTR, CTSUL, CTSUR, CTUSL, CTUSR, DUTS, DTSU, DSTU
PARAMETER (EPS = 1.D-9, IGL = 49, SSL = 400, SSR = 412, GLU = 449)
CALL HWSGEN(.FALSE.)
IF (GENEV) THEN
RCS = HCS*HWRGEN(0)
ELSE
SN2TH = 0.25D0 - 0.25D0*COSTH**2
S = XX(1)*XX(2)*PHEP(5,3)**2
FACTR = FACTSS*HWUALF(1,EMSCA)**2
NC = CAFAC
NC2 = NC**2
NC2C = ONE - ONE/NC2
AFAC = FACTR*NC2C/FOUR
CFAC = FACTR*CFFAC/FOUR
CFC2 = FACTR/CFFAC/FOUR
CFC3 = FACTR/FOUR
DFAC = FACTR/NC2C
S2 = S**2
MG2 = RMASS(GLU)**2
DO 10 IQ = 1, 6
IQ1 = SSL + IQ
IQ2 = SSR + IQ
ML2(IQ) = RMASS(IQ1)**2
ML4(IQ) = ML2(IQ)**2
MR2(IQ) = RMASS(IQ2)**2
MR4(IQ) = MR2(IQ)**2
10 CONTINUE
c gluino pair production
QPE = S - FOUR*MG2
IF (QPE.GE.ZERO) THEN
SQPE = SQRT(S*QPE)
PF = SQPE/S
TT = (SQPE*COSTH - S) / TWO
TT2 = TT**2
UU = - S - TT
UU2 = UU**2
c ~ ~
c g g -> g g
c
DONE =
& DFAC*PF/TWO*(UU2+TT2+FOUR*MG2*S*SQPE**2*SN2TH/TT/UU)/S2/TT/UU
DUTS = DONE*UU2
DTSU = DONE*TT2
DSTU = DONE*S2
c _ ~ ~
c q q -> g g
c
DO 21 IQ = 1, 6
L = ML2(IQ)-MG2
L2 = L**2
TTML = TT-L
UUML = UU-L
R = MR2(IQ)-MG2
R2 = R**2
TTMR = TT-R
UUMR = UU-R
CONE = TWO*PF**2*SN2TH
CONL = CONE/UUML/TTML
CONR = CONE/UUMR/TTMR
CONT = (UU2-L2)*CONL+(UU2-R2)*CONR+L2/TTML**2+R2/TTMR**2
CONU = (TT2-L2)*CONL+(TT2-R2)*CONR+L2/UUML**2+R2/UUMR**2
CONN = CFAC*(PF-PF/NC2/(CONT+CONU)*( S2*(CONL+CONR)+
& L2*((TT-UU)*CONL/CONE)**2+R2*((TT-UU)*CONR/CONE)**2 ))
CSTU(IQ) = CONT*CONN
CSUT(IQ) = CONU*CONN
21 CONTINUE
ELSE
DUTS = ZERO
DTSU = ZERO
DSTU = ZERO
DO 23 IQ = 1, 6
CSTU(IQ) = ZERO
CSUT(IQ) = ZERO
23 CONTINUE
END IF
c left handed squark (identical flavour) pair production
DO 22 IQ = 1, 6
QPE = S - FOUR*ML2(IQ)
IF (QPE.GE.ZERO) THEN
SQPE = SQRT(S*QPE)
PF = SQPE/S
TT = (SQPE*COSTH - S) / TWO
TT2 = TT**2
UU = - S - TT
UU2 = UU**2
c ~ ~*
c g g -> q q
c L L
CONE = CFC2*PF*((SQPE*PF*SN2TH)**2+ML4(IQ))/TT2/UU2
CONN = CONE-CONE*S2/(TT2+UU2)/NC2
CSTUL(IQ) = CONN*UU2
CSUTL(IQ) = CONN*TT2
c ~ ~
c q q -> q q
c L L
TMG = TT+ML2(IQ)-MG2
TMG2 = TMG**2
UMG = UU+ML2(IQ)-MG2
UMG2 = UMG**2
BONE = AFAC*PF*MG2*S*(HALF-TMG*UMG/(TMG2+UMG2)/NC)
BSTULL(IQ) = BONE/TMG2
BSUTLL(IQ) = BONE/UMG2
c _ ~ ~*
c q q -> q q
c L L
AF = AFAC*PF*PF**2*SN2TH
BONE = AF/TMG2-AF*S/(HALF*S2+TMG2)/TMG/NC
BUTSLL(IQ) = BONE*S2
BUSTLL(IQ) = BONE*TWO*TMG2
c _ ~ ~*
c q q -> q'q' q =/= q'
c L L
AUSTLL(IQ) = TWO*AF
ELSE
CSTUL(IQ) = ZERO
CSUTL(IQ) = ZERO
BSTULL(IQ) = ZERO
BSUTLL(IQ) = ZERO
BUTSLL(IQ) = ZERO
BUSTLL(IQ) = ZERO
AUSTLL(IQ) = ZERO
END IF
c right handed squark (identical flavour) pair production
QPE = S - FOUR*MR2(IQ)
IF (QPE.GE.ZERO) THEN
SQPE = SQRT(S*QPE)
PF = SQPE/S
TT = (SQPE*COSTH - S) / TWO
TT2 = TT**2
UU = - S - TT
UU2 = UU**2
c ~ ~*
c g g -> q q
c R R
CONE = CFC2*PF*((SQPE*PF*SN2TH)**2+MR4(IQ))/TT2/UU2
CONN = CONE-CONE*S2/(TT2+UU2)/NC2
CSTUR(IQ) = CONN*UU2
CSUTR(IQ) = CONN*TT2
c ~ ~
c q q -> q q
c R R
TMG = TT+MR2(IQ)-MG2
TMG2 = TMG**2
UMG = UU+MR2(IQ)-MG2
UMG2 = UMG**2
BONE = AFAC*PF*MG2*S*(HALF-TMG*UMG/(TMG2+UMG2)/NC)
BSTURR(IQ) = BONE/TMG2
BSUTRR(IQ) = BONE/UMG2
c _ ~ ~*
c q q -> q q
c R R
AF = AFAC*PF*PF**2*SN2TH
BONE = AF/TMG2-AF*S/(HALF*S2+TMG2)/TMG/NC
BUTSRR(IQ) = BONE*S2
BUSTRR(IQ) = BONE*TWO*TMG2
c _ ~ ~*
c q q -> q'q' q =/= q'
c R R
AUSTRR(IQ) = TWO*AF
ELSE
CSTUR(IQ) = ZERO
CSUTR(IQ) = ZERO
BSTURR(IQ) = ZERO
BSUTRR(IQ) = ZERO
BUTSRR(IQ) = ZERO
BUSTRR(IQ) = ZERO
AUSTRR(IQ) = ZERO
END IF
c left and right handed squark (identical flavour) pair production
IQ1 = SSL + IQ
IQ2 = SSR + IQ
SM = RMASS(IQ1)+RMASS(IQ2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = RMASS(IQ1)-RMASS(IQ2)
SQPE = SQRT( QPE*(S-DM**2) )
PF = SQPE/S
AF = AFAC*PF
TT = (SQPE*COSTH - S - SM*DM) / TWO
UU = - S - TT
TMG = TT + ML2(IQ) - MG2
TMG2 = TMG**2
UMG = UU + MR2(IQ) - MG2
UMG2 = UMG**2
c ~ ~
c q q -> q q
c L R
BONE = AFAC*PF*SQPE**2*SN2TH
BSTULR(IQ) = BONE/TMG2
BSUTLR(IQ) = BONE/UMG2
c _ ~ ~*
c q q -> q q
c L R
BUTSLR(IQ) = AFAC*PF*MG2*S/TMG2
BUSTLR(IQ) = ZERO
TT = (SQPE*COSTH - S + SM*DM) / TWO
UU = - S - TT
TMG = TT + MR2(IQ) - MG2
TMG2 = TMG**2
UMG = UU + ML2(IQ) - MG2
UMG2 = UMG**2
c ~ ~
c q q -> q q
c R L
c BONE = AFAC*PF*SQPE**2*SN2TH
c BSTURL(IQ) = BONE/TMG2
c BSUTRL(IQ) = BONE/UMG2
BSTURL(IQ) = ZERO
BSUTRL(IQ) = ZERO
c _ ~ ~*
c q q -> q q
c R L
BUTSRL(IQ) = AFAC*PF*MG2*S/TMG2
BUSTRL(IQ) = ZERO
ELSE
BSTULR(IQ) = ZERO
BSUTLR(IQ) = ZERO
BUTSLR(IQ) = ZERO
BUSTLR(IQ) = ZERO
BSTURL(IQ) = ZERO
BSUTRL(IQ) = ZERO
BUTSRL(IQ) = ZERO
BUSTRL(IQ) = ZERO
END IF
22 CONTINUE
c distinct flavours - gq, qq'
DO 11 ID1 = 1, 6
IQ1 = SSL + ID1
SM = RMASS(GLU)+RMASS(IQ1)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = RMASS(GLU)-RMASS(IQ1)
SQPE = SQRT( QPE*(S-DM**2) )
PF = SQPE/S
TT = (SQPE*COSTH - S - SM*DM) / TWO
TT2 = TT**2
UU = - S - TT
UU2 = UU**2
c ~ ~
c g q -> g q
c L
CONE = (-UU+TWO*SM*DM*(ONE+MG2/TT+ML2(ID1)/UU))/S/TT/UU
CONN = CFC3*PF*CONE*(ONE-TT2/(UU2+S2)/NC2)
CTSUL(ID1) = CONN*UU2
CTUSL(ID1) = CONN*S2
ELSE
CTSUL(ID1) = ZERO
CTUSL(ID1) = ZERO
END IF
IQ2 = SSR + ID1
SM = RMASS(GLU)+RMASS(IQ2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = RMASS(GLU)-RMASS(IQ2)
SQPE = SQRT( QPE*(S-DM**2) )
PF = SQPE/S
TT = (SQPE*COSTH - S - SM*DM) / TWO
TT2 = TT**2
UU = - S - TT
UU2 = UU**2
c ~ ~
c g q -> g q
c R
CONE = (-UU+TWO*SM*DM*(ONE+MG2/TT+MR2(ID1)/UU))/S/TT/UU
CONN = CFC3*PF*CONE*(ONE-TT2/(UU2+S2)/NC2)
CTSUR(ID1) = CONN*UU2
CTUSR(ID1) = CONN*S2
ELSE
CTSUR(ID1) = ZERO
CTUSR(ID1) = ZERO
END IF
IF(ID1.EQ.6) GOTO 11
ID2MIN = ID1+1
DO 12 ID2 = ID2MIN, 6
IQ1 = SSL + ID1
IQ2 = SSL + ID2
SM = RMASS(IQ1)+RMASS(IQ2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = RMASS(IQ1)-RMASS(IQ2)
SQPE = SQRT( QPE*(S-DM**2) )
PF = SQPE/S
TT = (SQPE*COSTH - S - SM*DM) / TWO
UU = - S - TT
TMG = TT+ML2(ID1)-MG2
AF = AFAC*PF/TMG/TMG
c ~ ~
c q q' -> q q'
c L L
ASTULL(ID1,ID2) = AF*MG2*S
ASTULL(ID2,ID1) = ASTULL(ID1,ID2)
c _ ~ ~*
c q q' -> q q'
c L L
AUTSLL(ID1,ID2) = AF*SQPE**2*SN2TH
AUTSLL(ID2,ID1) = AUTSLL(ID1,ID2)
ELSE
ASTULL(ID1,ID2) = ZERO
ASTULL(ID2,ID1) = ZERO
AUTSLL(ID1,ID2) = ZERO
AUTSLL(ID2,ID1) = ZERO
END IF
IQ1 = SSR + ID1
IQ2 = SSR + ID2
SM = RMASS(IQ1)+RMASS(IQ2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = RMASS(IQ1)-RMASS(IQ2)
SQPE = SQRT( QPE*(S-DM**2) )
PF = SQPE/S
TT = (SQPE*COSTH - S - SM*DM) / TWO
UU = - S - TT
TMG = TT+MR2(ID1)-MG2
AF = AFAC*PF/TMG/TMG
c ~ ~
c q q' -> q q'
c R R
ASTURR(ID1,ID2) = AF*MG2*S
ASTURR(ID2,ID1) = ASTURR(ID1,ID2)
c _ ~ ~*
c q q' -> q q'
c R R
AUTSRR(ID1,ID2) = AF*SQPE**2*SN2TH
AUTSRR(ID2,ID1) = AUTSRR(ID1,ID2)
ELSE
ASTURR(ID1,ID2) = ZERO
ASTURR(ID2,ID1) = ZERO
AUTSRR(ID1,ID2) = ZERO
AUTSRR(ID2,ID1) = ZERO
END IF
IQ1 = SSL + ID1
IQ2 = SSR + ID2
SM = RMASS(IQ1)+RMASS(IQ2)
QPE = S - SM**2
IF (QPE.GE.ZERO) THEN
DM = RMASS(IQ1)-RMASS(IQ2)
SQPE = SQRT( QPE*(S-DM**2) )
PF = SQPE/S
TT = (SQPE*COSTH - S - SM*DM) / TWO
UU = - S - TT
TMG = TT+ML2(ID1)-MG2
AF = AFAC*PF/TMG/TMG
c ~ ~
c q q' -> q q'
c L R
ASTULR(ID1,ID2) = AF*SQPE**2*SN2TH
ASTULR(ID2,ID1) = ASTULR(ID1,ID2)
c _ ~ ~*
c q q' -> q q'
c L R
AUTSLR(ID1,ID2) = AF*MG2*S
AUTSLR(ID2,ID1) = AUTSLR(ID1,ID2)
TT = (SQPE*COSTH - S + SM*DM) / TWO
UU = - S - TT
TMG = TT+MR2(ID1)-MG2
AF = AFAC*PF/TMG/TMG
c ~ ~
c q q' -> q q'
c R L
ASTURL(ID1,ID2) = AF*SQPE**2*SN2TH
ASTURL(ID2,ID1) = ASTULR(ID1,ID2)
c _ ~ ~*
c q q' -> q q'
c R L
AUTSRL(ID1,ID2) = AF*MG2*S
AUTSRL(ID2,ID1) = AUTSLR(ID1,ID2)
ELSE
ASTULR(ID1,ID2) = ZERO
ASTULR(ID2,ID1) = ZERO
AUTSLR(ID1,ID2) = ZERO
AUTSLR(ID2,ID1) = ZERO
ASTURL(ID1,ID2) = ZERO
ASTURL(ID2,ID1) = ZERO
AUTSRL(ID1,ID2) = ZERO
AUTSRL(ID2,ID1) = ZERO
END IF
12 CONTINUE
11 CONTINUE
END IF
HCS = ZERO
DO 6 ID1 = 1, 13
IF (DISF(ID1,1).LT.EPS) GOTO 6
DO 5 ID2 = 1, 13
IF (DISF(ID2,2).LT.EPS) GOTO 5
DIST = DISF(ID1,1)*DISF(ID2,2)
IF (ID1.LT.7) THEN
IQ1 = ID1
IF (ID2.LT.7) THEN
IQ2 = ID2
IF (IQ1.NE.IQ2) THEN
c ~ ~
c qq' -> q q'
HCS = HCS + ASTULL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
GOTO 9
ENDIF
HCS = HCS + ASTURR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,2,3421,10)
GOTO 9
ENDIF
HCS = HCS + ASTULR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,2,3421,10)
GOTO 9
ENDIF
HCS = HCS + ASTURL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,0,3421,10)
GOTO 9
ENDIF
ELSE
c ~ ~
c qq -> q q
HCS = HCS + BSTULL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSTURR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,2,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSTULR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,2,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSTURL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,0,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSUTLL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSUTRR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,2,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSUTLR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,2,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSUTRL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,0,4312,10)
GOTO 9
ENDIF
END IF
ELSEIF (ID2.NE.13) THEN
IQ2 = ID2-6
IF (IQ1.NE.IQ2) THEN
c _ ~ ~*
c qq' -> q q'
HCS = HCS + AUTSLL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,1,3142,10)
GOTO 9
ENDIF
HCS = HCS + AUTSRR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,3,3142,10)
GOTO 9
ENDIF
HCS = HCS + AUTSLR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,3,3142,10)
GOTO 9
ENDIF
HCS = HCS + AUTSRL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,1,3142,10)
GOTO 9
ENDIF
ELSE
c _ ~ ~*
c qq -> q'q' (q =/= q')
DO 30 IQ = 1, 6
IF (IQ .EQ.IQ1) GOTO 30
HCS = HCS + AUSTLL(IQ )*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,0,IQ ,1,2413,10)
GOTO 9
ENDIF
HCS = HCS + AUSTRR(IQ )*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,2,IQ ,3,2413,10)
GOTO 9
ENDIF
30 CONTINUE
c _ ~ ~*
c qq -> q q
HCS = HCS + BUTSLL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,1,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUTSRR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,3,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUTSLR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,3,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUTSRL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,1,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUSTLL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,1,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUSTRR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,3,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUSTLR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,3,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUSTRL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,1,2413,10)
GOTO 9
ENDIF
IQ = IGL
c _ ~ ~
c qq -> g g
HCS = HCS + CSTU(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,0,IQ ,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + CSUT(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,0,IQ ,0,2341,10)
GOTO 9
ENDIF
END IF
ELSE
IQ2 = IGL
c ~ ~
c qg -> q g
HCS = HCS + CTSUL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,3142,10)
GOTO 9
ENDIF
HCS = HCS + CTSUR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,0,3142,10)
GOTO 9
ENDIF
HCS = HCS + CTUSL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
GOTO 9
ENDIF
HCS = HCS + CTUSR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,2,IQ2,0,3421,10)
GOTO 9
ENDIF
END IF
ELSEIF (ID1.NE.13) THEN
IQ1 = ID1 - 6
IF (ID2.LT.7) THEN
IQ2 = ID2
IF (IQ1.NE.IQ2) THEN
c _ ~*~
c qq' -> q q'
HCS = HCS + AUTSLL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + AUTSRR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,2,2413,10)
GOTO 9
ENDIF
HCS = HCS + AUTSLR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,2,2413,10)
GOTO 9
ENDIF
HCS = HCS + AUTSRL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,0,2413,10)
GOTO 9
ENDIF
ELSE
c _ ~*~
c qq -> q'q' (q =/= q')
DO 31 IQ = 1, 6
IF (IQ .EQ.IQ1) GOTO 31
HCS = HCS + AUSTLL(IQ)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,1,IQ ,0,3142,10)
GOTO 9
ENDIF
HCS = HCS + AUSTRR(IQ)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,3,IQ ,2,3142,10)
GOTO 9
ENDIF
31 CONTINUE
c _ ~*~
c qq -> q q
HCS = HCS + BUTSLL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUTSRR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,2,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUTSLR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,2,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUTSRL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + BUSTLL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,0,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUSTRR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,2,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUSTLR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,2,3142,10)
GOTO 9
ENDIF
HCS = HCS + BUSTRL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,0,3142,10)
GOTO 9
ENDIF
c _ ~ ~
c qq -> g g
HCS = HCS + CSTU(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IGL,0,IGL,0,3142,10)
GOTO 9
ENDIF
HCS = HCS + CSUT(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IGL,0,IGL,0,4123,10)
GOTO 9
ENDIF
END IF
ELSEIF (ID2.NE.13) THEN
IQ2 = ID2 - 6
IF (IQ1.NE.IQ2) THEN
c __ ~*~*
c qq' -> q q'
HCS = HCS + ASTULL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,1,4312,10)
GOTO 9
ENDIF
HCS = HCS + ASTURR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,3,4312,10)
GOTO 9
ENDIF
HCS = HCS + ASTULR(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,3,4312,10)
GOTO 9
ENDIF
HCS = HCS + ASTURL(IQ1,IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,1,4312,10)
GOTO 9
ENDIF
ELSE
c __ ~*~*
c qq -> q q
HCS = HCS + BSTULL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,1,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSTURR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,3,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSTULR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,3,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSTURL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,1,4312,10)
GOTO 9
ENDIF
HCS = HCS + BSUTLL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,1,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSUTRR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,3,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSUTLR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,3,3421,10)
GOTO 9
ENDIF
HCS = HCS + BSUTRL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,1,3421,10)
GOTO 9
ENDIF
END IF
ELSE
IQ2 = IGL
c _ ~*~
c qg -> q g
HCS = HCS + CTSUL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + CTSUR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + CTUSL(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,1,IQ2,0,4312,10)
GOTO 9
ENDIF
HCS = HCS + CTUSR(IQ1)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,3,IQ2,0,4312,10)
GOTO 9
ENDIF
END IF
ELSE
IQ1 = IGL
IF (ID2.LT.7) THEN
IQ2 = ID2
c ~ ~
c gq -> g q
HCS = HCS + CTSUL(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,2413,10)
GOTO 9
ENDIF
HCS = HCS + CTSUR(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,2,2413,10)
GOTO 9
ENDIF
HCS = HCS + CTUSL(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
GOTO 9
ENDIF
HCS = HCS + CTUSR(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,2,3421,10)
GOTO 9
ENDIF
ELSEIF (ID2.LT.13) THEN
IQ2 = ID2 - 6
c _ ~ ~*
c gq -> g q
HCS = HCS + CTSUL(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,1,3142,10)
GOTO 9
ENDIF
HCS = HCS + CTSUR(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,3,3142,10)
GOTO 9
ENDIF
HCS = HCS + CTUSL(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,1,4312,10)
GOTO 9
ENDIF
HCS = HCS + CTUSR(IQ2)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,3,4312,10)
GOTO 9
ENDIF
ELSE
IQ2 = IGL
c ~ ~*
c gg -> q q
DO 32 IQ = 1, 6
HCS = HCS + CSTUL(IQ)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,0,IQ ,1,2413,10)
GOTO 9
ENDIF
HCS = HCS + CSTUR(IQ)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,2,IQ ,3,2413,10)
GOTO 9
ENDIF
HCS = HCS + CSUTL(IQ)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,0,IQ ,1,4123,10)
GOTO 9
ENDIF
HCS = HCS + CSUTR(IQ)*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ ,2,IQ ,3,4123,10)
GOTO 9
ENDIF
32 CONTINUE
c ~ ~
c gg -> g g
HCS = HCS + DTSU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,2341,10)
GOTO 9
ENDIF
HCS = HCS + DSTU*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
GOTO 9
ENDIF
HCS = HCS + DUTS*DIST
IF (GENEV.AND.HCS.GT.RCS) THEN
CALL HWHSSS(IQ1,0,IQ2,0,2413,10)
GOTO 9
ENDIF
END IF
END IF
5 CONTINUE
6 CONTINUE
EVWGT = HCS
RETURN
C---GENERATE EVENT
9 IDN(1)=ID1
IDN(2)=ID2
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
IF (AZSPIN) THEN
C Calculate coefficients for constructing spin density matrices
C Set to zero for now
CALL HWVZRO(7,GCOEF)
END IF
END
CDECK ID>, HWHSSP.
*CMZ :- -25/06/99 20.33.45 by Kosuke Odagiri
*-- Author : Kosuke Odagiri & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHSSP
C-----------------------------------------------------------------------
C SUSY HARD 2 PARTON -> 2 SPARTON/GAUGINO/SLEPTON PROCESSES
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION SAVWT(3),RANWT,HWRGEN,HWRUNI,Z1,Z2,ET,EJ,
& QPE,S,T,U,KK,KK2,YJ1INF,YJ1SUP,YJ2INF,YJ2SUP,SVEMSC
INTEGER ISP
EXTERNAL HWRGEN,HWRUNI
SAVE SAVWT,SVEMSC
IF (.NOT.GENEV) THEN
EVWGT=ZERO
CALL HWRPOW(ET,EJ)
KK = ET/PHEP(5,3)
KK2=KK**2
IF (KK.GE.ONE) RETURN
YJ1INF = MAX( YJMIN, LOG((ONE-SQRT(ONE-KK2))/KK) )
YJ1SUP = MIN( YJMAX, LOG((ONE+SQRT(ONE-KK2))/KK) )
IF (YJ1INF.GE.YJ1SUP) RETURN
Z1=EXP(HWRUNI(1,YJ1INF,YJ1SUP))
YJ2INF = MAX( YJMIN, -LOG(TWO/KK-ONE/Z1) )
YJ2SUP = MIN( YJMAX, LOG(TWO/KK-Z1) )
IF (YJ2INF.GE.YJ2SUP) RETURN
Z2=EXP(HWRUNI(2,YJ2INF,YJ2SUP))
XX(1)=HALF*(Z1+Z2)*KK
IF (XX(1).GE.ONE) RETURN
XX(2)=XX(1)/(Z1*Z2)
IF (XX(2).GE.ONE) RETURN
S=XX(1)*XX(2)*PHEP(5,3)**2
QPE=S-(TWO*RMMNSS)**2
IF (QPE.LE.ZERO) RETURN
COSTH=HALF*ET*(Z1-Z2)/SQRT(Z1*Z2*QPE)
IF (ABS(COSTH).GT.ONE) RETURN
T=-(ONE+Z2/Z1)*(HALF*ET)**2
U=-S-T
C---SET EMSCA TO HEAVY HARD PROCESS SCALE
SVEMSC = SQRT(TWO*S*T*U/(S*S+T*T+U*U))
FACTSS = GEV2NB*HALF*PIFAC*EJ*ET/S**2
& * (YJ1SUP-YJ1INF)*(YJ2SUP-YJ2INF)
& * SQRT(S/QPE)
ENDIF
EMSCA=SVEMSC
ISP=MOD(IPROC,100)
IF (ISP.EQ.0) THEN
IF (GENEV) THEN
RANWT=SAVWT(3)*HWRGEN(0)
IF (RANWT.LT.SAVWT(1)) THEN
CALL HWHSSQ
ELSEIF (RANWT.LT.SAVWT(2)) THEN
CALL HWHSSG
ELSE
CALL HWHSSL
ENDIF
ELSE
CALL HWHSSQ
SAVWT(1)=EVWGT
CALL HWHSSG
SAVWT(2)=SAVWT(1)+EVWGT
CALL HWHSSL
SAVWT(3)=SAVWT(2)+EVWGT
EVWGT=SAVWT(3)
ENDIF
ELSEIF (ISP.EQ.10) THEN
CALL HWHSSQ
ELSEIF (ISP.EQ.20) THEN
CALL HWHSSG
ELSEIF (ISP.EQ.30) THEN
CALL HWHSSL
ELSE
C---UNRECOGNIZED PROCESS
CALL HWWARN('HWHSSP',500)
ENDIF
END
CDECK ID>, HWHSSS.
*CMZ :- -18/05/99 20.33.45 by Kosuke Odagiri
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWHSSS(ID3,R3,ID4,R4,IPERM,IHPR)
C-----------------------------------------------------------------------
C IDENTIFIES HARD SUSY SUBPROCESS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID3, R3, ID4, R4, IPERM, IHPR, SSL
PARAMETER (SSL = 400)
IHPRO = 3000 + IHPR
IDN(3) = SSL + ID3 + R3*6
IDN(4) = SSL + ID4 + R4*6
ICO(1) = IPERM/1000
ICO(2) = IPERM/100 - 10*ICO(1)
ICO(3) = IPERM/10 - 10*(IPERM/100)
ICO(4) = IPERM - 10*(IPERM/10)
END
CDECK ID>, HWHV1J.
*CMZ :- -18/05/99 14.37.45 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHV1J
C-----------------------------------------------------------------------
C V + 1 JET PRODUCTION, WHERE V=W (IHPRO.LT.5) OR Z (IHPRO.GE.5).
C USES CROSS-SECTIONS OF EHLQ FOR ANNIHILATION AND COMPTON SCATTERING
C IHPRO=0 FOR BOTH, 1 FOR ANNIHILATION, AND 2 FOR COMPTON.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,DISFAC(2,12,2),EMV2,DISMAX,S,T,U,
& SHAT,THAT,UHAT,Z,HWUALF,PT,EMT,GFACTR,SIGANN,SIGCOM(2),CSFAC,ET,
& EJ,YMIN,YMAX,VYMIN,VYMAX,EMAX,CV,CA,BR,EMV,GAMV,HWUAEM,TMIN,TMAX
INTEGER HWRINT,IDINIT(2,12,2),ICOFLO(4,2),I,J,K,L,M,ID1,ID2,
$ IDV,IDI,IDM
EXTERNAL HWRINT
SAVE DISFAC,SHAT,THAT,EMV,EMV2,IDV,IDI
SAVE IDINIT,ICOFLO
C---IDINIT HOLDS THE INITIAL STATES FOR ANNIHILATION PROCESSES
DATA IDINIT/1,8,2,7,3,10,4,9,5,12,6,11,1,10,2,9,3,8,4,7,5,12,6,11,
$ 1,7,2,8,3,9,4,10,5,11,6,12,1,7,2,8,3,9,4,10,5,11,6,12/
C---ICOFLO HOLDS THE COLOR FLOW FOR EACH PROCESS
C---DISFAC HOLDS THE DISTRIBUTION FUNCTION*CROSS-SECTION FOR EACH
C POSSIBLE SUB-PROCESS.
C INDEX1=INITIAL STATE PERMUTATION (1=AS IDINIT/QG;2=OPPOSITE/GQ),
C 2=QUARK (FOR ANNIHILATION, >6 IMPLIES CABIBBO ROTATED PAIR),
C 3=PROCESS (1=ANNIHILATION, 2=COMPTON)
DATA ICOFLO,DISFAC/2,4,3,1,4,1,3,2,48*0.D0/
IF (GENEV) THEN
DISMAX=0
DO 110 I=1,2
DO 110 J=1,12
DO 110 K=1,2
110 DISMAX=MAX(DISFAC(K,J,I),DISMAX)
120 I=HWRINT(1,2)
J=HWRINT(1,12)
K=HWRINT(1,2)
IF (HWRGEN(0)*DISMAX.GT.DISFAC(K,J,I)) GOTO 120
IF (I.EQ.1) THEN
C---ANNIHILATION
IDN(1)=IDINIT(K,J,IDI)
IDN(2)=IDINIT(3-K,J,IDI)
IDN(4)=13
ELSE
C---COMPTON SCATTERING
IDN(1)=J
IDN(2)=13
IF (IDV.EQ.200) THEN
IDN(4)=J
ELSE
IF (J.EQ.5.OR.J.EQ.6.OR.J.GE.11.OR.HWRGEN(0).GT.SCABI) THEN
C---CHANGE QUARKS (1->2,2->1,3->4,4->3,...)
IDN(4)=4*INT((J-1)/2)-J+3
ELSE
C---CHANGE AND CABIBBO ROTATE QUARKS (1->4,2->3,3->2,...)
IDN(4)=12*INT((J-1)/6)-J+5
ENDIF
ENDIF
IF ((SQRT(EMV2)+RMASS(IDN(4)))**2.GT.SHAT) GOTO 120
IF (K.EQ.2) THEN
C---SWAP INITIAL STATES
IDN(3)=IDN(1)
IDN(1)=IDN(2)
IDN(2)=IDN(3)
ENDIF
ENDIF
IF (IDV.EQ.200) THEN
IDN(3)=200
ELSE
C---W+ OR W-? USE CHARGE CONSERVATION TO WORK OUT
IDN(3)=NINT(198.5-.1667*FLOAT(ICHRG(IDN(1))+ICHRG(IDN(2))))
ENDIF
M=K
IF (I.EQ.2.AND.J.LE.6) M=3-K
DO 130 L=1,4
130 ICO(L)=ICOFLO(L,M)
IDCMF=15
COSTH=(SHAT+2*THAT-EMV2)/(SHAT-EMV2)
C---TRICK HWETWO INTO USING THE OFF-SHELL V MASS
RMASS(IDN(3))=SQRT(EMV2)
C-- BRW fix 27/8/04: avoid double smearing of V mass
CALL HWETWO(.FALSE.,.TRUE.)
RMASS(IDN(3))=EMV
RHOHEP(1,NHEP-1)=0.5
RHOHEP(2,NHEP-1)=0.0
RHOHEP(3,NHEP-1)=0.5
ELSE
EVWGT=0.
IHPRO=MOD(IPROC,100)/10
IF (IHPRO.LT.5) THEN
IDV=198
IDI=1
IDM=10
GAMV=GAMW
ELSE
IDV=200
IDI=2
IDM=6
GAMV=GAMZ
IHPRO=IHPRO-5
ENDIF
EMV=RMASS(IDV)
c---mhs---implement cut on number of widths from nominal mass
TMIN=-ATAN(2*GAMMAX-GAMV*GAMMAX**2/EMV)
TMAX=ATAN(2*GAMMAX+GAMV*GAMMAX**2/EMV)
EMV2=EMV*(EMV+GAMV*TAN(HWRUNI(0,TMIN,TMAX)))
IF (EMV2.LE.ZERO) RETURN
CALL HWRPOW(ET,EJ)
PT=0.5*ET
EMT=SQRT(PT**2+EMV2)
EMAX=0.5*(PHEP(5,3)+EMV2/PHEP(5,3))
IF (EMAX.LE.EMT) RETURN
VYMAX=0.5*LOG((EMAX+SQRT(EMAX**2-EMT**2))
& /(EMAX-SQRT(EMAX**2-EMT**2)))
VYMIN=-VYMAX
IF (VYMAX.LE.VYMIN) RETURN
Z=EXP(HWRUNI(0,VYMIN,VYMAX))
S= PHEP(5,3)**2
T=-PHEP(5,3)*EMT/Z+EMV2
U=-PHEP(5,3)*EMT*Z+EMV2
XXMIN=-U/(S+T-EMV2)
IF (XXMIN.LT.ZERO.OR.XXMIN.GT.ONE) RETURN
YMIN=MAX(LOG((XXMIN*PHEP(5,3)-EMT*Z)/PT),YJMIN)
YMAX=MIN(LOG((PHEP(5,3)-EMT*Z)/PT),YJMAX)
IF (YMAX.LE.YMIN) RETURN
XX(1)=(Z*EMT+EXP(HWRUNI(2,YMIN,YMAX))*PT)/PHEP(5,3)
IF (XX(1).LE.ZERO.OR.XX(1).GT.ONE) RETURN
THAT =XX(1)*T+(1.-XX(1))*EMV2
XX(2)=-THAT / (XX(1)*S+U-EMV2)
IF (XX(2).LT.ZERO.OR.XX(2).GT.ONE) RETURN
UHAT =XX(2)*U+(1.-XX(2))*EMV2
SHAT =XX(1)*XX(2)*S
EMSCA=EMT
CALL HWSGEN(.FALSE.)
c---mhs minor improvement: replace thomson coupling by running coupling
c---mhs bug fix: missing factor of m^2/m0^2, where m0 is nominal mass
GFACTR=GEV2NB*2.*PIFAC*HWUAEM(EMV2)*HWUALF(1,EMSCA)/(9.*SWEIN)
$ *EMV2/EMV**2
SIGANN=GFACTR*((THAT-EMV2)**2+(UHAT-EMV2)**2)
& /(SHAT**2*THAT*UHAT)
SIGCOM(2)=.375*GFACTR*(SHAT**2+UHAT**2+2*EMV2*THAT)
& /(-UHAT*SHAT**3)
SIGCOM(1)=.375*GFACTR*(SHAT**2+THAT**2+2*EMV2*UHAT)
& /(-THAT*SHAT**3)
C---IF USER SPECIFIED A SUB-PROCESS, ZERO THE OTHER
IF (IHPRO.EQ.1) THEN
SIGCOM(1)=0.
SIGCOM(2)=0.
ENDIF
IF (IHPRO.EQ.2) SIGANN=0.
DO 210 I=1,IDM
IF (IDV.EQ.200) THEN
J=I
IF(I.GT.6) J=I-6
DISFAC(1,I,1)=4*SWEIN*(VFCH(J,1)**2+AFCH(J,1)**2)
ELSE
IF (I.LE.4) THEN
DISFAC(1,I,1)=1-SCABI
ELSEIF (I.GE.7) THEN
DISFAC(1,I,1)=SCABI
ELSE
DISFAC(1,I,1)=1.
ENDIF
ENDIF
DISFAC(2,I,1)=DISFAC(1,I,1) *
& SIGANN*DISF(IDINIT(1,I,IDI),2)*DISF(IDINIT(2,I,IDI),1)
DISFAC(1,I,1)=DISFAC(1,I,1) *
& SIGANN*DISF(IDINIT(1,I,IDI),1)*DISF(IDINIT(2,I,IDI),2)
210 CONTINUE
DO 211 I=IDM+1,12
DISFAC(1,I,1)=0
DISFAC(2,I,1)=0
211 CONTINUE
DO 220 I=1,12
IF (IDV.EQ.200) THEN
J=I
IF(I.GT.6) J=I-6
DISFAC(1,I,2)=4*SWEIN*(VFCH(J,1)**2+AFCH(J,1)**2)
ELSE
DISFAC(1,I,2)=1.
c---mhs fix: switch off bg->Wt process since we neglect quark masses!
IF (I.EQ.5.OR.I.EQ.11) DISFAC(1,I,2)=0
ENDIF
DISFAC(2,I,2)=DISFAC(1,I,2)*SIGCOM(2)*DISF(I,2)*DISF(13,1)
DISFAC(1,I,2)=DISFAC(1,I,2)*SIGCOM(1)*DISF(I,1)*DISF(13,2)
220 CONTINUE
DO 230 I=1,2
DO 230 J=1,12
DO 230 K=1,2
230 EVWGT=EVWGT+DISFAC(K,J,I)
CSFAC=PT*EJ*(YMAX-YMIN)*(VYMAX-VYMIN)*(TMAX-TMIN)/PIFAC
C---INCLUDE BRANCHING RATIO OF V
CALL HWDBOZ(IDV,ID1,ID2,CV,CA,BR,0)
EVWGT=EVWGT*CSFAC*BR
ENDIF
END
CDECK ID>, HWHV2J.
*CMZ :- -14/03/01 09:03:25 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWHV2J
C-----------------------------------------------------------------------
C Vector Boson production with two hard jets
C Master subroutine for all vector boson + 2 jet processes
C Currently implemented qqbar Z only
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,IDBS,IPRC,IDP(6),ORD,IB,ICMF,IHEP,IFLOW,IZ,IBRAD,
& ICOL(5),IDZ,IQ
DOUBLE PRECISION HWRGEN,HWRUNI,XMASS,PLAB,PRW,PCM,HWUAEM,BR,FLUX,
& MBOS,MBOS2,ME,DT(4),B(6),HWUPCM,CV,CA,PST,HWUALF,GMBS,FPI4,
& MQ(3),MQ2(3),MJAC,BRZED(12),PTP(5,2),PDOT(2),HWULDO,TWOPI2,
& AMP,WI(IMAXCH)
DOUBLE COMPLEX S,D,F
LOGICAL FSTCLL,MASS,GEN
EXTERNAL HWRGEN,HWRUNI,HWUPCM,HWUALF,HWUAEM,HWULDO
COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
COMMON/HWHEWS/S(8,8,2),D(8,8)
COMMON/HWHZBB/F(8,8)
COMMON /HWPSOM/ WI
SAVE ME,MBOS,MBOS2,GMBS,IDBS,IPRC,IDP,FSTCLL,MQ,MQ2,TWOPI2,FPI4,
& IQ,MASS
SAVE B,BRZED
DATA B/-1.0D0,-1.0D0,1.0D0,1.0D0,1.0D0,1.0D0/
DATA BRZED/0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
& 0.033D0,0.067D0,0.033D0,0.067D0,0.033D0,0.067D0/
C--generate the event
IF(GENEV) THEN
C--find the particles produced
IF(IPRC.EQ.0) THEN
WRITE(*,1000)
STOP
ELSEIF(IPRC.GT.0.AND.IPRC.LE.16) THEN
CALL HWHDYQ(FSTCLL,ME,IFLOW,IDP,ORD,IQ,MASS)
ELSE
CALL HWWARN('HWHV2J',502)
ENDIF
IF(ORD.EQ.2) THEN
IB = IDP(1)
IDP(1) = IDP(2)
IDP(2) = IB
PRW(3,1) = -PRW(3,1)
DO I=3,6
PLAB(3,I)=-PLAB(3,I)
ENDDO
ENDIF
C--enter the incoming particles
ICMF = NHEP+3
DO I=1,2
IHEP = NHEP+I
CALL HWVEQU(5,PLAB(1,I),PHEP(1,IHEP))
IDHW(IHEP) = IDP(I)
IDHEP(IHEP)= IDPDG(IDP(I))
ISTHEP(IHEP)=110+I
JMOHEP(1,IHEP)=ICMF
JMOHEP(I,ICMF)=IHEP
JDAHEP(1,IHEP)=ICMF
ENDDO
IDHW(ICMF)=15
IDHEP(ICMF)=IDPDG(15)
ISTHEP(ICMF)=110
CALL HWVSUM(4,PHEP(1,NHEP+1),PHEP(1,NHEP+2),PHEP(1,ICMF))
CALL HWUMAS(PHEP(1,ICMF))
JDAHEP(1,ICMF) = ICMF+1
JDAHEP(2,ICMF) = ICMF+3
NHEP = NHEP+3
C--Now the outgoing jets
DO 10 I=1,2
CALL HWVEQU(5,PLAB(1,2+I),PHEP(1,NHEP+I))
C--Set the status and pointers
ISTHEP(NHEP+I)=113
IDHW(NHEP+I)=IDP(2+I)
IDHEP(NHEP+I)=IDPDG(IDP(2+I))
JMOHEP(1,NHEP+I)=NHEP
10 CONTINUE
NHEP=NHEP+2
C--Now sort out the colour connections
ICOL(1)=IFLOW/1000
ICOL(2)=IFLOW/100-10*ICOL(1)
ICOL(3)=IFLOW/10 -10*(IFLOW/100)
ICOL(4)=IFLOW -10*(IFLOW/10)
DO 30 I=1,4
J=I
IF (J.GT.2) J=J+1
K=ICOL(I)
IF (K.GT.2) K=K+1
JMOHEP(2,NHEP-5+J)=NHEP+K-5
30 JDAHEP(2,NHEP-5+K)=NHEP+J-5
C--Now add the Z to the event record
CALL HWVEQU(5,PRW(1,1),PHEP(1,NHEP+1))
CALL HWVZRO(4,VHEP(1,NHEP+1))
CALL HWUDKL(200,PHEP(1,NHEP+1),DT)
CALL HWVSUM(4,VHEP(1,NHEP+1),DT,DT)
IDHW(NHEP+1)=IDBS
IDHEP(NHEP+1)=IDPDG(IDBS)
JMOHEP(1,NHEP+1)=ICMF
JMOHEP(2,NHEP+1)=ICMF
ISTHEP(NHEP+1)=114
NHEP = NHEP+1
IBRAD = NHEP
C--generate the inital-state shower
CALL HWBGEN
C--now add the decay products of the Z
IZ = JDAHEP(1,IBRAD)
ISTHEP(IZ) = 195
JDAHEP(1,IZ) = NHEP+1
JDAHEP(2,IZ) = NHEP+2
IDHW(NHEP+1) = IDP(5)
IDHW(NHEP+2) = IDP(6)
ISTHEP(NHEP+1) = 113
ISTHEP(NHEP+2) = 114
IDHEP(NHEP+1) = IDPDG(IDP(5))
IDHEP(NHEP+2) = IDPDG(IDP(6))
JMOHEP(1,NHEP+1) = IZ
JMOHEP(1,NHEP+2) = IZ
JMOHEP(2,NHEP+1) = NHEP+2
JDAHEP(2,NHEP+1) = NHEP+2
JMOHEP(2,NHEP+2) = NHEP+1
JDAHEP(2,NHEP+2) = NHEP+1
CALL HWVEQU(5,PLAB(1,5),PHEP(1,NHEP+1))
CALL HWVEQU(5,PLAB(1,6),PHEP(1,NHEP+2))
DO IHEP=NHEP+1,NHEP+2
CALL HWVEQU(4,DT,VHEP(1,IHEP))
C--Boost the fermion momenta to the rest frame of the original Z
CALL HWULOF(PRW(1,1),PHEP(1,IHEP),PHEP(1,IHEP))
C--Now boost back to the lab from rest frame of the Z after radiation
CALL HWULOB(PHEP(1,IZ),PHEP(1,IHEP),PHEP(1,IHEP))
ENDDO
NHEP = NHEP+2
ELSE
C--initialisation
IF(FSTWGT) THEN
C--for second option minimum invariant mass of the jet pair
C--set the type of events to be generated
TWOPI2= FOUR*PIFAC**2
FPI4 = (FOUR*PIFAC)**4
IPRC = MOD(IPROC,100)
IF(IPRC.GE.0.AND.IPRC.LE.16) THEN
C--Z + 2 jets
MBOS = RMASS(200)
MBOS2 = MBOS**2
GMBS = MBOS2*GAMZ**2
IDBS = 200
MQ(1) = ZERO
MQ(2) = ZERO
IF(IPRC.EQ.0) THEN
IQ = 0
ELSEIF(IPRC.GT.0.AND.IPRC.LE.6) THEN
IQ = IPRC
IF(MJJMIN.LT.TWO*RMASS(IQ)) MJJMIN = TWO*RMASS(IQ)
ELSEIF(IPRC.GE.11.AND.IPRC.LE.16) THEN
MASS = .TRUE.
IQ = IPRC-10
MQ(1) = RMASS(IQ)
MQ(2) = RMASS(IQ)
IF(MJJMIN.LT.(MQ(1)+MQ(2))) MJJMIN = MQ(1)+MQ(2)
ELSE
CALL HWWARN('HWHV2J',500)
ENDIF
DO I=1,2
MQ2(I) = MQ(I)**2
ENDDO
ELSE
CALL HWWARN('HWHV2J',503)
ENDIF
FSTCLL = .TRUE.
ENDIF
C--generate the weight
EVWGT = ZERO
C--find the mass of the gauge boson
CALL HWHGB1(1,2,IDBS,MJAC,MQ2(3),(PHEP(5,3)-MQ(1)-MQ(2))**2,
& EMMIN**2)
MQ(3) = SQRT(MQ2(3))
MJAC = MJAC/((MQ2(3)-MBOS2)**2+GMBS)
C--do the phase space
CALL HWH2PS(FLUX,GEN,MQ,MQ2)
AMP = ONE
IF(.NOT.GEN) RETURN
C--copy the gauge boson momentum
CALL HWVEQU(5,PLAB(1,5),PRW(1,1))
C--select the decay mode of the boson
CALL HWDBOZ(IDBS,IDP(5),IDP(6),CV,CA,BR,0)
IDZ = IDP(5)
IF(IDZ.GT.6) IDZ = IDZ-114
BR = BR/BRZED(IDZ)
IF(IDZ.LE.6) AMP = AMP*THREE
C--Finds the momenta of the boson decay products
PST=HWUPCM(PRW(5,1),ZERO,ZERO)
PLAB(5,5)=ZERO
PLAB(5,6)=ZERO
IF(PRW(5,1).LT.(RMASS(IDP(5))+RMASS(IDP(6)))) RETURN
CALL HWDTWO(PRW(1,1),PLAB(1,5),PLAB(1,6),PST,TWO,.FALSE.)
MJAC = HALF*PST*MJAC/TWOPI2/MQ(3)
C--copy the momenta, change order and boost to CMF
PTP(1,1) = ZERO
PTP(2,1) = ZERO
PTP(3,1) = HALF*(XX(1)-XX(2))*PHEP(5,3)
PTP(4,1) = HALF*(XX(1)+XX(2))*PHEP(5,3)
PTP(5,1) = PHEP(5,3)*SQRT(XX(1)*XX(2))
DO I=1,6
CALL HWULOF(PTP(1,1),PLAB(1,I),PTP(1,2))
PCM(1,I)=PTP(3,2)
PCM(2,I)=PTP(1,2)
PCM(3,I)=PTP(2,2)
PCM(4,I)=PTP(4,2)
ENDDO
IF(MASS) THEN
C--Massive momentum case
C--reorder the products
C--move b and bbar to 9 and 10
DO I=3,4
DO J=1,5
PCM(J,I+6) = PCM(J,I)
ENDDO
ENDDO
C--select the reference momenta for the b and bbar and put in 3,4
C--the results is independent of this choice
CALL HWVEQU(5,PCM(1,1),PCM(1,3))
CALL HWVEQU(5,PCM(1,1),PCM(1,4))
C--find the massless vectors for the b and bbar
PDOT(1) = HALF*MQ2(1)/HWULDO(PCM(1,3),PCM(1, 9))
PDOT(2) = HALF*MQ2(2)/HWULDO(PCM(1,4),PCM(1,10))
DO I=1,4
PCM(I,7) = PCM(I,9) -PDOT(1)*PCM(I,3)
PCM(I,8) = PCM(I,10)-PDOT(2)*PCM(I,4)
ENDDO
PCM(5,7) = ZERO
PCM(5,8) = ZERO
C--use e+e- code to calculate the spinor products
CALL HWHEW2(8,PCM(1,1),S(1,1,2),S(1,1,1),D)
DO I=1,8
DO J=1,8
S(I,J,2) = -S(I,J,2)
D(I,J) = TWO*D(I,J)
ENDDO
ENDDO
ELSE
C--Massless case, use the e+e- code to calculate the spinor products
CALL HWHEW2(6,PCM(1,1),S(1,1,2),S(1,1,1),D)
DO I=1,6
DO J=1,6
D(I,J) = TWO*D(I,J)
F(I,J) = B(I)*B(J)*D(I,J)
S(I,J,2) = -S(I,J,2)
ENDDO
ENDDO
ENDIF
C--now call the code to calculate the matrix element*PDF
IF(IPRC.EQ.0) THEN
WRITE(*,1000)
STOP
ELSEIF(IPRC.GT.0.AND.IPRC.LE.16) THEN
CALL HWHDYQ(FSTCLL,ME,IFLOW,IDP,ORD,IQ,MASS)
ELSE
CALL HWWARN('HWHV2J',501)
GOTO 999
ENDIF
AMP = AMP*MJAC*BR*FPI4*HWUAEM(EMSCA**2)**2*HWUALF(1,EMSCA)**2
EVWGT = FLUX*ME*AMP
IF(OPTM) THEN
DO I=1,IMAXCH
IF(CHON(I)) WI(I) = WI(I)*ME**2*AMP**2
ENDDO
ENDIF
ENDIF
RETURN
1000 FORMAT('DRELL-YAN + 2 JETS NOT YET IMPLEMENTED')
999 RETURN
END
CDECK ID>, HWHVVJ.
*CMZ :- -11/05/01 09.19.45 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHVVJ
C-----------------------------------------------------------------------
C VV + 1 JET PRODUCTION, WHERE VV=WW,ZZ,WZ FOR IPROC=2850,2860,2870
C-----------------------------------------------------------------------
IMPLICIT NONE
PRINT *,' VV + 1 JET CALLED BUT NOT YET IMPLEMENTED'
CALL HWWARN('HWHVVJ',500)
END
CDECK ID>, HWHWEX.
*CMZ :- -26/04/91 14.55.45 by Federico Carminati
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWHWEX
C-----------------------------------------------------------------------
C TOP QUARK PRODUCTION VIA W EXCHANGE: MEAN EVWGT=TOP PROD C-S IN NB
C C-S IS SUM OF:
C UbarBbar, DBbar, DbarB, UB, CbarBbar, SBbar, SbarB, AND CB
C UNLESS USER SPECIFIES OTHERWISE BY MOD(IPROC,100)=1-8 RESPECTIVELY
C---DSDCOS HOLDS THE CROSS-SECTIONS FOR THE PROCESSES LISTED ABOVE
C (1-8) ARE WITH B FROM BEAM 1, (9-16) ARE WITH B FROM BEAM 2.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,DSDCOS(16),EMT2,EMT,EMW2,EMW,
& CMFMIN,TAUMIN,TAUMLN,S,T,U,ROOTS,DSMAX
INTEGER HWRINT,IDHWEX(2,16),I
EXTERNAL HWRGEN,HWRUNI,HWRINT
SAVE DSDCOS,DSMAX
EQUIVALENCE (EMW,RMASS(198)),(EMT,RMASS(6))
C---IDHWEX HOLDS THE IDs OF THE INCOMING PARTICLES FOR EACH SUB-PROCESS
SAVE IDHWEX
DATA IDHWEX/11,8,11,1,5,7,5,2,11,10,11,3,5,9,5,4,
& 8,11,1,11,7,5,2,5,10,11,3,11,9,5,4,5/
EMT2=EMT**2
EMW2=EMW**2
IF (GENEV) THEN
300 IHPRO=HWRINT(1,16)
IF (HWRGEN(0).GT.DSDCOS(IHPRO)/DSMAX) GOTO 300
DO 10 I=1,2
IDN(I)=IDHWEX(I,IHPRO)
IF (IDN(I).EQ.5 .OR. IDN(I).EQ.11) THEN
C---CHANGE B QUARK INTO T QUARK
IDN(I+2)=IDN(I)+1
ELSEIF (HWRGEN(0).GT.SCABI) THEN
C---CHANGE QUARKS (1->2,2->1,3->4,4->3,7->8,8->7,...)
IDN(I+2)=4*INT((IDN(I)-1)/2)-IDN(I)+3
ELSE
C---CHANGE AND CABIBBO ROTATE QUARKS (1->4,2->3,3->2,4->1,7->10,...)
IDN(I+2)=12*INT((IDN(I)-1)/6)-IDN(I)+5
ENDIF
ICO(I)=I+2
ICO(I+2)=I
10 CONTINUE
IDCMF=15
CALL HWETWO(.TRUE.,.TRUE.)
ELSE
EVWGT=0.
CMFMIN=EMT
TAUMIN=(CMFMIN/PHEP(5,3))**2
TAUMLN=LOG(TAUMIN)
ROOTS=PHEP(5,3)*SQRT(EXP(HWRUNI(0,ZERO,TAUMLN)))
XXMIN=(ROOTS/PHEP(5,3))**2
XLMIN=LOG(XXMIN)
COSTH=HWRUNI(0,-ONE, ONE)
S=ROOTS**2
T=-0.5*S*(1-COSTH)
U=-0.5*S*(1+COSTH)
EMSCA=SQRT(2*S*T*U/(S*S+T*T+U*U))
DSDCOS(1)=GEV2NB*PIFAC*.125*(ALPHEM/SWEIN)**2
& *(S-EMT2)**2 / S / (EMW2 + 0.5*(S-EMT2)*(1-COSTH))**2
DSDCOS(2)=DSDCOS(1) / 4
& * (1 + EMT2/S + 2*COSTH + (1-EMT2/S)*COSTH**2)
DSDCOS(3)=DSDCOS(2)
DSDCOS(4)=DSDCOS(1)
C---IF USER SPECIFIED SUB-PROCESS THEN ZERO ALL THE OTHERS
IHPRO=MOD(IPROC,100)
IF (IHPRO.GT.8) THEN
CALL HWWARN('HWHWEX',1)
IHPRO=0
ENDIF
DO 100 I=1,8
IF (I.LE.4) DSDCOS(I+4)=DSDCOS(I)
IF (IHPRO.NE.0 .AND. IHPRO.NE.I) DSDCOS(I)=0
DSDCOS(I+8)=DSDCOS(I)
100 CONTINUE
CALL HWSGEN(.TRUE.)
DSMAX=0
DO 200 I=1,16
DSDCOS(I)=DSDCOS(I)*DISF(IDHWEX(1,I),1)*DISF(IDHWEX(2,I),2)
EVWGT=EVWGT + 2*TAUMLN*XLMIN*DSDCOS(I)
IF (DSDCOS(I).GT.DSMAX) DSMAX=DSDCOS(I)
200 CONTINUE
ENDIF
END
CDECK ID>, HWHWPR.
*CMZ :- -18/05/99 14.22.13 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWHWPR
C-----------------------------------------------------------------------
C W+/- PRODUCTION AND DECAY VIA DRELL-YAN PROCESS
C MEAN EVWGT IS SIG(W+/-)*(BRANCHING FRACTION) IN NB
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRUNI,HWUPCM,PRAN,PROB,COEF,CSFAC,EMW,
& FTQK,PTOP,ETOP,EBOT,PMAX,FHAD,FTOT,BRAF,FLEP,TMIN,HWUAEM,TMAX
INTEGER HWRINT,ICH,IC,IL,ID,IDEC,JDEC,IWP(2,16)
LOGICAL HWRLOG
EXTERNAL HWRGEN,HWRUNI,HWUPCM,HWRINT,HWRLOG
SAVE CSFAC,IDEC,FLEP,FTQK,ETOP,PTOP,EBOT,PMAX,PROB
SAVE IWP
DATA IWP/2,7,1,8,7,2,8,1,4,9,3,10,9,4,10,3,
& 2,9,3,8,9,2,8,3,4,7,1,10,7,4,10,1/
IF (GENEV) THEN
C---GENERATE EVENT (X'S AND STRUCTURE FUNCTIONS ALREADY FOUND)
PRAN=PROB*HWRGEN(0)
C---LOOP OVER PARTON FLAVOURS
PROB=0.
COEF=1.-SCABI
DO 10 IC=1,16
IF (IC.EQ.9) COEF=SCABI
PROB=PROB+DISF(IWP(1,IC),1)*DISF(IWP(2,IC),2)*COEF
IF (PROB.GE.PRAN) GOTO 20
10 CONTINUE
C---STORE INCOMING PARTONS
20 IDN(1)=IWP(1,IC)
IDN(2)=IWP(2,IC)
ICO(1)=2
ICO(2)=1
C---ICH=1/2 FOR W+/-
ICH=2-MOD(IC,2)
IF ((IDEC.GT.49.AND.IDEC.LT.54).OR.
& (IDEC.EQ.99.AND.HWRLOG(FLEP))) THEN
C---LEPTONIC DECAY
IL=IDEC-50
IF (IL.EQ.0.OR.IL.GT.3) IL=HWRINT(1,3)
IDN(3)=2*IL+121-ICH
IDN(4)=2*IL+124+ICH
C---W DECAY ANGLE (1+COSTH)**2
COSTH=2.*HWRGEN(1)**0.3333-1.
ELSEIF (IDEC.EQ.5.OR.IDEC.EQ.6.OR.
& ((IDEC.EQ.0.OR.IDEC.EQ.99).AND.HWRLOG(FTQK))) THEN
C---W -> TOP + BOTTOM DECAY
IDN(3)=7-ICH
IDN(4)=10+ICH
21 COSTH=HWRUNI(1,-ONE, ONE)
IF ((ETOP+(PTOP*COSTH))*(EBOT+(PTOP*COSTH)).LT.
& PMAX*HWRGEN(1)) GOTO 21
ELSE
C---OTHER HADRONIC DECAY
25 PROB=0.
PRAN=2.*HWRGEN(2)
COEF=1.-SCABI
DO 30 ID=ICH,16,4
IF (ID.GT.8) COEF=SCABI
PROB=PROB+COEF
IF (PROB.GE.PRAN) THEN
IDN(3)=IWP(1,ID)
IDN(4)=IWP(2,ID)
GOTO 40
ENDIF
30 CONTINUE
40 CONTINUE
IF (IDEC.GT.0.AND.IDEC.LT.5) THEN
JDEC=IDEC+6
IF (IDN(3).NE.IDEC.AND.IDN(4).NE.IDEC
& .AND.IDN(3).NE.JDEC.AND.IDN(4).NE.JDEC) GOTO 25
ENDIF
COSTH=2.*HWRGEN(1)**0.3333-1.
ENDIF
IDCMF=197+ICH
IF (IDN(1).GT.6) COSTH=-COSTH
ICO(3)=4
ICO(4)=3
CALL HWETWO(.TRUE.,.TRUE.)
ELSE
IDEC=MOD(IPROC,100)
IF (IDEC.EQ.5.OR.IDEC.EQ.6) THEN
TMIN=ATAN((RMASS(6)**2-RMASS(199)**2)/(GAMW*RMASS(199)))
ELSE
TMIN=-ATAN(RMASS(199)/GAMW)
ENDIF
EVWGT=0.
c---mhs---implement cut on number of widths from nominal mass
TMIN=MAX(TMIN,-ATAN(2*GAMMAX-GAMW*GAMMAX**2/RMASS(199)))
TMAX=ATAN(2*GAMMAX+GAMW*GAMMAX**2/RMASS(199))
EMW=GAMW*TAN(HWRUNI(0,TMIN,TMAX))+RMASS(199)
IF (EMW.LE.ZERO) RETURN
EMW=SQRT(EMW*RMASS(199))
IF (EMW.LE.QSPAC.OR.EMW.GE.PHEP(5,3)) RETURN
EMSCA=EMW
IF (EMLST.NE.EMW) THEN
EMLST=EMW
XXMIN=(EMW/PHEP(5,3))**2
XLMIN=LOG(XXMIN)
CSFAC=-GEV2NB*PIFAC**2*HWUAEM(EMSCA**2)
& /(3.*SWEIN*RMASS(199)**2)*XLMIN
C---COMPUTE TOP AND LEPTONIC FRACTIONS
FTQK=0.
IF (NFLAV.GT.5) THEN
PTOP=HWUPCM(EMW,RMASS(5),RMASS(6))
IF (PTOP.GT.ZERO) THEN
ETOP=SQRT(PTOP**2+RMASS(6)**2)
EBOT=EMW-ETOP
FTQK=2.*PTOP*(3.*ETOP*EBOT+PTOP**2)/EMW**3
PMAX=(ETOP+PTOP)*(EBOT+PTOP)
ENDIF
ENDIF
FHAD=FTQK+2.
FTOT=FTQK+3.
C---MULTIPLY WEIGHT BY BRANCHING FRACTION
IF (IDEC.EQ.0) THEN
BRAF=FHAD
ELSEIF (IDEC.LT.5.OR.IDEC.EQ.50) THEN
BRAF=1.
ELSEIF (IDEC.LT.7) THEN
BRAF=FTQK
ELSEIF (IDEC.EQ.99) THEN
BRAF=FTOT
ELSE
BRAF=1/THREE
ENDIF
c---mhs fix: normalization should be to on-shell total width
c (only different if chosen mass is above top threshold)
CSFAC=CSFAC*BRAF/THREE*(TMAX-TMIN)/PIFAC
FTQK=FTQK/FHAD
FLEP=1./FTOT
ENDIF
CALL HWSGEN(.TRUE.)
C---LOOP OVER PARTON FLAVOURS
PROB=0.
COEF=1.-SCABI
DO 100 IC=1,16
IF (IC.EQ.9) COEF=SCABI
PROB=PROB+DISF(IWP(1,IC),1)*DISF(IWP(2,IC),2)*COEF
100 CONTINUE
EVWGT=PROB*CSFAC
ENDIF
END
CDECK ID>, HWICHK.
*-- Author : M. Kirsanov
C-----------------------------------------------------------------------
SUBROUTINE HWICHK
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
IF(RMASS(1).LT.0.1.OR.RMASS(1).GT.1.0.OR.
& FMRS(1,1,20,1).LT.0.1.OR.FMRS(1,1,20,1).GT.1.0) THEN
STOP 'Block data hwudat not loaded, stop execution'
ENDIF
END
CDECK ID>, HWIODK.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWIODK(IUNIT,IOPT,IME)
C-----------------------------------------------------------------------
C If IUNIT > 0 writes out present HERWIG decay tables to unit IUNIT
C < 0 reads in decay tables from unit IUNIT
C The format used during the read/write is specified by IOPT
C =1 PDG; =2 HERWIG numeric; =3 HERWIG character name.
C When reading in if IME =1 matrix element codes >= 100 are accepted
C 0 are set zero.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IUNIT,IOPT,IME,JUNIT,I,J,K,L,IDKY,ITMP(5),IDUM
CHARACTER*8 CDK(NMXDKS),CDKPRD(5,NMXDKS),CDUM
JUNIT=ABS(IUNIT)
OPEN(UNIT=JUNIT,FORM='FORMATTED',STATUS='UNKNOWN')
IF (IUNIT.GT.0) THEN
C Write out the decay table
WRITE(JUNIT,100) NDKYS
IF (IOPT.EQ.1) THEN
DO 20 I=1,NRES
IF (NMODES(I).EQ.0) GOTO 20
K=LSTRT(I)
DO 10 J=1,NMODES(I)
WRITE(JUNIT,110) IDPDG(I),BRFRAC(K),NME(K),
& (IDPDG(IDKPRD(L,K)),L=1,5)
10 K=LNEXT(K)
20 CONTINUE
ELSEIF (IOPT.EQ.2) THEN
DO 40 I=1,NRES
IF (NMODES(I).EQ.0) GOTO 40
K=LSTRT(I)
DO 30 J=1,NMODES(I)
WRITE(JUNIT,120) I,BRFRAC(K),NME(K),(IDKPRD(L,K),L=1,5)
30 K=LNEXT(K)
40 CONTINUE
ELSEIF (IOPT.EQ.3) THEN
DO 60 I=1,NRES
IF (NMODES(I).EQ.0) GOTO 60
K=LSTRT(I)
DO 50 J=1,NMODES(I)
WRITE(JUNIT,130) RNAME(I),BRFRAC(K),NME(K),
& (RNAME(IDKPRD(L,K)),L=1,5)
50 K=LNEXT(K)
60 CONTINUE
ENDIF
ELSEIF (IUNIT.LT.0) THEN
C Read in the decay table and convert to HERWIG numeric format
READ(JUNIT,100) NDKYS
IF (NDKYS.GT.NMXDKS) THEN
CALL HWWARN('HWIODK',100)
GOTO 999
ENDIF
IF (IOPT.EQ.1) THEN
DO 70 I=1,NDKYS
READ(JUNIT,110) IDKY,BRFRAC(I),NME(I),ITMP
IF (IME.EQ.0.AND.NME(I).GE.100) NME(I)=0
CALL HWUIDT(1,IDKY,IDK(I),CDUM)
DO 70 J=1,5
70 CALL HWUIDT(1,ITMP(J),IDKPRD(J,I),CDUM)
ELSEIF (IOPT.EQ.2) THEN
DO 80 I=1,NDKYS
READ(JUNIT,120) IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5)
IF (IDK(I).LT.0.OR.IDK(I).GT.NRES) IDK(I)=20
80 IF (IME.EQ.0.AND.NME(I).GE.100) NME(I)=0
ELSEIF (IOPT.EQ.3) THEN
DO 90 I=1,NDKYS
READ(JUNIT,130) CDK(I),BRFRAC(I),NME(I),(CDKPRD(J,I),J=1,5)
IF (IME.EQ.0.AND.NME(I).GE.100) NME(I)=0
CALL HWUIDT(3,IDUM,IDK(I),CDK(I))
DO 90 J=1,5
90 CALL HWUIDT(3,IDUM,IDKPRD(J,I),CDKPRD(J,I))
ELSE
CALL HWWARN('HWIODK',101)
GOTO 999
ENDIF
ENDIF
CLOSE(UNIT=JUNIT)
100 FORMAT(1X,I4)
110 FORMAT(1X,I7,1X,F7.5,1X,I3,5(1X,I7))
120 FORMAT(1X,I3,1X,F7.5,6(1X,I3))
130 FORMAT(1X,A8,1X,F7.5,1X,I3,5(1X,A8))
999 RETURN
END
CDECK ID>, HWIGIN.
*CMZ :- -12/10/01 09.50.50 by Peter Richardson
*-- Author : Bryan Webber
C----------------------------------------------------------------------
SUBROUTINE HWIGIN
C-----------------------------------------------------------------------
C SETS INPUT PARAMETERS
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION FAC,ANGLE
INTEGER I,J,N,L
CHARACTER*28 TITLE
SAVE TITLE
DATA TITLE/'HERWIG 6.510 31st Oct. 2005'/
WRITE (6,10) TITLE
10 FORMAT(//10X,A28//,
& 10X,'Please reference: G. Marchesini, B.R. Webber,',/,
& 10X,'G.Abbiendi, I.G.Knowles, M.H.Seymour & L.Stanco',/,
& 10X,'Computer Physics Communications 67 (1992) 465',/,
& 10X,' and',/,
& 10X,'G.Corcella, I.G.Knowles, G.Marchesini, S.Moretti,'
& ,/, 10X,'K.Odagiri, P.Richardson, M.H.Seymour & B.R.Webber,'
& ,/, 10X,'JHEP 0101 (2001) 010')
CALL HWICHK
C---PRINT OPTIONS:
C IPRINT=0 NO PRINTOUT
C 1 PRINT SELECTED INPUT PARAMETERS
C 2 1 + TABLE OF PARTICLE CODES AND PROPERTIES
C 3 2 + TABLES OF SUDAKOV FORM FACTORS
IPRINT=1
C Format for track numbers in event listing
C PRNDEC=.TRUE. use decimal
C .FALSE. use hexadecimal
PRNDEC=(NMXHEP.LE.9999)
C Number of significant figures to print out in event listing
C NPRFMT (< 2) compact 80 character stout and A4-long tex output,
C (= 2) 2 decimal places in stout, (> 2) - 5 decimal places in stout
NPRFMT=1
C Print out vertex information
PRVTX=.TRUE.
C Print out particle properties/event record to stout, tex or web
PRNDEF=.TRUE.
PRNTEX=.FALSE.
PRNWEB=.FALSE.
C---MAX NO OF EVENTS TO PRINT
MAXPR=1
C---UNIT FOR READING SUDAKOV FORM FACTORS (IF ZERO THEN COMPUTE THEM)
LRSUD=0
C---UNIT FOR WRITING SUDAKOV FORM FACTORS (IF ZERO THEN NOT WRITTEN)
LWSUD=77
C---UNIT FOR WRITING EVENT DATA IN HWANAL (IF ZERO THEN NOT WRITTEN)
LWEVT=0
C---SEEDS FOR RANDOM NUMBER GENERATOR (CALLED HWRGEN)
NRN(1)= 17673
NRN(2)= 63565
C---ALLOW NEGATIVE WEIGHTS?
NEGWTS=.FALSE.
C---AZIMUTHAL CORRELATIONS?
C THESE INCLUDE SOFT GLUON (INSIDE CONE)
AZSOFT=.TRUE.
C AND NEAREST-NEIGHBOUR SPIN CORRELATIONS
AZSPIN=.TRUE.
C---MATRIX-ELEMENT MATCHING FOR E+E-, DIS, DRELL-YAN AND TOP DECAY
C---HARD EMISSION
HARDME=.TRUE.
C---SOFT EMISSION
SOFTME=.TRUE.
C---GLUON ENERGY CUT FOR TOP DECAY CASE
GCUTME=2
C Electromagnetic fine structure constant: Thomson limit
ALPHEM=.0072993
C---QCD LAMBDA: CORRESPONDS TO 5-FLAVOUR LAMBDA-MS-BAR AT LARGE X ONLY
QCDLAM=0.18
C---NUMBER OF COLOURS
NCOLO=3
C---NUMBER OF FLAVOURS
NFLAV=6
C---QUARK, GLUON AND PHOTON VIRTUAL MASS CUTOFFS IN
C PARTON SHOWER (ADDED TO MASSES GIVEN BELOW)
VQCUT=0.48
VGCUT=0.10
VPCUT=0.40
ALPFAC=1
C---D,U,S,C,B,T QUARK AND GLUON MASSES (IN THAT ORDER)
RMASS(1)=0.32
RMASS(2)=0.32
RMASS(3)=0.5
RMASS(4)=1.55
RMASS(5)=4.95
RMASS(6)=174.3
RMASS(13)=0.75
C---W+/- AND Z0 MASSES
RMASS(198)=80.42
RMASS(199)=80.42
RMASS(200)=91.188
C---HIGGS BOSON MASS
RMASS(201)=115.
C---WIDTHS OF W, Z, HIGGS
GAMW=2.12
GAMZ=2.495
C SM Higgs width is actually recomputed by HWDHIG
C but this value corresponds to RMASS(201)=115.
GAMH=0.0037
C Include additional neutral, massive vector boson (Z')
ZPRIME=.FALSE.
C Z' mass and width
RMASS(202)=500.
GAMZP=5.
C Graviton properties
C Graviton mass and width (default mass 1 TeV and calculated width)
EMGRV = 1000.0D0
GAMGRV = ZERO
C Graviton coupling (this has dimensions of mass)
GRVLAM = 10000.0D0
C Lepton (EPOLN) and anti-lepton (PPOLN) beam polarisations used in:
C e+e- --> ffbar/qqbar g; and l/lbar N DIS.
C Cpts. 1,2 Transverse polarisation; cpt. 3 longitudinal polarisation.
C Note require POLN(1)**2+POLN(2)**2+POLN(3)**2 < 1.
DO 20 I=1,3
EPOLN(I)=0.
20 PPOLN(I)=0.
C-----------------------------------------------------------------------
C Specify couplings of weak vector bosons to fermions:
C
C electric current: QFCH(I)*e*G_mu (electric charge, e>0)
C weak neutral current: [VFCH(I,J).1+AFCH(I,J).G_5]*e*G_mu
C weak charged current: SQRT(VCKM(K,L)/2.)*g*(1+G_5)*G_mu
C
C I= 1- 6: d,u,s,c,b,t (quarks)
C =11-16: e,nu_e,mu,nu_mu,tau,nu_tau (leptons) (`I=IDHW-110')
C J=1 for minimal SM:
C =2 for Z' couplings (ZPRIME=.TRUE.)
C K=1,2,3 for u,c,t; L=1,2,3 for d,s,b
C-----------------------------------------------------------------------
C Minimal standard model neutral vector boson couplings
C VFCH(I,1)=(T3/2-Q*S^2_W)/(C_W*S_W); AFCH(I,1)=T3/(2*C_W*S_W)
C sin**2 Weinberg angle (PDG '94)
SWEIN=.2319
FAC=1./SQRT(SWEIN*(1.-SWEIN))
DO 30 I=1,3
C Down-type quarks
J=2*I-1
QFCH(J)=-1./3.
VFCH(J,1)=(-0.25+SWEIN/3.)*FAC
AFCH(J,1)= -0.25*FAC
C Up-type quarks
J=2*I
QFCH(J)=+2./3.
VFCH(J,1)=(+0.25-2.*SWEIN/3.)*FAC
AFCH(J,1)= +0.25*FAC
C Charged leptons
J=2*I+9
QFCH(J)=-1.
VFCH(J,1)=(-0.25+SWEIN)*FAC
AFCH(J,1)= -0.25*FAC
C Neutrinos
J=2*I+10
QFCH(J)=0.
VFCH(J,1)=+0.25*FAC
AFCH(J,1)=+0.25*FAC
30 CONTINUE
C Additional Z' couplings (To be set by the user)
IF (.NOT.ZPRIME) THEN
DO 40 I=1,6
AFCH(I,2)=0.
AFCH(10+I,2)=0.
VFCH(I,2)=0.
VFCH(10+I,2)=0.
40 CONTINUE
ENDIF
C--calculate left and right couplings of bosons for axial and vector ones
DO 45 J=1,16
IF(J.LE.6.OR.J.GE.11) THEN
LFCH(J)=VFCH(J,1)+AFCH(J,1)
RFCH(J)=VFCH(J,1)-AFCH(J,1)
ENDIF
45 CONTINUE
C Cabibbo-Kobayashi-Maskawa matrix elements squared (PDG '92):
C sin**2 of Cabibbo angle
SCABI=.0488
C u ---> d,s,b
VCKM(1,1)=1.-SCABI
VCKM(1,2)=SCABI
VCKM(1,3)=0.0
C c ---> d,s,b
VCKM(2,1)=SCABI
VCKM(2,2)=1.-SCABI-.002
VCKM(2,3)=0.002
C t ---> d,b,s
VCKM(3,1)=0.0
VCKM(3,2)=0.002
VCKM(3,3)=0.998
C---GAUGE BOSON DECAYS
DO 50 I=1,12
BRHIG(I)=1.D0/12
ENHANC(I)=1.D0
50 CONTINUE
DO 55 I=1,MODMAX
MODBOS(I)=0
55 CONTINUE
C
C THE iTH GAUGE BOSON DECAY PER EVENT IS CONTROLLED BY MODBOS AS FOLLOWS
C MODBOS(i) W DECAY Z DECAY
C 0 all all
C 1 qqbar qqbar
C 2 enu e+e-
C 3 munu mu+mu-
C 4 taunu tau+tau-
C 5 enu & munu ee & mumu
C 6 all nunu
C 7 all bbbar
C >7 all all
C BOSON PAIRS (eg FROM HIGGS DECAY)ARE CHOSEN FROM MODBOS(i),MODBOS(i+1)
C
C---CONTROL OF LARGE EMH BEHAVIOUR (SEE HWHIGM FOR DETAILS)
IOPHIG=3
GAMMAX=10.
C Specify approximation used in HWHIGA
IAPHIG=1
C---MASSES OF HYPOTHETICAL NEW QUARKS GO
C INTO 209-214 (ANTIQUARKS IN 215-220)
C ID = 209,210 ARE B',T' WITH DECAYS T'->B'->C
C 211,212 ARE B',T' WITH DECAYS T'->B'->T
C 215-218 ARE THEIR ANTIQUARKS
RMASS(209)=200.
RMASS(215)=200.
C---MAXIMUM CLUSTER MASS PARAMETERS
C N.B. LIMIT FOR Q1-Q2BAR CLUSTER MASS
C IS (CLMAX**CLPOW + (QM1+QM2)**CLPOW)**(1/CLPOW)
CLMAX=3.35
CLPOW=2.0
C For PSPLT(I), CLDIR(I) & CLSMR(I): I=1 light u,d,s,c cluster
C =2 heavy b cluster
C---MASS SPECTRUM OF PRODUCTS IN CLUSTER
C SPLITTING ABOVE CLMAX - FLAT IN M**PSPLT(*)
PSPLT(1)=1.0
PSPLT(2)=PSPLT(1)
C---KINEMATIC TREATMENT OF CLUSTER DECAY
C 0=ISOTROPIC, 1=REMEMBER DIRECTION OF PERTURBATIVELY PRODUCED QUARKS
CLDIR(1)=1
CLDIR(2)=CLDIR(1)
C IF CLDIR(*)=1, DO GAUSSIAN SMEARING OF DIRECTION:
C ACTUALLY EXPONENTIAL IN 1-COS(THETA) WITH MEAN CLSMR(*)
CLSMR(1)=0.0
CLSMR(2)=CLSMR(1)
C---OPTION FOR TREATMENT OF REMNANT CLUSTERS:
C 0=BOTH CHILDREN ARE SOFT, (EQUIVALENT TO PREVIOUS VERSIONS)
C 1=REMNANT CHILD IS SOFT, BUT PERTURBATIVE CHILD IS NORMAL
IOPREM=1
C---TREATMENT OF LOWER LIMIT FOR SPACELIKE EVOLUTION
C 0=EVOLUTION STOPS AT QSPAC, BUT STRUCT FUNS CAN GET CALLED AT
C SMALLER SCALES IN FORCED EMISSION (EQUIVALENT TO V5.7 AND EARLIER)
C 1=EVOLUTION STOPS AT QSPAC, STRUCTURE FUNCTIONS FREEZE AT QSPAC
C 2=EVOLUTION CONTINUES TO INFRARED CUT, BUT S.F.S FREEZE AT QSPAC
ISPAC=0
C---LOWER LIMIT FOR SPACELIKE EVOLUTION
QSPAC=2.5
C---SWITCH OFF SPACE-LIKE SHOWERS
NOSPAC=.FALSE.
C---INTRINSIC PT OF SPACELIKE PARTONS (RMS)
PTRMS=0.0
C---MASS PARAMETER IN REMNANT FRAGMENTATION
BTCLM=1.0
C---PARAMETERS CONTROLLING VERY SMALL-X BEHAVIOUR OF PDFS
PDFX0=0
PDFPOW=0
C---STRUCTURE FUNCTION SET:
C SET MODPDF(I)=MODE AND AUTPDF='AUTHOR GROUP' TO USE CERN LIBRARY
C PDFLIB PACKAGE FOR STRUCTURE FUNCTIONS IN BEAM I
MODPDF(1)=34
MODPDF(2)=34
AUTPDF(1)='CTEQ'
AUTPDF(2)='CTEQ'
C OR SET MODPDF(I)=-1 TO USE BUILT-IN STRUCTURE FUNCTION SET:
C 1,2 FOR DUKE+OWENS SETS 1,2 (SOFT/HARD GLUE)
C 3,4 FOR EICHTEN+AL SETS 1,2 (NUCLEONS ONLY)
C 5 FOR OWENS SET 1.1 (SOFT GLUE ONLY)
C 6 FOR MRST98LO central alpha_s/gluon
C 7 FOR MRST98LO higher gluon
C 8 FOR MRST98LO average of central and higher gluon (default)
NSTRU=8
C PARAMETER FOR B CLUSTER DECAY TO 1 HADRON. IF MCL IS CLUSTER MASS
C AND MTH IS THRESHOLD FOR 2-HADRON DECAY, THEN PROBABILITY IS
C 1 IF MCL(1+B1LIM)*MTH, WITH LINEAR INTERPOLATION,
B1LIM=0.0
C---B DECAY PACKAGE ('HERW'=>HERWIG, 'EURO'=>EURODEC, 'CLEO'=>CLEO)
BDECAY='HERW'
C---TAU DECAY PACKAGE ('HERWIG'=>HERWIG, 'TAUOLA'=> TAUOLA)
TAUDEC='HERWIG'
C--default options for TAUOLA (if used)
C JAK=0 ALL MODES
C JAK=1 ELECTRON MODE
C JAK=2 MUON MODE
C JAK=3 PION MODE
C JAK=4 RHO MODE
C JAK=5 A1 MODE
C JAK=6 K MODE
C JAK=7 K* MODE
C JAK=8 nPI MODE
C--tau decay modes (1 is tau+ and 2 is tau-)
JAK1 = 0
JAK2 = 0
C--radiative corrections in tau decay (1 on/ 0 off)
ITDKRC=1
C--use PHOTOS in tau decays (1 PHOTOS/ 0 no PHOTOS)
IFPHOT=1
C--use PHOTOS in ttbar production and decay
ITOPRD=0
C---HARD SUBPROCESS SCALE TO BE USED IN 4-JET MATRIX ELEMENT OPTION
C IF (FIX4JT) THEN SCALE=C.M. ENERGY
C ELSE SCALE=2.*MIN(PI.PJ)
FIX4JT=.FALSE.
C---HARD SUBPROCESS SCALE TO BE USED IN BOSON-GLUON FUSION
C IF (BGSHAT) THEN SCALE=SHAT
C ELSE SCALE=2.*SHAT*THAT*UHAT/(SHAT**2+THAT**2+UHAT**2)
BGSHAT=.FALSE.
C---RECONSTRUCT DIS EVENTS IN BREIT FRAME
BREIT=.TRUE.
C---TREAT ALL EVENTS IN THEIR CMF (ELSE USE LAB FRAME)
USECMF=.TRUE.
C---TREAT W/Z DECAY IN ITS REST FRAME
WZRFR=.TRUE.
C---PROBABILITY OF UNDERLYING SOFT EVENT:
PRSOF=ONE
C---SOFT UNDERLYING OR MIN BIAS EVENT PARAMETERS
C DEFAULT VALUES ARE FROM UA5 COLLAB, NPB291(1987)445
C NCH_PPBAR(SQRT(S)) = PMBN1*S**PMBN2+PMBN3
PMBN1= 9.11
PMBN2= 0.115
PMBN3=-9.50
C 1/K (IN NEG BINOMIAL) = PMBK1*LN(S)+PMBK2
PMBK1= 0.029
PMBK2=-0.104
C SOFT CLUSTER MASS SPECTRUM (M-M1-M2-PMBM1)*EXP(-PMBM2*M)
PMBM1= 0.4
PMBM2= 2.0
C SOFT CLUSTER PT SPECTRUM PT*EXP(-B*SQRT(PT**2+M**2))
C B=PMBP1 FOR D,U, PMBP2 FOR S,C, PMBP3 FOR DIQUARKS
PMBP1= 5.2
PMBP2= 3.0
PMBP3= 5.2
C---MULTIPLICITY ENHANCEMENT FOR UNDERLYING SOFT EVENT:
C NCH = NCH_PPBAR(ENSOF*SQRT(S))
ENSOF=1.
C PARAMETERS FOR MUELLER TANG FORMULA: IPROC=2400
C---THE VALUE TO USE FOR FIXED ALPHA_S IN DENOMINATOR
ASFIXD=0.25
C---OMEGA0=12*LOG(2)*ALPHA_S/PI, BUT NOT NECESSARILY THE SAME ALPHA_S
OMEGA0=0.3
C---MIN AND MAX JET RAPIDITIES IN QCD 2->2,
C HEAVY FLAVOUR, SUSY AND DIRECT PHOTON PROCESSES
YJMAX=8.
YJMIN=-YJMAX
C---MIN AND MAX PARTON TRANSVERSE MOMENTUM
C IN ELEMENTARY 2 -> 2 SUBPROCESSES
PTMIN=1D1
PTMAX=1D8
C---UPPER LIMIT ON HARD PROCESS SCALE
QLIM=1D8
C---MAX PARTON THRUST IN 2->3 HARD PROCESSES
THMAX=0.9
C Set parameters for 2->4 hard process
C Choose inter-jet metric (else JADE) and minimum y-cut
DURHAM=.TRUE.
Y4JT=0.01
C---TREATMENT OF COLOUR INTERFERENCE IN E+E- -> 4 JETS:
C qqbar-gg case:
C IOP4JT(1)=0 neglect, =1 extreme 2341; =2 extreme 3421
C qqbar-qqbar (identical quark flavour) case:
C IOP4JT(2)=0 neglect, =1 extreme 4123; =2 extreme 2143
IOP4JT(1)=0
IOP4JT(2)=0
C---MIN AND MAX DILEPTON INVARIANT MASS IN DRELL-YAN PROCESS
EMMIN=0D0
EMMAX=1D8
C---MIN AND MAX ABS(Q**2) IN DEEP INELASTIC LEPTON SCATTERING
Q2MIN=0D0
Q2MAX=1D10
C---MIN AND MAX ABS(Q**2) IN WEISZACKER-WILLIAMS APPROXIMATION
Q2WWMN=0.
Q2WWMX=4.
C---MIN AND MAX ENERGY FRACTION IN WEISZACKER-WILLIAMS APPROXIMATION
YWWMIN=0.
YWWMAX=1.
C---MINIMUM HADRONIC MASS FOR PHOTON-INDUCED PROCESSES (INCLUDING DIS)
WHMIN=0.
C---IF PHOMAS IS NON-ZERO, PARTON DISTRIBUTION FUNCTIONS FOR OFF-SHELL
C PHOTONS IS DAMPED, WITH MASS PARAMETER = PHOMAS
PHOMAS=0.
C---MIN AND MAX FLAVOURS GENERATED BY IPROC=9100,9110,9130
IFLMIN=1
IFLMAX=5
C---MAX Z IN J/PSI PHOTO- AND ELECTRO- PRODUCTION
ZJMAX=0.9
C---MIN AND MAX BJORKEN-Y
YBMIN=0.
YBMAX=1.
C---MIN jet-jet mass in Drell-Yan+2 jets
MJJMIN = 10.0D0
C---MAX COS(THETA) FOR W'S IN E+E- -> W+W-
CTMAX=0.9999
C Minimum virtuality^2 of partons to use in calculating distances
VMIN2=0.1
C Exageration factor for lifetimes of weakly decaying heavy particles
EXAG=1.
C Include colour rearrangement in cluster formation
CLRECO=.FALSE.
C Probability for colour rearrangement to occur
PRECO=1./9.
C Minimum lifetime for particle to be considered stable
PLTCUT=1.D-8
C Incude neutral B-meson mixing
MIXING=.TRUE.
C Set B_s and B_d mixing parameters: X=Delta m/Gamma
XMIX(1)=10.0
XMIX(2)=0.70
C Y=Delta Gamma/2*Gamma
YMIX(1)=0.2
YMIX(2)=0.0
C Include a cut on particle decay lengths
MAXDKL=.FALSE.
C Set option for decay length cut (see HWDXLM)
IOPDKL=1
C Radius for cylindrical option (mm) (IOPDKL=1)
DXRCYL=20.0D0
C Length for cylindrical option(IOPDKL=1)
DXZMAX=500.0D0
C Radius for spherical option(IOPDKL=2)
DXRSPH=100.0D0
C Smear the primary interaction vertex: see HWRPIP for details
PIPSMR=.FALSE.
C Widths of Gaussian smearing in x,y,z (mm)
VIPWID(1)=0.25D0
VIPWID(2)=0.015D0
VIPWID(3)=1.8D0
DO 60 I=0,NMXRES
C Veto cluster decays into particle type I
VTOCDK(I)=.FALSE.
C Veto unstable particle decays into modes involving particle type I
60 VTORDK(I)=.FALSE.
C Veto f_0(980) and a_0(980) production in cluster decays
VTOCDK(290)=.TRUE.
VTOCDK(291)=.TRUE.
VTOCDK(292)=.TRUE.
VTOCDK(293)=.TRUE.
C---MINIMUM AND MAXIMUM S-HAT/S RANGE FOR PHOTON ISR
TMNISR=1D-4
ZMXISR=1-1D-6
C---COLISR IS .TRUE. TO MAKE ISR PHOTONS COLLINEAR WITH BEAMS
COLISR=.FALSE.
C A Priori weights for mesons w.r.t. pionic n=1, 0-(+) states:
C old VECWT=REPWT(0,1,0) & TENWT=REPWT(0,2,0)
DO 70 N=0,4
DO 70 J=0,4
DO 70 L=0,3
70 REPWT(L,J,N)=1.
C and singlet (Lambda-like) and decuplet barons
SNGWT=1.
DECWT=1.
C---A PRIORI WEIGHTS FOR D,U,S,C,B,T QUARKS AND DIQUARKS (IN THAT ORDER)
PWT(1)=1.
PWT(2)=1.
PWT(3)=1.
PWT(4)=1.
PWT(5)=1.
PWT(6)=1.
PWT(7)=1.
C Octet-Singlet isoscalar mixing angles in degrees
C (use ANGLE for ideal mixing, recommended for F0MIX & OMHMIX)
ANGLE=ATAN(ONE/SQRT(TWO))*180./ACOS(-ONE)
C eta - eta'
ETAMIX=-23.
C phi - omega
PHIMIX=+36.
C h_1(1380) - h_1(1170)
H1MIX=ANGLE
C MISSING - f_0(1370)
F0MIX=ANGLE
C f_1(1420) - f_1(1285)
F1MIX=ANGLE
C f'_2 - f_2
F2MIX=+26.
C MISSING - omega(1600)
OMHMIX=ANGLE
C eta_2(1645) - eta_2(1870)
ET2MIX=ANGLE
C phi_3 - omega_3
PH3MIX=+28.
C---PARAMETERS FOR NON-PERTURBATIVE SPLITTING OF GLUONS INTO
C DIQUARK-ANTIDIQUARK PAIRS:
C SCALE AT WHICH GLUONS CAN BE SPLIT INTO DIQUARKS
C (0.0 FOR NO SPLITTING)
QDIQK=0.0
C PROBABILITY (PER UNIT LOG SCALE) OF DIQUARK SPLITTING
PDIQK=5.0
C---PARAMETERS FOR IMPORTANCE SAMPLING
C ASSUME QCD 2->2 DSIG/DET FALLS LIKE ET**(-PTPOW)
C WHERE ET=SQRT(MQ**2+PT**2) FOR HEAVY FLAVOURS
PTPOW=4.
C DEFAULT PTPOW=2 FOR SUSY PROCESSES
IF (MOD(IPROC/100,100).EQ.30) PTPOW=2.
C ASSUME DRELL-YAN DSIG/DEM FALLS LIKE EM**(-EMPOW)
EMPOW=4.
C ASSUME DEEP INELASTIC DSIG/DQ**2 FALLS LIKE (Q**2)**(-Q2POW)
Q2POW=2.5
C---GENERATE UNWEIGHTED EVENTS (EVWGT=AVWGT)?
NOWGT=.TRUE.
C---DEFAULT MEAN EVENT WEIGHT
AVWGT=1.
C---ASSUMED MAXIMUM WEIGHT (ZERO TO RECOMPUTE)
WGTMAX=0.
C---MINIMUM ACCEPTABLE EVENT GENERATION EFFICIENCY
EFFMIN=1D-3
C---MAX NO OF (CODE.GE.100) ERRORS
MAXER=MAX(10,MAXEV/100)
C---TIME (SEC) NEEDED TO TERMINATE GRACEFULLY
TLOUT=5.
C---CURRENT NO OF EVENTS
NEVHEP=0
C---CURRENT NO OF ENTRIES IN /HEPEVT/
NHEP=0
C---ISTAT IS STATUS OF EVENT (I.E. STAGE IN PROCESSING)
ISTAT=0
C---IERROR IS ERROR CODE
IERROR=0
C---MORE TECHNICAL PARAMETERS - SHOULDN'T NEED ADJUSTMENT
C---PI
PIFAC=ACOS(-1.D0)
C Speed of light (mm/s)
CSPEED=2.99792D11
C Cross-section conversion factor (hbar.c/e)**2
GEV2NB=389379.D0
C---NUMBER OF SHOTS FOR INITIAL MAX WEIGHT SEARCH
IBSH=10000
C---RANDOM NO. SEEDS FOR INITIAL MAX WEIGHT SEARCH
IBRN(1)=1246579
IBRN(2)=8447766
C--Number of shots and steps for the optimisation procedure
IOPSH = 1000
IOPSTP = 10
C---NUMBER OF ENTRIES IN LOOKUP TABLES OF SUDAKOV FORM FACTORS
NQEV=1024
C---MAXIMUM BIN SIZE IN Z FOR SPACELIKE BRANCHING
ZBINM=0.05
C---MAXIMUM NUMBER OF Z BINS FOR SPACELIKE BRANCHING
NZBIN=100
C---MAXIMUM NUMBER OF BRANCH REJECTIONS (TO AVOID INFINITE LOOPS)
NBTRY=200
C---MAXIMUM NUMBER OF TRIES TO GENERATE CLUSTER DECAY
NCTRY=200
C---MAXIMUM NUMBER OF TRIES TO GENERATE MASS REQUESTED
NETRY=200
C---MAXIMUM NUMBER OF TRIES TO GENERATE SOFT SUBPROCESS
NSTRY=200
C---MAXIMUM NUMBER OF TRIES TO GENERATE SPIN DECAYS
NSNTRY=500
C---MAXIMUM NUMBER OF TRIES TO GENERATE FOUR/FIVE BODY DECAYS
NDETRY=20000
C---PRECISION FOR GAUSSIAN INTEGRATION
ACCUR=1.D-6
C---ORDER OF INTERPOLATION IN SUDAKOV TABLES
INTER=3
C---ORDER TO USE FOR ALPHAS IN SUDAKOV TABLES
SUDORD=1
C---DEFAULT UNIT FOR THE SUSY DATA FILE
LRSUSY = 66
C---CONSERVATION OF RPARITY
RPARTY = .TRUE.
C---CHECK WHETHER SUSY DATA INPUTTED
SUSYIN = .FALSE.
C---SPIN CORRELATIONS IN TOP/TAU/SUSY DECAYS
SYSPIN = .TRUE.
C---THREE BODY SUSY MATRIX ELEMENTS
THREEB = .TRUE.
C---FOUR BODY SUSY MATRIX ELEMENTS
FOURB = .FALSE.
C---OPTION FOR DIFFERENT COLOUR FLOWS IN SPIN CORRELATION
C---(1 is first option in DAMTP-2001-83 only for SM/MSSM)
C---(2 is second option in DAMTP-2001-83 needed for RPV)
SPCOPT = 1
C---number of weights for maximum search for 3/4 body MEs
NSEARCH = 500
C--unit to read three/four body decays from (if 0 computed)
LRDEC = 0
C--unit to write three/four body decays to (if 0 not written)
LWDEC = 88
C--WHETHER OR NOT TO OPTIMIZE THE WEIGHTS IN MULTICHANNEL PROCESSES
OPTM = .FALSE.
C--initializes the multichannel integrals
CALL HWIPHS(1)
C CIRCE INTERFACE
C---CIRCE IS CONTROLLED BY THESE NEW VARIABLES:
C---CIRCOP = CIRCE OPTION: 0=NO CIRCE, STANDARD HERWIG
C 1=NO CIRCE, HERWIG WITH COLLINEAR KINEMATICS
C 2=BEAMSTRAHLUNG FROM CIRCE
C 3=BEAMSTRAHLUNG FROM CIRCE PLUS BREMSTRAHLUNG
C THEREFORE 0 SHOULD BE REGARDED AS OFF AND 3 AS ON. THE OTHERS ARE
C MAINLY THERE FOR CROSS-CHECKING PURPOSES
CIRCOP=0
C---CIRCAC, CIRCVR, CIRCRV, CIRCCH = CIRCE INPUTS ACC, VER, REV AND CHAT
C EG CIRCAC=1=SBAND, CIRCAC=2=TESLA, CIRCAC=3=XBAND
CIRCAC=2
CIRCVR=7
CIRCRV=9999 12 31
CIRCCH=0
C---END OF CIRCE VARIABLES
C--options for Les Houches Accord
C--allow self connected gluons (.TRUE.) or forbid (.FALSE.)
LHGLSF = .FALSE.
C--generate the soft event (.TRUE.) or don't (.FALSE.)
LHSOFT = .TRUE.
C--conserve longitudinal momentum (.true.) or rapidity of hard process
PRESPL = .TRUE.
END
CDECK ID>, HWIGUP.
*CMZ :- -15/07/02 16.42.23 by Peter Richardson
*-- Author : Peter Richardson
C----------------------------------------------------------------------
SUBROUTINE HWIGUP
C----------------------------------------------------------------------
C Use the GUPI (Generic User Process Interface) run common block
C to initialise HERWIG -- Initialization for Les Houches interface
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER MAXPUP
PARAMETER(MAXPUP=100)
INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
& IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
& XMAXUP(MAXPUP),LPRUP(MAXPUP)
CHARACTER *8 DUMMY,PDFNUC(9),PDFPI(9),PDFPHT(9)
INTEGER I,IDB(2)
SAVE PDFNUC,PDFPI ,PDFPHT
DATA PDFNUC/ 'DO','DFLM','MRS','CTEQ','GRV','ABFOW','BM',
& ' ',' '/
DATA PDFPI / 'OW-P',' ','SMRS-P',' ','GRV-P',
& 'ABFKW-P',' ',' ',' '/
DATA PDFPHT /'DO-G','DG-G','LAC-G','GS-G','GRV-G','ACG-G',
& ' ','WHIT-G','SaSph'/
C--call the user routine to do the initialisation
CALL UPINIT_GUP
C$$$$$$ I modified the previous sentence UPINIT for UPINIT_GUP (otherwise it can't call it, why??? I have no idea!!)
C--setup the beam particles and momentum
CALL HWUIDT(1,IDBMUP(1),IDB(1),DUMMY)
PART1=DUMMY
CALL HWUIDT(1,IDBMUP(2),IDB(2),DUMMY)
PART2=DUMMY
PBEAM1 = SQRT(EBMUP(1)**2-RMASS(IDB(1))**2)
PBEAM2 = SQRT(EBMUP(2)**2-RMASS(IDB(2))**2)
C--set up for PDFLIB if need
DO I=1,2
IF(PDFGUP(I).NE.-1) THEN
IF(PDFGUP(I).LT.1.OR.PDFGUP(I).GT.9) CALL HWWARN('HWIGUP',500)
MODPDF(I) = PDFSUP(I)
C--proton/neutron beams
IF(ABS(IDBMUP(I)).EQ.2212.OR.ABS(IDBMUP(I)).EQ.2112) THEN
AUTPDF(I) = PDFNUC(PDFGUP(I))
C--photon beams
ELSEIF(ABS(IDBMUP(I)).EQ.22) THEN
AUTPDF(I) = PDFPHT(PDFGUP(I))
C--pion beams
ELSEIF(ABS(IDBMUP(I)).EQ.211) THEN
AUTPDF(I) = PDFPI(PDFGUP(I))
C--unknown beam type
ELSE
CALL HWWARN('HWIGUP',500)
ENDIF
ENDIF
ENDDO
C--decide what to do about the weights
IF(ABS(IDWTUP).EQ.1) THEN
WGTMAX = ZERO
AVWGT = ONE
AVABW = ONE
NOWGT = .TRUE.
C--sum up the magnitudes of the maximum weight
LHMXSM = ZERO
DO I=1,NPRUP
LHXMAX(I) = XMAXUP(I)*1.0D-3
LHMXSM = LHMXSM+ABS(LHXMAX(I))
ENDDO
ITYPLH = 0
ELSEIF(ABS(IDWTUP).EQ.2) THEN
WGTMAX = ZERO
AVWGT = ONE
AVABW = ONE
NOWGT = .TRUE.
C--sum the cross sections and obtain the total
LHMXSM = ZERO
DO I=1,NPRUP
LHXSCT(I) = XSECUP(I)*1.0D-3
LHXMAX(I) = XMAXUP(I)*1.0D-3
LHMXSM = LHMXSM+ABS(LHXSCT(I))
ENDDO
ITYPLH = 0
ELSEIF(ABS(IDWTUP).EQ.3) THEN
WGTMAX = ONE
AVWGT = ONE
AVABW = ONE
NOWGT = .TRUE.
ELSEIF(ABS(IDWTUP).EQ.4) THEN
WGTMAX = ONE
AVWGT = ONE
NOWGT = .FALSE.
ENDIF
IF(IDWTUP.LT.0) NEGWTS = .TRUE.
C--zero the weight
DO I=1,NPRUP
LHWGT (I) = ZERO
LHWGTS(I) = ZERO
LHIWGT(I) = 0
LHNEVT(I) = 0
ENDDO
END
CDECK ID>, HWIMDE.
*CMZ :- -12/10/01 17.14.22 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWIMDE
C-----------------------------------------------------------------------
C Subroutine to merge Higgs WW/ZZ decay modes for four body ME
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IH,I,NMODE,J,K
LOGICAL REMOVE
DOUBLE PRECISION BR
REMOVE = .FALSE.
C--first identify the WW modes
DO IH=203,204
BR = ZERO
NMODE = 0
DO I=NDECSY,NDKYS
IF(IDK(I).EQ.IH.AND.((IDKPRD(3,I).NE.0.AND.IDKPRD(4,I).EQ.0
& .AND.(IDKPRD(1,I).EQ.198.OR.IDKPRD(1,I).EQ.199).AND.
& ((IDKPRD(2,I).LE.12 .AND.IDKPRD(3,I).LE.12).OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(3,I).GE.121.AND.
& IDKPRD(2,I).LE.132.AND.IDKPRD(3,I).LE.132)))
& .OR.((IDKPRD(4,I).NE.0.AND.IDKPRD(5,I).EQ.0.AND.
& (((IDKPRD(1,I).LE.12 .AND.IDKPRD(2,I).LE.12).OR.
& (IDKPRD(1,I).GE.121.AND.IDKPRD(2,I).GE.121.AND.
& IDKPRD(1,I).LE.132.AND.IDKPRD(2,I).LE.132))
& .AND.ICHRG(IDKPRD(1,I))+ICHRG(IDKPRD(2,I)).NE.0)
& .AND.
& (((IDKPRD(3,I).LE.12 .AND.IDKPRD(4,I).LE.12).OR.
& (IDKPRD(3,I).GE.121.AND.IDKPRD(4,I).GE.121.AND.
& IDKPRD(3,I).LE.132.AND.IDKPRD(4,I).LE.132))
& .AND.ICHRG(IDKPRD(3,I))+ICHRG(IDKPRD(4,I)).NE.0))))) THEN
BR=BR+BRFRAC(I)
NME(I) = -100
NMODE=NMODE+1
ENDIF
ENDDO
C--add the new mode to the event record
IF(NMODE.GT.0) THEN
REMOVE = .TRUE.
NDKYS = NDKYS+1
IDK(NDKYS) = IH
BRFRAC(NDKYS) = BR
NME(I) = 0
IDKPRD(1,NDKYS) = 198
IDKPRD(2,NDKYS) = 199
DO I=3,5
IDKPRD(I,NDKYS) = 0
ENDDO
ENDIF
ENDDO
C--now do the ZZ modes
DO IH=203,204
BR = ZERO
NMODE = 0
DO I=NDECSY,NDKYS
IF(IDK(I).EQ.IH.AND.(IDKPRD(3,I).NE.0.AND.IDKPRD(4,I).EQ.0
& .AND.IDKPRD(1,I).EQ.200.AND.
& ((IDKPRD(2,I).LE.12 .AND.IDKPRD(3,I).LE.12).OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(3,I).GE.121.AND.
& IDKPRD(2,I).LE.132.AND.IDKPRD(3,I).LE.132))
& .OR.((IDKPRD(4,I).NE.0.AND.IDKPRD(5,I).EQ.0.AND.
& (((IDKPRD(1,I).LE.12 .AND.IDKPRD(2,I).LE.12).OR.
& (IDKPRD(1,I).GE.121.AND.IDKPRD(2,I).GE.121.AND.
& IDKPRD(1,I).LE.132.AND.IDKPRD(2,I).LE.132))
& .AND.ICHRG(IDKPRD(1,I))+ICHRG(IDKPRD(2,I)).EQ.0)
& .AND.
& (((IDKPRD(3,I).LE.12 .AND.IDKPRD(4,I).LE.12).OR.
& (IDKPRD(3,I).GE.121.AND.IDKPRD(4,I).GE.121.AND.
& IDKPRD(3,I).LE.132.AND.IDKPRD(4,I).LE.132))
& .AND.ICHRG(IDKPRD(3,I))+ICHRG(IDKPRD(4,I)).EQ.0))))) THEN
BR=BR+BRFRAC(I)
NME(I) = -100
NMODE=NMODE+1
ENDIF
ENDDO
C--add the new mode to the event record
IF(NMODE.GT.0) THEN
REMOVE = .TRUE.
NDKYS = NDKYS+1
IDK(NDKYS) = IH
BRFRAC(NDKYS) = BR
NME(I) = 0
IDKPRD(1,NDKYS) = 200
IDKPRD(2,NDKYS) = 200
DO I=3,5
IDKPRD(I,NDKYS) = 0
ENDDO
ENDIF
ENDDO
IF(.NOT.REMOVE) RETURN
C--now remove the modes we have marked
I = 0
DO J=NDECSY,NDKYS
10 IF(NME(I+J).EQ.-100) I=I+1
IDK(J) = IDK(J+I)
BRFRAC(J)=BRFRAC(I+J)
NME(J) = NME(I+J)
DO K=1,5
IDKPRD(K,J)=IDKPRD(K,I+J)
ENDDO
IF(NME(J).EQ.-100) GOTO 10
ENDDO
C--reset the number of modes
NDKYS = NDKYS-I
END
CDECK ID>, HWIPHS.
*CMZ :- -02/04/01 12.11.55 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWIPHS(IOPT)
C-----------------------------------------------------------------------
C Subroutine to initialise the multichannel integration
C IOPT = 1 sets the weights for the different channels to their
C default values
C IOPT = 2 optimises the weights for the process selected
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,IPRC,ICH,IOPT,ISTP,IWGT,IFER,IANT,IGAU,IQRK
LOGICAL CALLED,TEV,LHC
DOUBLE PRECISION CHNPST(IMAXCH,IMAXOP),D(IMAXOP),CHWGTS(IMAXCH),
& TOTAL,DEM,DMIN,CV,CA,BR,WA(IMAXCH),WITOT,WI(IMAXCH),
& TEVGWT(10,5),LHCGWT(10,5),TEVQWT(6,6,2),LHCQWT(6,6,2)
COMMON /HWPSOM/ WI
SAVE CALLED,DEM,TEVGWT,LHCGWT,TEVQWT,LHCQWT
DATA CALLED/.FALSE./
DATA TEVGWT/0.19684D0,0.00403D0,0.63772D0,0.01209D0,0.01321D0,
& 0.00054D0,0.12984D0,0.00257D0,0.00296D0,0.00019D0,
& 0.24146D0,0.00944D0,0.33949D0,0.01430D0,0.01918D0,
& 0.00169D0,0.33919D0,0.01433D0,0.01931D0,0.00161D0,
& 0.22270D0,0.00004D0,0.38873D0,0.00007D0,0.00009D0,
& 0.00000D0,0.38820D0,0.00007D0,0.00009D0,0.00000D0,
& 0.03228D0,0.00629D0,0.43227D0,0.01147D0,0.00010D0,
& 0.03685D0,0.43270D0,0.01193D0,0.00010D0,0.03602D0,
& 0.05828D0,0.00018D0,0.46870D0,0.00033D0,0.00047D0,
& 0.00092D0,0.46940D0,0.00033D0,0.00047D0,0.00094D0/
DATA LHCGWT/0.10679D0,0.00075D0,0.50915D0,0.00105D0,0.00126D0,
& 0.00039D0,0.37853D0,0.00080D0,0.00092D0,0.00037D0,
& 0.18163D0,0.00456D0,0.38555D0,0.00906D0,0.01160D0,
& 0.00095D0,0.38498D0,0.00920D0,0.01163D0,0.00084D0,
& 0.16647D0,0.00003D0,0.41691D0,0.00007D0,0.00009D0,
& 0.00000D0,0.41627D0,0.00007D0,0.00009D0,0.00000D0,
& 0.01957D0,0.00578D0,0.42971D0,0.01087D0,0.00015D0,
& 0.02305D0,0.47944D0,0.00750D0,0.00016D0,0.02377D0,
& 0.03659D0,0.00027D0,0.45268D0,0.00041D0,0.00063D0,
& 0.00062D0,0.50700D0,0.00045D0,0.00069D0,0.00066D0/
DATA TEVQWT/0.37855D0,0.15212D0,0.38016D0,0.00048D0,0.00047D0,
& 0.08822D0,0.37292D0,0.19051D0,0.36770D0,0.00178D0,
& 0.00180D0,0.06529D0,0.37724D0,0.12202D0,0.37579D0,
& 0.00013D0,0.00013D0,0.12470D0,0.36728D0,0.12100D0,
& 0.36521D0,0.00014D0,0.00014D0,0.14622D0,0.37548D0,
& 0.12144D0,0.37410D0,0.00013D0,0.00013D0,0.12873D0,
& 0.08694D0,0.32633D0,0.07192D0,0.00000D0,0.00000D0,
& 0.51481D0,0.37831D0,0.15131D0,0.38081D0,0.00079D0,
& 0.00077D0,0.08801D0,0.37494D0,0.19012D0,0.36496D0,
& 0.00243D0,0.00246D0,0.06509D0,0.37726D0,0.12071D0,
& 0.37641D0,0.00031D0,0.00032D0,0.12499D0,0.36248D0,
& 0.12007D0,0.36203D0,0.00242D0,0.00243D0,0.15057D0,
& 0.31054D0,0.13065D0,0.30760D0,0.04158D0,0.04178D0,
& 0.16785D0,0.04116D0,0.00125D0,0.04116D0,0.32149D0,
& 0.32030D0,0.27465D0/
DATA LHCQWT/0.45556D0,0.06337D0,0.45712D0,0.00022D0,0.00022D0,
& 0.02351D0,0.43712D0,0.07332D0,0.45023D0,0.00021D0,
& 0.00021D0,0.03890D0,0.44611D0,0.08021D0,0.44572D0,
& 0.00176D0,0.00170D0,0.02450D0,0.47268D0,0.03728D0,
& 0.46843D0,0.00004D0,0.00004D0,0.02152D0,0.45662D0,
& 0.06644D0,0.45586D0,0.00065D0,0.00063D0,0.01980D0,
& 0.18486D0,0.27252D0,0.19067D0,0.00000D0,0.00000D0,
& 0.35195D0,0.45530D0,0.06307D0,0.45770D0,0.00037D0,
& 0.00038D0,0.02318D0,0.43653D0,0.07295D0,0.45173D0,
& 0.00036D0,0.00036D0,0.03807D0,0.47312D0,0.04168D0,
& 0.46993D0,0.00010D0,0.00010D0,0.01506D0,0.47047D0,
& 0.03721D0,0.46860D0,0.00101D0,0.00100D0,0.02172D0,
& 0.44379D0,0.05231D0,0.45440D0,0.01608D0,0.01624D0,
& 0.01717D0,0.25443D0,0.04115D0,0.25503D0,0.18346D0,
& 0.18255D0,0.08337D0/
IF(IERROR.NE.0) RETURN
C--initialize for tevatron or LHC based on energy
TEV = NINT(PBEAM1/1000.0D0).EQ.1
LHC = NINT(PBEAM1/1000.0D0).EQ.7
C--first the initalisation
IF(IOPT.EQ.1) THEN
IPRO = MOD(IPROC/100,100)
IPRC=MOD(IPROC,100)
DO I=1,20
CHNPRB(I) = ZERO
CHON(I) = .FALSE.
ENDDO
C--gauge boson pair production
IF(IPRO.EQ.28.AND.IPRC.LT.50) THEN
IF(MOD(IPRC,5).NE.0.OR.IPRC.EQ.5.OR.IPRC.GT.25)
& CALL HWWARN('HWIPHS',500)
DO I=1,10
CHON(I) = .TRUE.
ENDDO
C--select the process
IGAU = INT(IPRC/5)
IF(IGAU.EQ.0) IGAU = IGAU+1
IF(TEV) THEN
DO I=1,10
CHNPRB(I) = TEVGWT(I,IGAU)
ENDDO
ELSEIF(LHC) THEN
DO I=1,10
CHNPRB(I) = LHCGWT(I,IGAU)
ENDDO
ELSE
DO I=1,10
CHNPRB(I) = 0.1D0
ENDDO
ENDIF
CALLED=.TRUE.
DEM = ONE/DBLE(IOPSH)
C--Drell Yan + 2 jet production
ELSEIF(IPRO.EQ.29) THEN
DO I=1,6
CHON(I) = .TRUE.
ENDDO
IF(IPRC.LE.6) THEN
IGAU = 1
ELSEIF(IPRC.GE.11.AND.IPRC.LE.16) THEN
IGAU = 2
ELSE
CALL HWWARN('HWIPHS',502)
ENDIF
IQRK = MOD(IPRC,10)
IF(IQRK.EQ.0.OR.IQRK.GT.6) CALL HWWARN('HWIPHS',503)
IF(TEV) THEN
DO I=1,6
CHNPRB(I) = TEVQWT(I,IQRK,IGAU)
ENDDO
ELSEIF(LHC) THEN
DO I=1,6
CHNPRB(I) = LHCQWT(I,IQRK,IGAU)
ENDDO
ELSE
DO I=1,6
CHNPRB(I) = 1.0D0/6.0D0
ENDDO
ENDIF
CALLED=.TRUE.
DEM = ONE/DBLE(IOPSH)
ELSE
CALLED=.FALSE.
RETURN
ENDIF
ELSE
IF(.NOT.CALLED) RETURN
TOTAL = ZERO
DO I=1,IMAXCH
IF(CHON(I)) TOTAL = TOTAL+CHNPRB(I)
ENDDO
IF(TOTAL.EQ.ZERO) CALL HWWARN('HWIPHS',501)
IF(TOTAL.NE.ONE) THEN
DO I=1,IMAXCH
IF(CHON(I)) CHNPRB(I) = CHNPRB(I)/TOTAL
ENDDO
ENDIF
IF(.NOT.OPTM) RETURN
WRITE(*,50)
C--optimise the weights
FSTWGT=.TRUE.
C---SET UP INITIAL STATE
NHEP=1
ISTHEP(NHEP)=101
PHEP(1,NHEP)=0.
PHEP(2,NHEP)=0.
PHEP(3,NHEP)=PBEAM1
PHEP(4,NHEP)=EBEAM1
PHEP(5,NHEP)=RMASS(IPART1)
JMOHEP(1,NHEP)=0
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IDHW(NHEP)=IPART1
IDHEP(NHEP)=IDPDG(IPART1)
NHEP=NHEP+1
ISTHEP(NHEP)=102
PHEP(1,NHEP)=0.
PHEP(2,NHEP)=0.
PHEP(3,NHEP)=-PBEAM2
PHEP(4,NHEP)=EBEAM2
PHEP(5,NHEP)=RMASS(IPART2)
JMOHEP(1,NHEP)=0
JMOHEP(2,NHEP)=0
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
IDHW(NHEP)=IPART2
IDHEP(NHEP)=IDPDG(IPART2)
C---NEXT ENTRY IS OVERALL CM FRAME
NHEP=NHEP+1
IDHW(NHEP)=14
IDHEP(NHEP)=0
ISTHEP(NHEP)=103
JMOHEP(1,NHEP)=NHEP-2
JMOHEP(2,NHEP)=NHEP-1
JDAHEP(1,NHEP)=0
JDAHEP(2,NHEP)=0
CALL HWVSUM(4,PHEP(1,NHEP-1),PHEP(1,NHEP-2),PHEP(1,NHEP))
CALL HWUMAS(PHEP(1,NHEP))
DO ISTP=1,IOPSTP
WRITE(*,100) ISTP
DO ICH=1,IMAXCH
CHWGTS(ICH) = ZERO
CHNPST(ICH,ISTP) = CHNPRB(ICH)
IF(CHON(ICH)) WRITE(*,200) ICH,CHNPRB(ICH)
ENDDO
C--compute the weights for the various channels
DO I=1,IOPSH
IF(IPRO.EQ.28) THEN
CALL HWHGBP
FSTWGT=.FALSE.
CALL HWDBZ2(200,IFER,IANT,CV,CA,BR,2,ZERO)
ELSEIF(IPRO.EQ.29) THEN
CALL HWHV2J
FSTWGT=.FALSE.
CALL HWDBOZ(200,IFER,IANT,CV,CA,BR,2)
ENDIF
DO ICH=1,IMAXCH
IF(CHON(ICH)) CHWGTS(ICH) = CHWGTS(ICH)+WI(ICH)
ENDDO
ENDDO
WITOT = ZERO
DO ICH=1,IMAXCH
IF(CHON(ICH)) THEN
WA(ICH) = CHWGTS(ICH)*DEM
WITOT = WITOT+WA(ICH)*CHNPRB(ICH)
ENDIF
ENDDO
C--now pick the next set of probablities for the different channels
TOTAL = ZERO
DO ICH=1,IMAXCH
IF(CHON(ICH)) THEN
CHNPRB(ICH) = CHNPRB(ICH)*SQRT(WA(ICH))
TOTAL = TOTAL+CHNPRB(ICH)
ENDIF
ENDDO
DO ICH=1,IMAXCH
CHNPRB(ICH)=CHNPRB(ICH)/TOTAL
ENDDO
D(ISTP) = ZERO
DO ICH=1,IMAXCH
IF(CHON(ICH)) THEN
IF(D(ISTP).EQ.ZERO) THEN
D(ISTP) = ABS(WITOT-WA(ICH))
ELSE
D(ISTP) = MAX(D(ISTP),ABS(WITOT-WA(ICH)))
ENDIF
ENDIF
ENDDO
WRITE(*,300) D(ISTP)
ENDDO
C--pick the best set of weights
IWGT = 1
DMIN = D(1)
DO I=2,IOPSTP
IF(D(I).LT.DMIN) THEN
IWGT = I
DMIN = D(I)
ENDIF
ENDDO
WRITE(*,500) IWGT
DO I=1,IMAXCH
IF(CHON(I)) THEN
CHNPRB(I)=CHNPST(I,IWGT)
WRITE(*,200) I,CHNPRB(I)
ENDIF
ENDDO
OPTM = .FALSE.
ENDIF
RETURN
50 FORMAT(/10X,'OPTIMIZING THE WEIGHTS FOR MULTICHANNEL INTEGRATION')
100 FORMAT(/10X,'PERFORMING ITERATION',I2,/10X)
200 FORMAT( 12X,'CHNPRB(',I2,') = ',F7.5)
300 FORMAT(/10X,'DIFFERENCE IN W BETWEEN CHANNELS',E15.5)
500 FORMAT(/10X,'SELECTED ITERATION',I2)
END
CDECK ID>, HWISPC.
*CMZ :- -27/07/99 16.38.25 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWISPC
C-----------------------------------------------------------------------
C Calculates the couplings for the SUSY decays for spin correlations
C and 3/4 body matrix elements
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUALF,PRE,MCHAR(2),QIJPP(4,4),SIJPP(4,4),
& DIJ(2,2),QIJ(2,2),R(4,2),SIJ(2,2)
INTEGER I,J,K,L,IH,IK,IL,IQ
COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
& OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN(2,12,2,4),
& AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
& HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
& HZZ(2),ZAB(12,2,2),HHB(2,3)
EXTERNAL HWUALF
SAVE DIJ
DATA DIJ/1.0D0,0.0D0,0.0D0,1.0D0/
IF(IERROR.NE.0) RETURN
C--coupling constants
SW = SQRT(SWEIN)
CW = SQRT(ONE-SWEIN)
TW = SW/CW
E = SQRT(FOUR*PIFAC/128.0D0)
G = E/SW
RT = SQRT(TWO)
ORT = ONE/RT
MW = RMASS(198)
MZ = RMASS(200)
IF(.NOT.SUSYIN) RETURN
GS = SQRT(HWUALF(3,RMASS(449))*FOUR*PIFAC)
C--couplings of the neutralinos to the squarks
DO 1 L=1,4
MCHAR(1) = ORT*G*ZMIXSS(L,3)/MW/COSB
MCHAR(2) = ORT*G*ZMIXSS(L,4)/MW/SINB
DO 1 I=1,3
J = 2*I-1
DO 2 K=1,2
AFN(1,J,K,L) =-MCHAR(1)*RMASS(J)*QMIXSS(J,2,K)
& -RT*E*QMIXSS(J,1,K)*SLFCH(J,L)
2 AFN(2,J,K,L) =-ZSGNSS(L)*(MCHAR(1)*RMASS(J)*QMIXSS(J,1,K)
& +RT*E*QMIXSS(J,2,K)*SRFCH(J,L))
J = 2*I
DO 1 K=1,2
AFN(1,J,K,L) =-MCHAR(2)*RMASS(J)*QMIXSS(J,2,K)
& -RT*E*QMIXSS(J,1,K)*SLFCH(J,L)
1 AFN(2,J,K,L) =-ZSGNSS(L)*(MCHAR(2)*RMASS(J)*QMIXSS(J,1,K)
& +RT*E*QMIXSS(J,2,K)*SRFCH(J,L))
C--couplings of the neutralinos to the sleptons
DO 3 L=1,4
MCHAR(1) = ORT*G*ZMIXSS(L,3)/MW/COSB
DO 3 I=1,3
J = 2*I-1
IL = J+10
IK = J+6
DO 4 K=1,2
AFN(1,IK,K,L) =-(MCHAR(1)*RMASS(110+IL)*LMIXSS(J,2,K)
& +RT*E*LMIXSS(J,1,K)*SLFCH(IL,L))
4 AFN(2,IK,K,L) =-ZSGNSS(L)*(MCHAR(1)*RMASS(110+IL)*LMIXSS(J,1,K)
& +RT*E*LMIXSS(J,2,K)*SRFCH(IL,L))
J = J+1
IL = IL+1
IK = IK+1
DO 3 K=1,2
AFN(1,IK,K,L) =-RT*E*LMIXSS(J,1,K)*SLFCH(IL,L)
3 AFN(2,IK,K,L) = ZERO
C--couplings of the gluinos to the squarks
DO 5 I=1,6
DO 5 K=1,2
AFG(1,I,K) = -GS*RT*QMIXSS(I,1,K)
5 AFG(2,I,K) = +GS*RT*QMIXSS(I,2,K)
C--couplings of the charginos to the squarks
DO 6 L=1,2
MCHAR(1) =-WMXVSS(L,2)*ORT/MW/SINB
MCHAR(2) =-WMXUSS(L,2)*ORT/MW/COSB
DO 6 I=1,3
J = 2*I-1
DO 7 K=1,2
AFC(1,J,K,L) = -G*( WMXUSS(L,1)*QMIXSS(J,1,K)
& +MCHAR(2)*RMASS(J)*QMIXSS(J,2,K))
7 AFC(2,J,K,L) = -G*WSGNSS(L)*MCHAR(1)*
& RMASS(J+1)*QMIXSS(J,1,K)
J = 2*I
DO 6 K=1,2
AFC(1,J,K,L) = -G*WSGNSS(L)*( WMXVSS(L,1)*QMIXSS(J,1,K)
& +MCHAR(1)*RMASS(J)*QMIXSS(J,2,K))
6 AFC(2,J,K,L) = -G*MCHAR(2)*RMASS(J-1)*QMIXSS(J,1,K)
C--couplings of the charginos to the sleptons
DO 8 L=1,2
MCHAR(1) = -WMXUSS(L,2)*ORT/MW/COSB
DO 8 I=1,3
J = 2*I-1
IL = J+6
DO 9 K=1,2
AFC(1,IL,K,L) = -G*(WMXUSS(L,1)*LMIXSS(J,1,K)
& +RMASS(120+J)*MCHAR(1)*LMIXSS(J,2,K))
9 AFC(2,IL,K,L) = ZERO
J = J+1
IL = IL+1
DO 8 K=1,2
AFC(1,IL,K,L) =-WSGNSS(L)*G*WMXVSS(L,1)
8 AFC(2,IL,K,L) =-MCHAR(1)*G*RMASS(119+J)
C--couplings of chargino-neutralino to the W
DO 10 I=1,4
DO 10 J=1,2
OIJ(1,I,J) = G*( ORT*ZMXNSS(I,3)*WMXUSS(J,2)
& +ZMXNSS(I,2)*WMXUSS(J,1))
10 OIJ(2,I,J) = ZSGNSS(I)*WSGNSS(J)*G*(-ORT*ZMXNSS(I,4)*WMXVSS(J,2)
& +ZMXNSS(I,2)*WMXVSS(J,1))
C--couplings of chargino-chargino to the Z
PRE = G/CW
DO 11 I=1,2
DO 11 J=1,2
OIJP(1,I,J) = PRE*(-WMXUSS(I,1)*WMXUSS(J,1)
& -HALF*WMXUSS(I,2)*WMXUSS(J,2)+DIJ(I,J)*SWEIN)
11 OIJP(2,I,J) = WSGNSS(I)*WSGNSS(J)*PRE*(-WMXVSS(I,1)*WMXVSS(J,1)
& -HALF*WMXVSS(I,2)*WMXVSS(J,2)+DIJ(I,J)*SWEIN)
C--couplings of neutralino-neutralino to the Z
PRE = HALF*G/CW
DO 12 I=1,4
DO 12 J=1,4
OIJPP(1,I,J) = PRE*(ZMIXSS(I,3)*ZMIXSS(J,3)
& -ZMIXSS(I,4)*ZMIXSS(J,4))
12 OIJPP(2,I,J) = -ZSGNSS(I)*ZSGNSS(J)*OIJPP(1,I,J)
C--couplings of the neutralino-neutralino to the Higgs
DO 13 I=1,4
DO 13 J=1,4
QIJPP(I,J) = HALF*ZSGNSS(I)*
& (ZMXNSS(I,3)*(ZMXNSS(J,2)-ZMXNSS(J,1)*TW)
& +ZMXNSS(J,3)*(ZMXNSS(I,2)-ZMXNSS(I,1)*TW))
13 SIJPP(I,J) = HALF*ZSGNSS(I)*
& (ZMXNSS(I,4)*(ZMXNSS(J,2)-ZMXNSS(J,1)*TW)
& +ZMXNSS(J,4)*(ZMXNSS(I,2)-ZMXNSS(I,1)*TW))
DO 14 I=1,4
DO 14 J=1,4
HNN(1,1,I,J) = G*(QIJPP(I,J)*SINA+SIJPP(I,J)*COSA)
HNN(2,1,I,J) = G*(QIJPP(J,I)*SINA+SIJPP(J,I)*COSA)
HNN(1,2,I,J) = G*(SIJPP(I,J)*SINA-QIJPP(I,J)*COSA)
HNN(2,2,I,J) = G*(SIJPP(J,I)*SINA-QIJPP(J,I)*COSA)
HNN(1,3,I,J) = G*(QIJPP(I,J)*SINB-SIJPP(I,J)*COSB)
14 HNN(2,3,I,J) =-G*(QIJPP(J,I)*SINB-SIJPP(J,I)*COSB)
C--couplings of chargino-chargino to the Higgs
DO 15 I=1,2
DO 15 J=1,2
QIJ(I,J) = ORT*WSGNSS(I)*WMXVSS(I,1)*WMXUSS(J,2)
15 SIJ(I,J) = ORT*WSGNSS(I)*WMXVSS(I,2)*WMXUSS(J,1)
DO 16 I=1,2
DO 16 J=1,2
HCC(1,1,I,J) = G*(QIJ(I,J)*SINA-SIJ(I,J)*COSA)
HCC(2,1,I,J) = G*(QIJ(J,I)*SINA-SIJ(J,I)*COSA)
HCC(1,2,I,J) =-G*(QIJ(I,J)*COSA+SIJ(I,J)*SINA)
HCC(2,2,I,J) =-G*(QIJ(J,I)*COSA+SIJ(J,I)*SINA)
HCC(1,3,I,J) = G*(QIJ(I,J)*SINB+SIJ(I,J)*COSB)
16 HCC(2,3,I,J) =-G*(QIJ(J,I)*SINB+SIJ(J,I)*COSB)
C--couplings of chargino-neutralino to the Higgs
DO 17 I=1,4
DO 17 J=1,2
HNC(1,I,J) =-G*ZSGNSS(I)*SINB*(ZMXNSS(I,3)*WMXUSS(J,1)
& -ORT*(ZMXNSS(I,2)+ZMXNSS(I,1)*TW)*WMXUSS(J,2))
17 HNC(2,I,J) =-G*WSGNSS(J)*COSB*(ZMXNSS(I,4)*WMXVSS(J,1)
& +ORT*(ZMXNSS(I,2)+ZMXNSS(I,1)*TW)*WMXVSS(J,2))
C--fermion couplings to the Higgs
R(1,1) = HALF*G*SINA/MW/COSB
R(1,2) =-HALF*G*COSA/MW/SINB
R(2,1) =-HALF*G*COSA/MW/COSB
R(2,2) =-HALF*G*SINA/MW/SINB
R(3,1) = HALF*G*TANB/MW
R(3,2) = HALF*G*COTB/MW
R(4,1) = G*ORT*TANB/MW
R(4,2) = G*ORT*COTB/MW
DO 18 I=1,3
J = 2*I-1
K = 2*I
IL = J+6
IQ = K+6
DO 19 IK=1,3
DO 19 L=1,2
HFF(L,IK,J ) = R(IK,1)*RMASS(J)
HFF(L,IK,K ) = R(IK,2)*RMASS(K)
HFF(L,IK,IL) = R(IK,1)*RMASS(114+IL)
19 HFF(L,IK,IQ) = ZERO
HFF(2,3,J ) = -HFF(2,3, J)
HFF(2,3,K ) = -HFF(2,3, K)
HFF(2,3,IL) = -HFF(2,3,IL)
HFF(1,4,I) = RMASS(J)*R(4,1)
HFF(2,4,I) = RMASS(K)*R(4,2)
HFF(1,4,I+3) = RMASS(114+IL)*R(4,1)
18 HFF(2,4,I+3) = ZERO
C--couplings of the Higgs to gauge boson pairs
HWW(1) = G*MW*SINBMA
HWW(2) = G*MW*COSBMA
HZZ(1) = G*MZ*SINBMA/CW
HZZ(2) = G*MZ*COSBMA/CW
C--couplings of the Z to the sfermions
DO 20 I=1,3
IQ = 2*I-1
IL = 2*I
IK = 2*I+5
IH = 2*I+6
DO 20 J=1,2
DO 20 K=1,2
ZAB(IQ,J,K) = G/CW*HALF*( QMIXSS(IQ,1,J)*QMIXSS(IQ,1,K)
& -TWO*DIJ(J,K) *SWEIN/THREE)
ZAB(IL,J,K) = G/CW*HALF*(-QMIXSS(IL,1,J)*QMIXSS(IL,1,K)
& -FOUR*DIJ(J,K)*SWEIN/THREE)
ZAB(IK,J,K) = G/CW*HALF*( LMIXSS(IQ,1,J)*LMIXSS(IQ,1,K)
& -TWO*DIJ(J,K)*SWEIN)
20 ZAB(IH,J,K) =-G/CW*HALF*DIJ(J,1)*DIJ(K,1)
C--couplings of the Higgs Higgs to the gauge bosons
HHB(1,1) = HALF*G*COSBMA
HHB(1,2) = HALF*G*SINBMA
HHB(1,3) = HALF*G
HHB(2,1) =-HALF*G*COSBMA/CW
HHB(2,2) = HALF*G*SINBMA/CW
HHB(2,3) = ZERO
END
CDECK ID>, HWISPN.
*CMZ :- -12/10/01 17.22.48 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWISPN
C-----------------------------------------------------------------------
C Initialise all the decay modes for three/four body MEs and spin
C correlations
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,NDKYST
C--set the number of two and three body modes to zero
N2MODE = 0
N3MODE = 0
NBMODE = 0
N4MODE = 0
C--if not reading in decay info calculate it
IF(LRDEC.EQ.0) THEN
C--initialise the couplings for the various decay modes
CALL HWISPC
C--Top decays and SUSY three body decays (including SUSY gauge
C--boson 2 body modes which are treated as three body)
IF(THREEB) CALL HWISP3
IF(IERROR.NE.0) RETURN
C--then four body modes if needed
IF(FOURB) CALL HWISP4
IF(IERROR.NE.0) RETURN
C--Two body modes if needed for spin correlations
IF(SYSPIN) CALL HWISP2
IF(IERROR.NE.0) RETURN
C--otherwise read it in
ELSEIF(LRDEC.GT.0) THEN
C--open the unit
IF (IPRINT.NE.0) WRITE (6,1) LRDEC
1 FORMAT(/10X,'READING MATRIX ELEMENT TABLE ON UNIT',I4)
OPEN(UNIT=LRDEC,FORM='UNFORMATTED',STATUS='UNKNOWN')
C--read options
READ(UNIT=LRDEC) NDKYST
IF(NDKYS.NE.NDKYST) CALL HWWARN('HWISPN',501)
READ(UNIT=LRDEC) SYSPIN,THREEB,FOURB
C--read two body decays
IF(SYSPIN) THEN
READ(UNIT=LRDEC) N2MODE
DO 2 I=1,N2MODE
2 READ(UNIT=LRDEC) (A2MODE(J,I),J=1,2),P2MODE(I),WT2MAX(I),
& ID2PRT(I),I2DRTP(I)
ENDIF
C--read three body decays
IF(SYSPIN.OR.THREEB) THEN
READ(UNIT=LRDEC) N3MODE
DO 3 I=1,N3MODE
READ(UNIT=LRDEC) P3MODE(I),WT3MAX(I),ID3PRT(I),NDI3BY(I),
& ((SPN3CF(J,K,I),J=1,NCFMAX),K=1,NCFMAX),N3NCFL(I)
DO 3 J=1,NDI3BY(I)
3 READ(UNIT=LRDEC) (A3MODE(K,J,I),K=1,2),(B3MODE(K,J,I),K=1,2),
& I3DRTP(J,I),I3MODE(J,I),I3DRCF(J,I)
C--read two body gauge boson modes
READ(UNIT=LRDEC) NBMODE
DO 4 I=1,NBMODE
4 READ(UNIT=LRDEC) (ABMODE(J,I),J=1,2),
& ((BBMODE(J,K,I),J=1,2),K=1,12),(PBMODE(K,I),K=1,12),
& (WTBMAX(K,I),K=1,12),IDBPRT(I),IBMODE(I),IBDRTP(I)
ENDIF
C--read four body decays
IF(FOURB) THEN
READ(UNIT=LRDEC) N4MODE
DO 5 I=1,N4MODE
5 READ(UNIT=LRDEC) ((A4MODE(J,K,I),J=1,2),K=1,12),
& ((B4MODE(J,K,I),J=1,2),K=1,12),
& ((P4MODE(J,K,I),J=1,12),K=1,12),
& ((WT4MAX(J,K,I),J=1,12),K=1,12),ID4PRT(I),
& (I4MODE(J,I),J=1,2)
ENDIF
C--finally read in the matrix element codes
READ(UNIT=LRDEC) NME
ELSE
CALL HWWARN('HWISPN',500)
ENDIF
C--write the decay information if needed
IF(LWDEC.GT.0) THEN
C--open the file
IF (IPRINT.NE.0) WRITE (6,6) LWDEC
6 FORMAT(/10X,'WRITING MATRIX ELEMENT TABLE ON UNIT',I4)
OPEN(UNIT=LWDEC,FORM='UNFORMATTED',STATUS='UNKNOWN')
C--write options
WRITE(UNIT=LWDEC) NDKYS
WRITE(UNIT=LWDEC) SYSPIN,THREEB,FOURB
C--write two body decays
IF(SYSPIN) THEN
WRITE(UNIT=LWDEC) N2MODE
DO 7 I=1,N2MODE
7 WRITE(UNIT=LWDEC) (A2MODE(J,I),J=1,2),P2MODE(I),WT2MAX(I),
& ID2PRT(I),I2DRTP(I)
ENDIF
C--write three body decays
IF(SYSPIN.OR.THREEB) THEN
WRITE(UNIT=LWDEC) N3MODE
DO 8 I=1,N3MODE
WRITE(UNIT=LWDEC) P3MODE(I),WT3MAX(I),ID3PRT(I),NDI3BY(I),
& ((SPN3CF(J,K,I),J=1,NCFMAX),K=1,NCFMAX),N3NCFL(I)
DO 8 J=1,NDI3BY(I)
8 WRITE(UNIT=LWDEC) (A3MODE(K,J,I),K=1,2),(B3MODE(K,J,I),K=1,2),
& I3DRTP(J,I),I3MODE(J,I),I3DRCF(J,I)
C--write two body gauge boson modes
WRITE(UNIT=LWDEC) NBMODE
DO 9 I=1,NBMODE
9 WRITE(UNIT=LWDEC) (ABMODE(J,I),J=1,2),
& ((BBMODE(J,K,I),J=1,2),K=1,12),(PBMODE(K,I),K=1,12),
& (WTBMAX(K,I),K=1,12),IDBPRT(I),IBMODE(I),IBDRTP(I)
ENDIF
C--write four body decays
IF(FOURB) THEN
WRITE(UNIT=LWDEC) N4MODE
DO 10 I=1,N4MODE
10 WRITE(UNIT=LWDEC) ((A4MODE(J,K,I),J=1,2),K=1,12),
& ((B4MODE(J,K,I),J=1,2),K=1,12),
& ((P4MODE(J,K,I),J=1,12),K=1,12),
& ((WT4MAX(J,K,I),J=1,12),K=1,12),ID4PRT(I),
& (I4MODE(J,I),J=1,2)
ENDIF
C--finally write the matrix element codes
WRITE(UNIT=LWDEC) NME
ENDIF
END
CDECK ID>, HWISP2.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWISP2
C-----------------------------------------------------------------------
C Initialise the SUSY two body modes for spin correlations
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,IL,IH,L,L1,IM,O(2),II,JJ,III,JJJ,KKK
COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
& OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN(2,12,2,4),
& AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
& HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
& HZZ(2),ZAB(12,2,2),HHB(2,3),FPI
SAVE O,FPI
DATA O/2,1/
DATA FPI/0.09298D0/
IF(IERROR.NE.0.OR..NOT.SUSYIN) RETURN
C--now the two body modes for spin corrections
DO 1000 JJ=1,NRES
DO 1000 II=1,NMODES(JJ)
IF(II.EQ.1) THEN
I = LSTRT(JJ)
ELSE
I = LNEXT(I)
ENDIF
IF(IDKPRD(2,I).EQ.0.OR.IDKPRD(3,I).NE.0.OR.
& (NME(I).GT.10000.AND.NME(I).LT.50000)) GOTO 1000
L1 = IDK(I)-449
C--two body top to charged higgs decay
IF(IDK(I).EQ.6.AND.IDKPRD(1,I).EQ.206.AND.
& IDKPRD(2,I).EQ.5) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',100)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 2
P2MODE(N2MODE) = ONE
DO 201 J=1,2
201 A2MODE(J,N2MODE) = HFF(O(J),4,3)
C--two body antitop to charged higgs
ELSEIF(IDK(I).EQ.12.AND.IDKPRD(1,I).EQ.207.AND.
& IDKPRD(2,I).EQ.11) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',101)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 14
P2MODE(N2MODE) = ONE
DO 202 J=1,2
202 A2MODE(J,N2MODE) = HFF( J ,4,3)
C--two body modes of the gluino
ELSEIF(L1.EQ.0) THEN
L = IDKPRD(1,I)-449
C--gluino to antisfermion fermion
IF(IDPDG(IDKPRD(2,I)).GT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',102)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 2
P2MODE(N2MODE) = HALF
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
DO 1 J=1,2
1 A2MODE(J,N2MODE) = AFG(J,IL,IM)
C--gluino to sfermion antifermion
ELSEIF(IDPDG(IDKPRD(2,I)).LT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',103)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 3
P2MODE(N2MODE) = HALF
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
DO 2 J=1,2
2 A2MODE(J,N2MODE) = AFG(O(J),IL,IM)
C--gluino to neutralino gluon
ELSEIF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.13) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',104)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 4
P2MODE(N2MODE) = 8.0D0*PIFAC*RMASS(IDK(I))**3/
& (RMASS(IDK(I))**2-RMASS(IDKPRD(1,I))**2)**3*
& HBAR/RLTIM(IDK(I))*BRFRAC(I)
A2MODE(1,N2MODE) = ZSGNSS(L)
C--gluino to gravitino gluon
ELSEIF(IDKPRD(1,I).EQ.458.AND.IDKPRD(2,I).EQ.13) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',105)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 9
P2MODE(N2MODE) = ONE/24.0D0
ENDIF
C--two body modes of the neutralinos
ELSEIF(L1.GE.1.AND.L1.LE.4) THEN
L = IDKPRD(1,I)-449
IH = IDKPRD(2,I)-202
C--first the neutralino modes to neutralino Higgs
IF(L.GE.1.AND.L.LE.4.AND.IH.GE.1.AND.IH.LE.3) THEN
N2MODE = N2MODE+1
IF(N2MODE.GE.NMODE2) THEN
CALL HWWARN('HWISP2',106)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 3 J=1,2
3 A2MODE(J,N2MODE) = HNN(J,IH,L,L1)
C--neutralino to positive chargino negative Higgs
ELSEIF((L.EQ.5.OR.L.EQ.6).AND.IH.EQ.5) THEN
L = L-4
N2MODE = N2MODE+1
IF(N2MODE.GE.NMODE2) THEN
CALL HWWARN('HWISP2',107)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 4 J=1,2
4 A2MODE(J,N2MODE) = HNC(O(J),L1,L)
C--neutralino to negative chargino positive Higgs
ELSEIF((L.EQ.7.OR.L.EQ.8).AND.IH.EQ.6) THEN
L = L-6
N2MODE = N2MODE+1
IF(N2MODE.GE.NMODE2) THEN
CALL HWWARN('HWISP2',108)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 5 J=1,2
5 A2MODE(J,N2MODE) = HNC(J,L1,L)
C--neutralino to antisfermion sfermion
ELSEIF(IDPDG(IDKPRD(2,I)).GT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',109)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 2
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 6 J=1,2
6 A2MODE(J,N2MODE) = AFN(J,IL,IM,L1)
C--neutralino to sfermion antifermion
ELSEIF(IDPDG(IDKPRD(2,I)).LT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',110)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 3
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 7 J=1,2
7 A2MODE(J,N2MODE) = AFN(O(J),IL,IM,L1)
C--neutralino to neutralino photon
ELSEIF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.59) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',111)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 4
P2MODE(N2MODE) = 8.0D0*PIFAC*RMASS(IDK(I))**3/
& (RMASS(IDK(I))**2-RMASS(IDKPRD(1,I))**2)**3*
& HBAR/RLTIM(IDK(I))*BRFRAC(I)
A2MODE(1,N2MODE) = ZSGNSS(L)*ZSGNSS(L1)
C--neutralino to gravitino photon for GMSB
ELSEIF(IDKPRD(1,I).EQ.458.AND.IDKPRD(2,I).EQ.59) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',112)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 9
P2MODE(N2MODE) = ZMIXSS(L1,1)**2/24.0D0
C--neutralino to gravitino Higgs for GMSB
ELSEIF(IDKPRD(1,I).EQ.458.AND.IH.GE.1.AND.IH.LE.3) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',113)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 10
IF(IH.EQ.1) THEN
P2MODE(N2MODE) = ZMIXSS(L1,3)*SINA-ZMIXSS(L1,4)*COSA
ELSEIF(IH.EQ.2) THEN
P2MODE(N2MODE) = ZMIXSS(L1,3)*COSA+ZMIXSS(L1,4)*SINA
ELSE
P2MODE(N2MODE) = ZMIXSS(L1,3)*SINB+ZMIXSS(L1,4)*COSB
ENDIF
P2MODE(N2MODE) = P2MODE(N2MODE)**2/3.0D0
ELSE
CALL HWWARN('HWISP2',1)
ENDIF
C--two body modes of the positive charginos
ELSEIF(L1.EQ.5.OR.L1.EQ.6) THEN
L1 = L1-4
L = IDKPRD(1,I)-449
IH = IDKPRD(2,I)-202
C--first the chargino modes to chargino Higgs
IF((L.EQ.5.OR.L.EQ.6).AND.IH.GE.1.AND.IH.LE.3) THEN
L = L-4
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',114)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 8 J=1,2
8 A2MODE(J,N2MODE) = HCC(J,IH,L,L1)
C--then the chargino modes to neutralino Higgs
ELSEIF(L.GE.1.AND.L.LE.4.AND.IH.EQ.4) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',115)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 9 J=1,2
9 A2MODE(J,N2MODE) = HNC(J,L,L1)
C--chargino modes to antisfermion fermion
ELSEIF(IDPDG(IDKPRD(2,I)).GT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',116)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 2
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 10 J=1,2
10 A2MODE(J,N2MODE) = AFC(J,IL,IM,L1)
C--chargino modes to sfermion antifermion
ELSEIF(IDPDG(IDKPRD(2,I)).LT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',117)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 3
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 11 J=1,2
11 A2MODE(J,N2MODE) = AFC(O(J),IL,IM,L1)
C--chargino --> neutralino pi+
ELSEIF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.38) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',118)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 7
P2MODE(N2MODE) = FPI**2*G**2
DO 12 J=1,2
12 A2MODE(J,N2MODE) = OIJ(J,L,L1)
ENDIF
C--two body modes of the negative charginos
ELSEIF(L1.EQ.7.OR.L1.EQ.8) THEN
L1 = L1-6
L = IDKPRD(1,I)-449
IH = IDKPRD(2,I)-202
C--first the chargino modes to chargino Higgs
IF((L.EQ.7.OR.L.EQ.8).AND.IH.GE.1.AND.IH.LE.3) THEN
L = L-6
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',119)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 13 J=1,2
13 A2MODE(J,N2MODE) = HCC(O(J),IH,L,L1)
C--then the chargino modes to neutralino Higgs
ELSEIF(L.GE.1.AND.L.LE.4.AND.IH.EQ.5) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',120)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 1
P2MODE(N2MODE) = ONE
DO 14 J=1,2
14 A2MODE(J,N2MODE) = HNC(O(J),L,L1)
C--chargino to antisfermion fermion
ELSEIF(IDPDG(IDKPRD(2,I)).GT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',121)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 2
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 15 J=1,2
15 A2MODE(J,N2MODE) = AFC(J,IL,IM,L1)
C--chargino to sfermion antifermion
ELSEIF(IDPDG(IDKPRD(2,I)).LT.0.AND.L.GE.-48.AND.L.LE.-1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',122)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 3
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDKPRD(1,I)-389)/12)+1,2)+1
IL = 6*INT((IDKPRD(1,I)-401)/24)+MOD(IDKPRD(1,I)-401,6)+1
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 16 J=1,2
16 A2MODE(J,N2MODE) = AFC(O(J),IL,IM,L1)
C--chargino --> neutralino pi-
ELSEIF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.30) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',123)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 7
P2MODE(N2MODE) = FPI**2*G**2
DO 17 J=1,2
17 A2MODE(J,N2MODE) =-OIJ(O(J),L,L1)
ENDIF
ELSEIF(L1.GE.-48.AND.L1.LT.0) THEN
C--sfermion decay modes
L = IDKPRD(1,I)-449
C--first sfermion modes to gluinos
IF(L.EQ.0) THEN
C--first sfermion --> fermion gluino
IF(IDPDG(IDKPRD(2,I)).GT.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',124)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = FOUR/THREE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
DO 18 J=1,2
18 A2MODE(J,N2MODE) = AFG(J,IL,IM)
C--then antisfermion --> antifermion gluino
ELSE
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',125)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 5
P2MODE(N2MODE) = FOUR/THREE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
DO 19 J=1,2
19 A2MODE(J,N2MODE) = AFG(O(J),IL,IM)
ENDIF
C--then sfermion modes to neutralinos
ELSEIF(L.GE.1.AND.L.LE.4) THEN
C--first sfermion --> fermion neutralino
IF(IDPDG(IDKPRD(2,I)).GT.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',126)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
DO 20 J=1,2
20 A2MODE(J,N2MODE) = AFN(J,IL,IM,L)
C--then antisfermion --> fermion neutralino
ELSE
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',127)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 5
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
DO 21 J=1,2
21 A2MODE(J,N2MODE) = AFN(O(J),IL,IM,L)
ENDIF
C--sfermion modes to charginos
ELSEIF(L.GE.5.AND.L.LE.8) THEN
L = MOD(L-5,2)+1
C--first sfermion --> fermion chargino
IF(IDPDG(IDKPRD(2,I)).GT.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',128)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
DO 22 J=1,2
22 A2MODE(J,N2MODE) = AFC(J,IL,IM,L)
C--then antisfermion --> fermion chargino
ELSE
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',129)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 5
P2MODE(N2MODE) = ONE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
DO 23 J=1,2
23 A2MODE(J,N2MODE) = AFC(O(J),IL,IM,L)
ENDIF
C--sfermion modes to fermion gravitino
ELSEIF(IDKPRD(2,I).EQ.458) THEN
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',130)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 11
P2MODE(N2MODE) = ONE/THREE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
IF(IL.LE.6) THEN
DO 40 J=1,2
40 A2MODE(J,N2MODE) = QMIXSS(IL,O(J),IM)
ELSE
DO 41 J=1,2
41 A2MODE(J,N2MODE) = LMIXSS(IL-6,O(J),IM)
ENDIF
ELSE
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',131)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 12
P2MODE(N2MODE) = ONE/THREE
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
IF(IL.LE.6) THEN
DO 42 J=1,2
42 A2MODE(J,N2MODE) = QMIXSS(IL,O(J),IM)
ELSE
DO 43 J=1,2
43 A2MODE(J,N2MODE) = LMIXSS(IL-6,O(J),IM)
ENDIF
ENDIF
C--R-parity violating decay modes
C--LLE modes
ELSEIF(IDK(I).GE.425.AND.IDK(I).LE.448.AND.
& IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132) THEN
C--charged slepton decays
IF(MOD(IDK(I),2).EQ.1) THEN
C--right slepton decay
IF(IDPDG(IDKPRD(1,I))/ABS(IDPDG(IDKPRD(1,I))).EQ.
& IDPDG(IDKPRD(2,I))/ABS(IDPDG(IDKPRD(2,I)))) THEN
C--particle decay
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',132)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
IF(IDPDG(IDK(I)).GT.0) THEN
KKK = (IDK(I)-423)/2
IF(KKK.GT.3) THEN
KKK = KKK-6
IM = 2
ELSE
IM = 1
ENDIF
IF(MOD(IDKPRD(1,I),2).EQ.0) THEN
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)-119)/2
ELSE
III = (IDKPRD(2,I)-120)/2
JJJ = (IDKPRD(1,I)-119)/2
ENDIF
I2DRTP(N2MODE) = 6
A2MODE(1,N2MODE) = LMIXSS(2*KKK-1,2,IM)*
& LAMDA1(III,JJJ,KKK)
A2MODE(2,N2MODE) = 0.0D0
ELSE
C--antiparticle decay
KKK = (IDK(I)-429)/2
IF(KKK.GT.3) THEN
KKK = KKK-6
IM = 2
ELSE
IM = 1
ENDIF
IF(MOD(IDKPRD(1,I),2).EQ.0) THEN
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-125)/2
ELSE
III = (IDKPRD(2,I)-126)/2
JJJ = (IDKPRD(1,I)-125)/2
ENDIF
I2DRTP(N2MODE) = 13
A2MODE(1,N2MODE) = 0.0D0
A2MODE(2,N2MODE) = LMIXSS(2*KKK-1,2,IM)*
& LAMDA1(III,JJJ,KKK)
ENDIF
C--left slepton decay
ELSE
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',133)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
IF(IDPDG(IDK(I)).GT.0) THEN
JJJ = (IDK(I)-423)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
IF(MOD(IDKPRD(1,I),2).EQ.0) THEN
III = (IDKPRD(1,I)-126)/2
KKK = (IDKPRD(2,I)-119)/2
I2DRTP(N2MODE) = 8
ELSE
III = (IDKPRD(2,I)-126)/2
KKK = (IDKPRD(1,I)-119)/2
I2DRTP(N2MODE) = 5
ENDIF
A2MODE(1,N2MODE) = 0.0D0
A2MODE(2,N2MODE) = LMIXSS(2*JJJ-1,1,IM)*
& LAMDA1(III,JJJ,KKK)
ELSE
JJJ = (IDK(I)-429)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
IF(MOD(IDKPRD(1,I),2).EQ.0) THEN
III = (IDKPRD(1,I)-120)/2
KKK = (IDKPRD(2,I)-125)/2
I2DRTP(N2MODE) = 5
ELSE
III = (IDKPRD(2,I)-120)/2
KKK = (IDKPRD(1,I)-125)/2
I2DRTP(N2MODE) = 8
ENDIF
A2MODE(1,N2MODE) = LMIXSS(2*JJJ-1,1,IM)*
& LAMDA1(III,JJJ,KKK)
A2MODE(2,N2MODE) = 0.0D0
ENDIF
ENDIF
C--sneutrino decays
ELSEIF(MOD(IDK(I),2).EQ.0.AND.IDK(I).LE.436) THEN
C--sneutrino decay
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',134)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
IF(IDPDG(IDK(I)).GT.0) THEN
III = (IDK(I)-424)/2
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
KKK = (IDKPRD(1,I)-119)/2
JJJ = (IDKPRD(2,I)-125)/2
I2DRTP(N2MODE) = 5
ELSE
JJJ = (IDKPRD(1,I)-125)/2
KKK = (IDKPRD(2,I)-119)/2
I2DRTP(N2MODE) = 8
ENDIF
A2MODE(1,N2MODE) = 0.0D0
A2MODE(2,N2MODE) = LAMDA1(III,JJJ,KKK)
C--antisneutrino decay
ELSE
III = (IDK(I)-430)/2
IF(IDPDG(IDKPRD(1,I)).LT.0) THEN
KKK = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-119)/2
I2DRTP(N2MODE) = 8
ELSE
JJJ = (IDKPRD(1,I)-119)/2
KKK = (IDKPRD(2,I)-125)/2
I2DRTP(N2MODE) = 5
ENDIF
A2MODE(1,N2MODE) = LAMDA1(III,JJJ,KKK)
A2MODE(2,N2MODE) = 0.0D0
ENDIF
ENDIF
C--LQD modes
C--squark decays
ELSEIF(IDK(I).GE.401.AND.IDK(I).LE.424.AND.
& IDKPRD(1,I).GE.121.AND.IDKPRD(2,I).LE.132.AND.
& IDKPRD(2,I).LE.12) THEN
C--up type squark decay
IF(MOD(IDK(I),2).EQ.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',135)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
IF(IDPDG(IDK(I)).GT.0) THEN
JJJ = (IDK(I)-400)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-125)/2
KKK = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 8
A2MODE(1,N2MODE) = ZERO
A2MODE(2,N2MODE) = QMIXSS(2*JJJ,1,IM)*
& LAMDA2(III,JJJ,KKK)
ELSE
JJJ = (IDK(I)-406)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-119)/2
KKK = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 5
A2MODE(1,N2MODE) = QMIXSS(2*JJJ,1,IM)*
& LAMDA2(III,JJJ,KKK)
A2MODE(2,N2MODE) = ZERO
ENDIF
C--down type squark to lepton up
ELSEIF(MOD(IDK(I),2).EQ.1.AND.MOD(IDKPRD(1,I),2).EQ.1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',136)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
C--particle
IF(IDPDG(IDK(I)).GT.0) THEN
KKK = (IDK(I)-399)/2
IF(KKK.GT.3) THEN
KKK = KKK-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-119)/2
JJJ = IDKPRD(2,I)/2
I2DRTP(N2MODE) = 6
A2MODE(1,N2MODE) = QMIXSS(2*KKK-1,2,IM)*
& LAMDA2(III,JJJ,KKK)
A2MODE(2,N2MODE) = ZERO
C--antiparticle
ELSE
KKK = (IDK(I)-405)/2
IF(KKK.GT.3) THEN
KKK = KKK-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-6)/2
I2DRTP(N2MODE) = 13
A2MODE(1,N2MODE) = ZERO
A2MODE(2,N2MODE) = QMIXSS(2*KKK-1,2,IM)*
& LAMDA2(III,JJJ,KKK)
ENDIF
C--down (left) squark --> nu d
ELSEIF(MOD(IDK(I),2).EQ.1.AND.
& IDPDG(IDK(I))/ABS(IDPDG(IDK(I))).EQ.
& -IDPDG(IDKPRD(1,I))/ABS(IDPDG(IDKPRD(1,I)))) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',137)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
IF(IDPDG(IDK(I)).GT.0) THEN
JJJ = (IDK(I)-399)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-126)/2
KKK = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 8
A2MODE(1,N2MODE) = ZERO
A2MODE(2,N2MODE) = QMIXSS(2*JJJ-1,1,IM)*
& LAMDA2(III,JJJ,KKK)
ELSE
JJJ = (IDK(I)-405)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-120)/2
KKK = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 5
A2MODE(1,N2MODE) = QMIXSS(2*JJJ-1,1,IM)*
& LAMDA2(III,JJJ,KKK)
A2MODE(2,N2MODE) = ZERO
ENDIF
C--down (right) squark --> nu d
ELSEIF(MOD(IDK(I),2).EQ.1.AND.
& IDPDG(IDK(I))/ABS(IDPDG(IDK(I))).EQ.
& IDPDG(IDKPRD(1,I))/ABS(IDPDG(IDKPRD(1,I)))) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',138)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = ONE
IF(IDPDG(IDK(I)).GT.0) THEN
KKK = (IDK(I)-399)/2
IF(KKK.GT.3) THEN
KKK = KKK-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 6
A2MODE(1,N2MODE) = QMIXSS(2*KKK-1,2,IM)*
& LAMDA2(III,JJJ,KKK)
A2MODE(2,N2MODE) = ZERO
ELSE
KKK = (IDK(I)-405)/2
IF(KKK.GT.3) THEN
KKK = KKK-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 13
A2MODE(1,N2MODE) = ZERO
A2MODE(2,N2MODE) = QMIXSS(2*KKK-1,2,IM)*
& LAMDA2(III,JJJ,KKK)
ENDIF
ELSE
CALL HWWARN('HWISP2',2)
ENDIF
C--slepton decays
ELSEIF(IDK(I).GE.425.AND.IDK(I).LE.448.AND.
& IDKPRD(1,I).LE.12.AND.IDKPRD(2,I).LE.12) THEN
C--sneutrino decay
IF(MOD(IDK(I),2).EQ.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',140)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = THREE
C--particle
IF(IDPDG(IDK(I)).GT.0) THEN
III = (IDK(I)-424)/2
JJJ = (IDKPRD(1,I)-5)/2
KKK = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 8
A2MODE(1,N2MODE) = 0.0D0
A2MODE(2,N2MODE) = LAMDA2(III,JJJ,KKK)
C--antiparticle
ELSE
III = (IDK(I)-430)/2
JJJ = (IDKPRD(1,I)+1)/2
KKK = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 5
A2MODE(1,N2MODE) = LAMDA2(III,JJJ,KKK)
A2MODE(2,N2MODE) = 0.0D0
ENDIF
C--slepton decay
ELSEIF(MOD(IDK(I),2).EQ.1) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',141)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = THREE
C--particle
IF(IDPDG(IDK(I)).GT.0) THEN
III = (IDK(I)-423)/2
IF(III.GT.3) THEN
III = III -6
IM = 2
ELSE
IM = 1
ENDIF
JJJ = (IDKPRD(1,I)-6)/2
KKK = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 8
A2MODE(1,N2MODE) = 0.0D0
A2MODE(2,N2MODE) = LMIXSS(2*III-1,1,IM)*
& LAMDA2(III,JJJ,KKK)
C--antiparticle
ELSE
III = (IDK(I)-429)/2
IF(III.GT.3) THEN
III = III -6
IM = 2
ELSE
IM = 1
ENDIF
JJJ = IDKPRD(1,I)/2
KKK = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 5
A2MODE(1,N2MODE) = LMIXSS(2*III-1,1,IM)*
& LAMDA2(III,JJJ,KKK)
A2MODE(2,N2MODE) = 0.0D0
ENDIF
ELSE
CALL HWWARN('HWISP2',3)
ENDIF
C--UDD modes
ELSEIF(IDK(I).GE.401.AND.IDK(I).LE.424.AND.
& IDKPRD(1,I).LE.12.AND.IDKPRD(2,I).LE.12) THEN
C--up type squark decay
IF(MOD(IDK(I),2).EQ.0) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',143)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = 2.0D0
C--squark decay
IF(IDPDG(IDK(I)).GT.0) THEN
III = (IDK(I)-400)/2
IF(III.GT.3) THEN
III = III-6
IM = 2
ELSE
IM = 1
ENDIF
JJJ = (IDKPRD(1,I)-5)/2
KKK = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 13
A2MODE(1,N2MODE)=QMIXSS(2*III,2,IM)*LAMDA3(III,JJJ,KKK)
A2MODE(2,N2MODE)=0.0D0
C--antisquark decay
ELSE
III = (IDK(I)-406)/2
IF(III.GT.3) THEN
III = III-6
IM = 2
ELSE
IM = 1
ENDIF
JJJ = (IDKPRD(1,I)+1)/2
KKK = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 6
A2MODE(1,N2MODE) =0.0D0
A2MODE(2,N2MODE) =QMIXSS(2*III,2,IM)*LAMDA3(III,JJJ,KKK)
ENDIF
ELSE
C--down type squark decay
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',144)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
P2MODE(N2MODE) = 2.0D0
C--squark decay
IF(IDPDG(IDK(I)).GT.0) THEN
JJJ = (IDK(I)-399)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
III = (IDKPRD(1,I)-6)/2
KKK = (IDKPRD(2,I)-5)/2
I2DRTP(N2MODE) = 13
A2MODE(1,N2MODE)= QMIXSS(2*JJJ-1,2,IM)*
& LAMDA3(III,JJJ,KKK)
A2MODE(2,N2MODE)= 0.0D0
C--antisquark decay
ELSE
JJJ = (IDK(I)-405)/2
IF(JJJ.GT.3) THEN
JJJ = JJJ-6
IM = 2
ELSE
IM = 1
ENDIF
III = IDKPRD(1,I)/2
KKK = (IDKPRD(2,I)+1)/2
I2DRTP(N2MODE) = 6
A2MODE(1,N2MODE) = 0.0D0
A2MODE(2,N2MODE) = QMIXSS(2*JJJ-1,2,IM)*
& LAMDA3(III,JJJ,KKK)
ENDIF
ENDIF
ELSE
IF(.NOT.(RSPIN(IDKPRD(1,I)).EQ.ZERO.AND.
& RSPIN(IDKPRD(2,I)).EQ.ZERO)) CALL HWWARN('HWISP2',4)
ENDIF
ELSEIF(IDK(I).GE.203.AND.IDK(I).LE.207) THEN
IH = IDK(I)-202
L = IDKPRD(1,I)-449
L1 = IDKPRD(2,I)-449
C--Neutral Higgs decays
IF(IH.GE.1.AND.IH.LE.3) THEN
C--Higgs to neutralino neutralino
IF(L.GE.1.AND.L.LE.4) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',146)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
IF(L.EQ.L1) P2MODE(N2MODE) = HALF
DO 24 J=1,2
24 A2MODE(J,N2MODE) = HNN(J,IH,L,L1)
C--Higgs to chargino chargino
ELSEIF(L.GE.5.AND.L.LE.8) THEN
L = MOD(L -5,2)+1
L1 = MOD(L1-5,2)+1
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',147)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
DO 25 J=1,2
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
A2MODE(J,N2MODE) = HCC( J ,IH,L,L1)
ELSE
A2MODE(J,N2MODE) = HCC(O(J),IH,L,L1)
ENDIF
25 CONTINUE
C--Higgs to fermion antifermion
ELSEIF((L.GE.-448.AND.L.LE.-437)
& .OR.(L.GE.-328.AND.L.LE.-317)) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',148)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 5
P2MODE(N2MODE) = ONE
IL = IDKPRD(1,I)
IL = IL-6*INT((IL-1)/6)+6*INT((IL-1)/120)
IF(IL.LE.6) P2MODE(N2MODE) = THREE
DO 26 J=1,2
26 A2MODE(J,N2MODE) = HFF(J,IH,IL)
ELSE
IF(.NOT.
& (RSPIN(IDKPRD(1,I)).EQ.ZERO.AND.RSPIN(IDKPRD(2,I)).EQ.ZERO)
& .AND..NOT.(IDKPRD(1,I).EQ.13.AND.IDKPRD(2,I).EQ.13)
& .AND..NOT.(IDKPRD(1,I).EQ.59.AND.IDKPRD(2,I).EQ.59)
& .AND..NOT.(IDKPRD(1,I).GE.198.AND.IDKPRD(1,I).LE.200.AND.
& IDKPRD(2,I).GE.198.AND.IDKPRD(2,I).LE.200))
& CALL HWWARN('HWISP2',5)
ENDIF
C--charged Higgs decays
ELSE
IH = IDK(I)-205
L = IDKPRD(1,I)-449
L1 = IDKPRD(2,I)-449
C--positive Higgs decays
IF(IH.EQ.1) THEN
C--decay to chargino neutralino
IF(L.EQ.5.OR.L.EQ.6) THEN
L = L-4
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',149)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
DO 27 J=1,2
27 A2MODE(J,N2MODE) = HNC(O(J),L1,L)
C--decay to neutralino chargino
ELSEIF(L.GE.1.AND.L.LE.4) THEN
L1 = L1-4
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',150)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
DO 28 J=1,2
28 A2MODE(J,N2MODE) = HNC(O(J),L1,L)
C--fermion antifermion decay modes
ELSEIF((L.GE.-448.AND.L.LE.-437)
& .OR.(L.GE.-328.AND.L.LE.-317)) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',151)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 5
P2MODE(N2MODE) = ONE
IL = IDKPRD(1,I)
IL = IL-6*INT((IL-1)/6)+6*INT((IL-1)/120)
IL = INT((IL+1)/2)
IF(IL.LE.3) P2MODE(N2MODE) = THREE
DO 29 J=1,2
29 A2MODE(J,N2MODE) = HFF(J,4,IL)
ELSE
IF(RSPIN(IDKPRD(1,I)).NE.ZERO.OR.RSPIN(IDKPRD(2,I)).NE.
& ZERO) CALL HWWARN('HWISP2',6)
ENDIF
C--negative Higgs decays
ELSE
C--Higgs to chargino neutralino
IF(L.EQ.7.OR.L.EQ.8) THEN
L = L-6
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',152)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
DO 30 J=1,2
30 A2MODE(J,N2MODE) = HNC(J,L1,L)
C--Higgs to neutralino chargino
ELSEIF(L.GE.1.AND.L.LE.4) THEN
L1 = L1-6
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',153)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 6
P2MODE(N2MODE) = ONE
DO 31 J=1,2
31 A2MODE(J,N2MODE) = HNC(J,L1,L)
C--fermion antifermion decay modes
ELSEIF((L.GE.-448.AND.L.LE.-437)
& .OR.(L.GE.-328.AND.L.LE.-317)) THEN
N2MODE = N2MODE+1
IF(N2MODE.GT.NMODE2) THEN
CALL HWWARN('HWISP2',154)
GOTO 999
ENDIF
NME(I) = 30000+N2MODE
ID2PRT(N2MODE) = I
I2DRTP(N2MODE) = 8
P2MODE(N2MODE) = ONE
IL = IDKPRD(1,I)
IL = IL-6*INT((IL-1)/6)+6*INT((IL-1)/120)
IL = INT((IL+1)/2)
IF(IL.LE.3) P2MODE(N2MODE) = THREE
DO 32 J=1,2
32 A2MODE(J,N2MODE) = HFF(O(J),4,IL)
ELSE
IF(RSPIN(IDKPRD(1,I)).NE.ZERO.OR.RSPIN(IDKPRD(1,I)).NE.
& ZERO) CALL HWWARN('HWISP2',7)
ENDIF
ENDIF
ENDIF
ENDIF
1000 CONTINUE
C--now find the maximum weights and compute the decay rates
DO 2000 I=1,N2MODE
IF(IPRINT.EQ.2) WRITE(6,5010) RNAME(IDK(ID2PRT(I))),
& RNAME(IDKPRD(1,ID2PRT(I))),RNAME(IDKPRD(2,ID2PRT(I)))
2000 CALL HWD2ME(I)
RETURN
5010 FORMAT(/'CALCULATING TWO BODY DECAY ',
& A8,' --> ',A8,' ',A8/)
999 RETURN
END
CDECK ID>, HWISP3.
*CMZ :- -30/09/02 14:05:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWISP3
C-----------------------------------------------------------------------
C Initialise the top/SUSY three body decay modes
C gravitino and RPV modes added by Peter Richardson
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,L,L1,IL,IQ,IQ1,IQ2,IFR,SIFR,IH,IH1,IM,O(2),II,JJ,
& III,JJJ,KKK
DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN(2,12,2,4),
& AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
& HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
& HZZ(2),ZAB(12,2,2),HHB(2,3)
DOUBLE COMPLEX RHOIN(2,2)
COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
& OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
SAVE O
DATA O/2,1/
IF(IERROR.NE.0) RETURN
C--loop over the decays and find the top decays
DO 1000 JJ=6,12,6
DO 1000 II=1,NMODES(JJ)
IF(II.EQ.1) THEN
I = LSTRT(JJ)
ELSE
I = LNEXT(I)
ENDIF
C--top decay via W
IF(IDK(I).EQ.6.AND.NME(I).EQ.100) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',100)
GOTO 999
ENDIF
P3MODE(N3MODE) = ONE
IF(IDKPRD(1,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
I3DRTP(1,N3MODE) = 1
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 198
A3MODE(1,1,N3MODE) = ZERO
A3MODE(2,1,N3MODE) = -G*ORT
B3MODE(1,1,N3MODE) = ZERO
B3MODE(2,1,N3MODE) = -G*ORT
C--antitop decay via W
ELSEIF(IDK(I).EQ.12.AND.NME(I).EQ.100) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',101)
GOTO 999
ENDIF
P3MODE(N3MODE) = ONE
IF(IDKPRD(1,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
I3DRTP(1,N3MODE) = 5
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 199
A3MODE(1,1,N3MODE) = ZERO
A3MODE(2,1,N3MODE) = -G*ORT
B3MODE(1,1,N3MODE) = ZERO
B3MODE(2,1,N3MODE) = -G*ORT
C--top decay via charged Higgs
ELSEIF(IDK(I).EQ.6.AND.NME(I).EQ.200) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',102)
GOTO 999
ENDIF
P3MODE(N3MODE) = ONE
IF(IDKPRD(1,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
I3DRTP(1,N3MODE) = 2
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 206
IL = IDKPRD(1,I)
IL = IL-6*INT((IL-1)/6)+6*INT((IL-1)/120)
IL = INT((IL+1)/2)
DO 201 J=1,2
A3MODE(J,1,N3MODE) = HFF(O(J),4,3)
201 B3MODE(J,1,N3MODE) = HFF( J ,4,IL)
C--antitop decay via charged Higgs
ELSEIF(IDK(I).EQ.12.AND.NME(I).EQ.200) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',103)
GOTO 999
ENDIF
P3MODE(N3MODE) = ONE
IF(IDKPRD(1,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
I3DRTP(1,N3MODE) = 17
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 207
IL = IDKPRD(1,I)
IL = IL-6*INT((IL-1)/6)+6*INT((IL-1)/120)
IL = INT((IL+1)/2)
DO 202 J=1,2
A3MODE(J,1,N3MODE) = HFF( J ,4,3)
202 B3MODE(J,1,N3MODE) = HFF(O(J),4,IL)
ENDIF
1000 CONTINUE
IF(.NOT.SUSYIN) GOTO 2999
C--loop over all the SUSY decay modes and find the ones we want
C--first the true three body gaugino decays
DO 2000 JJ=1,NRES
DO 2000 II=1,NMODES(JJ)
IF(II.EQ.1) THEN
I = LSTRT(JJ)
ELSE
I = LNEXT(I)
ENDIF
L = IDKPRD(1,I)-449
IF(IDKPRD(3,I).EQ.0.OR.IDKPRD(4,I).NE.0) GOTO 2500
C--gluino modes first
IF(IDK(I).EQ.449) THEN
C--first the gluino modes to quark-antiquark neutralino
IF(L.GE.1.AND.L.LE.4.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
IQ = IDKPRD(2,I)
IF(IQ.GT.6) IQ=IQ-6
IF(IQ.GT.6.OR.IQ.LT.1) CALL HWWARN('HWISP3',200)
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',104)
GOTO 999
ENDIF
P3MODE(N3MODE) = HALF
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
C--only squark exchange diagrams
DO 1 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 4
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 12*(K-1)+400+IQ
I3MODE(K+2,N3MODE) = 12*(K-1)+406+IQ
DO 1 J=1,2
A3MODE(J,K ,N3MODE) = AFG( J ,IQ,K)
B3MODE(J,K ,N3MODE) = AFN(O(J),IQ,K,L)
A3MODE(J,K+2,N3MODE) = AFG(O(J),IQ,K)
1 B3MODE(J,K+2,N3MODE) = ZSGNSS(L)*AFN( J ,IQ,K,L)
C--then the gluino modes to quark-antiquark +ve chargino
ELSEIF(L.EQ.5.OR.L.EQ.6.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
L = L-4
IQ = IDKPRD(2,I)
IF(IQ.GT.6) IQ=IQ-6
IF(IQ.GT.6.OR.IQ.LT.1) CALL HWWARN('HWISP3',201)
IQ = (IQ+MOD(IQ,2))/2
IQ1 = 2*IQ-1
IQ2 = 2*IQ
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',105)
GOTO 999
ENDIF
P3MODE(N3MODE) = HALF
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
C--only squark exchange diagrams
DO 2 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 4
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 12*(K-1)+400+IQ1
I3MODE(K+2,N3MODE) = 12*(K-1)+406+IQ2
DO 2 J=1,2
A3MODE(J,K ,N3MODE) = AFG( J ,IQ1,K)
B3MODE(J,K ,N3MODE) = AFC(O(J),IQ1,K,L)
A3MODE(J,K+2,N3MODE) = AFG(O(J),IQ2,K)
2 B3MODE(J,K+2,N3MODE) = AFC( J ,IQ2,K,L)
C--then the gluino modes to quark-antiquark -ve chargino
ELSEIF(L.EQ.7.OR.L.EQ.8.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
L = L-6
IQ = IDKPRD(2,I)
IF(IQ.GT.6) IQ=IQ-6
IF(IQ.GT.6.OR.IQ.LT.1) CALL HWWARN('HWISP3',202)
IQ = (IQ+MOD(IQ,2))/2
IQ1 = 2*IQ
IQ2 = 2*IQ-1
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',106)
GOTO 999
ENDIF
P3MODE(N3MODE) = HALF
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
C--only squark exchange diagrams
DO 3 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 4
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 12*(K-1)+400+IQ1
I3MODE(K+2,N3MODE) = 12*(K-1)+406+IQ2
DO 3 J=1,2
A3MODE(J,K ,N3MODE) = AFG( J ,IQ1,K)
B3MODE(J,K ,N3MODE) = AFC(O(J),IQ1,K,L)
A3MODE(J,K+2,N3MODE) = AFG(O(J),IQ2,K)
3 B3MODE(J,K+2,N3MODE) = AFC( J ,IQ2,K,L)
C--RPV decay modes
C--LQD first
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).LE.12 .AND.IDKPRD(3,I).LE.12) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',107)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
P3MODE(N3MODE) = HALF
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
NDI3BY(N3MODE) = 4
DO 98 J=1,4
98 I3DRCF(J,N3MODE) = 1
C--first the neutrino mode
IF(MOD(IDKPRD(1,I),2).EQ.0) THEN
C--particle mode
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)-5)/2
DO 99 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRTP(K+2,N3MODE) = 4
I3MODE(K ,N3MODE) = 399+2*JJJ+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(1,K ,N3MODE) = -QMIXSS(2*JJJ-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = -QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 99 J=1,2
A3MODE(J,K ,N3MODE) = AFG( J ,2*JJJ-1,K)
99 A3MODE(J,K+2,N3MODE) = AFG(O(J),2*KKK-1,K)
C--antiparticle mode
ELSE
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = (IDKPRD(3,I)+1)/2
DO 101 K=1,2
I3DRTP(K ,N3MODE) = 9
I3DRTP(K+2,N3MODE) = 10
I3MODE(K ,N3MODE) = 399+2*JJJ+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(2,K ,N3MODE) = -QMIXSS(2*JJJ-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = -QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 101 J=1,2
A3MODE(J,K ,N3MODE) = AFG(O(J),2*JJJ-1,K)
101 A3MODE(J,K+2,N3MODE) = AFG( J ,2*KKK-1,K)
ENDIF
C--then the charged lepton mode
ELSE
C--particle mode
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
III = (IDKPRD(1,I)-119)/2
JJJ = IDKPRD(2,I)/2
KKK = (IDKPRD(3,I)-5)/2
DO 102 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRTP(K+2,N3MODE) = 4
I3MODE(K ,N3MODE) = 400+2*JJJ+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(1,K ,N3MODE) = QMIXSS(2*JJJ,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 102 J=1,2
A3MODE(J,K ,N3MODE) = AFG( J ,2*JJJ ,K)
102 A3MODE(J,K+2,N3MODE) = AFG(O(J),2*KKK-1,K)
C--antiparticle mode
ELSE
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-6)/2
KKK = (IDKPRD(3,I)+1)/2
DO 103 K=1,2
I3DRTP(K ,N3MODE) = 9
I3DRTP(K+2,N3MODE) = 10
I3MODE(K ,N3MODE) = 400+2*JJJ+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(2,K ,N3MODE) = QMIXSS(2*JJJ,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 103 J=1,2
A3MODE(J,K ,N3MODE) = AFG(O(J),2*JJJ ,K)
103 A3MODE(J,K+2,N3MODE) = AFG( J ,2*KKK-1,K)
ENDIF
ENDIF
C--then UDD
ELSEIF(IDKPRD(1,I).LE.12.AND.IDKPRD(2,I).LE.12.AND.
& IDKPRD(3,I).LE.12) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',108)
GOTO 999
ENDIF
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 3
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 6
DO 70 J=1,3
DO 70 K=1,3
IF(J.NE.K) THEN
SPN3CF(J,K,N3MODE) = -HALF
ELSE
SPN3CF(J,K,N3MODE) = ONE
ENDIF
70 CONTINUE
C--particle mode
IF(IDKPRD(1,I).LE.6) THEN
C--antiparticle mode
III = IDKPRD(1,I)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)+1)/2
DO 71 K=1,2
I3DRTP(K ,N3MODE) = 11
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 12
I3DRCF(K+2,N3MODE) = 2
I3DRTP(K+4,N3MODE) = 13
I3DRCF(K+4,N3MODE) = 3
I3MODE(K ,N3MODE) = 400+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*JJJ+(K-1)*12
I3MODE(K+4,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(2,K ,N3MODE) = QMIXSS(2*III,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = QMIXSS(2*JJJ-1,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,K+4,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(1,K+4,N3MODE) = 0.0D0
DO 71 J=1,2
A3MODE(J,K ,N3MODE) = AFG(J,2*III ,K)
A3MODE(J,K+2,N3MODE) = AFG(J,2*JJJ-1,K)
71 A3MODE(J,K+4,N3MODE) = AFG(J,2*KKK-1,K)
ELSE
III = (IDKPRD(1,I)-6)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = (IDKPRD(3,I)-5)/2
DO 72 K=1,2
I3DRTP(K ,N3MODE) = 14
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 15
I3DRCF(K+2,N3MODE) = 2
I3DRTP(K+4,N3MODE) = 16
I3DRCF(K+4,N3MODE) = 3
I3MODE(K ,N3MODE) = 400+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*JJJ+(K-1)*12
I3MODE(K+4,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = QMIXSS(2*III,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(1,K+2,N3MODE) = QMIXSS(2*JJJ-1,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(1,K+4,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(2,K+4,N3MODE) = 0.0D0
DO 72 J=1,2
A3MODE(J,K ,N3MODE) = AFG(O(J),2*III ,K)
A3MODE(J,K+2,N3MODE) = AFG(O(J),2*JJJ-1,K)
72 A3MODE(J,K+4,N3MODE) = AFG(O(J),2*KKK-1,K)
ENDIF
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',1)
ENDIF
ELSEIF(IDK(I).GE.450.AND.IDK(I).LE.453) THEN
L1 = IDK(I)-449
C--neutralino modes next
IF(L.GE.1.AND.L.LE.4.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
C--first the neutralino modes to fermion-antifermion neutralino
IFR = IDKPRD(2,I)
J = INT((IFR-1)/120)
IFR = IFR-6*INT((IFR-1)/6)+6*J
IL = IFR+4*J
SIFR = IFR+18*J
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',109)
GOTO 999
ENDIF
P3MODE(N3MODE) = ONE
IF(IFR.LE.6) P3MODE(N3MODE)=THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
C--sfermion exchange diagrams
DO 4 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 4
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 12*(K-1)+400+SIFR
I3MODE(K+2,N3MODE) = 12*(K-1)+406+SIFR
DO 4 J=1,2
A3MODE(J,K ,N3MODE) = AFN( J ,IFR,K,L1)
B3MODE(J,K ,N3MODE) = AFN(O(J),IFR,K,L )
A3MODE(J,K+2,N3MODE) = ZSGNSS(L1)*AFN(O(J),IFR,K,L1)
4 B3MODE(J,K+2,N3MODE) = ZSGNSS(L )*AFN( J ,IFR,K,L )
C--now add higgs diagrams if third generation fermion, if Higgs off shell
IF(IFR.EQ.5.OR.IFR.EQ.6.OR.IFR.EQ.11) THEN
DO 5 J=1,3
IF(RMASS(IDK(I)).LT.
& RMASS(203+J)+RMASS(IDKPRD(1,I))) THEN
NDI3BY(N3MODE) = NDI3BY(N3MODE)+1
I3DRTP( NDI3BY(N3MODE),N3MODE) = 2
I3DRCF( NDI3BY(N3MODE),N3MODE) = 1
I3MODE( NDI3BY(N3MODE),N3MODE) = 203+J
DO 6 K=1,2
A3MODE(K,NDI3BY(N3MODE),N3MODE) = HNN(K,J,L,L1)
6 B3MODE(K,NDI3BY(N3MODE),N3MODE) = HFF(K,J,IFR)
ENDIF
5 CONTINUE
ENDIF
C-- and gauge boson diagrams if Z not on-shell
IF(RMASS(IDK(I)).LT.MZ+RMASS(IDKPRD(1,I))) THEN
NDI3BY(N3MODE) = NDI3BY(N3MODE)+1
I3DRTP(NDI3BY(N3MODE),N3MODE) = 1
I3DRCF(NDI3BY(N3MODE),N3MODE) = 1
I3MODE(NDI3BY(N3MODE),N3MODE) = 200
DO 7 J=1,2
7 A3MODE(J,NDI3BY(N3MODE),N3MODE) = OIJPP(J,L,L1)
B3MODE(1,NDI3BY(N3MODE),N3MODE) = -E*RFCH(IL)
B3MODE(2,NDI3BY(N3MODE),N3MODE) = -E*LFCH(IL)
ENDIF
ELSEIF(L.EQ.5.OR.L.EQ.6.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
C--then the neutralino modes to fermion-antifermion +ve chargino
C--NB ISAJET ONLY HAS W EXCHANGE AND THEREFORE SO DO WE
IF(RMASS(IDK(I)).GT.MW+RMASS(IDKPRD(1,I))) GOTO 2000
L = L-4
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',110)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--gauge boson diagram
I3DRTP(1,N3MODE) = 1
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 199
DO 8 J=1,2
8 A3MODE(J,1,N3MODE) = OIJ(J,L1,L)
B3MODE(1,1,N3MODE) = ZERO
B3MODE(2,1,N3MODE) = -G*ORT
ELSEIF(L.EQ.7.OR.L.EQ.8.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
C--then the neutralino modes to fermion-antifermion -ve chargino
C--NB ISAJET ONLY HAS W EXCHANGE AND THEREFORE SO DO WE
IF(RMASS(IDK(I)).GT.MW+RMASS(IDKPRD(1,I))) GOTO 2000
L = L-6
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',111)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--gauge boson diagram
I3DRTP(1,N3MODE) = 1
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 198
DO 9 J=1,2
9 A3MODE(J,1,N3MODE) =-OIJ(O(J),L1,L)
B3MODE(1,1,N3MODE) = ZERO
B3MODE(2,1,N3MODE) = -G*ORT
C--gravitino E+e- modes
ELSEIF(L.EQ.9.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
IFR = IDKPRD(2,I)
J = INT((IFR-1)/120)
IFR = IFR-6*INT((IFR-1)/6)+6*J
IL = IFR+4*J
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',112)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 1
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--diagram
I3DRTP(1,N3MODE) = 7
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 59
A3MODE(1,1,N3MODE) = 2.0D0/SQRT(6.0D0)*ZMIXSS(L1,1)
A3MODE(2,1,N3MODE) = 0
B3MODE(1,1,N3MODE) = -E*QFCH(IL)
B3MODE(2,1,N3MODE) = -E*QFCH(IL)
C--R-parity violating modes
C--LLE modes
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132.AND.
& IDKPRD(3,I).GE.121.AND.IDKPRD(3,I).LE.132) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',113)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 5
P3MODE(N3MODE) = ONE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--particle mode
DO 53 J=1,6
53 I3DRCF(J,N3MODE) = 1
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
III = (IDKPRD(1,I)-119)/2
JJJ = (IDKPRD(2,I)-120)/2
KKK = (IDKPRD(3,I)-125)/2
DO 51 J=1,2
I3DRTP(J ,N3MODE) = 2
I3DRTP(J+2,N3MODE) = 4
I3MODE(J ,N3MODE) = 423+2*III+(J-1)*12
I3MODE(J+2,N3MODE) = 423+2*KKK+(J-1)*12
B3MODE(1,J ,N3MODE) = LMIXSS(2*III-1,1,J)*
& LAMDA1(III,JJJ,KKK)
B3MODE(2,J ,N3MODE) = 0.0D0
B3MODE(1,J+2,N3MODE) = LMIXSS(2*KKK-1,2,J)*
& LAMDA1(III,JJJ,KKK)
B3MODE(2,J+2,N3MODE) = 0.0D0
DO 51 K=1,2
A3MODE(K,J ,N3MODE) = AFN( K ,5+2*III,J,L1)
51 A3MODE(K,J+2,N3MODE) = AFN(O(K),5+2*KKK,J,L1)
DO 48 K=1,2
48 A3MODE(K,5,N3MODE) = AFN( K ,6+2*JJJ,1,L1)
I3DRTP(5,N3MODE) = 3
I3MODE(5,N3MODE) = 430+2*JJJ
B3MODE(1,5,N3MODE) = LAMDA1(III,JJJ,KKK)
B3MODE(2,5,N3MODE) = 0.0D0
C--antiparticle mode
ELSE
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-126)/2
KKK = (IDKPRD(3,I)-119)/2
DO 52 J=1,2
I3DRTP(J ,N3MODE) = 8
I3DRTP(J+2,N3MODE) = 10
I3MODE(J ,N3MODE) = 423+2*III+(J-1)*12
I3MODE(J+2,N3MODE) = 423+2*KKK+(J-1)*12
B3MODE(2,J ,N3MODE) = LMIXSS(2*III-1,1,J)*
& LAMDA1(III,JJJ,KKK)
B3MODE(1,J ,N3MODE) = 0.0D0
B3MODE(2,J+2,N3MODE) = LMIXSS(2*KKK-1,2,J)*
& LAMDA1(III,JJJ,KKK)
B3MODE(1,J+2,N3MODE) = 0.0D0
DO 52 K=1,2
A3MODE(K,J ,N3MODE) = AFN(O(K),5+2*III,J,L1)
52 A3MODE(K,J+2,N3MODE) = AFN( K ,5+2*KKK,J,L1)
DO 49 K=1,2
49 A3MODE(K,5,N3MODE) = AFN(O(K),6+2*JJJ,1,L1)
I3DRTP(5,N3MODE) = 9
I3MODE(5,N3MODE) = 430+2*JJJ
B3MODE(2,5,N3MODE) = LAMDA1(III,JJJ,KKK)
B3MODE(1,5,N3MODE) = 0.0D0
ENDIF
C--LQD modes
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).LE.12 .AND.IDKPRD(3,I).LE.12) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',114)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
P3MODE(N3MODE) = 3.0D0
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
DO 81 J=1,6
81 I3DRCF(J,N3MODE) = 1
C--first the neutrino mode
IF(MOD(IDKPRD(1,I),2).EQ.0) THEN
NDI3BY(N3MODE) = 5
C--particle mode
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)-5)/2
DO 82 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRTP(K+2,N3MODE) = 4
I3MODE(K ,N3MODE) = 399+2*JJJ+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(1,K ,N3MODE) = -QMIXSS(2*JJJ-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = -QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 82 J=1,2
A3MODE(J,K ,N3MODE) = AFN( J ,2*JJJ-1,K,L1)
82 A3MODE(J,K+2,N3MODE) = AFN(O(J),2*KKK-1,K,L1)
I3DRTP(5,N3MODE) = 2
I3MODE(5,N3MODE) = 424+2*III
B3MODE(2,5,N3MODE) = 0.0D0
B3MODE(1,5,N3MODE) = -LAMDA2(III,JJJ,KKK)
DO 83 J=1,2
83 A3MODE(J,5,N3MODE) = AFN(J,6+2*III,1,L1)
C--antiparticle mode
ELSE
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = (IDKPRD(3,I)+1)/2
DO 84 K=1,2
I3DRTP(K ,N3MODE) = 9
I3DRTP(K+2,N3MODE) = 10
I3MODE(K ,N3MODE) = 399+2*JJJ+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(2,K ,N3MODE) = -QMIXSS(2*JJJ-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = -QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 84 J=1,2
A3MODE(J,K ,N3MODE) = AFN(O(J),2*JJJ-1,K,L1)
84 A3MODE(J,K+2,N3MODE) = AFN( J ,2*KKK-1,K,L1)
I3DRTP(5,N3MODE) = 8
I3MODE(5,N3MODE) = 424+2*III
B3MODE(1,5,N3MODE) = 0.0D0
B3MODE(2,5,N3MODE) = -LAMDA2(III,JJJ,KKK)
DO 85 J=1,2
85 A3MODE(J,5,N3MODE) = AFN(O(J),6+2*III,1,L1)
ENDIF
C--then the charged lepton mode
ELSE
NDI3BY(N3MODE) = 6
C--particle mode
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
III = (IDKPRD(1,I)-119)/2
JJJ = IDKPRD(2,I)/2
KKK = (IDKPRD(3,I)-5)/2
DO 86 K=1,2
I3DRTP(K ,N3MODE) = 2
I3DRTP(K+2,N3MODE) = 3
I3DRTP(K+4,N3MODE) = 4
I3MODE(K ,N3MODE) = 423+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 400+2*JJJ+(K-1)*12
I3MODE(K+4,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(1,K ,N3MODE) = LMIXSS(2*III-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = QMIXSS(2*JJJ,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K+4,N3MODE) = 0.0D0
B3MODE(1,K+4,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 86 J=1,2
A3MODE(J,K ,N3MODE) = AFN( J ,2*III+5,K,L1)
A3MODE(J,K+2,N3MODE) = AFN( J ,2*JJJ ,K,L1)
86 A3MODE(J,K+4,N3MODE) = AFN(O(J),2*KKK-1,K,L1)
C--antiparticle mode
ELSE
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-6)/2
KKK = (IDKPRD(3,I)+1)/2
DO 87 K=1,2
I3DRTP(K ,N3MODE) = 8
I3DRTP(K+2,N3MODE) = 9
I3DRTP(K+4,N3MODE) = 10
I3MODE(K ,N3MODE) = 423+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 400+2*JJJ+(K-1)*12
I3MODE(K+4,N3MODE) = 399+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(2,K ,N3MODE) = LMIXSS(2*III-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = QMIXSS(2*JJJ,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K+4,N3MODE) = 0.0D0
B3MODE(2,K+4,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 87 J=1,2
A3MODE(J,K ,N3MODE) = AFN(O(J),2*III+5,K,L1)
A3MODE(J,K+2,N3MODE) = AFN(O(J),2*JJJ ,K,L1)
87 A3MODE(J,K+4,N3MODE) = AFN( J ,2*KKK-1,K,L1)
ENDIF
ENDIF
C--UDD modes
ELSEIF(IDKPRD(1,I).LE.12.AND.IDKPRD(2,I).LE.12.AND.
& IDKPRD(3,I).LE.12) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',115)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 6
P3MODE(N3MODE) = 6.0D0
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
DO 61 J=1,6
61 I3DRCF(J,N3MODE) = 1
C--particle mode
IF(IDPDG(IDKPRD(1,I)).GT.0) THEN
III = IDKPRD(1,I)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)+1)/2
DO 62 J=1,2
I3DRTP(J ,N3MODE) = 11
I3DRTP(J+2,N3MODE) = 12
I3DRTP(J+4,N3MODE) = 13
I3MODE(J ,N3MODE) = 400+2*III+(J-1)*12
I3MODE(J+2,N3MODE) = 399+2*JJJ+(J-1)*12
I3MODE(J+4,N3MODE) = 399+2*KKK+(J-1)*12
B3MODE(2,J ,N3MODE) = QMIXSS(2*III,2,J)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,J+2,N3MODE) = QMIXSS(2*JJJ-1,2,J)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,J+4,N3MODE) = QMIXSS(2*KKK-1,2,J)*
& LAMDA3(III,JJJ,KKK)
B3MODE(1,J ,N3MODE) = 0.0D0
B3MODE(1,J+2,N3MODE) = 0.0D0
B3MODE(1,J+4,N3MODE) = 0.0D0
DO 62 K=1,2
A3MODE(K,J ,N3MODE) = AFN(K,2*III ,J,L1)
A3MODE(K,J+2,N3MODE) = AFN(K,2*JJJ-1,J,L1)
62 A3MODE(K,J+4,N3MODE) = AFN(K,2*KKK-1,J,L1)
C--antiparticle mode
ELSE
III = (IDKPRD(1,I)-6)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = (IDKPRD(3,I)-5)/2
DO 63 J=1,2
I3DRTP(J ,N3MODE) = 14
I3DRTP(J+2,N3MODE) = 15
I3DRTP(J+4,N3MODE) = 16
I3MODE(J ,N3MODE) = 400+2*III+(J-1)*12
I3MODE(J+2,N3MODE) = 399+2*JJJ+(J-1)*12
I3MODE(J+4,N3MODE) = 399+2*KKK+(J-1)*12
B3MODE(2,J ,N3MODE) = 0.0D0
B3MODE(2,J+2,N3MODE) = 0.0D0
B3MODE(2,J+4,N3MODE) = 0.0D0
B3MODE(1,J ,N3MODE) = QMIXSS(2*III,2,J)*
& LAMDA3(III,JJJ,KKK)
B3MODE(1,J+2,N3MODE) = QMIXSS(2*JJJ-1,2,J)*
& LAMDA3(III,JJJ,KKK)
B3MODE(1,J+4,N3MODE) = QMIXSS(2*KKK-1,2,J)*
& LAMDA3(III,JJJ,KKK)
DO 63 K=1,2
A3MODE(K,J ,N3MODE) = AFN(O(K),2*III ,J,L1)
A3MODE(K,J+2,N3MODE) = AFN(O(K),2*JJJ-1,J,L1)
63 A3MODE(K,J+4,N3MODE) = AFN(O(K),2*KKK-1,J,L1)
ENDIF
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',2)
ENDIF
ELSEIF(IDK(I).GE.454.AND.IDK(I).LE.455) THEN
C--+ve chargino modes
C--first the chargino modes to fermion-antifermion neutralino
IF(L.GE.1.AND.L.LE.4.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
IFR = IDKPRD(2,I)
IFR = IFR+MOD(IFR,2)
J = INT((IFR-1)/120)
IFR = IFR-6*INT((IFR-1)/6)+6*J
IL = IFR+4*J
SIFR = IFR+18*J
L1 = IDK(I)-453
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',116)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--sfermion exchange diagrams
DO 10 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 4
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 12*(K-1)+405+SIFR
I3MODE(K+2,N3MODE) = 12*(K-1)+400+SIFR
DO 10 J=1,2
A3MODE(J,K ,N3MODE) = AFC( J ,IFR-1,K,L1)
B3MODE(J,K ,N3MODE) = AFN(O(J),IFR-1,K,L )
A3MODE(J,K+2,N3MODE) = AFC(O(J),IFR ,K,L1)
10 B3MODE(J,K+2,N3MODE) = AFN( J ,IFR ,K,L )
C--gauge boson diagram
IF(RMASS(IDK(I)).LT.MW+RMASS(IDKPRD(1,I))) THEN
NDI3BY(N3MODE) = NDI3BY(N3MODE)+1
I3DRTP(NDI3BY(N3MODE),N3MODE) = 1
I3DRCF(NDI3BY(N3MODE),N3MODE) = 1
I3MODE(NDI3BY(N3MODE),N3MODE) = 198
DO 11 J=1,2
11 A3MODE(J,NDI3BY(N3MODE),N3MODE) = OIJ(J,L,L1)
B3MODE(1,NDI3BY(N3MODE),N3MODE) = ZERO
B3MODE(2,NDI3BY(N3MODE),N3MODE) = -G*ORT
ENDIF
C--then the chargino modes to fermion-antifermion chargino
ELSEIF(L.GE.5.AND.L.LE.8.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
L = L-4
IFR = IDKPRD(2,I)
J = INT((IFR-1)/120)
IFR = IFR-6*INT((IFR-1)/6)+6*J
IL = IFR+4*J
SIFR = IFR+18*J
IF(MOD(IFR,2).EQ.0) THEN
IFR = IFR-1
SIFR = SIFR-1
ELSE
IFR = IFR+1
SIFR = SIFR+1
ENDIF
L1 = IDK(I)-453
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',117)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--sfermion exchange diagrams
IF(MOD(IL,2).EQ.0) THEN
DO 12 K=1,2
I3DRTP(K,N3MODE) = 3
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 12*(K-1)+400+SIFR
DO 12 J=1,2
A3MODE(J,K,N3MODE) = AFC( J ,IFR,K,L1)
12 B3MODE(J,K,N3MODE) = AFC(O(J),IFR,K,L )
ELSE
DO 13 K=1,2
I3DRTP(K,N3MODE) = 4
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 12*(K-1)+400+SIFR
DO 13 J=1,2
A3MODE(J,K,N3MODE) = AFC(O(J),IFR,K,L1)
13 B3MODE(J,K,N3MODE) = AFC( J ,IFR,K,L )
ENDIF
C--gauge boson diagram
IF(RMASS(IDK(I)).LT.MZ+RMASS(IDKPRD(1,I))) THEN
NDI3BY(N3MODE) = NDI3BY(N3MODE)+1
I3DRTP(NDI3BY(N3MODE),N3MODE) = 1
I3DRCF(NDI3BY(N3MODE),N3MODE) = 1
I3MODE(NDI3BY(N3MODE),N3MODE) = 200
DO 14 J=1,2
14 A3MODE(J,NDI3BY(N3MODE),N3MODE) = OIJP(J,L,L1)
B3MODE(1,NDI3BY(N3MODE),N3MODE) = -E*RFCH(IL)
B3MODE(2,NDI3BY(N3MODE),N3MODE) = -E*LFCH(IL)
ENDIF
C--R-parity violating decays
C--LLE first
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132.AND.
& IDKPRD(1,I).GE.121.AND.IDKPRD(3,I).LE.132) THEN
L1 = IDK(I)-453
C--neutrino lepton neutrino
IF(MOD(IDKPRD(1,I),2).EQ.0.AND.MOD(IDKPRD(2,I),2).EQ.1.AND.
& MOD(IDKPRD(3,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',118)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-125)/2
KKK = (IDKPRD(3,I)-120)/2
DO 54 K=1,2
I3DRTP(K,N3MODE) = 10
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 423+2*KKK+12*(K-1)
B3MODE(1,K,N3MODE) = 0.0D0
B3MODE(2,K,N3MODE)=LAMDA1(III,JJJ,KKK)*LMIXSS(2*KKK-1,2,K)
DO 54 J=1,2
54 A3MODE(J,K,N3MODE) = AFC(J,5+2*KKK,K,L1)
C--neutrino neutrino lepton
ELSEIF(MOD(IDKPRD(1,I),2).EQ.0.AND.MOD(IDKPRD(2,I),2).EQ.0
& .AND.MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',119)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)-120)/2
KKK = (IDKPRD(3,I)-125)/2
DO 55 K=1,2
I3DRTP(K ,N3MODE) = 2
I3DRTP(K+2,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 423+2*III+12*(K-1)
I3MODE(K+2,N3MODE) = 423+2*JJJ+12*(K-1)
B3MODE(1,K,N3MODE) = LAMDA1(III,JJJ,KKK)*
& LMIXSS(2*III-1,1,K)
B3MODE(2,K,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) =-LAMDA1(III,JJJ,KKK)*
& LMIXSS(2*JJJ-1,1,K)
B3MODE(2,K+2,N3MODE) = 0.0D0
DO 55 J=1,2
A3MODE(J,K,N3MODE) = AFC(J,5+2*III,K,L1)
55 A3MODE(J,K+2,N3MODE) = AFC(J,5+2*JJJ,K,L1)
C--lepton lepton lepton
ELSEIF(MOD(IDKPRD(1,I),2).EQ.1.AND.MOD(IDKPRD(2,I),2).EQ.1
& .AND.MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',120)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-125)/2
KKK = (IDKPRD(3,I)-119)/2
I3DRTP(1,N3MODE) = 8
I3DRTP(2,N3MODE) = 9
I3DRCF(1,N3MODE) = 1
I3DRCF(2,N3MODE) = 1
I3MODE(1,N3MODE) = 424+2*III
I3MODE(2,N3MODE) = 424+2*JJJ
B3MODE(1,1,N3MODE) = 0.0D0
B3MODE(2,1,N3MODE) = LAMDA1(III,JJJ,KKK)
B3MODE(1,2,N3MODE) = 0.0D0
B3MODE(2,2,N3MODE) =-LAMDA1(III,JJJ,KKK)
DO 56 J=1,2
A3MODE(J,1,N3MODE) = AFC(O(J),6+2*III,1,L1)
56 A3MODE(J,2,N3MODE) = AFC(O(J),6+2*JJJ,1,L1)
ELSE
CALL HWWARN('HWISP3',3)
ENDIF
C--LQD decays
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).LE.12 .AND.IDKPRD(3,I).LE. 12) THEN
L1 = IDK(I)-453
C--nubar dbar u
IF(IDKPRD(1,I).GE.128.AND.MOD(IDKPRD(1,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',121)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = IDKPRD(3,I)/2
DO 88 K=1,2
I3DRTP(K,N3MODE) = 10
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 399+2*KKK+12*(K-1)
B3MODE(1,K,N3MODE) = 0.0D0
B3MODE(2,K,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 88 J=1,2
88 A3MODE(J,K,N3MODE) = AFC(J,2*KKK-1,K,L1)
C--l+ ubar u
ELSEIF(IDKPRD(1,I).GE.127.AND.MOD(IDKPRD(1,I),2).EQ.1.AND.
& MOD(IDKPRD(2,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',122)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-6)/2
KKK = IDKPRD(3,I)/2
DO 89 K=1,2
I3DRTP(K,N3MODE) = 10
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 399+2*KKK+12*(K-1)
B3MODE(1,K,N3MODE) = 0.0D0
B3MODE(2,K,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 89 J=1,2
89 A3MODE(J,K,N3MODE) = AFC(J,2*KKK-1,K,L1)
C--l+ dbar d
ELSEIF(IDKPRD(1,I).GE.127.AND.MOD(IDKPRD(1,I),2).EQ.1.AND.
& MOD(IDKPRD(2,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',123)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 3
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-125)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = (IDKPRD(3,I)+1)/2
I3DRTP(1,N3MODE) = 8
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 424+2*III
B3MODE(1,1,N3MODE) = 0.0D0
B3MODE(2,1,N3MODE) = -LAMDA2(III,JJJ,KKK)
DO 91 J=1,2
91 A3MODE(J,1,N3MODE) = AFC(O(J),2*III+6,1,L1)
DO 92 K=1,2
I3DRTP(K+1,N3MODE) = 9
I3DRCF(K+1,N3MODE) = 1
I3MODE(K+1,N3MODE) = 400+2*JJJ+12*(K-1)
B3MODE(1,K+1,N3MODE) = 0.0D0
B3MODE(2,K+1,N3MODE) = QMIXSS(2*JJJ,1,K)*
& LAMDA2(III,JJJ,KKK)
DO 92 J=1,2
92 A3MODE(J,K+1,N3MODE) = AFC(O(J),2*JJJ,K,L1)
C--nu u dbar
ELSEIF(IDKPRD(1,I).LE.126.AND.MOD(IDKPRD(1,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',124)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-120)/2
JJJ = IDKPRD(2,I)/2
KKK = (IDKPRD(3,I)-5)/2
DO 90 K=1,2
I3DRTP(K ,N3MODE) = 2
I3DRTP(K+2,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 423+2*III+12*(K-1)
I3MODE(K+2,N3MODE) = 399+2*JJJ+12*(K-1)
B3MODE(1,K ,N3MODE) = LMIXSS(2*III-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = -QMIXSS(2*JJJ-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
DO 90 J=1,2
A3MODE(J,K ,N3MODE) = AFC(J,2*III+5,K,L1)
90 A3MODE(J,K+2,N3MODE) = AFC(J,2*JJJ-1,K,L1)
C--unrecognised
ELSE
CALL HWWARN('HWISP3',4)
ENDIF
C--UDD decays
ELSEIF(IDKPRD(1,I).LE.12.AND.IDKPRD(2,I).LE.12.AND.
& IDKPRD(3,I).LE.12) THEN
L1 = IDK(I)-453
C--dbar dbar dbar mode
IF(MOD(IDKPRD(1,I),2).EQ.1.AND.MOD(IDKPRD(2,I),2).EQ.1.AND.
& MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',125)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 6
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-5)/2
JJJ = (IDKPRD(2,I)-5)/2
KKK = (IDKPRD(3,I)-5)/2
P3MODE(N3MODE) = ONE
IF(III.EQ.JJJ) P3MODE(N3MODE) = P3MODE(N3MODE)+ONE
IF(JJJ.EQ.KKK) P3MODE(N3MODE) = P3MODE(N3MODE)+ONE
IF(III.EQ.KKK) P3MODE(N3MODE) = P3MODE(N3MODE)+ONE
P3MODE(N3MODE) = 6.0D0/P3MODE(N3MODE)
DO 66 K=1,6
66 I3DRCF(K,N3MODE) = 1
DO 65 K=1,2
I3DRTP(K ,N3MODE) = 14
I3DRTP(K+2,N3MODE) = 15
I3DRTP(K+4,N3MODE) = 16
I3MODE(K ,N3MODE) = 400+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 400+2*JJJ+(K-1)*12
I3MODE(K+4,N3MODE) = 400+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = QMIXSS(2*III,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,K ,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) =-QMIXSS(2*JJJ,2,K)*
& LAMDA3(JJJ,III,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(1,K+4,N3MODE) = QMIXSS(2*KKK,2,K)*
& LAMDA3(KKK,III,JJJ)
B3MODE(2,K+4,N3MODE) = 0.0D0
DO 65 J=1,2
A3MODE(J,K ,N3MODE) = AFC(O(J),2*III,K,L1)
A3MODE(J,K+2,N3MODE) = AFC(O(J),2*JJJ,K,L1)
65 A3MODE(J,K+4,N3MODE) = AFC(O(J),2*KKK,K,L1)
C--u u d mode
ELSEIF(MOD(IDKPRD(1,I),2).EQ.0.AND.MOD(IDKPRD(2,I),2).EQ.0
& .AND.MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',126)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = 6.0D0
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = IDKPRD(1,I)/2
JJJ = IDKPRD(2,I)/2
KKK = (IDKPRD(3,I)+1)/2
IF(III.EQ.JJJ) P3MODE(N3MODE) = HALF*P3MODE(N3MODE)
DO 64 K=1,2
I3DRTP(K ,N3MODE) = 11
I3DRTP(K+2,N3MODE) = 12
I3DRCF(K ,N3MODE) = 1
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 399+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*JJJ+(K-1)*12
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(2,K ,N3MODE) = QMIXSS(2*III-1,2,K)*
& LAMDA3(JJJ,III,KKK)
c B3MODE(2,K,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) =-QMIXSS(2*JJJ-1,2,K)*
& LAMDA3(III,JJJ,KKK)
DO 64 J=1,2
A3MODE(J,K ,N3MODE) = AFC(J,2*III-1,K,L1)
64 A3MODE(J,K+2,N3MODE) = AFC(J,2*JJJ-1,K,L1)
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',5)
ENDIF
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',6)
ENDIF
ELSEIF(IDK(I).GE.456.AND.IDK(I).LE.457) THEN
C-- -ve chargino modes last
C--first the chargino modes to fermion-antifermion neutralino
IF(L.GE.1.AND.L.LE.4.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
IFR = IDKPRD(2,I)
IFR = IFR+MOD(IFR,2)
J = INT((IFR-1)/120)
IFR = IFR-6*INT((IFR-1)/6)+6*J
IL = IFR+4*J
SIFR = IFR+18*J
L1 = IDK(I)-455
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',127)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--sfermion exchange diagrams
DO 15 K=1,2
I3DRTP(K ,N3MODE) = 3
I3DRCF(K ,N3MODE) = 1
I3DRTP(K+2,N3MODE) = 4
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 12*(K-1)+406+SIFR
I3MODE(K+2,N3MODE) = 12*(K-1)+399+SIFR
DO 15 J=1,2
A3MODE(J,K ,N3MODE) = AFC( J ,IFR ,K,L1)
B3MODE(J,K ,N3MODE) = AFN(O(J),IFR ,K,L )
A3MODE(J,K+2,N3MODE) = AFC(O(J),IFR-1,K,L1)
15 B3MODE(J,K+2,N3MODE) = AFN( J ,IFR-1,K,L )
C--gauge boson diagram
IF(RMASS(IDK(I)).LT.MW+RMASS(IDKPRD(1,I))) THEN
NDI3BY(N3MODE) = NDI3BY(N3MODE)+1
I3DRTP(NDI3BY(N3MODE),N3MODE) = 1
I3DRCF(NDI3BY(N3MODE),N3MODE) = 1
I3MODE(NDI3BY(N3MODE),N3MODE) = 199
DO 16 J=1,2
16 A3MODE(J,NDI3BY(N3MODE),N3MODE) =-OIJ(O(J),L,L1)
B3MODE(1,NDI3BY(N3MODE),N3MODE) = ZERO
B3MODE(2,NDI3BY(N3MODE),N3MODE) = -G*ORT
ENDIF
C--then the chargino modes to fermion-antifermion chargino
ELSEIF(L.GE.5.AND.L.LE.8.AND.(IDKPRD(2,I).LE.12.OR.
& (IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132))) THEN
L = L-6
IFR = IDKPRD(2,I)
J = INT((IFR-1)/120)
IFR = IFR-6*INT((IFR-1)/6)+6*J
IL = IFR+4*J
SIFR = IFR+18*J
IF(MOD(IFR,2).EQ.0) THEN
IFR = IFR-1
SIFR = SIFR-1
ELSE
IFR = IFR+1
SIFR = SIFR+1
ENDIF
L1 = IDK(I)-455
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',128)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = ONE
IF(IDKPRD(2,I).LE.12) P3MODE(N3MODE) = THREE
SPN3CF(1,1,N3MODE) = ONE
N3NCFL(N3MODE) = 1
C--sfermion exchange diagrams
IF(MOD(IL,2).EQ.0) THEN
DO 17 K=1,2
I3DRTP(K,N3MODE) = 4
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 12*(K-1)+400+SIFR
DO 17 J=1,2
A3MODE(J,K,N3MODE) = AFC(O(J),IFR,K,L1)
17 B3MODE(J,K,N3MODE) = AFC( J ,IFR,K,L )
ELSE
DO 18 K=1,2
I3DRTP(K,N3MODE) = 3
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 12*(K-1)+400+SIFR
DO 18 J=1,2
A3MODE(J,K,N3MODE) = AFC( J ,IFR,K,L1)
18 B3MODE(J,K,N3MODE) = AFC(O(J),IFR,K,L )
ENDIF
C--gauge boson diagram
IF(RMASS(IDK(I)).LT.MZ+RMASS(IDKPRD(1,I))) THEN
NDI3BY(N3MODE) = NDI3BY(N3MODE)+1
I3DRTP(NDI3BY(N3MODE),N3MODE) = 1
I3DRCF(NDI3BY(N3MODE),N3MODE) = 1
I3MODE(NDI3BY(N3MODE),N3MODE) = 200
DO 19 J=1,2
19 A3MODE(J,NDI3BY(N3MODE),N3MODE) =-OIJP(O(J),L,L1)
B3MODE(1,NDI3BY(N3MODE),N3MODE) = -E*RFCH(IL)
B3MODE(2,NDI3BY(N3MODE),N3MODE) = -E*LFCH(IL)
ENDIF
C--R-parity violating decays
C--LLE first
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).GE.121.AND.IDKPRD(2,I).LE.132.AND.
& IDKPRD(1,I).GE.121.AND.IDKPRD(3,I).LE.132) THEN
L1 = IDK(I)-455
C--neutrino lepton neutrino
IF(MOD(IDKPRD(1,I),2).EQ.0.AND.MOD(IDKPRD(2,I),2).EQ.1.AND.
& MOD(IDKPRD(3,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',129)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)-119)/2
KKK = (IDKPRD(3,I)-126)/2
DO 57 K=1,2
I3DRTP(K,N3MODE) = 4
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 423+2*KKK+12*(K-1)
B3MODE(2,K,N3MODE) = 0.0D0
B3MODE(1,K,N3MODE)=LAMDA1(III,JJJ,KKK)*LMIXSS(2*KKK-1,2,K)
DO 57 J=1,2
57 A3MODE(J,K,N3MODE) = AFC(O(J),5+2*KKK,K,L1)
C--neutrino neutrino lepton
ELSEIF(MOD(IDKPRD(1,I),2).EQ.0.AND.MOD(IDKPRD(2,I),2).EQ.0
& .AND.MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',130)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-126)/2
KKK = (IDKPRD(3,I)-119)/2
DO 58 K=1,2
I3DRTP(K ,N3MODE) = 8
I3DRTP(K+2,N3MODE) = 9
I3DRCF(K ,N3MODE) = 1
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 423+2*III+12*(K-1)
I3MODE(K+2,N3MODE) = 423+2*JJJ+12*(K-1)
B3MODE(2,K,N3MODE) = LAMDA1(III,JJJ,KKK)*
& LMIXSS(2*III-1,1,K)
B3MODE(1,K,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) =-LAMDA1(III,JJJ,KKK)*
& LMIXSS(2*JJJ-1,1,K)
B3MODE(1,K+2,N3MODE) = 0.0D0
DO 58 J=1,2
A3MODE(J,K,N3MODE) = AFC(O(J),5+2*III,K,L1)
58 A3MODE(J,K+2,N3MODE) = AFC(O(J),5+2*JJJ,K,L1)
C--lepton lepton lepton
ELSEIF(MOD(IDKPRD(1,I),2).EQ.1.AND.MOD(IDKPRD(2,I),2).EQ.1
& .AND.MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',131)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = ONE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-119)/2
JJJ = (IDKPRD(2,I)-119)/2
KKK = (IDKPRD(3,I)-125)/2
I3DRTP(1,N3MODE) = 2
I3DRTP(2,N3MODE) = 3
I3DRCF(1,N3MODE) = 1
I3DRCF(2,N3MODE) = 1
I3MODE(1,N3MODE) = 424+2*III
I3MODE(2,N3MODE) = 424+2*JJJ
B3MODE(1,1,N3MODE) = LAMDA1(III,JJJ,KKK)
B3MODE(2,1,N3MODE) = 0.0D0
B3MODE(1,2,N3MODE) =-LAMDA1(III,JJJ,KKK)
B3MODE(2,2,N3MODE) = 0.0D0
DO 59 J=1,2
A3MODE(J,1,N3MODE) = AFC(J,6+2*III,1,L1)
59 A3MODE(J,2,N3MODE) = AFC(J,6+2*JJJ,1,L1)
ELSE
CALL HWWARN('HWISP3',7)
ENDIF
C--LQD decays
ELSEIF(IDKPRD(1,I).GE.121.AND.IDKPRD(1,I).LE.132.AND.
& IDKPRD(2,I).LE.12 .AND.IDKPRD(3,I).LE. 12) THEN
L1 = IDK(I)-455
C--nu d ubar
IF(IDKPRD(1,I).LE.126.AND.MOD(IDKPRD(1,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',132)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-120)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)-6)/2
DO 93 K=1,2
I3DRTP(K,N3MODE) = 4
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 399+2*KKK+12*(K-1)
B3MODE(2,K,N3MODE) = 0.0D0
B3MODE(1,K,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 93 J=1,2
93 A3MODE(J,K,N3MODE) = AFC(O(J),2*KKK-1,K,L1)
C--l- u ubar
ELSEIF(IDKPRD(1,I).LE.125.AND.MOD(IDKPRD(1,I),2).EQ.1.AND.
& MOD(IDKPRD(2,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',133)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 2
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-119)/2
JJJ = IDKPRD(2,I)/2
KKK = (IDKPRD(3,I)-6)/2
DO 94 K=1,2
I3DRTP(K,N3MODE) = 4
I3DRCF(K,N3MODE) = 1
I3MODE(K,N3MODE) = 399+2*KKK+12*(K-1)
B3MODE(2,K,N3MODE) = 0.0D0
B3MODE(1,K,N3MODE) = QMIXSS(2*KKK-1,2,K)*
& LAMDA2(III,JJJ,KKK)
DO 94 J=1,2
94 A3MODE(J,K,N3MODE) = AFC(J,2*KKK-1,K,L1)
C--l- d dbar
ELSEIF(IDKPRD(1,I).LE.125.AND.MOD(IDKPRD(1,I),2).EQ.1.AND.
& MOD(IDKPRD(2,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',134)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 3
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-119)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)-5)/2
I3DRTP(1,N3MODE) = 2
I3DRCF(1,N3MODE) = 1
I3MODE(1,N3MODE) = 424+2*III
B3MODE(2,1,N3MODE) = 0.0D0
B3MODE(1,1,N3MODE) = -LAMDA2(III,JJJ,KKK)
DO 95 J=1,2
95 A3MODE(J,1,N3MODE) = AFC(J,2*III+6,1,L1)
DO 96 K=1,2
I3DRTP(K+1,N3MODE) = 3
I3DRCF(K+1,N3MODE) = 1
I3MODE(K+1,N3MODE) = 400+2*JJJ+12*(K-1)
B3MODE(2,K+1,N3MODE) = 0.0D0
B3MODE(1,K+1,N3MODE) = QMIXSS(2*JJJ,1,K)*
& LAMDA2(III,JJJ,KKK)
DO 96 J=1,2
96 A3MODE(J,K+1,N3MODE) = AFC(J,2*JJJ,K,L1)
C--nubar ubar d
ELSEIF(IDKPRD(1,I).GE.128.AND.MOD(IDKPRD(1,I),2).EQ.0) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',135)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = THREE
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-126)/2
JJJ = (IDKPRD(2,I)-6)/2
KKK = (IDKPRD(3,I)+1)/2
DO 97 K=1,2
I3DRTP(K ,N3MODE) = 8
I3DRTP(K+2,N3MODE) = 9
I3DRCF(K ,N3MODE) = 1
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 423+2*III+12*(K-1)
I3MODE(K+2,N3MODE) = 399+2*JJJ+12*(K-1)
B3MODE(2,K ,N3MODE) = LMIXSS(2*III-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = -QMIXSS(2*JJJ-1,1,K)*
& LAMDA2(III,JJJ,KKK)
B3MODE(1,K+2,N3MODE) = 0.0D0
DO 97 J=1,2
A3MODE(J,K ,N3MODE) = AFC(O(J),2*III+5,K,L1)
97 A3MODE(J,K+2,N3MODE) = AFC(O(J),2*JJJ-1,K,L1)
C--unrecognised
ELSE
CALL HWWARN('HWISP3',8)
ENDIF
C-- UDD modes
ELSEIF(IDKPRD(1,I).LE.12.AND.IDKPRD(2,I).LE.12.AND.
& IDKPRD(3,I).LE.12) THEN
L1 = IDK(I)-455
C-- d d d mode
IF(MOD(IDKPRD(1,I),2).EQ.1.AND.MOD(IDKPRD(2,I),2).EQ.1.AND.
& MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',136)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 6
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)+1)/2
JJJ = (IDKPRD(2,I)+1)/2
KKK = (IDKPRD(3,I)+1)/2
P3MODE(N3MODE) = ONE
IF(III.EQ.JJJ) P3MODE(N3MODE) = P3MODE(N3MODE)+ONE
IF(JJJ.EQ.KKK) P3MODE(N3MODE) = P3MODE(N3MODE)+ONE
IF(III.EQ.KKK) P3MODE(N3MODE) = P3MODE(N3MODE)+ONE
P3MODE(N3MODE) = 6.0D0/P3MODE(N3MODE)
DO 68 K=1,6
68 I3DRCF(K,N3MODE) = 1
DO 67 K=1,2
I3DRTP(K ,N3MODE) = 12
I3DRTP(K+2,N3MODE) = 13
I3DRTP(K+4,N3MODE) = 14
I3MODE(K ,N3MODE) = 400+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 400+2*JJJ+(K-1)*12
I3MODE(K+4,N3MODE) = 400+2*KKK+(K-1)*12
B3MODE(1,K ,N3MODE) = 0.0D0
B3MODE(1,K+2,N3MODE) = 0.0D0
B3MODE(1,K+4,N3MODE) = 0.0D0
B3MODE(2,K ,N3MODE) = QMIXSS(2*III,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) =-QMIXSS(2*JJJ,2,K)*
& LAMDA3(JJJ,III,KKK)
B3MODE(2,K+4,N3MODE) = QMIXSS(2*KKK,2,K)*
& LAMDA3(KKK,III,JJJ)
DO 67 J=1,2
A3MODE(J,K ,N3MODE) = AFC(J,2*III,K,L1)
A3MODE(J,K+2,N3MODE) = AFC(J,2*JJJ,K,L1)
67 A3MODE(J,K+4,N3MODE) = AFC(J,2*KKK,K,L1)
C--u u d mode
ELSEIF(MOD(IDKPRD(1,I),2).EQ.0.AND.MOD(IDKPRD(2,I),2).EQ.0
& .AND.MOD(IDKPRD(3,I),2).EQ.1) THEN
N3MODE = N3MODE+1
IF(N3MODE.GT.NMODE3) THEN
CALL HWWARN('HWISP3',137)
GOTO 999
ENDIF
ID3PRT(N3MODE) = I
NME(I) = 10000+N3MODE
NDI3BY(N3MODE) = 4
P3MODE(N3MODE) = 6.0D0
N3NCFL(N3MODE) = 1
SPN3CF(1,1,N3MODE) = ONE
III = (IDKPRD(1,I)-6)/2
JJJ = (IDKPRD(2,I)-6)/2
KKK = (IDKPRD(3,I)-5)/2
IF(III.EQ.JJJ) P3MODE(N3MODE) = HALF*P3MODE(N3MODE)
DO 69 K=1,2
I3DRTP(K ,N3MODE) = 11
I3DRTP(K+2,N3MODE) = 12
I3DRCF(K ,N3MODE) = 1
I3DRCF(K+2,N3MODE) = 1
I3MODE(K ,N3MODE) = 399+2*III+(K-1)*12
I3MODE(K+2,N3MODE) = 399+2*JJJ+(K-1)*12
B3MODE(1,K ,N3MODE) = QMIXSS(2*III-1,2,K)*
& LAMDA3(JJJ,III,KKK)
B3MODE(1,K+2,N3MODE) =-QMIXSS(2*JJJ-1,2,K)*
& LAMDA3(III,JJJ,KKK)
B3MODE(2,K+2,N3MODE) = 0.0D0
B3MODE(2,K+2,N3MODE) = 0.0D0
DO 69 J=1,2
A3MODE(J,K ,N3MODE) = AFC(O(J),2*III-1,K,L1)
69 A3MODE(J,K+2,N3MODE) = AFC(O(J),2*JJJ-1,K,L1)
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',9)
ENDIF
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',10)
ENDIF
ENDIF
C--NOW FIND THE TWO BODY MODES WE WILL TREAT AS THREE BODY
2500 IF(IDKPRD(2,I).EQ.0.OR.IDKPRD(3,I).NE.0) GOTO 2000
L1 = IDK(I)-449
IH1 = IDK(I)-202
IH = IDKPRD(1,I)-202
C--first the neutralino decay modes
IF(L1.GE.1.AND.L1.LE.4.AND.
& IDKPRD(2,I).GE.198.AND.IDKPRD(2,I).LE.200) THEN
C--neutralino --> neutralino Z
IF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.200) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',138)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 1
DO 20 J=1,2
20 ABMODE(J,NBMODE) = OIJPP(J,L,L1)
DO 21 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = THREE
ELSE
IL=K+4
PBMODE(K,NBMODE) = ONE
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
21 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--neutralino --> chargino+ W-
ELSEIF((L.EQ.5.OR.L.EQ.6).AND.IDKPRD(2,I).EQ.199) THEN
L = L-4
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',139)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 199
IBDRTP(NBMODE) = 1
DO 22 J=1,2
22 ABMODE(J,NBMODE) = OIJ(J,L1,L)
DO 23 K=1,6
PBMODE(K,NBMODE) = ONE
IF(K.LE.3) PBMODE(K,NBMODE) = THREE
BBMODE(1,K,NBMODE) = ZERO
23 BBMODE(2,K,NBMODE) = -G*ORT
C--neutralino --> chargino- W+
ELSEIF((L.EQ.7.OR.L.EQ.8).AND.IDKPRD(2,I).EQ.198) THEN
L = L-6
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',140)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 198
IBDRTP(NBMODE) = 1
DO 24 J=1,2
24 ABMODE(J,NBMODE) =-OIJ(O(J),L1,L)
DO 25 K=1,6
PBMODE(K,NBMODE) = ONE
IF(K.LE.3) PBMODE(K,NBMODE) = THREE
BBMODE(1,K,NBMODE) = ZERO
25 BBMODE(2,K,NBMODE) = -G*ORT
C--gravitino Z modes
ELSEIF(L.EQ.9.AND.IDKPRD(2,I).EQ.200) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',141)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 7
ABMODE(1,NBMODE) = 2.0D0/SQRT(6.0D0)*ZMIXSS(L1,2)
ABMODE(2,NBMODE) = 2.0D0/SQRT(6.0D0)*RMASS(200)*
& (ZMIXSS(L1,3)*COSB-ZMIXSS(L1,4)*SINB)
DO 41 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = THREE
ELSE
IL=K+4
PBMODE(K,NBMODE) = ONE
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
41 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--unrecognized decay issue warning
ELSE
CALL HWWARN('HWISP3',11)
ENDIF
C--then the +ve chargino decay modes
ELSEIF((L1.EQ.5.OR.L1.EQ.6)
& .AND.IDKPRD(2,I).GE.198.AND.IDKPRD(2,I).LE.200) THEN
L1 = L1-4
C--chargino --> chargino Z
IF((L.EQ.5.OR.L.EQ.6).AND.IDKPRD(2,I).EQ.200) THEN
L = L-4
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',142)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 1
DO 26 J=1,2
26 ABMODE(J,NBMODE) = OIJP(J,L,L1)
DO 27 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = THREE
ELSE
IL=K+4
PBMODE(K,NBMODE) = ONE
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
27 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--chargino --> neutralino W+
ELSEIF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.198) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',143)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 198
IBDRTP(NBMODE) = 1
DO 28 J=1,2
28 ABMODE(J,NBMODE) = OIJ(J,L,L1)
DO 29 K=1,6
PBMODE(K,NBMODE) = ONE
IF(K.LE.3) PBMODE(K,NBMODE) = THREE
BBMODE(1,K,NBMODE) = ZERO
29 BBMODE(2,K,NBMODE) = -G*ORT
C--unrecognised decay issue warning
ELSE
CALL HWWARN('HWISP3',12)
ENDIF
C--then the -ve chargino decay modes
ELSEIF((L1.EQ.7.OR.L1.EQ.8)
& .AND.IDKPRD(2,I).GE.198.AND.IDKPRD(2,I).LE.200) THEN
L1 = L1-6
C--chargino --> chargino Z
IF((L.EQ.7.OR.L.EQ.8).AND.IDKPRD(2,I).EQ.200) THEN
L = L-6
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',144)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 1
DO 30 J=1,2
30 ABMODE(J,NBMODE) =-OIJP(O(J),L,L1)
DO 31 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = THREE
ELSE
IL=K+4
PBMODE(K,NBMODE) = ONE
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
31 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--chargino --> neutralino W-
ELSEIF(L.GE.1.AND.L.LE.4.AND.IDKPRD(2,I).EQ.199) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',145)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 199
IBDRTP(NBMODE) = 1
DO 32 J=1,2
32 ABMODE(J,NBMODE) =-OIJ(O(J),L,L1)
DO 33 K=1,6
PBMODE(K,NBMODE) = ONE
IF(K.LE.3) PBMODE(K,NBMODE) = THREE
BBMODE(1,K,NBMODE) = ZERO
33 BBMODE(2,K,NBMODE) = -G*ORT
C--unrecognised decay issue warning
ELSE
CALL HWWARN('HWISP3',13)
ENDIF
C--gauge boson decay modes of the Higgs
ELSEIF(IH.GE.1.AND.IH.LE.5.AND.IH1.GE.1.AND.IH1.LE.5.AND.
& IDKPRD(1,I).GE.198.AND.IDKPRD(2,I).LE.200) THEN
C--decay of the A0 to scalar Higgs and Z boson
IF(IH1.EQ.3.AND.IH.LE.2) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',146)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 6
ABMODE(1,NBMODE) =-HHB(2,IH)
ABMODE(2,NBMODE) = ZERO
DO 34 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = 3.0D0
ELSE
IL=K+4
PBMODE(K,NBMODE) = 1.0D0
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
34 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--decay of scalar Higgs to A0 and Z
ELSEIF(IH.EQ.3.AND.IH1.LE.3) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',147)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 6
ABMODE(1,NBMODE) = HHB(2,IH1)
ABMODE(2,NBMODE) = ZERO
DO 35 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = 3.0D0
ELSE
IL=K+4
PBMODE(K,NBMODE) = 1.0D0
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
35 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--decay of the positively charged Higgs
ELSEIF(IH1.EQ.4.AND.IH.LE.3) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',148)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 198
IBDRTP(NBMODE) = 6
ABMODE(1,NBMODE) =-HHB(1,IH)
ABMODE(2,NBMODE) = ZERO
DO 36 K=1,6
PBMODE(K,NBMODE) = 1.0D0
IF(K.LE.3) PBMODE(K,NBMODE) = 3.0D0
BBMODE(1,K,NBMODE) = ZERO
36 BBMODE(2,K,NBMODE) = -G*ORT
C--decay of the negatively charged Higgs
ELSEIF(IH1.EQ.5.AND.IH.LE.3) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',149)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 199
IBDRTP(NBMODE) = 6
ABMODE(1,NBMODE) =-HHB(1,IH)
ABMODE(2,NBMODE) = ZERO
DO 37 K=1,6
PBMODE(K,NBMODE) = 1.0D0
IF(K.LE.3) PBMODE(K,NBMODE) = 3.0D0
BBMODE(1,K,NBMODE) = ZERO
37 BBMODE(2,K,NBMODE) = -G*ORT
ENDIF
C--finally sfermion modes to gauge bosons
ELSEIF(IDK(I).GE.401.AND.IDK(I).LE.448.AND.
& IDKPRD(2,I).GE.401.AND.IDKPRD(2,I).LE.448.AND.
& IDKPRD(1,I).GE.198.AND.IDKPRD(1,I).LE.200) THEN
C--change the order of the decay products
IM = MOD(INT((IDK(I)-389)/12)+1,2)+1
IL = 6*INT((IDK(I)-401)/24)+MOD(IDK(I)-401,6)+1
IH = MOD(INT((IDKPRD(2,I)-389)/12)+1,2)+1
IQ = 6*INT((IDKPRD(2,I)-401)/24)+MOD(IDKPRD(2,I)-401,6)+1
C--first the Z decay modes
IF(IDKPRD(1,I).EQ.200) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',150)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 200
IBDRTP(NBMODE) = 6
ABMODE(1,NBMODE) = ZAB(IL,IM,IH)
ABMODE(2,NBMODE) = ZERO
DO 38 K=1,12
IF(K.LE.6) THEN
IL = K
PBMODE(K,NBMODE) = 3.0D0
ELSE
IL=K+4
PBMODE(K,NBMODE) = 1.0D0
ENDIF
BBMODE(1,K,NBMODE) = -E*RFCH(IL)
38 BBMODE(2,K,NBMODE) = -E*LFCH(IL)
C--then the W+ decay modes
ELSEIF(IDKPRD(1,I).EQ.198) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',151)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 198
IBDRTP(NBMODE) = 6
IF(IL.LE.6) THEN
ABMODE(1,NBMODE) = -G*ORT*QMIXSS(IL,1,IM)*QMIXSS(IQ,1,IH)
ELSE
ABMODE(1,NBMODE) = -G*ORT*LMIXSS(IL-6,1,IM)*
& LMIXSS(IQ-6,1,IH)
ENDIF
ABMODE(2,NBMODE) = ZERO
DO 39 K=1,6
PBMODE(K,NBMODE) = 1.0D0
IF(K.LE.3) PBMODE(K,NBMODE) = 3.0D0
BBMODE(1,K,NBMODE) = ZERO
39 BBMODE(2,K,NBMODE) = -G*ORT
ELSEIF(IDKPRD(1,I).EQ.199) THEN
NBMODE = NBMODE+1
IF(NBMODE.GT.NMODEB) THEN
CALL HWWARN('HWISP3',152)
GOTO 999
ENDIF
NME(I) = 20000+NBMODE
IDBPRT(NBMODE) = I
IBMODE(NBMODE) = 199
IBDRTP(NBMODE) = 6
IF(IL.LE.6) THEN
ABMODE(1,NBMODE) = -G*ORT*QMIXSS(IL,1,IM)*QMIXSS(IQ,1,IH)
ELSE
ABMODE(1,NBMODE) = -G*ORT*LMIXSS(IL-6,1,IM)*
& LMIXSS(IQ-6,1,IH)
ENDIF
ABMODE(2,NBMODE) = ZERO
DO 40 K=1,6
PBMODE(K,NBMODE) = 1.0D0
IF(K.LE.3) PBMODE(K,NBMODE) = 3.0D0
BBMODE(1,K,NBMODE) = ZERO
40 BBMODE(2,K,NBMODE) = -G*ORT
ENDIF
ENDIF
2000 CONTINUE
C--now compute the maximum weights for the three body decays found
2999 CONTINUE
DO 3000 I=1,N3MODE
IF(RSPIN(IDK(ID3PRT(I))).EQ.ZERO) THEN
RHOIN(1,1) = ONE
RHOIN(1,2) = ZERO
RHOIN(2,1) = ZERO
RHOIN(2,2) = ZERO
ELSE
RHOIN(1,1) = HALF
RHOIN(1,2) = ZERO
RHOIN(2,1) = ZERO
RHOIN(2,2) = HALF
ENDIF
PHEP(5,1) = RMASS(IDK(ID3PRT(I)))
PHEP(4,1) = SQRT(100.0D0**2+PHEP(5,1)**2)
PHEP(1,1) = 100.0D0
PHEP(2,1) = 0.0D0
PHEP(3,1) = 0.0D0
IF(IPRINT.EQ.2) WRITE(6,5000) RNAME(IDK(ID3PRT(I))),
& RNAME(IDKPRD(1,ID3PRT(I))),RNAME(IDKPRD(2,ID3PRT(I))),
& RNAME(IDKPRD(3,ID3PRT(I)))
3000 CALL HWD3ME(1,0,I,RHOIN,1)
IF(.NOT.SUSYIN) RETURN
C--and for the two body gauge boson modes
DO 4000 I=1,NBMODE
IF(RSPIN(IDK(IDBPRT(I))).EQ.ZERO) THEN
RHOIN(1,1) = ONE
RHOIN(1,2) = ZERO
RHOIN(2,1) = ZERO
RHOIN(2,2) = ZERO
ELSE
RHOIN(1,1) = HALF
RHOIN(1,2) = ZERO
RHOIN(2,1) = ZERO
RHOIN(2,2) = HALF
ENDIF
PHEP(5,1) = RMASS(IDK(IDBPRT(I)))
PHEP(4,1) = SQRT(100.0D0**2+PHEP(5,1)**2)
PHEP(1,1) = 100.0D0
PHEP(2,1) = 0.0D0
PHEP(3,1) = 0.0D0
IF(IPRINT.EQ.2) WRITE(6,5010) RNAME(IDK(IDBPRT(I))),
& RNAME(IDKPRD(1,IDBPRT(I))),RNAME(IDKPRD(2,IDBPRT(I)))
IL = 12
IF(IBMODE(I).NE.200) IL = 6
DO 4000 J=1,IL
4000 CALL HWD3ME(1,J,I,RHOIN,1)
RETURN
5000 FORMAT(/'CALCULATING THREE BODY DECAY ',
& A8,' --> ',A8,' ',A8,' ',A8/)
5010 FORMAT(/'CALCULATING TWO BODY DECAY ',
& A8,' --> ',A8,' ',A8/)
999 RETURN
END
CDECK ID>, HWISP4.
*CMZ :- -12/10/01 12.04.54 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWISP4
C-----------------------------------------------------------------------
C Initialise the Higgs four body modes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,IL,IH,II,JJ
DOUBLE PRECISION COL(2),SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
& AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
& HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
& HZZ(2),ZAB(12,2,2),HHB(2,3),GS
COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
& OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
IF(IERROR.NE.0.OR..NOT.SUSYIN) RETURN
C--four body Higgs modes via virtual WW and ZZ
DO 1000 JJ=1,NRES
DO 1000 II=1,NMODES(JJ)
IF(II.EQ.1) THEN
I = LSTRT(JJ)
ELSE
I = LNEXT(I)
ENDIF
IH=IDK(I)-202
IF((IH.EQ.1.OR.IH.EQ.2).AND.IDKPRD(3,I).EQ.0.AND.
& IDKPRD(1,I).GE.198.AND.IDKPRD(1,I).LE.200.AND.
& IDKPRD(2,I).GE.198.AND.IDKPRD(2,I).LE.200) THEN
C--first the WW modes
IF(IDKPRD(1,I).NE.200) THEN
N4MODE = N4MODE+1
IF(N4MODE.GT.NMODE4) THEN
CALL HWWARN('HWISP4',100)
GOTO 999
ENDIF
NME(I) = 40000+N4MODE
ID4PRT(N4MODE) = I
I4MODE(1,N4MODE) = 198
I4MODE(2,N4MODE) = 199
DO 1 K=1,6
A4MODE(1,K,N4MODE) = ZERO
A4MODE(2,K,N4MODE) =-G*ORT
B4MODE(1,K,N4MODE) = ZERO
1 B4MODE(2,K,N4MODE) =-G*ORT
C--now the prefactors
DO 2 J=1,6
COL(1) = HWW(IH)**2
IF(J.LE.3) COL(1) = THREE*COL(1)
DO 2 K=1,6
COL(2) = ONE
IF(K.LE.3) COL(2) = THREE*COL(2)
2 P4MODE(J,K,N4MODE) = COL(1)*COL(2)
C--then the ZZ modes
ELSE
N4MODE = N4MODE+1
IF(N4MODE.GT.NMODE4) THEN
CALL HWWARN('HWISP4',101)
GOTO 999
ENDIF
NME(I) = 40000+N4MODE
ID4PRT(N4MODE) = I
I4MODE(1,N4MODE) = 200
I4MODE(2,N4MODE) = 200
DO 3 K=1,12
IL = K
IF(K.GT.6) IL=K+4
A4MODE(1,K,N4MODE) =-E*RFCH(IL)
A4MODE(2,K,N4MODE) =-E*LFCH(IL)
B4MODE(1,K,N4MODE) =-E*RFCH(IL)
3 B4MODE(2,K,N4MODE) =-E*LFCH(IL)
DO 4 J=1,12
COL(1) = HALF*HZZ(IH)**2
IF(J.LE.6) COL(1)=THREE*COL(1)
DO 4 K=1,12
COL(2) = ONE
IF(K.LE.6) COL(2) = THREE
4 P4MODE(J,K,N4MODE) = COL(1)*COL(2)
ENDIF
ENDIF
1000 CONTINUE
C--compute the maximum weights
IF(N4MODE.EQ.0) RETURN
DO 2000 I=1,N4MODE
PHEP(5,1) = RMASS(IDK(ID4PRT(I)))
PHEP(4,1) = SQRT(100.0D0**2+PHEP(5,1)**2)
PHEP(1,1) = 100.0D0
PHEP(2,1) = 0.0D0
PHEP(3,1) = 0.0D0
IF(IPRINT.EQ.2) WRITE(6,5010) RNAME(IDK(ID4PRT(I))),
& RNAME(IDKPRD(1,ID4PRT(I))),RNAME(IDKPRD(2,ID4PRT(I)))
IL = 12
IF(I4MODE(1,I).NE.200) IL = 6
DO 2000 J=1,IL
DO 2000 K=1,IL
2000 CALL HWD4ME(1,J,K,I)
RETURN
5010 FORMAT(/'CALCULATING TWO BODY DECAY ',
& A8,' --> ',A8,' ',A8/)
999 RETURN
END
CDECK ID>, HWISSP.
*CMZ :- -12/10/01 09:41:43 by Peter Richardson
*-- Author : Bryan Webber, modified by Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWISSP
C-----------------------------------------------------------------------
C Reads in SUSY particle properties and decays,
C in format generated by ISAWIG
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,K,IH,IHW,NSSP,NDEC,MDKYS
DOUBLE PRECISION BETAH, WEINCOS,WEINSIN, MW,MZ, RMMAX
DOUBLE PRECISION FTM,FTMUU(4),FTMDD(4),FTMTT(4),FTMBB(4),FTMU,FTMD
DOUBLE PRECISION YTM,YTM1,DTERM(4), SQHF,SNBCSB,MZSW2
LOGICAL FIRST
EQUIVALENCE (MW,RMASS(198)), (MZ,RMASS(200))
SAVE MDKYS
SAVE FIRST
DATA FIRST/.TRUE./
IF (FIRST) THEN
MDKYS=NDKYS
FIRST=.FALSE.
ELSE
NDKYS=MDKYS
ENDIF
C--reset susy input flag
IF (LRSUSY.LT.0) CALL HWWARN('HWISSP',500)
SUSYIN = .TRUE.
C
C Input SUSY particle + top quark table
C
WRITE (6,9) ' '
9 FORMAT(//10X,A28//,
& 10X,'Since SUSY processes are called,'
& ,/, 10X,'please also reference: S.Moretti, K.Odagiri,'
& ,/, 10X,'P.Richardson, M.H.Seymour & B.R.Webber,'
& ,/, 10X,'JHEP 0204 (2002) 028')
WRITE (6,10) LRSUSY
10 FORMAT (/10X,'Reading in SUSY data from unit',I3)
READ (LRSUSY,'(I4)') NSSP
IF (NSSP.LE.0) RETURN
RMMAX=SQRT(HALF*(EBEAM1*EBEAM2+PBEAM1*PBEAM2))
RMMNSS=RMMAX
DO I=1,NSSP
READ (LRSUSY,1) IHW,RMASS(IHW),RLTIM(IHW)
C Negative gaugino mass means physical field is gamma_5*psi
C Store the signs
IF ((IHW.GE.450).AND.(IHW.LE.457)) THEN
IF (IHW.LE.453) THEN
J=IHW-449
ZSGNSS(J)=RMASS(IHW)/ABS(RMASS(IHW))
ELSEIF (IHW.LE.455) THEN
J=IHW-453
WSGNSS(J)=RMASS(IHW)/ABS(RMASS(IHW))
ENDIF
RMASS(IHW)=ABS(RMASS(IHW))
ENDIF
IF (ABS(IDPDG(IHW)).GT.1000000.AND.(RMASS(IHW).NE.ZERO))
& RMMNSS=MIN(RMMNSS,RMASS(IHW))
IF (IHW.GT.NRES) THEN
IF (IHW.GT.NMXRES) CALL HWWARN('HWISSP',501)
NRES=IHW
ENDIF
ENDDO
XLMNSS=TWO*LOG(RMMNSS/RMMAX)
1 FORMAT(I5,F12.4,E15.5)
C
C Input decay modes
C
NDECSY = NDKYS+1
DO I=1,NSSP
READ (LRSUSY,'(I4)') NDEC
IF (NDEC.GT.0) THEN
DO J=1,NDEC
NDKYS=NDKYS+1
IF (NDKYS.GT.NMXDKS) THEN
CALL HWWARN('HWISSP',100)
GOTO 999
ENDIF
READ (LRSUSY,11) IDK(NDKYS),BRFRAC(NDKYS),NME(NDKYS),
& (IDKPRD(K,NDKYS),K=1,5)
11 FORMAT(I6,F16.8,6I6)
ENDDO
ENDIF
ENDDO
C
C Mixings and other SUSY parameters
C
READ (LRSUSY,'(2F16.8)') TANB,ALPHAH
DO I=1,4
READ (LRSUSY,13) ZMXNSS(I,1),ZMXNSS(I,2),ZMXNSS(I,3),ZMXNSS(I,4)
END DO
WEINSIN = SQRT(SWEIN)
WEINCOS = SQRT(1.-SWEIN)
DO I=1,4
ZMIXSS(I,1) = WEINCOS*ZMXNSS(I,1)+WEINSIN*ZMXNSS(I,2)
ZMIXSS(I,2) = -WEINSIN*ZMXNSS(I,1)+WEINCOS*ZMXNSS(I,2)
ZMIXSS(I,3) = ZMXNSS(I,3)
ZMIXSS(I,4) = ZMXNSS(I,4)
END DO
DO J=1,16
IF ((J.LE.6).OR.(J.GE.11)) THEN
C--left and right couplings now computed in HWIGIN
DO I=1,4
SLFCH(J,I)= ZMIXSS(I,1)*QFCH(J)+ZMIXSS(I,2)*LFCH(J)
SRFCH(J,I)=-ZMIXSS(I,1)*QFCH(J)-ZMIXSS(I,2)*RFCH(J)
END DO
ENDIF
END DO
READ (LRSUSY,13) WMXVSS(1,1),WMXVSS(1,2), WMXVSS(2,1),WMXVSS(2,2)
READ (LRSUSY,13) WMXUSS(1,1),WMXUSS(1,2), WMXUSS(2,1),WMXUSS(2,2)
READ (LRSUSY,'(3F16.8)') THETAT,THETAB,THETAL
READ (LRSUSY,'(3F16.8)') ATSS,ABSS,ALSS
READ (LRSUSY,'( F16.8)') MUSS
DO I=1,6
QMIXSS(I,1,1)=1.
QMIXSS(I,1,2)=0.
QMIXSS(I,2,1)=0.
QMIXSS(I,2,2)=1.
LMIXSS(I,1,1)=1.
LMIXSS(I,1,2)=0.
LMIXSS(I,2,1)=0.
LMIXSS(I,2,2)=1.
END DO
QMIXSS(6,1,1)= COS(THETAT)
QMIXSS(6,1,2)= SIN(THETAT)
QMIXSS(6,2,1)=-QMIXSS(6,1,2)
QMIXSS(6,2,2)= QMIXSS(6,1,1)
QMIXSS(5,1,1)= COS(THETAB)
QMIXSS(5,1,2)= SIN(THETAB)
QMIXSS(5,2,1)=-QMIXSS(5,1,2)
QMIXSS(5,2,2)= QMIXSS(5,1,1)
LMIXSS(5,1,1)= COS(THETAL)
LMIXSS(5,1,2)= SIN(THETAL)
LMIXSS(5,2,1)=-LMIXSS(5,1,2)
LMIXSS(5,2,2)= LMIXSS(5,1,1)
C--Evaluating Higgs parameters and couplings
BETAH=ATAN(TANB)
COTB=ONE/TANB
COSBPA=COS(BETAH+ALPHAH)
SINBPA=SIN(BETAH+ALPHAH)
COSBMA=COS(BETAH-ALPHAH)
SINBMA=SIN(BETAH-ALPHAH)
COSA=COS(ALPHAH)
SINA=SIN(ALPHAH)
COSB=COS(BETAH)
SINB=SIN(BETAH)
GHWWSS(1)=SINBMA
GHWWSS(2)=COSBMA
GHWWSS(3)=ZERO
DO 30 I=1,3
GHZZSS(I)=GHWWSS(I)
30 CONTINUE
GHDDSS(1)=-SINA/COSB
GHDDSS(2)= COSA/COSB
GHDDSS(3)= TANB
GHUUSS(1)= COSA/SINB
GHUUSS(2)= SINA/SINB
GHUUSS(3)= COTB
GHWHSS(1)= COSBMA
GHWHSS(2)= SINBMA
GHWHSS(3)= ONE
MZSW2 = MZ**2 * SQRT(SWEIN*(ONE-SWEIN))
DTERM(1) =-SINBPA*MZSW2
DTERM(2) = COSBPA*MZSW2
DTERM(3) = ZERO
FTMUU(1) = MUSS*SINA/SINB
FTMUU(2) =-MUSS*COSA/SINB
FTMUU(3) =-MUSS
FTMUU(4) =-MUSS
FTMTT(1) = ATSS*COSA/SINB
FTMTT(2) = ATSS*SINA/SINB
FTMTT(3) =-ATSS*COTB
FTMTT(4) =-ATSS*COTB
FTMDD(1) =-MUSS*COSA/COSB
FTMDD(2) =-MUSS*SINA/COSB
FTMDD(3) =-MUSS
FTMDD(4) =-MUSS
FTMBB(1) =-ABSS*SINA/COSB
FTMBB(2) = ABSS*COSA/COSB
FTMBB(3) =-ABSS*TANB
FTMBB(4) =-ABSS*TANB
DO 40 IH=1,4
FTMU=FTMUU(IH)
FTMD=FTMDD(IH)
DO 50 I=1,6
IF (I.EQ.5) FTMU=FTMU+FTMTT(IH)
IF (I.EQ.5) FTMD=FTMD+FTMBB(IH)
IF (MOD(I,2).EQ.0) THEN
YTM = GHUUSS(IH)
FTM = FTMU
ELSE
YTM = GHDDSS(IH)
FTM = FTMD
END IF
IF (IH.EQ.3) THEN
GHSQSS(IH,I,1,1) = ZERO
GHSQSS(IH,I,2,2) = ZERO
GHSQSS(IH,I,1,2) = FTM*HALF*RMASS(I)/MW
GHSQSS(IH,I,2,1) = - GHSQSS(IH,I,1,2)
GOTO 50
ELSEIF (IH.EQ.4) THEN
SQHF=SQRT(HALF)
SNBCSB=SINB*COSB
DO 60 J=1,2
DO 70 K=1,2
IF (MOD(I,2).EQ.1) THEN
GHSQSS(IH,I,J,K)=SQHF*(
& RMASS(I )*FTMD*QMIXSS(I,2,J)*QMIXSS(I+1,1,K)
& +RMASS(I+1)*FTMU*QMIXSS(I,1,J)*QMIXSS(I+1,2,K)
& +( MW**2*TWO*SNBCSB-RMASS(I+1)**2*COTB
& -RMASS(I )**2*TANB )*QMIXSS(I,1,J)*QMIXSS(I+1,1,K)
& -RMASS(I)*RMASS(I+1)/SNBCSB
& *QMIXSS(I,2,J)*QMIXSS(I+1,2,K) ) / MW
ELSE
GHSQSS(IH,I,J,K)=GHSQSS(IH,I-1,K,J)
END IF
70 END DO
60 END DO
ELSE
DO 80 J=1,2
DO 90 K=1,2
YTM1=ZERO
IF (J.EQ.K) YTM1=YTM*RMASS(I)**2
GHSQSS(IH,I,J,K)=( YTM1
& +( LFCH(I)*QMIXSS(I,1,J)*QMIXSS(I,1,K)
& -RFCH(I)*QMIXSS(I,2,J)*QMIXSS(I,2,K) )*DTERM(IH)
& +FTM*HALF*RMASS(I)*(QMIXSS(I,1,J)*QMIXSS(I,2,K)
& +QMIXSS(I,2,J)*QMIXSS(I,1,K)) ) / MW
90 CONTINUE
80 CONTINUE
END IF
50 CONTINUE
40 CONTINUE
C--Rparity violation
READ (LRSUSY,'(L5)') RPARTY
IF(.NOT.RPARTY) THEN
READ(LRSUSY,20) (((LAMDA1(I,J,K),K=1,3),J=1,3),I=1,3)
READ(LRSUSY,20) (((LAMDA2(I,J,K),K=1,3),J=1,3),I=1,3)
READ(LRSUSY,20) (((LAMDA3(I,J,K),K=1,3),J=1,3),I=1,3)
ENDIF
13 FORMAT(4F16.8)
20 FORMAT(27E16.8)
CLOSE(LRSUSY)
IF(FOURB) CALL HWIMDE
999 RETURN
END
CDECK ID>, HWMEVT.
*CMZ :- -04/05/99 14.28.59 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWMEVT
C-----------------------------------------------------------------------
C IPROC = 1000,... ADDS SOFT UNDERLYING EVENT
C = 8000: CREATES MINIMUM-BIAS EVENT
C SUPPRESSED BY ADDING 10000 TO IPROC
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWREXP,ENFAC,TECM,SECM,SUMM,EMCL,BMP(5),BMR(3,3)
INTEGER HWRINT,NETC,IBT,IDBT,ID1,ID2,ID3,KHEP,LHEP,NTRY,ICMS,
& NPPBAR,MCHT,JCL,JD1,JD2,JD3,ICH,MODC,NCHT,INHEP(2),
& INID(2,2),JBT
C--BRW FIX 30/12/04 FOR SPACE-TIME STRUCTURE
C--RMS CLUSTER COORDINATES (GAUSSIAN) AND C*LIFETIME (IN MM)
DOUBLE PRECISION VCLX,VCLY,VCLZ,VCLT,HWRGAU,HWRGEN
EXTERNAL HWREXP,HWRINT,HWRGAU,HWRGEN
SAVE VCLX,VCLY,VCLZ,VCLT
DATA VCLX,VCLY,VCLZ,VCLT/4*1D-12/
C--END FIX
IF (IERROR.NE.0) RETURN
IF (.NOT.GENSOF) GOTO 990
IF (IPROC.EQ.8000) THEN
C---SET UP BEAM AND TARGET CLUSTERS
5 NETC=0
DO 10 IBT=1,2
JBT=IBT
IF (JDAHEP(1,IBT).NE.0) JBT=JDAHEP(1,IBT)
IDBT=IDHW(JBT)
IF (IDBT.EQ.73.OR.IDBT.EQ.75) THEN
INID(1,IBT)=HWRINT(1,2)
INID(2,IBT)=110
ELSEIF (IDBT.EQ.91.OR.IDBT.EQ.93) THEN
INID(1,IBT)=116
INID(2,IBT)=HWRINT(7,8)
ELSEIF (IDBT.EQ.30) THEN
INID(1,IBT)=HWRINT(1,2)
INID(2,IBT)=8
ELSEIF (IDBT.EQ.38) THEN
INID(1,IBT)=2
INID(2,IBT)=HWRINT(7,8)
ELSEIF (IDBT.EQ.34) THEN
INID(1,IBT)=3
INID(2,IBT)=HWRINT(7,8)
ELSEIF (IDBT.EQ.46) THEN
INID(1,IBT)=HWRINT(1,2)
INID(2,IBT)=9
ELSEIF (IDBT.EQ.59) THEN
INID(1,IBT)=HWRINT(1,2)
INID(2,IBT)=HWRINT(7,8)
ELSE
CALL HWWARN('HWMEVT',100)
GOTO 999
ENDIF
NETC=NETC+ICHRG(IDBT)
& -(ICHRG(INID(1,IBT))+ICHRG(INID(2,IBT)))/3
ENFAC=1.
IDHW(NHEP+IBT)=19
IDHEP(NHEP+IBT)=91
ISTHEP(NHEP+IBT)=163+IBT
JMOHEP(1,NHEP+IBT)=JBT
10 CONTINUE
IF (NETC.EQ.0) THEN
ID3=HWRINT(1,2)
ELSEIF (NETC.EQ.-1) THEN
ID3=1
ELSEIF (NETC.EQ.1) THEN
ID3=2
ELSE
GOTO 5
ENDIF
DO 12 IBT=1,2
NHEP=NHEP+1
JBT=IBT
IF (JDAHEP(1,IBT).NE.0) JBT=JDAHEP(1,IBT)
CALL HWVEQU(5,PHEP(1,JBT),PHEP(1,NHEP))
12 INHEP(IBT)=NHEP
ELSE
C---FIND BEAM AND TARGET CLUSTERS
DO 20 IBT=1,2
DO 15 KHEP=1,NHEP
IF (ISTHEP(KHEP).EQ.163+IBT) THEN
INHEP(IBT)=KHEP
INID(1,IBT)=IDHW(JMOHEP(1,KHEP))
INID(2,IBT)=IDHW(JMOHEP(2,KHEP))
GOTO 20
ENDIF
15 CONTINUE
C---COULDN'T FIND ONE
INHEP(IBT)=0
20 CONTINUE
JCL=-1
C---TEST FOR BOTH FOUND
IF (INHEP(1).EQ.0) JCL=INHEP(2)
IF (INHEP(2).EQ.0) JCL=INHEP(1)
IF (JCL.EQ.0) THEN
CALL HWWARN('HWMEVT',101)
GOTO 999
ENDIF
IF (JCL.GT.0) THEN
ISTHEP(JCL)=163
CALL HWCFOR
CALL HWCDEC
CALL HWDHAD
CALL HWDHVY
GOTO 90
ENDIF
ID3=HWRINT(1,2)
ENFAC=ENSOF
NETC=0
ENDIF
C---FIND SOFT CM MOMENTUM AND MULTIPLICITY
NTRY=0
NHEP=NHEP+1
IF (NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWMEVT',102)
GOTO 999
ENDIF
ICMS=NHEP
IDHW(NHEP)=16
IDHEP(NHEP)=0
C--Bug Fix 31/03/00 PR
JMOHEP(1,ICMS)=INHEP(1)
JMOHEP(2,ICMS)=INHEP(2)
C--End of Fix
ISTHEP(NHEP)=170
CALL HWVSUM(4,PHEP(1,INHEP(1)),PHEP(1,INHEP(2)),PHEP(1,NHEP))
CALL HWUMAS(PHEP(1,NHEP))
TECM=PHEP(5,NHEP)
IF (IPRO/10.EQ.9.OR.IPRO/10.EQ.5) THEN
SECM=TECM*ENFAC
ELSE
SECM=PHEP(5,3)*ENFAC
ENDIF
C---CHOOSE MULTIPLICITY
25 CALL HWMULT(SECM,NPPBAR)
30 NCL=0
MCHT=0
IERROR=0
NHEP =ICMS
SUMM=0.
NTRY=NTRY+1
C---CREATE CLUSTERS
35 NCL=NCL+1
NHEP=NHEP+1
IF (NHEP.GT.NMXHEP) THEN
CALL HWWARN('HWMEVT',103)
GOTO 999
ENDIF
JCL=NHEP
IDHW(JCL)=19
IDHEP(JCL)=91
IF (NCL.LT.3) THEN
ISTHEP(JCL)=170+NCL
ID1=INID(1,NCL)
ID2=INID(2,NCL)
ELSE
ID1=ID2-6
IF (NCL.EQ.3) ID1=ID3
ID2=HWRINT(7,8)
ISTHEP(JCL)=173
ENDIF
JMOHEP(1,JCL)=ICMS
JMOHEP(2,JCL)=0
CALL HWVZRO(3,PHEP(1,JCL))
PHEP(4,JCL)=RMASS(ID1)+RMASS(ID2)+PMBM1+HWREXP(TWO/PMBM2)
PHEP(5,JCL)=PHEP(4,JCL)
C--BRW FIX 30/12/04 FOR SPACE-TIME STRUCTURE
C--VERTEX POSITION FOR CLUSTER FORMATION
VHEP(1,JCL)=HWRGAU(1,ZERO,VCLX)
VHEP(2,JCL)=HWRGAU(2,ZERO,VCLY)
VHEP(3,JCL)=HWRGAU(3,ZERO,VCLZ)
VHEP(4,JCL)=SQRT(VHEP(1,JCL)**2+VHEP(2,JCL)**2+VHEP(3,JCL)**2)
& -VCLT*LOG(HWRGEN(0))
C--MHS FIX 07/03/05 - MEASURE DISPLACEMENTS RELATIVE TO SOFT CM
CALL HWVZRO(4,VTXPIP)
C--END FIXES
C---HADRONIZE AND DECAY CLUSTERS
CALL HWCFLA(ID1,ID2,JD1,JD2)
CALL HWCHAD(JCL,JD1,JD2,JD3)
IF (IERROR.NE.0) RETURN
IF (JD3.EQ.0) THEN
EMCL=RMASS(IDHW(NHEP))
IF (PHEP(4,JCL).NE.EMCL) THEN
PHEP(4,JCL)=EMCL
PHEP(5,JCL)=EMCL
PHEP(4,NHEP)=EMCL
PHEP(5,NHEP)=EMCL
ENDIF
ELSE
EMCL=PHEP(5,JCL)
ENDIF
IDCL(NCL)=JD3
PPCL(5,NCL)=EMCL
SUMM=SUMM +EMCL
CALL HWDHAD
CALL HWDHVY
IF (IERROR.NE.0) RETURN
C---CHECK CHARGED MULTIPLICITY
MODC=0
DO 50 KHEP=JCL,NHEP
IF (ISTHEP(KHEP).EQ.1) THEN
ICH=ICHRG(IDHW(KHEP))
IF (ICH.NE.0) THEN
MCHT=MCHT+ABS(ICH)
MODC=MODC+ICH
ENDIF
ENDIF
50 CONTINUE
IF (NCL.EQ.1) THEN
NCHT=NPPBAR+NETC+ABS(MODC)
GOTO 35
ELSEIF (NCL.EQ.2) THEN
NCHT=NCHT+ABS(MODC)
IF (NCHT.LT.0) NCHT=NCHT+2
ENDIF
IF (MCHT.LT.NCHT) THEN
GOTO 35
ELSEIF (MCHT.GT.NCHT) THEN
IF (MOD(NTRY,50).EQ.0) GOTO 25
IF (NTRY.LT.NSTRY) GOTO 30
C---NO PHASE SPACE FOR SOFT EVENT
NHEP=ICMS-1
IF (IPROC.EQ.8000) THEN
C---MINIMUM BIAS: RELABEL BEAM AND TARGET CLUSTERS
DO 60 IBT=1,2
KHEP=INHEP(IBT)
LHEP=JMOHEP(1,KHEP)
ISTHEP(KHEP)=1
IDHEP(KHEP)=IDHEP(LHEP)
IDHW(KHEP)=IDHW(LHEP)
60 CONTINUE
ELSE
C---UNDERLYING EVENT: DECAY THEM
ISTHEP(INHEP(1))=163
ISTHEP(INHEP(2))=163
CALL HWCFOR
CALL HWCDEC
CALL HWDHAD
CALL HWDHVY
ENDIF
GOTO 90
ENDIF
C---GENERATE CLUSTER MOMENTA IN CLUSTER CM
C FRAME. N.B. SECOND CLUSTER IS TARGET
IF (SUMM.GT.TECM) GOTO 25
CALL HWMLPS(TECM)
IF (NCL.EQ.0) GOTO 25
JCL=0
C---ROTATE & BOOST CLUSTERS & DECAY PRODUCTS
CALL HWULOF(PHEP(1,ICMS),PHEP(1,INHEP(1)),BMP)
CALL HWUROT(BMP, ONE,ZERO,BMR)
C---BMR PUTS BEAM ALONG Z AXIS (WE WANT INVERSE)
DO 70 KHEP=ICMS+1,NHEP
IF (ISTHEP(KHEP).GT.180.AND.ISTHEP(KHEP).LT.190
$ .AND.JMOHEP(1,KHEP).EQ.ICMS) THEN
ISTHEP(KHEP)=ISTHEP(KHEP)+3
LHEP=KHEP
JCL=JCL+1
CALL HWUROB(BMR,PPCL(1,JCL),PPCL(1,JCL))
CALL HWULOB(PHEP(1,ICMS),PPCL(1,JCL),PPCL(1,JCL))
C---NOW PPCL(*,JCL) IS LAB MOMENTUM OF JTH CLUSTER
ENDIF
CALL HWULOB(PPCL(1,JCL),PHEP(1,KHEP),PHEP(1,KHEP))
C--BRW FIX 30/12/04 FOR SPACE-TIME STRUCTURE
CALL HWULOB(PPCL(1,JCL),VHEP(1,KHEP),VHEP(1,KHEP))
C--MHS FIX 07/03/05 - ASSUME THAT SOFT CM COINCIDES WITH PRIMARY IP
IF (.NOT.(ISTHEP(KHEP).GT.180.AND.ISTHEP(KHEP).LT.190
$ .AND.JMOHEP(1,KHEP).EQ.ICMS))
$ CALL HWVSUM(4,VHEP(1,3),VHEP(1,KHEP),VHEP(1,KHEP))
C--END FIXES
70 CONTINUE
ISTHEP(INHEP(1))=167
ISTHEP(INHEP(2))=168
JDAHEP(1,INHEP(1))=ICMS
JDAHEP(2,INHEP(1))=0
JDAHEP(1,INHEP(2))=ICMS
JDAHEP(2,INHEP(2))=0
JDAHEP(1,ICMS)=ICMS+1
JDAHEP(2,ICMS)=LHEP
90 CONTINUE
990 ISTAT=100
999 RETURN
END
CDECK ID>, HWMLPS.
*CMZ :- -04/05/99 14.17.04 by Bryan Webber
*-- Author : David Ward, modified by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWMLPS(TECM)
C-----------------------------------------------------------------------
C GENERATES CYLINDRICAL PHASE SPACE USING THE METHOD OF JADACH
C RETURNS WITH NCL=0 IF UNSUCCESSFUL
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWREXT,HWRUNG,HWUSQR,TECM,ESS,ALOGS,EPS,SUMX,
& SUMY,PT,PX,PY,PT2,SUMPT2,SUMTM,XIMIN,XIMAX,YY,SUM1,SUM2,SUM3,
& SUM4,EX,FY,DD,DYY,ZZ,E1,TM,SLOP,XI(NMXCL)
INTEGER NTRY,I,NIT,IY(NMXCL),IDP
EXTERNAL HWREXT,HWRUNG,HWUSQR
IF (NCL.GT.NMXCL) THEN
CALL HWWARN('HWMLPS',1)
NCL=NMXCL
ENDIF
ESS=TECM**2
ALOGS=LOG(ESS)
EPS=1D-10/NCL
NTRY=0
11 NTRY=NTRY+1
IF (NTRY.GT.NSTRY) THEN
NCL=0
RETURN
ENDIF
SUMX=0.
SUMY=0.
DO 12 I=1,NCL
C---Pt distribution of form exp(-b*Mt)
C---Factors for pt slopes to fit data. IDCL contains the type of
C q-qbar pair produced in this cluster (0 if 1-particle cluster).
IDP=IDCL(I)
IF (IDP.LE.2) THEN
SLOP=PMBP1
ELSEIF(IDP.EQ.3.OR.IDP.EQ.10) THEN
SLOP=PMBP2
ELSEIF(IDP.GT.3.AND.IDP.LE.9) THEN
SLOP=PMBP3
ELSE
CALL HWWARN('HWMLPS',IDP)
IF(IDP.LT.0.OR.IDP.GT.49) GOTO 999
SLOP=PMBP2
ENDIF
PT=HWREXT(PPCL(5,I),SLOP)
PT=HWUSQR(PT**2-PPCL(5,I)**2)
CALL HWRAZM(PT,PX,PY)
PPCL(1,I)=PX
PPCL(2,I)=PY
SUMX=SUMX+PPCL(1,I)
12 SUMY=SUMY+PPCL(2,I)
SUMX=SUMX/NCL
SUMY=SUMY/NCL
SUMPT2=0.
SUMTM=0.
DO 13 I=1,NCL
PPCL(1,I)=PPCL(1,I)-SUMX
PPCL(2,I)=PPCL(2,I)-SUMY
PT2=PPCL(1,I)**2+PPCL(2,I)**2
SUMPT2=SUMPT2+PT2
C---STORE TRANSVERSE MASS IN PPCL(3,I) TEMPORARILY
PPCL(3,I)=SQRT(PT2+PPCL(5,I)**2)
13 SUMTM=SUMTM+PPCL(3,I)
IF (SUMTM.GT.TECM) GOTO 11
DO 14 I=1,NCL
C---Form of "reduced rapidity" distribution
XI(I)=HWRUNG(0.6*ONE,ONE)
14 CONTINUE
CALL HWUSOR(XI,NCL,IY,1)
XIMIN=XI(1)
XIMAX=XI(NCL)-XI(1)
C---N.B. TARGET CLUSTER IS SECOND
XI(1)=0.
DO 16 I=NCL-1,2,-1
XI(I+1)=(XI(I)-XIMIN)/XIMAX
16 CONTINUE
XI(2)=1.
YY=LOG(ESS/(PPCL(3,1)*PPCL(3,2)))
DO 18 NIT=1,10
SUM1=0.
SUM2=0.
SUM3=0.
SUM4=0.
DO 19 I=1,NCL
TM=PPCL(3,I)
EX=EXP(YY*XI(I))
SUM1=SUM1+(TM*EX)
SUM2=SUM2+(TM/EX)
SUM3=SUM3+(TM*EX)*XI(I)
19 SUM4=SUM4+(TM/EX)*XI(I)
FY=ALOGS-LOG(SUM1*SUM2)
DD=(SUM3*SUM2-SUM1*SUM4)/(SUM1*SUM2)
DYY=FY/DD
IF(ABS(DYY/YY).LT.EPS) GOTO 20
18 YY=YY+DYY
C---Y ITERATIONS EXCEEDED - TRY AGAIN
IF (NTRY.LT.100) GOTO 11
EPS=10.*EPS
IF (EPS.GT.ONE) THEN
CALL HWWARN('HWMLPS',100)
GOTO 999
ENDIF
CALL HWWARN('HWMLPS',50)
GOTO 11
20 YY=YY+DYY
ZZ=LOG(TECM/SUM1)
DO 22 I=1,NCL
TM=PPCL(3,I)
E1=EXP(ZZ+YY*XI(I))
PPCL(3,I)=(0.5*TM)*((1./E1)-E1)
PPCL(4,I)=(0.5*TM)*((1./E1)+E1)
22 CONTINUE
999 RETURN
END
CDECK ID>, HWMNBI.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : David Ward, modified by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWMNBI(N,AVNCH,EK)
C-----------------------------------------------------------------------
C---Computes negative binomial probability
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWMNBI,AVNCH,EK,R
INTEGER N,I
IF(N.LE.0) THEN
HWMNBI=0
ELSE
R=AVNCH/EK
HWMNBI=(1.+R)**(-EK)
R=R/(1.+R)
DO 1 I=1,N
HWMNBI=HWMNBI*R*(EK+I-1)/I
1 CONTINUE
ENDIF
END
CDECK ID>, HWMODK.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWMODK(IDKTMP,BRTMP,IMETMP,
& IATMP,IBTMP,ICTMP,IDTMP,IETMP)
C-----------------------------------------------------------------------
C Takes the decay, IDKTMP -> I-(A+B+C+D+E)-TMP, and simply stores it
C if internal pointers not set up (.NOT.DKPSET) else if pre-existing
C mode updates branching ratio BRTMP and matrix element code IMETMP,
C if -ve leaves as is. If a new mode adds to table and if consistent
C adjusts pointers, sets CMMOM (for two-body mode) and resets RSTAB
C if necessary. The branching ratios of any other IDKTMP decays are
C scaled by (1.-BRTMP)/(1.-BR_OLD)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUPCM,BRTMP,SCALE,EPS
INTEGER IDKTMP,IMETMP,IATMP,IBTMP,ICTMP,IDTMP,IETMP,IDKY,ITMP(5),
& L,I,J,K,JPREV
LOGICAL MATCH(5),IFGO
CHARACTER*8 CDUM
EXTERNAL HWUPCM
PARAMETER (EPS=1.D-6)
C Convert to internal format
CALL HWUIDT(1,IDKTMP,IDKY,CDUM)
IF (IDKY.EQ.20) THEN
WRITE(6,10) IDKTMP
10 FORMAT(1X,'Particle decaying,',I7,', is not recognised')
RETURN
ENDIF
CALL HWUIDT(1,IATMP,ITMP(1),CDUM)
CALL HWUIDT(1,IBTMP,ITMP(2),CDUM)
CALL HWUIDT(1,ICTMP,ITMP(3),CDUM)
CALL HWUIDT(1,IDTMP,ITMP(4),CDUM)
CALL HWUIDT(1,IETMP,ITMP(5),CDUM)
C If internal pointers not yet set up simply store decay
IF (.NOT.DKPSET) THEN
NDKYS=NDKYS+1
IF (NDKYS.GT.NMXDKS) THEN
CALL HWWARN('HWMODK',100)
GOTO 999
ENDIF
IDK(NDKYS)=IDKY
BRFRAC(NDKYS)=BRTMP
NME(NDKYS)=IMETMP
DO 20 I=1,5
20 IDKPRD(I,NDKYS)=ITMP(I)
ELSE
IF (NMODES(IDKY).GT.0) THEN
C First search to see if mode pre-exists
IF ((ITMP(2).GE.1.AND.ITMP(2).LE.13).OR.
& (ITMP(3).GE.1.AND.ITMP(3).LE.13)) THEN
C Partonic respect order
L=LSTRT(IDKY)
DO 30 K=1,NMODES(IDKY)
IF (ITMP(1).EQ.IDKPRD(1,L).AND.
& ITMP(2).EQ.IDKPRD(2,L).AND.
& ITMP(3).EQ.IDKPRD(3,L).AND.
& ITMP(4).EQ.IDKPRD(4,L).AND.
& ITMP(5).EQ.IDKPRD(5,L)) GOTO 90
30 L=LNEXT(L)
ELSE
C Allow for different order in matching
L=LSTRT(IDKY)
DO 70 I=1,NMODES(IDKY)
DO 40 J=1,5
40 MATCH(J)=.FALSE.
DO 60 J=1,5
DO 50 K=1,5
IF (.NOT.MATCH(K).AND.ITMP(K).EQ.IDKPRD(J,L)) THEN
MATCH(K)=.TRUE.
GOTO 60
ENDIF
50 CONTINUE
60 CONTINUE
IF (MATCH(1).AND.MATCH(2).AND.MATCH(3).AND.
& MATCH(4).AND.MATCH(5)) GOTO 90
70 L=LNEXT(L)
ENDIF
ENDIF
C A new mode put decay products in table
NDKYS=NDKYS+1
IF (NDKYS.GT.NMXDKS) THEN
CALL HWWARN('HWMODK',101)
GOTO 999
ENDIF
DO 80 I=1,5
80 IDKPRD(I,NDKYS)=ITMP(I)
C If decay consistent set up new pointers
CALL HWDCHK(IDKY,NDKYS,IFGO)
IF(IFGO) GOTO 980
IF (NMODES(IDKY).EQ.0) THEN
LSTRT(IDKY)=NDKYS
IF (RLTIM(IDKY).LT.PLTCUT.AND.RMASS(IDKY).NE.ZERO) THEN
RSTAB(IDKY)=.FALSE.
DKLTM(IDKY)=RLTIM(IDKY)*RMASS(IDKY)/HBAR
ELSE
RSTAB(IDKY)=.TRUE.
ENDIF
ELSE
LNEXT(L)=NDKYS
ENDIF
NMODES(IDKY)=NMODES(IDKY)+1
LNEXT(NDKYS)=NDKYS
L=NDKYS
C Set CMMOM if two body decay
IF (NPRODS(L).EQ.2) CMMOM(L)=
& HWUPCM(RMASS(IDKY),RMASS(IDKPRD(1,L)),RMASS(IDKPRD(2,L)))
C A Pre-existing mode, line L, add/update ME code and BR, scaling all
C other branching fractions
90 IF (IMETMP.GT.0) NME(L)=IMETMP
IF (ABS(BRTMP-1.).LT.EPS) THEN
C This modes dominant: eliminate others
NMODES(IDKY)=1
LSTRT(IDKY)=L
BRFRAC(L)=ONE
LNEXT(L)=L
ELSEIF (ABS(BRTMP).LT.EPS) THEN
C This mode insignificant: eliminate it
IF (NMODES(IDKY).EQ.1) THEN
RSTAB(IDKY)=.TRUE.
ELSE
J=LSTRT(IDKY)
IF (J.EQ.L) THEN
LSTRT(IDKY)=LNEXT(J)
ELSE
JPREV=J
DO 100 I=2,NMODES(IDKY)
J=LNEXT(J)
IF (J.EQ.L) LNEXT(JPREV)=LNEXT(J)
100 JPREV=J
ENDIF
C Rescale other modes
SCALE=ONE/(ONE-BRFRAC(L))
J=LSTRT(IDKY)
DO 110 I=1,NMODES(IDKY)-1
BRFRAC(J)=SCALE*BRFRAC(J)
110 J=LNEXT(J)
ENDIF
NMODES(IDKY)=NMODES(IDKY)-1
ELSE
C Rescale all other modes
IF (NMODES(IDKY).EQ.1) THEN
BRFRAC(L)=ONE
ELSE
IF (L.EQ.NDKYS) THEN
SCALE=ONE-BRTMP
ELSE
SCALE=(ONE-BRTMP)/(ONE-BRFRAC(L))
ENDIF
J=LSTRT(IDKY)
DO 120 I=1,NMODES(IDKY)
IF (J.NE.L) BRFRAC(J)=SCALE*BRFRAC(J)
120 J=LNEXT(J)
BRFRAC(L)=BRTMP
ENDIF
ENDIF
ENDIF
GOTO 999
980 WRITE(6,990)
990 FORMAT(1X,'Decay mode inconsistent, no modifications made')
999 RETURN
END
CDECK ID>, HWMULT.
*CMZ :- -04/05/99 11.11.55 by Bryan Webber
*-- Author : David Ward, modified by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWMULT(EPPBAR,NCHT)
C-----------------------------------------------------------------------
C Chooses charged multiplicity NCHT at the p-pbar c.m. energy EPPBAR
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWMNBI,HWRGEN,EPPBAR,E0,ALOGS,RK,EK,AVN,SUM,R,
& CUM(500)
INTEGER NCHT,IMAX,I,N
SAVE E0,CUM,IMAX
EXTERNAL HWMNBI,HWRGEN
DATA E0/0/
IF (EPPBAR.NE.E0) THEN
E0=EPPBAR
C---Initialize
ALOGS=2.*LOG(EPPBAR)
RK=PMBK1*ALOGS+PMBK2
IF (ABS(RK).GT.1000.) RK=1000.
EK=1./RK
AVN=PMBN1*EXP(PMBN2*ALOGS)+PMBN3
IF (AVN.LT.ONE) AVN=1.
SUM=0.
IMAX=1
DO 10 I=1,500
N=2*I
CUM(I)=HWMNBI(N,AVN,EK)
IF (CUM(I).LT.1D-7*SUM) GOTO 11
IMAX=I
SUM=SUM+CUM(I)
CUM(I)=SUM
10 CONTINUE
11 CONTINUE
IF (IMAX.LE.1) THEN
IMAX=1
CUM(1)=1
ELSEIF (IMAX.EQ.500) THEN
E0=0
CALL HWWARN('HWMULT',101)
GOTO 999
ELSE
DO 12 I=1,IMAX
12 CUM(I)=CUM(I)/SUM
ENDIF
ENDIF
C --- Select NCHT
R=HWRGEN(0)
DO 20 I=1,IMAX
IF(R.GT.CUM(I)) GOTO 20
NCHT=2*I
RETURN
20 CONTINUE
CALL HWWARN('HWMULT',100)
999 RETURN
END
CDECK ID>, HWMWGT.
*CMZ :- -02/11/93 11.11.55 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWMWGT
C-----------------------------------------------------------------------
C COMPUTES WEIGHT FOR MINIMUM-BIAS EVENT
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION S,X,Y
INTEGER IDB,IDT,IDBT
IF (IERROR.NE.0) RETURN
IDB=IDHW(1)
IF (JDAHEP(1,1).NE.0) IDB=IDHW(JDAHEP(1,1))
IDT=IDHW(2)
IF (JDAHEP(1,2).NE.0) IDT=IDHW(JDAHEP(1,2))
IDBT=100*IDB+IDT
IF (IDT.GT.IDB) IDBT=100*IDT+IDB
C---USE TOTAL CROSS SECTION FITS OF DONNACHIE & LANDSHOFF
C CERN-TH.6635/92
IF (IDBT.EQ.9173) THEN
X=21.70
Y=98.39
ELSEIF (IDBT.EQ.7373) THEN
X=21.70
Y=56.08
ELSEIF (IDBT.EQ.7330) THEN
X=13.63
Y=36.02
ELSEIF (IDBT.EQ.7338) THEN
X=13.63
Y=27.56
ELSEIF (IDBT.EQ.7334) THEN
X=11.82
Y=26.36
ELSEIF (IDBT.EQ.7346) THEN
X=11.82
Y= 8.15
ELSEIF (IDBT.EQ.7359) THEN
X=.0677
Y=.1290
ELSEIF (IDBT.EQ.9175) THEN
X=21.70
Y=92.71
ELSEIF (IDBT.EQ.7573) THEN
X=21.70
Y=54.77
ELSEIF (IDBT.EQ.5959) THEN
C---FOR GAMMA-GAMMA ASSUME X AND Y FACTORIZE
X=2.1E-4
Y=3.0E-4
ELSE
PRINT *,' IDBT=',IDBT
CALL HWWARN('HWMWGT',100)
GOTO 999
ENDIF
S=PHEP(5,3)**2
C---EVWGT IS NON-DIFFRACTIVE CROSS SECTION IN NANOBARNS
C ASSUMING NON-DIFFRACTIVE = TOTAL*0.7
EVWGT=.7E6*(X*S**.0808 + Y*S**(-.4525))
999 RETURN
END
CDECK ID>, HWPHTP.
*CMZ :- -11/08/03 15:30:25 by Peter Richardson
*-- Author : Peter Richardson and Zbigniew Was
C-----------------------------------------------------------------------
SUBROUTINE HWPHTP(IHEP)
C-----------------------------------------------------------------------
C subroutine for radiation in top decays
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP,KK,IPOS,NN,NHEP0,KK1,KK2,JMOH(NMXHEP)
DOUBLE PRECISION HWDPWT
EXTERNAL HWDPWT
C--add an extra photon for top or W
IF(IERROR.NE.0) RETURN
IF(ABS(IDHEP(IHEP)).EQ.6.OR.ABS(IDHEP(IHEP)).EQ.24) THEN
NHEP0=NHEP
KK1=JDAHEP(1,IHEP)
KK2=JDAHEP(2,IHEP)
C--copy the colour mother infomation
DO KK=KK1,KK2
JMOH(KK)=JMOHEP(2,KK)
JMOHEP(2,KK)=0
ENDDO
C--call photos
IPOS=-IHEP
CALL PHOTOS(IPOS)
C--reset the colour mother infomation
DO KK=KK1,KK2
JMOHEP(2,KK)=JMOH(KK)
ENDDO
C--update the decaying particle
JDAHEP(2,IHEP) = NHEP
C--set up the additions photons in the record
NN=NHEP-NHEP0
NHEP=NHEP0
IF(NN.GT.0) THEN
DO KK=1,NN
C--photon mass probably not needed
PHEP(5,NHEP+1) = ZERO
C--info on the photon
ISTHEP(NHEP+1) = 114
IDHW(NHEP+1) = 59
IDHEP(NHEP+1) = 22
JMOHEP(1,NHEP+1) = IHEP
JMOHEP(2,NHEP+1) = NHEP+1
JDAHEP(2,NHEP+1) = NHEP+1
NHEP = NHEP+1
ENDDO
ENDIF
ENDIF
END
CDECK ID>, HWPHTT.
*CMZ :- -11/08/03 15:30:25 by Peter Richardson
*-- Author : Peter Richardson and Zbigniew Was
C-----------------------------------------------------------------------
SUBROUTINE HWPHTT
C-----------------------------------------------------------------------
C subroutine for radiation in top production
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
C--local variables
INTEGER IMO(10),IFOUND,JMO(2),I,J,K,L,NSTART,NHEPX
C--initialisation
IF(IERROR.NE.0) RETURN
IFOUND=0
DO K=1,10
IMO(K)=0
ENDDO
C--loop to find mothers of any tops
NSTART=1
DO I=NSTART,NHEP
IF (ABS(IDHEP(I)).EQ.6) THEN
DO K=1,IFOUND
IF(IMO(K).EQ.JMOHEP(1,I)) GOTO 10
ENDDO
IFOUND=IFOUND+1
IMO(IFOUND)=JMOHEP(1,I)
ENDIF
10 CONTINUE
ENDDO
C--generate the radiation
DO K=1,IFOUND
C--save the colour mother pointers
JMO(1)=JMOHEP(2,JDAHEP(1,IMO(K)))
JMO(2)=JMOHEP(2,1+JDAHEP(1,IMO(K)))
C--zero the second mothers
JMOHEP(2,JDAHEP(1,IMO(K)))=0
JMOHEP(2,JDAHEP(2,IMO(K)))=0
C--call photos to generate radiation
CALL PHOTOS(IMO(K))
NHEPX=NHEP
DO 11 J=NHEP,1,-1
IF(IDHEP(J).EQ.22) THEN
NHEPX=NHEPX-1
ELSE
GOTO 11
ENDIF
11 CONTINUE
C--reset the colour pointers
JMOHEP(2, JDAHEP(1,IMO(K)))=JMO(1)
JMOHEP(2,1+JDAHEP(1,IMO(K)))=JMO(2)
C--setup the photons
DO L=NHEPX+1,NHEP
ISTHEP(L)=114
JMOHEP(2,L) = L
JDAHEP(2,L) = L
IDHW(L) = 59
ENDDO
ENDDO
END
CDECK ID>, HWRAZM.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWRAZM(PT,PX,PY)
C-----------------------------------------------------------------------
C RANDOMLY ROTATED 2-VECTOR (PX,PY) OF LENGTH PT
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRGEN,PT,PX,PY,C,S,CS,QT,ONE,ZERO
PARAMETER(ONE=1.0D0, ZERO=0.0D0)
EXTERNAL HWRGEN
10 C=2.*HWRGEN(1)-1.
S=2.*HWRGEN(2)-1.
CS=C*C+S*S
IF (CS.GT.ONE .OR. CS.EQ.ZERO) GOTO 10
QT=PT/CS
PX=(C*C-S*S)*QT
PY=2.*C*S*QT
END
CDECK ID>, HWREXP.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : David Ward, modified by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWREXP(AV)
C-----------------------------------------------------------------------
C Random number from dN/d(x**2)=exp(-b*x) with mean AV
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWREXP,HWRGEN,AV,B,R1,R2
EXTERNAL HWRGEN
B=2./AV
R1=HWRGEN(0)
R2=HWRGEN(1)
HWREXP=-LOG(R1*R2)/B
END
CDECK ID>, HWREXQ.
*CMZ :- -02/06/94 11.02.47 by Mike Seymour
*-- Author : David Ward, modified by Bryan Webber and Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWREXQ(AV,XMAX)
C-----------------------------------------------------------------------
C Random number from dN/d(x**2)=EXQ(-b*x) with mean AV,
C But truncated at XMAX
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWREXQ,HWRGEN,AV,B,BXMAX,R1,R2,XMAX,R,RMIN
EXTERNAL HWRGEN
B=2./AV
BXMAX=B*XMAX
IF (BXMAX.LT.50) THEN
RMIN=EXP(-BXMAX)
ELSE
RMIN=0
ENDIF
10 R1=HWRGEN(0)*(1-RMIN)+RMIN
R2=HWRGEN(1)*(1-RMIN)+RMIN
R=R1*R2
IF (R.LT.RMIN) GOTO 10
HWREXQ=-LOG(R)/B
END
CDECK ID>, HWREXT.
*CMZ :- -26/04/91 11.11.55 by Bryan Webber
*-- Author : David Ward, modified by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWREXT(AM0,B)
C-----------------------------------------------------------------------
C Random number from dN/d(x**2)=exp(-B*TM) distribution, where
C TM = SQRT(X**2+AM0**2). Uses Newton's method to solve F-R=0
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWREXT,HWRGEN,AM0,B,R,A,F,DF,DAM,AM
INTEGER NIT
EXTERNAL HWRGEN
R=HWRGEN(0)
C --- Starting value
AM=AM0-LOG(R)/B
DO 1 NIT=1,20
A=EXP(-B*(AM-AM0))/(1.+B*AM0)
F=(1.+B*AM)*A-R
DF=-B**2*AM*A
DAM=-F/DF
AM=AM+DAM
IF(AM.LT.AM0) AM=AM0+.001
IF(ABS(DAM).LT..001) GOTO 2
1 CONTINUE
CALL HWWARN('HWREXT',1)
2 HWREXT=AM
END
CDECK ID>, HWRGAU.
*CMZ :- -19/05/99 11.11.56 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWRGAU(J,A,B)
C-----------------------------------------------------------------------
C Gaussian random number, mean A, standard deviation B.
C Generates uncorrelated pairs and throws one of them away.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGAU,HWRGEN,A,B,X,TRASH
INTEGER J
EXTERNAL HWRGEN
10 X=HWRGEN(J)
IF (X.LE.ZERO.OR.X.GT.ONE) GOTO 10
X=SQRT(-TWO*LOG(X))
CALL HWRAZM(X,X,TRASH)
HWRGAU=A+B*X
END
CDECK ID>, HWRGEN.
*CMZ :- -26/04/91 12.42.30 by Federico Carminati
*-- Author : F. James, modified by Mike Seymour
*- Split in 3 files by M. Kirsanov. Initial seeds ISEED set in HWUDAT
C-----------------------------------------------------------------------
C FUNCTION HWRGEN(I)
C-----------------------------------------------------------------------
C MAIN RANDOM NUMBER GENERATOR
C USES METHOD OF l'Ecuyer, (VIA F.JAMES, COMP PHYS COMM 60(1990)329)
C-----------------------------------------------------------------------
C IMPLICIT NONE
C DOUBLE PRECISION HWRGEN
C COMMON/HWSEED/ISEED(2)
C INTEGER ISEED
C INTEGER I,K,IZ
C
C K=ISEED(1)/53668
C ISEED(1)=40014*(ISEED(1)-K*53668)-K*12211
C IF (ISEED(1).LT.0) ISEED(1)=ISEED(1)+2147483563
C K=ISEED(2)/52774
C ISEED(2)=40692*(ISEED(2)-K*52774)-K*3791
C IF (ISEED(2).LT.0) ISEED(2)=ISEED(2)+2147483399
C IZ=ISEED(1)-ISEED(2)
C IF (IZ.LT.1) IZ=IZ+2147483562
C HWRGEN=DBLE(IZ)*4.656613001013252D-10
C---> (4.656613001013252D-10 = 1.D0/2147483589)
c END
CDECK ID>, HWRSET.
*CMZ :- -26/04/91 12.42.30 by Federico Carminati
*-- Author : F. James, modified by Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWRSET(JSEED)
C-----------------------------------------------------------------------
C MAIN RANDOM NUMBER GENERATOR
C SETTING SEEDS
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRSET
COMMON/HWSEED/ISEED(2)
INTEGER ISEED
INTEGER JSEED(2)
HWRSET=0.0D0
IF (JSEED(1).EQ.0.OR.JSEED(2).EQ.0) THEN
CALL HWWARN('HWRSET',99)
GOTO 999
ENDIF
ISEED(1)=JSEED(1)
ISEED(2)=JSEED(2)
999 RETURN
END
CDECK ID>, HWRGET.
*CMZ :- -26/04/91 12.42.30 by Federico Carminati
*-- Author : F. James, modified by Mike Seymour
C-----------------------------------------------------------------------
FUNCTION HWRGET(JSEED)
C-----------------------------------------------------------------------
C MAIN RANDOM NUMBER GENERATOR
C GET SEEDS
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRGET
COMMON/HWSEED/ISEED(2)
INTEGER ISEED
INTEGER JSEED(2)
C
JSEED(1)=ISEED(1)
JSEED(2)=ISEED(2)
HWRGET=0.0D0
END
CDECK ID>, HWRINT.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWRINT(IMIN,IMAX)
C-----------------------------------------------------------------------
C RANDOM INTEGER IN [IMIN,IMAX]. N.B. ASSUMES IMAX.GE.IMIN
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRGEN,RN,ONE
INTEGER HWRINT,IMIN,IMAX
EXTERNAL HWRGEN
PARAMETER (ONE=1.0D0)
1 RN=HWRGEN(0)
IF (RN.EQ.ONE) GOTO 1
RN=RN*(IMAX-IMIN+1)
HWRINT=IMIN+INT(RN)
END
CDECK ID>, HWRLOG.
*CMZ :- -26/04/91 14.15.56 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWRLOG(A)
C-----------------------------------------------------------------------
C Returns .TRUE. with probability A
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRGEN,A,R
LOGICAL HWRLOG
EXTERNAL HWRGEN
HWRLOG=.TRUE.
R=HWRGEN(0)
IF(R.GT.A) HWRLOG=.FALSE.
END
CDECK ID>, HWRPIP.
*CMZ :- -07/09/00 10:06:23 by Peter Richardson
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWRPIP
C-----------------------------------------------------------------------
C Generates a random primary IP using a triple Gaussian distribution
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGAU
INTEGER I
EXTERNAL HWRGAU
DO 10 I=1,3
10 VTXPIP(I)=HWRGAU(I,ZERO,VIPWID(I))
VTXPIP(4)=ZERO
END
CDECK ID>, HWRPOW.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWRPOW(XVAL,XJAC)
C-----------------------------------------------------------------------
C RETURNS XVAL DISTRIBUTED ON (XMIN,XMAX) LIKE XVAL**XPOW
C AND CORRESPONDING JACOBIAN FACTOR XJAC
C SET FIRST=.TRUE. IF NEW XMIN,XMAX OR XPOW
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRGEN,XVAL,XJAC,XMIN,XMAX,XPOW,P,Q,A,B,C,Z,ZERO
LOGICAL FIRST
PARAMETER(ZERO=0.0D0)
EXTERNAL HWRGEN
SAVE Q,A,B,C
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
IF (FIRST) THEN
P=XPOW+1.
IF (P.EQ.ZERO) CALL HWWARN('HWRPOW',500)
Q=1./P
A=XMIN**P
B=XMAX**P-A
C=B*Q
FIRST=.FALSE.
ENDIF
Z=A+B*HWRGEN(0)
XVAL=Z**Q
XJAC=XVAL*C/Z
END
CDECK ID>, HWRUNG.
*CMZ :- -26/04/91 14.55.45 by Federico Carminati
*-- Author : David Ward, modified by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWRUNG(A,B)
C-----------------------------------------------------------------------
C Random number from distribution having flat top [-A,A] & gaussian
C tail of s.d. B
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRUNG,HWRGAU,HWRUNI,A,B,PRUN,ZERO
LOGICAL HWRLOG
EXTERNAL HWRGAU,HWRUNI,HWRLOG
PARAMETER (ZERO=0.D0)
IF (A.EQ.ZERO) THEN
PRUN=0
ELSE
PRUN=1./(1.+B*1.2533/A)
ENDIF
IF(HWRLOG(PRUN)) THEN
HWRUNG=HWRUNI(0,-A,A)
ELSE
HWRUNG=HWRGAU(0,ZERO,B)
HWRUNG=HWRUNG+SIGN(A,HWRUNG)
ENDIF
END
CDECK ID>, HWRUNI.
*CMZ :- -26/04/91 14.55.45 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWRUNI(I,A,B)
C-----------------------------------------------------------------------
C Uniform random random number in range [A,B]
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWRUNI,HWRGEN,A,B,RN
INTEGER I
EXTERNAL HWRGEN
RN=HWRGEN(I)
HWRUNI=A+RN*(B-A)
END
CDECK ID>, HWSBRN.
*CMZ :- -18/10/99 19.08.45 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWSBRN(KPAR)
C-----------------------------------------------------------------------
C DOES BRANCHING OF SPACELIKE PARTON KPAR
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRGEN,HWRUNI,HWSTAB,HWUALF,HWUTAB,HWSGQQ,
& HWSSUD,XLAST,QNOW,QLST,QP,QMIN,QLAM,QSAV,SMAX,SLST,SNOW,RN,SUDA,
& SUDB,ZZ,ENOW,XI,PMOM,DIST(13),DMIN,X1,X2,REJFAC,OTHXI,OTHZ,QTMP,
& PTMP(2),JAC,OTHJAC,S,T,U,EMB2,PTMX
INTEGER N0,IS,ID,ID1,ID2,IDHAD,N1,I,MQ,NTRY,NDEL,NA,NB,IW1,IW2,
& KPAR,LPAR,MPAR,ISUD(13),IREJ,NREJ
LOGICAL HWSVAL,FORCE,VALPAR,FTMP
EXTERNAL HWBVMC,HWRGEN,HWRUNI,HWSTAB,HWUALF,HWUTAB,HWSGQQ,HWSSUD,
& HWSVAL
COMMON/HWTABC/XLAST,N0,IS,ID
SAVE ISUD,DMIN
DATA ISUD,DMIN/2,2,3,4,5,6,2,2,3,4,5,6,1,1.D-15/
IF (IERROR.NE.0) RETURN
ID=IDPAR(KPAR)
C--TEST FOR PARTON TYPE
IF (ID.LE.13) THEN
IS=ISUD(ID)
ELSEIF (ID.GE.208) THEN
IS=7
ELSE
IS=0
END IF
QNOW=-1.
IF (IS.NE.0) THEN
C--SPACELIKE PARTON BRANCHING
QLST=PPAR(1,KPAR)
IDHAD=IDHW(INHAD)
VALPAR=HWSVAL(ID)
QP=HWBVMC(ID)
XLAST=XFACT*PPAR(4,KPAR)
IF (XLAST.GE.ONE) THEN
CALL HWWARN('HWSBRN',107)
GOTO 999
ENDIF
C--SET UP Q BOUNDARY
IF (VALPAR) THEN
QMIN=QG/(1.-XLAST)
ELSEIF (ID.EQ.13) THEN
QMIN=QV/(1.-XLAST)
ELSE
QMIN=.5*(QP+QV+SQRT((QP-QV)**2+4.*QP*QV*XLAST))/(1.-XLAST)
ENDIF
QSAV=QMIN
IF (QMIN.LE.QSPAC.AND.ISPAC.LT.2) THEN
QMIN=QSPAC
N1=NSPAC(IS)
ELSEIF (QMIN.LE.QEV(1,IS)) THEN
QMIN=QEV(1,IS)
N1=1
ELSE
DO 110 I=2,NQEV
IF (QEV(I,IS).GT.QMIN) GOTO 120
110 CONTINUE
120 N1=I-1
ENDIF
N0=N1-1
MQ=NQEV-N0
NTRY=0
125 NTRY=NTRY+1
NREJ=1
IF (QLST.GT.QMIN.AND..NOT.NOSPAC.OR..NOT.VALPAR) THEN
IF (QLST.LE.QMIN) THEN
C--CHECK PHASE SPACE FOR FORCED SPLITTING OF NON-VALENCE PARTON
IF (QLST.LT.QSAV) THEN
CALL HWWARN('HWSBRN',ISLENT*105)
GOTO 999
ENDIF
FORCE=.TRUE.
QNOW=(QLST/QSAV)**HWRGEN(0)*QSAV
ELSE
C--ENHANCE EMISSION BY A FACTOR OF TWO IF THIS BRANCH
C IS CAPABLE OF BEING THE HARDEST SO FAR
IF (QLST.GT.HARDST) NREJ=2
QTMP=-1
DO 300 IREJ=1,NREJ
C--FIND NEW VALUE OF SUD/DIST
CALL HWSFUN(XLAST,QMIN,IDHAD,NSTRU,DIST,JNHAD)
IF (ID.EQ.13) DIST(ID)=DIST(ID)*HWSGQQ(QMIN)
IF (DIST(ID).LT.DMIN) DIST(ID)=DMIN
SMAX=HWUTAB(SUD(N1,IS),QEV(N1,IS),MQ,QMIN,INTER)/DIST(ID)
CALL HWSFUN(XLAST,QLST,IDHAD,NSTRU,DIST,JNHAD)
IF (ID.EQ.13) DIST(ID)=DIST(ID)*HWSGQQ(QLST)
IF (DIST(ID).LT.DMIN) DIST(ID)=DMIN
SLST=HWUTAB(SUD(N1,IS),QEV(N1,IS),MQ,QLST,INTER)/DIST(ID)
RN=HWRGEN(0)
IF (RN.EQ.ZERO) THEN
SNOW=SLST*2.
ELSE
SNOW=SLST/RN
ENDIF
IF (VALPAR.AND.SNOW.GE.SMAX) GOTO 200
IF (SNOW.LT.SMAX.AND..NOT.NOSPAC) THEN
FORCE=.FALSE.
ELSE
C--FORCE SPLITTING OF NON-VALENCE PARTON
FORCE=.TRUE.
QNOW=(MIN(QLST,1.1*QMIN)/QSAV)**HWRGEN(0)*QSAV
ENDIF
IF (QNOW.LT.ZERO) THEN
C--BRANCHING OCCURS. FIRST CHECK FOR MONOTONIC FORM FACTOR
SUDA=SMAX
NDEL=32
NA=N1
130 NB=NA+NDEL
IF (NB.GT.NQEV) THEN
CALL HWWARN('HWSBRN',103)
GOTO 999
ENDIF
CALL HWSFUN(XLAST,QEV(NB,IS),IDHAD,NSTRU,DIST,JNHAD)
IF (ID.EQ.13) DIST(ID)=DIST(ID)*HWSGQQ(QEV(NB,IS))
IF (DIST(ID).LT.DMIN) DIST(ID)=DMIN
SUDB=SUD(NB,IS)/DIST(ID)
IF (SUDB.GT.SUDA) THEN
SUDA=SUDB
NA=NB
GOTO 130
ELSEIF (NA.NE.N1) THEN
IF (SUDB.LT.SNOW) THEN
NDEL=NDEL/2
IF (NDEL.EQ.0) THEN
CALL HWWARN('HWSBRN',100)
GOTO 999
ENDIF
GOTO 130
ENDIF
N1=NB
N0=N1-1
MQ=NQEV-N0
ENDIF
C--NOW FIND NEW Q
QNOW=HWSTAB(QEV(N1,IS),HWSSUD,MQ,SNOW,INTER)
IF (QNOW.LE.QMIN.OR.QNOW.GT.QLST) THEN
C--INTERPOLATION PROBLEM: USE LINEAR INSTEAD
C CALL HWWARN('HWSBRN',1)
QNOW=HWRUNI(0,QMIN,QLST)
ENDIF
ENDIF
200 CONTINUE
IF (QNOW.GT.QTMP) THEN
QTMP=QNOW
FTMP=FORCE
ENDIF
QNOW=-1
300 CONTINUE
QNOW=QTMP
FORCE=FTMP
ENDIF
IF (QNOW.LT.ZERO) GOTO 210
C--NOW FIND NEW X
CALL HWSFBR(XLAST,QNOW,FORCE,ID,1,ID1,ID2,IW1,IW2,ZZ)
IF (ID1.LT.0) THEN
C--NO PHASE SPACE FOR BRANCHING
FROST=.TRUE.
RETURN
ELSEIF (ID1.EQ.0) THEN
C--BRANCHING REJECTED: REDUCE Q AND REPEAT
IF (NTRY.GT.NBTRY.OR.IERROR.NE.0) THEN
CALL HWWARN('HWSBRN',102)
GOTO 999
ENDIF
QLST=QNOW
QNOW=-1.
GOTO 125
ELSEIF (ID1.EQ.59) THEN
C--ANOMALOUS PHOTON SPLITTING: ADD PT TO INTRINSIC PT AND STOP BRANCHING
IF (IDHAD.NE.59) THEN
CALL HWWARN('HWSBRN',109)
GOTO 999
ENDIF
ENOW=PPAR(4,KPAR)/XLAST
XI=(QNOW/ENOW)**2
QLAM=QNOW*(1.-XLAST)
IF ((2.-XI)*QLAM**2.GT.EMSCA**2) THEN
C--BRANCHING REJECTED: REDUCE Q AND REPEAT
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWSBRN',110)
GOTO 999
ENDIF
QLST=QNOW
QNOW=-1.
GOTO 125
ENDIF
CALL HWRAZM(QNOW*(1.-XLAST),PTMP(1),PTMP(2))
CALL HWVSUM(2,PTMP,PTINT(1,JNHAD),PTINT(1,JNHAD))
PTINT(3,JNHAD)=PTINT(1,JNHAD)**2+PTINT(2,JNHAD)**2
ANOMSC(1,JNHAD)=QNOW
ANOMSC(2,JNHAD)=QNOW*(1.-XLAST)
QNOW=-1.
QLST=QNOW
GOTO 125
ELSEIF (FORCE.AND..NOT.HWSVAL(ID1).AND.ID1.NE.13) THEN
C--FORCED BRANCHING PRODUCED A NON-VALENCE PARTON: TRY AGAIN
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWSBRN',108)
GOTO 999
ENDIF
QLST=QNOW
QNOW=-1.
GOTO 125
ENDIF
ENDIF
210 CONTINUE
IF (QNOW.GT.ZERO) THEN
C--BRANCHING HAS OCCURRED
ENOW=PPAR(4,KPAR)/ZZ
XI=(QNOW/ENOW)**2
QLAM=QNOW*(1.-ZZ)
IF ((SUDORD.EQ.1.AND.HWUALF(2,QLAM).LT.HWRGEN(0) .OR.
& (2.-XI)*QLAM**2.GT.EMSCA**2).AND..NOT.FORCE) THEN
C--BRANCHING REJECTED: REDUCE Q AND REPEAT
IF (NTRY.GT.NBTRY) THEN
CALL HWWARN('HWSBRN',104)
GOTO 999
ENDIF
QLST=QNOW
QNOW=-1.
GOTO 125
ENDIF
C--IF THIS IS HARDEST EMISSION SO FAR, APPLY MATRIX-ELEMENT CORRECTION
IF (.NOT.FORCE) THEN
REJFAC=1
IF (QLAM.GT.HARDST .AND. ID.NE.13) THEN
IF (MOD(ISTHEP(JCOPAR(1,1)),10).GE.3) THEN
C---COLOUR PARTNER IS OUTGOING (X1=XP, X2=ZP)
X2=SQRT((ZZ**2-(1-ZZ)*XI)**2+2*(ZZ*(1-ZZ))**2*XI*(2-XI))
X1=(ZZ**2+(1-ZZ)*XI-X2)/(2*(1-ZZ)*XI)
X2=(ZZ**2-(1-ZZ)*XI+X2)/(2*ZZ**2)
IF (ID2.EQ.13) THEN
C---GLUON EMISSION
REJFAC=ZZ**3*(1-X1-X2+2*X1*X2)
$ /(X1**2*(1-ZZ)*(ZZ+XI*(1-ZZ)))
$ *(1+ZZ**2)/((1-ZZ)*XI)
$ *(1-X1)*(1-X2)/
$ (1+(1-X1-X2+2*X1*X2)**2+2*(1-X1)*(1-X2)*X1*X2)
C---CHECK WHETHER IT IS IN THE OVERLAP REGION
OTHXI=2*(1-X1)/(1-X1+2*(3*X1-2)*X2*(1-X2))
IF (OTHXI.LT.ONE) THEN
OTHZ=(1-(2*X2-1)*SQRT((3*X1-2)/X1))/2
REJFAC=REJFAC+SQRT(3-2/X1)/(X1**2*OTHZ*(1-OTHZ))
$ *(1+(1-OTHZ)**2)/(OTHZ*OTHXI)
$ *(1-X1)*(1-X2)/
$ (1+(1-X1-X2+2*X1*X2)**2+2*(1-X1)*(1-X2)*X1*X2)
ENDIF
ELSEIF (ID1.EQ.13) THEN
C---GLUON SPLITTING
REJFAC=ZZ**3*(1-X1-X2+2*X1*X2)
$ /(X1**2*(1-ZZ)*(ZZ+XI*(1-ZZ)))
$ *(ZZ**2+(1-ZZ)**2)/XI
$ *(1-X2)/
$ (( X1+X2-2*X1*X2)**2+2*(1-X1)*(1-X2)*X1*X2
$ +(1-X1-X2+2*X1*X2)**2+2*(1-X1)*(1-X2)*X1*X2)
ENDIF
ELSE
C---COLOUR PARTNER IS ALSO INCOMING
T=-(1-ZZ)*XI/ZZ**2
S=2*(ZZ**2+(1-ZZ)*XI)/(ZZ**2*(2*ZZ+XI*(1-ZZ)))
U=1-S-T
JAC=-T*(1-T)/S**2*ZZ**5/(XI*(1-ZZ)**2*(ZZ+XI*(1-ZZ)))
IF (ID2.EQ.13) THEN
C---GLUON EMISSION
REJFAC=(1+ZZ**2)/((1-ZZ)*ZZ*XI)
& *JAC*S**2*T*U/((1-U)**2+(1-T)**2)
C---CHECK WHETHER IT IS IN THE OVERLAPPING REGION
OTHZ=(1+SQRT(1-2*U*(1-U)/S))/U
OTHXI=2*(1-OTHZ+T/S)/(1-OTHZ)
IF (OTHXI.LT.OTHZ**2) THEN
OTHJAC=-U*(1-U)/S**2*OTHZ**5/(OTHXI*
& (1-OTHZ)**2*(OTHZ+OTHXI*(1-OTHZ)))
REJFAC=REJFAC+(1+OTHZ**2)/((1-OTHZ)*OTHZ*OTHXI)
& *OTHJAC*S**2*T*U/((1-U)**2+(1-T)**2)
ENDIF
ELSEIF (ID1.EQ.13) THEN
C---GLUON SPLITTING
REJFAC=-((1-ZZ)**2+ZZ**2)/(ZZ*XI)
& *JAC*S**3*T/((1-S)**2+(1-T)**2)
ENDIF
ENDIF
ENDIF
IF (NREJ*REJFAC*HWRGEN(NREJ).GT.ONE) THEN
QLST=QNOW
QNOW=-1.
GOTO 125
ENDIF
IF (QLAM.GT.HARDST) HARDST=QLAM
ENDIF
IF (IW2.GT.IW1) THEN
LPAR=NPAR+1
MPAR=NPAR+2
C---NEW MOTHER-DAUGHTER RELATIONS
C N.B. DEFINED MOVING AWAY FROM HARD PROCESS
JDAPAR(1,KPAR)=LPAR
JDAPAR(2,KPAR)=MPAR
C---NEW COLOUR CONNECTIONS
JCOPAR(3,KPAR)=MPAR
JCOPAR(4,KPAR)=LPAR
JCOPAR(1,MPAR)=KPAR
JCOPAR(2,MPAR)=LPAR
JCOPAR(1,LPAR)=MPAR
JCOPAR(2,LPAR)=KPAR
ELSE
MPAR=NPAR+1
LPAR=NPAR+2
JDAPAR(1,KPAR)=MPAR
JDAPAR(2,KPAR)=LPAR
JCOPAR(3,KPAR)=LPAR
JCOPAR(4,KPAR)=MPAR
JCOPAR(1,MPAR)=LPAR
JCOPAR(2,MPAR)=KPAR
JCOPAR(1,LPAR)=KPAR
JCOPAR(2,LPAR)=MPAR
ENDIF
JMOPAR(1,LPAR)=KPAR
JMOPAR(1,MPAR)=KPAR
IDPAR(LPAR)=ID1
IDPAR(MPAR)=ID2
TMPAR(LPAR)=.FALSE.
TMPAR(MPAR)=.TRUE.
PPAR(1,LPAR)=QNOW
PPAR(2,LPAR)=XI
PPAR(4,LPAR)=ENOW
PPAR(1,MPAR)=QNOW*(1.-ZZ)
PPAR(2,MPAR)=XI
PPAR(4,MPAR)=ENOW*(1.-ZZ)
NPAR=NPAR+2
ENDIF
ENDIF
IF (QNOW.LT.ZERO) THEN
C--BRANCHING STOPS
JDAPAR(1,KPAR)=0
JDAPAR(2,KPAR)=0
JCOPAR(3,KPAR)=0
JCOPAR(4,KPAR)=0
IF (ID.LE.13) THEN
C---PUT SPECTATOR (APPROXIMATELY) ON-SHELL
XLAST=XFACT*PPAR(4,KPAR)
IF ((1-XLAST)**2.LT.(RMASS(ID)**2+PTINT(3,JNHAD))*XFACT**2)
& THEN
FROST=.TRUE.
RETURN
ENDIF
C---BRW MOD: INCLUDE HIGHER ORDER CORRECTION IN MASS CALCULATION
c$$$ PPAR(5,KPAR)=-(RMASS(ID)**2*XLAST+PTINT(3,JNHAD))/(1.-XLAST)
c$$$ & +XLAST*SIGN(PHEP(5,INHAD)**2,PHEP(5,INHAD))
PTMX=(RMASS(ID)**2+PTINT(3,JNHAD))/(ONE-XLAST)
EMB2=SIGN(PHEP(5,INHAD)**2,PHEP(5,INHAD))
PPAR(5,KPAR)=-PTINT(3,JNHAD)-XLAST*(PTMX-EMB2)-0.25D0*
$ ((PTMX-EMB2)**2+XLAST*(PTMX**2/(ONE-XLAST)-EMB2**2))*XFACT**2
C---END BRW MOD
ELSEIF (ID.EQ.IDHW(INHAD)) THEN
C---IF INCOMING PARTON IS INCOMING BEAM, ALLOW IT TO BE OFF-SHELL
PPAR(5,KPAR)=SIGN(PHEP(5,INHAD)**2,PHEP(5,INHAD))
ELSE
PPAR(5,KPAR)=RMASS(ID)**2
ENDIF
PMOM=PPAR(4,KPAR)**2-PPAR(5,KPAR)
IF (PMOM.LT.ZERO) THEN
FROST=.TRUE.
RETURN
ENDIF
PPAR(3,KPAR)=SQRT(PMOM)
ENDIF
999 RETURN
END
CDECK ID>, HWSDGG.
*CMZ := =26/04/91 12.47.48 by Federico Carminati
*-- Author : Drees, Grassie, Charchula, modified by Bryan Webber
C ===============================================================
C DREES & GRASSIE PARAMETRIZATION OF PHOTON STRUCTURE FUNCTION
C
C HWSDGQ(X,Q2,NFL,NCH) - X*QUARK_IN_PHOTON/ALPHA (!)
C HWSDGG(X,Q2,NFL) - X*GLUON_IN_PHOTON/ALPHA (!)
C WHERE:
C (INTEGER) NCH - QUARK CHARGE: 1 FOR 1/3
C 2 FOR 2/3
C (INTEGER) NFL - NUMBER OF QUARK FLAVOURS /3 OR 4/
C Q2 - SQUARE OF MOMENTUM Q /IN GEV2/
C X - LONGITUDINAL FRACTION
C LAMBDA=0.4 GEV
C
C NFL=3: 1 < Q2 < 50 GEV^2
C NFL=4: 20 < Q2 < 500 GEV^2
C NFL=5: 200 < Q2 < 10^4 GEV^2
C
C
C KRZYSZTOF CHARCHULA /14.02.1989/
C================================================================
C
C PS. Note that for the case of three flavors, one has to add
C the QPM charm contribution for getting F2.
C
C================================================================
C MODIFIED FOR HERWIG BY BRW 19/4/91
C--- -----------------------------------------------
C GLUON PART OF THE PHOTON SF
C--- -----------------------------------------------
FUNCTION HWSDGG(X,Q2,NFL)
IMPLICIT REAL (A-H,P-Z)
INTEGER NFL
DIMENSION A(3,4,3),AT(3)
ALAM2=0.160
T=LOG(Q2/ALAM2)
C- --- CHECK WHETHER NFL HAVE RIGHT VALUES -----
IF (.NOT.((NFL.EQ.3).OR.(NFL.EQ.4).OR.(NFL.EQ.5)))THEN
WRITE(6,131)
131 FORMAT(' NUMBER OF FLAVOURS(NFL) HAS NOT BEEN SET TO: 3,4 OR 5;'/
*' NFL=3 IS ASSUMED')
NFL=3
ELSEIF (T.LE.0) THEN
WRITE(6,132)
132 FORMAT(' HWSDGG CALLED WITH SCALE < LAMBDA. RETURNING ZERO.')
HWSDGG=0
RETURN
ENDIF
C ------ INITIALIZATION OF PARAMETERS ARRAY -----
DATA(((A(I,J,K),I=1,3),J=1,4),K=1,3)/
+ -0.20700,-0.19870, 5.11900,
+ 0.61580, 0.62570,-0.27520,
+ 1.07400, 8.35200,-6.99300,
+ 0.00000, 5.02400, 2.29800,
+ 0.8926E-2, 0.05090,-0.23130,
+ 0.659400, 0.27740, 0.13820,
+ 0.476600,-0.39060, 6.54200,
+ 0.019750,-0.32120, 0.51620,
+ 0.031970, -0.618E-2, -0.1216,
+ 1.0180, 0.94760, 0.90470,
+ 0.24610, -0.60940, 2.6530,
+ 0.027070, -0.010670, 0.2003E-2/
C ------ Q2 DEPENDENCE -----------
LF=NFL-2
DO 20 I=1,3
AT(I)=A(I,1,LF)*T**A(I,2,LF)+A(I,3,LF)*T**(-A(I,4,LF))
20 CONTINUE
C ------ GLUON DISTRIBUTION -------------
HWSDGG=AT(1)*X**AT(2)*(1.0-X)**AT(3)/137.
END
CDECK ID>, HWSDGQ.
*CMZ :- -26/04/91 13.04.45 by Federico Carminati
*-- Author : Drees, Grassie, Charchula, modified by Bryan Webber
C --------------------------------------
C QUARK PART OF THE PHOTON SF
C --------------------------------------
FUNCTION HWSDGQ(X,Q2,NFL,NCH)
IMPLICIT REAL (A-H,P-Z)
INTEGER NFL,NCH
DIMENSION A(5,4,2,3),AT(5,2),XQPOM(2),E(2)
COMMON/DG/F2
C SQUARE OF LAMBDA=0.4 GEV
ALAM2=0.160
T=LOG(Q2/ALAM2)
C
C CHECK WHETHER NFL AND NCH HAVE RIGHT VALUES
C
IF(.NOT.((NFL.EQ.3).OR.(NFL.EQ.4).OR.(NFL.EQ.5))) THEN
WRITE(6,111)
111 FORMAT('NUMBER OF FLAVOURS (NFL) HAS NOT BEEN SET TO: 3,4 OR 5'/
*' NFL=3 IS ASSUMED')
NFL=3
ELSEIF (T.LE.0) THEN
WRITE(6,132)
132 FORMAT(' HWSDGQ CALLED WITH SCALE < LAMBDA. RETURNING ZERO.')
HWSDGQ=0
RETURN
ENDIF
IF (.NOT.((NCH.EQ.1).OR.(NCH.EQ.2))) THEN
WRITE(6,121)
121 FORMAT(' QUARK CHARGE NUMBER (NCH) HAS NOT BEEN SET',
*' TO 1 OR 2;'/
*' NCH=1 IS ASSUMED')
NCH=1
ENDIF
C ------ INITIALIZATION ------
DATA(((A(I,J,K,1),I=1,5),J=1,4),K=1,2)/
+ 2.28500, 6.07300, -0.42020,-0.08080, 0.05530,
+-0.01530, -0.81320, 0.01780, 0.63460, 1.13600,
+ 1.3300E3,-41.3100, 0.92160, 1.20800, 0.95120,
+ 4.21900, 3.16500, 0.18000, 0.20300, 0.01160,
+16.6900, 0.17600, -0.02080,-0.01680,-0.19860,
+-0.79160, 0.04790, 0.3386E-2,1.35300, 1.10000,
+ 1.0990E3, 1.04700, 4.85300, 1.42600, 1.13600,
+ 4.42800, 0.02500, 0.84040, 1.23900,-0.27790/
DATA(((A(I,J,K,2),I=1,5),J=1,4),K=1,2)/
+-0.37110,-0.17170, 0.087660,-0.89150,-0.18160,
+ 1.06100, 0.78150, 0.021970, 0.28570, 0.58660,
+ 4.75800, 1.53500, 0.109600, 2.97300, 2.42100,
+-0.01500, 0.7067E-2,0.204000, 0.11850, 0.40590,
+-0.12070,25.00000,-0.012300,-0.09190, 0.020150,
+ 1.07100,-1.64800, 1.162000, 0.79120, 0.98690,
+ 1.97700,-0.015630,0.482400, 0.63970,-0.070360,
+-0.8625E-2,6.43800,-0.011000, 2.32700, 0.016940/
DATA(((A(I,J,K,3),I=1,5),J=1,4),K=1,2)/
+15.80, 2.7420, 0.029170,-0.03420, -0.023020,
+-0.94640, -0.73320, 0.046570, 0.71960, 0.92290,
+-0.50, 0.71480, 0.17850, 0.73380, 0.58730,
+-0.21180, 3.2870, 0.048110, 0.081390,-0.79E-4,
+ 6.7340, 59.880, -0.3226E-2,-0.03321, 0.10590,
+-1.0080, -2.9830, 0.84320, 0.94750, 0.69540,
+-0.085940, 4.480, 0.36160, -0.31980, -0.66630,
+ 0.076250, 0.96860, 0.1383E-2, 0.021320, 0.36830/
C ------- EVALUATION OF PARAMETERS IN Q2 ---------
E(1)=1.0
IF (NFL.EQ.3) THEN
E(2)=9.0
LF=1
ELSEIF (NFL.EQ.4) THEN
E(2)=10.0
LF=2
ELSEIF (NFL.EQ.5) THEN
E(2)=55.0/6.0
LF=3
ENDIF
DO 10 J=1,2
DO 20 I=1,5
ATP=A(I,1,J,LF)*T**A(I,2,J,LF)
AT(I,J)=ATP+A(I,3,J,LF)*T**(-A(I,4,J,LF))
20 CONTINUE
10 CONTINUE
DO 30 J=1,2
POM1=X*(X*X+(1.0-X)**2)/(AT(1,J)-AT(2,J)*ALOG(1.0-X))
POM2=AT(3,J)*X**AT(4,J)*(1.0-X)**AT(5,J)
XQPOM(J)=E(J)*POM1+POM2
30 CONTINUE
C ------- QUARK DISTRIBUTIONS ----------
HWSDGQ=0
IF (NFL.EQ.3) THEN
IF (NCH.EQ.2) THEN
HWSDGQ=1.0/6.0*(XQPOM(2)+9.0*XQPOM(1))
ELSEIF(NCH.EQ.1) THEN
HWSDGQ=1.0/6.0*(XQPOM(2)-9.0/2.0*XQPOM(1))
ENDIF
F2=2.0/9.0*XQPOM(2)+XQPOM(1)
ELSEIF (NFL.EQ.4) THEN
IF (NCH.EQ.2) THEN
HWSDGQ=1.0/8.0*(XQPOM(2)+6.0*XQPOM(1))
ELSEIF(NCH.EQ.1) THEN
HWSDGQ=1.0/8.0*(XQPOM(2)-6.0*XQPOM(1))
ENDIF
F2=5.0/18.0*XQPOM(2)+XQPOM(1)
ELSEIF (NFL.EQ.5) THEN
IF (NCH.EQ.2) THEN
HWSDGQ=1.0/10.0*(XQPOM(2)+15.0/2.0*XQPOM(1))
ELSEIF(NCH.EQ.1) THEN
HWSDGQ=1.0/10.0*(XQPOM(2)-5.0*XQPOM(1))
ENDIF
F2=11.0/45.0*XQPOM(2)+XQPOM(1)
ENDIF
HWSDGQ=HWSDGQ/137.
END
CDECK ID>, HWSFBR.
*CMZ :- -15/07/92 14.08.45 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWSFBR(X,QQ,FORCED,ID,IW,ID1,ID2,IW1,IW2,Z)
C-----------------------------------------------------------------------
C FINDS BRANCHING (ID1->ID+ID2) AND Z=X/X1 IN BACKWARD
C EVOLUTION AT ENERGY FRACTION X AND SCALE QQ
C
C FORCED=.TRUE. FORCES SPLITTING OF NON-VALENCE PARTON
C
C IW,IW1,IW2 ARE COLOUR CONNECTION WORDS
C
C ID1.LT.0 ON RETURN MEANS NO PHASE SPACE
C ID1.EQ.0 ON RETURN FLAGS REJECTED BRANCHINGS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRGEN,HWUALF,HWUAEM,QP,X,QQ,Z,WQG,WQV,
& WQP,XQV,ZMIN,ZMAX,YMIN,YMAX,DELY,YY,PSUM,EZ,WQN,WR,ZR,WZ,ZZ,AZ,
& PVAL,EY,DIST(13),PROB(13,100),PPHO
INTEGER ID,IW,ID1,ID2,IW1,IW2,NZ,IDHAD,IP,IZ
LOGICAL HWRLOG,HWSVAL,FORCED,NONF,NONV,PHOTPR
EXTERNAL HWBVMC,HWRGEN,HWUALF,HWUAEM,HWRLOG,HWSVAL
ID1=-1
QP=HWBVMC(ID)
WQG=1.-QG/QQ
WQV=1.-QV/QQ
WQP=1.-QP/QQ
XQV=X/WQV
NONV=.NOT.HWSVAL(ID)
NONF=.NOT.FORCED
IF (ID.EQ.13) THEN
ZMIN=X
IF (NONF) THEN
ZMAX=WQG
ELSE
ZMAX=WQV
ENDIF
ELSE
IF (NONV) THEN
ZMIN=XQV
IF (NONF) THEN
ZMAX=WQG
ELSE
ZMAX=WQP
ENDIF
ELSE
ZMIN=X
ZMAX=MAX(WQG,WQP)
ENDIF
ENDIF
IF (ZMIN.GE.ZMAX) RETURN
ID1=0
C---INTERPOLATION VARIABLE IS Y=LN(Z/(1-Z))
YMIN=LOG(ZMIN/(1.-ZMIN))
YMAX=LOG(ZMAX/(1.-ZMAX))
DELY=YMAX-YMIN
NZ=MIN(INT(ZBINM*DELY)+1,NZBIN)
DELY=(YMAX-YMIN)/FLOAT(NZ)
YY=YMIN+0.5*DELY
PSUM=0.
IDHAD=IDHW(INHAD)
C---SET UP TABLES FOR CHOOSING BRANCHING
DO 40 IZ=1,NZ
EZ=EXP(YY)
WR=1.+EZ
ZR=WR/EZ
WZ=1./WR
ZZ=WZ*EZ
AZ=WZ*ZZ*HWUALF(5-2*SUDORD,MAX(WZ*QQ,QG))
CALL HWSFUN(X*ZR,QQ,IDHAD,NSTRU,DIST,JNHAD)
IF (ID.NE.13) THEN
C---SPLITTING INTO QUARK
DO 10 IP=1,ID-1
10 PROB(IP,IZ)=PSUM
IF (NONF) PSUM=PSUM+DIST(ID)*AZ*CFFAC*(1.+ZZ*ZZ)*WR
DO 20 IP=ID,12
20 PROB(IP,IZ)=PSUM
PSUM=PSUM+DIST(13)*AZ*0.5*(ZZ*ZZ+WZ*WZ)
PROB(13,IZ)=PSUM
ELSE
C---SPLITTING INTO GLUON
DO 30 IP=1,12
PSUM=PSUM+DIST(IP)*AZ*CFFAC*(1.+WZ*WZ)*ZR
30 PROB(IP,IZ)=PSUM
IF (NONF) PSUM=PSUM+DIST(13)*AZ*2.*CAFAC*(WZ*ZR+ZZ*WR+WZ*ZZ)
PROB(13,IZ)=PSUM
ENDIF
40 YY=YY+DELY
50 PHOTPR=IDHAD.EQ.59.AND.ID.NE.13
IF (PHOTPR) THEN
C---ALLOW ANOMALOUS PHOTON SPLITTING
PPHO=ZMIN*HWUAEM(-QQ*QQ)*CAFAC*(ZMIN**2+(1.-ZMIN)**2)
& *ICHRG(ID)**2/9D0
IF (PPHO.GT.(PPHO+PSUM*DELY)*HWRGEN(2)) THEN
C---ANOMALOUS PHOTON SPLITTING OCCURRED
ID1=59
RETURN
ENDIF
ENDIF
IF (PSUM.LE.ZERO) RETURN
C---CHOOSE Z
PVAL=PSUM*HWRGEN(0)
DO 60 IZ=1,NZ
IF (PROB(13,IZ).GT.PVAL) GOTO 70
60 CONTINUE
IZ=NZ
70 EY=EXP(YMIN+DELY*(FLOAT(IZ)-HWRGEN(1)))
ZZ=EY/(1.+EY)
C---CHOOSE BRANCHING
DO 80 IP=1,13
IF (PROB(IP,IZ).GT.PVAL) GOTO 90
80 CONTINUE
IP=13
C---CHECK THAT Z IS INSIDE PHASE SPACE (RETURN IF NOT)
90 CONTINUE
IF (ID.NE.13) THEN
IF (IP.EQ.ID) THEN
IF ((NONV.AND.ZZ*WQP.LT.XQV).OR.ZZ.GT.WQG) THEN
IF (PHOTPR) GOTO 50
RETURN
ENDIF
ELSE
IF (ZZ.LT.XQV.OR.ZZ.GT.WQP) THEN
IF (PHOTPR) GOTO 50
RETURN
ENDIF
ENDIF
ELSE
IF (IP.EQ.ID) THEN
IF (ZZ.LT.XQV.OR.ZZ.GT.WQG) RETURN
ELSEIF (.NOT.HWSVAL(IP)) THEN
WQN=1.-HWBVMC(IP)/QQ
IF (ZZ*WQN.LT.XQV.OR.ZZ.GT.WQN) RETURN
ENDIF
ENDIF
C---EVERYTHING OK: LABEL NEW BRANCHES
Z=ZZ
ID1=IP
IW1=IW*2
IW2=IW1+1
IF (ID.LE.6) THEN
IF (ID1.EQ.13) THEN
ID2=ID+6
ELSE
ID2=13
IW2=IW1
ENDIF
ELSE IF (ID.NE.13) THEN
IF (ID1.EQ.13) THEN
ID2=ID-6
IW2=IW1
ELSE
ID2=13
ENDIF
ELSE
ID2=ID1
IF (ID1.EQ.13) THEN
IF (HWRLOG(HALF)) IW2=IW1
ELSE IF (ID1.GT.6) THEN
IW2=IW1
END IF
END IF
IF (IW2.EQ.IW1) IW1=IW1+1
END
CDECK ID>, HWSFUN.
*CMZ :- -02/05/91 11.30.51 by Federico Carminati
*-- Author : Miscellaneous, combined by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWSFUN(XIN,SCALE,IDHAD,NSET,DIST,IBEAM)
C-----------------------------------------------------------------------
C NUCLEON AND PION STRUCTURE FUNCTIONS DIST=X*QRK(X,Q=SCALE)
C
C IDHAD = TYPE OF HADRON:
C 73=P 91=PBAR 75=N 93=NBAR 38=PI+ 30=PI- 59=PHOTON
C
C NEW SPECIAL CODES:
C 71=`REMNANT PHOTON' 72=`REMNANT NUCLEON'
C
C NSET = STRUCTURE FUNCTION SET
C = 1,2 FOR DUKE+OWENS SETS 1,2 (SOFT/HARD GLUE)
C = 3,4 FOR EICHTEN ET AL SETS 1,2 (NUCLEON ONLY)
C = 5 FOR OWENS SET 1.1 (PREPRINT FSU-HEP-910606)
C
C FOR PHOTON DREES+GRASSIE IS USED
C
C N.B. IF IBEAM.GT.0.AND.MODPDF(IBEAM).GE.0 THEN NSET IS
C IGNORED AND CERN PDFLIB WITH AUTHOR GROUP=AUTPDF(IBEAM) AND
C SET=MODPDF(IBEAM) IS USED. FOR COMPATABILITY WITH VERSIONS 3
C AND EARLIER, AUTPDF SHOULD BE SET TO 'MODE'
C NOTE THAT NO CONSISTENCY CHECK IS MADE, FOR EXAMPLE THAT THE
C REQUESTED SET FOR A PHOTON IS ACTUALLY A PHOTON SET
C
C IF (ISPAC.GT.0) SCALE IS REPLACED BY MAX(SCALE,QSPAC)
C
C IF (X.LT.PDFX0) REPLACE X*F(X) BY PDFX0*F(PDFX0)*(X/PDFX0)**PDFPOW
C
C FOR PHOTON, IF (PHOMAS.GT.0) THEN QUARK DISTRIBUTIONS ARE
C SUPPRESSED BY LOG((Q**2+PHOMAS**2)/(P**2+PHOMAS**2))
C L = -------------------------------------- ,
C LOG((Q**2+PHOMAS**2)/( PHOMAS**2))
C WHILE GLUON DISTRIBUTIONS ARE SUPPRESSED BY L**2,
C WHERE Q=SCALE AND P=VIRTUALITY OF THE PHOTON
C
C DUKE+OWENS = D.W.DUKE AND J.F.OWENS, PHYS. REV. D30 (1984) 49 (P/N)
C + J.F.OWENS, PHYS. REV. D30 (1984) 943 (PI+/-)
C WITH EXTRA SIGNIFICANT FIGURES VIA ED BERGER
C WARNING....MOMENTUM SUM RULE BADLY VIOLATED ABOVE 1 TEV
C DUKE+OWENS SETS 1,2 OBSOLETE. SET 1 UPDATED TO OWENS 1.1 (1991)
C PION NOT RELIABLE ABOVE SCALE = 50 GEV
C
C EICHTEN ET AL = E.EICHTEN,I.HINCHLIFFE,K.LANE AND C.QUIGG,
C REV. MOD. PHYS. 56 (1984) 579
C REVISED AS IN REV. MOD. PHYS. 58 (1986) 1065
C RELIABLE RANGE : SQRT(5)GEV < SCALE < 10TEV, 1E-4 < X < 1
C
C DREES+GRASSIE = M.DREES & K.GRASSIE, ZEIT. PHYS. C28 (1985) 451
C MODIFIED IN M.DREES & C.S.KIM, DESY 91-039
C AND C.S.KIM, DTP/91/16 FOR HEAVY QUARKS
C
C FOR CERN PDFLIB DETAILS SEE PDFLIB DOC Q ON CERNVM OR
C CERN_ROOT:[DOC]PDFLIB.TXT ON VXCERN
C-----------------------------------------------------------------------
C---BRW change 27/8/04: include Frixione's fix to reduce PDFSET calls
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWSGAM,X,SCALE,XOLD,QOLD,XMWN,QSCA,SS,SMIN,S,T,
& TMIN,TMAX,VX,AA,VT,WT,UPV,DNV,SEA,STR,CHM,BTM,TOP,GLU,WX,XQSUM,
& DMIN,TPMIN,TPMAX,DIST(13),G(2),Q0(5),QL(5),F(5),A(6,5),
& B(3,6,5,4),XQ(6),TX(6),TT(6),TB(6),NEHLQ(8,2),CEHLQ(6,6,2,8,2),
& BB(4,6,5),VAL(20),USEA,DSEA,TOTAL,SCALEF,FAC,TBMIN(2),TTMIN(2)
DOUBLE PRECISION XIN,PDFFAC
REAL HWSDGG,HWSDGQ,XSP,Q2,P2,W2,EMB2,EMC2,ALAM2,XPGA(-6:6),F2GM,
& XPVMD,XPANL,XPANH,XPBEH,XPDIR
COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
& XPDIR(-6:6)
LOGICAL PDFWRX(2,2),PDFWRQ(2,2)
DOUBLE PRECISION PDFXMN,PDFXMX,PDFQMN,PDFQMX
COMMON /W50513/PDFXMN,PDFXMX,PDFQMN,PDFQMX
INTEGER IDHAD,NSET,IBEAM,IOLD,NOLD,IP,I,J,K,NX,IT,IX,IFL,NFL,
& MPDF,IHAD,ISET,IOP1,IOP2,IP2
CHARACTER*20 PARM(20)
CHARACTER*20 PARMSAVE
DOUBLE PRECISION VALSAVE
COMMON/HWSFSA/PARMSAVE
COMMON/HWSFSB/VALSAVE
EXTERNAL HWSGAM,HWSDGG,HWSDGQ
SAVE QOLD,IOLD,NOLD,XOLD,SS,S,T,TMIN,TMAX,G,A,TX,TT,TB,IP,NX
SAVE PDFWRX,PDFWRQ,B,BB,NEHLQ,CEHLQ,TBMIN,TTMIN,DMIN,Q0,QL
DATA PDFWRX,PDFWRQ/8*.TRUE./
DATA (((B(I,J,K,1),I=1,3),J=1,6),K=1,5)/
&3.D0,0.D0,0.D0,.419D0,.004383D0,-.007412D0,
&3.46D0,.72432D0,-.065998D0,4.4D0,-4.8644D0,1.3274D0,
&6*0.D0,1.D0,
&0.D0,0.D0,.763D0,-.23696D0,.025836D0,4.D0,.62664D0,-.019163D0,
&0.D0,-.42068D0,.032809D0,6*0.D0,1.265D0,-1.1323D0,.29268D0,
&0.D0,-.37162D0,-.028977D0,8.05D0,1.5877D0,-.15291D0,
&0.D0,6.3059D0,-.27342D0,0.D0,-10.543D0,-3.1674D0,
&0.D0,14.698D0,9.798D0,0.D0,.13479D0,-.074693D0,
&-.0355D0,-.22237D0,-.057685D0,6.3494D0,3.2649D0,-.90945D0,
&0.D0,-3.0331D0,1.5042D0,0.D0,17.431D0,-11.255D0,
&0.D0,-17.861D0,15.571D0,1.564D0,-1.7112D0,.63751D0,
&0.D0,-.94892D0,.32505D0,6.D0,1.4345D0,-1.0485D0,
&9.D0,-7.1858D0,.25494D0,0.D0,-16.457D0,10.947D0,
&0.D0,15.261D0,-10.085D0/
DATA (((B(I,J,K,2),I=1,3),J=1,6),K=1,5)/
&3.D0,0.D0,0.D0,.3743D0,.013946D0,-.00031695D0,
&3.329D0,.75343D0,-.076125D0,6.032D0,-6.2153D0,1.5561D0,
&6*0.D0,1.D0,0.D0,
&0.D0,.7608D0,-.2317D0,.023232D0,3.83D0,.62746D0,-.019155D0,
&0.D0,-.41843D0,.035972D0,6*0.D0,1.6714D0,-1.9168D0,.58175D0,
&0.D0,-.27307D0,-.16392D0,9.145D0,.53045D0,-.76271D0,
&0.D0,15.665D0,-2.8341D0,0.D0,-100.63D0,44.658D0,
&0.D0,223.24D0,-116.76D0,0.D0,.067368D0,-.030574D0,
&-.11989D0,-.23293D0,-.023273D0,3.5087D0,3.6554D0,-.45313D0,
&0.D0,-.47369D0,.35793D0,0.D0,9.5041D0,-5.4303D0,
&0.D0,-16.563D0,15.524D0,.8789D0,-.97093D0,.43388D0,
&0.D0,-1.1612D0,.4759D0,4.D0,1.2271D0,-.25369D0,
&9.D0,-5.6354D0,-.81747D0,0.D0,-7.5438D0,5.5034D0,
&0.D0,-.59649D0,.12611D0/
DATA (((B(I,J,K,3),I=1,3),J=1,6),K=1,5)/
&1.D0,0.D0,0.D0,0.4D0,-0.06212D0,-0.007109D0,0.7D0,0.6478D0,
&0.01335D0,27*0.D0,0.9D0,-0.2428D0,0.1386D0,0.D0,-0.2120D0,
&0.003671D0,5.0D0,0.8673D0,0.04747D0,
&0.D0,1.266D0,-2.215D0,0.D0,2.382D0,0.3482D0,3*0.D0,
&0.D0,0.07928D0,-0.06134D0,-0.02212D0,-0.3785D0,-0.1088D0,2.894D0,
&9.433D0,
&-10.852D0,0.D0,5.248D0,-7.187D0,0.D0,8.388D0,-11.61D0,3*0.D0,
&0.888D0,-1.802D0,1.812D0,0.D0,-1.576D0,1.20D0,3.11D0,-0.1317D0,
&0.5068D0,6.0D0,2.801D0,-12.16D0,0.D0,-17.28D0,20.49D0,3*0.D0/
DATA (((B(I,J,K,4),I=1,3),J=1,6),K=1,5)/
&1.D0,0.D0,0.D0,0.4D0,-0.05909D0,-0.006524D0,0.628D0,0.6436D0,
&0.01451D0,27*0.D0,
&0.90D0,-0.1417D0,-0.1740D0,0.D0,-0.1697D0,-0.09623D0,5.0D0,
&-2.474D0,1.575D0,
&0.D0,-2.534D0,1.378D0,0.D0,0.5621D0,-0.2701D0,3*0.D0,
&0.D0,0.06229D0,-0.04099D0,-0.0882D0,-0.2892D0,-0.1082D0,1.924D0,
&0.2424D0,
&2.036D0,0.D0,-4.463D0,5.209D0,0.D0,-0.8367D0,-0.04840D0,3*0.D0,
&0.794D0,-0.9144D0,0.5966D0,0.D0,-1.237D0,0.6582D0,2.89D0,0.5966D0,
&-0.2550D0,
&6.0D0,-3.671D0,-2.304D0,0.D0,-8.191D0,7.758D0,3*0.D0/
C---COEFFTS FOR NEW OWENS 1.1 SET
DATA BB/3.D0,3*0.D0,.665D0,-.1097D0,-.002442D0,0.D0,
&3.614D0,.8395D0,-.02186D0,0.D0,.8673D0,-1.6637D0,.342D0,0.D0,
&0.D0,1.1049D0,-.2369D0,5*0.D0,1.D0,3*0.D0,
&.8388D0,-.2092D0,.02657D0,0.D0,4.667D0,.7951D0,.1081D0,0.D0,
&0.D0,-1.0232D0,.05799D0,0.D0,0.D0,.8616D0,.153D0,5*0.D0,
&.909D0,-.4023D0,.006305D0,0.D0,
&0.D0,-.3823D0,.02766D0,0.D0,7.278D0,-.7904D0,.8108D0,0.D0,
&0.D0,-1.6629D0,.5719D0,0.D0,0.D0,-.01333D0,.5299D0,0.D0,
&0.D0,.1211D0,-.1739D0,0.D0,0.D0,.09469D0,-.07066D0,.01236D0,
&-.1447D0,-.402D0,.1533D0,-.06479D0,6.7599D0,1.6596D0,.6798D0,
&-.8525D0,0.D0,-4.4559D0,3.3756D0,-.9468D0,
&0.D0,7.862D0,-3.6591D0,.03672D0,0.D0,-.2472D0,-.751D0,.0487D0,
&3.017D0,-4.7347D0,3.3594D0,-.9443D0,0.D0,-.9342D0,.5454D0,
&-.1668D0,
&5.304D0,1.4654D0,-1.4292D0,.7569D0,0.D0,-3.9141D0,2.8445D0,
&-.8411D0,
&0.D0,9.0176D0,-10.426D0,4.0983D0,0.D0,-5.9602D0,7.515D0,-2.7329D0/
C...THE FOLLOWING DATA LINES ARE COEFFICIENTS NEEDED IN THE
C...EICHTEN, HINCHLIFFE, LANE, QUIGG PROTON STRUCTURE FUNCTION
C...POWERS OF 1-X IN DIFFERENT CASES
DATA NEHLQ/3,4,7,5,7,7,7,7,3,4,7,6,7,7,7,7/
C...EXPANSION COEFFICIENTS FOR UP VALENCE QUARK DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,1,1),IX=1,6),IT=1,6),NX=1,2)/
1 7.677D-01,-2.087D-01,-3.303D-01,-2.517D-02,-1.570D-02,-1.000D-04,
2-5.326D-01,-2.661D-01, 3.201D-01, 1.192D-01, 2.434D-02, 7.620D-03,
3 2.162D-01, 1.881D-01,-8.375D-02,-6.515D-02,-1.743D-02,-5.040D-03,
4-9.211D-02,-9.952D-02, 1.373D-02, 2.506D-02, 8.770D-03, 2.550D-03,
5 3.670D-02, 4.409D-02, 9.600D-04,-7.960D-03,-3.420D-03,-1.050D-03,
6-1.549D-02,-2.026D-02,-3.060D-03, 2.220D-03, 1.240D-03, 4.100D-04,
1 2.395D-01, 2.905D-01, 9.778D-02, 2.149D-02, 3.440D-03, 5.000D-04,
2 1.751D-02,-6.090D-03,-2.687D-02,-1.916D-02,-7.970D-03,-2.750D-03,
3-5.760D-03,-5.040D-03, 1.080D-03, 2.490D-03, 1.530D-03, 7.500D-04,
4 1.740D-03, 1.960D-03, 3.000D-04,-3.400D-04,-2.900D-04,-1.800D-04,
5-5.300D-04,-6.400D-04,-1.700D-04, 4.000D-05, 6.000D-05, 4.000D-05,
6 1.700D-04, 2.200D-04, 8.000D-05, 1.000D-05,-1.000D-05,-1.000D-05/
DATA (((CEHLQ(IX,IT,NX,1,2),IX=1,6),IT=1,6),NX=1,2)/
1 7.237D-01,-2.189D-01,-2.995D-01,-1.909D-02,-1.477D-02, 2.500D-04,
2-5.314D-01,-2.425D-01, 3.283D-01, 1.119D-01, 2.223D-02, 7.070D-03,
3 2.289D-01, 1.890D-01,-9.859D-02,-6.900D-02,-1.747D-02,-5.080D-03,
4-1.041D-01,-1.084D-01, 2.108D-02, 2.975D-02, 9.830D-03, 2.830D-03,
5 4.394D-02, 5.116D-02,-1.410D-03,-1.055D-02,-4.230D-03,-1.270D-03,
6-1.991D-02,-2.539D-02,-2.780D-03, 3.430D-03, 1.720D-03, 5.500D-04,
1 2.410D-01, 2.884D-01, 9.369D-02, 1.900D-02, 2.530D-03, 2.400D-04,
2 1.765D-02,-9.220D-03,-3.037D-02,-2.085D-02,-8.440D-03,-2.810D-03,
3-6.450D-03,-5.260D-03, 1.720D-03, 3.110D-03, 1.830D-03, 8.700D-04,
4 2.120D-03, 2.320D-03, 2.600D-04,-4.900D-04,-3.900D-04,-2.300D-04,
5-6.900D-04,-8.200D-04,-2.000D-04, 7.000D-05, 9.000D-05, 6.000D-05,
6 2.400D-04, 3.100D-04, 1.100D-04, 0.000D+00,-2.000D-05,-2.000D-05/
C...EXPANSION COEFFICIENTS FOR DOWN VALENCE QUARK DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,2,1),IX=1,6),IT=1,6),NX=1,2)/
1 3.813D-01,-8.090D-02,-1.634D-01,-2.185D-02,-8.430D-03,-6.200D-04,
2-2.948D-01,-1.435D-01, 1.665D-01, 6.638D-02, 1.473D-02, 4.080D-03,
3 1.252D-01, 1.042D-01,-4.722D-02,-3.683D-02,-1.038D-02,-2.860D-03,
4-5.478D-02,-5.678D-02, 8.900D-03, 1.484D-02, 5.340D-03, 1.520D-03,
5 2.220D-02, 2.567D-02,-3.000D-05,-4.970D-03,-2.160D-03,-6.500D-04,
6-9.530D-03,-1.204D-02,-1.510D-03, 1.510D-03, 8.300D-04, 2.700D-04,
1 1.261D-01, 1.354D-01, 3.958D-02, 8.240D-03, 1.660D-03, 4.500D-04,
2 3.890D-03,-1.159D-02,-1.625D-02,-9.610D-03,-3.710D-03,-1.260D-03,
3-1.910D-03,-5.600D-04, 1.590D-03, 1.590D-03, 8.400D-04, 3.900D-04,
4 6.400D-04, 4.900D-04,-1.500D-04,-2.900D-04,-1.800D-04,-1.000D-04,
5-2.000D-04,-1.900D-04, 0.000D+00, 6.000D-05, 4.000D-05, 3.000D-05,
6 7.000D-05, 8.000D-05, 2.000D-05,-1.000D-05,-1.000D-05,-1.000D-05/
DATA (((CEHLQ(IX,IT,NX,2,2),IX=1,6),IT=1,6),NX=1,2)/
1 3.578D-01,-8.622D-02,-1.480D-01,-1.840D-02,-7.820D-03,-4.500D-04,
2-2.925D-01,-1.304D-01, 1.696D-01, 6.243D-02, 1.353D-02, 3.750D-03,
3 1.318D-01, 1.041D-01,-5.486D-02,-3.872D-02,-1.038D-02,-2.850D-03,
4-6.162D-02,-6.143D-02, 1.303D-02, 1.740D-02, 5.940D-03, 1.670D-03,
5 2.643D-02, 2.957D-02,-1.490D-03,-6.450D-03,-2.630D-03,-7.700D-04,
6-1.218D-02,-1.497D-02,-1.260D-03, 2.240D-03, 1.120D-03, 3.500D-04,
1 1.263D-01, 1.334D-01, 3.732D-02, 7.070D-03, 1.260D-03, 3.400D-04,
2 3.660D-03,-1.357D-02,-1.795D-02,-1.031D-02,-3.880D-03,-1.280D-03,
3-2.100D-03,-3.600D-04, 2.050D-03, 1.920D-03, 9.800D-04, 4.400D-04,
4 7.700D-04, 5.400D-04,-2.400D-04,-3.900D-04,-2.400D-04,-1.300D-04,
5-2.600D-04,-2.300D-04, 2.000D-05, 9.000D-05, 6.000D-05, 4.000D-05,
6 9.000D-05, 1.000D-04, 2.000D-05,-2.000D-05,-2.000D-05,-1.000D-05/
C...EXPANSION COEFFICIENTS FOR UP AND DOWN SEA QUARK DISTRIBUTIONS
DATA (((CEHLQ(IX,IT,NX,3,1),IX=1,6),IT=1,6),NX=1,2)/
1 6.870D-02,-6.861D-02, 2.973D-02,-5.400D-03, 3.780D-03,-9.700D-04,
2-1.802D-02, 1.400D-04, 6.490D-03,-8.540D-03, 1.220D-03,-1.750D-03,
3-4.650D-03, 1.480D-03,-5.930D-03, 6.000D-04,-1.030D-03,-8.000D-05,
4 6.440D-03, 2.570D-03, 2.830D-03, 1.150D-03, 7.100D-04, 3.300D-04,
5-3.930D-03,-2.540D-03,-1.160D-03,-7.700D-04,-3.600D-04,-1.900D-04,
6 2.340D-03, 1.930D-03, 5.300D-04, 3.700D-04, 1.600D-04, 9.000D-05,
1 1.014D+00,-1.106D+00, 3.374D-01,-7.444D-02, 8.850D-03,-8.700D-04,
2 9.233D-01,-1.285D+00, 4.475D-01,-9.786D-02, 1.419D-02,-1.120D-03,
3 4.888D-02,-1.271D-01, 8.606D-02,-2.608D-02, 4.780D-03,-6.000D-04,
4-2.691D-02, 4.887D-02,-1.771D-02, 1.620D-03, 2.500D-04,-6.000D-05,
5 7.040D-03,-1.113D-02, 1.590D-03, 7.000D-04,-2.000D-04, 0.000D+00,
6-1.710D-03, 2.290D-03, 3.800D-04,-3.500D-04, 4.000D-05, 1.000D-05/
DATA (((CEHLQ(IX,IT,NX,3,2),IX=1,6),IT=1,6),NX=1,2)/
1 1.008D-01,-7.100D-02, 1.973D-02,-5.710D-03, 2.930D-03,-9.900D-04,
2-5.271D-02,-1.823D-02, 1.792D-02,-6.580D-03, 1.750D-03,-1.550D-03,
3 1.220D-02, 1.763D-02,-8.690D-03,-8.800D-04,-1.160D-03,-2.100D-04,
4-1.190D-03,-7.180D-03, 2.360D-03, 1.890D-03, 7.700D-04, 4.100D-04,
5-9.100D-04, 2.040D-03,-3.100D-04,-1.050D-03,-4.000D-04,-2.400D-04,
6 1.190D-03,-1.700D-04,-2.000D-04, 4.200D-04, 1.700D-04, 1.000D-04,
1 1.081D+00,-1.189D+00, 3.868D-01,-8.617D-02, 1.115D-02,-1.180D-03,
2 9.917D-01,-1.396D+00, 4.998D-01,-1.159D-01, 1.674D-02,-1.720D-03,
3 5.099D-02,-1.338D-01, 9.173D-02,-2.885D-02, 5.890D-03,-6.500D-04,
4-3.178D-02, 5.703D-02,-2.070D-02, 2.440D-03, 1.100D-04,-9.000D-05,
5 8.970D-03,-1.392D-02, 2.050D-03, 6.500D-04,-2.300D-04, 2.000D-05,
6-2.340D-03, 3.010D-03, 5.000D-04,-3.900D-04, 6.000D-05, 1.000D-05/
C...EXPANSION COEFFICIENTS FOR GLUON DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,4,1),IX=1,6),IT=1,6),NX=1,2)/
1 9.482D-01,-9.578D-01, 1.009D-01,-1.051D-01, 3.456D-02,-3.054D-02,
2-9.627D-01, 5.379D-01, 3.368D-01,-9.525D-02, 1.488D-02,-2.051D-02,
3 4.300D-01,-8.306D-02,-3.372D-01, 4.902D-02,-9.160D-03, 1.041D-02,
4-1.925D-01,-1.790D-02, 2.183D-01, 7.490D-03, 4.140D-03,-1.860D-03,
5 8.183D-02, 1.926D-02,-1.072D-01,-1.944D-02,-2.770D-03,-5.200D-04,
6-3.884D-02,-1.234D-02, 5.410D-02, 1.879D-02, 3.350D-03, 1.040D-03,
1 2.948D+01,-3.902D+01, 1.464D+01,-3.335D+00, 5.054D-01,-5.915D-02,
2 2.559D+01,-3.955D+01, 1.661D+01,-4.299D+00, 6.904D-01,-8.243D-02,
3-1.663D+00, 1.176D+00, 1.118D+00,-7.099D-01, 1.948D-01,-2.404D-02,
4-2.168D-01, 8.170D-01,-7.169D-01, 1.851D-01,-1.924D-02,-3.250D-03,
5 2.088D-01,-4.355D-01, 2.239D-01,-2.446D-02,-3.620D-03, 1.910D-03,
6-9.097D-02, 1.601D-01,-5.681D-02,-2.500D-03, 2.580D-03,-4.700D-04/
DATA (((CEHLQ(IX,IT,NX,4,2),IX=1,6),IT=1,6),NX=1,2)/
1 2.367D+00, 4.453D-01, 3.660D-01, 9.467D-02, 1.341D-01, 1.661D-02,
2-3.170D+00,-1.795D+00, 3.313D-02,-2.874D-01,-9.827D-02,-7.119D-02,
3 1.823D+00, 1.457D+00,-2.465D-01, 3.739D-02, 6.090D-03, 1.814D-02,
4-1.033D+00,-9.827D-01, 2.136D-01, 1.169D-01, 5.001D-02, 1.684D-02,
5 5.133D-01, 5.259D-01,-1.173D-01,-1.139D-01,-4.988D-02,-2.021D-02,
6-2.881D-01,-3.145D-01, 5.667D-02, 9.161D-02, 4.568D-02, 1.951D-02,
1 3.036D+01,-4.062D+01, 1.578D+01,-3.699D+00, 6.020D-01,-7.031D-02,
2 2.700D+01,-4.167D+01, 1.770D+01,-4.804D+00, 7.862D-01,-1.060D-01,
3-1.909D+00, 1.357D+00, 1.127D+00,-7.181D-01, 2.232D-01,-2.481D-02,
4-2.488D-01, 9.781D-01,-8.127D-01, 2.094D-01,-2.997D-02,-4.710D-03,
5 2.506D-01,-5.427D-01, 2.672D-01,-3.103D-02,-1.800D-03, 2.870D-03,
6-1.128D-01, 2.087D-01,-6.972D-02,-2.480D-03, 2.630D-03,-8.400D-04/
C...EXPANSION COEFFICIENTS FOR STRANGE SEA QUARK DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,5,1),IX=1,6),IT=1,6),NX=1,2)/
1 4.968D-02,-4.173D-02, 2.102D-02,-3.270D-03, 3.240D-03,-6.700D-04,
2-6.150D-03,-1.294D-02, 6.740D-03,-6.890D-03, 9.000D-04,-1.510D-03,
3-8.580D-03, 5.050D-03,-4.900D-03,-1.600D-04,-9.400D-04,-1.500D-04,
4 7.840D-03, 1.510D-03, 2.220D-03, 1.400D-03, 7.000D-04, 3.500D-04,
5-4.410D-03,-2.220D-03,-8.900D-04,-8.500D-04,-3.600D-04,-2.000D-04,
6 2.520D-03, 1.840D-03, 4.100D-04, 3.900D-04, 1.600D-04, 9.000D-05,
1 9.235D-01,-1.085D+00, 3.464D-01,-7.210D-02, 9.140D-03,-9.100D-04,
2 9.315D-01,-1.274D+00, 4.512D-01,-9.775D-02, 1.380D-02,-1.310D-03,
3 4.739D-02,-1.296D-01, 8.482D-02,-2.642D-02, 4.760D-03,-5.700D-04,
4-2.653D-02, 4.953D-02,-1.735D-02, 1.750D-03, 2.800D-04,-6.000D-05,
5 6.940D-03,-1.132D-02, 1.480D-03, 6.500D-04,-2.100D-04, 0.000D+00,
6-1.680D-03, 2.340D-03, 4.200D-04,-3.400D-04, 5.000D-05, 1.000D-05/
DATA (((CEHLQ(IX,IT,NX,5,2),IX=1,6),IT=1,6),NX=1,2)/
1 6.478D-02,-4.537D-02, 1.643D-02,-3.490D-03, 2.710D-03,-6.700D-04,
2-2.223D-02,-2.126D-02, 1.247D-02,-6.290D-03, 1.120D-03,-1.440D-03,
3-1.340D-03, 1.362D-02,-6.130D-03,-7.900D-04,-9.000D-04,-2.000D-04,
4 5.080D-03,-3.610D-03, 1.700D-03, 1.830D-03, 6.800D-04, 4.000D-04,
5-3.580D-03, 6.000D-05,-2.600D-04,-1.050D-03,-3.800D-04,-2.300D-04,
6 2.420D-03, 9.300D-04,-1.000D-04, 4.500D-04, 1.700D-04, 1.100D-04,
1 9.868D-01,-1.171D+00, 3.940D-01,-8.459D-02, 1.124D-02,-1.250D-03,
2 1.001D+00,-1.383D+00, 5.044D-01,-1.152D-01, 1.658D-02,-1.830D-03,
3 4.928D-02,-1.368D-01, 9.021D-02,-2.935D-02, 5.800D-03,-6.600D-04,
4-3.133D-02, 5.785D-02,-2.023D-02, 2.630D-03, 1.600D-04,-8.000D-05,
5 8.840D-03,-1.416D-02, 1.900D-03, 5.800D-04,-2.500D-04, 1.000D-05,
6-2.300D-03, 3.080D-03, 5.500D-04,-3.700D-04, 7.000D-05, 1.000D-05/
C...EXPANSION COEFFICIENTS FOR CHARM SEA QUARK DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,6,1),IX=1,6),IT=1,6),NX=1,2)/
1 9.270D-03,-1.817D-02, 9.590D-03,-6.390D-03, 1.690D-03,-1.540D-03,
2 5.710D-03,-1.188D-02, 6.090D-03,-4.650D-03, 1.240D-03,-1.310D-03,
3-3.960D-03, 7.100D-03,-3.590D-03, 1.840D-03,-3.900D-04, 3.400D-04,
4 1.120D-03,-1.960D-03, 1.120D-03,-4.800D-04, 1.000D-04,-4.000D-05,
5 4.000D-05,-3.000D-05,-1.800D-04, 9.000D-05,-5.000D-05,-2.000D-05,
6-4.200D-04, 7.300D-04,-1.600D-04, 5.000D-05, 5.000D-05, 5.000D-05,
1 8.098D-01,-1.042D+00, 3.398D-01,-6.824D-02, 8.760D-03,-9.000D-04,
2 8.961D-01,-1.217D+00, 4.339D-01,-9.287D-02, 1.304D-02,-1.290D-03,
3 3.058D-02,-1.040D-01, 7.604D-02,-2.415D-02, 4.600D-03,-5.000D-04,
4-2.451D-02, 4.432D-02,-1.651D-02, 1.430D-03, 1.200D-04,-1.000D-04,
5 1.122D-02,-1.457D-02, 2.680D-03, 5.800D-04,-1.200D-04, 3.000D-05,
6-7.730D-03, 7.330D-03,-7.600D-04,-2.400D-04, 1.000D-05, 0.000D+00/
DATA (((CEHLQ(IX,IT,NX,6,2),IX=1,6),IT=1,6),NX=1,2)/
1 9.980D-03,-1.945D-02, 1.055D-02,-6.870D-03, 1.860D-03,-1.560D-03,
2 5.700D-03,-1.203D-02, 6.250D-03,-4.860D-03, 1.310D-03,-1.370D-03,
3-4.490D-03, 7.990D-03,-4.170D-03, 2.050D-03,-4.400D-04, 3.300D-04,
4 1.470D-03,-2.480D-03, 1.460D-03,-5.700D-04, 1.200D-04,-1.000D-05,
5-9.000D-05, 1.500D-04,-3.200D-04, 1.200D-04,-6.000D-05,-4.000D-05,
6-4.200D-04, 7.600D-04,-1.400D-04, 4.000D-05, 7.000D-05, 5.000D-05,
1 8.698D-01,-1.131D+00, 3.836D-01,-8.111D-02, 1.048D-02,-1.300D-03,
2 9.626D-01,-1.321D+00, 4.854D-01,-1.091D-01, 1.583D-02,-1.700D-03,
3 3.057D-02,-1.088D-01, 8.022D-02,-2.676D-02, 5.590D-03,-5.600D-04,
4-2.845D-02, 5.164D-02,-1.918D-02, 2.210D-03,-4.000D-05,-1.500D-04,
5 1.311D-02,-1.751D-02, 3.310D-03, 5.100D-04,-1.200D-04, 5.000D-05,
6-8.590D-03, 8.380D-03,-9.200D-04,-2.600D-04, 1.000D-05,-1.000D-05/
C...EXPANSION COEFFICIENTS FOR BOTTOM SEA QUARK DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,7,1),IX=1,6),IT=1,6),NX=1,2)/
1 9.010D-03,-1.401D-02, 7.150D-03,-4.130D-03, 1.260D-03,-1.040D-03,
2 6.280D-03,-9.320D-03, 4.780D-03,-2.890D-03, 9.100D-04,-8.200D-04,
3-2.930D-03, 4.090D-03,-1.890D-03, 7.600D-04,-2.300D-04, 1.400D-04,
4 3.900D-04,-1.200D-03, 4.400D-04,-2.500D-04, 2.000D-05,-2.000D-05,
5 2.600D-04, 1.400D-04,-8.000D-05, 1.000D-04, 1.000D-05, 1.000D-05,
6-2.600D-04, 3.200D-04, 1.000D-05,-1.000D-05, 1.000D-05,-1.000D-05,
1 8.029D-01,-1.075D+00, 3.792D-01,-7.843D-02, 1.007D-02,-1.090D-03,
2 7.903D-01,-1.099D+00, 4.153D-01,-9.301D-02, 1.317D-02,-1.410D-03,
3-1.704D-02,-1.130D-02, 2.882D-02,-1.341D-02, 3.040D-03,-3.600D-04,
4-7.200D-04, 7.230D-03,-5.160D-03, 1.080D-03,-5.000D-05,-4.000D-05,
5 3.050D-03,-4.610D-03, 1.660D-03,-1.300D-04,-1.000D-05, 1.000D-05,
6-4.360D-03, 5.230D-03,-1.610D-03, 2.000D-04,-2.000D-05, 0.000D+00/
DATA (((CEHLQ(IX,IT,NX,7,2),IX=1,6),IT=1,6),NX=1,2)/
1 8.980D-03,-1.459D-02, 7.510D-03,-4.410D-03, 1.310D-03,-1.070D-03,
2 5.970D-03,-9.440D-03, 4.800D-03,-3.020D-03, 9.100D-04,-8.500D-04,
3-3.050D-03, 4.440D-03,-2.100D-03, 8.500D-04,-2.400D-04, 1.400D-04,
4 5.300D-04,-1.300D-03, 5.600D-04,-2.700D-04, 3.000D-05,-2.000D-05,
5 2.000D-04, 1.400D-04,-1.100D-04, 1.000D-04, 0.000D+00, 0.000D+00,
6-2.600D-04, 3.200D-04, 0.000D+00,-3.000D-05, 1.000D-05,-1.000D-05,
1 8.672D-01,-1.174D+00, 4.265D-01,-9.252D-02, 1.244D-02,-1.460D-03,
2 8.500D-01,-1.194D+00, 4.630D-01,-1.083D-01, 1.614D-02,-1.830D-03,
3-2.241D-02,-5.630D-03, 2.815D-02,-1.425D-02, 3.520D-03,-4.300D-04,
4-7.300D-04, 8.030D-03,-5.780D-03, 1.380D-03,-1.300D-04,-4.000D-05,
5 3.460D-03,-5.380D-03, 1.960D-03,-2.100D-04, 1.000D-05, 1.000D-05,
6-4.850D-03, 5.950D-03,-1.890D-03, 2.600D-04,-3.000D-05, 0.000D+00/
C...EXPANSION COEFFICIENTS FOR TOP SEA QUARK DISTRIBUTION
DATA (((CEHLQ(IX,IT,NX,8,1),IX=1,6),IT=1,6),NX=1,2)/
1 4.410D-03,-7.480D-03, 3.770D-03,-2.580D-03, 7.300D-04,-7.100D-04,
2 3.840D-03,-6.050D-03, 3.030D-03,-2.030D-03, 5.800D-04,-5.900D-04,
3-8.800D-04, 1.660D-03,-7.500D-04, 4.700D-04,-1.000D-04, 1.000D-04,
4-8.000D-05,-1.500D-04, 1.200D-04,-9.000D-05, 3.000D-05, 0.000D+00,
5 1.300D-04,-2.200D-04,-2.000D-05,-2.000D-05,-2.000D-05,-2.000D-05,
6-7.000D-05, 1.900D-04,-4.000D-05, 2.000D-05, 0.000D+00, 0.000D+00,
1 6.623D-01,-9.248D-01, 3.519D-01,-7.930D-02, 1.110D-02,-1.180D-03,
2 6.380D-01,-9.062D-01, 3.582D-01,-8.479D-02, 1.265D-02,-1.390D-03,
3-2.581D-02, 2.125D-02, 4.190D-03,-4.980D-03, 1.490D-03,-2.100D-04,
4 7.100D-04, 5.300D-04,-1.270D-03, 3.900D-04,-5.000D-05,-1.000D-05,
5 3.850D-03,-5.060D-03, 1.860D-03,-3.500D-04, 4.000D-05, 0.000D+00,
6-3.530D-03, 4.460D-03,-1.500D-03, 2.700D-04,-3.000D-05, 0.000D+00/
DATA (((CEHLQ(IX,IT,NX,8,2),IX=1,6),IT=1,6),NX=1,2)/
1 4.260D-03,-7.530D-03, 3.830D-03,-2.680D-03, 7.600D-04,-7.300D-04,
2 3.640D-03,-6.050D-03, 3.030D-03,-2.090D-03, 5.900D-04,-6.000D-04,
3-9.200D-04, 1.710D-03,-8.200D-04, 5.000D-04,-1.200D-04, 1.000D-04,
4-5.000D-05,-1.600D-04, 1.300D-04,-9.000D-05, 3.000D-05, 0.000D+00,
5 1.300D-04,-2.100D-04,-1.000D-05,-2.000D-05,-2.000D-05,-1.000D-05,
6-8.000D-05, 1.800D-04,-5.000D-05, 2.000D-05, 0.000D+00, 0.000D+00,
1 7.146D-01,-1.007D+00, 3.932D-01,-9.246D-02, 1.366D-02,-1.540D-03,
2 6.856D-01,-9.828D-01, 3.977D-01,-9.795D-02, 1.540D-02,-1.790D-03,
3-3.053D-02, 2.758D-02, 2.150D-03,-4.880D-03, 1.640D-03,-2.500D-04,
4 9.200D-04, 4.200D-04,-1.340D-03, 4.600D-04,-8.000D-05,-1.000D-05,
5 4.230D-03,-5.660D-03, 2.140D-03,-4.300D-04, 6.000D-05, 0.000D+00,
6-3.890D-03, 5.000D-03,-1.740D-03, 3.300D-04,-4.000D-05, 0.000D+00/
DATA TBMIN,TTMIN/8.1905D0,7.4474D0,11.5528D0,10.8097D0/
DATA XOLD,QOLD,IOLD,NOLD/-1.D0,0.D0,0,0/
DATA DMIN,Q0,QL/0.D0,2*2.D0,2*2.236D0,2.D0,.2D0,
& .4D0,.2D0,.29D0,.177D0/
C---X IS EQUAL TO XIN, UNLESS IT IS LESS THAN PDFX0
X=MAX(XIN,PDFX0)
IF (X.LE.ZERO) THEN
CALL HWWARN('HWSFUN',100)
GOTO 999
ENDIF
XMWN=ONE-X
IF (XMWN.LE.ZERO) THEN
DO 1 I=1,13
DIST(I)=0
1 CONTINUE
RETURN
ENDIF
C---FREEZE THE SCALE IF REQUIRED
SCALEF=SCALE
IF (ISPAC.GT.0) SCALEF=MAX(SCALEF,QSPAC)
C---CHECK IF PDFLIB REQUESTED
IF (IBEAM.EQ.1.OR.IBEAM.EQ.2) THEN
MPDF=MODPDF(IBEAM)
ELSE
MPDF=-1
ENDIF
QSCA=ABS(SCALEF)
IF (IDHAD.EQ.59.OR.IDHAD.EQ.71) THEN
IF (MPDF.GE.0) THEN
C---USE PDFLIB PHOTON STRUCTURE FUNCTIONS
PARM(1)=AUTPDF(IBEAM)
VAL(1)=FLOAT(MPDF)
C---FIX TO CALL SCHULER-SJOSTRAND CODE
IF (AUTPDF(IBEAM).EQ.'SaSph') THEN
XSP=SNGL(X)
IF ( XSP.LE.ZERO) THEN
CALL HWWARN('HWSFUN',102)
GOTO 999
ENDIF
IF (ONE-XSP.LE.ZERO) THEN
CALL HWWARN('HWSFUN',103)
GOTO 999
ENDIF
Q2=SNGL(QSCA**2)
ISET=MOD(MODPDF(IBEAM),10)
IOP1=MOD(MODPDF(IBEAM)/10,2)
IOP2=MOD(MODPDF(IBEAM)/20,2)
IP2=MODPDF(IBEAM)/100
IF (IOP2.EQ.0) THEN
P2=0.
ELSE
IHAD=IBEAM
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
P2=SNGL(PHEP(5,IHAD)**2)
ENDIF
CALL SASGAM(ISET,XSP,Q2,P2,IP2,F2GM,XPGA)
IF (IOP1.EQ.1 .AND. ISTAT.LT.10) THEN
DO 5 I=-6,6
5 XPGA(I)=XPVMD(I)+XPANL(I)+XPBEH(I)+XPDIR(I)
ENDIF
UPV=XPGA(2)
DNV=XPGA(1)
USEA=XPGA(2)
DSEA=XPGA(1)
STR=XPGA(3)
CHM=XPGA(4)
BTM=XPGA(5)
TOP=XPGA(6)
GLU=XPGA(0)
ELSE
IF(PARM(1).NE.PARMSAVE.OR.VAL(1).NE.VALSAVE)THEN
PARMSAVE=PARM(1)
VALSAVE=VAL(1)
CALL PDFSET_HERWIG(PARM,VAL)
ENDIF
IF (X.LT.PDFXMN.AND.PDFWRX(IBEAM,1) .OR.
& X.GT.PDFXMX.AND.PDFWRX(IBEAM,2)) THEN
CALL HWWARN('HWSFUN',2)
WRITE (6,'(2A)') ' WARNING: PDFLIB CALLED WITH X',
& ' OUTSIDE ALLOWED RANGE!'
WRITE (6,'(1P,3(A,E9.3))') ' X VALUE=',X,
& ', MINIMUM=',PDFXMN,', MAXIMUM=',PDFXMX
WRITE (6,'(A)') ' NO FURTHER WARNINGS WILL BE ISSUED'
IF (X.LT.PDFXMN) PDFWRX(IBEAM,1)=.FALSE.
IF (X.GT.PDFXMX) PDFWRX(IBEAM,2)=.FALSE.
ENDIF
IF (QSCA**2.LT.PDFQMN.AND.PDFWRQ(IBEAM,1) .OR.
& QSCA**2.GT.PDFQMX.AND.PDFWRQ(IBEAM,2)) THEN
CALL HWWARN('HWSFUN',3)
WRITE (6,'(2A)') ' WARNING: PDFLIB CALLED WITH Q',
& ' OUTSIDE ALLOWED RANGE!'
WRITE (6,'(1P,3(A,E9.3))') ' Q VALUE=',QSCA,
& ', MINIMUM=',SQRT(PDFQMN),', MAXIMUM=',SQRT(PDFQMX)
WRITE (6,'(A)') ' NO FURTHER WARNINGS WILL BE ISSUED'
IF (QSCA**2.LT.PDFQMN) PDFWRQ(IBEAM,1)=.FALSE.
IF (QSCA**2.GT.PDFQMN) PDFWRQ(IBEAM,2)=.FALSE.
ENDIF
CALL STRUCTM(X,QSCA,UPV,DNV,USEA,DSEA,STR,CHM,BTM,TOP,GLU)
ENDIF
DIST(1)=DSEA
DIST(2)=USEA
DIST(7)=DSEA
DIST(8)=USEA
ELSE
XSP=SNGL(X)
IF ( XSP.LE.ZERO) THEN
CALL HWWARN('HWSFUN',102)
GOTO 999
ENDIF
IF (ONE-XSP.LE.ZERO) THEN
CALL HWWARN('HWSFUN',103)
GOTO 999
ENDIF
Q2=SNGL(SCALEF**2)
W2=Q2*(1-XSP)/XSP
EMC2=SNGL(4*RMASS(4)**2)
EMB2=SNGL(4*RMASS(5)**2)
ALAM2=0.160
NFL=3
IF (Q2.GT.50.) NFL=4
IF (Q2.GT.500.) NFL=5
STR=HWSDGQ(XSP,Q2,NFL,1)
CHM=HWSDGQ(XSP,Q2,NFL,2)
GLU=HWSDGG(XSP,Q2,NFL)
DIST(1)=STR
DIST(2)=CHM
DIST(7)=STR
DIST(8)=CHM
IF (W2.GT.EMB2) THEN
BTM=STR
IF (W2*ALAM2.LT.Q2*EMB2)
& BTM=BTM*LOG(W2/EMB2)/LOG(Q2/ALAM2)
ELSE
BTM=0.
ENDIF
IF (W2.GT.EMC2) THEN
IF (W2*ALAM2.LT.Q2*EMC2)
& CHM=CHM*LOG(W2/EMC2)/LOG(Q2/ALAM2)
ELSE
CHM=0.
ENDIF
TOP=0.
ENDIF
C---INCLUDE SUPPRESSION FROM PHOTON VIRTUALITY IF NECESSARY
IF (PHOMAS.GT.ZERO.AND.(IBEAM.EQ.1.OR.IBEAM.EQ.2)) THEN
IHAD=IBEAM
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
IF (IDHW(IHAD).EQ.59) THEN
FAC=LOG((QSCA**2+PHOMAS**2)/(PHEP(5,IHAD)**2+PHOMAS**2))/
$ LOG((QSCA**2+PHOMAS**2)/( PHOMAS**2))
IF (FAC.LT.ZERO) FAC=ZERO
DIST(1)=DIST(1)*FAC
DIST(2)=DIST(2)*FAC
DIST(7)=DIST(7)*FAC
DIST(8)=DIST(8)*FAC
STR=STR*FAC
CHM=CHM*FAC
BTM=BTM*FAC
TOP=TOP*FAC
GLU=GLU*FAC**2
ELSE
CALL HWWARN('HWSFUN',1)
ENDIF
ENDIF
GOTO 900
ENDIF
IF (MPDF.GE.0) THEN
C---USE PDFLIB NUCLEON STRUCTURE FUNCTIONS
PARM(1)=AUTPDF(IBEAM)
VAL(1)=FLOAT(MPDF)
IF(PARM(1).NE.PARMSAVE.OR.VAL(1).NE.VALSAVE)THEN
PARMSAVE=PARM(1)
VALSAVE=VAL(1)
CALL PDFSET_HERWIG(PARM,VAL)
ENDIF
IF (X.LT.PDFXMN.AND.PDFWRX(IBEAM,1) .OR.
& X.GT.PDFXMX.AND.PDFWRX(IBEAM,2)) THEN
CALL HWWARN('HWSFUN',4)
WRITE (6,'(2A)') ' WARNING: PDFLIB CALLED WITH X',
& ' OUTSIDE ALLOWED RANGE!'
WRITE (6,'(1P,3(A,E9.3))') ' X VALUE=',X,
& ', MINIMUM=',PDFXMN,', MAXIMUM=',PDFXMX
WRITE (6,'(A)') ' NO FURTHER WARNINGS WILL BE ISSUED'
IF (X.LT.PDFXMN) PDFWRX(IBEAM,1)=.FALSE.
IF (X.GT.PDFXMX) PDFWRX(IBEAM,2)=.FALSE.
ENDIF
IF (QSCA**2.LT.PDFQMN.AND.PDFWRQ(IBEAM,1) .OR.
& QSCA**2.GT.PDFQMX.AND.PDFWRQ(IBEAM,2)) THEN
CALL HWWARN('HWSFUN',5)
WRITE (6,'(2A)') ' WARNING: PDFLIB CALLED WITH Q',
& ' OUTSIDE ALLOWED RANGE!'
WRITE (6,'(1P,3(A,E9.3))') ' Q VALUE=',QSCA,
& ', MINIMUM=',SQRT(PDFQMN),', MAXIMUM=',SQRT(PDFQMX)
WRITE (6,'(A)') ' NO FURTHER WARNINGS WILL BE ISSUED'
IF (QSCA**2.LT.PDFQMN) PDFWRQ(IBEAM,1)=.FALSE.
IF (QSCA**2.GT.PDFQMN) PDFWRQ(IBEAM,2)=.FALSE.
ENDIF
CALL STRUCTM(X,QSCA,UPV,DNV,USEA,DSEA,STR,CHM,BTM,TOP,GLU)
C--new MRST98 LO PDF's
ELSEIF(NSET.GE.6.AND.NSET.LE.8) THEN
CALL HWSMRS(X,SCALEF,NSET-5,UPV,DNV,USEA,DSEA,STR,CHM,BTM,GLU)
TOP=ZERO
ELSE
IF (NSET.LT.1.OR.NSET.GT.5) CALL HWWARN('HWSFUN',400)
IF (QSCA.LT.Q0(NSET)) QSCA=Q0(NSET)
IF (QSCA.NE.QOLD.OR.IDHAD.NE.IOLD.OR.NSET.NE.NOLD) THEN
C---INITIALIZE
QOLD=QSCA
IOLD=IDHAD
NOLD=NSET
SS=LOG(QSCA/QL(NSET))
SMIN=LOG(Q0(NSET)/QL(NSET))
IF (NSET.LT.3.OR.NSET.EQ.5) THEN
S=LOG(SS/SMIN)
ELSE
T=2.*SS
TMIN=2.*SMIN
TMAX=2.*LOG(1.E4/QL(NSET))
ENDIF
IF (IDHAD.GE.72) THEN
IF (NSET.LT.3) THEN
IP=NSET
DO 10 I=1,5
DO 10 J=1,6
10 A(J,I)=B(1,J,I,IP)+S*(B(2,J,I,IP)+S*B(3,J,I,IP))
DO 20 K=1,2
AA=ONE+A(2,K)+A(3,K)
20 G(K)=HWSGAM(AA)/((ONE+A(2,K)*A(4,K)/AA)*HWSGAM(A(2,K))
& *HWSGAM(ONE+A(3,K)))
ELSEIF (NSET.EQ.5) THEN
DO 21 I=1,5
DO 21 J=1,6
21 A(J,I)=BB(1,J,I)+S*(BB(2,J,I)+S*(BB(3,J,I)+S*BB(4,J,I)))
DO 22 K=1,2
AA=ONE+A(2,K)+A(3,K)
22 G(K)=HWSGAM(AA)/((ONE+A(2,K)/AA*(A(4,K)+
& (ONE+A(2,K))/(ONE+AA)*A(5,K)))*HWSGAM(A(2,K))
& *HWSGAM(ONE+A(3,K)))
ELSE
IP=NSET-2
VT=MAX(-ONE,MIN(ONE,(2.*T-TMAX-TMIN)/(TMAX-TMIN)))
WT=VT*VT
C...CHEBYSHEV POLYNOMIALS FOR T EXPANSION
TT(1)=1.
TT(2)=VT
TT(3)= 2.*WT- 1.
TT(4)= (4.*WT- 3.)*VT
TT(5)= (8.*WT- 8.)*WT+1.
TT(6)=((16.*WT-20.)*WT+5.)*VT
ENDIF
ELSEIF (NSET.LT.3) THEN
IP=NSET+2
DO 30 I=1,5
DO 30 J=1,6
30 A(J,I)=B(1,J,I,IP)+S*(B(2,J,I,IP)+S*B(3,J,I,IP))
AA=ONE+A(2,1)+A(3,1)
G(1)=HWSGAM(AA)/(HWSGAM(A(2,1))*HWSGAM(ONE+A(3,1)))
G(2)=0.
ENDIF
ENDIF
C
IF (NSET.LT.3.OR.NSET.EQ.5) THEN
DO 50 I=1,5
50 F(I)=A(1,I)*X**A(2,I)*XMWN**A(3,I)*(ONE+X*
& (A(4,I)+X*(A(5,I) + X*A(6,I))))
F(1)=F(1)*G(1)
F(2)=F(2)*G(2)
UPV=F(1)-F(2)
DNV=F(2)
SEA=F(3)/6.
STR=SEA
CHM=F(4)
BTM=ZERO
TOP=ZERO
GLU=F(5)
ELSE
IF (X.NE.XOLD) THEN
XOLD=X
IF (X.GT.0.1) THEN
NX=1
VX=(2.*X-1.1)/0.9
ELSE
NX=2
VX=MAX(-ONE,(2.*LOG(X)+11.51293)/6.90776)
ENDIF
WX=VX*VX
TX(1)=1.
TX(2)=VX
TX(3)= 2.*WX- 1.
TX(4)= (4.*WX- 3.)*VX
TX(5)= (8.*WX- 8.)*WX+1.
TX(6)=((16.*WX-20.)*WX+5.)*VX
ENDIF
C...CALCULATE STRUCTURE FUNCTIONS
DO 120 IFL=1,6
XQSUM=0.
DO 110 IT=1,6
DO 110 IX=1,6
110 XQSUM=XQSUM+CEHLQ(IX,IT,NX,IFL,IP)*TX(IX)*TT(IT)
120 XQ(IFL)=XQSUM*XMWN**NEHLQ(IFL,IP)
UPV=XQ(1)
DNV=XQ(2)
STR=XQ(5)
CHM=XQ(6)
SEA=XQ(3)
GLU=XQ(4)
C...SPECIAL EXPANSION FOR BOTTOM (THRESHOLD EFFECTS)
IF (NFLAV.LT.5.OR.T.LE.TBMIN(IP)) THEN
BTM=0.
ELSE
VT=MAX(-ONE,MIN(ONE,(2.*T-TMAX-TBMIN(IP))/(TMAX-TBMIN(IP))))
WT=VT*VT
TB(1)=1.
TB(2)=VT
TB(3)= 2.*WT- 1.
TB(4)= (4.*WT- 3.)*VT
TB(5)= (8.*WT- 8.)*WT+1.
TB(6)=((16.*WT-20.)*WT+5.)*VT
XQSUM=0.
DO 130 IT=1,6
DO 130 IX=1,6
130 XQSUM=XQSUM+CEHLQ(IX,IT,NX,7,IP)*TX(IX)*TB(IT)
BTM=XQSUM*XMWN**NEHLQ(7,IP)
ENDIF
C...SPECIAL EXPANSION FOR TOP (THRESHOLD EFFECTS)
TPMIN=TTMIN(IP)+TMTOP
C---TMTOP=2.*LOG(TOPMAS/30.)
TPMAX=TMAX+TMTOP
IF (NFLAV.LT.6.OR.T.LE.TPMIN) THEN
TOP=0.
ELSE
VT=MAX(-ONE,MIN(ONE,(2.*T-TPMAX-TPMIN)/(TPMAX-TPMIN)))
WT=VT*VT
TB(1)=1.
TB(2)=VT
TB(3)= 2.*WT- 1.
TB(4)= (4.*WT- 3.)*VT
TB(5)= (8.*WT- 8.)*WT+1.
TB(6)=((16.*WT-20.)*WT+5.)*VT
XQSUM=0.
DO 150 IT=1,6
DO 150 IX=1,6
150 XQSUM=XQSUM+CEHLQ(IX,IT,NX,8,IP)*TX(IX)*TB(IT)
TOP=XQSUM*XMWN**NEHLQ(8,IP)
ENDIF
ENDIF
ENDIF
IF (MPDF.LT.0.AND.NSET.LE.5) THEN
USEA=SEA
DSEA=USEA
ENDIF
IF(MPDF.LT.0.AND.NSET.GT.2.AND.(IDHAD.EQ.38.OR.IDHAD.EQ.30)) THEN
WRITE(6,*) ' THIS SET OF PDFS DOES NOT SUPPORT PIONS'
WRITE(6,*) 'EITHER USE SET NSTRU=1,2 OR A PION SET FROM PDFLIB'
STOP
ENDIF
IF (IDHAD.EQ.73.OR.IDHAD.EQ.72) THEN
DIST(1)=DSEA+DNV
DIST(2)=USEA+UPV
DIST(7)=DSEA
DIST(8)=USEA
ELSEIF (IDHAD.EQ.91) THEN
DIST(1)=DSEA
DIST(2)=USEA
DIST(7)=DSEA+DNV
DIST(8)=USEA+UPV
ELSEIF (IDHAD.EQ.75) THEN
DIST(1)=USEA+UPV
DIST(2)=DSEA+DNV
DIST(7)=USEA
DIST(8)=DSEA
ELSEIF (IDHAD.EQ.93) THEN
DIST(1)=USEA
DIST(2)=DSEA
DIST(7)=USEA+UPV
DIST(8)=DSEA+DNV
ELSEIF (IDHAD.EQ.38) THEN
DIST(1)=USEA
DIST(2)=USEA+UPV
DIST(7)=USEA+UPV
DIST(8)=USEA
ELSEIF (IDHAD.EQ.30) THEN
DIST(1)=USEA+UPV
DIST(2)=USEA
DIST(7)=USEA
DIST(8)=USEA+UPV
ELSE
PRINT *,' CALLED HWSFUN FOR IDHAD =',IDHAD
CALL HWWARN('HWSFUN',401)
ENDIF
900 DIST(3)=STR
DIST(4)=CHM
DIST(5)=BTM
DIST(6)=TOP
DIST(9)=STR
DIST(10)=CHM
DIST(11)=BTM
DIST(12)=TOP
DIST(13)=GLU
DO 901 I=1,13
IF (DIST(I).LT.DMIN) DIST(I)=DMIN
901 CONTINUE
C---FOR REMNANT NUCLEONS SWITCH OFF VALENCE QUARKS,
C WHILE MAINTAINING MOMENTUM SUM RULE
IF (IDHAD.EQ.72) THEN
TOTAL=0
DO 910 I=1,13
TOTAL=TOTAL+DIST(I)
910 CONTINUE
DIST(1)=DIST(1)-DNV
DIST(2)=DIST(2)-UPV
IF (TOTAL.GT.DNV+UPV) THEN
DO 920 I=1,13
DIST(I)=DIST(I)*TOTAL/(TOTAL-DNV-UPV)
920 CONTINUE
ENDIF
ENDIF
C---IF X HAS BEEN FROZEN USE A POWER LAW
IF (XIN.LT.PDFX0) THEN
PDFFAC=(XIN/PDFX0)**PDFPOW
DO 930 I=1,13
DIST(I)=DIST(I)*PDFFAC
930 CONTINUE
ENDIF
999 RETURN
END
CDECK ID>, HWSGAM.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWSGAM(ZINPUT)
C-----------------------------------------------------------------------
C Gamma function computed by eq. 6.1.40, Abramowitz.
C B(M) = B2m/(2m *(2m-1)) where B2m is the 2m'th Bernoulli number.
C HLNTPI = .5*LOG(2.*PI)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWSGAM,ZINPUT,B(10),HLNTPI,Z,SHIFT,G,T,RECZSQ
INTEGER I
SAVE B,HLNTPI
DATA B/
1 0.83333333333333333333D-01, -0.27777777777777777778D-02,
1 0.79365079365079365079D-03, -0.59523809523809523810D-03,
1 0.84175084175084175084D-03, -0.19175269175269175269D-02,
1 0.64102564102564102564D-02, -0.29550653594771241830D-01,
1 0.17964437236883057316D0 , -1.3924322169059011164D0 /
DATA HLNTPI/0.91893853320467274178D0/
C
C Shift argument to large value ( > 20 )
C
Z=ZINPUT
SHIFT=1.
10 IF (Z.LT.20.D0) THEN
SHIFT = SHIFT*Z
Z = Z + 1.D0
GOTO 10
ENDIF
C
C Compute asymptotic formula
C
G = (Z-.5D0)*LOG(Z) - Z + HLNTPI
T = 1.D0/Z
RECZSQ = T**2
DO 20 I = 1,10
G = G + B(I)*T
T = T*RECZSQ
20 CONTINUE
HWSGAM = EXP(G)/SHIFT
END
CDECK ID>, HWSGEN.
*CMZ :- -26/04/91 14.55.45 by Federico Carminati
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWSGEN(GENEX)
C-----------------------------------------------------------------------
C GENERATES X VALUES (IF GENEX)
C EVALUATES STRUCTURE FUNCTIONS AND ENFORCES CUTOFFS ON X
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWRUNI,X,QL
INTEGER I,J
LOGICAL GENEX
EXTERNAL HWBVMC,HWRUNI
IF (GENEX) THEN
XX(1)=EXP(HWRUNI(0,ZERO,XLMIN))
XX(2)=XXMIN/XX(1)
ENDIF
DO 10 I=1,2
J=I
IF (JDAHEP(1,I).NE.0) J=JDAHEP(1,I)
X=XX(I)
QL=(1.-X)*EMSCA
CALL HWSFUN(X,EMSCA,IDHW(J),NSTRU,DISF(1,I),I)
DO 10 J=1,13
IF (QL.LT.HWBVMC(J)) DISF(J,I)=0.
10 CONTINUE
END
CDECK ID>, HWSGQQ.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWSGQQ(QSCA)
C-----------------------------------------------------------------------
C CORRECTION TO GLUON STRUCTURE FUNCTION FOR BACKWARD EVOLUTION:
C G->Q-QBAR PART OF FORM FACTOR
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWSGQQ,HWUALF,QSCA,GG
EXTERNAL HWUALF
GG=HWUALF(1,QSCA)**(-ONE/BETAF)
IF (GG.LT.ONE) GG=ONE
IF (QSCA.GT.RMASS(6)) THEN
HWSGQQ=GG**6
ELSEIF (QSCA.GT.RMASS(5)) THEN
HWSGQQ=GG**5
ELSEIF (QSCA.GT.RMASS(4)) THEN
HWSGQQ=GG**4
ELSE
HWSGQQ=GG**3
ENDIF
END
CDECK ID>, HWSMRS.
*CMZ :- -26/04/01 10.00.16 by Peter Richardson
*-- Author : Dick Roberts, modified by Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWSMRS(X,Q,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU)
C-----------------------------------------------------------------------
C MRST98 Leading order PDF's central and higher gluon + average
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION X,Q,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU,XMIN,XMAX,
& QSQMIN,QSQMAX,Q2,QQ(NQMRS),XXMRS(NXMRS),G(NPMRS),N0(NPMRS),
& XSAVE,Q2SAVE,XXX,A,B,FAC
INTEGER MODE,INIT,NTENTH,N,M,I,J,K,ML,WARN(2)
PARAMETER(NTENTH=23)
SAVE INIT,WARN,XMIN,XMAX,QSQMIN,QSQMAX,XXMRS,QQ,N0
DATA XMIN,XMAX,QSQMIN,QSQMAX/1D-5,1D0,1.25D0,1D7/
DATA XXMRS/1d-5,2d-5,4d-5,6d-5,8d-5,
& 1d-4,2d-4,4d-4,6d-4,8d-4,
& 1d-3,2d-3,4d-3,6d-3,8d-3,
& 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
& .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
& .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
& .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
& .8d0,.9d0,1d0/
DATA QQ/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
& 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
& 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
& 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
& 1.8d6,3.2d6,5.6d6,1d7/
DATA N0/3,4,5,9,9,9,9,9/
DATA INIT,WARN/0,0,0/
Q2=Q*Q
C--issue warning if x or q out of range
IF((Q2.LT.QSQMIN.OR.Q2.GT.QSQMAX).AND.WARN(1).EQ.0) THEN
CALL HWWARN('HWSMRS',5)
WRITE (6,'(2A)') ' WARNING: MRST98 CALLED WITH Q',
& ' OUTSIDE ALLOWED RANGE!'
WRITE (6,'(1P,3(A,E9.3))') ' Q VALUE=',Q,
& ', MINIMUM=',SQRT(QSQMIN),', MAXIMUM=',SQRT(QSQMAX)
WRITE (6,'(A)') ' NO FURTHER WARNINGS WILL BE ISSUED'
WARN(1) = 1
ENDIF
IF((X.LT.XMIN.OR.X.GT.XMAX).AND.WARN(2).EQ.0) THEN
CALL HWWARN('HWSMRS',4)
WRITE (6,'(2A)') ' WARNING: MRST98 CALLED WITH X',
& ' OUTSIDE ALLOWED RANGE!'
WRITE (6,'(1P,3(A,E9.3))') ' X VALUE=',X,
& ', MINIMUM=',XMIN,', MAXIMUM=',XMAX
WRITE (6,'(A)') ' NO FURTHER WARNINGS WILL BE ISSUED'
WARN(2) = 1
ENDIF
C--now the evaluation
XSAVE = X
Q2SAVE = Q2
C--first the initialisation
IF(INIT.NE.0) GOTO 10
DO 15 ML=3,1,-1
DO 20 N=1,NXMRS-1
DO 20 M=1,NQMRS
DO 20 I=1,NPMRS
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
IF(ML.LE.2) THEN
FMRS(ML,I,N,M) = FMRS(ML,I,N,M)/(1.0D0-XXMRS(N))**N0(I)
ELSE
FMRS(ML,I,N,M) = 0.5D0*(FMRS(1,I,N,M)+FMRS(2,I,N,M))/
& (1.0D0-XXMRS(N))**N0(I)
ENDIF
20 CONTINUE
DO 31 J=1,NTENTH-1
DO 31 I=1,8
IF(I.EQ.5.OR.I.EQ.7) GOTO 31
DO 30 K=1,NQMRS
30 FMRS(ML,I,J,K)=DLOG10(FMRS(ML,I,J,K)/FMRS(ML,I,NTENTH,K))
& +FMRS(ML,I,NTENTH,K)
31 CONTINUE
DO 40 I=1,NPMRS
DO 40 M=1,NQMRS
40 FMRS(ML,I,NXMRS,M)=0.0D0
15 CONTINUE
DO 32 J=1,NTENTH-1
32 XXMRS(J)=DLOG10(XXMRS(J)/XXMRS(NTENTH))+XXMRS(NTENTH)
INIT=1
10 CONTINUE
C--check x and q within range of set
IF(X.LT.XMIN) X=XMIN
IF(X.GT.XMAX) X=XMAX
IF(Q2.LT.QSQMIN) Q2=QSQMIN
IF(Q2.GT.QSQMAX) Q2=QSQMAX
C--find X and Q
XXX=X
IF(X.LT.XXMRS(NTENTH)) XXX=DLOG10(X/XXMRS(NTENTH))+XXMRS(NTENTH)
N = 0
70 N=N+1
IF(XXX.GT.XXMRS(N+1)) GOTO 70
A=(XXX-XXMRS(N))/(XXMRS(N+1)-XXMRS(N))
M=0
80 M=M+1
IF(Q2.GT.QQ(M+1)) GOTO 80
B=(Q2-QQ(M))/(QQ(M+1)-QQ(M))
DO 60 I=1,NPMRS
G(I)= (1.0D0-A)*(1.0D0-B)*FMRS(MODE,I,N ,M )
& +(1.0D0-A)* B *FMRS(MODE,I,N ,M+1)
& + A *(1.0D0-B)*FMRS(MODE,I,N+1,M )
& + A * B *FMRS(MODE,I,N+1,M+1)
IF(N.GE.NTENTH) GOTO 65
IF(I.EQ.5.OR.I.EQ.7) GOTO 65
FAC = (1.0D0-B)*FMRS(MODE,I,NTENTH,M)+B*FMRS(MODE,I,NTENTH,M+1)
G(I) = FAC*10.0d0**(G(I)-FAC)
65 continue
G(I)=G(I)*(1.0d0-X)**N0(I)
60 continue
UPV = G(1)
DNV = G(2)
USEA = G(4)
DSEA = G(8)
STR = G(6)
CHM = G(5)
GLU = G(3)
BOT = G(7)
X = XSAVE
Q2 = Q2SAVE
END
CDECK ID>, HWSSPC.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWSSPC
C-----------------------------------------------------------------------
C REPLACES SPACELIKE PARTONS BY SPECTATORS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUSQR,EMSQ,EMTR,EPAR,XPAR,QSQ,PCL(5)
INTEGER KHEP,IP,JP,IDH,IDP,ISP,IDSPC,JHEP
EXTERNAL HWUSQR
IF (IERROR.NE.0) RETURN
DO 50 KHEP=1,NHEP
IF (ISTHEP(KHEP).EQ.145.OR.ISTHEP(KHEP).EQ.146) THEN
IP=ISTHEP(KHEP)-144
JP=IP
IF (JDAHEP(1,IP).NE.0) JP=JDAHEP(1,IP)
IDH=IDHW(JP)
IDP=IDHW(KHEP)
IF (IDH.NE.IDP) THEN
IF (IDH.EQ.59) THEN
C---PHOTON CASE
IF (IDP.LT.7) THEN
IDSPC=IDP+6
ELSEIF (IDP.LT.13) THEN
IDSPC=IDP-6
ELSE
CALL HWWARN('HWSSPC',100)
GOTO 999
ENDIF
C---IDENTIFY SPECTATOR
C (1) QUARK CASE
ELSEIF (IDP.LE.3) THEN
DO 10 ISP=1,12
10 IF (IDH.EQ.NCLDK(LOCN(IDP,ISP))) GOTO 20
CALL HWWARN('HWSSPC',101)
GOTO 999
20 IF (ISP.LE.3) THEN
IDSPC=ISP+6
ELSEIF (ISP.LE.9) THEN
IDSPC=ISP+105
ELSE
IDSPC=ISP
ENDIF
C---(2) ANTIQUARK CASE
ELSEIF (IDP.GT.6.AND.IDP.LE.9) THEN
IDP=IDP-6
DO 30 ISP=1,12
30 IF (IDH.EQ.NCLDK(LOCN(ISP,IDP))) GOTO 40
CALL HWWARN('HWSSPC',103)
GOTO 999
40 IF (ISP.LE.3) THEN
IDSPC=ISP
ELSEIF (ISP.LE.9) THEN
IDSPC=ISP+111
ELSE
IDSPC=ISP-6
ENDIF
C---SPECIAL CASE FOR REMNANT HADRON
ELSEIF (IDH.EQ.71.OR.IDH.EQ.72) THEN
IF (IDP.EQ.13) THEN
IDSPC=IDP
ELSE
CALL HWWARN('HWSSPC',106)
GOTO 999
ENDIF
ELSE
CALL HWWARN('HWSSPC',105)
GOTO 999
ENDIF
C---REPLACE PARTON BY SPECTATOR
IDHW(KHEP)=IDSPC
IDHEP(KHEP)=IDPDG(IDSPC)
ISTHEP(KHEP)=146+IP
EMSQ=SIGN(PHEP(5,KHEP)**2,PHEP(5,KHEP))
EMTR=EMSQ+PHEP(1,KHEP)**2+PHEP(2,KHEP)**2
EPAR=PHEP(4,KHEP)
CALL HWVDIF(4,PHEP(1,JP),PHEP(1,KHEP),PHEP(1,KHEP))
IF (EPAR**2.LT.10000.*ABS(EMTR)) THEN
CALL HWUMAS(PHEP(1,KHEP))
ELSE
C---COMPUTE SPECTATOR MASS ELIMINATING ROUNDING ERRORS
XPAR=EPAR/PHEP(4,JP)
QSQ=SIGN(PHEP(5,JP)**2,PHEP(5,JP))
PHEP(5,KHEP)=HWUSQR((1.-XPAR)*QSQ+EMSQ-EMTR/XPAR
& -((QSQ*XPAR**2-EMTR)/(2*EPAR*XPAR**2))**2*XPAR)
ENDIF
C---CHECK FOR UNPHYSICAL SPECTATOR
IF (PHEP(4,KHEP).LT.ZERO) FROST=.TRUE.
C---FIND MASS OF CORRESPONDING CLUSTER, IF PARTNER IS IN THE SAME JET
IF (QORQQB(IDHW(KHEP))) THEN
JHEP=JMOHEP(2,KHEP)
ELSEIF (QBORQQ(IDHW(KHEP))) THEN
JHEP=JDAHEP(2,KHEP)
ELSE
JHEP=0
ENDIF
IF (JHEP.GT.0) THEN
CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,JHEP),PCL)
CALL HWUMAS(PCL)
C---IF IT IS NEGATIVE, REJECT
IF (PCL(5).LT.ZERO) FROST=.TRUE.
ENDIF
ENDIF
ENDIF
50 CONTINUE
999 RETURN
END
CDECK ID>, HWSSUD.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWSSUD(I)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWSSUD,HWSGQQ,DMIN,QSCA,XLAST,DIST(13)
INTEGER I,N0,IS,ID
EXTERNAL HWSGQQ
COMMON/HWTABC/XLAST,N0,IS,ID
SAVE DMIN
DATA DMIN/1.D-15/
QSCA=QEV(N0+I,IS)
CALL HWSFUN(XLAST,QSCA,IDHW(INHAD),NSTRU,DIST,JNHAD)
IF (ID.EQ.13) DIST(ID)=DIST(ID)*HWSGQQ(QSCA)
IF (DIST(ID).LT.DMIN) DIST(ID)=DMIN
HWSSUD=SUD(N0+I,IS)/DIST(ID)
END
CDECK ID>, HWSTAB.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWSTAB(F,AFUN,NN,X,MM)
C-----------------------------------------------------------------------
C MODIFIED CERN INTERPOLATION ROUTINE DIVDIF
C LIKE HWUTAB BUT USES FUNCTION AFUN IN PLACE OF ARRAY A
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER NN,MM,MMAX,N,M,MPLUS,IX,IY,MID,NPTS,IP,I,J,L,ISUB
DOUBLE PRECISION HWSTAB,AFUN,SUM,X,F(NN),T(20),D(20)
LOGICAL EXTRA
EXTERNAL AFUN
SAVE MMAX
DATA MMAX/10/
N=NN
M=MIN(MM,MMAX,N-1)
MPLUS=M+1
IX=0
IY=N+1
IF (AFUN(1).GT.AFUN(N)) GOTO 94
91 MID=(IX+IY)/2
IF (X.GE.AFUN(MID)) GOTO 92
IY=MID
GOTO 93
92 IX=MID
93 IF (IY-IX.GT.1) GOTO 91
GOTO 97
94 MID=(IX+IY)/2
IF (X.LE.AFUN(MID)) GOTO 95
IY=MID
GOTO 96
95 IX=MID
96 IF (IY-IX.GT.1) GOTO 94
97 NPTS=M+2-MOD(M,2)
IP=0
L=0
GOTO 99
98 L=-L
IF (L.GE.0) L=L+1
99 ISUB=IX+L
IF ((1.LE.ISUB).AND.(ISUB.LE.N)) GOTO 100
NPTS=MPLUS
GOTO 101
100 IP=IP+1
T(IP)=AFUN(ISUB)
D(IP)=F(ISUB)
101 IF (IP.LT.NPTS) GOTO 98
EXTRA=NPTS.NE.MPLUS
DO 14 L=1,M
IF (.NOT.EXTRA) GOTO 12
ISUB=MPLUS-L
D(M+2)=(D(M+2)-D(M))/(T(M+2)-T(ISUB))
12 I=MPLUS
DO 13 J=L,M
ISUB=I-L
D(I)=(D(I)-D(I-1))/(T(I)-T(ISUB))
I=I-1
13 CONTINUE
14 CONTINUE
SUM=D(MPLUS)
IF (EXTRA) SUM=0.5*(SUM+D(M+2))
J=M
DO 15 L=1,M
SUM=D(J)+(X-T(J))*SUM
J=J-1
15 CONTINUE
HWSTAB=SUM
END
CDECK ID>, HWSVAL.
*CMZ :- -26/04/91 10.18.58 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWSVAL(ID)
C-----------------------------------------------------------------------
C TRUE FOR VALENCE PARTON ID IN INCOMING HADRON INHAD
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ID,IDHAD
LOGICAL HWSVAL
HWSVAL=.FALSE.
IDHAD=IDHW(INHAD)
IF (IDHAD.EQ.73.OR.IDHAD.EQ.75) THEN
IF (ID.EQ.1.OR.ID.EQ.2) HWSVAL=.TRUE.
ELSEIF (IDHAD.EQ.91.OR.IDHAD.EQ.93) THEN
IF (ID.EQ.7.OR.ID.EQ.8) HWSVAL=.TRUE.
ELSEIF (IDHAD.EQ.30) THEN
IF (ID.EQ.1.OR.ID.EQ.8) HWSVAL=.TRUE.
ELSEIF (IDHAD.EQ.38) THEN
IF (ID.EQ.2.OR.ID.EQ.7) HWSVAL=.TRUE.
ELSEIF (IDHAD.EQ.59) THEN
IF (ID.LT.6.OR.(ID.GT.6.AND.ID.LT.12)) HWSVAL=.TRUE.
ELSEIF (IDHAD.EQ.71.OR.IDHAD.EQ.72) THEN
IF (ID.EQ.13) HWSVAL=.TRUE.
ELSE
CALL HWWARN('HWSVAL',100)
ENDIF
END
CDECK ID>, HWUAEM.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWUAEM(Q2)
C-----------------------------------------------------------------------
C Running electromagnetic coupling constant.
C See R. Kleiss et al.: CERN yellow report 89-08, vol.3 p.129
C Hadronic component from: H. Burkhardt et al.: Z. Phys C43 (89) 497
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUAEM,HWUAER,Q2,EPS,A1,B1,C1,A2,B2,C2,A3,B3,C3,
& A4,B4,C4,AEMPI,EEL2,EMU2,ETAU2,ETOP2,REPIGG,X
LOGICAL FIRST
EXTERNAL HWUAER
SAVE FIRST,AEMPI,EEL2,EMU2,ETAU2,ETOP2
PARAMETER (EPS=1.D-6)
SAVE A1,B1,C1,A2,B2,C2,A3,B3,C3,A4,B4,C4
DATA A1,B1,C1/0.0 D0,0.00835D0,1.000D0/
DATA A2,B2,C2/0.0 D0,0.00238D0,3.927D0/
DATA A3,B3,C3/0.00165D0,0.00299D0,1.000D0/
DATA A4,B4,C4/0.00221D0,0.00293D0,1.000D0/
DATA FIRST/.TRUE./
IF (FIRST) THEN
AEMPI=ALPHEM/(THREE*PIFAC)
EEL2 =RMASS(121)**2
EMU2 =RMASS(123)**2
ETAU2=RMASS(125)**2
ETOP2=RMASS(6)**2
FIRST=.FALSE.
ENDIF
IF (ABS(Q2).LT.EPS) THEN
HWUAEM=ALPHEM
RETURN
ENDIF
C Leptonic component
REPIGG=AEMPI*(HWUAER(EEL2/Q2)+HWUAER(EMU2/Q2)+HWUAER(ETAU2/Q2))
C Hadronic component from light quarks
X=ABS(Q2)
IF (X.LT.9.D-2) THEN
REPIGG=REPIGG+A1+B1*LOG(ONE+C1*X)
ELSEIF (X.LT.9.D0) THEN
REPIGG=REPIGG+A2+B2*LOG(ONE+C2*X)
ELSEIF (X.LT.1.D4) THEN
REPIGG=REPIGG+A3+B3*LOG(ONE+C3*X)
ELSE
REPIGG=REPIGG+A4+B4*LOG(ONE+C4*X)
ENDIF
C Top Contribution
REPIGG=REPIGG+AEMPI*HWUAER(ETOP2/Q2)
HWUAEM=ALPHEM/(ONE-REPIGG)
END
CDECK ID>, HWUAER.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWUAER(R)
C-----------------------------------------------------------------------
C Real part of photon self-energy: Pi_{gg}(R=M^2/Q^2)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWUAER,R,ZERO,ONE,TWO,FOUR,FVTHR,THIRD,RMAX,BETA
PARAMETER (ZERO=0.D0, ONE=1.D0, TWO=2.D0, FOUR=4.D0,
& FVTHR=1.666666666666667D0, THIRD=.3333333333333333D0)
PARAMETER (RMAX=1.D6)
IF (ABS(R).LT.1.D-3) THEN
C Use assymptotic formula
HWUAER=-FVTHR-LOG(ABS(R))
ELSEIF (ABS(R).GT.RMAX) THEN
HWUAER=ZERO
ELSEIF (FOUR*R.GT.ONE) THEN
BETA=SQRT(FOUR*R-ONE)
HWUAER=THIRD
& -(ONE+TWO*R)*(TWO-BETA*ACOS(ONE-ONE/(TWO*R)))
ELSE
BETA=SQRT(ONE-FOUR*R)
HWUAER=THIRD
& -(ONE+TWO*R)*(TWO+BETA*LOG(ABS((BETA-ONE)/(BETA+ONE))))
ENDIF
END
CDECK ID>, HWUALF.
*CMZ :- -15/07/92 14.08.45 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWUALF(IOPT,SCALE)
C-----------------------------------------------------------------------
C STRONG COUPLING CONSTANT
C IOPT.EQ.0 INITIALIZES
C .EQ.1 TWO-LOOP, FLAVOUR THRESHOLDS
C .EQ.2 RATIO OF ABOVE TO ONE-LOOP
C WITH 5-FLAVOUR BETA, LAMBDA=QCDL3
C .EQ.3 ONE-LOOP WITH 5-FLAVOUR BETA, LAMBDA=QCDL3
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUALF,SCALE,KAFAC,B3,B4,B5,B6,C3,C4,C5,C6,C35,
& C45,C65,D35,RHO,RAT,RLF,DRH,EPS
INTEGER IOPT,ITN
SAVE B3,B4,B5,B6,C3,C4,C5,C6,C35,C45,C65,D35
SAVE EPS
DATA EPS/1.D-6/
IF (IOPT.EQ.0) THEN
C---INITIALIZE CONSTANTS
CAFAC=FLOAT(NCOLO)
CFFAC=FLOAT(NCOLO**2-1)/(2.*CAFAC)
B3=((11.*CAFAC)- 6.)/(12.*PIFAC)
B4=((11.*CAFAC)- 8.)/(12.*PIFAC)
B5=((11.*CAFAC)-10.)/(12.*PIFAC)
B6=((11.*CAFAC)-12.)/(12.*PIFAC)
BETAF=6.*PIFAC*B5
C3=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*3.)/(24.*PIFAC**2)/B3**2
C4=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*4.)/(24.*PIFAC**2)/B4**2
C5=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*5.)/(24.*PIFAC**2)/B5**2
C6=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*6.)/(24.*PIFAC**2)/B6**2
KAFAC=CAFAC*(67./18.-PIFAC**2/6.)-25./9.
C---QCDLAM IS 5-FLAVOUR LAMBDA-MS-BAR AT LARGE X OR Z
C---QCDL5 IS 5-FLAVOUR LAMBDA-MC
QCDL5=QCDLAM*EXP(KAFAC/(4.*PIFAC*B5))/SQRT(2.D0)
C---COMPUTE THRESHOLD MATCHING
RHO=2.*LOG(RMASS(6)/QCDL5)
RAT=LOG(RHO)/RHO
C65=(B5/(1.-C5*RAT)-B6/(1.-C6*RAT))*RHO
RHO=2.*LOG(RMASS(5)/QCDL5)
RAT=LOG(RHO)/RHO
C45=(B5/(1.-C5*RAT)-B4/(1.-C4*RAT))*RHO
RHO=2.*LOG(RMASS(4)/QCDL5)
RAT=LOG(RHO)/RHO
C35=(B4/(1.-C4*RAT)-B3/(1.-C3*RAT))*RHO+C45
C---FIND QCDL3
D35=-1./(B3*C35)
DO 10 ITN=1,100
RAT=LOG(D35)/D35
RLF=B3*D35/(1.-C3*RAT)
DRH=B3*(RLF+C35)*D35**2/((1.-2.*C3*RAT+C3/D35)*RLF**2)
D35=D35-DRH
IF (ABS(DRH).LT.EPS*D35) GOTO 20
10 CONTINUE
20 QCDL3=QCDL5*EXP(0.5*D35)
ENDIF
IF (SCALE.LE.QCDL5) THEN
CALL HWWARN('HWUALF',51)
GOTO 999
ENDIF
RHO=2.*LOG(SCALE/QCDL5)
IF (IOPT.EQ.3) THEN
IF (RHO.LE.D35) THEN
CALL HWWARN('HWUALF',52)
GOTO 999
ENDIF
HWUALF=1./(B5*(RHO-D35))
RETURN
ENDIF
RAT=LOG(RHO)/RHO
IF (SCALE.GT.RMASS(6)) THEN
RLF=B6*RHO/(1.-C6*RAT)+C65
ELSEIF (SCALE.GT.RMASS(5)) THEN
RLF=B5*RHO/(1.-C5*RAT)
ELSEIF (SCALE.GT.RMASS(4)) THEN
RLF=B4*RHO/(1.-C4*RAT)+C45
ELSE
RLF=B3*RHO/(1.-C3*RAT)+C35
ENDIF
IF (RLF.LE.ZERO) THEN
CALL HWWARN('HWUALF',53)
GOTO 999
ENDIF
IF (IOPT.EQ.1) THEN
HWUALF=1./RLF
ELSE
HWUALF=B5*(RHO-D35)/RLF
IF (HWUALF.GT.ONE) THEN
CALL HWWARN('HWUALF',54)
GOTO 999
ENDIF
ENDIF
RETURN
999 HWUALF=ZERO
END
CDECK ID>, HWUANT.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWUANT(IPART)
C-----------------------------------------------------------------------
C Returns the antiparticle of IPART; uses HERWIG numbering
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER HWUANT,IPART,IPDG,IANTI,OLDERR
CHARACTER*8 CDUM
OLDERR=IERROR
IPDG=IDPDG(IPART)
IF (IPDG.EQ. 9.OR.IPDG.EQ.21.OR.IPDG.EQ.22.OR.IPDG.EQ.23.OR.
& IPDG.EQ.25.OR.IPDG.EQ.26.OR.IPDG.EQ.32.OR.IPDG.EQ.35.OR.
& IPDG.EQ.36.OR.IPDG.EQ.39.OR.IPDG.EQ.91.OR.IPDG.EQ.98.OR.
& IPDG.EQ.99.OR.IPDG.EQ.130.OR.IPDG.EQ.310.OR.
& IPDG.EQ.1000021.OR.IPDG.EQ.1000022.OR.IPDG.EQ.1000023.OR.
& IPDG.EQ.1000025.OR.IPDG.EQ.1000035.OR.IPDG.EQ.1000039.OR.
& (FLOAT(INT(RSPIN(IPART))).EQ.RSPIN(IPART).AND.
& MOD(IPDG/100,10).EQ.MOD(IPDG/10,10).AND.
& MOD(IPDG/10,10).NE.0)) THEN
C Self-conjugate boson
IANTI=IPART
ELSEIF(IPART.EQ.211.OR.IPART.EQ.212) THEN
C Fourth generation (anti-)quarks
IANTI=IPART+6
ELSEIF(IPART.EQ.217.OR.IPART.EQ.218) THEN
IANTI=IPART-6
ELSE
C Non-zero charge particle
CALL HWUIDT(1,-IPDG,IANTI,CDUM)
ENDIF
IF (IANTI.EQ.20) WRITE(6,10) RNAME(IPART)
10 FORMAT(1X,A8,' has no antiparticle'/)
HWUANT=IANTI
IERROR=OLDERR
END
CDECK ID>, HWUATS.
*CMZ :- -07/07/99 17.42.00 by Kosuke Odagiri
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWUATS
C-----------------------------------------------------------------------
C Replaces all &'s in TXNAME by backslashes
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J,L
CHARACTER*1 Z
Z=CHAR(92)
L=LEN(TXNAME(1,1))
DO 1 I=0,NMXRES
DO 2 J=1,L
IF (TXNAME(1,I)(J:J).EQ.'&') TXNAME(1,I)(J:J)=Z
2 CONTINUE
1 CONTINUE
END
CDECK ID>, HWUBPR.
*CMZ :- -26/04/91 10.18.58 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUBPR
C-----------------------------------------------------------------------
C PRINTS OUT DATA ON PARTON SHOWER
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I,J
IF (PRVTX) THEN
WRITE(6,10) INHAD,XFACT
10 FORMAT(///10X,'DATA ON LAST PARTON SHOWER: INHAD =',I3,
& ' XFACT =',E11.3//' IPAR ID TM DA1 CMO AMO CDA',
& ' ADA P-X P-Y P-Z ENERGY MASS',
& ' V-X V-Y V-Z V-C*T')
DO 20 J=1,NPAR
20 WRITE(6,30) J,RNAME(ABS(IDPAR(J))),TMPAR(J),JDAPAR(1,J),
& (JCOPAR(I,J),I=1,4),(PPAR(I,J),I=1,5),(VPAR(I,J),I=1,4)
30 FORMAT(I5,1X,A8,L2,5I4,F7.2,4F8.2,4E11.4)
ELSE
WRITE(6,40) INHAD,XFACT
40 FORMAT(///10X,'DATA ON LAST PARTON SHOWER: INHAD =',I3,
& ' XFACT =',E11.3//' IPAR ID TM DA1 CMO AMO CDA',
& ' ADA P-X P-Y P-Z ENERGY MASS')
DO 50 J=1,NPAR
50 WRITE(6,60) J,RNAME(ABS(IDPAR(J))),TMPAR(J),JDAPAR(1,J),
& (JCOPAR(I,J),I=1,4),(PPAR(I,J),I=1,5)
60 FORMAT(I5,1X,A8,L2,5I4,F7.2,4F8.2)
ENDIF
END
CDECK ID>, HWUBST.
*CMZ :- -18/10/93 10.21.56 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWUBST(IOPT)
C-----------------------------------------------------------------------
C BOOST THE ENTIRE EVENT RECORD TO (IOPT=1) OR FROM (IOPT=0) ITS
C CENTRE-OF-MASS FRAME, WITH INCOMING HADRONS ON Z-AXIS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION PBOOST(5),RBOOST(3,3)
INTEGER IOPT,IHEP,BOOSTD,IHAD
SAVE BOOSTD,PBOOST,RBOOST
DATA BOOSTD/-1/
IF (IERROR.NE.0) RETURN
IF (IOPT.EQ.1) THEN
C---FIND FIRST INCOMING HADRON
IHAD=1
IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
C---IF WE'RE ALREADY IN THE RIGHT FRAME, DON'T DO ANYTHING
IF (PHEP(1,3)**2+PHEP(2,3)**2+PHEP(3,3)**2.EQ.ZERO .AND.
& PHEP(1,IHAD)**2+PHEP(2,IHAD)**2.EQ.ZERO) RETURN
C---FIND AND APPLY BOOST
CALL HWVEQU(5,PHEP(1,3),PBOOST)
DO 100 IHEP=1,NHEP
CALL HWULOF(PBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULOF(PBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
100 CONTINUE
CALL HWULOF(PBOOST,VTXPIP,VTXPIP)
C---FIND AND APPLY ROTATION TO PUT IT ON Z-AXIS
CALL HWUROT(PHEP(1,IHAD),ONE,ZERO,RBOOST)
DO 110 IHEP=1,NHEP
CALL HWUROF(RBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWUROF(RBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
110 CONTINUE
CALL HWUROF(RBOOST,VTXPIP,VTXPIP)
C---ENSURE THAT WE ONLY EVER UNBOOST THE SAME EVENT THAT WE BOOSTED
C (BEARING IN MIND THAT NWGTS IS UPDATED AFTER GENERATING THE WEIGHT)
BOOSTD=NWGTS+1
ELSEIF (IOPT.EQ.0) THEN
IF (BOOSTD.NE.NWGTS) RETURN
C---UNDO ROTATION AND BOOST
DO 200 IHEP=1,NHEP
CALL HWUROB(RBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWULOB(PBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
CALL HWUROB(RBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
CALL HWULB4(PBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
200 CONTINUE
ENDIF
END
CDECK ID>, HWUCFF.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Bryan Webber and Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWUCFF(I,J,QSQ,CLF)
C-----------------------------------------------------------------------
C Calculates basic coefficients in cross-section formula for
C ffbar --> f'fbar', at virtuality QSQ, I labels initial, J
C labels final fermion; type given as:
C I,J= 1- 6: d,u,s,c,b,t
C =11-16: e,nu_e,mu,nu_mu,tau,nu_tau
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION QSQ,CLF(7),POL1,POL2,QIF,VI,AI,VF,AF,PG,DQM,PMW,
& DEN,XRE,XIM,XSQ,VI2,AI2,VF2,AF2,PG2,PG12,DQM2,PMW2,DEN2,XRE2,
& XIM2,XSQ2,XRE12,XIM12
INTEGER I,J
C Longitudinal Polarisation factors
POL1=1.-EPOLN(3)*PPOLN(3)
POL2=PPOLN(3)-EPOLN(3)
C Standard model couplings
QIF=QFCH(I)*QFCH(J)
VI=VFCH(I,1)
AI=AFCH(I,1)
VF=VFCH(J,1)
AF=AFCH(J,1)
PG=POL1*(VI**2+AI**2)+POL2*2.*VI*AI
C Z propagator factors
DQM=QSQ-RMASS(200)**2
PMW=GAMZ*RMASS(200)
DEN=QSQ/(DQM**2+PMW**2)
XRE=DEN*DQM
XIM=DEN*PMW
XSQ=DEN*QSQ
C Calculate cross-section coefficients
CLF(1)=POL1*QIF**2+XRE*2.*QIF*(POL1*VI+POL2*AI)*VF
& +XSQ*PG*(VF**2+AF**2)
CLF(2)=CLF(1)-2.*XSQ*PG*AF**2
CLF(3)=2.*(XRE*QIF*(POL1*AI+POL2*VI)*AF
& +XSQ*(POL1*2.*VI*AI+POL2*(VI**2+AI**2))*VF*AF)
IF (TPOL) THEN
CLF(4)=QIF**2+XRE*2.*QIF*VI*VF+XSQ*(VI**2-AI**2)*(VF**2+AF**2)
CLF(5)=CLF(4)-2.*XSQ*(VI**2-AI**2)*AF**2
CLF(6)=XIM*2.*QIF*AI*VF
CLF(7)=CLF(6)
ENDIF
IF (ZPRIME) THEN
C Z' couplings:
VI2=VFCH(I,2)
AI2=AFCH(I,2)
VF2=VFCH(J,2)
AF2=AFCH(J,2)
PG2=POL1*(VI2**2+AI2**2)+POL2*2.*VI2*AI2
PG12=POL1*(VI*VI2+AI*AI2)+POL2*(VI*AI2+AI+VI2)
C Z' propagator factors
DQM2=QSQ-RMASS(202)**2
PMW2=RMASS(202)*GAMZP
DEN2=QSQ/(DQM2**2+PMW2**2)
XRE2=DEN2*DQM2
XIM2=DEN2*PMW2
XSQ2=DEN2*QSQ
XRE12=DEN*DEN2*(DQM*DQM2+PMW*PMW2)
XIM12=DEN*DEN2*(DQM*PMW2-DQM2*PMW)
C Additional contributions to cross-section coefficients
CLF(1)=CLF(1)+XRE2*2.*QIF*(POL1*VI2+POL2*AI2)*VF2
& +XSQ2*PG2*(VF2**2+AF2**2)+XRE12*2.*PG12*(VF*VF2+AF*AF2)
CLF(2)=CLF(1)-2.*(XSQ2*PG2*AF2**2+XRE12*2.*PG12*AF*AF2)
CLF(3)=CLF(3)+2.*(XRE2*QIF*(POL1*AI2+POL2*VI2)*AF2
& +XSQ2*(POL1*2.*VI2*AI2+POL2*(VI2**2+AI2**2))*VF2*AF2
& +XRE12*(POL1*(VI*AI2+AI*VI2)+POL1*(VI*VI2+AI*AI2))
& *(VF*VF2+AF*AF2))
IF (TPOL) THEN
CLF(4)=CLF(4)+XRE2*2.*QIF*VI2*VF2
& +XSQ2*(VI2**2-AI2**2)*(VF2**2+AF2**2)
& +XRE12*2.*(VI*VI2-AI*AI2)*(VF*VF2+AF*AF2)
CLF(5)=CLF(4)-2*(XSQ2*(VI2**2-AI2**2)*AF2**2
& +XRE12*2.*(VI*VI2-AI*AI2)*AF*AF2)
CLF(6)=CLF(6)+2.*(XIM2*QIF*AI2*VF2
& -XIM12*(VI*AI2-AI*VI2)*(VF*VF2+AF*AF2))
CLF(7)=CLF(6)+4.*XIM12*(VI*AI2-AI*AI2)*AF*AF2
ENDIF
ENDIF
END
CDECK ID>, HWUCI2.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWUCI2(A,B,Y0)
C-----------------------------------------------------------------------
C Integral LOG(A-EPSI-BY(1-Y))/(Y-Y0)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWUCI2,HWULI2,EPSI,Y1,Y2,Z1,Z2,Z3,Z4
DOUBLE PRECISION A,B,Y0,ZERO,ONE,FOUR,HALF
EXTERNAL HWULI2
COMMON/SMALL/EPSI
PARAMETER (ZERO=0.D0, ONE =1.D0, FOUR= 4.D0, HALF=0.5D0)
IF(B.EQ.ZERO)THEN
HWUCI2=DCMPLX(ZERO,ZERO)
ELSE
Y1=HALF*(ONE+SQRT(ONE-FOUR*(A+EPSI)/B))
Y2=ONE-Y1
Z1=Y0/(Y0-Y1)
Z2=(Y0-ONE)/(Y0-Y1)
Z3=Y0/(Y0-Y2)
Z4=(Y0-ONE)/(Y0-Y2)
HWUCI2=HWULI2(Z1)-HWULI2(Z2)+HWULI2(Z3)-HWULI2(Z4)
ENDIF
END
CDECK ID>, HWUDAT.
*CMZ :- -26/04/91 10.18.58 by Bryan Webber
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
BLOCK DATA HWUDAT
C-----------------------------------------------------------------------
C Loads common blocks with particle properties data; for particle I:
C RNAME(I) = Name
C IDPDG(I) = PDG code
C IFLAV(I) = HERWIG flavour code
C ICHRG(I) = Electric charge (|e-|) (*3 for (di-)quarks)
C RMASS(I) = Mass (GeV/c^2)
C RLTIM(I) = Proper life time (s)
C RSPIN(I) = Spin
C QORQQB(I) = .TRUE. if it is a quark or an antidiquark
C QBORQQ(I) = .TRUE. if it is an antiquark or a diquark
C And stores the particle decay tables: call HWUDPR to print them
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
COMMON/HWSEED/ISEED(2)
INTEGER ISEED
INTEGER NLAST,NNEXT,NLEFT,NREST,I,J,MMWIDE,MMLONG,MMHOFF,MMVOFF
COMMON/PAPER/MMWIDE,MMLONG,MMHOFF,MMVOFF
c PARAMETER (NLAST=458,NNEXT=458+1,NLEFT=NMXRES-458)
c PARAMETER (NREST=NMXRES-120)
c DATA NRES/458/
PARAMETER (NLAST=458,NNEXT=NLAST+1,NLEFT=NMXRES-NLAST)
PARAMETER (NREST=NMXRES-120)
DATA NRES/NLAST/
C Don't forget to change the three occurances above as well
DATA MMWIDE,MMLONG,MMHOFF,MMVOFF/190,280,-39,-35/
DATA ISEED/12345,67890/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=0,16)/
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'DQRK ', 1, 0,-1,0.3200D0,0.000D+00,0.5D0,
& 'UQRK ', 2, 0,+2,0.3200D0,0.000D+00,0.5D0,
& 'SQRK ', 3, 0,-1,0.5000D0,0.000D+00,0.5D0,
& 'CQRK ', 4, 0,+2,1.5500D0,0.000D+00,0.5D0,
& 'BQRK ', 5, 0,-1,4.9500D0,0.000D+00,0.5D0,
& 'TQRK ', 6, 0,+2,174.30D0,4.000D-25,0.5D0,
& 'DBAR ', -1, 0,+1,0.3200D0,0.000D+00,0.5D0,
& 'UBAR ', -2, 0,-2,0.3200D0,0.000D+00,0.5D0,
& 'SBAR ', -3, 0,+1,0.5000D0,0.000D+00,0.5D0,
& 'CBAR ', -4, 0,-2,1.5500D0,0.000D+00,0.5D0,
& 'BBAR ', -5, 0,+1,4.9500D0,0.000D+00,0.5D0,
& 'TBAR ', -6, 0,-2,174.30D0,4.000D-25,0.5D0,
& 'GLUON ', 21, 0, 0,0.7500D0,0.000D+00,1.0D0,
& 'CMF ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'HARD ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'SOFT ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=17,32)/
& 'CONE ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'HEAVY ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'CLUS ', 91, 0, 0,0.0000D0,0.000D+00,0.0D0,
& '**** ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'PI0 ', 111, 11, 0,.13498D0,8.400D-17,0.0D0,
& 'ETA ', 221, 33, 0,.54730D0,0.000D+00,0.0D0,
& 'RHO0 ', 113, 11, 0,.77000D0,0.000D+00,1.0D0,
& 'OMEGA ', 223, 33, 0,.78194D0,0.000D+00,1.0D0,
& 'ETAP ', 331, 33, 0,.95778D0,0.000D+00,0.0D0,
& 'F_2 ', 225, 33, 0,1.2750D0,0.000D+00,2.0D0,
& 'A_10 ', 20113, 11, 0,1.2300D0,0.000D+00,1.0D0,
& 'FL_1 ', 20223, 33, 0,1.2819D0,0.000D+00,1.0D0,
& 'A_20 ', 115, 11, 0,1.3181D0,0.000D+00,2.0D0,
& 'PI- ', -211, 12,-1,.13957D0,2.603D-08,0.0D0,
& 'RHO- ', -213, 12,-1,.77000D0,0.000D+00,1.0D0,
& 'A_1- ', -20213, 12,-1,1.2300D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=33,48)/
& 'A_2- ', -215, 12,-1,1.3181D0,0.000D+00,2.0D0,
& 'K- ', -321, 32,-1,.49368D0,1.237D-08,0.0D0,
& 'K*- ', -323, 32,-1,.89166D0,0.000D+00,1.0D0,
& 'KH_1- ', -20323, 32,-1,1.8500D0,0.000D+00,1.0D0,
& 'K*_2- ', -325, 32,-1,1.4256D0,0.000D+00,2.0D0,
& 'PI+ ', 211, 21,+1,.13957D0,2.603D-08,0.0D0,
& 'RHO+ ', 213, 21,+1,.77000D0,0.000D+00,1.0D0,
& 'A_1+ ', 20213, 21,+1,1.2300D0,0.000D+00,1.0D0,
& 'A_2+ ', 215, 21,+1,1.3181D0,0.000D+00,2.0D0,
& 'KBAR0 ', -311, 31, 0,.49767D0,0.000D+00,0.0D0,
& 'K*BAR0 ', -313, 31, 0,.89610D0,0.000D+00,1.0D0,
& 'KH_1BAR0', -20313, 31, 0,1.8500D0,0.000D+00,1.0D0,
& 'K*_2BAR0', -315, 31, 0,1.4324D0,0.000D+00,2.0D0,
& 'K+ ', 321, 23,+1,.49368D0,1.237D-08,0.0D0,
& 'K*+ ', 323, 23,+1,.89166D0,0.000D+00,1.0D0,
& 'KH_1+ ', 20323, 23,+1,1.8500D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=49,64)/
& 'K*_2+ ', 325, 23,+1,1.4256D0,0.000D+00,2.0D0,
& 'K0 ', 311, 13, 0,.49767D0,0.000D+00,0.0D0,
& 'K*0 ', 313, 13, 0,.89610D0,0.000D+00,1.0D0,
& 'KH_10 ', 20313, 13, 0,1.8500D0,0.000D+00,1.0D0,
& 'K*_20 ', 315, 13, 0,1.4324D0,0.000D+00,2.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'PHI ', 333, 33, 0,1.0194D0,0.000D+00,1.0D0,
& 'FH_1 ', 20333, 33, 0,1.4262D0,0.000D+00,1.0D0,
& 'FP_2 ', 335, 33, 0,1.5250D0,0.000D+00,2.0D0,
& 'GAMMA ', 22, 0, 0,0.0000D0,1.000D+30,1.0D0,
& 'K_S0 ', 310, 0, 0,.49767D0,8.926D-11,0.0D0,
& 'K_L0 ', 130, 0, 0,.49767D0,5.170D-08,0.0D0,
& 'A_0(H)0 ', 10111, 11, 0,1.4740D0,0.000D+00,0.0D0,
& 'A_0(H)+ ', 10211, 21,+1,1.4740D0,0.000D+00,0.0D0,
& 'A_0(H)- ', -10211, 12,-1,1.4740D0,0.000D+00,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=65,80)/
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'REMG ', 98, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'REMN ', 99, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'P ', 2212, 122,+1,.93827D0,1.000D+30,0.5D0,
& 'DELTA+ ', 2214, 122,+1,1.2320D0,0.000D+00,1.5D0,
& 'N ', 2112, 112, 0,.93957D0,8.870D+02,0.5D0,
& 'DELTA0 ', 2114, 112, 0,1.2320D0,0.000D+00,1.5D0,
& 'DELTA- ', 1114, 111,-1,1.2320D0,0.000D+00,1.5D0,
& 'LAMBDA ', 3122, 123, 0,1.1157D0,2.632D-10,0.5D0,
& 'SIGMA0 ', 3212, 123, 0,1.1926D0,7.400D-20,0.5D0,
& 'SIGMA*0 ', 3214, 123, 0,1.3837D0,0.000D+00,1.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=81,96)/
& 'SIGMA- ', 3112, 113,-1,1.1974D0,1.479D-10,0.5D0,
& 'SIGMA*- ', 3114, 113,-1,1.3872D0,0.000D+00,1.5D0,
& 'XI- ', 3312, 133,-1,1.3213D0,1.639D-10,0.5D0,
& 'XI*- ', 3314, 133,-1,1.5350D0,0.000D+00,1.5D0,
& 'DELTA++ ', 2224, 222,+2,1.2320D0,0.000D+00,1.5D0,
& 'SIGMA+ ', 3222, 223,+1,1.1894D0,7.990D-11,0.5D0,
& 'SIGMA*+ ', 3224, 223,+1,1.3828D0,0.000D+00,1.5D0,
& 'XI0 ', 3322, 233, 0,1.3149D0,2.900D-10,0.5D0,
& 'XI*0 ', 3324, 233, 0,1.5318D0,0.000D+00,1.5D0,
& 'OMEGA- ', 3334, 333,-1,1.6725D0,8.220D-11,1.5D0,
& 'PBAR ', -2212,-122,-1,.93827D0,1.000D+30,0.5D0,
& 'DELTABR-', -2214,-122,-1,1.2320D0,0.000D+00,1.5D0,
& 'NBAR ', -2112,-112, 0,.93957D0,8.870D+02,0.5D0,
& 'DELTABR0', -2114,-112, 0,1.2320D0,0.000D+00,1.5D0,
& 'DELTABR+', -1114,-111,+1,1.2320D0,0.000D+00,1.5D0,
& 'LAMBDABR', -3122,-123, 0,1.1157D0,2.632D-10,0.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=97,112)/
& 'SIGMABR0', -3212,-123, 0,1.1926D0,7.400D-20,0.5D0,
& 'SGMA*BR0', -3214,-123, 0,1.3837D0,0.000D+00,1.5D0,
& 'SIGMABR+', -3112,-113,+1,1.1974D0,1.479D-10,0.5D0,
& 'SGMA*BR+', -3114,-113,+1,1.3872D0,0.000D+00,1.5D0,
& 'XIBAR+ ', -3312,-133,+1,1.3213D0,1.639D-10,0.5D0,
& 'XI*BAR+ ', -3314,-133,+1,1.5350D0,0.000D+00,1.5D0,
& 'DLTABR--', -2224,-222,-2,1.2320D0,0.000D+00,1.5D0,
& 'SIGMABR-', -3222,-223,-1,1.1894D0,7.990D-11,0.5D0,
& 'SGMA*BR-', -3224,-223,-1,1.3828D0,0.000D+00,1.5D0,
& 'XIBAR0 ', -3322,-233, 0,1.3149D0,2.900D-10,0.5D0,
& 'XI*BAR ', -3324,-233, 0,1.5318D0,0.000D+00,1.5D0,
& 'OMEGABR+', -3334,-333,+1,1.6725D0,8.220D-11,1.5D0,
& 'UU ', 2203, 0,+4,0.6400D0,0.000D+00,0.0D0,
& 'UD ', 2101, 0,+1,0.6400D0,0.000D+00,0.0D0,
& 'DD ', 1103, 0,-2,0.6400D0,0.000D+00,0.0D0,
& 'US ', 3201, 0,+1,0.8200D0,0.000D+00,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=113,128)/
& 'DS ', 3101, 0,-2,0.8200D0,0.000D+00,0.0D0,
& 'SS ', 3303, 0,-2,1.0000D0,0.000D+00,0.0D0,
& 'UBARUBAR', -2203, 0,-4,0.6400D0,0.000D+00,0.0D0,
& 'UBARDBAR', -2101, 0,-1,0.6400D0,0.000D+00,0.0D0,
& 'DBARDBAR', -1103, 0,+2,0.6400D0,0.000D+00,0.0D0,
& 'UBARSBAR', -3201, 0,-1,0.8200D0,0.000D+00,0.0D0,
& 'DBARSBAR', -3101, 0,+2,0.8200D0,0.000D+00,0.0D0,
& 'SBARSBAR', -3303, 0,+2,1.0000D0,0.000D+00,0.0D0,
& 'E- ', 11, 0,-1,5.11D-04,1.000D+30,0.5D0,
& 'NU_E ', 12, 0, 0,0.0000D0,1.000D+30,0.5D0,
& 'MU- ', 13, 0,-1,.10566D0,2.197D-06,0.5D0,
& 'NU_MU ', 14, 0, 0,0.0000D0,1.000D+30,0.5D0,
& 'TAU- ', 15, 0,-1,1.7771D0,2.916D-13,0.5D0,
& 'NU_TAU ', 16, 0, 0,0.0000D0,1.000D+30,0.5D0,
& 'E+ ', -11, 0,+1,5.11D-04,1.000D+30,0.5D0,
& 'NU_EBAR ', -12, 0, 0,0.0000D0,1.000D+30,0.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=129,144)/
& 'MU+ ', -13, 0,+1,.10566D0,2.197D-06,0.5D0,
& 'NU_MUBAR', -14, 0, 0,0.0000D0,1.000D+30,0.5D0,
& 'TAU+ ', -15, 0,+1,1.7771D0,2.916D-13,0.5D0,
& 'NU_TAUBR', -16, 0, 0,0.0000D0,1.000D+30,0.5D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'D+ ', 411, 41,+1,1.8693D0,1.057D-12,0.0D0,
& 'D*+ ', 413, 41,+1,2.0100D0,0.000D+00,1.0D0,
& 'DH_1+ ', 20413, 41,+1,2.4270D0,0.000D+00,1.0D0,
& 'D*_2+ ', 415, 41,+1,2.4590D0,0.000D+00,2.0D0,
& 'D0 ', 421, 42, 0,1.8646D0,4.150D-13,0.0D0,
& 'D*0 ', 423, 42, 0,2.0067D0,0.000D+00,1.0D0,
& 'DH_10 ', 20423, 42, 0,2.4222D0,0.000D+00,1.0D0,
& 'D*_20 ', 425, 42, 0,2.4589D0,0.000D+00,2.0D0,
& 'D_S+ ', 431, 43,+1,1.9685D0,4.670D-13,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=145,160)/
& 'D*_S+ ', 433, 43,+1,2.1124D0,0.000D+00,1.0D0,
& 'DH_S1+ ', 20433, 43,+1,2.5354D0,0.000D+00,1.0D0,
& 'D*_S2+ ', 435, 43,+1,2.5735D0,0.000D+00,2.0D0,
& 'SGMA_C++', 4222, 224,+2,2.4528D0,0.000D+00,0.5D0,
& 'SGM*_C++', 4224, 224,+2,2.5194D0,0.000D+00,1.5D0,
& 'LMBDA_C+', 4122, 124,+1,2.2849D0,2.060D-13,0.5D0,
& 'SIGMA_C+', 4212, 124,+1,2.4536D0,0.000D+00,0.5D0,
& 'SGMA*_C+', 4214, 124,+1,2.5185D0,0.000D+00,1.5D0,
& 'SIGMA_C0', 4112, 114, 0,2.4522D0,0.000D+00,0.5D0,
& 'SGMA*_C0', 4114, 114, 0,2.5175D0,0.000D+00,1.5D0,
& 'XI_C+ ', 4232, 234,+1,2.4656D0,3.500D-13,0.5D0,
& 'XIP_C+ ', 4322, 234,+1,2.5750D0,0.000D+00,0.5D0,
& 'XI*_C+ ', 4324, 234,+1,2.6446D0,0.000D+00,1.5D0,
& 'XI_C0 ', 4132, 134, 0,2.4703D0,9.800D-14,0.5D0,
& 'XIP_C0 ', 4312, 134, 0,2.5800D0,0.000D+00,0.5D0,
& 'XI*_C0 ', 4314, 134, 0,2.6438D0,0.000D+00,1.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=161,176)/
& 'OMEGA_C0', 4332, 334, 0,2.7040D0,6.400D-14,0.5D0,
& 'OMGA*_C0', 4334, 334, 0,2.7300D0,0.000D+00,1.5D0,
& 'ETA_C ', 441, 44, 0,2.9798D0,0.000D+00,0.0D0,
& 'JPSI ', 443, 44, 0,3.0969D0,0.000D+00,1.0D0,
& 'CHI_C1 ', 10441, 44, 0,3.4173D0,0.000D+00,0.0D0,
& 'PSI2S ', 100443, 44, 0,3.6860D0,0.000D+00,1.0D0,
& 'PSID ', 30443, 44, 0,3.7699D0,0.000D+00,1.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'D- ', -411, 14,-1,1.8693D0,1.057D-12,0.0D0,
& 'D*- ', -413, 14,-1,2.0100D0,0.000D+00,1.0D0,
& 'DH_1- ', -20413, 14,-1,2.4270D0,0.000D+00,1.0D0,
& 'D*_2- ', -415, 14,-1,2.4590D0,0.000D+00,2.0D0,
& 'DBAR0 ', -421, 24, 0,1.8646D0,4.140D-13,0.0D0,
& 'D*BAR0 ', -423, 24, 0,2.0067D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=177,192)/
& 'DH_1BAR0', -20423, 24, 0,2.4222D0,0.000D+00,1.0D0,
& 'D*_2BAR0', -425, 24, 0,2.4589D0,0.000D+00,2.0D0,
& 'D_S- ', -431, 34,-1,1.9685D0,4.670D-13,0.0D0,
& 'D*_S- ', -433, 34,-1,2.1124D0,0.000D+00,1.0D0,
& 'DH_S1- ', -20433, 34,-1,2.5354D0,0.000D+00,1.0D0,
& 'D*_S2- ', -435, 34,-1,2.5735D0,0.000D+00,2.0D0,
& 'SGMA_C--', -4222,-224,-2,2.4528D0,0.000D+00,0.5D0,
& 'SGM*_C--', -4224,-224,-2,2.5194D0,0.000D+00,1.5D0,
& 'LMBDA_C-', -4122,-124,-1,2.2849D0,2.060D-13,0.5D0,
& 'SIGMA_C-', -4212,-124,-1,2.4536D0,0.000D+00,0.5D0,
& 'SGMA*_C-', -4214,-124,-1,2.5185D0,0.000D+00,1.5D0,
& 'SGM_CBR0', -4112,-114, 0,2.4522D0,0.000D+00,0.5D0,
& 'SG*_CBR0', -4114,-114, 0,2.5175D0,0.000D+00,1.5D0,
& 'XI_C- ', -4232,-234,-1,2.4656D0,3.500D-13,0.5D0,
& 'XIP_C- ', -4322,-234,-1,2.5750D0,0.000D+00,0.5D0,
& 'XI*_C- ', -4324,-234,-1,2.6446D0,0.000D+00,1.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=193,208)/
& 'XI_CBAR0', -4132,-134, 0,2.4703D0,9.800D-14,0.5D0,
& 'XIP_CBR0', -4312,-134, 0,2.5800D0,0.000D+00,0.5D0,
& 'XI*_CBR0', -4314,-134, 0,2.6438D0,0.000D+00,1.5D0,
& 'OMG_CBR0', -4332,-334, 0,2.7040D0,6.400D-14,0.5D0,
& 'OM*_CBR0', -4334,-334, 0,2.7300D0,0.000D+00,1.5D0,
& 'W+ ', 24, 0,+1,80.420D0,0.000D+00,1.0D0,
& 'W- ', -24, 0,-1,80.420D0,0.000D+00,1.0D0,
& 'Z0/GAMA*', 23, 0, 0,91.188D0,0.000D+00,1.0D0,
& 'HIGGS ', 25, 0, 0,115.00D0,0.000D+00,0.0D0,
& 'Z0P ', 32, 0, 0,500.00D0,0.000D+00,1.0D0,
& 'HIGGSL0 ', 26, 0, 0,0.0000D0,1.000D+30,0.0D0,
& 'HIGGSH0 ', 35, 0, 0,0.0000D0,1.000D+30,0.0D0,
& 'HIGGSA0 ', 36, 0, 0,0.0000D0,1.000D+30,0.0D0,
& 'HIGGS+ ', 37, 0,+1,0.0000D0,1.000D+30,0.0D0,
& 'HIGGS- ', -37, 0,-1,0.0000D0,1.000D+30,0.0D0,
& 'GRAVITON', 39, 0, 0,0.0000D0,1.000D+30,2.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=209,224)/
& 'VQRK ', 7, 0,-1,200.00D0,0.000D+00,0.5D0,
& 'AQRK ', 8, 0,+2,400.00D0,0.000D+00,0.5D0,
& 'HQRK ', 7, 0,-1,400.00D0,0.000D+00,0.5D0,
& 'HPQK ', 8, 0,+2,600.00D0,0.000D+00,0.5D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'VBAR ', -7, 0,+1,200.00D0,0.000D+00,0.5D0,
& 'ABAR ', -8, 0,-2,400.00D0,0.000D+00,0.5D0,
& 'HBAR ', -7, 0,+1,400.00D0,0.000D+00,0.5D0,
& 'HPBR ', -8, 0,-2,600.00D0,0.000D+00,0.5D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00,0.0D0,
& 'B_DBAR0 ', -511, 51, 0,5.2792D0,1.614D-12,0.0D0,
& 'B- ', -521, 52,-1,5.2789D0,1.652D-12,0.0D0,
& 'B_SBAR0 ', -531, 53, 0,5.3693D0,1.540D-12,0.0D0,
& 'SIGMA_B+', 5222, 225,+1,5.8200D0,1.070D-12,0.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=225,240)/
& 'LMBDA_B0', 5122, 125, 0,5.6240D0,1.070D-12,0.5D0,
& 'SIGMA_B-', 5112, 115,-1,5.8200D0,1.070D-12,0.5D0,
& 'XI_B0 ', 5232, 235, 0,5.8000D0,1.070D-12,0.5D0,
& 'XI_B- ', 5132, 135,-1,5.8000D0,1.070D-12,0.5D0,
& 'OMEGA_B-', 5332, 335,-1,6.0400D0,1.070D-12,0.5D0,
& 'B_C- ', -541, 54,-1,6.2500D0,1.000D-12,0.5D0,
& 'UPSLON1S', 553, 55, 0,9.4604D0,0.000D+00,1.0D0,
& 'T_B- ', -651, 56,-1,0.0000D0,0.000D+00,0.0D0,
& 'T+ ', 611, 61,+1,0.0000D0,0.000D+00,0.0D0,
& 'T0 ', 621, 62, 0,0.0000D0,0.000D+00,0.0D0,
& 'T_S+ ', 631, 63,+1,0.0000D0,0.000D+00,0.0D0,
& 'SGMA_T++', 6222, 226,+2,0.0000D0,0.000D+00,0.5D0,
& 'LMBDA_T0', 6122, 126,+1,0.0000D0,0.000D+00,0.5D0,
& 'SIGMA_T0', 6112, 116, 0,0.0000D0,0.000D+00,0.5D0,
& 'XI_T+ ', 6232, 236,+1,0.0000D0,0.000D+00,0.5D0,
& 'XI_T0 ', 6132, 136, 0,0.0000D0,0.000D+00,0.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=241,256)/
& 'OMEGA_T0', 6332, 336, 0,0.0000D0,0.000D+00,0.5D0,
& 'T_C0 ', 641, 64, 0,0.0000D0,0.000D+00,0.0D0,
& 'T_B+ ', 651, 65,+1,0.0000D0,0.000D+00,0.0D0,
& 'TOPONIUM', 663, 66, 0,0.0000D0,0.000D+00,1.0D0,
& 'B_D0 ', 511, 15, 0,5.2792D0,1.614D-12,0.0D0,
& 'B+ ', 521, 25,+1,5.2789D0,1.652D-12,0.0D0,
& 'B_S0 ', 531, 35, 0,5.3693D0,1.540D-12,0.0D0,
& 'SGM_BBR-', -5222,-225,-1,5.8200D0,1.070D-12,0.5D0,
& 'LMD_BBR0', -5122,-125, 0,5.6240D0,1.070D-12,0.5D0,
& 'SGM_BBR+', -5112,-115,+1,5.8200D0,1.070D-12,0.5D0,
& 'XI_BBAR0', -5232,-235, 0,5.8000D0,1.070D-12,0.5D0,
& 'XI_B+ ', -5132,-135,+1,5.8000D0,1.070D-12,0.5D0,
& 'OMG_BBR+', -5332,-335,+1,6.0400D0,1.070D-12,0.5D0,
& 'B_C+ ', 541, 45,+1,6.2500D0,1.000D-12,0.5D0,
& 'T- ', -611, 16,-1,0.0000D0,0.000D+00,0.0D0,
& 'TBAR0 ', -621, 26, 0,0.0000D0,0.000D+00,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=257,272)/
& 'T_S- ', -631, 36,-1,0.0000D0,0.000D+00,0.0D0,
& 'SGMA_T--', -6222,-226,-2,0.0000D0,0.000D+00,0.5D0,
& 'LAMDA_T-', -6122,-126,-1,0.0000D0,0.000D+00,0.5D0,
& 'SGM_TBR0', -6112,-116, 0,0.0000D0,0.000D+00,0.5D0,
& 'XI_T- ', -6232,-236,-1,0.0000D0,0.000D+00,0.5D0,
& 'XI_TBAR0', -6132,-136, 0,0.0000D0,0.000D+00,0.5D0,
& 'OMG_TBR0', -6332,-336, 0,0.0000D0,0.000D+00,0.5D0,
& 'T_CBAR0 ', -641, 46, 0,0.0000D0,0.000D+00,0.0D0,
& 'B*BAR0 ', -513, 51, 0,5.3249D0,0.000D+00,1.0D0,
& 'B*- ', -523, 52,-1,5.3249D0,0.000D+00,1.0D0,
& 'B*_SBAR0', -533, 53, 0,5.4163D0,0.000D+00,1.0D0,
& 'BH_1BAR0', -20513, 51, 0,5.7600D0,0.000D+00,1.0D0,
& 'BH_1- ', -20523, 52,-1,5.7600D0,0.000D+00,1.0D0,
& 'BH_S1BR0', -20533, 53, 0,5.8550D0,0.000D+00,1.0D0,
& 'B*_2BAR0', -515, 51, 0,5.7700D0,0.000D+00,2.0D0,
& 'B*_2- ', -525, 52,-1,5.7700D0,0.000D+00,2.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=273,288)/
& 'B*_S2BR0', -535, 53, 0,5.8650D0,0.000D+00,2.0D0,
& 'B*0 ', 513, 15, 0,5.3249D0,0.000D+00,1.0D0,
& 'B*+ ', 523, 25,+1,5.3249D0,0.000D+00,1.0D0,
& 'B*_S0 ', 533, 35, 0,5.4163D0,0.000D+00,1.0D0,
& 'BH_10 ', 20513, 15, 0,5.7600D0,0.000D+00,1.0D0,
& 'BH_1+ ', 20523, 25,+1,5.7600D0,0.000D+00,1.0D0,
& 'BH_S10 ', 20533, 35, 0,5.8550D0,0.000D+00,1.0D0,
& 'B*_20 ', 515, 15, 0,5.7700D0,0.000D+00,2.0D0,
& 'B*_2+ ', 525, 25,+1,5.7700D0,0.000D+00,2.0D0,
& 'B*_S20 ', 535, 35, 0,5.8650D0,0.000D+00,2.0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00, 0D0,
& ' ', 0, 0, 0,0.0000D0,0.000D+00, 0D0,
& 'B_10 ', 10113, 11, 0,1.2295D0,0.000D+00,1.0D0,
& 'B_1+ ', 10213, 21,+1,1.2295D0,0.000D+00,1.0D0,
& 'B_1- ', -10213, 12,-1,1.2295D0,0.000D+00,1.0D0,
& 'HL_10 ', 10223, 33, 0,1.1700D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=289,304)/
& 'HH_10 ', 10333, 33, 0,1.3950D0,0.000D+00,1.0D0,
& 'A_00 ', 9000111, 11, 0,.99600D0,0.000D+00,0.0D0,
& 'A_0+ ', 9000211, 21,+1,.99600D0,0.000D+00,0.0D0,
& 'A_0- ',-9000211, 12,-1,.99600D0,0.000D+00,0.0D0,
& 'F0P0 ', 9010221, 33, 0,.99600D0,0.000D+00,0.0D0,
& 'FH_00 ', 10221, 33, 0,1.3500D0,0.000D+00,0.0D0,
& 'B*_C+ ', 543, 45,+1,6.2950D0,0.000D+00,1.0D0,
& 'B*_C- ', -543, 54,-1,6.2950D0,0.000D+00,1.0D0,
& 'BH_C1+ ', 20543, 45,+1,6.7300D0,0.000D+00,1.0D0,
& 'BH_C1- ', -20543, 54,-1,6.7300D0,0.000D+00,1.0D0,
& 'B*_C2+ ', 545, 45,+1,6.7400D0,0.000D+00,2.0D0,
& 'B*_C2- ', -545, 54,-1,6.7400D0,0.000D+00,2.0D0,
& 'H_C ', 10443, 44, 0,3.5261D0,0.000D+00,1.0D0,
& 'CHI_C0 ', 20443, 44, 0,3.5105D0,0.000D+00,0.0D0,
& 'CHI_C2 ', 445, 44, 0,3.5562D0,0.000D+00,2.0D0,
& 'ETA_B ', 551, 55, 0,9.0000D0,0.000D+00,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=305,320)/
& 'H_B ', 10553, 55, 0,9.8880D0,0.000D+00,1.0D0,
& 'CHI_B0 ', 10551, 55, 0,9.8598D0,0.000D+00,0.0D0,
& 'CHI_B1 ', 20553, 55, 0,9.8919D0,0.000D+00,1.0D0,
& 'CHI_B2 ', 555, 55, 0,9.9132D0,0.000D+00,2.0D0,
& 'KL_10 ', 10313, 13, 0,1.5700D0,0.000D+00,1.0D0,
& 'KL_1+ ', 10323, 23,+1,1.5700D0,0.000D+00,1.0D0,
& 'KL_1BAR0', -10313, 31, 0,1.5700D0,0.000D+00,1.0D0,
& 'KL_1- ', -10323, 32,-1,1.5700D0,0.000D+00,1.0D0,
& 'DL_1+ ', 10413, 41,+1,2.4270D0,0.000D+00,1.0D0,
& 'DL_10 ', 10423, 42, 0,2.4222D0,0.000D+00,1.0D0,
& 'DL_S1+ ', 10433, 43,+1,2.5354D0,0.000D+00,1.0D0,
& 'DL_1- ', -10413, 14,-1,2.4270D0,0.000D+00,1.0D0,
& 'DL_1BAR0', -10423, 24, 0,2.4222D0,0.000D+00,1.0D0,
& 'DL_S1- ', -10433, 34,-1,2.5354D0,0.000D+00,1.0D0,
& 'BL_10 ', 10513, 15, 0,5.7600D0,0.000D+00,1.0D0,
& 'BL_1+ ', 10523, 25,+1,5.7600D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=321,336)/
& 'BL_S10 ', 10533, 35, 0,5.8530D0,0.000D+00,1.0D0,
& 'BL_C1+ ', 10543, 45,+1,6.7300D0,0.000D+00,1.0D0,
& 'BL_1BAR0', -10513, 51, 0,5.7600D0,0.000D+00,1.0D0,
& 'BL_1- ', -10523, 52,-1,5.7600D0,0.000D+00,1.0D0,
& 'BL_S1BR0', -10533, 53, 0,5.8530D0,0.000D+00,1.0D0,
& 'BL_C1- ', -10543, 54,-1,6.7300D0,0.000D+00,1.0D0,
& 'K*_0+ ', 10321, 23,+1,1.4290D0,0.000D+00,0.0D0,
& 'K*_00 ', 10311, 13, 0,1.4290D0,0.000D+00,0.0D0,
& 'K*_0BAR0', -10311, 31, 0,1.4290D0,0.000D+00,0.0D0,
& 'K*_0- ', -10321, 32,-1,1.4290D0,0.000D+00,0.0D0,
& 'D*_0+ ', 10411, 41,+1,2.4230D0,0.000D+00,0.0D0,
& 'D*_00 ', 10421, 42, 0,2.4230D0,0.000D+00,0.0D0,
& 'D*_S0+ ', 10431, 43,+1,2.5250D0,0.000D+00,0.0D0,
& 'D*_0- ', -10411, 14,-1,2.4230D0,0.000D+00,0.0D0,
& 'D*_0BAR0', -10421, 24, 0,2.4230D0,0.000D+00,0.0D0,
& 'D*_S0- ', -10431, 34,-1,2.5250D0,0.000D+00,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=337,352)/
& 'B*_00 ', 10511, 15, 0,5.7600D0,0.000D+00,0.0D0,
& 'B*_0+ ', 10521, 25,+1,5.7600D0,0.000D+00,0.0D0,
& 'B*_S00 ', 10531, 35, 0,5.8550D0,0.000D+00,0.0D0,
& 'B*_C0+ ', 10541, 45,+1,6.7300D0,0.000D+00,0.0D0,
& 'B*_0BAR0', -10511, 51, 0,5.7600D0,0.000D+00,0.0D0,
& 'B*_0- ', -10521, 52,-1,5.7600D0,0.000D+00,0.0D0,
& 'B*_S0BR0', -10531, 53, 0,5.8550D0,0.000D+00,0.0D0,
& 'B*_C0- ', -10541, 54,-1,6.7300D0,0.000D+00,0.0D0,
& 'SGMA*_B-', 5114, 115,-1,5.8400D0,0.000D+00,1.5D0,
& 'SIGMA_B0', 5212, 125, 0,5.8200D0,0.000D+00,0.5D0,
& 'SGMA*_B0', 5214, 125, 0,5.8400D0,0.000D+00,1.5D0,
& 'SGMA*_B+', 5224, 225,+1,5.8400D0,0.000D+00,1.5D0,
& 'XIP_B0 ', 5322, 235, 0,5.9450D0,0.000D+00,0.5D0,
& 'XI*_B0 ', 5324, 235, 0,5.9450D0,0.000D+00,1.5D0,
& 'XIP_B- ', 5312, 135,-1,5.9450D0,0.000D+00,0.5D0,
& 'XI*_B- ', 5314, 135,-1,5.9450D0,0.000D+00,1.5D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=353,368)/
& '0MGA*_B-', 5334, 335,-1,6.0600D0,0.000D+00,1.5D0,
& 'SG*_BBR+', -5114,-115,+1,5.8400D0,0.000D+00,1.5D0,
& 'SGM_BBR0', -5212,-125, 0,5.8200D0,0.000D+00,0.5D0,
& 'SG*_BBR0', -5214,-125, 0,5.8400D0,0.000D+00,1.5D0,
& 'SG*_BBR-', -5224,-225,-1,5.8400D0,0.000D+00,1.5D0,
& 'XIP_BBR0', -5322,-235, 0,5.9450D0,0.000D+00,0.5D0,
& 'XI*_BBR0', -5324,-235, 0,5.9450D0,0.000D+00,1.5D0,
& 'XIP_B+ ', -5312,-135,+1,5.9450D0,0.000D+00,0.5D0,
& 'XI*_B+ ', -5314,-135,+1,5.9450D0,0.000D+00,1.5D0,
& '0MGA*_B+', -5334,-335,+1,6.0600D0,0.000D+00,1.5D0,
& 'KDL_2+ ', 10325, 23,+1,1.7730D0,0.000D+00,2.0D0,
& 'KDL_20 ', 10315, 13, 0,1.7730D0,0.000D+00,2.0D0,
& 'KDL_2BR0', -10315, 31, 0,1.7730D0,0.000D+00,2.0D0,
& 'KDL_2- ', -10325, 32,-1,1.7730D0,0.000D+00,2.0D0,
& 'KD*+ ', 30323, 23,+1,1.7170D0,0.000D+00,1.0D0,
& 'KD*0 ', 30313, 13, 0,1.7170D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=369,384)/
& 'KD*BAR0 ', -30313, 31, 0,1.7170D0,0.000D+00,1.0D0,
& 'KD*- ', -30323, 32,-1,1.7170D0,0.000D+00,1.0D0,
& 'KDH_2+ ', 20325, 23,+1,1.8160D0,0.000D+00,2.0D0,
& 'KDH_20 ', 20315, 13, 0,1.8160D0,0.000D+00,2.0D0,
& 'KDH_2BR0', -20315, 31, 0,1.8160D0,0.000D+00,2.0D0,
& 'KDH_2- ', -20325, 32,-1,1.8160D0,0.000D+00,2.0D0,
& 'KD_3+ ', 327, 23,+1,1.7730D0,0.000D+00,3.0D0,
& 'KD_30 ', 317, 13, 0,1.7730D0,0.000D+00,3.0D0,
& 'KD_3BAR0', -317, 31, 0,1.7730D0,0.000D+00,3.0D0,
& 'KD_3- ', -327, 32,-1,1.7730D0,0.000D+00,3.0D0,
& 'PI_2+ ', 10215, 21,+1,1.6700D0,0.000D+00,2.0D0,
& 'PI_20 ', 10115, 11, 0,1.6700D0,0.000D+00,2.0D0,
& 'PI_2- ', -10215, 12,-1,1.6700D0,0.000D+00,2.0D0,
& 'RHOD+ ', 30213, 21,+1,1.7000D0,0.000D+00,1.0D0,
& 'RHOD0 ', 30113, 11, 0,1.7000D0,0.000D+00,1.0D0,
& 'RHOD- ', -30213, 12,-1,1.7000D0,0.000D+00,1.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=385,400)/
& 'RHO_3+ ', 217, 21,+1,1.6910D0,0.000D+00,3.0D0,
& 'RHO_30 ', 117, 11, 0,1.6910D0,0.000D+00,3.0D0,
& 'RHO_3- ', -217, 12,-1,1.6910D0,0.000D+00,3.0D0,
& 'UPSLON2S', 100553, 55, 0,10.023D0,0.000D+00,1.0D0,
& 'CHI2P_B0', 110551, 55, 0,10.232D0,0.000D+00,0.0D0,
& 'CHI2P_B1', 120553, 55, 0,10.255D0,0.000D+00,1.0D0,
& 'CHI2P_B2', 100555, 55, 0,10.269D0,0.000D+00,2.0D0,
& 'UPSLON3S', 200553, 55, 0,10.355D0,0.000D+00,1.0D0,
& 'UPSLON4S', 300553, 55, 0,10.580D0,0.000D+00,1.0D0,
& ' ', 0, 0, 0,0.0 D0, 0.0D+00, 0D0,
& 'OMEGA_3 ', 227, 33, 0,1.6670D0,0.000D+00,3.0D0,
& 'PHI_3 ', 337, 33, 0,1.8540D0,0.000D+00,3.0D0,
& 'ETA_2(L)', 10225, 33, 0,1.6320D0,0.000D+00,2.0D0,
& 'ETA_2(H)', 10335, 33, 0,1.8540D0,0.000D+00,2.0D0,
& 'OMEGA(H)', 30223, 33, 0,1.6490D0,0.000D+00,1.0D0,
& ' ', 0, 0, 0,0.0 D0,0.0D+00 , 0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=401,416)/
& 'SSDL ', 1000001, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSUL ', 1000002, 0,+2,0.00D0,1.000D+30,0.0D0,
& 'SSSL ', 1000003, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSCL ', 1000004, 0,+2,0.00D0,1.000D+30,0.0D0,
& 'SSB1 ', 1000005, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SST1 ', 1000006, 0,+2,0.00D0,1.000D+30,0.0D0,
& 'SSDLBR ',-1000001, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSULBR ',-1000002, 0,-2,0.00D0,1.000D+30,0.0D0,
& 'SSSLBR ',-1000003, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSCLBR ',-1000004, 0,-2,0.00D0,1.000D+30,0.0D0,
& 'SSB1BR ',-1000005, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SST1BR ',-1000006, 0,-2,0.00D0,1.000D+30,0.0D0,
& 'SSDR ', 2000001, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSUR ', 2000002, 0,+2,0.00D0,1.000D+30,0.0D0,
& 'SSSR ', 2000003, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSCR ', 2000004, 0,+2,0.00D0,1.000D+30,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=417,432)/
& 'SSB2 ', 2000005, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SST2 ', 2000006, 0,+2,0.00D0,1.000D+30,0.0D0,
& 'SSDRBR ',-2000001, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSURBR ',-2000002, 0,-2,0.00D0,1.000D+30,0.0D0,
& 'SSSRBR ',-2000003, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSCRBR ',-2000004, 0,-2,0.00D0,1.000D+30,0.0D0,
& 'SSB2BR ',-2000005, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SST2BR ',-2000006, 0,-2,0.00D0,1.000D+30,0.0D0,
& 'SSEL- ', 1000011, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSNUEL ', 1000012, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSMUL- ', 1000013, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSNUMUL ', 1000014, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSTAU1- ', 1000015, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSNUTL ', 1000016, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSEL+ ',-1000011, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSNUELBR',-1000012, 0, 0,0.00D0,1.000D+30,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=433,448)/
& 'SSMUL+ ',-1000013, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSNUMLBR',-1000014, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSTAU1+ ',-1000015, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSNUTLBR',-1000016, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSER- ', 2000011, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSNUER ', 2000012, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSMUR- ', 2000013, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSNUMUR ', 2000014, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSTAU2- ', 2000015, 0,-1,0.00D0,1.000D+30,0.0D0,
& 'SSNUTR ', 2000016, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSER+ ',-2000011, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSNUERBR',-2000012, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSMUR+ ',-2000013, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSNUMRBR',-2000014, 0, 0,0.00D0,1.000D+30,0.0D0,
& 'SSTAU2+ ',-2000015, 0,+1,0.00D0,1.000D+30,0.0D0,
& 'SSNUTRBR',-2000016, 0, 0,0.00D0,1.000D+30,0.0D0/
DATA (RNAME(I),IDPDG(I),IFLAV(I),ICHRG(I),RMASS(I),RLTIM(I),
& RSPIN(I),I=449,NLAST)/
& 'GLUINO ', 1000021, 0, 0,0.00D0,1.000D+30,0.5D0,
& 'NTLINO1 ', 1000022, 0, 0,0.00D0,1.000D+30,0.5D0,
& 'NTLINO2 ', 1000023, 0, 0,0.00D0,1.000D+30,0.5D0,
& 'NTLINO3 ', 1000025, 0, 0,0.00D0,1.000D+30,0.5D0,
& 'NTLINO4 ', 1000035, 0, 0,0.00D0,1.000D+30,0.5D0,
& 'CHGINO1+', 1000024, 0,+1,0.00D0,1.000D+30,0.5D0,
& 'CHGINO2+', 1000037, 0,+1,0.00D0,1.000D+30,0.5D0,
& 'CHGINO1-',-1000024, 0,-1,0.00D0,1.000D+30,0.5D0,
& 'CHGINO2-',-1000037, 0,-1,0.00D0,1.000D+30,0.5D0,
& 'GRAVTINO', 1000039, 0, 0,0.00D0,1.000D+30,1.5D0/
C
DATA QORQQB/.FALSE.,
& 6*.TRUE.,6*.FALSE.,96*.FALSE.,6*.FALSE.,6*.TRUE.,NREST*.FALSE./
DATA QBORQQ/.FALSE.,
& 6*.FALSE.,6*.TRUE.,96*.FALSE.,6*.TRUE.,6*.FALSE.,NREST*.FALSE./
C
C In the character strings use an ampersand to represent a backslash
C to avoid compiler problems with the C escape character
DATA ((TXNAME(J,I),J=1,2),I=0,8)/
& ' ',
& ' ',
& ' d',
& ' d',
& ' u',
& ' u',
& ' s',
& ' s',
& ' c',
& ' c',
& ' b',
& ' b',
& ' t',
& ' t',
& ' $&bar{&rm d}$',
& ' -d',
& ' $&bar{&rm u}$',
& ' -u'/
DATA ((TXNAME(J,I),J=1,2),I=9,16)/
& ' $&bar{&rm s}$',
& ' -s',
& ' $&bar{&rm c}$',
& ' -c',
& ' $&bar{&rm b}$',
& ' -b',
& ' $&bar{&rm t}$',
& ' -t',
& ' $g$',
& ' g',
& ' CoM',
& ' CoM',
& ' Hard',
& ' Hard',
& ' Soft',
& ' Soft'/
DATA ((TXNAME(J,I),J=1,2),I=17,24)/
& ' Cone',
& ' Cone',
& ' Heavy',
& ' Heavy',
& ' Cluster',
& ' Cluster',
& ' $&star&star&star&star$',
& ' ****',
& ' $&pi^0$',
& ' pi0',
& ' $&eta$',
& ' eta',
& ' $&rho^0$',
& ' rho0',
& ' $&omega$',
& ' omega'/
DATA ((TXNAME(J,I),J=1,2),I=25,32)/
& ' $&eta^&prime$',
& ' eta''',
& ' $f_2$',
& ' f2',
& ' $a^0_1$',
& ' a10',
& ' $f_1(L)$',
& ' f1(L)',
& ' $a^0_2$',
& ' a20',
& ' $&pi^-$',
& ' pi-',
& ' $&rho^-$',
& ' rho-',
& ' $a^-_1$',
& ' a1-'/
DATA ((TXNAME(J,I),J=1,2),I=33,40)/
& ' $a^-_2$',
& ' a2-',
& ' K$^-$',
& ' K-',
& ' K$^{&star-}$',
& ' K*-',
& ' K$_1(H)^-$',
& ' K1(H)-',
& ' K$^{&star-}_2$',
& ' K2*-',
& ' $&pi^+$',
& ' pi+',
& ' $&rho^+$',
& ' rho+',
& ' $a^+_1$',
& ' a1+'/
DATA ((TXNAME(J,I),J=1,2),I=41,48)/
& ' $a^+_2$',
& ' a2+',
& ' $&overline{&rm K}^0$',
& ' -K0',
& ' $&overline{&rm K}^{&star0}$',
& ' -K*0',
& ' $&overline{&rm K}_1(H)^0$',
& ' -K1(H)0',
& ' $&overline{&rm K}^{&star0}_2$',
& ' -K2*0',
& ' K$^+$',
& ' K+',
& ' K$^{&star+}$',
& ' K*+',
& ' K$_1(H)^+$',
& ' K1(H)+'/
DATA ((TXNAME(J,I),J=1,2),I=49,56)/
& ' K$^{&star+}_2$',
& ' K2(H)*+',
& ' K$^0$',
& ' K0',
& ' K$^{&star0}$',
& ' K*-',
& ' K$_1(H)^0$',
& ' K1(H)0',
& ' K$^{&star0}_2$',
& ' K2*0',
& ' ',
& ' ',
& ' ',
& ' ',
& ' $&phi$',
& ' phi'/
DATA ((TXNAME(J,I),J=1,2),I=57,64)/
& ' $f_1(1420)$',
& ' f1(1420)',
& ' $f^&prime_2$',
& ' f''2',
& ' $&gamma$',
& ' gamma',
& ' K$^0_{&rm S}$',
& ' KS0',
& ' K$^0_{&rm L}$',
& ' KL0',
& ' $a_0(1450)^0$',
& ' a0(1450)0',
& ' $a_0(1450)^+$',
& ' a0(1450)+',
& ' $a_0(1450)^-$',
& ' a0(1450)-'/
DATA ((TXNAME(J,I),J=1,2),I=65,72)/
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' $&gamma$-remnant',
& ' gamma-remnant',
& ' $N$-remnant',
& ' N-remnant'/
DATA ((TXNAME(J,I),J=1,2),I=73,80)/
& ' p',
& ' p',
& ' $&Delta^+$',
& ' Delta+',
& ' n',
& ' n',
& ' $&Delta^0$',
& ' Delta0',
& ' $&Delta^-$',
& ' Delta-',
& ' $&Lambda$',
& ' Lambda',
& ' $&Sigma^0$',
& ' Sigma0',
& ' $&Sigma^{&star0}$',
& ' Sigma*0'/
DATA ((TXNAME(J,I),J=1,2),I=81,88)/
& ' $&Sigma^-$',
& ' Sigma-',
& ' $&Sigma^{&star-}$',
& ' Sigma*-',
& ' $&Xi^-$',
& ' Xi-',
& ' $&Xi^{&star-}$',
& ' Xi*-',
& ' $&Delta^{++}$',
& ' Delta++',
& ' $&Sigma^+$',
& ' Sigma+',
& ' $&Sigma^{&star+}$',
& ' Sigma*+',
& ' $&Xi^0$',
& ' Xi0'/
DATA ((TXNAME(J,I),J=1,2),I=89,96)/
& ' $&Xi^{&star0}$',
& ' Xi*0',
& ' $&Omega^-$',
& ' Omega-',
& ' $&bar{&rm p}$',
& ' -p',
& ' $&overline{&Delta}^-$',
& ' -Delta-',
& ' $&bar{&rm n}$',
& ' -n',
& ' $&overline{&Delta}^0$',
& ' -Delta0',
& ' $&overline{&Delta}^+$',
& ' -Delta+',
& ' $&overline{&Lambda}$',
& ' -Lambda'/
DATA ((TXNAME(J,I),J=1,2),I=97,104)/
& ' $&overline{&Sigma}^0$',
& ' -Sigma0',
& ' $&overline{&Sigma}^{&star0}$',
& ' -Sigma*0',
& ' $&overline{&Sigma}^+$',
& ' -Sigma+',
& ' $&overline{&Sigma}^{&star+}$',
& ' -Sigma*+',
& ' $&overline{&Xi}^+$',
& ' -Xi+',
& ' $&overline{&Xi}^{&star+}$',
& ' -Xi*+',
& ' $&overline{&Delta}^{--}$',
& ' -Delta--',
& ' $&overline{&Sigma}^-$',
& ' -Sigma-'/
DATA ((TXNAME(J,I),J=1,2),I=105,112)/
& ' $&overline{&Sigma}^{&star-}$',
& ' -Sigma*-',
& ' $&overline{&Xi}^0$',
& ' -Xi0',
& ' $&overline&Xi^{&star0}$',
& ' -Xi*0',
& ' $&overline{&Omega}^+$',
& ' -Omega+',
& ' uu',
& ' uu',
& ' ud',
& ' ud',
& ' dd',
& ' dd',
& ' us',
& ' us'/
DATA ((TXNAME(J,I),J=1,2),I=113,120)/
& ' ds',
& ' ds',
& ' ss',
& ' ss',
& ' $&bar{&rm u}&bar{&rm u}$',
& ' -uu',
& ' $&bar{&rm u}&bar{&rm d}$',
& ' -ud',
& ' $&bar{&rm d}&bar{&rm d}$',
& ' -dd',
& ' $&bar{&rm u}&bar{&rm s}$',
& ' -us',
& ' $&bar{&rm d}&bar{&rm s}$',
& ' -ds',
& ' $&bar{&rm s}&bar{&rm s}$',
& ' -ss'/
DATA ((TXNAME(J,I),J=1,2),I=121,128)/
& ' e$^-$',
& ' e-',
& ' $&nu_{&rm e}$',
& ' nue',
& ' $&mu^-$',
& ' mu-',
& ' $&nu_&mu$',
& ' numu',
& ' $&tau^-$',
& ' tau-',
& ' $&nu_&tau$',
& ' nutau',
& ' e$^+$',
& ' e+',
& ' $&bar{&nu}_{&rm e}$',
& ' -nue'/
DATA ((TXNAME(J,I),J=1,2),I=129,136)/
& ' $&mu^+$',
& ' mu+',
& ' $&bar{&nu}_&mu$',
& ' -numu',
& ' $&tau^+$',
& ' tau+',
& ' $&bar{&nu}_&tau$',
& ' -nutau',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' ',
& ' D$^+$',
& ' D+'/
DATA ((TXNAME(J,I),J=1,2),I=137,144)/
& ' D$^{&star+}$',
& ' D*+',
& ' D$_1(H)^+$',
& ' D1(H)+',
& ' D$_2^{&star+}$',
& ' D2*+',
& ' D$^0$',
& ' D0',
& ' D$^{&star0}$',
& ' D*0',
& ' D$_1(H)^0$',
& ' D1(H)0',
& ' D$_2^{&star0}$',
& ' D2*0',
& ' D$_{&rm s}^+$',
& ' Ds+'/
DATA ((TXNAME(J,I),J=1,2),I=145,152)/
& ' D$_{&rm s}^{&star+}$',
& ' Ds*+',
& ' D$_{&rm s1}(H)^+$',
& ' Ds1(H)+',
& ' D$^{&star+}_{&rm s2}$',
& ' Ds1(H)*+',
& ' $&Sigma_{&rm c}^{++}$',
& ' Sigmac++',
& ' $&Sigma_{&rm c}^{&star++}$',
& ' Sigmac*++',
& ' $&Lambda_{&rm c}^+$',
& ' Lambdac+',
& ' $&Sigma_{&rm c}^+$',
& ' Sigmac+',
& ' $&Sigma_{&rm c}^{&star+}$',
& ' Sigmac*+'/
DATA ((TXNAME(J,I),J=1,2),I=153,160)/
& ' $&Sigma_{&rm c}^0$',
& ' Sigmac0',
& ' $&Sigma_{&rm c}^{&star0}$',
& ' Sigmac*0',
& ' $&Xi_{&rm c}^+$',
& ' Xic+',
& ' $&Xi_{&rm c}^{&prime+}$',
& ' Xic''+',
& ' $&Xi_{&rm c}^{&star+}$',
& ' Xic*+',
& ' $&Xi_{&rm c}^0$',
& ' Xic0',
& ' $&Xi_{&rm c}^{&prime0}$',
& ' Xic''0',
& ' $&Xi_{&rm c}^{&star0}$',
& ' Xic*0'/
DATA ((TXNAME(J,I),J=1,2),I=161,168)/
& ' $&Omega_{&rm c}^0$',
& ' Omegac0',
& ' $&Omega_{&rm c}^{&star0}$',
& ' Omegac*0',
& ' $&eta_{&rm c}(1S)$',
& ' etac(1S)',
& ' J/$&psi$',
& ' J/psi',
& ' $&chi_{&rm c0}(1P)$',
& ' chic0(1P)',
& ' $&psi(2S)$',
& ' psi(2S)',
& ' $&psi(1D)$',
& ' psi(1D)',
& ' ',
& ' '/
DATA ((TXNAME(J,I),J=1,2),I=169,176)/
& ' ',
& ' ',
& ' ',
& ' ',
& ' D$^-$',
& ' D-',
& ' D$^{&star-}$',
& ' D*-',
& ' D$_1(H)^-$',
& ' D1(H)-',
& ' D$_2^{&star-}$',
& ' D2*-',
& ' $&overline{&rm D}^0$',
& ' -D0',
& ' $&overline{&rm D}^{&star0}$',
& ' -D*0'/
DATA ((TXNAME(J,I),J=1,2),I=177,184)/
& ' $&overline{&rm D}_1(H)^0$',
& ' -D1(H)0',
& ' $&overline{&rm D}_2^{&star0}$',
& ' -D2*0',
& ' D$_{&rm s}^-$',
& ' Ds-',
& ' D$_{&rm s}^{&star-}$',
& ' Ds*-',
& ' D$_{&rm s1}(H)^-$',
& ' Ds1(H)-',
& ' D$_{&rm s2}^{&star-}$',
& ' Ds1(H)*-',
& ' $&overline{&Sigma}_{&rm c}^{--}$',
& ' -Sigmac--',
& '$&overline{&Sigma}_{&rm c}^{&star--}$',
& ' -Sigmac*--'/
DATA ((TXNAME(J,I),J=1,2),I=185,192)/
& ' $&overline{&Lambda}_{&rm c}^-$',
& ' -Lambdac-',
& ' $&overline{&Sigma}_{&rm c}^-$',
& ' -Sigmac-',
& ' $&overline{&Sigma}_{&rm c}^{&star-}$',
& ' -Sigmac*-',
& ' $&overline{&Sigma}_{&rm c}^0$',
& ' -Sigmac0',
& ' $&overline{&Sigma}_{&rm c}^{&star0}$',
& ' -Sigmac*0',
& ' $&overline{&Xi}_{&rm c}^-$',
& ' -Xic-',
& ' $&overline{&Xi}_{&rm c}^{&prime-}$',
& ' -Xic''-',
& ' $&overline{&Xi}_{&rm c}^{&star-}$',
& ' -Xic*-'/
DATA ((TXNAME(J,I),J=1,2),I=193,200)/
& ' $&overline{&Xi}_{&rm c}^0$',
& ' -Xic0',
& ' $&overline{&Xi}_{&rm c}^{&prime0}$',
& ' -Xic''0',
& ' $&overline{&Xi}_{&rm c}^{&star0}$',
& ' -Xic*0',
& ' $&overline{&Omega}_{&rm c}^0$',
& ' -Omegac0',
& ' $&overline{&Omega}_{&rm c}^{&star0}$',
& ' -Omegac*0',
& ' W$^+$',
& ' W+',
& ' W$^-$',
& ' W-',
& ' Z$^0/&gamma^&star$',
& ' Z0/gamma*'/
DATA ((TXNAME(J,I),J=1,2),I=201,208)/
& ' $H^0_{&rm SM}$',
& ' H0SM',
& ' Z$^{&prime0}$',
& ' Z''0',
& ' $h^0$',
& ' h0',
& ' $H^0$',
& ' H0',
& ' $A^0$',
& ' A0',
& ' $H^+$',
& ' H+',
& ' $H^-$',
& ' H-',
& ' $G$',
& ' G'/
DATA ((TXNAME(J,I),J=1,2),I=209,216)/
& ' V-quark',
& ' V-quark',
& ' A-quark',
& ' A-quark',
& ' H-quark',
& ' H-quark',
& ' H$^&prime$-quark',
& ' H''-quark',
& ' ',
& ' ',
& ' ',
& ' ',
& ' $&overline{&rm V}$-quark',
& ' -V-quark',
& ' $&overline{&rm A}$-quark',
& ' -A-quark'/
DATA ((TXNAME(J,I),J=1,2),I=217,224)/
& ' $&overline{&rm H}$-quark',
& ' -H-quark',
& ' $&overline{&rm H}^&prime$-quark',
& ' -H''-quark',
& ' ',
& ' ',
& ' ',
& ' ',
& ' $&overline{&rm B}_{&rm d}^0$',
& ' -Bd0',
& ' B$^-$',
& ' B-',
& ' $&overline{&rm B}_{&rm s}^0$',
& ' -Bs0',
& ' $&Sigma_{&rm b}^+$',
& ' Sigmab+'/
DATA ((TXNAME(J,I),J=1,2),I=225,232)/
& ' $&Lambda_{&rm b}^0$',
& ' Lambdab0',
& ' $&Sigma_{&rm b}^-$',
& ' Sigmab-',
& ' $&Xi_{&rm b}^0$',
& ' Xib0',
& ' $&Xi_{&rm b}^-$',
& ' Xib-',
& ' $&Omega_{&rm b}^-$',
& ' Omegab-',
& ' B$_{&rm c}^-$',
& ' Bc-',
& ' $&Upsilon(1S)$',
& ' Upsilon(1S)',
& ' T$_{&rm b}^-$',
& ' Tb-'/
DATA ((TXNAME(J,I),J=1,2),I=233,240)/
& ' T$^+$',
& ' T+',
& ' T$^0$',
& ' T0',
& ' T$_{&rm s}^+$',
& ' Ts+',
& ' $&Sigma_{&rm t}^{++}$',
& ' Sigmat++',
& ' $&Lambda_{&rm t}^0$',
& ' Lambdat0',
& ' $&Sigma_{&rm t}^0$',
& ' Sigmat0',
& ' $&chi_{&rm t}^+$',
& ' Xit+',
& ' $&chi_{&rm t}^0$',
& ' Xit0'/
DATA ((TXNAME(J,I),J=1,2),I=241,248)/
& ' $&Omega_{&rm t}^0$',
& ' Omegat0',
& ' T$_{&rm c}^0$',
& ' Tc0',
& ' T$_{&rm b}^+$',
& ' Tb+',
& ' Toponium',
& ' Toponium',
& ' B$_{&rm d}^0$',
& ' Bd0',
& ' B$^+$',
& ' B+',
& ' B$_{&rm s}^0$',
& ' Bs0',
& ' $&overline{&Sigma}_{&rm b}^-$',
& ' -Sigmab-'/
DATA ((TXNAME(J,I),J=1,2),I=249,256)/
& ' $&overline{&Lambda}_{&rm b}^-$',
& ' -Lambdab-',
& ' $&overline{&Sigma}_{&rm b}^+$',
& ' -Sigmab+',
& ' $&overline{&Xi}_{&rm b}^0$',
& ' -Xib0',
& ' $&Xi_{&rm b}^+$',
& ' Xib+',
& ' $&overline{&Omega}_{&rm b}^+$',
& ' -Omegab+',
& ' B$_{&rm c}^+$',
& ' Bc+',
& ' T$^-$',
& ' T-',
& ' $&overline{&rm T}^0$',
& ' T0'/
DATA ((TXNAME(J,I),J=1,2),I=257,264)/
& ' T$_{&rm s}^-$',
& ' Ts-',
& ' $&overline{&Sigma}_{&rm t}^{--}$',
& ' Sigmat--',
& ' $&overline{&Lambda}_{&rm t}^-$',
& ' -Lambdat-',
& ' $&overline{&Sigma}_{&rm t}^0$',
& ' -Sigmat0',
& ' $&overline{&Xi}_{&rm t}^-$',
& ' -Xit-',
& ' $&overline{&Xi}_{&rm t}^0$',
& ' -Xit0',
& ' $&overline{&Omega}_{&rm t}^0$',
& ' -Omegat0',
& ' $&overline{&rm T}_{&rm c}^0$',
& ' Tc0'/
DATA ((TXNAME(J,I),J=1,2),I=265,272)/
& ' $&overline{&rm B}^{&star0}$',
& ' -B*0',
& ' B$^{&star-}$',
& ' B*-',
& ' $&overline{&rm B}_{&rm s}^{&star0}$',
& ' -Bs*0',
& ' $&overline{&rm B}_1(H)^0$',
& ' -B1(H)0',
& ' B$_1(H)^-$',
& ' B1(H)-',
& ' $&overline{&rm B}_{&rm s1}(H)^0$',
& ' -Bs1(H)0',
& ' $&overline{&rm B}_2^{&star0}$',
& ' -B2*0',
& ' B$_2^{&star-}$',
& ' B2*-'/
DATA ((TXNAME(J,I),J=1,2),I=273,280)/
& ' B$_{&rm s2}^{&star0}$',
& ' Bs2*0',
& ' B$^{&star0}$',
& ' B*0',
& ' B$^{&star+}$',
& ' B*+',
& ' B$_{&rm s}^{&star0}$',
& ' Bs*0',
& ' B$_1(H)^0$',
& ' B1(H)0',
& ' B$_1(H)^+$',
& ' B1(H)+',
& ' B$_{&rm s1}(H)^0$',
& ' Bs1(H)0',
& ' B$_2^{&star0}$',
& ' B2*0'/
DATA ((TXNAME(J,I),J=1,2),I=281,288)/
& ' B$_2^{&star+}$',
& ' B2*+',
& ' B$_{&rm s2}^{&star0}$',
& ' Bs2*0',
& ' ',
& ' ',
& ' ',
& ' ',
& ' b$_1^0$',
& ' b10',
& ' b$_1^+$',
& ' b1+',
& ' b$_1^-$',
& ' b1-',
& ' h$_1(L)^0$',
& ' h1(L)0'/
DATA ((TXNAME(J,I),J=1,2),I=289,296)/
& ' h$_1(H)^0$',
& ' h1(H)0',
& ' a$_0(980)^0$',
& ' a0(980)0',
& ' a$_0(980)^+$',
& ' a0(980)+',
& ' a$_0(980)^-$',
& ' a0(980)-',
& ' f$_0(980)$',
& ' f0(980)',
& ' f$_0(1370)$',
& ' f0(1370)',
& ' B$_{&rm c}^{&star+}$',
& ' Bc*+',
& ' B$_{&rm c}^{&star-}$',
& ' Bc*-'/
DATA ((TXNAME(J,I),J=1,2),I=297,304)/
& ' B$_{&rm c1}(H)^+$',
& ' Bc1(H)+',
& ' B$_{&rm c1}(H)^-$',
& ' Bc1(H)-',
& ' B$_{&rm c2}^{&star+}$',
& ' Bc2*+',
& ' B$_{&rm c2}^{&star-}$',
& ' Bc2*-',
& ' h$_{&rm c}(1P)$',
& ' hc(1P)',
& ' $&chi_{&rm c0}(1P)$',
& ' chic0(1P)',
& ' $&chi_{&rm c2}(1P)$',
& ' chic2(1P)',
& ' $&eta_{&rm b}(1S)$',
& ' etab(1S)'/
DATA ((TXNAME(J,I),J=1,2),I=305,312)/
& ' h$_{&rm b}(1P)$',
& ' hb(1P)',
& ' $&chi_{&rm b0}(1P)$',
& ' chib0(1P)',
& ' $&chi_{&rm b1}(1P)$',
& ' chib1(1P)',
& ' $&chi_{&rm b2}(1P)$',
& ' chib2(1P)',
& ' K$_1(L)^0$',
& ' K1(L)0',
& ' K$_1(L)^+$',
& ' K1(L)+',
& ' $&overline{&rm K}_1(L)^0$',
& ' -K1(L)0',
& ' K$_1(L)^-$',
& ' K1(L)-'/
DATA ((TXNAME(J,I),J=1,2),I=313,320)/
& ' D$_1(L)^+$',
& ' D1(L)+',
& ' D$_1(L)^0$',
& ' D1(L)0',
& ' D$_{&rm s1}(L)^+$',
& ' Ds1(L)+',
& ' D$_1(L)^-$',
& ' D1(L)-',
& ' $&overline{&rm D}_1(L)^0$',
& ' D1(L)0',
& ' D$_{&rm s1}(L)^-$',
& ' Ds1(L)-',
& ' B$_1(L)^0$',
& ' B1(L)0',
& ' B$_1(L)^+$',
& ' B1(L)+'/
DATA ((TXNAME(J,I),J=1,2),I=321,328)/
& ' B$_{&rm s1}(L)^0$',
& ' Bs1(L)0',
& ' B$_{&rm c1}(L)^+$',
& ' Bc1(L)+',
& ' $&overline{&rm B}_1(L)^0$',
& ' -B1(L)0',
& ' B$_1(L)^-$',
& ' B1(L)-',
& ' $&overline{&rm B}_{&rm s1}(L)^0$',
& ' -Bs1(L)0',
& ' B$_{&rm c1}(L)^-$',
& ' Bc1(L)-',
& ' K$_0^{&star+}$',
& ' K0*+',
& ' K$_0^{&star0}$',
& ' K0*0'/
DATA ((TXNAME(J,I),J=1,2),I=329,336)/
& ' $&overline{&rm K}_0^{&star0}$',
& ' -K0*0',
& ' K$_0^{&star-}$',
& ' K0*-',
& ' D$_0^{&star+}$',
& ' D0*+',
& ' D$_0^{&star0}$',
& ' D0*0',
& ' D$_{&rm s0}^{&star+}$',
& ' Ds0*+',
& ' D$_0^{&star-}$',
& ' D0*-',
& ' $&overline{&rm D}_0^{&star0}$',
& ' -D0*0',
& ' D$_{&rm s0}^{&star-}$',
& ' Ds0*-'/
DATA ((TXNAME(J,I),J=1,2),I=337,344)/
& ' B$_0^{&star0}$',
& ' B0*0',
& ' B$_0^{&star+}$',
& ' B0*+',
& ' B$_{&rm s0}^{&star0}$',
& ' Bs0*0',
& ' B$_{&rm c0}^{&star+}$',
& ' Bc0*+',
& ' $&overline{&rm B}_0^{&star0}$',
& ' -B0*0',
& ' B$_0^{&star-}$',
& ' B0*-',
& ' $&overline{&rm B}_{&rm s0}^{&star0}$',
& ' -Bs0*0',
& ' B$_{&rm c0}^{&star-}$',
& ' Bc0*-'/
DATA ((TXNAME(J,I),J=1,2),I=345,352)/
& ' $&Sigma_{&rm b}^0$',
& ' Sigmab0',
& ' $&Sigma_{&rm b}^{&star-}$',
& ' Sigmab*-',
& ' $&Sigma_{&rm b}^{&star0}$',
& ' Sigmab*0',
& ' $&Sigma_{&rm b}^{&star+}$',
& ' Sigmab*+',
& ' $&Xi_{&rm b}^{&prime0}$',
& ' Xib''0',
& ' $&Xi_{&rm b}^{&star0}$',
& ' Xib*0',
& ' $&Xi_{&rm b}^{&prime-}$',
& ' Xib''-',
& ' $&Xi_{&rm b}^{&star-}$',
& ' Xib*-'/
DATA ((TXNAME(J,I),J=1,2),I=353,360)/
& ' $&Omega_{&rm b}^{&star-}$',
& ' -Omegab*-',
& ' $&overline{&Sigma}_{&rm b}^{&star+}$',
& ' Sigmab*+',
& ' $&overline{&Sigma}_{&rm b}^0$',
& ' -Sigmab0',
& ' $&overline{&Sigma}_{&rm b}^{&star0}$',
& ' -Sigmab*0',
& ' $&overline{&Sigma}_{&rm b}^{&star-}$',
& ' -Sigmab*-',
& ' $&overline{&Xi}_{&rm b}^{&prime0}$',
& ' -Xib''0',
& ' $&overline{&Xi}_{&rm b}^{&star0}$',
& ' -Xib*0',
& ' $&overline{&Xi}_{&rm b}^{&prime+}$',
& ' -Xib''+'/
DATA ((TXNAME(J,I),J=1,2),I=361,368)/
& ' $&overline{&Xi}_{&rm b}^{&star+}$',
& ' -Xib*+',
& ' $&Omega_{&rm b}^{&star+}$',
& ' Omegab*+',
& ' K$(DL)_2^+$',
& ' K(DL)2+',
& ' K$(DL)_2^0$',
& ' K(DL)20',
& ' $&overline{&rm K}(DL)_2^0$',
& ' -K(DL)20',
& ' K$(DL)_2^-$',
& ' K(DL)2-',
& ' K$(D)^{&star+}$',
& ' K(D)*+',
& ' K$(D)^{&star0}$',
& ' K(D)*0'/
DATA ((TXNAME(J,I),J=1,2),I=369,376)/
& ' $&overline{&rm K}(D)^{&star0}$',
& ' -K(D)*0',
& ' K$(D)^{&star-}$',
& ' K(D)*-',
& ' K$(DH)_2^+$',
& ' K(DH)2+',
& ' K$(DH)_2^0$',
& ' K(DH)20',
& ' $&overline{&rm K}(DH)_2^0$',
& ' -K(DH)20',
& ' K$(DH)_2^-$',
& ' K(DH)2-',
& ' K$(D)_3^+$',
& ' K(D)3+',
& ' K$(D)_3^0$',
& ' K(D)30'/
DATA ((TXNAME(J,I),J=1,2),I=377,384)/
& ' $&overline{&rm K}(D)_3^0$',
& ' -K(D)30',
& ' K$(D)_3^-$',
& ' K(D)3-',
& ' $&pi_2^+$',
& ' pi2+',
& ' $&pi_2^0$',
& ' pi20',
& ' $&pi_2^-$',
& ' pi2-',
& ' $&rho(D)^+$',
& ' rho(D)+',
& ' $&rho(D)^0$',
& ' rho(D)0',
& ' $&rho(D)^-$',
& ' rho(D)-'/
DATA ((TXNAME(J,I),J=1,2),I=385,392)/
& ' $&rho_3^+$',
& ' rho3+',
& ' $&rho_3^0$',
& ' rho30',
& ' $&rho_3^-$',
& ' rho3-',
& ' $&Upsilon(2S)$',
& ' Upsilon(2S)',
& ' $&chi_{&rm b0}(2P)$',
& ' Chib0(2P)',
& ' $&chi_{&rm b1}(2P)$',
& ' Chib1(2P)',
& ' $&chi_{&rm b2}(2P)$',
& ' Chib2(2P)',
& ' $&Upsilon(3S)$',
& ' Upsilon(3S)'/
DATA ((TXNAME(J,I),J=1,2),I=393,400)/
& ' $&Upsilon(4S)$',
& ' Upsilon(4S)',
& ' ',
& ' ',
& ' $&omega_3$',
& ' omega3',
& ' $&phi_3$',
& ' phi3',
& ' $&eta_2(L)$',
& ' eta2(L)',
& ' $&eta_2(H)$',
& ' eta2(H)',
& ' $&omega(H)$',
& ' omega(H)',
& ' ',
& ' '/
DATA ((TXNAME(J,I),J=1,2),I=401,408)/
& ' $&tilde{&rm d}_{&rm L}$',
& ' ~dL',
& ' $&tilde{&rm u}_{&rm L}$',
& ' ~uL',
& ' $&tilde{&rm s}_{&rm L}$',
& ' ~sL',
& ' $&tilde{&rm c}_{&rm L}$',
& ' ~cL',
& ' $&tilde{&rm b}_1$',
& ' ~b1',
& ' $&tilde{&rm t}_1$',
& ' ~t1',
& ' $&overline{&tilde{&rm d}}_{&rm L}$',
& ' -~dL',
& ' $&overline{&tilde{&rm u}}_{&rm L}$',
& ' -~uL'/
DATA ((TXNAME(J,I),J=1,2),I=409,416)/
& ' $&overline{&tilde{&rm s}}_{&rm L}$',
& ' -~sL',
& ' $&overline{&tilde{&rm c}}_{&rm L}$',
& ' -~cL',
& ' $&overline{&tilde{&rm b}}_1$',
& ' -~b1',
& ' $&overline{&tilde{&rm t}}_1$',
& ' -~t1',
& ' $&tilde{&rm d}_{&rm R}$',
& ' ~dR',
& ' $&tilde{&rm u}_{&rm R}$',
& ' ~uR',
& ' $&tilde{&rm s}_{&rm R}$',
& ' ~sR',
& ' $&tilde{&rm c}_{&rm R}$',
& ' ~cR'/
DATA ((TXNAME(J,I),J=1,2),I=417,424)/
& ' $&tilde{&rm b}_2$',
& ' ~b2',
& ' $&tilde{&rm t}_2$',
& ' ~t2',
& ' $&overline{&tilde{&rm d}}_{&rm R}$',
& ' -~dR',
& ' $&overline{&tilde{&rm u}}_{&rm R}$',
& ' -~uR',
& ' $&overline{&tilde{&rm s}}_{&rm R}$',
& ' -~sR',
& ' $&overline{&tilde{&rm c}}_{&rm R}$',
& ' -~cR',
& ' $&overline{&tilde{&rm b}}_2$',
& ' -~b2',
& ' $&overline{&tilde{&rm t}}_2$',
& ' -~t2'/
DATA ((TXNAME(J,I),J=1,2),I=425,432)/
& ' $&tilde{&rm e}^-_{&rm L}$',
& ' ~e-L',
& ' $&tilde{&nu}_{&rm e}$',
& ' ~nue L',
& ' $&tilde{&mu}^-_{&rm L}$',
& ' ~mu-L',
& ' $&tilde{&nu}_&mu$',
& ' ~numu L',
& ' $&tilde{&tau}^-_1$',
& ' ~tau-1',
& ' $&tilde{&nu}_&tau$',
& ' ~nutau L',
& ' $&tilde{&rm e}^+_{&rm L}$',
& ' ~e+L',
& ' $&overline{&tilde{&nu}}_{&rm eL}$',
& ' -~nueL'/
DATA ((TXNAME(J,I),J=1,2),I=433,440)/
& ' $&tilde{&mu}^+_{&rm L}$',
& ' ~mu+L',
& ' $&overline{&tilde{&nu}}_{&rm&mu L}$',
& ' -~numu L',
& ' $&tilde{&tau}^+_1$',
& ' ~tau+1',
& ' $&overline{&tilde{&nu}}_{&rm&tau L}$',
& ' -~nutau L',
& ' $&tilde{&rm e}^-_{&rm R}$',
& ' ~e-R',
& ' $&tilde{&nu}_{&rm eR}$',
& ' ~nue R',
& ' $&tilde{&mu}^-_{&rm R}$',
& ' ~mu-R',
& ' $&tilde{&nu}_{&mu{&rm R}}$',
& ' ~numu R'/
DATA ((TXNAME(J,I),J=1,2),I=441,448)/
& ' $&tilde{&tau}^-_2$',
& ' ~tau-2',
& ' $&tilde{&nu}_{&tau{&rm R}}$',
& ' ~nutau R',
& ' $&tilde{&rm e}^+_{&rm R}$',
& ' ~e+R',
& ' $&overline{&tilde{&nu}}_{&rm eR}$',
& ' -~nue R',
& ' $&tilde{&mu}^+_{&rm R}$',
& ' ~mu+R',
& ' $&overline{&tilde{&nu}}_{&rm&mu R}$',
& ' -~numu R',
& ' $&tilde{&tau}^+_2$',
& ' ~tau+2',
& ' $&overline{&tilde{&nu}}_{&rm&tau R}$',
& ' -~nutau R'/
DATA ((TXNAME(J,I),J=1,2),I=449,456)/
& ' $&tilde{g}$',
& ' ~g',
& ' $&tilde{&chi}^0_1$',
& ' ~chi01',
& ' $&tilde{&chi}^0_2$',
& ' ~chi02',
& ' $&tilde{&chi}^0_3$',
& ' ~chi03',
& ' $&tilde{&chi}^0_4$',
& ' ~chi04',
& ' $&tilde{&chi}^+_1$',
& ' ~chi+1',
& ' $&tilde{&chi}^+_2$',
& ' ~chi+2',
& ' $&tilde{&chi}^-_1$',
& ' ~chi-1'/
DATA ((TXNAME(J,I),J=1,2),I=457,NLAST)/
& ' $&tilde{&chi}^-_2$',
& ' ~chi-2',
& ' $&tilde{G}$',
& ' ~G'/
C
DATA (RNAME(I),I=NNEXT,NMXRES)/NLEFT*' '/
DATA (IDPDG(I),I=NNEXT,NMXRES)/NLEFT*0/
DATA (IFLAV(I),I=NNEXT,NMXRES)/NLEFT*0/
DATA (RMASS(I),I=NNEXT,NMXRES)/NLEFT*0.0000D0/
DATA (RLTIM(I),I=NNEXT,NMXRES)/NLEFT*0.000D+00/
DATA (RSPIN(I),I=NNEXT,NMXRES)/NLEFT*0.0D0/
DATA (TXNAME(1,I),I=NNEXT,NMXRES)/
& NLEFT*' '/
DATA (TXNAME(2,I),I=NNEXT,NMXRES)/
& NLEFT*' '/
C
DATA (RSTAB(I),I=1,NMXRES)/NMXRES*.FALSE./
DATA DKPSET/.FALSE./
C
DATA NDKYS/2263/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 1, 19)/
& 6,0.334D0,100, 2, 7, 5, 0, 0,
& 6,0.333D0,100, 4, 9, 5, 0, 0,
& 6,0.111D0,100,122,127, 5, 0, 0,
& 6,0.111D0,100,124,129, 5, 0, 0,
& 6,0.111D0,100,126,131, 5, 0, 0,
& 12,0.334D0,100, 8, 1, 11, 0, 0,
& 12,0.333D0,100, 10, 3, 11, 0, 0,
& 12,0.111D0,100,128,121, 11, 0, 0,
& 12,0.111D0,100,130,123, 11, 0, 0,
& 12,0.111D0,100,132,125, 11, 0, 0,
& 21,0.988D0, 0, 59, 59, 0, 0, 0,
& 21,0.012D0, 0,127,121, 59, 0, 0,
& 22,0.388D0, 0, 59, 59, 0, 0, 0,
& 22,0.319D0, 0, 21, 21, 21, 0, 0,
& 22,0.001D0, 0, 21, 59, 59, 0, 0,
& 22,0.236D0, 0, 38, 30, 21, 0, 0,
& 22,0.049D0, 0, 38, 30, 59, 0, 0,
& 22,0.005D0, 0,127,121, 59, 0, 0,
& 22,0.002D0, 0, 38, 30,127,121, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 20, 38)/
& 23,0.989D0, 0, 38, 30, 0, 0, 0,
& 23,0.010D0, 0, 38, 30, 59, 0, 0,
& 23,0.001D0, 0, 21, 59, 0, 0, 0,
& 24,0.888D0, 0, 38, 30, 21, 0, 0,
& 24,0.085D0, 0, 21, 59, 0, 0, 0,
& 24,0.022D0, 0, 38, 30, 0, 0, 0,
& 24,0.001D0, 0, 22, 59, 0, 0, 0,
& 24,0.001D0, 0, 21,127,121, 0, 0,
& 24,0.003D0, 0, 38, 30, 21, 21, 0,
& 25,0.437D0, 0, 38, 30, 22, 0, 0,
& 25,0.302D0, 0, 23, 59, 0, 0, 0,
& 25,0.208D0, 0, 21, 21, 22, 0, 0,
& 25,0.030D0, 0, 24, 59, 0, 0, 0,
& 25,0.021D0, 0, 59, 59, 0, 0, 0,
& 25,0.002D0, 0, 21, 21, 21, 0, 0,
& 26,0.566D0, 0, 38, 30, 0, 0, 0,
& 26,0.283D0, 0, 21, 21, 0, 0, 0,
& 26,0.069D0, 0, 38, 30, 21, 21, 0,
& 26,0.023D0, 0, 46, 34, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 39, 57)/
& 26,0.023D0, 0, 50, 42, 0, 0, 0,
& 26,0.028D0, 0, 38, 38, 30, 30, 0,
& 26,0.005D0, 0, 22, 22, 0, 0, 0,
& 26,0.003D0, 0, 21, 21, 21, 21, 0,
& 27,0.499D0, 0, 39, 30, 0, 0, 0,
& 27,0.499D0, 0, 31, 38, 0, 0, 0,
& 27,0.002D0, 0, 21, 59, 59, 0, 0,
& 28,0.148D0, 0, 21, 21, 38, 30, 0,
& 28,0.148D0, 0, 23, 38, 30, 0, 0,
& 28,0.147D0, 0,291, 30, 0, 0, 0,
& 28,0.147D0, 0,290, 21, 0, 0, 0,
& 28,0.147D0, 0,292, 38, 0, 0, 0,
& 28,0.067D0, 0, 22, 38, 30, 0, 0,
& 28,0.033D0, 0, 22, 21, 21, 0, 0,
& 28,0.032D0, 0, 46, 42, 30, 0, 0,
& 28,0.016D0, 0, 46, 34, 21, 0, 0,
& 28,0.016D0, 0, 50, 42, 21, 0, 0,
& 28,0.032D0, 0, 50, 34, 38, 0, 0,
& 28,0.066D0, 0, 59, 23, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 58, 76)/
& 28,0.001D0, 0, 56, 59, 0, 0, 0,
& 29,0.349D0, 0, 39, 30, 0, 0, 0,
& 29,0.349D0, 0, 31, 38, 0, 0, 0,
& 29,0.144D0, 0, 22, 21, 0, 0, 0,
& 29,0.104D0, 0, 24, 38, 30, 0, 0,
& 29,0.024D0, 0, 46, 34, 0, 0, 0,
& 29,0.024D0, 0, 50, 42, 0, 0, 0,
& 29,0.006D0, 0, 25, 21, 0, 0, 0,
& 30,1.000D0, 0,123,130, 0, 0, 0,
& 31,1.000D0, 0, 30, 21, 0, 0, 0,
& 32,0.499D0, 0, 31, 21, 0, 0, 0,
& 32,0.499D0, 0, 23, 30, 0, 0, 0,
& 32,0.002D0, 0, 30, 59, 0, 0, 0,
& 33,0.349D0, 0, 31, 21, 0, 0, 0,
& 33,0.349D0, 0, 23, 30, 0, 0, 0,
& 33,0.144D0, 0, 22, 30, 0, 0, 0,
& 33,0.101D0, 0, 24, 30, 21, 0, 0,
& 33,0.048D0, 0, 50, 34, 0, 0, 0,
& 33,0.006D0, 0, 25, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 77, 95)/
& 33,0.003D0, 0, 30, 59, 0, 0, 0,
& 34,0.629D0, 0,123,130, 0, 0, 0,
& 34,0.212D0, 0, 30, 21, 0, 0, 0,
& 34,0.056D0, 0, 30, 38, 30, 0, 0,
& 34,0.017D0, 0, 30, 21, 21, 0, 0,
& 34,0.048D0,101,121,128, 21, 0, 0,
& 34,0.032D0,101,123,130, 21, 0, 0,
& 34,0.006D0, 0,123,130, 59, 0, 0,
& 35,0.666D0, 0, 42, 30, 0, 0, 0,
& 35,0.333D0, 0, 34, 21, 0, 0, 0,
& 35,0.001D0, 0, 34, 59, 0, 0, 0,
& 36,0.627D0, 0, 43, 30, 0, 0, 0,
& 36,0.313D0, 0, 35, 21, 0, 0, 0,
& 36,0.020D0, 0, 42, 31, 0, 0, 0,
& 36,0.010D0, 0, 34, 23, 0, 0, 0,
& 36,0.020D0, 0, 34,294, 0, 0, 0,
& 36,0.010D0, 0, 34, 24, 0, 0, 0,
& 37,0.331D0, 0, 42, 30, 0, 0, 0,
& 37,0.166D0, 0, 34, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 96, 114)/
& 37,0.168D0, 0, 43, 30, 0, 0, 0,
& 37,0.084D0, 0, 35, 21, 0, 0, 0,
& 37,0.087D0, 0, 35, 38, 30, 0, 0,
& 37,0.044D0, 0, 35, 21, 21, 0, 0,
& 37,0.059D0, 0, 42, 31, 0, 0, 0,
& 37,0.029D0, 0, 34, 23, 0, 0, 0,
& 37,0.029D0, 0, 34, 24, 0, 0, 0,
& 37,0.002D0, 0, 34, 59, 0, 0, 0,
& 37,0.001D0, 0, 34, 22, 0, 0, 0,
& 38,1.000D0, 0,129,124, 0, 0, 0,
& 39,1.000D0, 0, 38, 21, 0, 0, 0,
& 40,0.499D0, 0, 39, 21, 0, 0, 0,
& 40,0.499D0, 0, 23, 38, 0, 0, 0,
& 40,0.002D0, 0, 38, 59, 0, 0, 0,
& 41,0.349D0, 0, 39, 21, 0, 0, 0,
& 41,0.349D0, 0, 23, 38, 0, 0, 0,
& 41,0.144D0, 0, 22, 38, 0, 0, 0,
& 41,0.101D0, 0, 24, 38, 21, 0, 0,
& 41,0.048D0, 0, 46, 42, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 115, 133)/
& 41,0.006D0, 0, 25, 38, 0, 0, 0,
& 41,0.003D0, 0, 38, 59, 0, 0, 0,
& 42,0.500D0, 0, 60, 0, 0, 0, 0,
& 42,0.500D0, 0, 61, 0, 0, 0, 0,
& 43,0.665D0, 0, 34, 38, 0, 0, 0,
& 43,0.333D0, 0, 42, 21, 0, 0, 0,
& 43,0.002D0, 0, 42, 59, 0, 0, 0,
& 44,0.627D0, 0, 35, 38, 0, 0, 0,
& 44,0.313D0, 0, 43, 21, 0, 0, 0,
& 44,0.020D0, 0, 34, 39, 0, 0, 0,
& 44,0.010D0, 0, 42, 23, 0, 0, 0,
& 44,0.020D0, 0, 42,294, 0, 0, 0,
& 44,0.010D0, 0, 42, 24, 0, 0, 0,
& 45,0.331D0, 0, 34, 38, 0, 0, 0,
& 45,0.166D0, 0, 42, 21, 0, 0, 0,
& 45,0.168D0, 0, 35, 38, 0, 0, 0,
& 45,0.084D0, 0, 43, 21, 0, 0, 0,
& 45,0.089D0, 0, 42, 38, 30, 0, 0,
& 45,0.044D0, 0, 42, 21, 21, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 134, 152)/
& 45,0.059D0, 0, 34, 39, 0, 0, 0,
& 45,0.029D0, 0, 42, 23, 0, 0, 0,
& 45,0.029D0, 0, 42, 24, 0, 0, 0,
& 45,0.001D0, 0, 42, 22, 0, 0, 0,
& 46,0.629D0, 0,129,124, 0, 0, 0,
& 46,0.212D0, 0, 38, 21, 0, 0, 0,
& 46,0.056D0, 0, 38, 38, 30, 0, 0,
& 46,0.017D0, 0, 38, 21, 21, 0, 0,
& 46,0.032D0,101,129,124, 21, 0, 0,
& 46,0.048D0,101,127,122, 21, 0, 0,
& 46,0.006D0, 0,129,124, 59, 0, 0,
& 47,0.666D0, 0, 50, 38, 0, 0, 0,
& 47,0.333D0, 0, 46, 21, 0, 0, 0,
& 47,0.001D0, 0, 46, 59, 0, 0, 0,
& 48,0.627D0, 0, 51, 38, 0, 0, 0,
& 48,0.313D0, 0, 47, 21, 0, 0, 0,
& 48,0.020D0, 0, 50, 39, 0, 0, 0,
& 48,0.010D0, 0, 46, 23, 0, 0, 0,
& 48,0.020D0, 0, 46,294, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 153, 171)/
& 48,0.010D0, 0, 46, 24, 0, 0, 0,
& 49,0.331D0, 0, 50, 38, 0, 0, 0,
& 49,0.166D0, 0, 46, 21, 0, 0, 0,
& 49,0.168D0, 0, 51, 38, 0, 0, 0,
& 49,0.084D0, 0, 47, 21, 0, 0, 0,
& 49,0.087D0, 0, 47, 38, 30, 0, 0,
& 49,0.044D0, 0, 47, 21, 21, 0, 0,
& 49,0.059D0, 0, 50, 39, 0, 0, 0,
& 49,0.029D0, 0, 46, 23, 0, 0, 0,
& 49,0.029D0, 0, 46, 24, 0, 0, 0,
& 49,0.002D0, 0, 46, 59, 0, 0, 0,
& 49,0.001D0, 0, 46, 22, 0, 0, 0,
& 50,0.500D0, 0, 60, 0, 0, 0, 0,
& 50,0.500D0, 0, 61, 0, 0, 0, 0,
& 51,0.665D0, 0, 46, 30, 0, 0, 0,
& 51,0.333D0, 0, 50, 21, 0, 0, 0,
& 51,0.002D0, 0, 50, 59, 0, 0, 0,
& 52,0.627D0, 0, 47, 30, 0, 0, 0,
& 52,0.313D0, 0, 51, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 172, 190)/
& 52,0.020D0, 0, 46, 31, 0, 0, 0,
& 52,0.010D0, 0, 50, 23, 0, 0, 0,
& 52,0.020D0, 0, 50,294, 0, 0, 0,
& 52,0.010D0, 0, 50, 24, 0, 0, 0,
& 53,0.331D0, 0, 46, 30, 0, 0, 0,
& 53,0.166D0, 0, 50, 21, 0, 0, 0,
& 53,0.168D0, 0, 47, 30, 0, 0, 0,
& 53,0.084D0, 0, 51, 21, 0, 0, 0,
& 53,0.089D0, 0, 50, 38, 30, 0, 0,
& 53,0.044D0, 0, 50, 21, 21, 0, 0,
& 53,0.059D0, 0, 46, 31, 0, 0, 0,
& 53,0.029D0, 0, 50, 23, 0, 0, 0,
& 53,0.029D0, 0, 50, 24, 0, 0, 0,
& 53,0.001D0, 0, 50, 22, 0, 0, 0,
& 56,0.490D0, 0, 46, 34, 0, 0, 0,
& 56,0.342D0, 0, 61, 60, 0, 0, 0,
& 56,0.043D0, 0, 39, 30, 0, 0, 0,
& 56,0.043D0, 0, 23, 21, 0, 0, 0,
& 56,0.043D0, 0, 31, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 191, 209)/
& 56,0.025D0, 0, 38, 30, 21, 0, 0,
& 56,0.013D0, 0, 22, 59, 0, 0, 0,
& 56,0.001D0, 0, 21, 59, 0, 0, 0,
& 57,0.250D0, 0, 50, 43, 0, 0, 0,
& 57,0.250D0, 0, 34, 47, 0, 0, 0,
& 57,0.250D0, 0, 42, 51, 0, 0, 0,
& 57,0.250D0, 0, 46, 35, 0, 0, 0,
& 58,0.356D0, 0, 46, 34, 0, 0, 0,
& 58,0.356D0, 0, 50, 42, 0, 0, 0,
& 58,0.279D0, 0, 22, 22, 0, 0, 0,
& 58,0.006D0, 0, 38, 30, 0, 0, 0,
& 58,0.003D0, 0, 21, 21, 0, 0, 0,
& 60,0.684D0, 0, 38, 30, 0, 0, 0,
& 60,0.314D0, 0, 21, 21, 0, 0, 0,
& 60,0.002D0, 0, 38, 30, 59, 0, 0,
& 61,0.216D0, 0, 21, 21, 21, 0, 0,
& 61,0.124D0, 0, 38, 30, 21, 0, 0,
& 61,0.135D0,101,123,130, 38, 0, 0,
& 61,0.135D0,101,124,129, 30, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 210, 228)/
& 61,0.187D0,101,121,128, 38, 0, 0,
& 61,0.187D0,101,122,127, 30, 0, 0,
& 61,0.006D0, 0,121,128, 38, 59, 0,
& 61,0.006D0, 0,122,127, 30, 59, 0,
& 61,0.002D0, 0, 38, 30, 0, 0, 0,
& 61,0.001D0, 0, 21, 21, 0, 0, 0,
& 61,0.001D0, 0, 59, 59, 0, 0, 0,
& 74,0.663D0, 0, 73, 21, 0, 0, 0,
& 74,0.331D0, 0, 75, 38, 0, 0, 0,
& 74,0.006D0, 0, 73, 59, 0, 0, 0,
& 75,1.000D0,101,121,128, 73, 0, 0,
& 76,0.663D0, 0, 75, 21, 0, 0, 0,
& 76,0.331D0, 0, 73, 30, 0, 0, 0,
& 76,0.006D0, 0, 75, 59, 0, 0, 0,
& 77,1.000D0, 0, 75, 30, 0, 0, 0,
& 78,0.638D0, 0, 73, 30, 0, 0, 0,
& 78,0.358D0, 0, 75, 21, 0, 0, 0,
& 78,0.002D0, 0, 75, 59, 0, 0, 0,
& 78,0.001D0, 0, 73, 30, 59, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 229, 247)/
& 78,0.001D0,101,121,128, 73, 0, 0,
& 79,0.995D0, 0, 78, 59, 0, 0, 0,
& 79,0.005D0, 0, 78,127,121, 0, 0,
& 80,0.880D0, 0, 78, 21, 0, 0, 0,
& 80,0.060D0, 0, 86, 30, 0, 0, 0,
& 80,0.060D0, 0, 81, 38, 0, 0, 0,
& 81,0.998D0, 0, 75, 30, 0, 0, 0,
& 81,0.001D0, 0, 75, 30, 59, 0, 0,
& 81,0.001D0,101,121,128, 75, 0, 0,
& 82,0.880D0, 0, 78, 30, 0, 0, 0,
& 82,0.060D0, 0, 79, 30, 0, 0, 0,
& 82,0.060D0, 0, 81, 21, 0, 0, 0,
& 83,0.999D0, 0, 78, 30, 0, 0, 0,
& 83,0.001D0,101,121,128, 78, 0, 0,
& 84,0.667D0, 0, 88, 30, 0, 0, 0,
& 84,0.333D0, 0, 83, 21, 0, 0, 0,
& 85,1.000D0, 0, 73, 38, 0, 0, 0,
& 86,0.516D0, 0, 73, 21, 0, 0, 0,
& 86,0.483D0, 0, 75, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 248, 266)/
& 86,0.001D0, 0, 73, 59, 0, 0, 0,
& 87,0.880D0, 0, 78, 38, 0, 0, 0,
& 87,0.060D0, 0, 86, 21, 0, 0, 0,
& 87,0.060D0, 0, 79, 38, 0, 0, 0,
& 88,0.995D0, 0, 78, 21, 0, 0, 0,
& 88,0.001D0, 0, 78, 59, 0, 0, 0,
& 88,0.004D0, 0, 79, 59, 0, 0, 0,
& 89,0.667D0, 0, 83, 38, 0, 0, 0,
& 89,0.333D0, 0, 88, 21, 0, 0, 0,
& 90,0.675D0, 0, 78, 34, 0, 0, 0,
& 90,0.233D0, 0, 88, 30, 0, 0, 0,
& 90,0.086D0, 0, 83, 21, 0, 0, 0,
& 90,0.006D0,101,121,128, 88, 0, 0,
& 92,0.663D0, 0, 91, 21, 0, 0, 0,
& 92,0.331D0, 0, 93, 30, 0, 0, 0,
& 92,0.006D0, 0, 91, 59, 0, 0, 0,
& 93,1.000D0,101,127,122, 91, 0, 0,
& 94,0.663D0, 0, 93, 21, 0, 0, 0,
& 94,0.331D0, 0, 91, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 267, 285)/
& 94,0.006D0, 0, 93, 59, 0, 0, 0,
& 95,1.000D0, 0, 93, 38, 0, 0, 0,
& 96,0.638D0, 0, 91, 38, 0, 0, 0,
& 96,0.358D0, 0, 93, 21, 0, 0, 0,
& 96,0.002D0, 0, 93, 59, 0, 0, 0,
& 96,0.001D0, 0, 91, 38, 59, 0, 0,
& 96,0.001D0,101,127,122, 91, 0, 0,
& 97,0.995D0, 0, 96, 59, 0, 0, 0,
& 97,0.005D0, 0, 96,127,121, 0, 0,
& 98,0.880D0, 0, 96, 21, 0, 0, 0,
& 98,0.060D0, 0,104, 38, 0, 0, 0,
& 98,0.060D0, 0, 99, 30, 0, 0, 0,
& 99,0.998D0, 0, 93, 38, 0, 0, 0,
& 99,0.001D0, 0, 93, 38, 59, 0, 0,
& 99,0.001D0,101,127,122, 93, 0, 0,
& 100,0.880D0, 0, 96, 38, 0, 0, 0,
& 100,0.060D0, 0, 97, 38, 0, 0, 0,
& 100,0.060D0, 0, 99, 21, 0, 0, 0,
& 101,0.999D0, 0, 96, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 286, 304)/
& 101,0.001D0,101,127,122, 96, 0, 0,
& 102,0.667D0, 0,106, 38, 0, 0, 0,
& 102,0.333D0, 0,101, 21, 0, 0, 0,
& 103,1.000D0, 0, 91, 30, 0, 0, 0,
& 104,0.516D0, 0, 91, 21, 0, 0, 0,
& 104,0.483D0, 0, 93, 30, 0, 0, 0,
& 104,0.001D0, 0, 91, 59, 0, 0, 0,
& 105,0.880D0, 0, 96, 30, 0, 0, 0,
& 105,0.060D0, 0,104, 21, 0, 0, 0,
& 105,0.060D0, 0, 97, 30, 0, 0, 0,
& 106,0.995D0, 0, 96, 21, 0, 0, 0,
& 106,0.001D0, 0, 96, 59, 0, 0, 0,
& 106,0.004D0, 0, 97, 59, 0, 0, 0,
& 107,0.667D0, 0,101, 30, 0, 0, 0,
& 107,0.333D0, 0,106, 21, 0, 0, 0,
& 108,0.675D0, 0, 96, 46, 0, 0, 0,
& 108,0.233D0, 0,106, 38, 0, 0, 0,
& 108,0.086D0, 0,101, 21, 0, 0, 0,
& 108,0.006D0,101,127,122,106, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 305, 323)/
& 123,0.986D0,100,121,128,124, 0, 0,
& 123,0.014D0, 0,121,128,124, 59, 0,
& 125,0.178D0,100,121,128,126, 0, 0,
& 125,0.171D0,100,123,130,126, 0, 0,
& 125,0.002D0, 0,123,130, 59,126, 0,
& 125,0.111D0, 0, 30,126, 0, 0, 0,
& 125,0.253D0, 0, 31,126, 0, 0, 0,
& 125,0.181D0, 0, 32,126, 0, 0, 0,
& 125,0.002D0, 0, 30, 22, 21,126, 0,
& 125,0.018D0, 0, 30, 24,126, 0, 0,
& 125,0.004D0, 0, 30, 24, 21,126, 0,
& 125,0.015D0, 0, 31, 23,126, 0, 0,
& 125,0.001D0, 0, 31, 24, 21,126, 0,
& 125,0.024D0, 0, 32, 21,126, 0, 0,
& 125,0.002D0, 0, 32, 38, 30,126, 0,
& 125,0.007D0, 0, 34,126, 0, 0, 0,
& 125,0.014D0, 0, 35,126, 0, 0, 0,
& 125,0.003D0, 0, 35, 21,126, 0, 0,
& 125,0.001D0, 0, 34, 38, 30,126, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 324, 342)/
& 125,0.004D0, 0, 30, 43,126, 0, 0,
& 125,0.003D0, 0, 34, 50,126, 0, 0,
& 125,0.003D0, 0, 34, 51,126, 0, 0,
& 125,0.003D0, 0, 30, 50, 42,126, 0,
& 129,0.986D0,100,127,122,130, 0, 0,
& 129,0.014D0, 0,127,122,130, 59, 0,
& 131,0.178D0,100,127,122,132, 0, 0,
& 131,0.171D0,100,129,124,132, 0, 0,
& 131,0.002D0, 0,129,124, 59,132, 0,
& 131,0.111D0, 0, 38,132, 0, 0, 0,
& 131,0.253D0, 0, 39,132, 0, 0, 0,
& 131,0.181D0, 0, 40,132, 0, 0, 0,
& 131,0.002D0, 0, 38, 22, 21,132, 0,
& 131,0.018D0, 0, 38, 24,132, 0, 0,
& 131,0.004D0, 0, 38, 24, 21,132, 0,
& 131,0.015D0, 0, 39, 23,132, 0, 0,
& 131,0.001D0, 0, 39, 24, 21,132, 0,
& 131,0.024D0, 0, 40, 21,132, 0, 0,
& 131,0.002D0, 0, 40, 38, 30,132, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 343, 361)/
& 131,0.007D0, 0, 46,132, 0, 0, 0,
& 131,0.014D0, 0, 47,132, 0, 0, 0,
& 131,0.003D0, 0, 47, 21,132, 0, 0,
& 131,0.001D0, 0, 46, 38, 30,132, 0,
& 131,0.004D0, 0, 38, 51,132, 0, 0,
& 131,0.003D0, 0, 46, 42,132, 0, 0,
& 131,0.003D0, 0, 46, 43,132, 0, 0,
& 131,0.003D0, 0, 38, 50, 42,132, 0,
& 136,0.067D0,101,122,127, 42, 0, 0,
& 136,0.067D0,101,124,129, 42, 0, 0,
& 136,0.048D0,101,122,127, 43, 0, 0,
& 136,0.048D0,101,124,129, 43, 0, 0,
& 136,0.003D0, 0, 34, 38,122,127, 0,
& 136,0.003D0, 0, 34, 38,124,129, 0,
& 136,0.006D0,101,122,127, 21, 0, 0,
& 136,0.006D0,101,124,129, 21, 0, 0,
& 136,0.002D0,101,122,127, 23, 0, 0,
& 136,0.002D0,101,124,129, 23, 0, 0,
& 136,0.055D0, 0, 34, 38, 38, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 362, 380)/
& 136,0.031D0, 0, 34, 39, 38, 0, 0,
& 136,0.042D0, 0, 34, 38, 38, 21, 21,
& 136,0.002D0, 0, 34, 38, 38, 38, 31,
& 136,0.021D0, 0, 35, 38, 38, 0, 0,
& 136,0.027D0, 0, 42, 38, 0, 0, 0,
& 136,0.066D0, 0, 42, 39, 0, 0, 0,
& 136,0.081D0, 0, 42, 40, 0, 0, 0,
& 136,0.024D0, 0, 42, 38, 21, 0, 0,
& 136,0.004D0, 0, 42, 38, 23, 0, 0,
& 136,0.069D0, 0, 42, 38, 38, 30, 21,
& 136,0.001D0, 0, 42, 38, 38, 30, 23,
& 136,0.022D0, 0, 43, 38, 0, 0, 0,
& 136,0.021D0, 0, 43, 39, 0, 0, 0,
& 136,0.042D0, 0, 43, 38, 21, 0, 0,
& 136,0.008D0, 0, 43, 38, 23, 0, 0,
& 136,0.010D0, 0, 43, 38, 38, 30, 0,
& 136,0.050D0, 0,311, 38, 0, 0, 0,
& 136,0.034D0, 0,329, 38, 0, 0, 0,
& 136,0.010D0, 0,369, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 381, 399)/
& 136,0.031D0, 0, 46, 42, 42, 0, 0,
& 136,0.003D0, 0, 38, 21, 0, 0, 0,
& 136,0.001D0, 0, 38, 23, 0, 0, 0,
& 136,0.002D0, 0, 38, 38, 30, 0, 0,
& 136,0.008D0, 0, 38, 22, 0, 0, 0,
& 136,0.001D0, 0, 38, 38, 38, 30, 30,
& 136,0.003D0, 0, 38, 38, 38, 30, 31,
& 136,0.008D0, 0, 46, 42, 0, 0, 0,
& 136,0.005D0, 0, 46, 43, 0, 0, 0,
& 136,0.026D0, 0, 47, 43, 0, 0, 0,
& 136,0.005D0, 0, 46, 34, 38, 0, 0,
& 136,0.007D0, 0, 38, 56, 0, 0, 0,
& 136,0.023D0, 0, 38, 56, 21, 0, 0,
& 136,0.005D0, 0, 46, 46, 34, 0, 0,
& 137,0.683D0, 0,140, 38, 0, 0, 0,
& 137,0.306D0, 0,136, 21, 0, 0, 0,
& 137,0.011D0, 0,136, 59, 0, 0, 0,
& 138,0.667D0, 0,141, 38, 0, 0, 0,
& 138,0.333D0, 0,137, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 400, 418)/
& 139,0.220D0, 0,140, 38, 0, 0, 0,
& 139,0.110D0, 0,136, 21, 0, 0, 0,
& 139,0.380D0, 0,141, 38, 0, 0, 0,
& 139,0.190D0, 0,137, 21, 0, 0, 0,
& 139,0.004D0, 0,136, 22, 0, 0, 0,
& 139,0.064D0, 0,141, 38, 21, 0, 0,
& 139,0.032D0, 0,137, 38, 30, 0, 0,
& 140,0.037D0,101,122,127, 34, 0, 0,
& 140,0.037D0,101,124,129, 34, 0, 0,
& 140,0.016D0,101,122,127, 35, 0, 0,
& 140,0.016D0,101,124,129, 35, 0, 0,
& 140,0.013D0, 0, 34, 21,122,127, 0,
& 140,0.013D0, 0, 34, 21,124,129, 0,
& 140,0.012D0, 0, 42, 30,122,127, 0,
& 140,0.012D0, 0, 42, 30,124,129, 0,
& 140,0.003D0,101,122,127, 30, 0, 0,
& 140,0.003D0,101,124,129, 30, 0, 0,
& 140,0.039D0, 0, 34, 38, 0, 0, 0,
& 140,0.091D0, 0, 34, 39, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 419, 437)/
& 140,0.067D0, 0, 34, 40, 0, 0, 0,
& 140,0.004D0, 0, 34, 38, 21, 0, 0,
& 140,0.100D0, 0, 34, 38, 21, 21, 0,
& 140,0.058D0, 0, 34, 38, 23, 0, 0,
& 140,0.020D0, 0, 34, 38, 24, 0, 0,
& 140,0.006D0, 0, 34, 38, 25, 0, 0,
& 140,0.043D0, 0, 35, 38, 0, 0, 0,
& 140,0.035D0, 0, 35, 39, 0, 0, 0,
& 140,0.007D0, 0,312, 38, 0, 0, 0,
& 140,0.007D0, 0,330, 38, 0, 0, 0,
& 140,0.020D0, 0, 42, 21, 0, 0, 0,
& 140,0.006D0, 0, 42, 22, 0, 0, 0,
& 140,0.009D0, 0, 42, 23, 0, 0, 0,
& 140,0.016D0, 0, 42, 24, 0, 0, 0,
& 140,0.014D0, 0, 42, 25, 0, 0, 0,
& 140,0.003D0, 0, 42,293, 0, 0, 0,
& 140,0.007D0, 0, 42, 56, 0, 0, 0,
& 140,0.003D0, 0, 42, 26, 0, 0, 0,
& 140,0.004D0, 0, 42,294, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 438, 456)/
& 140,0.006D0, 0, 42, 21, 21, 0, 0,
& 140,0.042D0, 0, 42, 38, 30, 21, 0,
& 140,0.004D0, 0, 42, 38, 38, 30, 30,
& 140,0.076D0, 0, 42, 38, 30, 21, 21,
& 140,0.026D0, 0, 43, 21, 0, 0, 0,
& 140,0.014D0, 0, 43, 22, 0, 0, 0,
& 140,0.014D0, 0, 43, 23, 0, 0, 0,
& 140,0.011D0, 0, 43, 24, 0, 0, 0,
& 140,0.018D0, 0, 43, 38, 30, 0, 0,
& 140,0.004D0, 0, 42, 46, 34, 0, 0,
& 140,0.004D0, 0, 42, 46, 34, 21, 0,
& 140,0.005D0, 0, 42, 42, 50, 0, 0,
& 140,0.002D0, 0, 38, 30, 0, 0, 0,
& 140,0.001D0, 0, 21, 21, 0, 0, 0,
& 140,0.008D0, 0, 38, 30, 21, 0, 0,
& 140,0.007D0, 0, 38, 38, 30, 30, 0,
& 140,0.015D0, 0, 38, 38, 30, 30, 21,
& 140,0.004D0, 0, 46, 34, 0, 0, 0,
& 140,0.003D0, 0, 47, 34, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 457, 475)/
& 140,0.002D0, 0, 46, 35, 0, 0, 0,
& 140,0.001D0, 0, 50, 42, 0, 0, 0,
& 140,0.002D0, 0, 51, 43, 0, 0, 0,
& 140,0.003D0, 0, 50, 34, 38, 0, 0,
& 140,0.003D0, 0, 42, 46, 30, 0, 0,
& 140,0.001D0, 0, 46, 34, 38, 30, 21,
& 140,0.002D0, 0, 56, 23, 0, 0, 0,
& 140,0.001D0, 0, 56, 38, 30, 0, 0,
& 141,0.636D0, 0,140, 21, 0, 0, 0,
& 141,0.364D0, 0,140, 59, 0, 0, 0,
& 142,0.667D0, 0,137, 30, 0, 0, 0,
& 142,0.333D0, 0,141, 21, 0, 0, 0,
& 143,0.220D0, 0,136, 30, 0, 0, 0,
& 143,0.110D0, 0,140, 21, 0, 0, 0,
& 143,0.380D0, 0,137, 30, 0, 0, 0,
& 143,0.190D0, 0,141, 21, 0, 0, 0,
& 143,0.004D0, 0,140, 22, 0, 0, 0,
& 143,0.064D0, 0,137, 30, 21, 0, 0,
& 143,0.032D0, 0,141, 38, 30, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 476, 494)/
& 144,0.009D0, 0,124,129, 0, 0, 0,
& 144,0.019D0,101,122,127, 56, 0, 0,
& 144,0.019D0,101,124,129, 56, 0, 0,
& 144,0.025D0,101,122,127, 22, 0, 0,
& 144,0.025D0,101,124,129, 22, 0, 0,
& 144,0.009D0,101,122,127, 25, 0, 0,
& 144,0.009D0,101,124,129, 25, 0, 0,
& 144,0.036D0, 0, 46, 42, 0, 0, 0,
& 144,0.034D0, 0, 46, 43, 0, 0, 0,
& 144,0.007D0, 0, 46,329, 0, 0, 0,
& 144,0.043D0, 0, 47, 42, 0, 0, 0,
& 144,0.058D0, 0, 47, 43, 0, 0, 0,
& 144,0.011D0, 0, 46, 34, 38, 0, 0,
& 144,0.055D0, 0, 46, 34, 38, 21, 0,
& 144,0.003D0, 0, 46, 34, 38, 38, 30,
& 144,0.014D0, 0, 46, 42, 38, 30, 0,
& 144,0.017D0, 0, 50, 34, 38, 38, 0,
& 144,0.036D0, 0, 56, 38, 0, 0, 0,
& 144,0.067D0, 0, 56, 39, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 495, 513)/
& 144,0.023D0, 0, 56, 38, 21, 0, 0,
& 144,0.018D0, 0, 56, 38, 38, 30, 0,
& 144,0.020D0, 0, 22, 38, 0, 0, 0,
& 144,0.001D0, 0, 23, 38, 0, 0, 0,
& 144,0.009D0, 0, 24, 38, 0, 0, 0,
& 144,0.049D0, 0, 25, 38, 0, 0, 0,
& 144,0.011D0, 0,293, 38, 0, 0, 0,
& 144,0.015D0, 0, 22, 38, 21, 0, 0,
& 144,0.016D0, 0, 25, 38, 21, 0, 0,
& 144,0.103D0, 0, 22, 39, 0, 0, 0,
& 144,0.120D0, 0, 25, 39, 0, 0, 0,
& 144,0.010D0, 0, 38, 38, 30, 0, 0,
& 144,0.046D0, 0, 38, 38, 30, 21, 0,
& 144,0.003D0, 0, 38, 38, 38, 30, 30,
& 144,0.042D0, 0, 38, 30, 30, 38, 39,
& 144,0.001D0, 0, 46, 23, 0, 0, 0,
& 144,0.005D0, 0, 46, 38, 30, 0, 0,
& 144,0.001D0, 0, 46, 56, 0, 0, 0,
& 144,0.004D0, 0, 50, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 514, 532)/
& 144,0.007D0, 0, 51, 38, 0, 0, 0,
& 145,0.900D0, 0,144, 59, 0, 0, 0,
& 145,0.100D0, 0,144, 21, 0, 0, 0,
& 146,0.500D0, 0,137, 50, 0, 0, 0,
& 146,0.500D0, 0,141, 46, 0, 0, 0,
& 147,0.440D0, 0,136, 50, 0, 0, 0,
& 147,0.440D0, 0,140, 46, 0, 0, 0,
& 147,0.055D0, 0,137, 50, 0, 0, 0,
& 147,0.055D0, 0,141, 46, 0, 0, 0,
& 147,0.010D0, 0,144, 22, 0, 0, 0,
& 148,1.000D0, 0,150, 38, 0, 0, 0,
& 149,1.000D0, 0,150, 38, 0, 0, 0,
& 150,0.028D0,101,122,127, 78, 0, 0,
& 150,0.010D0,101,122,127, 80, 0, 0,
& 150,0.028D0,101,124,129, 78, 0, 0,
& 150,0.010D0,101,124,129, 80, 0, 0,
& 150,0.026D0, 0, 73, 42, 0, 0, 0,
& 150,0.030D0, 0, 73, 42, 21, 0, 0,
& 150,0.029D0, 0, 73, 42, 38, 30, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 533, 551)/
& 150,0.014D0, 0, 73, 42, 22, 0, 0,
& 150,0.020D0, 0, 73, 43, 0, 0, 0,
& 150,0.029D0, 0, 73, 34, 38, 0, 0,
& 150,0.039D0, 0, 73, 34, 38, 21, 0,
& 150,0.002D0, 0, 73, 34, 38, 38, 30,
& 150,0.010D0, 0, 73, 34, 38, 21, 21,
& 150,0.014D0, 0, 73, 35, 38, 0, 0,
& 150,0.010D0, 0, 74, 42, 0, 0, 0,
& 150,0.020D0, 0, 74, 43, 0, 0, 0,
& 150,0.010D0, 0, 74, 43, 21, 0, 0,
& 150,0.007D0, 0, 85, 34, 0, 0, 0,
& 150,0.014D0, 0, 85, 35, 0, 0, 0,
& 150,0.004D0, 0, 73,293, 0, 0, 0,
& 150,0.003D0, 0, 73, 38, 30, 0, 0,
& 150,0.003D0, 0, 73, 38, 30, 38, 30,
& 150,0.001D0, 0, 73, 56, 0, 0, 0,
& 150,0.002D0, 0, 73, 46, 34, 0, 0,
& 150,0.010D0, 0, 78, 38, 0, 0, 0,
& 150,0.020D0, 0, 78, 39, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 552, 570)/
& 150,0.030D0, 0, 78, 38, 21, 0, 0,
& 150,0.010D0, 0, 78, 38, 22, 0, 0,
& 150,0.020D0, 0, 78, 38, 24, 0, 0,
& 150,0.035D0, 0, 78, 38, 38, 30, 0,
& 150,0.020D0, 0, 78, 38, 21, 21, 0,
& 150,0.010D0, 0, 78, 38, 38, 30, 21,
& 150,0.010D0, 0, 78, 38, 21, 21, 21,
& 150,0.007D0, 0, 78, 46, 42, 0, 0,
& 150,0.011D0, 0, 79, 38, 0, 0, 0,
& 150,0.022D0, 0, 79, 38, 21, 0, 0,
& 150,0.013D0, 0, 79, 38, 38, 30, 0,
& 150,0.010D0, 0, 79, 38, 21, 21, 0,
& 150,0.007D0, 0, 79, 38, 38, 30, 21,
& 150,0.005D0, 0, 79, 38, 21, 21, 21,
& 150,0.005D0, 0, 80, 38, 0, 0, 0,
& 150,0.015D0, 0, 80, 39, 0, 0, 0,
& 150,0.011D0, 0, 86, 21, 0, 0, 0,
& 150,0.007D0, 0, 86, 22, 0, 0, 0,
& 150,0.010D0, 0, 86, 23, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 571, 589)/
& 150,0.031D0, 0, 86, 24, 0, 0, 0,
& 150,0.010D0, 0, 86, 25, 0, 0, 0,
& 150,0.004D0, 0, 86, 56, 0, 0, 0,
& 150,0.026D0, 0, 86, 38, 30, 0, 0,
& 150,0.005D0, 0, 86, 38, 38, 30, 30,
& 150,0.005D0, 0, 86, 38, 30, 21, 21,
& 150,0.005D0, 0, 87, 21, 0, 0, 0,
& 150,0.006D0, 0, 87, 23, 0, 0, 0,
& 150,0.004D0, 0, 86, 46, 34, 0, 0,
& 150,0.002D0, 0, 86, 46, 30, 0, 0,
& 150,0.001D0, 0, 86, 46, 30, 21, 0,
& 150,0.016D0, 0, 81, 38, 38, 0, 0,
& 150,0.003D0, 0, 88, 46, 0, 0, 0,
& 150,0.002D0, 0, 89, 46, 0, 0, 0,
& 150,0.003D0, 0, 83, 46, 38, 0, 0,
& 150,0.040D0, 0, 75, 46, 21, 0, 0,
& 150,0.040D0, 0, 75, 46, 38, 30, 0,
& 150,0.020D0, 0, 75, 46, 21, 21, 0,
& 150,0.010D0, 0, 75, 46, 38, 30, 21/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 590, 608)/
& 150,0.010D0, 0, 75, 46, 21, 21, 21,
& 150,0.020D0, 0, 75, 47, 21, 0, 0,
& 150,0.040D0, 0, 75, 42, 38, 0, 0,
& 150,0.020D0, 0, 75, 42, 39, 0, 0,
& 150,0.010D0, 0, 75, 42, 38, 38, 30,
& 150,0.010D0, 0, 75, 42, 38, 21, 21,
& 150,0.006D0, 0, 75, 43, 38, 0, 0,
& 151,1.000D0, 0,150, 21, 0, 0, 0,
& 152,1.000D0, 0,150, 21, 0, 0, 0,
& 153,1.000D0, 0,150, 30, 0, 0, 0,
& 154,1.000D0, 0,150, 30, 0, 0, 0,
& 155,0.045D0,101,122,127, 88, 0, 0,
& 155,0.005D0,101,122,127, 89, 0, 0,
& 155,0.045D0,101,124,129, 88, 0, 0,
& 155,0.005D0,101,124,129, 89, 0, 0,
& 155,0.021D0, 0, 86, 42, 0, 0, 0,
& 155,0.032D0, 0, 87, 42, 0, 0, 0,
& 155,0.032D0, 0, 79, 38, 42, 0, 0,
& 155,0.045D0, 0, 86, 43, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 609, 627)/
& 155,0.065D0, 0, 87, 43, 0, 0, 0,
& 155,0.065D0, 0, 79, 38, 43, 0, 0,
& 155,0.055D0, 0, 88, 38, 0, 0, 0,
& 155,0.160D0, 0, 88, 39, 0, 0, 0,
& 155,0.105D0, 0, 89, 38, 0, 0, 0,
& 155,0.320D0, 0, 89, 39, 0, 0, 0,
& 156,1.000D0, 0,155, 59, 0, 0, 0,
& 157,0.667D0, 0,158, 38, 0, 0, 0,
& 157,0.333D0, 0,155, 21, 0, 0, 0,
& 158,0.045D0,101,122,127, 83, 0, 0,
& 158,0.045D0,101,124,129, 83, 0, 0,
& 158,0.005D0,101,122,127, 84, 0, 0,
& 158,0.005D0,101,124,129, 84, 0, 0,
& 158,0.020D0, 0, 79, 42, 0, 0, 0,
& 158,0.020D0, 0, 79, 21, 42, 0, 0,
& 158,0.020D0, 0, 80, 42, 0, 0, 0,
& 158,0.060D0, 0, 79, 43, 0, 0, 0,
& 158,0.060D0, 0, 79, 21, 43, 0, 0,
& 158,0.060D0, 0, 80, 43, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 628, 646)/
& 158,0.020D0, 0, 86, 34, 0, 0, 0,
& 158,0.060D0, 0, 86, 35, 0, 0, 0,
& 158,0.040D0, 0, 87, 34, 0, 0, 0,
& 158,0.120D0, 0, 87, 35, 0, 0, 0,
& 158,0.020D0, 0, 83, 38, 0, 0, 0,
& 158,0.060D0, 0, 83, 39, 0, 0, 0,
& 158,0.040D0, 0, 84, 38, 0, 0, 0,
& 158,0.120D0, 0, 84, 39, 0, 0, 0,
& 158,0.010D0, 0, 88, 21, 0, 0, 0,
& 158,0.030D0, 0, 88, 23, 0, 0, 0,
& 158,0.020D0, 0, 89, 21, 0, 0, 0,
& 158,0.060D0, 0, 89, 23, 0, 0, 0,
& 158,0.030D0, 0, 88, 56, 0, 0, 0,
& 158,0.030D0, 0, 90, 46, 0, 0, 0,
& 159,1.000D0, 0,158, 59, 0, 0, 0,
& 160,0.670D0, 0,155, 30, 0, 0, 0,
& 160,0.330D0, 0,158, 21, 0, 0, 0,
& 161,0.050D0,101,122,127, 90, 0, 0,
& 161,0.050D0,101,124,129, 90, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 647, 665)/
& 161,0.075D0, 0, 88, 42, 0, 0, 0,
& 161,0.225D0, 0, 88, 43, 0, 0, 0,
& 161,0.150D0, 0, 89, 42, 0, 0, 0,
& 161,0.450D0, 0, 89, 43, 0, 0, 0,
& 162,1.000D0, 0,161, 59, 0, 0, 0,
& 163,0.028D0, 0, 25, 38, 30, 0, 0,
& 163,0.014D0, 0, 25, 21, 21, 0, 0,
& 163,0.018D0, 0, 39, 31, 0, 0, 0,
& 163,0.009D0, 0, 23, 23, 0, 0, 0,
& 163,0.010D0, 0, 51, 34, 38, 0, 0,
& 163,0.010D0, 0, 43, 47, 30, 0, 0,
& 163,0.004D0, 0, 51, 43, 0, 0, 0,
& 163,0.004D0, 0, 47, 35, 0, 0, 0,
& 163,0.007D0, 0, 56, 56, 0, 0, 0,
& 163,0.022D0, 0, 46, 42, 30, 0, 0,
& 163,0.011D0, 0, 46, 34, 21, 0, 0,
& 163,0.011D0, 0, 50, 42, 21, 0, 0,
& 163,0.022D0, 0, 50, 34, 38, 0, 0,
& 163,0.032D0, 0, 22, 38, 30, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 666, 684)/
& 163,0.016D0, 0, 22, 21, 21, 0, 0,
& 163,0.020D0, 0, 38, 30, 46, 34, 0,
& 163,0.012D0, 0, 38, 30, 38, 30, 0,
& 163,0.001D0, 0, 73, 91, 0, 0, 0,
& 163,0.001D0, 0, 59, 59, 0, 0, 0,
& 163,0.748D0, 0, 13, 13, 0, 0, 0,
& 164,0.060D0, 0,121,127, 0, 0, 0,
& 164,0.060D0, 0,123,129, 0, 0, 0,
& 164,0.004D0, 0, 39, 30, 0, 0, 0,
& 164,0.004D0, 0, 23, 21, 0, 0, 0,
& 164,0.004D0, 0, 31, 38, 0, 0, 0,
& 164,0.003D0, 0, 41, 31, 0, 0, 0,
& 164,0.003D0, 0, 29, 23, 0, 0, 0,
& 164,0.003D0, 0, 33, 39, 0, 0, 0,
& 164,0.009D0, 0, 24, 38, 38, 30, 30,
& 164,0.007D0, 0, 24, 38, 30, 0, 0,
& 164,0.003D0, 0, 51, 45, 0, 0, 0,
& 164,0.003D0, 0, 43, 53, 0, 0, 0,
& 164,0.003D0, 0, 24, 51, 42, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 685, 703)/
& 164,0.003D0, 0, 24, 43, 50, 0, 0,
& 164,0.004D0, 0, 24, 26, 0, 0, 0,
& 164,0.003D0, 0, 46, 35, 0, 0, 0,
& 164,0.003D0, 0, 34, 47, 0, 0, 0,
& 164,0.002D0, 0, 50, 43, 0, 0, 0,
& 164,0.002D0, 0, 42, 51, 0, 0, 0,
& 164,0.003D0, 0, 24, 21, 21, 0, 0,
& 164,0.002D0, 0,286, 30, 0, 0, 0,
& 164,0.002D0, 0,287, 38, 0, 0, 0,
& 164,0.003D0, 0, 24, 46, 42, 30, 0,
& 164,0.003D0, 0, 24, 34, 50, 38, 0,
& 164,0.002D0, 0,285, 21, 0, 0, 0,
& 164,0.001D0, 0, 56, 51, 42, 0, 0,
& 164,0.001D0, 0, 56, 43, 50, 0, 0,
& 164,0.001D0, 0, 24, 50, 42, 0, 0,
& 164,0.001D0, 0, 24, 46, 34, 0, 0,
& 164,0.002D0, 0, 56, 38, 30, 38, 30,
& 164,0.002D0, 0, 85, 91, 30, 0, 0,
& 164,0.002D0, 0,103, 73, 38, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 704, 722)/
& 164,0.002D0, 0, 24, 22, 0, 0, 0,
& 164,0.001D0, 0, 56, 50, 42, 0, 0,
& 164,0.001D0, 0, 56, 46, 34, 0, 0,
& 164,0.001D0, 0, 73, 91, 24, 0, 0,
& 164,0.001D0, 0, 85,103, 0, 0, 0,
& 164,0.001D0, 0, 82,100, 0, 0, 0,
& 164,0.001D0, 0, 87,105, 0, 0, 0,
& 164,0.001D0, 0, 73, 91, 25, 0, 0,
& 164,0.001D0, 0, 56, 58, 0, 0, 0,
& 164,0.001D0, 0, 56, 38, 30, 0, 0,
& 164,0.001D0, 0, 56, 46, 42, 30, 0,
& 164,0.001D0, 0, 56, 34, 50, 38, 0,
& 164,0.001D0, 0, 56, 22, 0, 0, 0,
& 164,0.001D0, 0, 84,102, 0, 0, 0,
& 164,0.001D0, 0, 73, 34, 98, 0, 0,
& 164,0.001D0, 0, 91, 46, 80, 0, 0,
& 164,0.034D0, 0, 38, 38, 30, 30, 21,
& 164,0.029D0, 0, 23, 23, 23, 21, 0,
& 164,0.015D0, 0, 38, 30, 21, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 723, 741)/
& 164,0.012D0, 0, 38, 30, 21, 34, 46,
& 164,0.009D0, 0, 23, 23, 23, 24, 0,
& 164,0.007D0, 0, 38, 30, 34, 46, 0,
& 164,0.002D0, 0, 46, 42, 30, 0, 0,
& 164,0.001D0, 0, 46, 34, 21, 0, 0,
& 164,0.001D0, 0, 50, 42, 21, 0, 0,
& 164,0.002D0, 0, 50, 34, 38, 0, 0,
& 164,0.006D0, 0, 73, 91, 38, 30, 0,
& 164,0.004D0, 0, 38, 30, 38, 30, 0,
& 164,0.004D0, 0, 38, 30, 38, 30, 23,
& 164,0.004D0, 0, 75, 93, 38, 30, 0,
& 164,0.001D0, 0, 86,104, 0, 0, 0,
& 164,0.001D0, 0, 79, 97, 0, 0, 0,
& 164,0.001D0, 0, 81, 99, 0, 0, 0,
& 164,0.003D0, 0, 23, 23, 34, 46, 0,
& 164,0.002D0, 0, 73, 91, 38, 30, 21,
& 164,0.002D0, 0, 73, 91, 0, 0, 0,
& 164,0.002D0, 0, 73, 91, 22, 0, 0,
& 164,0.002D0, 0, 73, 93, 30, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 742, 760)/
& 164,0.002D0, 0, 75, 93, 0, 0, 0,
& 164,0.001D0, 0, 83,102, 0, 0, 0,
& 164,0.001D0, 0, 88,106, 0, 0, 0,
& 164,0.001D0, 0, 78, 96, 0, 0, 0,
& 164,0.001D0, 0, 73, 91, 21, 0, 0,
& 164,0.001D0, 0, 78,104, 38, 0, 0,
& 164,0.001D0, 0, 96, 86, 30, 0, 0,
& 164,0.001D0, 0, 73, 34, 96, 0, 0,
& 164,0.001D0, 0, 91, 46, 78, 0, 0,
& 164,0.001D0, 0, 46, 34, 46, 34, 0,
& 164,0.013D0, 0, 59,163, 0, 0, 0,
& 164,0.008D0, 0, 59, 38, 30, 21, 21,
& 164,0.004D0, 0, 59, 22, 38, 30, 0,
& 164,0.002D0, 0, 59, 22, 21, 21, 0,
& 164,0.003D0, 0, 59, 39, 31, 0, 0,
& 164,0.002D0, 0, 59, 23, 23, 0, 0,
& 164,0.004D0, 0, 59, 25, 0, 0, 0,
& 164,0.003D0, 0, 59, 38, 30, 38, 30,
& 164,0.002D0, 0, 59, 24, 24, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 761, 779)/
& 164,0.001D0, 0, 59, 26, 0, 0, 0,
& 164,0.001D0, 0, 59, 22, 0, 0, 0,
& 164,0.001D0, 0, 59, 28, 0, 0, 0,
& 164,0.001D0, 0, 59, 58, 0, 0, 0,
& 164,0.020D0, 0, 1, 7, 0, 0, 0,
& 164,0.080D0, 0, 2, 8, 0, 0, 0,
& 164,0.020D0, 0, 3, 9, 0, 0, 0,
& 164,0.364D0,130, 13, 13, 13, 0, 0,
& 164,0.091D0,130, 13, 13, 59, 0, 0,
& 165,0.037D0, 0, 38, 30, 38, 30, 0,
& 165,0.030D0, 0, 38, 30, 46, 34, 0,
& 165,0.016D0, 0, 23, 38, 30, 0, 0,
& 165,0.015D0, 0, 23, 38, 30, 38, 30,
& 165,0.004D0, 0, 46, 43, 30, 0, 0,
& 165,0.002D0, 0, 46, 35, 21, 0, 0,
& 165,0.002D0, 0, 51, 43, 21, 0, 0,
& 165,0.004D0, 0, 51, 35, 38, 0, 0,
& 165,0.008D0, 0, 38, 30, 0, 0, 0,
& 165,0.007D0, 0, 46, 34, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 780, 798)/
& 165,0.005D0, 0, 38, 30, 73, 91, 0,
& 165,0.003D0, 0, 21, 21, 0, 0, 0,
& 165,0.003D0, 0, 22, 22, 0, 0, 0,
& 165,0.007D0, 0, 59,164, 0, 0, 0,
& 165,0.857D0, 0, 13, 13, 0, 0, 0,
& 166,0.008D0, 0,121,127, 0, 0, 0,
& 166,0.008D0, 0,123,129, 0, 0, 0,
& 166,0.001D0, 0,125,131, 0, 0, 0,
& 166,0.338D0, 0,164, 38, 30, 0, 0,
& 166,0.169D0, 0,164, 21, 21, 0, 0,
& 166,0.027D0, 0,164, 22, 0, 0, 0,
& 166,0.001D0, 0,164, 21, 0, 0, 0,
& 166,0.004D0, 0, 23, 23, 23, 21, 0,
& 166,0.003D0, 0, 23, 23, 21, 0, 0,
& 166,0.002D0, 0, 38, 30, 46, 34, 0,
& 166,0.001D0, 0, 38, 30, 73, 91, 0,
& 166,0.093D0, 0, 59,165, 0, 0, 0,
& 166,0.087D0, 0, 59,302, 0, 0, 0,
& 166,0.078D0, 0, 59,303, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 799, 817)/
& 166,0.003D0, 0, 59,163, 0, 0, 0,
& 166,0.003D0, 0, 1, 7, 0, 0, 0,
& 166,0.012D0, 0, 2, 8, 0, 0, 0,
& 166,0.003D0, 0, 3, 9, 0, 0, 0,
& 166,0.127D0,130, 13, 13, 13, 0, 0,
& 166,0.032D0,130, 13, 13, 59, 0, 0,
& 167,0.500D0, 0,136,171, 0, 0, 0,
& 167,0.500D0, 0,140,175, 0, 0, 0,
& 171,0.067D0,101,128,121, 50, 0, 0,
& 171,0.067D0,101,130,123, 50, 0, 0,
& 171,0.048D0,101,128,121, 51, 0, 0,
& 171,0.048D0,101,130,123, 51, 0, 0,
& 171,0.003D0, 0,128,121, 46, 30, 0,
& 171,0.003D0, 0,130,123, 46, 30, 0,
& 171,0.006D0,101,128,121, 21, 0, 0,
& 171,0.006D0,101,130,123, 21, 0, 0,
& 171,0.002D0,101,128,121, 23, 0, 0,
& 171,0.002D0,101,130,123, 23, 0, 0,
& 171,0.055D0, 0, 46, 30, 30, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 818, 836)/
& 171,0.031D0, 0, 46, 31, 30, 0, 0,
& 171,0.042D0, 0, 46, 30, 30, 21, 21,
& 171,0.002D0, 0, 46, 30, 30, 30, 39,
& 171,0.021D0, 0, 47, 30, 30, 0, 0,
& 171,0.027D0, 0, 50, 30, 0, 0, 0,
& 171,0.066D0, 0, 50, 31, 0, 0, 0,
& 171,0.081D0, 0, 50, 32, 0, 0, 0,
& 171,0.024D0, 0, 50, 30, 21, 0, 0,
& 171,0.004D0, 0, 50, 30, 23, 0, 0,
& 171,0.069D0, 0, 50, 30, 30, 38, 21,
& 171,0.001D0, 0, 50, 30, 30, 38, 23,
& 171,0.022D0, 0, 51, 30, 0, 0, 0,
& 171,0.021D0, 0, 51, 31, 0, 0, 0,
& 171,0.042D0, 0, 51, 30, 21, 0, 0,
& 171,0.008D0, 0, 51, 30, 23, 0, 0,
& 171,0.010D0, 0, 51, 30, 30, 38, 0,
& 171,0.050D0, 0,309, 30, 0, 0, 0,
& 171,0.034D0, 0,328, 30, 0, 0, 0,
& 171,0.010D0, 0,368, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 837, 855)/
& 171,0.031D0, 0, 34, 50, 50, 0, 0,
& 171,0.003D0, 0, 30, 21, 0, 0, 0,
& 171,0.001D0, 0, 30, 23, 0, 0, 0,
& 171,0.002D0, 0, 30, 30, 38, 0, 0,
& 171,0.008D0, 0, 30, 22, 0, 0, 0,
& 171,0.001D0, 0, 30, 30, 30, 38, 38,
& 171,0.003D0, 0, 30, 30, 30, 38, 39,
& 171,0.008D0, 0, 34, 50, 0, 0, 0,
& 171,0.005D0, 0, 34, 51, 0, 0, 0,
& 171,0.026D0, 0, 35, 51, 0, 0, 0,
& 171,0.005D0, 0, 34, 46, 30, 0, 0,
& 171,0.007D0, 0, 30, 56, 0, 0, 0,
& 171,0.023D0, 0, 30, 56, 21, 0, 0,
& 171,0.005D0, 0, 34, 34, 46, 0, 0,
& 172,0.683D0, 0,175, 30, 0, 0, 0,
& 172,0.306D0, 0,171, 21, 0, 0, 0,
& 172,0.011D0, 0,171, 59, 0, 0, 0,
& 173,0.667D0, 0,176, 30, 0, 0, 0,
& 173,0.333D0, 0,172, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 856, 874)/
& 174,0.220D0, 0,175, 30, 0, 0, 0,
& 174,0.110D0, 0,171, 21, 0, 0, 0,
& 174,0.380D0, 0,176, 30, 0, 0, 0,
& 174,0.190D0, 0,172, 21, 0, 0, 0,
& 174,0.004D0, 0,171, 22, 0, 0, 0,
& 174,0.064D0, 0,176, 30, 21, 0, 0,
& 174,0.032D0, 0,172, 38, 30, 0, 0,
& 175,0.037D0,101,128,121, 46, 0, 0,
& 175,0.037D0,101,130,123, 46, 0, 0,
& 175,0.016D0,101,128,121, 47, 0, 0,
& 175,0.016D0,101,130,123, 47, 0, 0,
& 175,0.013D0, 0,128,121, 46, 21, 0,
& 175,0.013D0, 0,130,123, 46, 21, 0,
& 175,0.012D0, 0,128,121, 50, 38, 0,
& 175,0.012D0, 0,130,123, 50, 38, 0,
& 175,0.003D0,101,128,121, 38, 0, 0,
& 175,0.003D0,101,130,123, 38, 0, 0,
& 175,0.039D0, 0, 46, 30, 0, 0, 0,
& 175,0.091D0, 0, 46, 31, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 875, 893)/
& 175,0.067D0, 0, 46, 32, 0, 0, 0,
& 175,0.004D0, 0, 46, 30, 21, 0, 0,
& 175,0.100D0, 0, 46, 30, 21, 21, 0,
& 175,0.058D0, 0, 46, 30, 23, 0, 0,
& 175,0.020D0, 0, 46, 30, 24, 0, 0,
& 175,0.006D0, 0, 46, 30, 25, 0, 0,
& 175,0.043D0, 0, 47, 30, 0, 0, 0,
& 175,0.035D0, 0, 47, 31, 0, 0, 0,
& 175,0.007D0, 0,310, 30, 0, 0, 0,
& 175,0.007D0, 0,327, 30, 0, 0, 0,
& 175,0.020D0, 0, 50, 21, 0, 0, 0,
& 175,0.006D0, 0, 50, 22, 0, 0, 0,
& 175,0.009D0, 0, 50, 23, 0, 0, 0,
& 175,0.016D0, 0, 50, 24, 0, 0, 0,
& 175,0.014D0, 0, 50, 25, 0, 0, 0,
& 175,0.003D0, 0, 50,293, 0, 0, 0,
& 175,0.007D0, 0, 50, 56, 0, 0, 0,
& 175,0.003D0, 0, 50, 26, 0, 0, 0,
& 175,0.004D0, 0, 50,294, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 894, 912)/
& 175,0.006D0, 0, 50, 21, 21, 0, 0,
& 175,0.042D0, 0, 50, 30, 38, 21, 0,
& 175,0.004D0, 0, 50, 30, 30, 38, 38,
& 175,0.076D0, 0, 50, 30, 38, 21, 21,
& 175,0.026D0, 0, 51, 21, 0, 0, 0,
& 175,0.014D0, 0, 51, 22, 0, 0, 0,
& 175,0.014D0, 0, 51, 23, 0, 0, 0,
& 175,0.011D0, 0, 51, 24, 0, 0, 0,
& 175,0.018D0, 0, 51, 30, 38, 0, 0,
& 175,0.004D0, 0, 50, 34, 46, 0, 0,
& 175,0.004D0, 0, 50, 34, 46, 21, 0,
& 175,0.005D0, 0, 50, 50, 42, 0, 0,
& 175,0.002D0, 0, 30, 38, 0, 0, 0,
& 175,0.001D0, 0, 21, 21, 0, 0, 0,
& 175,0.008D0, 0, 30, 38, 21, 0, 0,
& 175,0.007D0, 0, 30, 30, 38, 38, 0,
& 175,0.015D0, 0, 30, 30, 38, 38, 21,
& 175,0.004D0, 0, 34, 46, 0, 0, 0,
& 175,0.003D0, 0, 35, 46, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 913, 931)/
& 175,0.002D0, 0, 34, 47, 0, 0, 0,
& 175,0.001D0, 0, 42, 50, 0, 0, 0,
& 175,0.002D0, 0, 43, 51, 0, 0, 0,
& 175,0.003D0, 0, 42, 46, 30, 0, 0,
& 175,0.003D0, 0, 50, 34, 38, 0, 0,
& 175,0.001D0, 0, 34, 46, 30, 38, 21,
& 175,0.002D0, 0, 56, 23, 0, 0, 0,
& 175,0.001D0, 0, 56, 30, 38, 0, 0,
& 176,0.636D0, 0,175, 21, 0, 0, 0,
& 176,0.364D0, 0,175, 59, 0, 0, 0,
& 177,0.667D0, 0,172, 38, 0, 0, 0,
& 177,0.333D0, 0,176, 21, 0, 0, 0,
& 178,0.220D0, 0,171, 38, 0, 0, 0,
& 178,0.110D0, 0,175, 21, 0, 0, 0,
& 178,0.380D0, 0,172, 38, 0, 0, 0,
& 178,0.190D0, 0,176, 21, 0, 0, 0,
& 178,0.004D0, 0,175, 22, 0, 0, 0,
& 178,0.064D0, 0,172, 38, 21, 0, 0,
& 178,0.032D0, 0,176, 38, 30, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 932, 950)/
& 179,0.009D0, 0,130,123, 0, 0, 0,
& 179,0.019D0,101,128,121, 56, 0, 0,
& 179,0.019D0,101,130,123, 56, 0, 0,
& 179,0.025D0,101,128,121, 22, 0, 0,
& 179,0.025D0,101,130,123, 22, 0, 0,
& 179,0.009D0,101,128,121, 25, 0, 0,
& 179,0.009D0,101,130,123, 25, 0, 0,
& 179,0.036D0, 0, 34, 50, 0, 0, 0,
& 179,0.034D0, 0, 34, 51, 0, 0, 0,
& 179,0.007D0, 0, 34,328, 0, 0, 0,
& 179,0.043D0, 0, 35, 50, 0, 0, 0,
& 179,0.058D0, 0, 35, 51, 0, 0, 0,
& 179,0.011D0, 0, 34, 46, 30, 0, 0,
& 179,0.055D0, 0, 34, 46, 30, 21, 0,
& 179,0.003D0, 0, 34, 46, 30, 38, 30,
& 179,0.014D0, 0, 34, 50, 38, 30, 0,
& 179,0.017D0, 0, 42, 46, 30, 30, 0,
& 179,0.036D0, 0, 56, 30, 0, 0, 0,
& 179,0.067D0, 0, 56, 31, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 951, 969)/
& 179,0.023D0, 0, 56, 30, 21, 0, 0,
& 179,0.018D0, 0, 56, 30, 38, 30, 0,
& 179,0.020D0, 0, 22, 30, 0, 0, 0,
& 179,0.001D0, 0, 23, 30, 0, 0, 0,
& 179,0.009D0, 0, 24, 30, 0, 0, 0,
& 179,0.049D0, 0, 25, 30, 0, 0, 0,
& 179,0.011D0, 0,293, 30, 0, 0, 0,
& 179,0.015D0, 0, 22, 30, 21, 0, 0,
& 179,0.016D0, 0, 25, 30, 21, 0, 0,
& 179,0.103D0, 0, 22, 31, 0, 0, 0,
& 179,0.120D0, 0, 25, 31, 0, 0, 0,
& 179,0.010D0, 0, 30, 38, 30, 0, 0,
& 179,0.046D0, 0, 30, 38, 30, 21, 0,
& 179,0.003D0, 0, 30, 38, 38, 30, 30,
& 179,0.042D0, 0, 30, 38, 38, 30, 31,
& 179,0.001D0, 0, 34, 23, 0, 0, 0,
& 179,0.005D0, 0, 34, 38, 30, 0, 0,
& 179,0.001D0, 0, 34, 56, 0, 0, 0,
& 179,0.004D0, 0, 42, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 970, 988)/
& 179,0.007D0, 0, 43, 30, 0, 0, 0,
& 180,0.900D0, 0,179, 59, 0, 0, 0,
& 180,0.100D0, 0,179, 21, 0, 0, 0,
& 181,0.500D0, 0,172, 42, 0, 0, 0,
& 181,0.500D0, 0,176, 34, 0, 0, 0,
& 182,0.440D0, 0,171, 42, 0, 0, 0,
& 182,0.440D0, 0,175, 34, 0, 0, 0,
& 182,0.055D0, 0,172, 42, 0, 0, 0,
& 182,0.055D0, 0,176, 34, 0, 0, 0,
& 182,0.010D0, 0,179, 22, 0, 0, 0,
& 183,1.000D0, 0,185, 30, 0, 0, 0,
& 184,1.000D0, 0,185, 30, 0, 0, 0,
& 185,0.028D0,101,128,121, 96, 0, 0,
& 185,0.010D0,101,128,121, 98, 0, 0,
& 185,0.028D0,101,130,123, 96, 0, 0,
& 185,0.010D0,101,130,123, 98, 0, 0,
& 185,0.026D0, 0, 91, 50, 0, 0, 0,
& 185,0.030D0, 0, 91, 50, 21, 0, 0,
& 185,0.029D0, 0, 91, 50, 38, 30, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I= 989,1007)/
& 185,0.014D0, 0, 91, 50, 22, 0, 0,
& 185,0.020D0, 0, 91, 51, 0, 0, 0,
& 185,0.029D0, 0, 91, 46, 30, 0, 0,
& 185,0.039D0, 0, 91, 46, 30, 21, 0,
& 185,0.002D0, 0, 91, 46, 30, 30, 38,
& 185,0.010D0, 0, 91, 46, 30, 21, 21,
& 185,0.014D0, 0, 91, 47, 30, 0, 0,
& 185,0.010D0, 0, 92, 50, 0, 0, 0,
& 185,0.020D0, 0, 92, 51, 0, 0, 0,
& 185,0.010D0, 0, 92, 51, 21, 0, 0,
& 185,0.007D0, 0,103, 46, 0, 0, 0,
& 185,0.014D0, 0,103, 47, 0, 0, 0,
& 185,0.004D0, 0, 91,293, 0, 0, 0,
& 185,0.003D0, 0, 91, 38, 30, 0, 0,
& 185,0.003D0, 0, 91, 38, 30, 38, 30,
& 185,0.001D0, 0, 91, 56, 0, 0, 0,
& 185,0.002D0, 0, 91, 46, 34, 0, 0,
& 185,0.010D0, 0, 96, 30, 0, 0, 0,
& 185,0.020D0, 0, 96, 31, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1008,1026)/
& 185,0.030D0, 0, 96, 30, 21, 0, 0,
& 185,0.010D0, 0, 96, 30, 22, 0, 0,
& 185,0.020D0, 0, 96, 30, 24, 0, 0,
& 185,0.035D0, 0, 96, 30, 30, 38, 0,
& 185,0.020D0, 0, 96, 30, 21, 21, 0,
& 185,0.010D0, 0, 96, 30, 38, 30, 21,
& 185,0.010D0, 0, 96, 30, 21, 21, 21,
& 185,0.007D0, 0, 96, 34, 50, 0, 0,
& 185,0.011D0, 0, 97, 30, 0, 0, 0,
& 185,0.022D0, 0, 97, 30, 21, 0, 0,
& 185,0.013D0, 0, 97, 30, 38, 30, 0,
& 185,0.010D0, 0, 97, 30, 21, 21, 0,
& 185,0.007D0, 0, 97, 30, 38, 30, 21,
& 185,0.005D0, 0, 97, 30, 21, 21, 21,
& 185,0.005D0, 0, 98, 30, 0, 0, 0,
& 185,0.015D0, 0, 98, 31, 0, 0, 0,
& 185,0.011D0, 0,104, 21, 0, 0, 0,
& 185,0.007D0, 0,104, 22, 0, 0, 0,
& 185,0.010D0, 0,104, 23, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1027,1045)/
& 185,0.031D0, 0,104, 24, 0, 0, 0,
& 185,0.010D0, 0,104, 25, 0, 0, 0,
& 185,0.004D0, 0,104, 56, 0, 0, 0,
& 185,0.026D0, 0,104, 38, 30, 0, 0,
& 185,0.005D0, 0,104, 38, 38, 30, 30,
& 185,0.005D0, 0,104, 38, 30, 21, 21,
& 185,0.005D0, 0,105, 21, 0, 0, 0,
& 185,0.006D0, 0,105, 23, 0, 0, 0,
& 185,0.004D0, 0,104, 46, 34, 0, 0,
& 185,0.002D0, 0,104, 34, 38, 0, 0,
& 185,0.001D0, 0,104, 34, 38, 21, 0,
& 185,0.016D0, 0, 99, 30, 30, 0, 0,
& 185,0.003D0, 0,106, 34, 0, 0, 0,
& 185,0.002D0, 0,107, 34, 0, 0, 0,
& 185,0.003D0, 0,101, 34, 30, 0, 0,
& 185,0.040D0, 0, 93, 34, 21, 0, 0,
& 185,0.040D0, 0, 93, 34, 38, 30, 0,
& 185,0.020D0, 0, 93, 34, 21, 21, 0,
& 185,0.010D0, 0, 93, 34, 38, 30, 21/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1046,1064)/
& 185,0.010D0, 0, 93, 34, 21, 21, 21,
& 185,0.020D0, 0, 93, 35, 21, 0, 0,
& 185,0.040D0, 0, 93, 50, 30, 0, 0,
& 185,0.020D0, 0, 93, 50, 31, 0, 0,
& 185,0.010D0, 0, 93, 50, 30, 38, 30,
& 185,0.010D0, 0, 93, 50, 30, 21, 21,
& 185,0.006D0, 0, 93, 51, 30, 0, 0,
& 186,1.000D0, 0,185, 21, 0, 0, 0,
& 187,1.000D0, 0,185, 21, 0, 0, 0,
& 188,1.000D0, 0,185, 38, 0, 0, 0,
& 189,1.000D0, 0,185, 38, 0, 0, 0,
& 190,0.045D0,101,128,121,106, 0, 0,
& 190,0.005D0,101,128,121,107, 0, 0,
& 190,0.045D0,101,130,123,106, 0, 0,
& 190,0.005D0,101,130,123,107, 0, 0,
& 190,0.021D0, 0,104, 50, 0, 0, 0,
& 190,0.032D0, 0,105, 50, 0, 0, 0,
& 190,0.032D0, 0, 97, 30, 50, 0, 0,
& 190,0.045D0, 0,104, 51, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1065,1083)/
& 190,0.065D0, 0,105, 51, 0, 0, 0,
& 190,0.065D0, 0, 97, 30, 51, 0, 0,
& 190,0.055D0, 0,106, 30, 0, 0, 0,
& 190,0.160D0, 0,106, 31, 0, 0, 0,
& 190,0.105D0, 0,107, 30, 0, 0, 0,
& 190,0.320D0, 0,107, 31, 0, 0, 0,
& 191,1.000D0, 0,190, 59, 0, 0, 0,
& 192,0.667D0, 0,193, 30, 0, 0, 0,
& 192,0.333D0, 0,190, 21, 0, 0, 0,
& 193,0.045D0,101,128,121,101, 0, 0,
& 193,0.045D0,101,130,123,101, 0, 0,
& 193,0.005D0,101,128,121,102, 0, 0,
& 193,0.005D0,101,130,123,102, 0, 0,
& 193,0.020D0, 0, 97, 50, 0, 0, 0,
& 193,0.020D0, 0, 97, 21, 50, 0, 0,
& 193,0.020D0, 0, 98, 50, 0, 0, 0,
& 193,0.060D0, 0, 97, 51, 0, 0, 0,
& 193,0.060D0, 0, 97, 21, 51, 0, 0,
& 193,0.060D0, 0, 98, 51, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1084,1102)/
& 193,0.020D0, 0,104, 46, 0, 0, 0,
& 193,0.060D0, 0,104, 47, 0, 0, 0,
& 193,0.040D0, 0,105, 46, 0, 0, 0,
& 193,0.120D0, 0,105, 47, 0, 0, 0,
& 193,0.020D0, 0,101, 30, 0, 0, 0,
& 193,0.060D0, 0,101, 31, 0, 0, 0,
& 193,0.040D0, 0,102, 30, 0, 0, 0,
& 193,0.120D0, 0,102, 31, 0, 0, 0,
& 193,0.010D0, 0,106, 21, 0, 0, 0,
& 193,0.030D0, 0,106, 23, 0, 0, 0,
& 193,0.020D0, 0,107, 21, 0, 0, 0,
& 193,0.060D0, 0,107, 23, 0, 0, 0,
& 193,0.030D0, 0,106, 56, 0, 0, 0,
& 193,0.030D0, 0,108, 34, 0, 0, 0,
& 194,1.000D0, 0,193, 59, 0, 0, 0,
& 195,0.670D0, 0,190, 38, 0, 0, 0,
& 195,0.330D0, 0,193, 21, 0, 0, 0,
& 196,0.050D0,101,128,121,108, 0, 0,
& 196,0.050D0,101,130,123,108, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1103,1121)/
& 196,0.075D0, 0,106, 50, 0, 0, 0,
& 196,0.225D0, 0,106, 51, 0, 0, 0,
& 196,0.150D0, 0,107, 50, 0, 0, 0,
& 196,0.450D0, 0,107, 51, 0, 0, 0,
& 197,1.000D0, 0,196, 59, 0, 0, 0,
& 209,0.250D0,100, 1, 8, 4, 0, 0,
& 209,0.250D0,100, 3, 10, 4, 0, 0,
& 209,0.250D0,100, 5, 12, 4, 0, 0,
& 209,0.085D0,100,121,128, 4, 0, 0,
& 209,0.085D0,100,123,130, 4, 0, 0,
& 209,0.080D0,100,125,132, 4, 0, 0,
& 210,0.250D0,100, 2, 7,209, 0, 0,
& 210,0.250D0,100, 4, 9,209, 0, 0,
& 210,0.250D0,100, 6, 11,209, 0, 0,
& 210,0.085D0,100,122,127,209, 0, 0,
& 210,0.085D0,100,124,129,209, 0, 0,
& 210,0.080D0,100,126,131,209, 0, 0,
& 211,0.250D0,100, 1, 8, 6, 0, 0,
& 211,0.250D0,100, 3, 10, 6, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1122,1140)/
& 211,0.250D0,100, 5, 12, 6, 0, 0,
& 211,0.085D0,100,121,128, 6, 0, 0,
& 211,0.085D0,100,123,130, 6, 0, 0,
& 211,0.080D0,100,125,132, 6, 0, 0,
& 212,0.250D0,100, 2, 7,211, 0, 0,
& 212,0.250D0,100, 4, 9,211, 0, 0,
& 212,0.250D0,100, 6, 11,211, 0, 0,
& 212,0.085D0,100,122,127,211, 0, 0,
& 212,0.085D0,100,124,129,211, 0, 0,
& 212,0.080D0,100,126,131,211, 0, 0,
& 215,0.250D0,100, 7, 2, 10, 0, 0,
& 215,0.250D0,100, 9, 4, 10, 0, 0,
& 215,0.250D0,100, 11, 6, 10, 0, 0,
& 215,0.085D0,100,127,122, 10, 0, 0,
& 215,0.085D0,100,129,124, 10, 0, 0,
& 215,0.080D0,100,131,126, 10, 0, 0,
& 216,0.250D0,100, 8, 1,215, 0, 0,
& 216,0.250D0,100, 10, 3,215, 0, 0,
& 216,0.250D0,100, 12, 5,215, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1141,1159)/
& 216,0.085D0,100,128,121,215, 0, 0,
& 216,0.085D0,100,130,123,215, 0, 0,
& 216,0.080D0,100,132,125,215, 0, 0,
& 217,0.250D0,100, 7, 2, 12, 0, 0,
& 217,0.250D0,100, 9, 4, 12, 0, 0,
& 217,0.250D0,100, 11, 6, 12, 0, 0,
& 217,0.085D0,100,127,122, 12, 0, 0,
& 217,0.085D0,100,129,124, 12, 0, 0,
& 217,0.080D0,100,131,126, 12, 0, 0,
& 218,0.250D0,100, 8, 1,217, 0, 0,
& 218,0.250D0,100, 10, 3,217, 0, 0,
& 218,0.250D0,100, 12, 5,217, 0, 0,
& 218,0.085D0,100,128,121,217, 0, 0,
& 218,0.085D0,100,130,123,217, 0, 0,
& 218,0.080D0,100,132,125,217, 0, 0,
& 221,0.016D0,101,121,128,136, 0, 0,
& 221,0.016D0,101,123,130,136, 0, 0,
& 221,0.008D0,101,125,132,136, 0, 0,
& 221,0.048D0,101,121,128,137, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1160,1178)/
& 221,0.048D0,101,123,130,137, 0, 0,
& 221,0.022D0,101,125,132,137, 0, 0,
& 221,0.003D0,101,121,128,331, 0, 0,
& 221,0.003D0,101,123,130,331, 0, 0,
& 221,0.001D0,101,125,132,331, 0, 0,
& 221,0.008D0,101,121,128,138, 0, 0,
& 221,0.008D0,101,123,130,138, 0, 0,
& 221,0.004D0,101,125,132,138, 0, 0,
& 221,0.008D0,101,121,128,313, 0, 0,
& 221,0.008D0,101,123,130,313, 0, 0,
& 221,0.004D0,101,125,132,313, 0, 0,
& 221,0.013D0,101,121,128,139, 0, 0,
& 221,0.013D0,101,123,130,139, 0, 0,
& 221,0.006D0,101,125,132,139, 0, 0,
& 221,0.004D0, 0,136, 30, 0, 0, 0,
& 221,0.010D0, 0,136, 31, 0, 0, 0,
& 221,0.006D0, 0,136, 32, 0, 0, 0,
& 221,0.003D0, 0,137, 30, 0, 0, 0,
& 221,0.009D0, 0,137, 31, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1179,1197)/
& 221,0.017D0, 0,137, 32, 0, 0, 0,
& 221,0.011D0, 0,136,179, 0, 0, 0,
& 221,0.015D0, 0,136,180, 0, 0, 0,
& 221,0.011D0, 0,137,179, 0, 0, 0,
& 221,0.022D0, 0,137,180, 0, 0, 0,
& 221,0.001D0, 0,164, 42, 0, 0, 0,
& 221,0.002D0, 0,164, 43, 0, 0, 0,
& 221,0.001D0, 0,165, 42, 0, 0, 0,
& 221,0.001D0, 0,165, 43, 0, 0, 0,
& 221,0.001D0, 0,166, 42, 0, 0, 0,
& 221,0.001D0, 0,166, 43, 0, 0, 0,
& 221,0.207D0,100, 1, 8, 4, 7, 0,
& 221,0.207D0,100, 3, 10, 4, 7, 0,
& 221,0.024D0,100, 1, 8, 2, 7, 0,
& 221,0.024D0,100, 3, 10, 2, 7, 0,
& 221,0.012D0,100, 3, 8, 4, 7, 0,
& 221,0.012D0,100, 1, 10, 4, 7, 0,
& 221,0.069D0,100, 4, 8, 1, 7, 0,
& 221,0.069D0,100, 4, 10, 3, 7, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1198,1216)/
& 221,0.008D0,100, 2, 8, 1, 7, 0,
& 221,0.008D0,100, 2, 10, 3, 7, 0,
& 221,0.004D0,100, 4, 8, 3, 7, 0,
& 221,0.004D0,100, 4, 10, 1, 7, 0,
& 222,0.016D0,101,121,128,140, 0, 0,
& 222,0.016D0,101,123,130,140, 0, 0,
& 222,0.008D0,101,125,132,140, 0, 0,
& 222,0.048D0,101,121,128,141, 0, 0,
& 222,0.048D0,101,123,130,141, 0, 0,
& 222,0.022D0,101,125,132,141, 0, 0,
& 222,0.003D0,101,121,128,332, 0, 0,
& 222,0.003D0,101,123,130,332, 0, 0,
& 222,0.001D0,101,125,132,332, 0, 0,
& 222,0.008D0,101,121,128,142, 0, 0,
& 222,0.008D0,101,123,130,142, 0, 0,
& 222,0.004D0,101,125,132,142, 0, 0,
& 222,0.008D0,101,121,128,314, 0, 0,
& 222,0.008D0,101,123,130,314, 0, 0,
& 222,0.004D0,101,125,132,314, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1217,1235)/
& 222,0.013D0,101,121,128,143, 0, 0,
& 222,0.013D0,101,123,130,143, 0, 0,
& 222,0.006D0,101,125,132,143, 0, 0,
& 222,0.004D0, 0,140, 30, 0, 0, 0,
& 222,0.010D0, 0,140, 31, 0, 0, 0,
& 222,0.006D0, 0,140, 32, 0, 0, 0,
& 222,0.003D0, 0,141, 30, 0, 0, 0,
& 222,0.009D0, 0,141, 31, 0, 0, 0,
& 222,0.017D0, 0,141, 32, 0, 0, 0,
& 222,0.011D0, 0,140,179, 0, 0, 0,
& 222,0.015D0, 0,140,180, 0, 0, 0,
& 222,0.011D0, 0,141,179, 0, 0, 0,
& 222,0.022D0, 0,141,180, 0, 0, 0,
& 222,0.001D0, 0,164, 34, 0, 0, 0,
& 222,0.002D0, 0,164, 35, 0, 0, 0,
& 222,0.001D0, 0,165, 34, 0, 0, 0,
& 222,0.001D0, 0,165, 35, 0, 0, 0,
& 222,0.001D0, 0,166, 34, 0, 0, 0,
& 222,0.001D0, 0,166, 35, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1236,1254)/
& 222,0.207D0,100, 1, 8, 4, 8, 0,
& 222,0.207D0,100, 3, 10, 4, 8, 0,
& 222,0.024D0,100, 1, 8, 2, 8, 0,
& 222,0.024D0,100, 3, 10, 2, 8, 0,
& 222,0.012D0,100, 3, 8, 4, 8, 0,
& 222,0.012D0,100, 1, 10, 4, 8, 0,
& 222,0.069D0,100, 4, 8, 1, 8, 0,
& 222,0.069D0,100, 4, 10, 3, 8, 0,
& 222,0.008D0,100, 2, 8, 1, 8, 0,
& 222,0.008D0,100, 2, 10, 3, 8, 0,
& 222,0.004D0,100, 4, 8, 3, 8, 0,
& 222,0.004D0,100, 4, 10, 1, 8, 0,
& 223,0.016D0,101,121,128,144, 0, 0,
& 223,0.016D0,101,123,130,144, 0, 0,
& 223,0.008D0,101,125,132,144, 0, 0,
& 223,0.048D0,101,121,128,145, 0, 0,
& 223,0.048D0,101,123,130,145, 0, 0,
& 223,0.022D0,101,125,132,145, 0, 0,
& 223,0.003D0,101,121,128,333, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1255,1273)/
& 223,0.003D0,101,123,130,333, 0, 0,
& 223,0.001D0,101,125,132,333, 0, 0,
& 223,0.008D0,101,121,128,146, 0, 0,
& 223,0.008D0,101,123,130,146, 0, 0,
& 223,0.004D0,101,125,132,146, 0, 0,
& 223,0.008D0,101,121,128,315, 0, 0,
& 223,0.008D0,101,123,130,315, 0, 0,
& 223,0.004D0,101,125,132,315, 0, 0,
& 223,0.013D0,101,121,128,147, 0, 0,
& 223,0.013D0,101,123,130,147, 0, 0,
& 223,0.006D0,101,125,132,147, 0, 0,
& 223,0.004D0, 0,144, 30, 0, 0, 0,
& 223,0.010D0, 0,144, 31, 0, 0, 0,
& 223,0.006D0, 0,144, 32, 0, 0, 0,
& 223,0.003D0, 0,145, 30, 0, 0, 0,
& 223,0.009D0, 0,145, 31, 0, 0, 0,
& 223,0.017D0, 0,145, 32, 0, 0, 0,
& 223,0.011D0, 0,144,179, 0, 0, 0,
& 223,0.015D0, 0,144,180, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1274,1292)/
& 223,0.011D0, 0,145,179, 0, 0, 0,
& 223,0.022D0, 0,145,180, 0, 0, 0,
& 223,0.001D0, 0,164, 25, 0, 0, 0,
& 223,0.002D0, 0,164, 56, 0, 0, 0,
& 223,0.001D0, 0,165, 25, 0, 0, 0,
& 223,0.001D0, 0,165, 56, 0, 0, 0,
& 223,0.001D0, 0,166, 25, 0, 0, 0,
& 223,0.001D0, 0,166, 56, 0, 0, 0,
& 223,0.207D0,100, 1, 8, 4, 9, 0,
& 223,0.207D0,100, 3, 10, 4, 9, 0,
& 223,0.024D0,100, 1, 8, 2, 9, 0,
& 223,0.024D0,100, 3, 10, 2, 9, 0,
& 223,0.012D0,100, 3, 8, 4, 9, 0,
& 223,0.012D0,100, 1, 10, 4, 9, 0,
& 223,0.069D0,100, 4, 8, 1, 9, 0,
& 223,0.069D0,100, 4, 10, 3, 9, 0,
& 223,0.008D0,100, 2, 8, 1, 9, 0,
& 223,0.008D0,100, 2, 10, 3, 9, 0,
& 223,0.004D0,100, 4, 8, 3, 9, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1293,1311)/
& 223,0.004D0,100, 4, 10, 1, 9, 0,
& 224,0.090D0,100,121,128, 4,109, 0,
& 224,0.090D0,100,123,130, 4,109, 0,
& 224,0.045D0,100,125,132, 4,109, 0,
& 224,0.010D0,100,121,128, 2,109, 0,
& 224,0.010D0,100,123,130, 2,109, 0,
& 224,0.005D0,100,125,132, 2,109, 0,
& 224,0.242D0,100, 1, 8, 4,109, 0,
& 224,0.242D0,100, 3, 10, 4,109, 0,
& 224,0.027D0,100, 1, 8, 2,109, 0,
& 224,0.027D0,100, 3, 10, 2,109, 0,
& 224,0.012D0,100, 3, 8, 4,109, 0,
& 224,0.012D0,100, 1, 10, 4,109, 0,
& 224,0.081D0,100, 4, 8, 1,109, 0,
& 224,0.081D0,100, 4, 10, 3,109, 0,
& 224,0.009D0,100, 2, 8, 1,109, 0,
& 224,0.009D0,100, 2, 10, 3,109, 0,
& 224,0.004D0,100, 4, 8, 3,109, 0,
& 224,0.004D0,100, 4, 10, 1,109, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1312,1330)/
& 225,0.090D0,100,121,128, 4,110, 0,
& 225,0.090D0,100,123,130, 4,110, 0,
& 225,0.045D0,100,125,132, 4,110, 0,
& 225,0.010D0,100,121,128, 2,110, 0,
& 225,0.010D0,100,123,130, 2,110, 0,
& 225,0.005D0,100,125,132, 2,110, 0,
& 225,0.242D0,100, 1, 8, 4,110, 0,
& 225,0.242D0,100, 3, 10, 4,110, 0,
& 225,0.027D0,100, 1, 8, 2,110, 0,
& 225,0.027D0,100, 3, 10, 2,110, 0,
& 225,0.012D0,100, 3, 8, 4,110, 0,
& 225,0.012D0,100, 1, 10, 4,110, 0,
& 225,0.081D0,100, 4, 8, 1,110, 0,
& 225,0.081D0,100, 4, 10, 3,110, 0,
& 225,0.009D0,100, 2, 8, 1,110, 0,
& 225,0.009D0,100, 2, 10, 3,110, 0,
& 225,0.004D0,100, 4, 8, 3,110, 0,
& 225,0.004D0,100, 4, 10, 1,110, 0,
& 226,0.090D0,100,121,128, 4,111, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1331,1349)/
& 226,0.090D0,100,123,130, 4,111, 0,
& 226,0.045D0,100,125,132, 4,111, 0,
& 226,0.010D0,100,121,128, 2,111, 0,
& 226,0.010D0,100,123,130, 2,111, 0,
& 226,0.005D0,100,125,132, 2,111, 0,
& 226,0.242D0,100, 1, 8, 4,111, 0,
& 226,0.242D0,100, 3, 10, 4,111, 0,
& 226,0.027D0,100, 1, 8, 2,111, 0,
& 226,0.027D0,100, 3, 10, 2,111, 0,
& 226,0.012D0,100, 3, 8, 4,111, 0,
& 226,0.012D0,100, 1, 10, 4,111, 0,
& 226,0.081D0,100, 4, 8, 1,111, 0,
& 226,0.081D0,100, 4, 10, 3,111, 0,
& 226,0.009D0,100, 2, 8, 1,111, 0,
& 226,0.009D0,100, 2, 10, 3,111, 0,
& 226,0.004D0,100, 4, 8, 3,111, 0,
& 226,0.004D0,100, 4, 10, 1,111, 0,
& 227,0.090D0,100,121,128, 4,112, 0,
& 227,0.090D0,100,123,130, 4,112, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1350,1368)/
& 227,0.045D0,100,125,132, 4,112, 0,
& 227,0.010D0,100,121,128, 2,112, 0,
& 227,0.010D0,100,123,130, 2,112, 0,
& 227,0.005D0,100,125,132, 2,112, 0,
& 227,0.242D0,100, 1, 8, 4,112, 0,
& 227,0.242D0,100, 3, 10, 4,112, 0,
& 227,0.027D0,100, 1, 8, 2,112, 0,
& 227,0.027D0,100, 3, 10, 2,112, 0,
& 227,0.012D0,100, 3, 8, 4,112, 0,
& 227,0.012D0,100, 1, 10, 4,112, 0,
& 227,0.081D0,100, 4, 8, 1,112, 0,
& 227,0.081D0,100, 4, 10, 3,112, 0,
& 227,0.009D0,100, 2, 8, 1,112, 0,
& 227,0.009D0,100, 2, 10, 3,112, 0,
& 227,0.004D0,100, 4, 8, 3,112, 0,
& 227,0.004D0,100, 4, 10, 1,112, 0,
& 228,0.090D0,100,121,128, 4,113, 0,
& 228,0.090D0,100,123,130, 4,113, 0,
& 228,0.045D0,100,125,132, 4,113, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1369,1387)/
& 228,0.010D0,100,121,128, 2,113, 0,
& 228,0.010D0,100,123,130, 2,113, 0,
& 228,0.005D0,100,125,132, 2,113, 0,
& 228,0.242D0,100, 1, 8, 4,113, 0,
& 228,0.242D0,100, 3, 10, 4,113, 0,
& 228,0.027D0,100, 1, 8, 2,113, 0,
& 228,0.027D0,100, 3, 10, 2,113, 0,
& 228,0.012D0,100, 3, 8, 4,113, 0,
& 228,0.012D0,100, 1, 10, 4,113, 0,
& 228,0.081D0,100, 4, 8, 1,113, 0,
& 228,0.081D0,100, 4, 10, 3,113, 0,
& 228,0.009D0,100, 2, 8, 1,113, 0,
& 228,0.009D0,100, 2, 10, 3,113, 0,
& 228,0.004D0,100, 4, 8, 3,113, 0,
& 228,0.004D0,100, 4, 10, 1,113, 0,
& 229,0.090D0,100,121,128, 4,114, 0,
& 229,0.090D0,100,123,130, 4,114, 0,
& 229,0.045D0,100,125,132, 4,114, 0,
& 229,0.010D0,100,121,128, 2,114, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1388,1406)/
& 229,0.010D0,100,123,130, 2,114, 0,
& 229,0.005D0,100,125,132, 2,114, 0,
& 229,0.242D0,100, 1, 8, 4,114, 0,
& 229,0.242D0,100, 3, 10, 4,114, 0,
& 229,0.027D0,100, 1, 8, 2,114, 0,
& 229,0.027D0,100, 3, 10, 2,114, 0,
& 229,0.012D0,100, 3, 8, 4,114, 0,
& 229,0.012D0,100, 1, 10, 4,114, 0,
& 229,0.081D0,100, 4, 8, 1,114, 0,
& 229,0.081D0,100, 4, 10, 3,114, 0,
& 229,0.009D0,100, 2, 8, 1,114, 0,
& 229,0.009D0,100, 2, 10, 3,114, 0,
& 229,0.004D0,100, 4, 8, 3,114, 0,
& 229,0.004D0,100, 4, 10, 1,114, 0,
& 230,0.080D0,100,121,128, 4, 10, 0,
& 230,0.080D0,100,123,130, 4, 10, 0,
& 230,0.040D0,100,125,132, 4, 10, 0,
& 230,0.080D0,100,121,128, 9, 5, 0,
& 230,0.080D0,100,123,130, 9, 5, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1407,1425)/
& 230,0.228D0,100, 1, 8, 4, 10, 0,
& 230,0.228D0,100, 3, 10, 4, 10, 0,
& 230,0.012D0,100, 3, 8, 4, 10, 0,
& 230,0.012D0,100, 1, 10, 4, 10, 0,
& 230,0.076D0,100, 4, 8, 1, 10, 0,
& 230,0.076D0,100, 4, 10, 3, 10, 0,
& 230,0.004D0,100, 4, 8, 3, 10, 0,
& 230,0.004D0,100, 4, 10, 1, 10, 0,
& 231,0.025D0, 0,121,127, 0, 0, 0,
& 231,0.025D0, 0,123,129, 0, 0, 0,
& 231,0.025D0, 0,125,131, 0, 0, 0,
& 231,0.008D0, 0, 1, 7, 0, 0, 0,
& 231,0.033D0, 0, 2, 8, 0, 0, 0,
& 231,0.008D0, 0, 3, 9, 0, 0, 0,
& 231,0.033D0, 0, 4, 10, 0, 0, 0,
& 231,0.801D0,130, 13, 13, 13, 0, 0,
& 231,0.042D0,130, 13, 13, 59, 0, 0,
& 245,0.016D0,101,127,122,171, 0, 0,
& 245,0.016D0,101,129,124,171, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1426,1444)/
& 245,0.008D0,101,131,126,171, 0, 0,
& 245,0.048D0,101,127,122,172, 0, 0,
& 245,0.048D0,101,129,124,172, 0, 0,
& 245,0.022D0,101,131,126,172, 0, 0,
& 245,0.003D0,101,127,122,334, 0, 0,
& 245,0.003D0,101,129,124,334, 0, 0,
& 245,0.001D0,101,131,126,334, 0, 0,
& 245,0.008D0,101,127,122,173, 0, 0,
& 245,0.008D0,101,129,124,173, 0, 0,
& 245,0.004D0,101,131,126,173, 0, 0,
& 245,0.008D0,101,127,122,316, 0, 0,
& 245,0.008D0,101,129,124,316, 0, 0,
& 245,0.004D0,101,131,126,316, 0, 0,
& 245,0.013D0,101,127,122,174, 0, 0,
& 245,0.013D0,101,129,124,174, 0, 0,
& 245,0.006D0,101,131,126,174, 0, 0,
& 245,0.004D0, 0,171, 38, 0, 0, 0,
& 245,0.010D0, 0,171, 39, 0, 0, 0,
& 245,0.006D0, 0,171, 40, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1445,1463)/
& 245,0.003D0, 0,172, 38, 0, 0, 0,
& 245,0.009D0, 0,172, 39, 0, 0, 0,
& 245,0.017D0, 0,172, 40, 0, 0, 0,
& 245,0.011D0, 0,171,144, 0, 0, 0,
& 245,0.015D0, 0,171,145, 0, 0, 0,
& 245,0.011D0, 0,172,144, 0, 0, 0,
& 245,0.022D0, 0,172,145, 0, 0, 0,
& 245,0.001D0, 0,164, 50, 0, 0, 0,
& 245,0.002D0, 0,164, 51, 0, 0, 0,
& 245,0.001D0, 0,165, 50, 0, 0, 0,
& 245,0.001D0, 0,165, 51, 0, 0, 0,
& 245,0.001D0, 0,166, 50, 0, 0, 0,
& 245,0.001D0, 0,166, 51, 0, 0, 0,
& 245,0.207D0,100, 7, 2, 10, 1, 0,
& 245,0.207D0,100, 9, 4, 10, 1, 0,
& 245,0.024D0,100, 7, 2, 8, 1, 0,
& 245,0.024D0,100, 9, 4, 8, 1, 0,
& 245,0.012D0,100, 9, 2, 10, 1, 0,
& 245,0.012D0,100, 7, 4, 10, 1, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1464,1482)/
& 245,0.069D0,100, 10, 2, 7, 1, 0,
& 245,0.069D0,100, 10, 4, 9, 1, 0,
& 245,0.008D0,100, 8, 2, 7, 1, 0,
& 245,0.008D0,100, 8, 4, 9, 1, 0,
& 245,0.004D0,100, 10, 2, 9, 1, 0,
& 245,0.004D0,100, 10, 4, 7, 1, 0,
& 246,0.016D0,101,127,122,175, 0, 0,
& 246,0.016D0,101,129,124,175, 0, 0,
& 246,0.008D0,101,131,126,175, 0, 0,
& 246,0.048D0,101,127,122,176, 0, 0,
& 246,0.048D0,101,129,124,176, 0, 0,
& 246,0.022D0,101,131,126,176, 0, 0,
& 246,0.003D0,101,127,122,335, 0, 0,
& 246,0.003D0,101,129,124,335, 0, 0,
& 246,0.001D0,101,131,126,335, 0, 0,
& 246,0.008D0,101,127,122,177, 0, 0,
& 246,0.008D0,101,129,124,177, 0, 0,
& 246,0.004D0,101,131,126,177, 0, 0,
& 246,0.008D0,101,127,122,317, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1483,1501)/
& 246,0.008D0,101,129,124,317, 0, 0,
& 246,0.004D0,101,131,126,317, 0, 0,
& 246,0.013D0,101,127,122,178, 0, 0,
& 246,0.013D0,101,129,124,178, 0, 0,
& 246,0.006D0,101,131,126,178, 0, 0,
& 246,0.004D0, 0,175, 38, 0, 0, 0,
& 246,0.010D0, 0,175, 39, 0, 0, 0,
& 246,0.006D0, 0,175, 40, 0, 0, 0,
& 246,0.003D0, 0,176, 38, 0, 0, 0,
& 246,0.009D0, 0,176, 39, 0, 0, 0,
& 246,0.017D0, 0,176, 40, 0, 0, 0,
& 246,0.011D0, 0,175,144, 0, 0, 0,
& 246,0.015D0, 0,175,145, 0, 0, 0,
& 246,0.011D0, 0,176,144, 0, 0, 0,
& 246,0.022D0, 0,176,145, 0, 0, 0,
& 246,0.001D0, 0,164, 46, 0, 0, 0,
& 246,0.002D0, 0,164, 47, 0, 0, 0,
& 246,0.001D0, 0,165, 46, 0, 0, 0,
& 246,0.001D0, 0,165, 47, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1502,1520)/
& 246,0.001D0, 0,166, 46, 0, 0, 0,
& 246,0.001D0, 0,166, 47, 0, 0, 0,
& 246,0.207D0,100, 7, 2, 10, 2, 0,
& 246,0.207D0,100, 9, 4, 10, 2, 0,
& 246,0.024D0,100, 7, 2, 8, 2, 0,
& 246,0.024D0,100, 9, 4, 8, 2, 0,
& 246,0.012D0,100, 9, 2, 10, 2, 0,
& 246,0.012D0,100, 7, 4, 10, 2, 0,
& 246,0.069D0,100, 10, 2, 7, 2, 0,
& 246,0.069D0,100, 10, 4, 9, 2, 0,
& 246,0.008D0,100, 8, 2, 7, 2, 0,
& 246,0.008D0,100, 8, 4, 9, 2, 0,
& 246,0.004D0,100, 10, 2, 9, 2, 0,
& 246,0.004D0,100, 10, 4, 7, 2, 0,
& 247,0.016D0,101,127,122,179, 0, 0,
& 247,0.016D0,101,129,124,179, 0, 0,
& 247,0.008D0,101,131,126,179, 0, 0,
& 247,0.048D0,101,127,122,180, 0, 0,
& 247,0.048D0,101,129,124,180, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1521,1539)/
& 247,0.022D0,101,131,126,180, 0, 0,
& 247,0.003D0,101,127,122,336, 0, 0,
& 247,0.003D0,101,129,124,336, 0, 0,
& 247,0.001D0,101,131,126,336, 0, 0,
& 247,0.008D0,101,127,122,181, 0, 0,
& 247,0.008D0,101,129,124,181, 0, 0,
& 247,0.004D0,101,131,126,181, 0, 0,
& 247,0.008D0,101,127,122,318, 0, 0,
& 247,0.008D0,101,129,124,318, 0, 0,
& 247,0.004D0,101,131,126,318, 0, 0,
& 247,0.013D0,101,127,122,182, 0, 0,
& 247,0.013D0,101,129,124,182, 0, 0,
& 247,0.006D0,101,131,126,182, 0, 0,
& 247,0.004D0, 0,179, 38, 0, 0, 0,
& 247,0.010D0, 0,179, 39, 0, 0, 0,
& 247,0.006D0, 0,179, 40, 0, 0, 0,
& 247,0.003D0, 0,180, 38, 0, 0, 0,
& 247,0.009D0, 0,180, 39, 0, 0, 0,
& 247,0.017D0, 0,180, 40, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1540,1558)/
& 247,0.011D0, 0,179,144, 0, 0, 0,
& 247,0.015D0, 0,179,145, 0, 0, 0,
& 247,0.011D0, 0,180,144, 0, 0, 0,
& 247,0.022D0, 0,180,145, 0, 0, 0,
& 247,0.001D0, 0,164, 25, 0, 0, 0,
& 247,0.002D0, 0,164, 56, 0, 0, 0,
& 247,0.001D0, 0,165, 25, 0, 0, 0,
& 247,0.001D0, 0,165, 56, 0, 0, 0,
& 247,0.001D0, 0,166, 25, 0, 0, 0,
& 247,0.001D0, 0,166, 56, 0, 0, 0,
& 247,0.207D0,100, 7, 2, 10, 3, 0,
& 247,0.207D0,100, 9, 4, 10, 3, 0,
& 247,0.024D0,100, 7, 2, 8, 3, 0,
& 247,0.024D0,100, 9, 4, 8, 3, 0,
& 247,0.012D0,100, 9, 2, 10, 3, 0,
& 247,0.012D0,100, 7, 4, 10, 3, 0,
& 247,0.069D0,100, 10, 2, 7, 3, 0,
& 247,0.069D0,100, 10, 4, 9, 3, 0,
& 247,0.008D0,100, 8, 2, 7, 3, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1559,1577)/
& 247,0.008D0,100, 8, 4, 9, 3, 0,
& 247,0.004D0,100, 10, 2, 9, 3, 0,
& 247,0.004D0,100, 10, 4, 7, 3, 0,
& 248,0.090D0,100,127,122, 10,115, 0,
& 248,0.090D0,100,129,124, 10,115, 0,
& 248,0.045D0,100,131,126, 10,115, 0,
& 248,0.010D0,100,127,122, 8,115, 0,
& 248,0.010D0,100,129,124, 8,115, 0,
& 248,0.005D0,100,131,126, 8,115, 0,
& 248,0.242D0,100, 7, 2, 10,115, 0,
& 248,0.242D0,100, 9, 4, 10,115, 0,
& 248,0.027D0,100, 7, 2, 8,115, 0,
& 248,0.027D0,100, 9, 4, 8,115, 0,
& 248,0.012D0,100, 9, 2, 10,115, 0,
& 248,0.012D0,100, 7, 4, 10,115, 0,
& 248,0.081D0,100, 10, 2, 7,115, 0,
& 248,0.081D0,100, 10, 4, 9,115, 0,
& 248,0.009D0,100, 8, 2, 7,115, 0,
& 248,0.009D0,100, 8, 4, 9,115, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1578,1596)/
& 248,0.004D0,100, 10, 2, 9,115, 0,
& 248,0.004D0,100, 10, 4, 7,115, 0,
& 249,0.090D0,100,127,122, 10,116, 0,
& 249,0.090D0,100,129,124, 10,116, 0,
& 249,0.045D0,100,131,126, 10,116, 0,
& 249,0.010D0,100,127,122, 8,116, 0,
& 249,0.010D0,100,129,124, 8,116, 0,
& 249,0.005D0,100,131,126, 8,116, 0,
& 249,0.242D0,100, 7, 2, 10,116, 0,
& 249,0.242D0,100, 9, 4, 10,116, 0,
& 249,0.027D0,100, 7, 2, 8,116, 0,
& 249,0.027D0,100, 9, 4, 8,116, 0,
& 249,0.012D0,100, 9, 2, 10,116, 0,
& 249,0.012D0,100, 7, 4, 10,116, 0,
& 249,0.081D0,100, 10, 2, 7,116, 0,
& 249,0.081D0,100, 10, 4, 9,116, 0,
& 249,0.009D0,100, 8, 2, 7,116, 0,
& 249,0.009D0,100, 8, 4, 9,116, 0,
& 249,0.004D0,100, 10, 2, 9,116, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1597,1615)/
& 249,0.004D0,100, 10, 4, 7,116, 0,
& 250,0.090D0,100,127,122, 10,117, 0,
& 250,0.090D0,100,129,124, 10,117, 0,
& 250,0.045D0,100,131,126, 10,117, 0,
& 250,0.010D0,100,127,122, 8,117, 0,
& 250,0.010D0,100,129,124, 8,117, 0,
& 250,0.005D0,100,131,126, 8,117, 0,
& 250,0.242D0,100, 7, 2, 10,117, 0,
& 250,0.242D0,100, 9, 4, 10,117, 0,
& 250,0.027D0,100, 7, 2, 8,117, 0,
& 250,0.027D0,100, 9, 4, 8,117, 0,
& 250,0.012D0,100, 9, 2, 10,117, 0,
& 250,0.012D0,100, 7, 4, 10,117, 0,
& 250,0.081D0,100, 10, 2, 7,117, 0,
& 250,0.081D0,100, 10, 4, 9,117, 0,
& 250,0.009D0,100, 8, 2, 7,117, 0,
& 250,0.009D0,100, 8, 4, 9,117, 0,
& 250,0.004D0,100, 10, 2, 9,117, 0,
& 250,0.004D0,100, 10, 4, 7,117, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1616,1634)/
& 251,0.090D0,100,127,122, 10,118, 0,
& 251,0.090D0,100,129,124, 10,118, 0,
& 251,0.045D0,100,131,126, 10,118, 0,
& 251,0.010D0,100,127,122, 8,118, 0,
& 251,0.010D0,100,129,124, 8,118, 0,
& 251,0.005D0,100,131,126, 8,118, 0,
& 251,0.242D0,100, 7, 2, 10,118, 0,
& 251,0.242D0,100, 9, 4, 10,118, 0,
& 251,0.027D0,100, 7, 2, 8,118, 0,
& 251,0.027D0,100, 9, 4, 8,118, 0,
& 251,0.012D0,100, 9, 2, 10,118, 0,
& 251,0.012D0,100, 7, 4, 10,118, 0,
& 251,0.081D0,100, 10, 2, 7,118, 0,
& 251,0.081D0,100, 10, 4, 9,118, 0,
& 251,0.009D0,100, 8, 2, 7,118, 0,
& 251,0.009D0,100, 8, 4, 9,118, 0,
& 251,0.004D0,100, 10, 2, 9,118, 0,
& 251,0.004D0,100, 10, 4, 7,118, 0,
& 252,0.090D0,100,127,122, 10,119, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1635,1653)/
& 252,0.090D0,100,129,124, 10,119, 0,
& 252,0.045D0,100,131,126, 10,119, 0,
& 252,0.010D0,100,127,122, 8,119, 0,
& 252,0.010D0,100,129,124, 8,119, 0,
& 252,0.005D0,100,131,126, 8,119, 0,
& 252,0.242D0,100, 7, 2, 10,119, 0,
& 252,0.242D0,100, 9, 4, 10,119, 0,
& 252,0.027D0,100, 7, 2, 8,119, 0,
& 252,0.027D0,100, 9, 4, 8,119, 0,
& 252,0.012D0,100, 9, 2, 10,119, 0,
& 252,0.012D0,100, 7, 4, 10,119, 0,
& 252,0.081D0,100, 10, 2, 7,119, 0,
& 252,0.081D0,100, 10, 4, 9,119, 0,
& 252,0.009D0,100, 8, 2, 7,119, 0,
& 252,0.009D0,100, 8, 4, 9,119, 0,
& 252,0.004D0,100, 10, 2, 9,119, 0,
& 252,0.004D0,100, 10, 4, 7,119, 0,
& 253,0.090D0,100,127,122, 10,120, 0,
& 253,0.090D0,100,129,124, 10,120, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1654,1672)/
& 253,0.045D0,100,131,126, 10,120, 0,
& 253,0.010D0,100,127,122, 8,120, 0,
& 253,0.010D0,100,129,124, 8,120, 0,
& 253,0.005D0,100,131,126, 8,120, 0,
& 253,0.242D0,100, 7, 2, 10,120, 0,
& 253,0.242D0,100, 9, 4, 10,120, 0,
& 253,0.027D0,100, 7, 2, 8,120, 0,
& 253,0.027D0,100, 9, 4, 8,120, 0,
& 253,0.012D0,100, 9, 2, 10,120, 0,
& 253,0.012D0,100, 7, 4, 10,120, 0,
& 253,0.081D0,100, 10, 2, 7,120, 0,
& 253,0.081D0,100, 10, 4, 9,120, 0,
& 253,0.009D0,100, 8, 2, 7,120, 0,
& 253,0.009D0,100, 8, 4, 9,120, 0,
& 253,0.004D0,100, 10, 2, 9,120, 0,
& 253,0.004D0,100, 10, 4, 7,120, 0,
& 254,0.080D0,100,127,122, 10, 4, 0,
& 254,0.080D0,100,129,124, 10, 4, 0,
& 254,0.040D0,100,131,126, 10, 4, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1673,1691)/
& 254,0.080D0,100,127,122, 3, 11, 0,
& 254,0.080D0,100,129,124, 3, 11, 0,
& 254,0.228D0,100, 7, 2, 10, 4, 0,
& 254,0.228D0,100, 9, 4, 10, 4, 0,
& 254,0.012D0,100, 9, 2, 10, 4, 0,
& 254,0.012D0,100, 7, 4, 10, 4, 0,
& 254,0.076D0,100, 10, 2, 7, 4, 0,
& 254,0.076D0,100, 10, 4, 9, 4, 0,
& 254,0.004D0,100, 10, 2, 9, 4, 0,
& 254,0.004D0,100, 10, 4, 7, 4, 0,
& 265,1.000D0, 0,221, 59, 0, 0, 0,
& 266,1.000D0, 0,222, 59, 0, 0, 0,
& 267,1.000D0, 0,223, 59, 0, 0, 0,
& 268,0.667D0, 0,266, 38, 0, 0, 0,
& 268,0.333D0, 0,265, 21, 0, 0, 0,
& 269,0.667D0, 0,265, 30, 0, 0, 0,
& 269,0.333D0, 0,266, 21, 0, 0, 0,
& 270,0.500D0, 0,265, 50, 0, 0, 0,
& 270,0.500D0, 0,266, 46, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1692,1710)/
& 271,0.290D0, 0,266, 38, 0, 0, 0,
& 271,0.150D0, 0,265, 21, 0, 0, 0,
& 271,0.290D0, 0,222, 38, 0, 0, 0,
& 271,0.150D0, 0,221, 21, 0, 0, 0,
& 271,0.060D0, 0,266, 38, 21, 0, 0,
& 271,0.020D0, 0,265, 38, 30, 0, 0,
& 271,0.010D0, 0,265, 21, 21, 0, 0,
& 271,0.020D0, 0,222, 38, 21, 0, 0,
& 271,0.010D0, 0,221, 38, 30, 0, 0,
& 272,0.290D0, 0,265, 30, 0, 0, 0,
& 272,0.150D0, 0,266, 21, 0, 0, 0,
& 272,0.290D0, 0,221, 30, 0, 0, 0,
& 272,0.150D0, 0,222, 21, 0, 0, 0,
& 272,0.060D0, 0,265, 30, 21, 0, 0,
& 272,0.020D0, 0,266, 38, 30, 0, 0,
& 272,0.010D0, 0,266, 21, 21, 0, 0,
& 272,0.020D0, 0,221, 30, 21, 0, 0,
& 272,0.010D0, 0,222, 38, 30, 0, 0,
& 273,0.350D0, 0,221, 50, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1711,1729)/
& 273,0.350D0, 0,222, 46, 0, 0, 0,
& 273,0.150D0, 0,265, 50, 0, 0, 0,
& 273,0.150D0, 0,266, 46, 0, 0, 0,
& 274,1.000D0, 0,245, 59, 0, 0, 0,
& 275,1.000D0, 0,246, 59, 0, 0, 0,
& 276,1.000D0, 0,247, 59, 0, 0, 0,
& 277,0.667D0, 0,275, 30, 0, 0, 0,
& 277,0.333D0, 0,274, 21, 0, 0, 0,
& 278,0.667D0, 0,274, 38, 0, 0, 0,
& 278,0.333D0, 0,275, 21, 0, 0, 0,
& 279,0.500D0, 0,274, 42, 0, 0, 0,
& 279,0.500D0, 0,275, 34, 0, 0, 0,
& 280,0.290D0, 0,275, 30, 0, 0, 0,
& 280,0.150D0, 0,274, 21, 0, 0, 0,
& 280,0.290D0, 0,246, 30, 0, 0, 0,
& 280,0.150D0, 0,245, 21, 0, 0, 0,
& 280,0.060D0, 0,275, 30, 21, 0, 0,
& 280,0.020D0, 0,274, 38, 30, 0, 0,
& 280,0.010D0, 0,274, 21, 21, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1730,1748)/
& 280,0.020D0, 0,246, 30, 21, 0, 0,
& 280,0.010D0, 0,245, 38, 30, 0, 0,
& 281,0.290D0, 0,274, 38, 0, 0, 0,
& 281,0.150D0, 0,275, 21, 0, 0, 0,
& 281,0.290D0, 0,245, 38, 0, 0, 0,
& 281,0.150D0, 0,246, 21, 0, 0, 0,
& 281,0.060D0, 0,274, 38, 21, 0, 0,
& 281,0.020D0, 0,275, 38, 30, 0, 0,
& 281,0.010D0, 0,275, 21, 21, 0, 0,
& 281,0.020D0, 0,245, 38, 21, 0, 0,
& 281,0.010D0, 0,246, 38, 30, 0, 0,
& 282,0.350D0, 0,245, 42, 0, 0, 0,
& 282,0.350D0, 0,246, 34, 0, 0, 0,
& 282,0.150D0, 0,274, 42, 0, 0, 0,
& 282,0.150D0, 0,275, 34, 0, 0, 0,
& 285,1.000D0, 0, 24, 21, 0, 0, 0,
& 286,0.998D0, 0, 24, 38, 0, 0, 0,
& 286,0.002D0, 0, 38, 59, 0, 0, 0,
& 287,0.998D0, 0, 24, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1749,1767)/
& 287,0.002D0, 0, 30, 59, 0, 0, 0,
& 288,0.330D0, 0, 39, 30, 0, 0, 0,
& 288,0.340D0, 0, 23, 21, 0, 0, 0,
& 288,0.330D0, 0, 31, 38, 0, 0, 0,
& 289,0.250D0, 0, 46, 35, 0, 0, 0,
& 289,0.250D0, 0, 34, 47, 0, 0, 0,
& 289,0.250D0, 0, 50, 43, 0, 0, 0,
& 289,0.250D0, 0, 42, 51, 0, 0, 0,
& 290,0.996D0, 0, 22, 21, 0, 0, 0,
& 290,0.002D0, 0, 46, 34, 0, 0, 0,
& 290,0.002D0, 0, 50, 42, 0, 0, 0,
& 291,0.996D0, 0, 22, 38, 0, 0, 0,
& 291,0.004D0, 0, 46, 42, 0, 0, 0,
& 292,0.996D0, 0, 22, 30, 0, 0, 0,
& 292,0.004D0, 0, 50, 34, 0, 0, 0,
& 293,0.520D0, 0, 38, 30, 0, 0, 0,
& 293,0.260D0, 0, 21, 21, 0, 0, 0,
& 293,0.110D0, 0, 46, 34, 0, 0, 0,
& 293,0.110D0, 0, 50, 42, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1768,1786)/
& 294,0.620D0, 0, 38, 30, 0, 0, 0,
& 294,0.310D0, 0, 21, 21, 0, 0, 0,
& 294,0.035D0, 0, 46, 34, 0, 0, 0,
& 294,0.035D0, 0, 50, 42, 0, 0, 0,
& 295,1.000D0, 0,254, 59, 0, 0, 0,
& 296,1.000D0, 0,230, 59, 0, 0, 0,
& 297,1.000D0, 0,254, 59, 0, 0, 0,
& 298,1.000D0, 0,230, 59, 0, 0, 0,
& 299,1.000D0, 0,254, 59, 0, 0, 0,
& 300,1.000D0, 0,230, 59, 0, 0, 0,
& 301,0.050D0, 0,121,127, 0, 0, 0,
& 301,0.050D0, 0,123,129, 0, 0, 0,
& 301,0.017D0, 0, 1, 7, 0, 0, 0,
& 301,0.066D0, 0, 2, 8, 0, 0, 0,
& 301,0.017D0, 0, 3, 9, 0, 0, 0,
& 301,0.640D0,130, 13, 13, 13, 0, 0,
& 301,0.160D0,130, 13, 13, 59, 0, 0,
& 302,0.022D0, 0, 38, 30, 38, 30, 23,
& 302,0.016D0, 0, 38, 30, 38, 30, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1787,1805)/
& 302,0.009D0, 0, 38, 30, 46, 34, 0,
& 302,0.004D0, 0, 23, 38, 30, 0, 0,
& 302,0.002D0, 0, 46, 43, 30, 0, 0,
& 302,0.002D0, 0, 34, 51, 38, 0, 0,
& 302,0.001D0, 0, 38, 30, 73, 91, 0,
& 302,0.273D0, 0, 59,164, 0, 0, 0,
& 302,0.671D0, 0, 13, 13, 0, 0, 0,
& 303,0.022D0, 0, 38, 30, 38, 30, 0,
& 303,0.019D0, 0, 38, 30, 46, 34, 0,
& 303,0.012D0, 0, 38, 30, 38, 30, 23,
& 303,0.007D0, 0, 23, 38, 30, 0, 0,
& 303,0.002D0, 0, 46, 43, 30, 0, 0,
& 303,0.002D0, 0, 34, 51, 38, 0, 0,
& 303,0.003D0, 0, 38, 30, 73, 91, 0,
& 303,0.002D0, 0, 38, 30, 0, 0, 0,
& 303,0.002D0, 0, 46, 34, 0, 0, 0,
& 303,0.001D0, 0, 21, 21, 0, 0, 0,
& 303,0.135D0, 0, 59,164, 0, 0, 0,
& 303,0.793D0, 0, 13, 13, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1806,1824)/
& 304,1.000D0, 0, 13, 13, 0, 0, 0,
& 305,1.000D0, 0, 13, 13, 0, 0, 0,
& 306,0.050D0, 0, 59,231, 0, 0, 0,
& 306,0.950D0, 0, 13, 13, 0, 0, 0,
& 307,0.350D0, 0, 59,231, 0, 0, 0,
& 307,0.650D0, 0, 13, 13, 0, 0, 0,
& 308,0.220D0, 0, 59,231, 0, 0, 0,
& 308,0.780D0, 0, 13, 13, 0, 0, 0,
& 309,0.280D0, 0, 46, 31, 0, 0, 0,
& 309,0.140D0, 0, 50, 23, 0, 0, 0,
& 309,0.187D0, 0,327, 30, 0, 0, 0,
& 309,0.093D0, 0,328, 21, 0, 0, 0,
& 309,0.110D0, 0, 50, 24, 0, 0, 0,
& 309,0.107D0, 0, 47, 30, 0, 0, 0,
& 309,0.053D0, 0, 51, 21, 0, 0, 0,
& 309,0.030D0, 0, 50,293, 0, 0, 0,
& 310,0.280D0, 0, 50, 39, 0, 0, 0,
& 310,0.140D0, 0, 46, 23, 0, 0, 0,
& 310,0.187D0, 0,328, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1825,1843)/
& 310,0.093D0, 0,327, 21, 0, 0, 0,
& 310,0.110D0, 0, 46, 24, 0, 0, 0,
& 310,0.107D0, 0, 51, 38, 0, 0, 0,
& 310,0.053D0, 0, 47, 21, 0, 0, 0,
& 310,0.030D0, 0, 46,293, 0, 0, 0,
& 311,0.280D0, 0, 34, 39, 0, 0, 0,
& 311,0.140D0, 0, 42, 23, 0, 0, 0,
& 311,0.187D0, 0,330, 38, 0, 0, 0,
& 311,0.093D0, 0,329, 21, 0, 0, 0,
& 311,0.110D0, 0, 42, 24, 0, 0, 0,
& 311,0.107D0, 0, 35, 38, 0, 0, 0,
& 311,0.053D0, 0, 43, 21, 0, 0, 0,
& 311,0.030D0, 0, 42,293, 0, 0, 0,
& 312,0.280D0, 0, 42, 31, 0, 0, 0,
& 312,0.140D0, 0, 34, 23, 0, 0, 0,
& 312,0.187D0, 0,329, 30, 0, 0, 0,
& 312,0.093D0, 0,330, 21, 0, 0, 0,
& 312,0.110D0, 0, 34, 24, 0, 0, 0,
& 312,0.107D0, 0, 43, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1844,1862)/
& 312,0.053D0, 0, 35, 21, 0, 0, 0,
& 312,0.030D0, 0, 34,293, 0, 0, 0,
& 313,0.430D0, 0,140, 38, 0, 0, 0,
& 313,0.215D0, 0,136, 21, 0, 0, 0,
& 313,0.235D0, 0,140, 38, 21, 0, 0,
& 313,0.120D0, 0,136, 38, 30, 0, 0,
& 314,0.430D0, 0,136, 30, 0, 0, 0,
& 314,0.215D0, 0,140, 21, 0, 0, 0,
& 314,0.235D0, 0,136, 30, 21, 0, 0,
& 314,0.120D0, 0,140, 38, 30, 0, 0,
& 315,0.480D0, 0,136, 50, 0, 0, 0,
& 315,0.480D0, 0,140, 46, 0, 0, 0,
& 315,0.040D0, 0,145, 59, 0, 0, 0,
& 316,0.430D0, 0,175, 30, 0, 0, 0,
& 316,0.215D0, 0,171, 21, 0, 0, 0,
& 316,0.235D0, 0,175, 30, 21, 0, 0,
& 316,0.120D0, 0,171, 38, 30, 0, 0,
& 317,0.430D0, 0,171, 38, 0, 0, 0,
& 317,0.215D0, 0,175, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1863,1881)/
& 317,0.235D0, 0,171, 38, 21, 0, 0,
& 317,0.120D0, 0,175, 38, 30, 0, 0,
& 318,0.480D0, 0,171, 42, 0, 0, 0,
& 318,0.480D0, 0,175, 34, 0, 0, 0,
& 318,0.040D0, 0,180, 59, 0, 0, 0,
& 319,0.540D0, 0,275, 30, 0, 0, 0,
& 319,0.270D0, 0,274, 21, 0, 0, 0,
& 319,0.030D0, 0,275, 30, 21, 0, 0,
& 319,0.010D0, 0,274, 38, 30, 0, 0,
& 319,0.010D0, 0,274, 21, 21, 0, 0,
& 319,0.090D0, 0,246, 30, 21, 0, 0,
& 319,0.030D0, 0,245, 38, 30, 0, 0,
& 319,0.020D0, 0,245, 21, 21, 0, 0,
& 320,0.540D0, 0,274, 38, 0, 0, 0,
& 320,0.270D0, 0,275, 21, 0, 0, 0,
& 320,0.030D0, 0,274, 38, 21, 0, 0,
& 320,0.010D0, 0,275, 38, 30, 0, 0,
& 320,0.010D0, 0,275, 21, 21, 0, 0,
& 320,0.090D0, 0,245, 38, 21, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1882,1900)/
& 320,0.030D0, 0,246, 38, 30, 0, 0,
& 320,0.020D0, 0,246, 21, 21, 0, 0,
& 321,0.500D0, 0,266, 46, 0, 0, 0,
& 321,0.500D0, 0,265, 50, 0, 0, 0,
& 322,1.000D0, 0,254, 59, 0, 0, 0,
& 323,0.540D0, 0,266, 38, 0, 0, 0,
& 323,0.270D0, 0,265, 21, 0, 0, 0,
& 323,0.030D0, 0,266, 38, 21, 0, 0,
& 323,0.010D0, 0,265, 38, 30, 0, 0,
& 323,0.010D0, 0,265, 21, 21, 0, 0,
& 323,0.090D0, 0,222, 38, 21, 0, 0,
& 323,0.030D0, 0,221, 38, 30, 0, 0,
& 323,0.020D0, 0,221, 21, 21, 0, 0,
& 324,0.540D0, 0,265, 30, 0, 0, 0,
& 324,0.270D0, 0,266, 21, 0, 0, 0,
& 324,0.030D0, 0,265, 30, 21, 0, 0,
& 324,0.010D0, 0,266, 38, 30, 0, 0,
& 324,0.010D0, 0,266, 21, 21, 0, 0,
& 324,0.090D0, 0,221, 30, 21, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1901,1919)/
& 324,0.030D0, 0,222, 38, 30, 0, 0,
& 324,0.020D0, 0,222, 21, 21, 0, 0,
& 325,0.500D0, 0,275, 34, 0, 0, 0,
& 325,0.500D0, 0,274, 42, 0, 0, 0,
& 326,1.000D0, 0,230, 59, 0, 0, 0,
& 327,0.667D0, 0, 50, 38, 0, 0, 0,
& 327,0.333D0, 0, 46, 21, 0, 0, 0,
& 328,0.667D0, 0, 46, 30, 0, 0, 0,
& 328,0.333D0, 0, 50, 21, 0, 0, 0,
& 329,0.667D0, 0, 34, 38, 0, 0, 0,
& 329,0.333D0, 0, 42, 21, 0, 0, 0,
& 330,0.667D0, 0, 42, 30, 0, 0, 0,
& 330,0.333D0, 0, 34, 21, 0, 0, 0,
& 331,0.667D0, 0,140, 38, 0, 0, 0,
& 331,0.333D0, 0,136, 21, 0, 0, 0,
& 332,0.667D0, 0,136, 30, 0, 0, 0,
& 332,0.333D0, 0,140, 21, 0, 0, 0,
& 333,0.500D0, 0,136, 50, 0, 0, 0,
& 333,0.500D0, 0,140, 46, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1920,1938)/
& 334,0.667D0, 0,175, 30, 0, 0, 0,
& 334,0.333D0, 0,171, 21, 0, 0, 0,
& 335,0.667D0, 0,171, 38, 0, 0, 0,
& 335,0.333D0, 0,175, 21, 0, 0, 0,
& 336,0.500D0, 0,171, 42, 0, 0, 0,
& 336,0.500D0, 0,175, 34, 0, 0, 0,
& 337,0.667D0, 0,246, 30, 0, 0, 0,
& 337,0.333D0, 0,245, 21, 0, 0, 0,
& 338,0.667D0, 0,245, 38, 0, 0, 0,
& 338,0.333D0, 0,246, 21, 0, 0, 0,
& 339,0.500D0, 0,246, 34, 0, 0, 0,
& 339,0.500D0, 0,245, 42, 0, 0, 0,
& 340,1.000D0, 0,254, 59, 0, 0, 0,
& 341,0.667D0, 0,222, 38, 0, 0, 0,
& 341,0.333D0, 0,221, 21, 0, 0, 0,
& 342,0.667D0, 0,221, 30, 0, 0, 0,
& 342,0.333D0, 0,222, 21, 0, 0, 0,
& 343,0.500D0, 0,222, 46, 0, 0, 0,
& 343,0.500D0, 0,221, 50, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1939,1957)/
& 344,1.000D0, 0,230, 59, 0, 0, 0,
& 345,1.000D0, 0,225, 30, 0, 0, 0,
& 346,1.000D0, 0,225, 21, 0, 0, 0,
& 347,1.000D0, 0,225, 21, 0, 0, 0,
& 348,1.000D0, 0,225, 38, 0, 0, 0,
& 349,0.600D0, 0,228, 38, 0, 0, 0,
& 349,0.300D0, 0,227, 21, 0, 0, 0,
& 349,0.100D0, 0,227, 59, 0, 0, 0,
& 350,0.600D0, 0,228, 38, 0, 0, 0,
& 350,0.300D0, 0,227, 21, 0, 0, 0,
& 350,0.100D0, 0,227, 59, 0, 0, 0,
& 351,0.600D0, 0,227, 30, 0, 0, 0,
& 351,0.300D0, 0,228, 21, 0, 0, 0,
& 351,0.100D0, 0,228, 59, 0, 0, 0,
& 352,0.600D0, 0,227, 30, 0, 0, 0,
& 352,0.300D0, 0,228, 21, 0, 0, 0,
& 352,0.100D0, 0,228, 59, 0, 0, 0,
& 353,1.000D0, 0,229, 59, 0, 0, 0,
& 354,1.000D0, 0,249, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1958,1976)/
& 355,1.000D0, 0,249, 21, 0, 0, 0,
& 356,1.000D0, 0,249, 21, 0, 0, 0,
& 357,1.000D0, 0,249, 30, 0, 0, 0,
& 358,0.600D0, 0,252, 30, 0, 0, 0,
& 358,0.300D0, 0,251, 21, 0, 0, 0,
& 358,0.100D0, 0,251, 59, 0, 0, 0,
& 359,0.600D0, 0,252, 30, 0, 0, 0,
& 359,0.300D0, 0,251, 21, 0, 0, 0,
& 359,0.100D0, 0,251, 59, 0, 0, 0,
& 360,0.600D0, 0,251, 38, 0, 0, 0,
& 360,0.300D0, 0,252, 21, 0, 0, 0,
& 360,0.100D0, 0,252, 59, 0, 0, 0,
& 361,0.600D0, 0,251, 38, 0, 0, 0,
& 361,0.300D0, 0,252, 21, 0, 0, 0,
& 361,0.100D0, 0,252, 59, 0, 0, 0,
& 362,1.000D0, 0,253, 59, 0, 0, 0,
& 363,0.400D0, 0, 53, 38, 0, 0, 0,
& 363,0.200D0, 0, 49, 21, 0, 0, 0,
& 363,0.100D0, 0, 51, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1977,1995)/
& 363,0.050D0, 0, 47, 21, 0, 0, 0,
& 363,0.150D0, 0, 46, 26, 0, 0, 0,
& 363,0.050D0, 0, 46, 56, 0, 0, 0,
& 363,0.050D0, 0, 46, 24, 0, 0, 0,
& 364,0.400D0, 0, 49, 30, 0, 0, 0,
& 364,0.200D0, 0, 53, 21, 0, 0, 0,
& 364,0.100D0, 0, 47, 30, 0, 0, 0,
& 364,0.050D0, 0, 51, 21, 0, 0, 0,
& 364,0.150D0, 0, 50, 26, 0, 0, 0,
& 364,0.050D0, 0, 50, 56, 0, 0, 0,
& 364,0.050D0, 0, 50, 24, 0, 0, 0,
& 365,0.400D0, 0, 37, 38, 0, 0, 0,
& 365,0.200D0, 0, 45, 21, 0, 0, 0,
& 365,0.100D0, 0, 35, 38, 0, 0, 0,
& 365,0.050D0, 0, 43, 21, 0, 0, 0,
& 365,0.150D0, 0, 42, 26, 0, 0, 0,
& 365,0.050D0, 0, 42, 56, 0, 0, 0,
& 365,0.050D0, 0, 42, 24, 0, 0, 0,
& 366,0.400D0, 0, 45, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=1996,2014)/
& 366,0.200D0, 0, 37, 21, 0, 0, 0,
& 366,0.100D0, 0, 43, 30, 0, 0, 0,
& 366,0.050D0, 0, 35, 21, 0, 0, 0,
& 366,0.150D0, 0, 34, 26, 0, 0, 0,
& 366,0.050D0, 0, 34, 56, 0, 0, 0,
& 366,0.050D0, 0, 34, 24, 0, 0, 0,
& 367,0.258D0, 0, 50, 38, 0, 0, 0,
& 367,0.129D0, 0, 46, 21, 0, 0, 0,
& 367,0.209D0, 0, 50, 39, 0, 0, 0,
& 367,0.105D0, 0, 46, 23, 0, 0, 0,
& 367,0.199D0, 0, 51, 38, 0, 0, 0,
& 367,0.100D0, 0, 47, 21, 0, 0, 0,
& 368,0.258D0, 0, 46, 30, 0, 0, 0,
& 368,0.129D0, 0, 50, 21, 0, 0, 0,
& 368,0.209D0, 0, 46, 31, 0, 0, 0,
& 368,0.105D0, 0, 50, 23, 0, 0, 0,
& 368,0.199D0, 0, 47, 30, 0, 0, 0,
& 368,0.100D0, 0, 51, 21, 0, 0, 0,
& 369,0.258D0, 0, 34, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2015,2033)/
& 369,0.129D0, 0, 42, 21, 0, 0, 0,
& 369,0.209D0, 0, 34, 39, 0, 0, 0,
& 369,0.105D0, 0, 42, 23, 0, 0, 0,
& 369,0.199D0, 0, 35, 38, 0, 0, 0,
& 369,0.100D0, 0, 43, 21, 0, 0, 0,
& 370,0.258D0, 0, 42, 30, 0, 0, 0,
& 370,0.129D0, 0, 34, 21, 0, 0, 0,
& 370,0.209D0, 0, 42, 31, 0, 0, 0,
& 370,0.105D0, 0, 34, 23, 0, 0, 0,
& 370,0.199D0, 0, 43, 30, 0, 0, 0,
& 370,0.100D0, 0, 35, 21, 0, 0, 0,
& 371,0.400D0, 0, 53, 38, 0, 0, 0,
& 371,0.200D0, 0, 49, 21, 0, 0, 0,
& 371,0.100D0, 0, 51, 38, 0, 0, 0,
& 371,0.050D0, 0, 47, 21, 0, 0, 0,
& 371,0.150D0, 0, 46, 26, 0, 0, 0,
& 371,0.050D0, 0, 46, 56, 0, 0, 0,
& 371,0.050D0, 0, 46, 24, 0, 0, 0,
& 372,0.400D0, 0, 49, 30, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2034,2052)/
& 372,0.200D0, 0, 53, 21, 0, 0, 0,
& 372,0.100D0, 0, 47, 30, 0, 0, 0,
& 372,0.050D0, 0, 51, 21, 0, 0, 0,
& 372,0.150D0, 0, 50, 26, 0, 0, 0,
& 372,0.050D0, 0, 50, 56, 0, 0, 0,
& 372,0.050D0, 0, 50, 24, 0, 0, 0,
& 373,0.400D0, 0, 37, 38, 0, 0, 0,
& 373,0.200D0, 0, 45, 21, 0, 0, 0,
& 373,0.100D0, 0, 35, 38, 0, 0, 0,
& 373,0.050D0, 0, 43, 21, 0, 0, 0,
& 373,0.150D0, 0, 42, 26, 0, 0, 0,
& 373,0.050D0, 0, 42, 56, 0, 0, 0,
& 373,0.050D0, 0, 42, 24, 0, 0, 0,
& 374,0.400D0, 0, 45, 30, 0, 0, 0,
& 374,0.200D0, 0, 37, 21, 0, 0, 0,
& 374,0.100D0, 0, 43, 30, 0, 0, 0,
& 374,0.050D0, 0, 35, 21, 0, 0, 0,
& 374,0.150D0, 0, 34, 26, 0, 0, 0,
& 374,0.050D0, 0, 34, 56, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2053,2071)/
& 374,0.050D0, 0, 34, 24, 0, 0, 0,
& 375,0.208D0, 0, 50, 39, 0, 0, 0,
& 375,0.104D0, 0, 46, 23, 0, 0, 0,
& 375,0.134D0, 0, 51, 38, 0, 0, 0,
& 375,0.067D0, 0, 47, 21, 0, 0, 0,
& 375,0.124D0, 0, 50, 38, 0, 0, 0,
& 375,0.062D0, 0, 46, 21, 0, 0, 0,
& 375,0.301D0, 0, 46, 22, 0, 0, 0,
& 376,0.208D0, 0, 46, 31, 0, 0, 0,
& 376,0.104D0, 0, 50, 23, 0, 0, 0,
& 376,0.134D0, 0, 47, 30, 0, 0, 0,
& 376,0.067D0, 0, 51, 21, 0, 0, 0,
& 376,0.124D0, 0, 46, 30, 0, 0, 0,
& 376,0.062D0, 0, 50, 21, 0, 0, 0,
& 376,0.301D0, 0, 50, 22, 0, 0, 0,
& 377,0.208D0, 0, 34, 39, 0, 0, 0,
& 377,0.104D0, 0, 42, 23, 0, 0, 0,
& 377,0.134D0, 0, 35, 38, 0, 0, 0,
& 377,0.067D0, 0, 43, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2072,2090)/
& 377,0.124D0, 0, 34, 38, 0, 0, 0,
& 377,0.062D0, 0, 42, 21, 0, 0, 0,
& 377,0.301D0, 0, 42, 22, 0, 0, 0,
& 378,0.208D0, 0, 42, 31, 0, 0, 0,
& 378,0.104D0, 0, 34, 23, 0, 0, 0,
& 378,0.134D0, 0, 43, 30, 0, 0, 0,
& 378,0.067D0, 0, 35, 21, 0, 0, 0,
& 378,0.124D0, 0, 42, 30, 0, 0, 0,
& 378,0.062D0, 0, 34, 21, 0, 0, 0,
& 378,0.301D0, 0, 34, 22, 0, 0, 0,
& 379,0.562D0, 0, 26, 38, 0, 0, 0,
& 379,0.155D0, 0, 39, 21, 0, 0, 0,
& 379,0.155D0, 0, 23, 38, 0, 0, 0,
& 379,0.088D0, 0,293, 38, 0, 0, 0,
& 379,0.020D0, 0, 46, 43, 0, 0, 0,
& 379,0.020D0, 0, 42, 47, 0, 0, 0,
& 380,0.562D0, 0, 26, 21, 0, 0, 0,
& 380,0.155D0, 0, 39, 30, 0, 0, 0,
& 380,0.155D0, 0, 31, 38, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2091,2109)/
& 380,0.088D0, 0,293, 21, 0, 0, 0,
& 380,0.010D0, 0, 46, 35, 0, 0, 0,
& 380,0.010D0, 0, 50, 43, 0, 0, 0,
& 380,0.010D0, 0, 34, 47, 0, 0, 0,
& 380,0.010D0, 0, 42, 51, 0, 0, 0,
& 381,0.562D0, 0, 26, 30, 0, 0, 0,
& 381,0.155D0, 0, 31, 21, 0, 0, 0,
& 381,0.155D0, 0, 23, 30, 0, 0, 0,
& 381,0.088D0, 0,293, 30, 0, 0, 0,
& 381,0.020D0, 0, 34, 51, 0, 0, 0,
& 381,0.020D0, 0, 50, 35, 0, 0, 0,
& 382,0.360D0, 0, 31, 38, 38, 0, 0,
& 382,0.180D0, 0, 23, 38, 21, 0, 0,
& 382,0.040D0, 0, 39, 21, 21, 0, 0,
& 382,0.020D0, 0, 39, 38, 30, 0, 0,
& 382,0.300D0, 0, 38, 21, 0, 0, 0,
& 382,0.040D0, 0, 46, 43, 0, 0, 0,
& 382,0.040D0, 0, 42, 47, 0, 0, 0,
& 382,0.020D0, 0, 22, 39, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2110,2128)/
& 383,0.180D0, 0, 39, 30, 21, 0, 0,
& 383,0.180D0, 0, 31, 38, 21, 0, 0,
& 383,0.160D0, 0, 23, 21, 21, 0, 0,
& 383,0.080D0, 0, 23, 38, 30, 0, 0,
& 383,0.300D0, 0, 38, 30, 0, 0, 0,
& 383,0.020D0, 0, 46, 35, 0, 0, 0,
& 383,0.020D0, 0, 50, 43, 0, 0, 0,
& 383,0.020D0, 0, 34, 47, 0, 0, 0,
& 383,0.020D0, 0, 42, 51, 0, 0, 0,
& 383,0.020D0, 0, 22, 23, 0, 0, 0,
& 384,0.360D0, 0, 39, 30, 30, 0, 0,
& 384,0.180D0, 0, 23, 30, 21, 0, 0,
& 384,0.040D0, 0, 31, 21, 21, 0, 0,
& 384,0.020D0, 0, 31, 30, 38, 0, 0,
& 384,0.300D0, 0, 30, 21, 0, 0, 0,
& 384,0.040D0, 0, 34, 51, 0, 0, 0,
& 384,0.040D0, 0, 50, 35, 0, 0, 0,
& 384,0.020D0, 0, 22, 31, 0, 0, 0,
& 385,0.184D0, 0, 41, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2129,2147)/
& 385,0.184D0, 0, 29, 38, 0, 0, 0,
& 385,0.184D0, 0, 39, 23, 0, 0, 0,
& 385,0.236D0, 0, 38, 21, 0, 0, 0,
& 385,0.160D0, 0, 24, 38, 0, 0, 0,
& 385,0.018D0, 0, 46, 43, 0, 0, 0,
& 385,0.018D0, 0, 42, 47, 0, 0, 0,
& 385,0.016D0, 0, 46, 42, 0, 0, 0,
& 386,0.184D0, 0, 41, 30, 0, 0, 0,
& 386,0.184D0, 0, 33, 38, 0, 0, 0,
& 386,0.184D0, 0, 39, 31, 0, 0, 0,
& 386,0.236D0, 0, 38, 30, 0, 0, 0,
& 386,0.160D0, 0, 24, 21, 0, 0, 0,
& 386,0.009D0, 0, 46, 35, 0, 0, 0,
& 386,0.009D0, 0, 50, 43, 0, 0, 0,
& 386,0.009D0, 0, 34, 47, 0, 0, 0,
& 386,0.009D0, 0, 42, 51, 0, 0, 0,
& 386,0.008D0, 0, 46, 34, 0, 0, 0,
& 386,0.008D0, 0, 42, 50, 0, 0, 0,
& 387,0.184D0, 0, 33, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2148,2166)/
& 387,0.184D0, 0, 29, 30, 0, 0, 0,
& 387,0.184D0, 0, 31, 23, 0, 0, 0,
& 387,0.236D0, 0, 30, 21, 0, 0, 0,
& 387,0.160D0, 0, 24, 30, 0, 0, 0,
& 387,0.018D0, 0, 34, 51, 0, 0, 0,
& 387,0.018D0, 0, 50, 35, 0, 0, 0,
& 387,0.016D0, 0, 34, 50, 0, 0, 0,
& 388,0.183D0, 0,231, 38, 30, 0, 0,
& 388,0.091D0, 0,231, 21, 21, 0, 0,
& 388,0.067D0, 0, 59,307, 0, 0, 0,
& 388,0.066D0, 0, 59,308, 0, 0, 0,
& 388,0.043D0, 0, 59,309, 0, 0, 0,
& 388,0.446D0,130, 13, 13, 13, 0, 0,
& 388,0.023D0,130, 13, 13, 59, 0, 0,
& 388,0.013D0, 0,121,127, 0, 0, 0,
& 388,0.013D0, 0,123,129, 0, 0, 0,
& 388,0.013D0, 0,125,131, 0, 0, 0,
& 388,0.004D0, 0, 1, 7, 0, 0, 0,
& 388,0.017D0, 0, 2, 8, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2167,2185)/
& 388,0.004D0, 0, 3, 9, 0, 0, 0,
& 388,0.017D0, 0, 4, 10, 0, 0, 0,
& 389,0.046D0, 0, 59,388, 0, 0, 0,
& 389,0.009D0, 0, 59,231, 0, 0, 0,
& 389,0.755D0, 0, 13, 13, 0, 0, 0,
& 389,0.030D0, 0,121,127, 0, 0, 0,
& 389,0.030D0, 0,123,129, 0, 0, 0,
& 389,0.030D0, 0,125,131, 0, 0, 0,
& 389,0.010D0, 0, 1, 7, 0, 0, 0,
& 389,0.040D0, 0, 2, 8, 0, 0, 0,
& 389,0.010D0, 0, 3, 9, 0, 0, 0,
& 389,0.040D0, 0, 4, 10, 0, 0, 0,
& 390,0.210D0, 0, 59,388, 0, 0, 0,
& 390,0.085D0, 0, 59,231, 0, 0, 0,
& 390,0.565D0, 0, 13, 13, 0, 0, 0,
& 390,0.022D0, 0,121,127, 0, 0, 0,
& 390,0.022D0, 0,123,129, 0, 0, 0,
& 390,0.022D0, 0,125,131, 0, 0, 0,
& 390,0.007D0, 0, 1, 7, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2186,2204)/
& 390,0.030D0, 0, 2, 8, 0, 0, 0,
& 390,0.007D0, 0, 3, 9, 0, 0, 0,
& 390,0.030D0, 0, 4, 10, 0, 0, 0,
& 391,0.162D0, 0, 59,388, 0, 0, 0,
& 391,0.071D0, 0, 59,231, 0, 0, 0,
& 391,0.615D0, 0, 13, 13, 0, 0, 0,
& 391,0.024D0, 0,121,127, 0, 0, 0,
& 391,0.024D0, 0,123,129, 0, 0, 0,
& 391,0.024D0, 0,125,131, 0, 0, 0,
& 391,0.008D0, 0, 1, 7, 0, 0, 0,
& 391,0.032D0, 0, 2, 8, 0, 0, 0,
& 391,0.008D0, 0, 3, 9, 0, 0, 0,
& 391,0.032D0, 0, 4, 10, 0, 0, 0,
& 392,0.034D0, 0,267, 38, 30, 0, 0,
& 392,0.017D0, 0,267, 21, 21, 0, 0,
& 392,0.044D0, 0,231, 38, 30, 0, 0,
& 392,0.022D0, 0,231, 21, 21, 0, 0,
& 392,0.050D0, 0,267, 59, 59, 0, 0,
& 392,0.114D0, 0, 59,389, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2205,2223)/
& 392,0.113D0, 0, 59,390, 0, 0, 0,
& 392,0.054D0, 0, 59,391, 0, 0, 0,
& 392,0.403D0,130, 13, 13, 13, 0, 0,
& 392,0.021D0,130, 13, 13, 59, 0, 0,
& 392,0.020D0, 0,121,127, 0, 0, 0,
& 392,0.020D0, 0,123,129, 0, 0, 0,
& 392,0.020D0, 0,125,131, 0, 0, 0,
& 392,0.007D0, 0, 1, 7, 0, 0, 0,
& 392,0.027D0, 0, 2, 8, 0, 0, 0,
& 392,0.007D0, 0, 3, 9, 0, 0, 0,
& 392,0.027D0, 0, 4, 10, 0, 0, 0,
& 393,0.250D0, 0,246,222, 0, 0, 0,
& 393,0.250D0, 0,245,221, 0, 0, 0,
& 393,0.385D0,130, 13, 13, 13, 0, 0,
& 393,0.020D0,130, 13, 13, 59, 0, 0,
& 393,0.015D0, 0,121,127, 0, 0, 0,
& 393,0.015D0, 0,123,129, 0, 0, 0,
& 393,0.015D0, 0,125,131, 0, 0, 0,
& 393,0.005D0, 0, 1, 7, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2224,2242)/
& 393,0.020D0, 0, 2, 8, 0, 0, 0,
& 393,0.005D0, 0, 3, 9, 0, 0, 0,
& 393,0.020D0, 0, 4, 10, 0, 0, 0,
& 395,0.195D0, 0, 39, 30, 0, 0, 0,
& 395,0.195D0, 0, 23, 21, 0, 0, 0,
& 395,0.195D0, 0, 31, 38, 0, 0, 0,
& 395,0.105D0, 0,286, 30, 0, 0, 0,
& 395,0.105D0, 0,285, 21, 0, 0, 0,
& 395,0.105D0, 0,287, 38, 0, 0, 0,
& 395,0.065D0, 0, 24, 38, 30, 0, 0,
& 395,0.035D0, 0, 24, 21, 21, 0, 0,
& 396,0.320D0, 0, 46, 34, 0, 0, 0,
& 396,0.320D0, 0, 60, 61, 0, 0, 0,
& 396,0.090D0, 0, 46, 35, 0, 0, 0,
& 396,0.090D0, 0, 42, 51, 0, 0, 0,
& 396,0.090D0, 0, 50, 43, 0, 0, 0,
& 396,0.090D0, 0, 34, 47, 0, 0, 0,
& 397,0.312D0, 0, 41, 30, 0, 0, 0,
& 397,0.312D0, 0, 29, 21, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2243,2261)/
& 397,0.312D0, 0, 33, 38, 0, 0, 0,
& 397,0.016D0, 0, 46, 35, 0, 0, 0,
& 397,0.016D0, 0, 42, 51, 0, 0, 0,
& 397,0.016D0, 0, 50, 43, 0, 0, 0,
& 397,0.016D0, 0, 34, 47, 0, 0, 0,
& 398,0.805D0, 0, 26, 22, 0, 0, 0,
& 398,0.065D0, 0, 41, 30, 0, 0, 0,
& 398,0.065D0, 0, 29, 21, 0, 0, 0,
& 398,0.065D0, 0, 33, 38, 0, 0, 0,
& 399,0.667D0, 0, 24, 38, 30, 0, 0,
& 399,0.333D0, 0, 24, 21, 21, 0, 0,
& 62,0.440D0, 0, 21, 22, 0, 0, 0,
& 62,0.160D0, 0, 21, 25, 0, 0, 0,
& 62,0.200D0, 0, 50, 42, 0, 0, 0,
& 62,0.200D0, 0, 46, 34, 0, 0, 0,
& 63,0.440D0, 0, 38, 22, 0, 0, 0,
& 63,0.160D0, 0, 38, 25, 0, 0, 0,
& 63,0.400D0, 0, 46, 42, 0, 0, 0,
& 64,0.440D0, 0, 30, 22, 0, 0, 0/
DATA (IDK(I),BRFRAC(I),NME(I),(IDKPRD(J,I),J=1,5),I=2262,2263)/
& 64,0.160D0, 0, 30, 25, 0, 0, 0,
& 64,0.400D0, 0, 50, 34, 0, 0, 0/
C--data for MRST98 LO PDF's
DATA (FMRS(1,1,I, 1),I=1,49)/
& 0.01518D0, 0.01868D0, 0.02298D0, 0.02594D0, 0.02828D0,
& 0.03023D0, 0.03724D0, 0.04592D0, 0.05197D0, 0.05679D0,
& 0.06085D0, 0.07576D0, 0.09547D0, 0.11035D0, 0.12307D0,
& 0.13453D0, 0.15525D0, 0.18319D0, 0.22542D0, 0.26441D0,
& 0.33553D0, 0.39881D0, 0.45451D0, 0.51363D0, 0.56120D0,
& 0.59755D0, 0.62324D0, 0.63889D0, 0.64529D0, 0.64295D0,
& 0.63335D0, 0.61691D0, 0.59464D0, 0.56748D0, 0.53621D0,
& 0.50180D0, 0.46495D0, 0.42660D0, 0.38735D0, 0.34791D0,
& 0.30888D0, 0.27105D0, 0.23455D0, 0.16807D0, 0.11197D0,
& 0.06774D0, 0.03566D0, 0.00443D0, 0.00000D0/
DATA (FMRS(1,1,I, 2),I=1,49)/
& 0.01534D0, 0.01889D0, 0.02325D0, 0.02625D0, 0.02862D0,
& 0.03061D0, 0.03771D0, 0.04653D0, 0.05268D0, 0.05757D0,
& 0.06171D0, 0.07691D0, 0.09707D0, 0.11230D0, 0.12533D0,
& 0.13708D0, 0.15827D0, 0.18678D0, 0.22968D0, 0.26907D0,
& 0.34038D0, 0.40321D0, 0.45801D0, 0.51556D0, 0.56122D0,
& 0.59551D0, 0.61905D0, 0.63261D0, 0.63699D0, 0.63286D0,
& 0.62162D0, 0.60381D0, 0.58043D0, 0.55244D0, 0.52060D0,
& 0.48591D0, 0.44902D0, 0.41090D0, 0.37213D0, 0.33332D0,
& 0.29514D0, 0.25827D0, 0.22283D0, 0.15873D0, 0.10506D0,
& 0.06310D0, 0.03294D0, 0.00399D0, 0.00000D0/
DATA (FMRS(1,1,I, 3),I=1,49)/
& 0.01559D0, 0.01920D0, 0.02365D0, 0.02672D0, 0.02914D0,
& 0.03116D0, 0.03842D0, 0.04744D0, 0.05374D0, 0.05876D0,
& 0.06301D0, 0.07866D0, 0.09949D0, 0.11525D0, 0.12874D0,
& 0.14090D0, 0.16278D0, 0.19212D0, 0.23598D0, 0.27589D0,
& 0.34735D0, 0.40941D0, 0.46279D0, 0.51792D0, 0.56073D0,
& 0.59195D0, 0.61237D0, 0.62289D0, 0.62439D0, 0.61773D0,
& 0.60419D0, 0.58448D0, 0.55962D0, 0.53052D0, 0.49799D0,
& 0.46298D0, 0.42617D0, 0.38844D0, 0.35048D0, 0.31268D0,
& 0.27573D0, 0.24031D0, 0.20643D0, 0.14575D0, 0.09554D0,
& 0.05679D0, 0.02927D0, 0.00342D0, 0.00000D0/
DATA (FMRS(1,1,I, 4),I=1,49)/
& 0.01577D0, 0.01944D0, 0.02395D0, 0.02707D0, 0.02952D0,
& 0.03158D0, 0.03895D0, 0.04812D0, 0.05453D0, 0.05964D0,
& 0.06398D0, 0.07996D0, 0.10128D0, 0.11743D0, 0.13126D0,
& 0.14371D0, 0.16610D0, 0.19602D0, 0.24052D0, 0.28078D0,
& 0.35225D0, 0.41367D0, 0.46596D0, 0.51926D0, 0.56000D0,
& 0.58897D0, 0.60716D0, 0.61554D0, 0.61505D0, 0.60661D0,
& 0.59150D0, 0.57049D0, 0.54465D0, 0.51484D0, 0.48194D0,
& 0.44680D0, 0.41012D0, 0.37271D0, 0.33536D0, 0.29833D0,
& 0.26227D0, 0.22791D0, 0.19519D0, 0.13692D0, 0.08913D0,
& 0.05257D0, 0.02685D0, 0.00306D0, 0.00000D0/
DATA (FMRS(1,1,I, 5),I=1,49)/
& 0.01597D0, 0.01969D0, 0.02427D0, 0.02744D0, 0.02993D0,
& 0.03202D0, 0.03952D0, 0.04885D0, 0.05537D0, 0.06058D0,
& 0.06501D0, 0.08134D0, 0.10319D0, 0.11975D0, 0.13393D0,
& 0.14669D0, 0.16958D0, 0.20009D0, 0.24521D0, 0.28578D0,
& 0.35715D0, 0.41781D0, 0.46887D0, 0.52022D0, 0.55877D0,
& 0.58539D0, 0.60126D0, 0.60744D0, 0.60489D0, 0.59469D0,
& 0.57807D0, 0.55581D0, 0.52903D0, 0.49861D0, 0.46535D0,
& 0.43012D0, 0.39368D0, 0.35672D0, 0.32002D0, 0.28380D0,
& 0.24878D0, 0.21549D0, 0.18398D0, 0.12819D0, 0.08284D0,
& 0.04845D0, 0.02451D0, 0.00272D0, 0.00000D0/
DATA (FMRS(1,1,I, 6),I=1,49)/
& 0.01613D0, 0.01990D0, 0.02455D0, 0.02776D0, 0.03029D0,
& 0.03241D0, 0.04001D0, 0.04949D0, 0.05611D0, 0.06141D0,
& 0.06592D0, 0.08256D0, 0.10485D0, 0.12178D0, 0.13626D0,
& 0.14927D0, 0.17260D0, 0.20361D0, 0.24924D0, 0.29005D0,
& 0.36128D0, 0.42124D0, 0.47121D0, 0.52086D0, 0.55750D0,
& 0.58213D0, 0.59603D0, 0.60035D0, 0.59612D0, 0.58445D0,
& 0.56659D0, 0.54334D0, 0.51581D0, 0.48493D0, 0.45142D0,
& 0.41618D0, 0.37998D0, 0.34345D0, 0.30732D0, 0.27182D0,
& 0.23768D0, 0.20532D0, 0.17482D0, 0.12110D0, 0.07777D0,
& 0.04515D0, 0.02267D0, 0.00245D0, 0.00000D0/
DATA (FMRS(1,1,I, 7),I=1,49)/
& 0.01630D0, 0.02011D0, 0.02482D0, 0.02807D0, 0.03063D0,
& 0.03278D0, 0.04049D0, 0.05010D0, 0.05683D0, 0.06221D0,
& 0.06680D0, 0.08373D0, 0.10647D0, 0.12373D0, 0.13849D0,
& 0.15175D0, 0.17549D0, 0.20695D0, 0.25304D0, 0.29403D0,
& 0.36506D0, 0.42430D0, 0.47319D0, 0.52118D0, 0.55597D0,
& 0.57870D0, 0.59079D0, 0.59337D0, 0.58760D0, 0.57458D0,
& 0.55556D0, 0.53145D0, 0.50329D0, 0.47196D0, 0.43832D0,
& 0.40316D0, 0.36719D0, 0.33110D0, 0.29555D0, 0.26076D0,
& 0.22742D0, 0.19600D0, 0.16642D0, 0.11467D0, 0.07318D0,
& 0.04221D0, 0.02103D0, 0.00223D0, 0.00000D0/
DATA (FMRS(1,1,I, 8),I=1,49)/
& 0.01647D0, 0.02033D0, 0.02511D0, 0.02840D0, 0.03100D0,
& 0.03318D0, 0.04101D0, 0.05076D0, 0.05760D0, 0.06307D0,
& 0.06774D0, 0.08499D0, 0.10819D0, 0.12581D0, 0.14088D0,
& 0.15440D0, 0.17856D0, 0.21047D0, 0.25702D0, 0.29817D0,
& 0.36893D0, 0.42735D0, 0.47507D0, 0.52128D0, 0.55411D0,
& 0.57487D0, 0.58505D0, 0.58586D0, 0.57850D0, 0.56412D0,
& 0.54397D0, 0.51898D0, 0.49021D0, 0.45851D0, 0.42474D0,
& 0.38970D0, 0.35404D0, 0.31842D0, 0.28351D0, 0.24949D0,
& 0.21700D0, 0.18654D0, 0.15795D0, 0.10821D0, 0.06861D0,
& 0.03930D0, 0.01942D0, 0.00201D0, 0.00000D0/
DATA (FMRS(1,1,I, 9),I=1,49)/
& 0.01662D0, 0.02053D0, 0.02536D0, 0.02869D0, 0.03133D0,
& 0.03353D0, 0.04146D0, 0.05135D0, 0.05828D0, 0.06382D0,
& 0.06856D0, 0.08610D0, 0.10971D0, 0.12764D0, 0.14296D0,
& 0.15670D0, 0.18121D0, 0.21352D0, 0.26045D0, 0.30172D0,
& 0.37220D0, 0.42986D0, 0.47655D0, 0.52120D0, 0.55234D0,
& 0.57141D0, 0.57995D0, 0.57927D0, 0.57058D0, 0.55506D0,
& 0.53402D0, 0.50830D0, 0.47904D0, 0.44709D0, 0.41323D0,
& 0.37832D0, 0.34296D0, 0.30776D0, 0.27344D0, 0.24008D0,
& 0.20833D0, 0.17868D0, 0.15093D0, 0.10287D0, 0.06487D0,
& 0.03693D0, 0.01812D0, 0.00183D0, 0.00000D0/
DATA (FMRS(1,1,I,10),I=1,49)/
& 0.01676D0, 0.02072D0, 0.02560D0, 0.02898D0, 0.03164D0,
& 0.03388D0, 0.04190D0, 0.05191D0, 0.05894D0, 0.06456D0,
& 0.06937D0, 0.08718D0, 0.11117D0, 0.12940D0, 0.14497D0,
& 0.15892D0, 0.18377D0, 0.21643D0, 0.26368D0, 0.30503D0,
& 0.37520D0, 0.43209D0, 0.47774D0, 0.52089D0, 0.55041D0,
& 0.56787D0, 0.57486D0, 0.57280D0, 0.56285D0, 0.54631D0,
& 0.52442D0, 0.49810D0, 0.46842D0, 0.43624D0, 0.40236D0,
& 0.36762D0, 0.33255D0, 0.29778D0, 0.26402D0, 0.23132D0,
& 0.20029D0, 0.17139D0, 0.14445D0, 0.09798D0, 0.06147D0,
& 0.03479D0, 0.01695D0, 0.00168D0, 0.00000D0/
DATA (FMRS(1,1,I,11),I=1,49)/
& 0.01688D0, 0.02087D0, 0.02580D0, 0.02920D0, 0.03189D0,
& 0.03415D0, 0.04225D0, 0.05236D0, 0.05946D0, 0.06515D0,
& 0.07001D0, 0.08804D0, 0.11234D0, 0.13081D0, 0.14657D0,
& 0.16068D0, 0.18579D0, 0.21873D0, 0.26622D0, 0.30762D0,
& 0.37751D0, 0.43378D0, 0.47859D0, 0.52054D0, 0.54880D0,
& 0.56500D0, 0.57079D0, 0.56765D0, 0.55675D0, 0.53942D0,
& 0.51689D0, 0.49012D0, 0.46015D0, 0.42782D0, 0.39393D0,
& 0.35936D0, 0.32453D0, 0.29009D0, 0.25678D0, 0.22461D0,
& 0.19416D0, 0.16583D0, 0.13951D0, 0.09427D0, 0.05892D0,
& 0.03318D0, 0.01609D0, 0.00157D0, 0.00000D0/
DATA (FMRS(1,1,I,12),I=1,49)/
& 0.01713D0, 0.02119D0, 0.02622D0, 0.02969D0, 0.03243D0,
& 0.03474D0, 0.04300D0, 0.05334D0, 0.06060D0, 0.06641D0,
& 0.07140D0, 0.08989D0, 0.11485D0, 0.13381D0, 0.14997D0,
& 0.16442D0, 0.19008D0, 0.22357D0, 0.27152D0, 0.31299D0,
& 0.38219D0, 0.43708D0, 0.48008D0, 0.51946D0, 0.54505D0,
& 0.55859D0, 0.56192D0, 0.55654D0, 0.54370D0, 0.52483D0,
& 0.50100D0, 0.47335D0, 0.44283D0, 0.41025D0, 0.37649D0,
& 0.34225D0, 0.30799D0, 0.27433D0, 0.24202D0, 0.21092D0,
& 0.18167D0, 0.15459D0, 0.12954D0, 0.08683D0, 0.05380D0,
& 0.03001D0, 0.01438D0, 0.00136D0, 0.00000D0/
DATA (FMRS(1,1,I,13),I=1,49)/
& 0.01734D0, 0.02147D0, 0.02658D0, 0.03011D0, 0.03290D0,
& 0.03525D0, 0.04366D0, 0.05419D0, 0.06158D0, 0.06752D0,
& 0.07261D0, 0.09150D0, 0.11703D0, 0.13641D0, 0.15292D0,
& 0.16765D0, 0.19375D0, 0.22769D0, 0.27599D0, 0.31747D0,
& 0.38599D0, 0.43964D0, 0.48105D0, 0.51822D0, 0.54152D0,
& 0.55284D0, 0.55412D0, 0.54689D0, 0.53251D0, 0.51240D0,
& 0.48756D0, 0.45925D0, 0.42833D0, 0.39563D0, 0.36202D0,
& 0.32809D0, 0.29438D0, 0.26143D0, 0.22998D0, 0.19977D0,
& 0.17155D0, 0.14553D0, 0.12155D0, 0.08091D0, 0.04976D0,
& 0.02753D0, 0.01306D0, 0.00120D0, 0.00000D0/
DATA (FMRS(1,1,I,14),I=1,49)/
& 0.01759D0, 0.02179D0, 0.02699D0, 0.03059D0, 0.03343D0,
& 0.03582D0, 0.04441D0, 0.05515D0, 0.06270D0, 0.06876D0,
& 0.07397D0, 0.09331D0, 0.11948D0, 0.13933D0, 0.15621D0,
& 0.17125D0, 0.19782D0, 0.23224D0, 0.28086D0, 0.32228D0,
& 0.38998D0, 0.44216D0, 0.48181D0, 0.51649D0, 0.53727D0,
& 0.54619D0, 0.54525D0, 0.53606D0, 0.52007D0, 0.49864D0,
& 0.47286D0, 0.44390D0, 0.41261D0, 0.37987D0, 0.34645D0,
& 0.31295D0, 0.27985D0, 0.24773D0, 0.21718D0, 0.18802D0,
& 0.16091D0, 0.13605D0, 0.11323D0, 0.07479D0, 0.04562D0,
& 0.02500D0, 0.01174D0, 0.00105D0, 0.00000D0/
DATA (FMRS(1,1,I,15),I=1,49)/
& 0.01784D0, 0.02212D0, 0.02742D0, 0.03109D0, 0.03399D0,
& 0.03643D0, 0.04519D0, 0.05616D0, 0.06388D0, 0.07007D0,
& 0.07541D0, 0.09522D0, 0.12203D0, 0.14235D0, 0.15961D0,
& 0.17496D0, 0.20199D0, 0.23684D0, 0.28574D0, 0.32703D0,
& 0.39374D0, 0.44435D0, 0.48208D0, 0.51422D0, 0.53243D0,
& 0.53888D0, 0.53581D0, 0.52470D0, 0.50714D0, 0.48444D0,
& 0.45778D0, 0.42824D0, 0.39670D0, 0.36400D0, 0.33079D0,
& 0.29784D0, 0.26546D0, 0.23422D0, 0.20462D0, 0.17657D0,
& 0.15056D0, 0.12684D0, 0.10517D0, 0.06893D0, 0.04169D0,
& 0.02264D0, 0.01051D0, 0.00091D0, 0.00000D0/
DATA (FMRS(1,1,I,16),I=1,49)/
& 0.01807D0, 0.02243D0, 0.02782D0, 0.03155D0, 0.03450D0,
& 0.03698D0, 0.04591D0, 0.05708D0, 0.06495D0, 0.07127D0,
& 0.07672D0, 0.09696D0, 0.12435D0, 0.14510D0, 0.16268D0,
& 0.17830D0, 0.20573D0, 0.24094D0, 0.29002D0, 0.33115D0,
& 0.39689D0, 0.44603D0, 0.48202D0, 0.51185D0, 0.52778D0,
& 0.53213D0, 0.52713D0, 0.51440D0, 0.49550D0, 0.47182D0,
& 0.44444D0, 0.41444D0, 0.38277D0, 0.35014D0, 0.31726D0,
& 0.28479D0, 0.25306D0, 0.22258D0, 0.19389D0, 0.16682D0,
& 0.14175D0, 0.11905D0, 0.09839D0, 0.06403D0, 0.03844D0,
& 0.02069D0, 0.00951D0, 0.00080D0, 0.00000D0/
DATA (FMRS(1,1,I,17),I=1,49)/
& 0.01831D0, 0.02273D0, 0.02822D0, 0.03202D0, 0.03502D0,
& 0.03755D0, 0.04663D0, 0.05802D0, 0.06604D0, 0.07249D0,
& 0.07805D0, 0.09872D0, 0.12670D0, 0.14787D0, 0.16578D0,
& 0.18165D0, 0.20947D0, 0.24500D0, 0.29423D0, 0.33515D0,
& 0.39986D0, 0.44747D0, 0.48171D0, 0.50924D0, 0.52291D0,
& 0.52522D0, 0.51836D0, 0.50409D0, 0.48395D0, 0.45934D0,
& 0.43132D0, 0.40095D0, 0.36919D0, 0.33668D0, 0.30419D0,
& 0.27223D0, 0.24118D0, 0.21147D0, 0.18368D0, 0.15756D0,
& 0.13343D0, 0.11172D0, 0.09203D0, 0.05947D0, 0.03543D0,
& 0.01891D0, 0.00861D0, 0.00070D0, 0.00000D0/
DATA (FMRS(1,1,I,18),I=1,49)/
& 0.01851D0, 0.02299D0, 0.02855D0, 0.03241D0, 0.03546D0,
& 0.03802D0, 0.04724D0, 0.05881D0, 0.06696D0, 0.07351D0,
& 0.07917D0, 0.10019D0, 0.12865D0, 0.15015D0, 0.16833D0,
& 0.18440D0, 0.21252D0, 0.24831D0, 0.29761D0, 0.33832D0,
& 0.40212D0, 0.44845D0, 0.48121D0, 0.50687D0, 0.51871D0,
& 0.51934D0, 0.51104D0, 0.49556D0, 0.47446D0, 0.44911D0,
& 0.42066D0, 0.39005D0, 0.35822D0, 0.32587D0, 0.29370D0,
& 0.26224D0, 0.23174D0, 0.20270D0, 0.17561D0, 0.15023D0,
& 0.12693D0, 0.10599D0, 0.08707D0, 0.05595D0, 0.03312D0,
& 0.01756D0, 0.00793D0, 0.00063D0, 0.00000D0/
DATA (FMRS(1,1,I,19),I=1,49)/
& 0.01875D0, 0.02330D0, 0.02896D0, 0.03288D0, 0.03599D0,
& 0.03859D0, 0.04798D0, 0.05977D0, 0.06807D0, 0.07475D0,
& 0.08052D0, 0.10198D0, 0.13101D0, 0.15292D0, 0.17139D0,
& 0.18771D0, 0.21617D0, 0.25222D0, 0.30155D0, 0.34198D0,
& 0.40461D0, 0.44935D0, 0.48033D0, 0.50374D0, 0.51343D0,
& 0.51210D0, 0.50212D0, 0.48526D0, 0.46307D0, 0.43693D0,
& 0.40797D0, 0.37715D0, 0.34533D0, 0.31321D0, 0.28148D0,
& 0.25058D0, 0.22080D0, 0.19255D0, 0.16635D0, 0.14187D0,
& 0.11948D0, 0.09946D0, 0.08142D0, 0.05198D0, 0.03054D0,
& 0.01606D0, 0.00718D0, 0.00056D0, 0.00000D0/
DATA (FMRS(1,1,I,20),I=1,49)/
& 0.01896D0, 0.02358D0, 0.02932D0, 0.03331D0, 0.03646D0,
& 0.03911D0, 0.04864D0, 0.06062D0, 0.06906D0, 0.07585D0,
& 0.08173D0, 0.10357D0, 0.13310D0, 0.15536D0, 0.17410D0,
& 0.19062D0, 0.21937D0, 0.25563D0, 0.30495D0, 0.34510D0,
& 0.40666D0, 0.44998D0, 0.47941D0, 0.50085D0, 0.50868D0,
& 0.50571D0, 0.49430D0, 0.47628D0, 0.45320D0, 0.42642D0,
& 0.39707D0, 0.36611D0, 0.33435D0, 0.30245D0, 0.27113D0,
& 0.24074D0, 0.21159D0, 0.18404D0, 0.15862D0, 0.13491D0,
& 0.11330D0, 0.09405D0, 0.07676D0, 0.04872D0, 0.02844D0,
& 0.01484D0, 0.00658D0, 0.00050D0, 0.00000D0/
DATA (FMRS(1,1,I,21),I=1,49)/
& 0.01916D0, 0.02384D0, 0.02966D0, 0.03370D0, 0.03689D0,
& 0.03958D0, 0.04926D0, 0.06141D0, 0.06998D0, 0.07687D0,
& 0.08284D0, 0.10503D0, 0.13502D0, 0.15758D0, 0.17655D0,
& 0.19325D0, 0.22223D0, 0.25866D0, 0.30794D0, 0.34779D0,
& 0.40831D0, 0.45032D0, 0.47832D0, 0.49795D0, 0.50413D0,
& 0.49968D0, 0.48705D0, 0.46802D0, 0.44417D0, 0.41690D0,
& 0.38723D0, 0.35619D0, 0.32452D0, 0.29287D0, 0.26194D0,
& 0.23205D0, 0.20344D0, 0.17655D0, 0.15180D0, 0.12880D0,
& 0.10792D0, 0.08934D0, 0.07273D0, 0.04591D0, 0.02665D0,
& 0.01381D0, 0.00607D0, 0.00045D0, 0.00000D0/
DATA (FMRS(1,1,I,22),I=1,49)/
& 0.01941D0, 0.02417D0, 0.03009D0, 0.03420D0, 0.03745D0,
& 0.04018D0, 0.05003D0, 0.06241D0, 0.07114D0, 0.07817D0,
& 0.08426D0, 0.10688D0, 0.13744D0, 0.16039D0, 0.17965D0,
& 0.19656D0, 0.22582D0, 0.26244D0, 0.31163D0, 0.35107D0,
& 0.41025D0, 0.45056D0, 0.47676D0, 0.49416D0, 0.49829D0,
& 0.49204D0, 0.47792D0, 0.45768D0, 0.43295D0, 0.40511D0,
& 0.37512D0, 0.34401D0, 0.31250D0, 0.28120D0, 0.25076D0,
& 0.22150D0, 0.19361D0, 0.16754D0, 0.14361D0, 0.12149D0,
& 0.10149D0, 0.08376D0, 0.06796D0, 0.04260D0, 0.02455D0,
& 0.01262D0, 0.00549D0, 0.00039D0, 0.00000D0/
DATA (FMRS(1,1,I,23),I=1,49)/
& 0.01965D0, 0.02448D0, 0.03049D0, 0.03467D0, 0.03797D0,
& 0.04075D0, 0.05077D0, 0.06336D0, 0.07225D0, 0.07940D0,
& 0.08560D0, 0.10863D0, 0.13972D0, 0.16302D0, 0.18254D0,
& 0.19964D0, 0.22916D0, 0.26592D0, 0.31498D0, 0.35400D0,
& 0.41189D0, 0.45060D0, 0.47511D0, 0.49045D0, 0.49274D0,
& 0.48487D0, 0.46938D0, 0.44808D0, 0.42260D0, 0.39428D0,
& 0.36409D0, 0.33294D0, 0.30164D0, 0.27069D0, 0.24070D0,
& 0.21203D0, 0.18488D0, 0.15951D0, 0.13633D0, 0.11502D0,
& 0.09581D0, 0.07887D0, 0.06380D0, 0.03974D0, 0.02273D0,
& 0.01159D0, 0.00500D0, 0.00035D0, 0.00000D0/
DATA (FMRS(1,1,I,24),I=1,49)/
& 0.01987D0, 0.02478D0, 0.03088D0, 0.03511D0, 0.03847D0,
& 0.04129D0, 0.05147D0, 0.06426D0, 0.07329D0, 0.08055D0,
& 0.08686D0, 0.11027D0, 0.14184D0, 0.16546D0, 0.18521D0,
& 0.20248D0, 0.23220D0, 0.26906D0, 0.31795D0, 0.35654D0,
& 0.41317D0, 0.45035D0, 0.47330D0, 0.48677D0, 0.48734D0,
& 0.47799D0, 0.46135D0, 0.43917D0, 0.41301D0, 0.38430D0,
& 0.35392D0, 0.32282D0, 0.29171D0, 0.26113D0, 0.23164D0,
& 0.20355D0, 0.17701D0, 0.15231D0, 0.12990D0, 0.10928D0,
& 0.09079D0, 0.07455D0, 0.06012D0, 0.03723D0, 0.02116D0,
& 0.01072D0, 0.00459D0, 0.00031D0, 0.00000D0/
DATA (FMRS(1,1,I,25),I=1,49)/
& 0.02010D0, 0.02507D0, 0.03126D0, 0.03556D0, 0.03897D0,
& 0.04183D0, 0.05216D0, 0.06515D0, 0.07433D0, 0.08171D0,
& 0.08812D0, 0.11191D0, 0.14397D0, 0.16790D0, 0.18786D0,
& 0.20530D0, 0.23522D0, 0.27216D0, 0.32085D0, 0.35900D0,
& 0.41434D0, 0.45001D0, 0.47142D0, 0.48304D0, 0.48197D0,
& 0.47120D0, 0.45346D0, 0.43043D0, 0.40367D0, 0.37460D0,
& 0.34407D0, 0.31306D0, 0.28215D0, 0.25197D0, 0.22296D0,
& 0.19546D0, 0.16953D0, 0.14549D0, 0.12381D0, 0.10387D0,
& 0.08608D0, 0.07049D0, 0.05669D0, 0.03490D0, 0.01971D0,
& 0.00991D0, 0.00421D0, 0.00028D0, 0.00000D0/
DATA (FMRS(1,1,I,26),I=1,49)/
& 0.02032D0, 0.02536D0, 0.03164D0, 0.03600D0, 0.03946D0,
& 0.04236D0, 0.05285D0, 0.06604D0, 0.07535D0, 0.08285D0,
& 0.08936D0, 0.11352D0, 0.14603D0, 0.17026D0, 0.19043D0,
& 0.20801D0, 0.23810D0, 0.27509D0, 0.32355D0, 0.36123D0,
& 0.41527D0, 0.44945D0, 0.46936D0, 0.47919D0, 0.47657D0,
& 0.46453D0, 0.44572D0, 0.42188D0, 0.39463D0, 0.36526D0,
& 0.33462D0, 0.30373D0, 0.27307D0, 0.24328D0, 0.21472D0,
& 0.18782D0, 0.16253D0, 0.13914D0, 0.11811D0, 0.09886D0,
& 0.08171D0, 0.06673D0, 0.05353D0, 0.03277D0, 0.01840D0,
& 0.00919D0, 0.00387D0, 0.00025D0, 0.00000D0/
DATA (FMRS(1,1,I,27),I=1,49)/
& 0.02054D0, 0.02564D0, 0.03200D0, 0.03642D0, 0.03992D0,
& 0.04287D0, 0.05350D0, 0.06688D0, 0.07633D0, 0.08394D0,
& 0.09053D0, 0.11504D0, 0.14798D0, 0.17249D0, 0.19284D0,
& 0.21055D0, 0.24079D0, 0.27781D0, 0.32602D0, 0.36325D0,
& 0.41604D0, 0.44883D0, 0.46732D0, 0.47551D0, 0.47145D0,
& 0.45823D0, 0.43846D0, 0.41392D0, 0.38625D0, 0.35664D0,
& 0.32595D0, 0.29518D0, 0.26477D0, 0.23536D0, 0.20725D0,
& 0.18088D0, 0.15618D0, 0.13340D0, 0.11297D0, 0.09435D0,
& 0.07779D0, 0.06337D0, 0.05071D0, 0.03088D0, 0.01724D0,
& 0.00855D0, 0.00357D0, 0.00023D0, 0.00000D0/
DATA (FMRS(1,1,I,28),I=1,49)/
& 0.02074D0, 0.02591D0, 0.03234D0, 0.03682D0, 0.04037D0,
& 0.04335D0, 0.05412D0, 0.06768D0, 0.07725D0, 0.08496D0,
& 0.09165D0, 0.11648D0, 0.14982D0, 0.17457D0, 0.19509D0,
& 0.21292D0, 0.24327D0, 0.28031D0, 0.32827D0, 0.36504D0,
& 0.41665D0, 0.44811D0, 0.46527D0, 0.47196D0, 0.46656D0,
& 0.45228D0, 0.43165D0, 0.40650D0, 0.37846D0, 0.34867D0,
& 0.31800D0, 0.28733D0, 0.25718D0, 0.22812D0, 0.20048D0,
& 0.17458D0, 0.15043D0, 0.12823D0, 0.10834D0, 0.09029D0,
& 0.07427D0, 0.06037D0, 0.04820D0, 0.02920D0, 0.01621D0,
& 0.00800D0, 0.00332D0, 0.00021D0, 0.00000D0/
DATA (FMRS(1,1,I,29),I=1,49)/
& 0.02094D0, 0.02617D0, 0.03269D0, 0.03722D0, 0.04081D0,
& 0.04383D0, 0.05475D0, 0.06848D0, 0.07818D0, 0.08599D0,
& 0.09277D0, 0.11792D0, 0.15165D0, 0.17664D0, 0.19733D0,
& 0.21527D0, 0.24574D0, 0.28277D0, 0.33045D0, 0.36674D0,
& 0.41715D0, 0.44728D0, 0.46313D0, 0.46834D0, 0.46164D0,
& 0.44631D0, 0.42488D0, 0.39917D0, 0.37077D0, 0.34082D0,
& 0.31017D0, 0.27964D0, 0.24978D0, 0.22107D0, 0.19390D0,
& 0.16849D0, 0.14488D0, 0.12325D0, 0.10390D0, 0.08640D0,
& 0.07092D0, 0.05751D0, 0.04581D0, 0.02761D0, 0.01524D0,
& 0.00748D0, 0.00308D0, 0.00019D0, 0.00000D0/
DATA (FMRS(1,1,I,30),I=1,49)/
& 0.02115D0, 0.02644D0, 0.03303D0, 0.03762D0, 0.04125D0,
& 0.04431D0, 0.05536D0, 0.06927D0, 0.07910D0, 0.08701D0,
& 0.09387D0, 0.11934D0, 0.15345D0, 0.17867D0, 0.19951D0,
& 0.21755D0, 0.24811D0, 0.28512D0, 0.33251D0, 0.36831D0,
& 0.41752D0, 0.44634D0, 0.46092D0, 0.46470D0, 0.45678D0,
& 0.44042D0, 0.41827D0, 0.39206D0, 0.36329D0, 0.33323D0,
& 0.30260D0, 0.27226D0, 0.24270D0, 0.21435D0, 0.18761D0,
& 0.16271D0, 0.13963D0, 0.11853D0, 0.09974D0, 0.08276D0,
& 0.06777D0, 0.05484D0, 0.04358D0, 0.02615D0, 0.01436D0,
& 0.00700D0, 0.00286D0, 0.00017D0, 0.00000D0/
DATA (FMRS(1,1,I,31),I=1,49)/
& 0.02134D0, 0.02669D0, 0.03336D0, 0.03800D0, 0.04168D0,
& 0.04477D0, 0.05595D0, 0.07003D0, 0.07997D0, 0.08798D0,
& 0.09492D0, 0.12069D0, 0.15515D0, 0.18059D0, 0.20157D0,
& 0.21970D0, 0.25034D0, 0.28732D0, 0.33440D0, 0.36974D0,
& 0.41780D0, 0.44538D0, 0.45878D0, 0.46121D0, 0.45216D0,
& 0.43488D0, 0.41206D0, 0.38539D0, 0.35634D0, 0.32619D0,
& 0.29560D0, 0.26544D0, 0.23618D0, 0.20818D0, 0.18185D0,
& 0.15743D0, 0.13483D0, 0.11423D0, 0.09594D0, 0.07945D0,
& 0.06492D0, 0.05243D0, 0.04157D0, 0.02483D0, 0.01357D0,
& 0.00658D0, 0.00267D0, 0.00016D0, 0.00000D0/
DATA (FMRS(1,1,I,32),I=1,49)/
& 0.02153D0, 0.02693D0, 0.03367D0, 0.03836D0, 0.04208D0,
& 0.04521D0, 0.05651D0, 0.07075D0, 0.08080D0, 0.08890D0,
& 0.09592D0, 0.12197D0, 0.15676D0, 0.18239D0, 0.20349D0,
& 0.22170D0, 0.25240D0, 0.28933D0, 0.33609D0, 0.37098D0,
& 0.41793D0, 0.44434D0, 0.45663D0, 0.45780D0, 0.44772D0,
& 0.42965D0, 0.40618D0, 0.37910D0, 0.34986D0, 0.31963D0,
& 0.28912D0, 0.25913D0, 0.23015D0, 0.20249D0, 0.17658D0,
& 0.15257D0, 0.13044D0, 0.11030D0, 0.09247D0, 0.07643D0,
& 0.06234D0, 0.05026D0, 0.03976D0, 0.02365D0, 0.01287D0,
& 0.00620D0, 0.00250D0, 0.00014D0, 0.00000D0/
DATA (FMRS(1,1,I,33),I=1,49)/
& 0.02171D0, 0.02717D0, 0.03398D0, 0.03872D0, 0.04248D0,
& 0.04565D0, 0.05708D0, 0.07147D0, 0.08164D0, 0.08983D0,
& 0.09693D0, 0.12326D0, 0.15838D0, 0.18421D0, 0.20543D0,
& 0.22371D0, 0.25448D0, 0.29136D0, 0.33779D0, 0.37222D0,
& 0.41806D0, 0.44331D0, 0.45449D0, 0.45441D0, 0.44330D0,
& 0.42446D0, 0.40038D0, 0.37291D0, 0.34349D0, 0.31319D0,
& 0.28277D0, 0.25295D0, 0.22427D0, 0.19695D0, 0.17145D0,
& 0.14785D0, 0.12618D0, 0.10650D0, 0.08912D0, 0.07353D0,
& 0.05986D0, 0.04817D0, 0.03803D0, 0.02252D0, 0.01220D0,
& 0.00585D0, 0.00235D0, 0.00013D0, 0.00000D0/
DATA (FMRS(1,1,I,34),I=1,49)/
& 0.02190D0, 0.02741D0, 0.03429D0, 0.03909D0, 0.04289D0,
& 0.04609D0, 0.05764D0, 0.07219D0, 0.08247D0, 0.09075D0,
& 0.09793D0, 0.12453D0, 0.15996D0, 0.18597D0, 0.20731D0,
& 0.22565D0, 0.25646D0, 0.29325D0, 0.33935D0, 0.37330D0,
& 0.41800D0, 0.44209D0, 0.45219D0, 0.45092D0, 0.43883D0,
& 0.41923D0, 0.39461D0, 0.36679D0, 0.33718D0, 0.30687D0,
& 0.27654D0, 0.24693D0, 0.21853D0, 0.19159D0, 0.16650D0,
& 0.14332D0, 0.12207D0, 0.10288D0, 0.08593D0, 0.07076D0,
& 0.05749D0, 0.04618D0, 0.03639D0, 0.02146D0, 0.01157D0,
& 0.00552D0, 0.00220D0, 0.00012D0, 0.00000D0/
DATA (FMRS(1,1,I,35),I=1,49)/
& 0.02208D0, 0.02764D0, 0.03459D0, 0.03943D0, 0.04327D0,
& 0.04650D0, 0.05818D0, 0.07288D0, 0.08327D0, 0.09162D0,
& 0.09888D0, 0.12574D0, 0.16147D0, 0.18765D0, 0.20909D0,
& 0.22750D0, 0.25834D0, 0.29505D0, 0.34083D0, 0.37432D0,
& 0.41794D0, 0.44094D0, 0.45002D0, 0.44763D0, 0.43463D0,
& 0.41432D0, 0.38921D0, 0.36108D0, 0.33130D0, 0.30099D0,
& 0.27077D0, 0.24136D0, 0.21322D0, 0.18665D0, 0.16193D0,
& 0.13915D0, 0.11830D0, 0.09955D0, 0.08301D0, 0.06823D0,
& 0.05533D0, 0.04437D0, 0.03490D0, 0.02050D0, 0.01100D0,
& 0.00523D0, 0.00207D0, 0.00011D0, 0.00000D0/
DATA (FMRS(1,1,I,36),I=1,49)/
& 0.02225D0, 0.02787D0, 0.03488D0, 0.03977D0, 0.04364D0,
& 0.04690D0, 0.05869D0, 0.07354D0, 0.08402D0, 0.09246D0,
& 0.09978D0, 0.12689D0, 0.16290D0, 0.18924D0, 0.21077D0,
& 0.22923D0, 0.26010D0, 0.29672D0, 0.34217D0, 0.37521D0,
& 0.41781D0, 0.43978D0, 0.44789D0, 0.44447D0, 0.43062D0,
& 0.40968D0, 0.38412D0, 0.35571D0, 0.32579D0, 0.29550D0,
& 0.26538D0, 0.23618D0, 0.20831D0, 0.18206D0, 0.15771D0,
& 0.13531D0, 0.11485D0, 0.09649D0, 0.08034D0, 0.06592D0,
& 0.05337D0, 0.04272D0, 0.03354D0, 0.01963D0, 0.01049D0,
& 0.00496D0, 0.00196D0, 0.00011D0, 0.00000D0/
DATA (FMRS(1,1,I,37),I=1,49)/
& 0.02242D0, 0.02809D0, 0.03517D0, 0.04010D0, 0.04401D0,
& 0.04731D0, 0.05921D0, 0.07420D0, 0.08479D0, 0.09331D0,
& 0.10070D0, 0.12805D0, 0.16433D0, 0.19082D0, 0.21245D0,
& 0.23095D0, 0.26184D0, 0.29836D0, 0.34345D0, 0.37604D0,
& 0.41760D0, 0.43853D0, 0.44568D0, 0.44123D0, 0.42654D0,
& 0.40499D0, 0.37899D0, 0.35034D0, 0.32029D0, 0.29001D0,
& 0.26003D0, 0.23104D0, 0.20345D0, 0.17752D0, 0.15354D0,
& 0.13153D0, 0.11147D0, 0.09348D0, 0.07771D0, 0.06366D0,
& 0.05147D0, 0.04112D0, 0.03222D0, 0.01879D0, 0.01000D0,
& 0.00471D0, 0.00185D0, 0.00010D0, 0.00000D0/
DATA (FMRS(1,1,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,2,I, 1),I=1,49)/
& 0.00513D0, 0.00648D0, 0.00818D0, 0.00938D0, 0.01034D0,
& 0.01116D0, 0.01418D0, 0.01818D0, 0.02118D0, 0.02372D0,
& 0.02613D0, 0.03576D0, 0.05040D0, 0.06228D0, 0.07266D0,
& 0.08202D0, 0.09864D0, 0.12002D0, 0.14955D0, 0.17387D0,
& 0.21184D0, 0.23954D0, 0.25956D0, 0.27606D0, 0.28502D0,
& 0.28790D0, 0.28586D0, 0.27985D0, 0.27060D0, 0.25918D0,
& 0.24535D0, 0.23028D0, 0.21416D0, 0.19735D0, 0.18044D0,
& 0.16347D0, 0.14671D0, 0.13049D0, 0.11512D0, 0.10018D0,
& 0.08630D0, 0.07360D0, 0.06172D0, 0.04171D0, 0.02610D0,
& 0.01478D0, 0.00721D0, 0.00074D0, 0.00000D0/
DATA (FMRS(1,2,I, 2),I=1,49)/
& 0.00518D0, 0.00654D0, 0.00828D0, 0.00950D0, 0.01049D0,
& 0.01133D0, 0.01443D0, 0.01854D0, 0.02162D0, 0.02423D0,
& 0.02670D0, 0.03657D0, 0.05155D0, 0.06366D0, 0.07421D0,
& 0.08371D0, 0.10052D0, 0.12206D0, 0.15163D0, 0.17583D0,
& 0.21329D0, 0.24028D0, 0.25950D0, 0.27498D0, 0.28295D0,
& 0.28491D0, 0.28206D0, 0.27535D0, 0.26555D0, 0.25365D0,
& 0.23952D0, 0.22423D0, 0.20802D0, 0.19123D0, 0.17441D0,
& 0.15763D0, 0.14114D0, 0.12520D0, 0.11019D0, 0.09565D0,
& 0.08218D0, 0.06990D0, 0.05847D0, 0.03927D0, 0.02442D0,
& 0.01373D0, 0.00665D0, 0.00066D0, 0.00000D0/
DATA (FMRS(1,2,I, 3),I=1,49)/
& 0.00524D0, 0.00664D0, 0.00843D0, 0.00970D0, 0.01072D0,
& 0.01159D0, 0.01481D0, 0.01908D0, 0.02229D0, 0.02501D0,
& 0.02757D0, 0.03781D0, 0.05328D0, 0.06572D0, 0.07653D0,
& 0.08622D0, 0.10330D0, 0.12505D0, 0.15465D0, 0.17864D0,
& 0.21528D0, 0.24119D0, 0.25922D0, 0.27320D0, 0.27971D0,
& 0.28035D0, 0.27635D0, 0.26864D0, 0.25807D0, 0.24551D0,
& 0.23101D0, 0.21544D0, 0.19911D0, 0.18240D0, 0.16578D0,
& 0.14929D0, 0.13320D0, 0.11772D0, 0.10322D0, 0.08926D0,
& 0.07639D0, 0.06473D0, 0.05394D0, 0.03591D0, 0.02212D0,
& 0.01231D0, 0.00589D0, 0.00057D0, 0.00000D0/
DATA (FMRS(1,2,I, 4),I=1,49)/
& 0.00529D0, 0.00672D0, 0.00855D0, 0.00985D0, 0.01090D0,
& 0.01179D0, 0.01510D0, 0.01949D0, 0.02279D0, 0.02558D0,
& 0.02822D0, 0.03873D0, 0.05456D0, 0.06724D0, 0.07823D0,
& 0.08806D0, 0.10532D0, 0.12720D0, 0.15680D0, 0.18061D0,
& 0.21663D0, 0.24172D0, 0.25888D0, 0.27177D0, 0.27723D0,
& 0.27696D0, 0.27213D0, 0.26373D0, 0.25262D0, 0.23966D0,
& 0.22489D0, 0.20919D0, 0.19281D0, 0.17616D0, 0.15968D0,
& 0.14345D0, 0.12763D0, 0.11250D0, 0.09838D0, 0.08485D0,
& 0.07242D0, 0.06118D0, 0.05083D0, 0.03363D0, 0.02058D0,
& 0.01136D0, 0.00539D0, 0.00050D0, 0.00000D0/
DATA (FMRS(1,2,I, 5),I=1,49)/
& 0.00534D0, 0.00680D0, 0.00868D0, 0.01001D0, 0.01108D0,
& 0.01200D0, 0.01540D0, 0.01993D0, 0.02332D0, 0.02620D0,
& 0.02891D0, 0.03971D0, 0.05590D0, 0.06884D0, 0.08000D0,
& 0.08997D0, 0.10741D0, 0.12941D0, 0.15897D0, 0.18257D0,
& 0.21790D0, 0.24212D0, 0.25836D0, 0.27010D0, 0.27446D0,
& 0.27326D0, 0.26762D0, 0.25853D0, 0.24692D0, 0.23356D0,
& 0.21851D0, 0.20270D0, 0.18633D0, 0.16975D0, 0.15345D0,
& 0.13751D0, 0.12199D0, 0.10721D0, 0.09351D0, 0.08043D0,
& 0.06843D0, 0.05765D0, 0.04775D0, 0.03138D0, 0.01907D0,
& 0.01045D0, 0.00491D0, 0.00045D0, 0.00000D0/
DATA (FMRS(1,2,I, 6),I=1,49)/
& 0.00539D0, 0.00688D0, 0.00879D0, 0.01015D0, 0.01125D0,
& 0.01219D0, 0.01567D0, 0.02031D0, 0.02379D0, 0.02674D0,
& 0.02951D0, 0.04056D0, 0.05708D0, 0.07022D0, 0.08154D0,
& 0.09162D0, 0.10921D0, 0.13130D0, 0.16082D0, 0.18422D0,
& 0.21894D0, 0.24239D0, 0.25783D0, 0.26859D0, 0.27204D0,
& 0.27005D0, 0.26373D0, 0.25409D0, 0.24206D0, 0.22838D0,
& 0.21313D0, 0.19724D0, 0.18088D0, 0.16440D0, 0.14826D0,
& 0.13257D0, 0.11731D0, 0.10284D0, 0.08950D0, 0.07679D0,
& 0.06517D0, 0.05477D0, 0.04524D0, 0.02956D0, 0.01786D0,
& 0.00972D0, 0.00453D0, 0.00040D0, 0.00000D0/
DATA (FMRS(1,2,I, 7),I=1,49)/
& 0.00544D0, 0.00695D0, 0.00890D0, 0.01029D0, 0.01141D0,
& 0.01237D0, 0.01593D0, 0.02068D0, 0.02425D0, 0.02727D0,
& 0.03010D0, 0.04138D0, 0.05820D0, 0.07155D0, 0.08301D0,
& 0.09319D0, 0.11091D0, 0.13308D0, 0.16253D0, 0.18572D0,
& 0.21983D0, 0.24255D0, 0.25721D0, 0.26706D0, 0.26966D0,
& 0.26692D0, 0.25996D0, 0.24983D0, 0.23740D0, 0.22344D0,
& 0.20806D0, 0.19209D0, 0.17575D0, 0.15940D0, 0.14342D0,
& 0.12794D0, 0.11298D0, 0.09881D0, 0.08579D0, 0.07344D0,
& 0.06219D0, 0.05213D0, 0.04295D0, 0.02791D0, 0.01677D0,
& 0.00906D0, 0.00419D0, 0.00037D0, 0.00000D0/
DATA (FMRS(1,2,I, 8),I=1,49)/
& 0.00549D0, 0.00703D0, 0.00902D0, 0.01044D0, 0.01159D0,
& 0.01257D0, 0.01622D0, 0.02109D0, 0.02474D0, 0.02783D0,
& 0.03073D0, 0.04227D0, 0.05940D0, 0.07296D0, 0.08456D0,
& 0.09485D0, 0.11270D0, 0.13493D0, 0.16429D0, 0.18726D0,
& 0.22070D0, 0.24263D0, 0.25647D0, 0.26535D0, 0.26707D0,
& 0.26357D0, 0.25596D0, 0.24532D0, 0.23250D0, 0.21829D0,
& 0.20276D0, 0.18675D0, 0.17045D0, 0.15424D0, 0.13845D0,
& 0.12321D0, 0.10855D0, 0.09470D0, 0.08203D0, 0.07005D0,
& 0.05917D0, 0.04947D0, 0.04065D0, 0.02627D0, 0.01569D0,
& 0.00842D0, 0.00386D0, 0.00033D0, 0.00000D0/
DATA (FMRS(1,2,I, 9),I=1,49)/
& 0.00553D0, 0.00711D0, 0.00913D0, 0.01057D0, 0.01174D0,
& 0.01274D0, 0.01647D0, 0.02144D0, 0.02517D0, 0.02833D0,
& 0.03129D0, 0.04304D0, 0.06045D0, 0.07418D0, 0.08591D0,
& 0.09629D0, 0.11425D0, 0.13653D0, 0.16579D0, 0.18855D0,
& 0.22139D0, 0.24264D0, 0.25577D0, 0.26380D0, 0.26479D0,
& 0.26063D0, 0.25250D0, 0.24142D0, 0.22830D0, 0.21390D0,
& 0.19824D0, 0.18222D0, 0.16597D0, 0.14988D0, 0.13426D0,
& 0.11924D0, 0.10484D0, 0.09128D0, 0.07889D0, 0.06724D0,
& 0.05666D0, 0.04727D0, 0.03875D0, 0.02492D0, 0.01480D0,
& 0.00790D0, 0.00360D0, 0.00030D0, 0.00000D0/
DATA (FMRS(1,2,I,10),I=1,49)/
& 0.00558D0, 0.00718D0, 0.00923D0, 0.01071D0, 0.01190D0,
& 0.01291D0, 0.01671D0, 0.02178D0, 0.02559D0, 0.02881D0,
& 0.03183D0, 0.04379D0, 0.06146D0, 0.07536D0, 0.08720D0,
& 0.09766D0, 0.11571D0, 0.13802D0, 0.16719D0, 0.18973D0,
& 0.22198D0, 0.24256D0, 0.25502D0, 0.26225D0, 0.26252D0,
& 0.25776D0, 0.24914D0, 0.23766D0, 0.22428D0, 0.20968D0,
& 0.19393D0, 0.17791D0, 0.16173D0, 0.14575D0, 0.13032D0,
& 0.11552D0, 0.10136D0, 0.08807D0, 0.07596D0, 0.06462D0,
& 0.05433D0, 0.04524D0, 0.03701D0, 0.02369D0, 0.01400D0,
& 0.00743D0, 0.00336D0, 0.00028D0, 0.00000D0/
DATA (FMRS(1,2,I,11),I=1,49)/
& 0.00562D0, 0.00723D0, 0.00932D0, 0.01081D0, 0.01202D0,
& 0.01305D0, 0.01691D0, 0.02206D0, 0.02593D0, 0.02920D0,
& 0.03226D0, 0.04438D0, 0.06226D0, 0.07629D0, 0.08822D0,
& 0.09874D0, 0.11687D0, 0.13920D0, 0.16827D0, 0.19064D0,
& 0.22242D0, 0.24246D0, 0.25439D0, 0.26100D0, 0.26071D0,
& 0.25548D0, 0.24648D0, 0.23472D0, 0.22112D0, 0.20638D0,
& 0.19059D0, 0.17454D0, 0.15845D0, 0.14257D0, 0.12728D0,
& 0.11265D0, 0.09869D0, 0.08561D0, 0.07373D0, 0.06261D0,
& 0.05256D0, 0.04369D0, 0.03568D0, 0.02275D0, 0.01339D0,
& 0.00707D0, 0.00318D0, 0.00026D0, 0.00000D0/
DATA (FMRS(1,2,I,12),I=1,49)/
& 0.00570D0, 0.00736D0, 0.00950D0, 0.01104D0, 0.01228D0,
& 0.01335D0, 0.01733D0, 0.02266D0, 0.02665D0, 0.03003D0,
& 0.03319D0, 0.04566D0, 0.06397D0, 0.07827D0, 0.09038D0,
& 0.10102D0, 0.11928D0, 0.14164D0, 0.17050D0, 0.19247D0,
& 0.22321D0, 0.24211D0, 0.25293D0, 0.25822D0, 0.25677D0,
& 0.25059D0, 0.24082D0, 0.22847D0, 0.21448D0, 0.19945D0,
& 0.18361D0, 0.16759D0, 0.15163D0, 0.13598D0, 0.12100D0,
& 0.10676D0, 0.09321D0, 0.08058D0, 0.06917D0, 0.05856D0,
& 0.04898D0, 0.04057D0, 0.03301D0, 0.02089D0, 0.01219D0,
& 0.00638D0, 0.00284D0, 0.00022D0, 0.00000D0/
DATA (FMRS(1,2,I,13),I=1,49)/
& 0.00578D0, 0.00747D0, 0.00966D0, 0.01124D0, 0.01252D0,
& 0.01361D0, 0.01770D0, 0.02318D0, 0.02729D0, 0.03076D0,
& 0.03400D0, 0.04677D0, 0.06545D0, 0.07997D0, 0.09223D0,
& 0.10297D0, 0.12133D0, 0.14370D0, 0.17234D0, 0.19395D0,
& 0.22379D0, 0.24170D0, 0.25156D0, 0.25575D0, 0.25334D0,
& 0.24638D0, 0.23598D0, 0.22317D0, 0.20887D0, 0.19364D0,
& 0.17776D0, 0.16180D0, 0.14597D0, 0.13054D0, 0.11583D0,
& 0.10193D0, 0.08873D0, 0.07648D0, 0.06548D0, 0.05529D0,
& 0.04609D0, 0.03806D0, 0.03088D0, 0.01941D0, 0.01124D0,
& 0.00583D0, 0.00257D0, 0.00020D0, 0.00000D0/
DATA (FMRS(1,2,I,14),I=1,49)/
& 0.00586D0, 0.00760D0, 0.00985D0, 0.01147D0, 0.01278D0,
& 0.01391D0, 0.01812D0, 0.02377D0, 0.02801D0, 0.03158D0,
& 0.03491D0, 0.04802D0, 0.06710D0, 0.08186D0, 0.09428D0,
& 0.10512D0, 0.12358D0, 0.14593D0, 0.17430D0, 0.19551D0,
& 0.22431D0, 0.24113D0, 0.24990D0, 0.25292D0, 0.24948D0,
& 0.24168D0, 0.23063D0, 0.21737D0, 0.20273D0, 0.18735D0,
& 0.17142D0, 0.15550D0, 0.13986D0, 0.12470D0, 0.11033D0,
& 0.09680D0, 0.08400D0, 0.07217D0, 0.06162D0, 0.05183D0,
& 0.04308D0, 0.03546D0, 0.02866D0, 0.01788D0, 0.01027D0,
& 0.00528D0, 0.00231D0, 0.00017D0, 0.00000D0/
DATA (FMRS(1,2,I,15),I=1,49)/
& 0.00596D0, 0.00773D0, 0.01005D0, 0.01171D0, 0.01307D0,
& 0.01423D0, 0.01857D0, 0.02439D0, 0.02876D0, 0.03244D0,
& 0.03586D0, 0.04932D0, 0.06880D0, 0.08380D0, 0.09637D0,
& 0.10730D0, 0.12584D0, 0.14815D0, 0.17622D0, 0.19694D0,
& 0.22466D0, 0.24034D0, 0.24804D0, 0.24983D0, 0.24536D0,
& 0.23677D0, 0.22506D0, 0.21136D0, 0.19645D0, 0.18096D0,
& 0.16500D0, 0.14922D0, 0.13378D0, 0.11890D0, 0.10488D0,
& 0.09171D0, 0.07933D0, 0.06793D0, 0.05781D0, 0.04848D0,
& 0.04016D0, 0.03293D0, 0.02652D0, 0.01642D0, 0.00936D0,
& 0.00477D0, 0.00206D0, 0.00015D0, 0.00000D0/
DATA (FMRS(1,2,I,16),I=1,49)/
& 0.00604D0, 0.00786D0, 0.01023D0, 0.01194D0, 0.01333D0,
& 0.01452D0, 0.01898D0, 0.02497D0, 0.02945D0, 0.03323D0,
& 0.03674D0, 0.05050D0, 0.07034D0, 0.08554D0, 0.09824D0,
& 0.10925D0, 0.12785D0, 0.15009D0, 0.17786D0, 0.19815D0,
& 0.22486D0, 0.23952D0, 0.24625D0, 0.24698D0, 0.24163D0,
& 0.23233D0, 0.22009D0, 0.20603D0, 0.19091D0, 0.17529D0,
& 0.15938D0, 0.14374D0, 0.12849D0, 0.11388D0, 0.10016D0,
& 0.08733D0, 0.07533D0, 0.06433D0, 0.05458D0, 0.04564D0,
& 0.03769D0, 0.03082D0, 0.02473D0, 0.01521D0, 0.00860D0,
& 0.00435D0, 0.00186D0, 0.00013D0, 0.00000D0/
DATA (FMRS(1,2,I,17),I=1,49)/
& 0.00614D0, 0.00799D0, 0.01042D0, 0.01217D0, 0.01359D0,
& 0.01482D0, 0.01940D0, 0.02555D0, 0.03016D0, 0.03404D0,
& 0.03763D0, 0.05170D0, 0.07188D0, 0.08729D0, 0.10010D0,
& 0.11119D0, 0.12983D0, 0.15200D0, 0.17943D0, 0.19928D0,
& 0.22497D0, 0.23860D0, 0.24438D0, 0.24406D0, 0.23786D0,
& 0.22788D0, 0.21517D0, 0.20077D0, 0.18546D0, 0.16976D0,
& 0.15392D0, 0.13841D0, 0.12338D0, 0.10905D0, 0.09563D0,
& 0.08314D0, 0.07152D0, 0.06090D0, 0.05152D0, 0.04295D0,
& 0.03537D0, 0.02883D0, 0.02306D0, 0.01409D0, 0.00791D0,
& 0.00396D0, 0.00168D0, 0.00011D0, 0.00000D0/
DATA (FMRS(1,2,I,18),I=1,49)/
& 0.00621D0, 0.00810D0, 0.01058D0, 0.01236D0, 0.01382D0,
& 0.01507D0, 0.01975D0, 0.02604D0, 0.03075D0, 0.03471D0,
& 0.03837D0, 0.05269D0, 0.07316D0, 0.08872D0, 0.10163D0,
& 0.11277D0, 0.13143D0, 0.15352D0, 0.18066D0, 0.20012D0,
& 0.22496D0, 0.23774D0, 0.24276D0, 0.24159D0, 0.23471D0,
& 0.22421D0, 0.21113D0, 0.19645D0, 0.18102D0, 0.16532D0,
& 0.14952D0, 0.13412D0, 0.11930D0, 0.10519D0, 0.09201D0,
& 0.07983D0, 0.06850D0, 0.05818D0, 0.04914D0, 0.04085D0,
& 0.03356D0, 0.02728D0, 0.02176D0, 0.01322D0, 0.00738D0,
& 0.00367D0, 0.00154D0, 0.00010D0, 0.00000D0/
DATA (FMRS(1,2,I,19),I=1,49)/
& 0.00631D0, 0.00824D0, 0.01077D0, 0.01261D0, 0.01410D0,
& 0.01538D0, 0.02018D0, 0.02663D0, 0.03146D0, 0.03553D0,
& 0.03927D0, 0.05390D0, 0.07469D0, 0.09044D0, 0.10345D0,
& 0.11464D0, 0.13332D0, 0.15529D0, 0.18206D0, 0.20106D0,
& 0.22486D0, 0.23661D0, 0.24071D0, 0.23855D0, 0.23089D0,
& 0.21978D0, 0.20626D0, 0.19133D0, 0.17575D0, 0.16006D0,
& 0.14433D0, 0.12911D0, 0.11452D0, 0.10069D0, 0.08783D0,
& 0.07600D0, 0.06503D0, 0.05507D0, 0.04638D0, 0.03845D0,
& 0.03149D0, 0.02552D0, 0.02030D0, 0.01225D0, 0.00679D0,
& 0.00335D0, 0.00139D0, 0.00009D0, 0.00000D0/
DATA (FMRS(1,2,I,20),I=1,49)/
& 0.00640D0, 0.00837D0, 0.01095D0, 0.01282D0, 0.01434D0,
& 0.01565D0, 0.02057D0, 0.02717D0, 0.03210D0, 0.03625D0,
& 0.04007D0, 0.05496D0, 0.07605D0, 0.09195D0, 0.10504D0,
& 0.11628D0, 0.13496D0, 0.15682D0, 0.18325D0, 0.20182D0,
& 0.22471D0, 0.23557D0, 0.23887D0, 0.23587D0, 0.22753D0,
& 0.21592D0, 0.20204D0, 0.18691D0, 0.17123D0, 0.15556D0,
& 0.13990D0, 0.12485D0, 0.11047D0, 0.09690D0, 0.08432D0,
& 0.07279D0, 0.06213D0, 0.05248D0, 0.04407D0, 0.03646D0,
& 0.02978D0, 0.02408D0, 0.01910D0, 0.01145D0, 0.00631D0,
& 0.00309D0, 0.00127D0, 0.00008D0, 0.00000D0/
DATA (FMRS(1,2,I,21),I=1,49)/
& 0.00648D0, 0.00848D0, 0.01111D0, 0.01302D0, 0.01457D0,
& 0.01591D0, 0.02092D0, 0.02766D0, 0.03269D0, 0.03692D0,
& 0.04081D0, 0.05593D0, 0.07728D0, 0.09331D0, 0.10647D0,
& 0.11774D0, 0.13641D0, 0.15816D0, 0.18425D0, 0.20243D0,
& 0.22446D0, 0.23452D0, 0.23710D0, 0.23336D0, 0.22443D0,
& 0.21239D0, 0.19820D0, 0.18290D0, 0.16716D0, 0.15148D0,
& 0.13595D0, 0.12104D0, 0.10685D0, 0.09353D0, 0.08121D0,
& 0.06995D0, 0.05958D0, 0.05021D0, 0.04207D0, 0.03472D0,
& 0.02829D0, 0.02282D0, 0.01806D0, 0.01077D0, 0.00590D0,
& 0.00287D0, 0.00118D0, 0.00007D0, 0.00000D0/
DATA (FMRS(1,2,I,22),I=1,49)/
& 0.00659D0, 0.00863D0, 0.01133D0, 0.01328D0, 0.01487D0,
& 0.01624D0, 0.02138D0, 0.02828D0, 0.03345D0, 0.03777D0,
& 0.04174D0, 0.05717D0, 0.07882D0, 0.09501D0, 0.10826D0,
& 0.11956D0, 0.13822D0, 0.15980D0, 0.18547D0, 0.20313D0,
& 0.22408D0, 0.23313D0, 0.23482D0, 0.23017D0, 0.22053D0,
& 0.20797D0, 0.19344D0, 0.17794D0, 0.16215D0, 0.14650D0,
& 0.13110D0, 0.11639D0, 0.10245D0, 0.08944D0, 0.07745D0,
& 0.06653D0, 0.05651D0, 0.04748D0, 0.03968D0, 0.03265D0,
& 0.02652D0, 0.02133D0, 0.01682D0, 0.00997D0, 0.00542D0,
& 0.00262D0, 0.00106D0, 0.00006D0, 0.00000D0/
DATA (FMRS(1,2,I,23),I=1,49)/
& 0.00669D0, 0.00878D0, 0.01153D0, 0.01352D0, 0.01515D0,
& 0.01655D0, 0.02181D0, 0.02888D0, 0.03416D0, 0.03858D0,
& 0.04263D0, 0.05833D0, 0.08027D0, 0.09661D0, 0.10992D0,
& 0.12125D0, 0.13987D0, 0.16129D0, 0.18654D0, 0.20370D0,
& 0.22365D0, 0.23178D0, 0.23266D0, 0.22717D0, 0.21689D0,
& 0.20387D0, 0.18906D0, 0.17340D0, 0.15758D0, 0.14198D0,
& 0.12670D0, 0.11220D0, 0.09851D0, 0.08577D0, 0.07408D0,
& 0.06350D0, 0.05377D0, 0.04507D0, 0.03757D0, 0.03084D0,
& 0.02497D0, 0.02003D0, 0.01574D0, 0.00927D0, 0.00500D0,
& 0.00240D0, 0.00096D0, 0.00006D0, 0.00000D0/
DATA (FMRS(1,2,I,24),I=1,49)/
& 0.00679D0, 0.00892D0, 0.01172D0, 0.01376D0, 0.01542D0,
& 0.01685D0, 0.02222D0, 0.02944D0, 0.03483D0, 0.03934D0,
& 0.04345D0, 0.05941D0, 0.08161D0, 0.09806D0, 0.11144D0,
& 0.12278D0, 0.14136D0, 0.16260D0, 0.18745D0, 0.20414D0,
& 0.22314D0, 0.23041D0, 0.23054D0, 0.22429D0, 0.21345D0,
& 0.20006D0, 0.18498D0, 0.16918D0, 0.15336D0, 0.13783D0,
& 0.12271D0, 0.10840D0, 0.09494D0, 0.08246D0, 0.07106D0,
& 0.06075D0, 0.05132D0, 0.04292D0, 0.03570D0, 0.02922D0,
& 0.02361D0, 0.01888D0, 0.01480D0, 0.00867D0, 0.00465D0,
& 0.00221D0, 0.00088D0, 0.00005D0, 0.00000D0/
DATA (FMRS(1,2,I,25),I=1,49)/
& 0.00689D0, 0.00906D0, 0.01192D0, 0.01399D0, 0.01569D0,
& 0.01715D0, 0.02264D0, 0.03000D0, 0.03550D0, 0.04009D0,
& 0.04429D0, 0.06049D0, 0.08294D0, 0.09952D0, 0.11294D0,
& 0.12429D0, 0.14282D0, 0.16389D0, 0.18832D0, 0.20454D0,
& 0.22261D0, 0.22902D0, 0.22843D0, 0.22145D0, 0.21007D0,
& 0.19632D0, 0.18101D0, 0.16509D0, 0.14928D0, 0.13382D0,
& 0.11886D0, 0.10475D0, 0.09153D0, 0.07931D0, 0.06819D0,
& 0.05815D0, 0.04900D0, 0.04089D0, 0.03393D0, 0.02770D0,
& 0.02232D0, 0.01781D0, 0.01392D0, 0.00811D0, 0.00432D0,
& 0.00204D0, 0.00081D0, 0.00004D0, 0.00000D0/
DATA (FMRS(1,2,I,26),I=1,49)/
& 0.00699D0, 0.00920D0, 0.01211D0, 0.01423D0, 0.01596D0,
& 0.01744D0, 0.02304D0, 0.03056D0, 0.03616D0, 0.04084D0,
& 0.04510D0, 0.06154D0, 0.08423D0, 0.10091D0, 0.11437D0,
& 0.12573D0, 0.14419D0, 0.16508D0, 0.18909D0, 0.20485D0,
& 0.22201D0, 0.22760D0, 0.22631D0, 0.21867D0, 0.20676D0,
& 0.19266D0, 0.17717D0, 0.16120D0, 0.14536D0, 0.12999D0,
& 0.11520D0, 0.10128D0, 0.08831D0, 0.07633D0, 0.06548D0,
& 0.05572D0, 0.04685D0, 0.03900D0, 0.03228D0, 0.02629D0,
& 0.02113D0, 0.01682D0, 0.01311D0, 0.00760D0, 0.00403D0,
& 0.00189D0, 0.00074D0, 0.00004D0, 0.00000D0/
DATA (FMRS(1,2,I,27),I=1,49)/
& 0.00708D0, 0.00933D0, 0.01230D0, 0.01445D0, 0.01621D0,
& 0.01773D0, 0.02343D0, 0.03108D0, 0.03678D0, 0.04155D0,
& 0.04587D0, 0.06253D0, 0.08544D0, 0.10221D0, 0.11571D0,
& 0.12707D0, 0.14546D0, 0.16617D0, 0.18977D0, 0.20509D0,
& 0.22139D0, 0.22623D0, 0.22430D0, 0.21604D0, 0.20367D0,
& 0.18926D0, 0.17361D0, 0.15759D0, 0.14176D0, 0.12648D0,
& 0.11185D0, 0.09812D0, 0.08537D0, 0.07364D0, 0.06303D0,
& 0.05352D0, 0.04490D0, 0.03729D0, 0.03081D0, 0.02503D0,
& 0.02007D0, 0.01594D0, 0.01240D0, 0.00714D0, 0.00376D0,
& 0.00176D0, 0.00068D0, 0.00004D0, 0.00000D0/
DATA (FMRS(1,2,I,28),I=1,49)/
& 0.00718D0, 0.00946D0, 0.01247D0, 0.01467D0, 0.01646D0,
& 0.01800D0, 0.02380D0, 0.03158D0, 0.03738D0, 0.04221D0,
& 0.04660D0, 0.06346D0, 0.08657D0, 0.10342D0, 0.11695D0,
& 0.12830D0, 0.14663D0, 0.16715D0, 0.19037D0, 0.20527D0,
& 0.22075D0, 0.22489D0, 0.22237D0, 0.21353D0, 0.20079D0,
& 0.18610D0, 0.17031D0, 0.15425D0, 0.13844D0, 0.12326D0,
& 0.10877D0, 0.09523D0, 0.08268D0, 0.07119D0, 0.06080D0,
& 0.05153D0, 0.04314D0, 0.03575D0, 0.02948D0, 0.02390D0,
& 0.01913D0, 0.01516D0, 0.01177D0, 0.00675D0, 0.00353D0,
& 0.00164D0, 0.00063D0, 0.00003D0, 0.00000D0/
DATA (FMRS(1,2,I,29),I=1,49)/
& 0.00727D0, 0.00959D0, 0.01265D0, 0.01488D0, 0.01670D0,
& 0.01827D0, 0.02417D0, 0.03208D0, 0.03797D0, 0.04288D0,
& 0.04733D0, 0.06440D0, 0.08769D0, 0.10463D0, 0.11818D0,
& 0.12952D0, 0.14777D0, 0.16810D0, 0.19092D0, 0.20540D0,
& 0.22008D0, 0.22352D0, 0.22043D0, 0.21103D0, 0.19791D0,
& 0.18297D0, 0.16705D0, 0.15095D0, 0.13519D0, 0.12011D0,
& 0.10577D0, 0.09241D0, 0.08008D0, 0.06881D0, 0.05866D0,
& 0.04961D0, 0.04145D0, 0.03427D0, 0.02822D0, 0.02282D0,
& 0.01822D0, 0.01441D0, 0.01116D0, 0.00637D0, 0.00332D0,
& 0.00153D0, 0.00059D0, 0.00003D0, 0.00000D0/
DATA (FMRS(1,2,I,30),I=1,49)/
& 0.00737D0, 0.00972D0, 0.01283D0, 0.01510D0, 0.01695D0,
& 0.01854D0, 0.02454D0, 0.03258D0, 0.03856D0, 0.04354D0,
& 0.04805D0, 0.06532D0, 0.08879D0, 0.10580D0, 0.11936D0,
& 0.13069D0, 0.14886D0, 0.16900D0, 0.19141D0, 0.20548D0,
& 0.21937D0, 0.22213D0, 0.21850D0, 0.20855D0, 0.19507D0,
& 0.17994D0, 0.16388D0, 0.14775D0, 0.13208D0, 0.11709D0,
& 0.10291D0, 0.08973D0, 0.07760D0, 0.06655D0, 0.05664D0,
& 0.04779D0, 0.03985D0, 0.03289D0, 0.02702D0, 0.02182D0,
& 0.01738D0, 0.01372D0, 0.01060D0, 0.00602D0, 0.00312D0,
& 0.00143D0, 0.00055D0, 0.00003D0, 0.00000D0/
DATA (FMRS(1,2,I,31),I=1,49)/
& 0.00746D0, 0.00985D0, 0.01300D0, 0.01530D0, 0.01718D0,
& 0.01880D0, 0.02489D0, 0.03306D0, 0.03912D0, 0.04417D0,
& 0.04873D0, 0.06619D0, 0.08983D0, 0.10690D0, 0.12048D0,
& 0.13179D0, 0.14987D0, 0.16982D0, 0.19186D0, 0.20553D0,
& 0.21868D0, 0.22081D0, 0.21666D0, 0.20623D0, 0.19242D0,
& 0.17710D0, 0.16093D0, 0.14478D0, 0.12919D0, 0.11430D0,
& 0.10026D0, 0.08726D0, 0.07533D0, 0.06447D0, 0.05479D0,
& 0.04614D0, 0.03840D0, 0.03163D0, 0.02594D0, 0.02091D0,
& 0.01662D0, 0.01309D0, 0.01009D0, 0.00571D0, 0.00295D0,
& 0.00134D0, 0.00051D0, 0.00003D0, 0.00000D0/
DATA (FMRS(1,2,I,32),I=1,49)/
& 0.00755D0, 0.00997D0, 0.01317D0, 0.01550D0, 0.01741D0,
& 0.01905D0, 0.02522D0, 0.03351D0, 0.03966D0, 0.04477D0,
& 0.04938D0, 0.06700D0, 0.09079D0, 0.10792D0, 0.12151D0,
& 0.13280D0, 0.15080D0, 0.17056D0, 0.19223D0, 0.20552D0,
& 0.21797D0, 0.21951D0, 0.21489D0, 0.20403D0, 0.18991D0,
& 0.17441D0, 0.15817D0, 0.14202D0, 0.12646D0, 0.11170D0,
& 0.09780D0, 0.08498D0, 0.07322D0, 0.06257D0, 0.05306D0,
& 0.04463D0, 0.03708D0, 0.03049D0, 0.02496D0, 0.02008D0,
& 0.01594D0, 0.01252D0, 0.00963D0, 0.00542D0, 0.00279D0,
& 0.00126D0, 0.00048D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,2,I,33),I=1,49)/
& 0.00764D0, 0.01009D0, 0.01333D0, 0.01570D0, 0.01763D0,
& 0.01930D0, 0.02556D0, 0.03396D0, 0.04019D0, 0.04537D0,
& 0.05004D0, 0.06783D0, 0.09177D0, 0.10895D0, 0.12254D0,
& 0.13381D0, 0.15173D0, 0.17130D0, 0.19261D0, 0.20552D0,
& 0.21726D0, 0.21822D0, 0.21313D0, 0.20185D0, 0.18743D0,
& 0.17175D0, 0.15545D0, 0.13931D0, 0.12379D0, 0.10917D0,
& 0.09540D0, 0.08276D0, 0.07118D0, 0.06072D0, 0.05139D0,
& 0.04317D0, 0.03581D0, 0.02938D0, 0.02402D0, 0.01929D0,
& 0.01528D0, 0.01198D0, 0.00920D0, 0.00516D0, 0.00264D0,
& 0.00119D0, 0.00045D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,2,I,34),I=1,49)/
& 0.00773D0, 0.01021D0, 0.01350D0, 0.01590D0, 0.01786D0,
& 0.01955D0, 0.02590D0, 0.03441D0, 0.04072D0, 0.04597D0,
& 0.05068D0, 0.06863D0, 0.09272D0, 0.10994D0, 0.12353D0,
& 0.13477D0, 0.15260D0, 0.17197D0, 0.19290D0, 0.20543D0,
& 0.21649D0, 0.21688D0, 0.21134D0, 0.19965D0, 0.18497D0,
& 0.16913D0, 0.15278D0, 0.13665D0, 0.12121D0, 0.10669D0,
& 0.09308D0, 0.08060D0, 0.06921D0, 0.05894D0, 0.04980D0,
& 0.04176D0, 0.03458D0, 0.02833D0, 0.02311D0, 0.01853D0,
& 0.01465D0, 0.01147D0, 0.00879D0, 0.00491D0, 0.00250D0,
& 0.00112D0, 0.00042D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,2,I,35),I=1,49)/
& 0.00781D0, 0.01033D0, 0.01366D0, 0.01609D0, 0.01808D0,
& 0.01979D0, 0.02622D0, 0.03484D0, 0.04123D0, 0.04653D0,
& 0.05129D0, 0.06941D0, 0.09362D0, 0.11088D0, 0.12448D0,
& 0.13569D0, 0.15342D0, 0.17260D0, 0.19318D0, 0.20535D0,
& 0.21576D0, 0.21562D0, 0.20966D0, 0.19759D0, 0.18266D0,
& 0.16668D0, 0.15028D0, 0.13418D0, 0.11882D0, 0.10439D0,
& 0.09094D0, 0.07861D0, 0.06739D0, 0.05729D0, 0.04834D0,
& 0.04048D0, 0.03346D0, 0.02736D0, 0.02228D0, 0.01784D0,
& 0.01408D0, 0.01100D0, 0.00842D0, 0.00468D0, 0.00237D0,
& 0.00106D0, 0.00039D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,2,I,36),I=1,49)/
& 0.00790D0, 0.01044D0, 0.01382D0, 0.01628D0, 0.01829D0,
& 0.02002D0, 0.02653D0, 0.03525D0, 0.04172D0, 0.04707D0,
& 0.05188D0, 0.07013D0, 0.09447D0, 0.11177D0, 0.12535D0,
& 0.13654D0, 0.15418D0, 0.17318D0, 0.19341D0, 0.20524D0,
& 0.21505D0, 0.21440D0, 0.20805D0, 0.19563D0, 0.18048D0,
& 0.16438D0, 0.14795D0, 0.13186D0, 0.11657D0, 0.10226D0,
& 0.08894D0, 0.07676D0, 0.06571D0, 0.05578D0, 0.04700D0,
& 0.03929D0, 0.03242D0, 0.02648D0, 0.02153D0, 0.01720D0,
& 0.01356D0, 0.01058D0, 0.00808D0, 0.00448D0, 0.00226D0,
& 0.00101D0, 0.00037D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,2,I,37),I=1,49)/
& 0.00798D0, 0.01056D0, 0.01397D0, 0.01646D0, 0.01850D0,
& 0.02025D0, 0.02684D0, 0.03567D0, 0.04221D0, 0.04762D0,
& 0.05247D0, 0.07087D0, 0.09532D0, 0.11265D0, 0.12622D0,
& 0.13738D0, 0.15492D0, 0.17373D0, 0.19361D0, 0.20510D0,
& 0.21429D0, 0.21315D0, 0.20641D0, 0.19365D0, 0.17829D0,
& 0.16207D0, 0.14561D0, 0.12954D0, 0.11434D0, 0.10013D0,
& 0.08696D0, 0.07493D0, 0.06406D0, 0.05429D0, 0.04567D0,
& 0.03812D0, 0.03141D0, 0.02561D0, 0.02079D0, 0.01659D0,
& 0.01305D0, 0.01017D0, 0.00775D0, 0.00428D0, 0.00215D0,
& 0.00095D0, 0.00035D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,2,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I, 1),I=1,49)/
& 3.68244D0, 3.61785D0, 3.55346D0, 3.51555D0, 3.48837D0,
& 3.46702D0, 3.39811D0, 3.32177D0, 3.27072D0, 3.23000D0,
& 3.19378D0, 3.05765D0, 2.86346D0, 2.71339D0, 2.58651D0,
& 2.47572D0, 2.28777D0, 2.06245D0, 1.78178D0, 1.57726D0,
& 1.30519D0, 1.14076D0, 1.03654D0, 0.95264D0, 0.89447D0,
& 0.84663D0, 0.80090D0, 0.75325D0, 0.70217D0, 0.64784D0,
& 0.59048D0, 0.53173D0, 0.47263D0, 0.41459D0, 0.35887D0,
& 0.30634D0, 0.25757D0, 0.21335D0, 0.17415D0, 0.13936D0,
& 0.10957D0, 0.08459D0, 0.06372D0, 0.03369D0, 0.01574D0,
& 0.00625D0, 0.00195D0, 0.00005D0, 0.00000D0/
DATA (FMRS(1,3,I, 2),I=1,49)/
& 6.24307D0, 5.86376D0, 5.50631D0, 5.30646D0, 5.16844D0,
& 5.06337D0, 4.74657D0, 4.44005D0, 4.26242D0, 4.13555D0,
& 4.03502D0, 3.71094D0, 3.34882D0, 3.11051D0, 2.92600D0,
& 2.77355D0, 2.52821D0, 2.24967D0, 1.91859D0, 1.68481D0,
& 1.37946D0, 1.19535D0, 1.07673D0, 0.97819D0, 0.90750D0,
& 0.84881D0, 0.79381D0, 0.73852D0, 0.68149D0, 0.62276D0,
& 0.56254D0, 0.50226D0, 0.44285D0, 0.38548D0, 0.33123D0,
& 0.28073D0, 0.23437D0, 0.19279D0, 0.15633D0, 0.12427D0,
& 0.09707D0, 0.07445D0, 0.05572D0, 0.02906D0, 0.01339D0,
& 0.00524D0, 0.00161D0, 0.00004D0, 0.00000D0/
DATA (FMRS(1,3,I, 3),I=1,49)/
& 11.05139D0, 9.94786D0, 8.95244D0, 8.41536D0, 8.05287D0,
& 7.78166D0, 6.98996D0, 6.26416D0, 5.86369D0, 5.58758D0,
& 5.37431D0, 4.72923D0, 4.08790D0, 3.70661D0, 3.43015D0,
& 3.21204D0, 2.87740D0, 2.51734D0, 2.11023D0, 1.83283D0,
& 1.47833D0, 1.26530D0, 1.12571D0, 1.00618D0, 0.91793D0,
& 0.84442D0, 0.77712D0, 0.71204D0, 0.64770D0, 0.58389D0,
& 0.52071D0, 0.45928D0, 0.40030D0, 0.34459D0, 0.29298D0,
& 0.24576D0, 0.20309D0, 0.16540D0, 0.13284D0, 0.10462D0,
& 0.08093D0, 0.06152D0, 0.04560D0, 0.02333D0, 0.01054D0,
& 0.00404D0, 0.00122D0, 0.00003D0, 0.00000D0/
DATA (FMRS(1,3,I, 4),I=1,49)/
& 15.37825D0, 13.53065D0, 11.90193D0, 11.03924D0, 10.46378D0,
& 10.03696D0, 8.81034D0, 7.71341D0, 7.12073D0, 6.71781D0,
& 6.40918D0, 5.49848D0, 4.63276D0, 4.13943D0, 3.79203D0,
& 3.52386D0, 3.12196D0, 2.70149D0, 2.23890D0, 1.93011D0,
& 1.54059D0, 1.30714D0, 1.15286D0, 1.01886D0, 0.91881D0,
& 0.83562D0, 0.76055D0, 0.68952D0, 0.62095D0, 0.55452D0,
& 0.49011D0, 0.42861D0, 0.37052D0, 0.31647D0, 0.26702D0,
& 0.22241D0, 0.18246D0, 0.14751D0, 0.11769D0, 0.09209D0,
& 0.07074D0, 0.05343D0, 0.03933D0, 0.01985D0, 0.00885D0,
& 0.00335D0, 0.00100D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,3,I, 5),I=1,49)/
& 20.54786D0, 17.73643D0, 15.30522D0, 14.03720D0, 13.19955D0,
& 12.58273D0, 10.83264D0, 9.29877D0, 8.48369D0, 7.93560D0,
& 7.51848D0, 6.31010D0, 5.19808D0, 4.58383D0, 4.16067D0,
& 3.83948D0, 3.36690D0, 2.88348D0, 2.36367D0, 2.02276D0,
& 1.59751D0, 1.34336D0, 1.17440D0, 1.02619D0, 0.91484D0,
& 0.82260D0, 0.74049D0, 0.66431D0, 0.59227D0, 0.52387D0,
& 0.45886D0, 0.39784D0, 0.34106D0, 0.28898D0, 0.24193D0,
& 0.20003D0, 0.16291D0, 0.13075D0, 0.10361D0, 0.08049D0,
& 0.06141D0, 0.04606D0, 0.03367D0, 0.01676D0, 0.00737D0,
& 0.00275D0, 0.00081D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,3,I, 6),I=1,49)/
& 25.87997D0, 22.00579D0, 18.70564D0, 17.00514D0, 15.89031D0,
& 15.07400D0, 12.78092D0, 10.80231D0, 9.76436D0, 9.07223D0,
& 8.54820D0, 7.05063D0, 5.70461D0, 4.97765D0, 4.48471D0,
& 4.11512D0, 3.57867D0, 3.03899D0, 2.46867D0, 2.09967D0,
& 1.64344D0, 1.37152D0, 1.19009D0, 1.03003D0, 0.90944D0,
& 0.81000D0, 0.72245D0, 0.64242D0, 0.56795D0, 0.49835D0,
& 0.43318D0, 0.37285D0, 0.31739D0, 0.26712D0, 0.22217D0,
& 0.18254D0, 0.14775D0, 0.11786D0, 0.09285D0, 0.07171D0,
& 0.05439D0, 0.04056D0, 0.02948D0, 0.01450D0, 0.00631D0,
& 0.00232D0, 0.00067D0, 0.00002D0, 0.00000D0/
DATA (FMRS(1,3,I, 7),I=1,49)/
& 31.48650D0, 26.43816D0, 22.19174D0, 20.02570D0, 18.61470D0,
& 17.58636D0, 14.72161D0, 12.28168D0, 11.01532D0, 10.17669D0,
& 9.54456D0, 7.75761D0, 6.18119D0, 5.34474D0, 4.78459D0,
& 4.36861D0, 3.77149D0, 3.17878D0, 2.56125D0, 2.16614D0,
& 1.68135D0, 1.39321D0, 1.20050D0, 1.02990D0, 0.90129D0,
& 0.79577D0, 0.70378D0, 0.62075D0, 0.54457D0, 0.47435D0,
& 0.40939D0, 0.34999D0, 0.29601D0, 0.24758D0, 0.20467D0,
& 0.16718D0, 0.13453D0, 0.10670D0, 0.08361D0, 0.06425D0,
& 0.04845D0, 0.03594D0, 0.02598D0, 0.01264D0, 0.00544D0,
& 0.00198D0, 0.00057D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I, 8),I=1,49)/
& 38.19562D0, 31.67731D0, 26.26192D0, 23.52700D0, 21.75654D0,
& 20.47217D0, 16.92324D0, 13.93891D0, 12.40615D0, 11.39793D0,
& 10.64140D0, 8.52490D0, 6.69053D0, 5.73328D0, 5.09966D0,
& 4.63338D0, 3.97084D0, 3.32155D0, 2.65414D0, 2.23167D0,
& 1.71719D0, 1.41235D0, 1.20819D0, 1.02708D0, 0.89064D0,
& 0.77934D0, 0.68328D0, 0.59764D0, 0.52014D0, 0.44964D0,
& 0.38523D0, 0.32704D0, 0.27476D0, 0.22832D0, 0.18758D0,
& 0.15228D0, 0.12182D0, 0.09604D0, 0.07484D0, 0.05719D0,
& 0.04288D0, 0.03164D0, 0.02275D0, 0.01095D0, 0.00466D0,
& 0.00168D0, 0.00048D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I, 9),I=1,49)/
& 44.69263D0, 36.69535D0, 30.11768D0, 26.82255D0, 24.70025D0,
& 23.16639D0, 18.95601D0, 15.45187D0, 13.66736D0, 12.49995D0,
& 11.62724D0, 9.20581D0, 7.13631D0, 6.07035D0, 5.37118D0,
& 4.86033D0, 4.14011D0, 3.44140D0, 2.73081D0, 2.28485D0,
& 1.74506D0, 1.42613D0, 1.21246D0, 1.02274D0, 0.88003D0,
& 0.76424D0, 0.66513D0, 0.57765D0, 0.49935D0, 0.42889D0,
& 0.36519D0, 0.30820D0, 0.25746D0, 0.21275D0, 0.17388D0,
& 0.14043D0, 0.11178D0, 0.08767D0, 0.06799D0, 0.05171D0,
& 0.03859D0, 0.02834D0, 0.02028D0, 0.00968D0, 0.00408D0,
& 0.00146D0, 0.00041D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I,10),I=1,49)/
& 51.42669D0, 41.84610D0, 34.03689D0, 30.15309D0, 27.66303D0,
& 25.86942D0, 20.97504D0, 16.93923D0, 14.89954D0, 13.57172D0,
& 12.58248D0, 9.85775D0, 7.55746D0, 6.38605D0, 5.62372D0,
& 5.07013D0, 4.29501D0, 3.54959D0, 2.79853D0, 2.33075D0,
& 1.76763D0, 1.43584D0, 1.21358D0, 1.01625D0, 0.86814D0,
& 0.74860D0, 0.64707D0, 0.55827D0, 0.47958D0, 0.40941D0,
& 0.34660D0, 0.29089D0, 0.24172D0, 0.19871D0, 0.16160D0,
& 0.12988D0, 0.10289D0, 0.08032D0, 0.06202D0, 0.04695D0,
& 0.03489D0, 0.02551D0, 0.01818D0, 0.00860D0, 0.00360D0,
& 0.00128D0, 0.00036D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I,11),I=1,49)/
& 57.20334D0, 46.22931D0, 37.34534D0, 32.95134D0, 30.14391D0,
& 28.12686D0, 22.64741D0, 18.16087D0, 15.90648D0, 14.44434D0,
& 13.35786D0, 10.38182D0, 7.89242D0, 6.63544D0, 5.82215D0,
& 5.23423D0, 4.41529D0, 3.63279D0, 2.84983D0, 2.36499D0,
& 1.78374D0, 1.44206D0, 1.21326D0, 1.01023D0, 0.85815D0,
& 0.73593D0, 0.63273D0, 0.54312D0, 0.46430D0, 0.39449D0,
& 0.33248D0, 0.27783D0, 0.22993D0, 0.18826D0, 0.15250D0,
& 0.12212D0, 0.09637D0, 0.07495D0, 0.05770D0, 0.04352D0,
& 0.03223D0, 0.02349D0, 0.01668D0, 0.00784D0, 0.00326D0,
& 0.00115D0, 0.00032D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I,12),I=1,49)/
& 70.62117D0, 56.29525D0, 44.85603D0, 39.26056D0, 35.71024D0,
& 33.17249D0, 26.34026D0, 20.82458D0, 18.08508D0, 16.32156D0,
& 15.01807D0, 11.48651D0, 8.58576D0, 7.14521D0, 6.22372D0,
& 5.56345D0, 4.65284D0, 3.79371D0, 2.94559D0, 2.42633D0,
& 1.80899D0, 1.44797D0, 1.20662D0, 0.99291D0, 0.83369D0,
& 0.70687D0, 0.60112D0, 0.51056D0, 0.43209D0, 0.36357D0,
& 0.30359D0, 0.25146D0, 0.20630D0, 0.16753D0, 0.13462D0,
& 0.10696D0, 0.08376D0, 0.06466D0, 0.04944D0, 0.03702D0,
& 0.02722D0, 0.01971D0, 0.01390D0, 0.00645D0, 0.00265D0,
& 0.00093D0, 0.00026D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I,13),I=1,49)/
& 83.50434D0, 65.82890D0, 51.87140D0, 45.10521D0, 40.83618D0,
& 37.79736D0, 29.67546D0, 23.19327D0, 20.00393D0, 17.96325D0,
& 16.46149D0, 12.42825D0, 9.16326D0, 7.56303D0, 6.54853D0,
& 5.82663D0, 4.83880D0, 3.91602D0, 3.01472D0, 2.46779D0,
& 1.82202D0, 1.44614D0, 1.19543D0, 0.97402D0, 0.80992D0,
& 0.68027D0, 0.57325D0, 0.48262D0, 0.40504D0, 0.33808D0,
& 0.28014D0, 0.23033D0, 0.18761D0, 0.15130D0, 0.12077D0,
& 0.09534D0, 0.07419D0, 0.05692D0, 0.04326D0, 0.03220D0,
& 0.02354D0, 0.01696D0, 0.01189D0, 0.00546D0, 0.00222D0,
& 0.00077D0, 0.00021D0, 0.00001D0, 0.00000D0/
DATA (FMRS(1,3,I,14),I=1,49)/
& 99.26808D0, 77.34151D0, 60.22972D0, 52.01289D0, 46.85941D0,
& 43.20707D0, 33.52017D0, 25.88194D0, 22.16110D0, 19.79557D0,
& 18.06292D0, 13.45200D0, 9.77556D0, 7.99825D0, 6.88178D0,
& 6.09288D0, 5.02224D0, 4.03207D0, 3.07569D0, 2.50055D0,
& 1.82658D0, 1.43637D0, 1.17694D0, 0.94870D0, 0.78062D0,
& 0.64903D0, 0.54156D0, 0.45166D0, 0.37564D0, 0.31084D0,
& 0.25547D0, 0.20834D0, 0.16843D0, 0.13481D0, 0.10686D0,
& 0.08378D0, 0.06476D0, 0.04934D0, 0.03727D0, 0.02756D0,
& 0.02003D0, 0.01435D0, 0.01000D0, 0.00454D0, 0.00183D0,
& 0.00063D0, 0.00017D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,15),I=1,49)/
& 117.13634D0, 90.22787D0, 69.46667D0, 59.58908D0, 53.42973D0,
& 49.08310D0, 37.64029D0, 28.72286D0, 24.42074D0, 21.70264D0,
& 19.72087D0, 14.49332D0, 10.38573D0, 8.42544D0, 7.20484D0,
& 6.34818D0, 5.19436D0, 4.13748D0, 3.12707D0, 2.52493D0,
& 1.82437D0, 1.42118D0, 1.15415D0, 0.92032D0, 0.74934D0,
& 0.61673D0, 0.50955D0, 0.42103D0, 0.34703D0, 0.28471D0,
& 0.23205D0, 0.18777D0, 0.15064D0, 0.11967D0, 0.09419D0,
& 0.07336D0, 0.05631D0, 0.04263D0, 0.03201D0, 0.02354D0,
& 0.01700D0, 0.01211D0, 0.00839D0, 0.00377D0, 0.00151D0,
& 0.00052D0, 0.00014D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,16),I=1,49)/
& 134.87820D0,102.87527D0, 78.42588D0, 66.88609D0, 59.72612D0,
& 54.69190D0, 41.52393D0, 31.36570D0, 26.50579D0, 23.45176D0,
& 21.23395D0, 15.42784D0, 10.92244D0, 8.79593D0, 7.48170D0,
& 6.56462D0, 5.33723D0, 4.22208D0, 3.16533D0, 2.54035D0,
& 1.81781D0, 1.40424D0, 1.13142D0, 0.89365D0, 0.72095D0,
& 0.58811D0, 0.48181D0, 0.39483D0, 0.32289D0, 0.26295D0,
& 0.21278D0, 0.17100D0, 0.13629D0, 0.10758D0, 0.08415D0,
& 0.06517D0, 0.04972D0, 0.03744D0, 0.02797D0, 0.02046D0,
& 0.01470D0, 0.01042D0, 0.00719D0, 0.00321D0, 0.00127D0,
& 0.00043D0, 0.00012D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,17),I=1,49)/
& 154.38010D0,116.63111D0, 88.06633D0, 74.68806D0, 66.42747D0,
& 60.64011D0, 45.59593D0, 34.10384D0, 28.65021D0, 25.24085D0,
& 22.77463D0, 16.36506D0, 11.45095D0, 9.15610D0, 7.74790D0,
& 6.77064D0, 5.47057D0, 4.29852D0, 3.19720D0, 2.55058D0,
& 1.80771D0, 1.38488D0, 1.10716D0, 0.86634D0, 0.69264D0,
& 0.56014D0, 0.45511D0, 0.36997D0, 0.30026D0, 0.24276D0,
& 0.19507D0, 0.15573D0, 0.12333D0, 0.09676D0, 0.07524D0,
& 0.05794D0, 0.04395D0, 0.03292D0, 0.02447D0, 0.01781D0,
& 0.01274D0, 0.00899D0, 0.00618D0, 0.00274D0, 0.00108D0,
& 0.00037D0, 0.00010D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,18),I=1,49)/
& 171.60985D0,128.66806D0, 96.41977D0, 81.40891D0, 72.17590D0,
& 65.72558D0, 49.04064D0, 36.39427D0, 30.43144D0, 26.71914D0,
& 24.04215D0, 17.12464D0, 11.87120D0, 9.43856D0, 7.95410D0,
& 6.92832D0, 5.57016D0, 4.35322D0, 3.21721D0, 2.55406D0,
& 1.79608D0, 1.36671D0, 1.08575D0, 0.84319D0, 0.66925D0,
& 0.53749D0, 0.43376D0, 0.35041D0, 0.28267D0, 0.22722D0,
& 0.18154D0, 0.14418D0, 0.11359D0, 0.08871D0, 0.06865D0,
& 0.05262D0, 0.03976D0, 0.02965D0, 0.02195D0, 0.01592D0,
& 0.01135D0, 0.00798D0, 0.00547D0, 0.00241D0, 0.00095D0,
& 0.00032D0, 0.00009D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,19),I=1,49)/
& 193.78899D0,144.01862D0,106.97157D0, 89.85031D0, 79.36631D0,
& 72.06629D0, 53.29134D0, 39.18974D0, 32.59051D0, 28.50177D0,
& 25.56394D0, 18.02311D0, 12.35926D0, 9.76179D0, 8.18702D0,
& 7.10431D0, 5.67841D0, 4.40968D0, 3.23437D0, 2.55292D0,
& 1.77867D0, 1.34261D0, 1.05865D0, 0.81484D0, 0.64125D0,
& 0.51082D0, 0.40904D0, 0.32798D0, 0.26269D0, 0.20975D0,
& 0.16651D0, 0.13145D0, 0.10293D0, 0.07994D0, 0.06153D0,
& 0.04691D0, 0.03527D0, 0.02618D0, 0.01929D0, 0.01394D0,
& 0.00989D0, 0.00693D0, 0.00473D0, 0.00207D0, 0.00081D0,
& 0.00027D0, 0.00007D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,20),I=1,49)/
& 214.89481D0,158.49641D0,116.83355D0, 97.69725D0, 86.02460D0,
& 77.91979D0, 57.17770D0, 41.71972D0, 34.53225D0, 30.09744D0,
& 26.92084D0, 18.81368D0, 12.78187D0, 10.03830D0, 8.38419D0,
& 7.25181D0, 5.76723D0, 4.45410D0, 3.24560D0, 2.54901D0,
& 1.76164D0, 1.32048D0, 1.03446D0, 0.79010D0, 0.61721D0,
& 0.48824D0, 0.38835D0, 0.30938D0, 0.24629D0, 0.19551D0,
& 0.15438D0, 0.12122D0, 0.09444D0, 0.07299D0, 0.05594D0,
& 0.04245D0, 0.03178D0, 0.02349D0, 0.01725D0, 0.01242D0,
& 0.00879D0, 0.00614D0, 0.00418D0, 0.00182D0, 0.00071D0,
& 0.00024D0, 0.00007D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,21),I=1,49)/
& 234.93695D0,172.12665D0,126.03609D0,104.98046D0, 92.18044D0,
& 83.31506D0, 60.72429D0, 44.00365D0, 36.27307D0, 31.52044D0,
& 28.12565D0, 19.50453D0, 13.14306D0, 10.27071D0, 8.54710D0,
& 7.37140D0, 5.83642D0, 4.48556D0, 3.24949D0, 2.54059D0,
& 1.74309D0, 1.29840D0, 1.01128D0, 0.76711D0, 0.59538D0,
& 0.46805D0, 0.37012D0, 0.29319D0, 0.23219D0, 0.18337D0,
& 0.14410D0, 0.11261D0, 0.08738D0, 0.06725D0, 0.05133D0,
& 0.03881D0, 0.02895D0, 0.02133D0, 0.01562D0, 0.01121D0,
& 0.00791D0, 0.00551D0, 0.00374D0, 0.00162D0, 0.00063D0,
& 0.00021D0, 0.00006D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,22),I=1,49)/
& 261.98752D0,190.37146D0,138.25069D0,114.59908D0,100.28083D0,
& 90.39440D0, 65.33586D0, 46.94503D0, 38.50155D0, 33.33386D0,
& 29.65516D0, 20.37022D0, 13.58831D0, 10.55348D0, 8.74295D0,
& 7.51340D0, 5.91633D0, 4.51953D0, 3.25037D0, 2.52703D0,
& 1.71812D0, 1.26985D0, 0.98192D0, 0.73853D0, 0.56860D0,
& 0.44359D0, 0.34825D0, 0.27396D0, 0.21556D0, 0.16918D0,
& 0.13216D0, 0.10269D0, 0.07927D0, 0.06069D0, 0.04611D0,
& 0.03471D0, 0.02577D0, 0.01891D0, 0.01380D0, 0.00987D0,
& 0.00694D0, 0.00482D0, 0.00326D0, 0.00141D0, 0.00055D0,
& 0.00018D0, 0.00005D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,23),I=1,49)/
& 289.01031D0,208.43709D0,150.23653D0,123.98669D0,108.15595D0,
& 97.25583D0, 69.76177D0, 49.73855D0, 40.60409D0, 35.03629D0,
& 31.08496D0, 21.16773D0, 13.99081D0, 10.80513D0, 8.91469D0,
& 7.63597D0, 5.98282D0, 4.54504D0, 3.24687D0, 2.51128D0,
& 1.69316D0, 1.24243D0, 0.95435D0, 0.71223D0, 0.54431D0,
& 0.42170D0, 0.32889D0, 0.25710D0, 0.20110D0, 0.15697D0,
& 0.12195D0, 0.09429D0, 0.07242D0, 0.05518D0, 0.04175D0,
& 0.03132D0, 0.02316D0, 0.01693D0, 0.01232D0, 0.00878D0,
& 0.00615D0, 0.00426D0, 0.00288D0, 0.00124D0, 0.00048D0,
& 0.00016D0, 0.00004D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,24),I=1,49)/
& 315.12421D0,225.74153D0,161.61246D0,132.84715D0,115.55888D0,
& 103.68510D0, 73.86555D0, 52.29894D0, 42.51674D0, 36.57598D0,
& 32.37159D0, 21.87235D0, 14.33730D0, 11.01653D0, 9.05547D0,
& 7.73389D0, 6.03187D0, 4.55934D0, 3.23736D0, 2.49207D0,
& 1.66734D0, 1.21544D0, 0.92800D0, 0.68769D0, 0.52210D0,
& 0.40197D0, 0.31164D0, 0.24228D0, 0.18850D0, 0.14640D0,
& 0.11322D0, 0.08715D0, 0.06666D0, 0.05059D0, 0.03813D0,
& 0.02850D0, 0.02101D0, 0.01531D0, 0.01111D0, 0.00790D0,
& 0.00552D0, 0.00382D0, 0.00258D0, 0.00111D0, 0.00043D0,
& 0.00014D0, 0.00004D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,25),I=1,49)/
& 342.80673D0,243.95296D0,173.49684D0,142.06322D0,123.23465D0,
& 110.33495D0, 78.07693D0, 54.90473D0, 44.45325D0, 38.12883D0,
& 33.66507D0, 22.57285D0, 14.67683D0, 11.22134D0, 9.19035D0,
& 7.82660D0, 6.07682D0, 4.57070D0, 3.22605D0, 2.47181D0,
& 1.64130D0, 1.18872D0, 0.90224D0, 0.66398D0, 0.50084D0,
& 0.38326D0, 0.29541D0, 0.22842D0, 0.17680D0, 0.13666D0,
& 0.10521D0, 0.08063D0, 0.06143D0, 0.04643D0, 0.03487D0,
& 0.02598D0, 0.01909D0, 0.01388D0, 0.01004D0, 0.00712D0,
& 0.00496D0, 0.00343D0, 0.00231D0, 0.00099D0, 0.00038D0,
& 0.00013D0, 0.00004D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,26),I=1,49)/
& 370.71918D0,262.16998D0,185.28712D0,151.16048D0,130.78375D0,
& 116.85600D0, 82.16776D0, 57.40948D0, 46.30192D0, 39.60334D0,
& 34.88776D0, 23.22383D0, 14.98428D0, 11.40259D0, 9.30664D0,
& 7.90402D0, 6.11093D0, 4.57472D0, 3.21035D0, 2.44880D0,
& 1.61427D0, 1.16192D0, 0.87693D0, 0.64114D0, 0.48063D0,
& 0.36570D0, 0.28035D0, 0.21566D0, 0.16615D0, 0.12784D0,
& 0.09801D0, 0.07482D0, 0.05679D0, 0.04277D0, 0.03202D0,
& 0.02378D0, 0.01743D0, 0.01263D0, 0.00912D0, 0.00645D0,
& 0.00449D0, 0.00310D0, 0.00208D0, 0.00089D0, 0.00034D0,
& 0.00012D0, 0.00003D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,27),I=1,49)/
& 398.31635D0,280.05777D0,196.78310D0,159.99336D0,138.09111D0,
& 123.15311D0, 86.08746D0, 59.78946D0, 48.04917D0, 40.99130D0,
& 36.03455D0, 23.82682D0, 15.26416D0, 11.56505D0, 9.40909D0,
& 7.97073D0, 6.13825D0, 4.57511D0, 3.19349D0, 2.42581D0,
& 1.58834D0, 1.13668D0, 0.85340D0, 0.62017D0, 0.46227D0,
& 0.34987D0, 0.26689D0, 0.20435D0, 0.15674D0, 0.12011D0,
& 0.09172D0, 0.06977D0, 0.05278D0, 0.03962D0, 0.02958D0,
& 0.02190D0, 0.01601D0, 0.01157D0, 0.00834D0, 0.00589D0,
& 0.00409D0, 0.00282D0, 0.00189D0, 0.00081D0, 0.00031D0,
& 0.00010D0, 0.00003D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,28),I=1,49)/
& 425.10541D0,297.30496D0,207.79007D0,168.41481D0,145.03664D0,
& 129.12375D0, 89.77434D0, 62.00834D0, 49.66874D0, 42.27205D0,
& 37.08847D0, 24.37295D0, 15.51221D0, 11.70602D0, 9.49577D0,
& 8.02523D0, 6.15776D0, 4.57120D0, 3.17506D0, 2.40249D0,
& 1.56325D0, 1.11278D0, 0.83141D0, 0.60084D0, 0.44554D0,
& 0.33559D0, 0.25483D0, 0.19432D0, 0.14844D0, 0.11333D0,
& 0.08624D0, 0.06537D0, 0.04932D0, 0.03692D0, 0.02748D0,
& 0.02030D0, 0.01481D0, 0.01068D0, 0.00768D0, 0.00541D0,
& 0.00376D0, 0.00258D0, 0.00173D0, 0.00074D0, 0.00028D0,
& 0.00010D0, 0.00003D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,29),I=1,49)/
& 452.96622D0,315.13217D0,219.09509D0,177.03108D0,152.12305D0,
& 135.20210D0, 93.50108D0, 64.23380D0, 51.28493D0, 43.54515D0,
& 38.13279D0, 24.90754D0, 15.75054D0, 11.83897D0, 9.57579D0,
& 8.07414D0, 6.17308D0, 4.56436D0, 3.15482D0, 2.37807D0,
& 1.53780D0, 1.08891D0, 0.80971D0, 0.58195D0, 0.42935D0,
& 0.32187D0, 0.24333D0, 0.18479D0, 0.14060D0, 0.10697D0,
& 0.08112D0, 0.06130D0, 0.04611D0, 0.03442D0, 0.02556D0,
& 0.01884D0, 0.01371D0, 0.00987D0, 0.00709D0, 0.00499D0,
& 0.00346D0, 0.00237D0, 0.00159D0, 0.00068D0, 0.00026D0,
& 0.00009D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,30),I=1,49)/
& 481.05176D0,332.98895D0,230.34398D0,185.57016D0,159.12541D0,
& 141.19426D0, 97.14677D0, 66.39220D0, 52.84356D0, 44.76743D0,
& 39.13180D0, 25.41137D0, 15.96984D0, 11.95815D0, 9.64523D0,
& 8.11468D0, 6.18265D0, 4.55389D0, 3.13269D0, 2.35270D0,
& 1.51231D0, 1.06542D0, 0.78862D0, 0.56381D0, 0.41396D0,
& 0.30893D0, 0.23257D0, 0.17592D0, 0.13335D0, 0.10111D0,
& 0.07645D0, 0.05760D0, 0.04319D0, 0.03217D0, 0.02383D0,
& 0.01753D0, 0.01273D0, 0.00915D0, 0.00656D0, 0.00461D0,
& 0.00319D0, 0.00219D0, 0.00146D0, 0.00062D0, 0.00024D0,
& 0.00008D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,31),I=1,49)/
& 508.69336D0,350.46606D0,241.29128D0,193.85184D0,165.89978D0,
& 146.97998D0,100.64462D0, 68.44891D0, 54.32217D0, 45.92301D0,
& 40.07352D0, 25.88124D0, 16.17098D0, 12.06571D0, 9.70659D0,
& 8.14933D0, 6.18899D0, 4.54214D0, 3.11075D0, 2.32815D0,
& 1.48813D0, 1.04340D0, 0.76902D0, 0.54710D0, 0.39988D0,
& 0.29718D0, 0.22284D0, 0.16794D0, 0.12688D0, 0.09590D0,
& 0.07230D0, 0.05433D0, 0.04063D0, 0.03020D0, 0.02232D0,
& 0.01639D0, 0.01188D0, 0.00852D0, 0.00610D0, 0.00428D0,
& 0.00296D0, 0.00203D0, 0.00136D0, 0.00057D0, 0.00022D0,
& 0.00007D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,32),I=1,49)/
& 535.18030D0,367.11212D0,251.65173D0,201.65910D0,172.26764D0,
& 152.40591D0,103.89980D0, 70.34598D0, 55.67789D0, 46.97741D0,
& 40.92907D0, 26.30087D0, 16.34517D0, 12.15570D0, 9.75539D0,
& 8.17448D0, 6.18955D0, 4.52735D0, 3.08788D0, 2.30359D0,
& 1.46475D0, 1.02248D0, 0.75063D0, 0.53161D0, 0.38695D0,
& 0.28648D0, 0.21405D0, 0.16077D0, 0.12112D0, 0.09128D0,
& 0.06863D0, 0.05145D0, 0.03839D0, 0.02847D0, 0.02101D0,
& 0.01540D0, 0.01114D0, 0.00798D0, 0.00571D0, 0.00400D0,
& 0.00276D0, 0.00189D0, 0.00126D0, 0.00054D0, 0.00020D0,
& 0.00007D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,33),I=1,49)/
& 563.08673D0,384.57391D0,262.47256D0,209.79239D0,178.88937D0,
& 158.04028D0,107.26506D0, 72.29848D0, 57.06943D0, 48.05758D0,
& 41.80413D0, 26.72791D0, 16.52149D0, 12.24650D0, 9.80451D0,
& 8.19975D0, 6.19012D0, 4.51259D0, 3.06514D0, 2.27926D0,
& 1.44171D0, 1.00196D0, 0.73265D0, 0.51654D0, 0.37443D0,
& 0.27615D0, 0.20559D0, 0.15389D0, 0.11561D0, 0.08687D0,
& 0.06514D0, 0.04872D0, 0.03627D0, 0.02685D0, 0.01977D0,
& 0.01446D0, 0.01045D0, 0.00747D0, 0.00534D0, 0.00374D0,
& 0.00258D0, 0.00176D0, 0.00118D0, 0.00050D0, 0.00019D0,
& 0.00006D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,34),I=1,49)/
& 590.49207D0,401.61096D0,272.95639D0,217.63766D0,185.25558D0,
& 163.44283D0,110.46277D0, 74.13376D0, 58.36747D0, 49.05885D0,
& 42.61046D0, 27.11206D0, 16.67322D0, 12.31989D0, 9.84041D0,
& 8.21457D0, 6.18338D0, 4.49312D0, 3.03982D0, 2.25340D0,
& 1.41818D0, 0.98144D0, 0.71494D0, 0.50189D0, 0.36238D0,
& 0.26631D0, 0.19763D0, 0.14748D0, 0.11046D0, 0.08279D0,
& 0.06193D0, 0.04622D0, 0.03434D0, 0.02537D0, 0.01865D0,
& 0.01362D0, 0.00983D0, 0.00702D0, 0.00501D0, 0.00351D0,
& 0.00242D0, 0.00165D0, 0.00110D0, 0.00046D0, 0.00018D0,
& 0.00006D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,35),I=1,49)/
& 617.67798D0,418.44214D0,283.27148D0,225.33791D0,191.49365D0,
& 168.72942D0,113.57884D0, 75.91459D0, 59.62379D0, 50.02613D0,
& 43.38823D0, 27.48080D0, 16.81807D0, 12.38969D0, 9.87443D0,
& 8.22855D0, 6.17694D0, 4.47470D0, 3.01600D0, 2.22915D0,
& 1.39622D0, 0.96237D0, 0.69854D0, 0.48839D0, 0.35132D0,
& 0.25731D0, 0.19037D0, 0.14164D0, 0.10579D0, 0.07911D0,
& 0.05904D0, 0.04396D0, 0.03261D0, 0.02405D0, 0.01765D0,
& 0.01287D0, 0.00928D0, 0.00662D0, 0.00472D0, 0.00330D0,
& 0.00227D0, 0.00155D0, 0.00103D0, 0.00044D0, 0.00017D0,
& 0.00006D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,36),I=1,49)/
& 643.85529D0,434.56937D0,293.10349D0,232.65437D0,197.40677D0,
& 173.73129D0,116.50865D0, 77.57690D0, 60.79072D0, 50.92106D0,
& 44.10533D0, 27.81589D0, 16.94600D0, 12.44906D0, 9.90141D0,
& 8.23759D0, 6.16791D0, 4.45540D0, 2.99242D0, 2.20560D0,
& 1.37532D0, 0.94442D0, 0.68324D0, 0.47589D0, 0.34114D0,
& 0.24908D0, 0.18375D0, 0.13636D0, 0.10159D0, 0.07580D0,
& 0.05645D0, 0.04195D0, 0.03106D0, 0.02287D0, 0.01676D0,
& 0.01221D0, 0.00879D0, 0.00626D0, 0.00446D0, 0.00311D0,
& 0.00214D0, 0.00146D0, 0.00097D0, 0.00041D0, 0.00016D0,
& 0.00005D0, 0.00001D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,37),I=1,49)/
& 670.62598D0,450.98129D0,303.05762D0,240.03790D0,203.35986D0,
& 178.75746D0,119.43383D0, 79.22430D0, 61.94125D0, 51.79964D0,
& 44.80675D0, 28.13850D0, 17.06516D0, 12.50182D0, 9.92310D0,
& 8.24227D0, 6.15572D0, 4.43398D0, 2.96756D0, 2.18122D0,
& 1.35409D0, 0.92638D0, 0.66799D0, 0.46354D0, 0.33115D0,
& 0.24105D0, 0.17731D0, 0.13125D0, 0.09756D0, 0.07262D0,
& 0.05397D0, 0.04005D0, 0.02960D0, 0.02176D0, 0.01592D0,
& 0.01159D0, 0.00833D0, 0.00593D0, 0.00422D0, 0.00294D0,
& 0.00202D0, 0.00138D0, 0.00092D0, 0.00039D0, 0.00015D0,
& 0.00005D0, 0.00001D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,3,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 1),I=1,49)/
& 0.86800D0, 0.76598D0, 0.67520D0, 0.62675D0, 0.59428D0,
& 0.57013D0, 0.50046D0, 0.43816D0, 0.40484D0, 0.38253D0,
& 0.36613D0, 0.31874D0, 0.27654D0, 0.25397D0, 0.23882D0,
& 0.22750D0, 0.21099D0, 0.19387D0, 0.17401D0, 0.15872D0,
& 0.13363D0, 0.11222D0, 0.09356D0, 0.07392D0, 0.05824D0,
& 0.04613D0, 0.03700D0, 0.03017D0, 0.02498D0, 0.02125D0,
& 0.01786D0, 0.01513D0, 0.01268D0, 0.01040D0, 0.00852D0,
& 0.00674D0, 0.00520D0, 0.00388D0, 0.00299D0, 0.00201D0,
& 0.00134D0, 0.00094D0, 0.00051D0, 0.00021D0, 0.00007D0,
& 0.00003D0, -0.00001D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 2),I=1,49)/
& 0.88205D0, 0.77983D0, 0.68869D0, 0.63997D0, 0.60729D0,
& 0.58296D0, 0.51264D0, 0.44961D0, 0.41580D0, 0.39312D0,
& 0.37640D0, 0.32792D0, 0.28442D0, 0.26097D0, 0.24515D0,
& 0.23328D0, 0.21590D0, 0.19782D0, 0.17683D0, 0.16077D0,
& 0.13467D0, 0.11273D0, 0.09381D0, 0.07406D0, 0.05839D0,
& 0.04632D0, 0.03722D0, 0.03037D0, 0.02516D0, 0.02135D0,
& 0.01792D0, 0.01513D0, 0.01262D0, 0.01032D0, 0.00842D0,
& 0.00664D0, 0.00510D0, 0.00380D0, 0.00291D0, 0.00197D0,
& 0.00130D0, 0.00091D0, 0.00051D0, 0.00020D0, 0.00007D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 3),I=1,49)/
& 0.91886D0, 0.81356D0, 0.71953D0, 0.66920D0, 0.63541D0,
& 0.61023D0, 0.53738D0, 0.47189D0, 0.43666D0, 0.41295D0,
& 0.39539D0, 0.34428D0, 0.29794D0, 0.27277D0, 0.25567D0,
& 0.24279D0, 0.22388D0, 0.20416D0, 0.18131D0, 0.16398D0,
& 0.13630D0, 0.11352D0, 0.09418D0, 0.07425D0, 0.05857D0,
& 0.04653D0, 0.03744D0, 0.03056D0, 0.02532D0, 0.02139D0,
& 0.01791D0, 0.01504D0, 0.01246D0, 0.01016D0, 0.00822D0,
& 0.00648D0, 0.00493D0, 0.00368D0, 0.00278D0, 0.00188D0,
& 0.00124D0, 0.00086D0, 0.00051D0, 0.00020D0, 0.00006D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 4),I=1,49)/
& 0.95997D0, 0.84981D0, 0.75147D0, 0.69884D0, 0.66351D0,
& 0.63718D0, 0.56100D0, 0.49247D0, 0.45556D0, 0.43069D0,
& 0.41221D0, 0.35830D0, 0.30918D0, 0.28239D0, 0.26415D0,
& 0.25039D0, 0.23017D0, 0.20908D0, 0.18474D0, 0.16642D0,
& 0.13752D0, 0.11409D0, 0.09444D0, 0.07437D0, 0.05864D0,
& 0.04662D0, 0.03752D0, 0.03063D0, 0.02535D0, 0.02135D0,
& 0.01783D0, 0.01492D0, 0.01232D0, 0.01000D0, 0.00803D0,
& 0.00631D0, 0.00479D0, 0.00358D0, 0.00268D0, 0.00180D0,
& 0.00120D0, 0.00084D0, 0.00049D0, 0.00020D0, 0.00006D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 5),I=1,49)/
& 1.02269D0, 0.90363D0, 0.79759D0, 0.74093D0, 0.70294D0,
& 0.67465D0, 0.59289D0, 0.51944D0, 0.47990D0, 0.45324D0,
& 0.43337D0, 0.37541D0, 0.32249D0, 0.29359D0, 0.27391D0,
& 0.25907D0, 0.23726D0, 0.21456D0, 0.18851D0, 0.16906D0,
& 0.13883D0, 0.11469D0, 0.09468D0, 0.07442D0, 0.05863D0,
& 0.04662D0, 0.03753D0, 0.03061D0, 0.02531D0, 0.02124D0,
& 0.01767D0, 0.01472D0, 0.01211D0, 0.00977D0, 0.00782D0,
& 0.00614D0, 0.00464D0, 0.00341D0, 0.00257D0, 0.00173D0,
& 0.00113D0, 0.00080D0, 0.00046D0, 0.00018D0, 0.00005D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 6),I=1,49)/
& 1.08763D0, 0.95875D0, 0.84428D0, 0.78326D0, 0.74239D0,
& 0.71199D0, 0.62427D0, 0.54563D0, 0.50333D0, 0.47482D0,
& 0.45353D0, 0.39146D0, 0.33478D0, 0.30385D0, 0.28279D0,
& 0.26692D0, 0.24362D0, 0.21944D0, 0.19183D0, 0.17138D0,
& 0.13995D0, 0.11519D0, 0.09486D0, 0.07444D0, 0.05860D0,
& 0.04659D0, 0.03750D0, 0.03056D0, 0.02523D0, 0.02111D0,
& 0.01751D0, 0.01454D0, 0.01191D0, 0.00957D0, 0.00764D0,
& 0.00598D0, 0.00450D0, 0.00328D0, 0.00247D0, 0.00167D0,
& 0.00107D0, 0.00076D0, 0.00044D0, 0.00016D0, 0.00005D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 7),I=1,49)/
& 1.16556D0, 1.02401D0, 0.89875D0, 0.83219D0, 0.78769D0,
& 0.75465D0, 0.65951D0, 0.57450D0, 0.52889D0, 0.49818D0,
& 0.47520D0, 0.40838D0, 0.34748D0, 0.31432D0, 0.29177D0,
& 0.27481D0, 0.24995D0, 0.22424D0, 0.19505D0, 0.17361D0,
& 0.14101D0, 0.11563D0, 0.09500D0, 0.07441D0, 0.05852D0,
& 0.04652D0, 0.03740D0, 0.03045D0, 0.02509D0, 0.02093D0,
& 0.01733D0, 0.01434D0, 0.01170D0, 0.00939D0, 0.00744D0,
& 0.00582D0, 0.00436D0, 0.00318D0, 0.00238D0, 0.00161D0,
& 0.00104D0, 0.00073D0, 0.00042D0, 0.00014D0, 0.00005D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 8),I=1,49)/
& 1.26306D0, 1.10484D0, 0.96554D0, 0.89180D0, 0.84263D0,
& 0.80618D0, 0.70157D0, 0.60853D0, 0.55877D0, 0.52532D0,
& 0.50028D0, 0.42768D0, 0.36175D0, 0.32597D0, 0.30171D0,
& 0.28349D0, 0.25687D0, 0.22944D0, 0.19851D0, 0.17597D0,
& 0.14210D0, 0.11607D0, 0.09509D0, 0.07433D0, 0.05839D0,
& 0.04638D0, 0.03725D0, 0.03028D0, 0.02490D0, 0.02071D0,
& 0.01710D0, 0.01411D0, 0.01147D0, 0.00917D0, 0.00724D0,
& 0.00565D0, 0.00421D0, 0.00306D0, 0.00228D0, 0.00155D0,
& 0.00101D0, 0.00070D0, 0.00040D0, 0.00013D0, 0.00005D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I, 9),I=1,49)/
& 1.36120D0, 1.18550D0, 1.03156D0, 0.95040D0, 0.89642D0,
& 0.85647D0, 0.74219D0, 0.64102D0, 0.58710D0, 0.55092D0,
& 0.52385D0, 0.44558D0, 0.37481D0, 0.33656D0, 0.31068D0,
& 0.29130D0, 0.26304D0, 0.23405D0, 0.20153D0, 0.17803D0,
& 0.14303D0, 0.11643D0, 0.09515D0, 0.07423D0, 0.05825D0,
& 0.04622D0, 0.03709D0, 0.03010D0, 0.02471D0, 0.02052D0,
& 0.01688D0, 0.01389D0, 0.01125D0, 0.00895D0, 0.00706D0,
& 0.00550D0, 0.00409D0, 0.00295D0, 0.00220D0, 0.00150D0,
& 0.00098D0, 0.00067D0, 0.00039D0, 0.00013D0, 0.00005D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,10),I=1,49)/
& 1.47041D0, 1.27446D0, 1.10370D0, 1.01406D0, 0.95460D0,
& 0.91068D0, 0.78549D0, 0.67526D0, 0.61674D0, 0.57757D0,
& 0.54827D0, 0.46388D0, 0.38797D0, 0.34713D0, 0.31960D0,
& 0.29901D0, 0.26910D0, 0.23853D0, 0.20444D0, 0.17998D0,
& 0.14388D0, 0.11673D0, 0.09517D0, 0.07410D0, 0.05807D0,
& 0.04602D0, 0.03690D0, 0.02989D0, 0.02450D0, 0.02029D0,
& 0.01665D0, 0.01365D0, 0.01102D0, 0.00875D0, 0.00689D0,
& 0.00534D0, 0.00396D0, 0.00285D0, 0.00213D0, 0.00144D0,
& 0.00094D0, 0.00064D0, 0.00038D0, 0.00013D0, 0.00004D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,11),I=1,49)/
& 1.56638D0, 1.35212D0, 1.16625D0, 1.06903D0, 1.00469D0,
& 0.95725D0, 0.82240D0, 0.70420D0, 0.64167D0, 0.59990D0,
& 0.56868D0, 0.47904D0, 0.39878D0, 0.35576D0, 0.32683D0,
& 0.30525D0, 0.27397D0, 0.24210D0, 0.20674D0, 0.18151D0,
& 0.14453D0, 0.11694D0, 0.09517D0, 0.07398D0, 0.05791D0,
& 0.04585D0, 0.03673D0, 0.02971D0, 0.02433D0, 0.02010D0,
& 0.01646D0, 0.01346D0, 0.01083D0, 0.00860D0, 0.00675D0,
& 0.00520D0, 0.00385D0, 0.00277D0, 0.00207D0, 0.00139D0,
& 0.00090D0, 0.00062D0, 0.00037D0, 0.00013D0, 0.00004D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,12),I=1,49)/
& 1.80214D0, 1.54109D0, 1.31694D0, 1.20067D0, 1.12412D0,
& 1.06789D0, 0.90916D0, 0.77146D0, 0.69919D0, 0.65116D0,
& 0.61534D0, 0.51323D0, 0.42280D0, 0.37478D0, 0.34269D0,
& 0.31886D0, 0.28449D0, 0.24976D0, 0.21162D0, 0.18471D0,
& 0.14585D0, 0.11732D0, 0.09509D0, 0.07364D0, 0.05748D0,
& 0.04542D0, 0.03629D0, 0.02928D0, 0.02389D0, 0.01964D0,
& 0.01603D0, 0.01303D0, 0.01043D0, 0.00824D0, 0.00644D0,
& 0.00493D0, 0.00365D0, 0.00261D0, 0.00193D0, 0.00129D0,
& 0.00082D0, 0.00058D0, 0.00033D0, 0.00012D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,13),I=1,49)/
& 2.04055D0, 1.73004D0, 1.46588D0, 1.32988D0, 1.24076D0,
& 1.17553D0, 0.99250D0, 0.83521D0, 0.75328D0, 0.69907D0,
& 0.65875D0, 0.54456D0, 0.44445D0, 0.39176D0, 0.35673D0,
& 0.33084D0, 0.29368D0, 0.25636D0, 0.21574D0, 0.18736D0,
& 0.14688D0, 0.11755D0, 0.09493D0, 0.07328D0, 0.05705D0,
& 0.04498D0, 0.03587D0, 0.02887D0, 0.02347D0, 0.01921D0,
& 0.01564D0, 0.01265D0, 0.01010D0, 0.00793D0, 0.00617D0,
& 0.00472D0, 0.00348D0, 0.00248D0, 0.00181D0, 0.00123D0,
& 0.00077D0, 0.00054D0, 0.00031D0, 0.00011D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,14),I=1,49)/
& 2.34878D0, 1.97162D0, 1.65417D0, 1.49212D0, 1.38650D0,
& 1.30951D0, 1.09500D0, 0.91263D0, 0.81846D0, 0.75649D0,
& 0.71054D0, 0.58140D0, 0.46952D0, 0.41122D0, 0.37271D0,
& 0.34438D0, 0.30396D0, 0.26367D0, 0.22023D0, 0.19019D0,
& 0.14790D0, 0.11770D0, 0.09464D0, 0.07279D0, 0.05650D0,
& 0.04444D0, 0.03534D0, 0.02838D0, 0.02299D0, 0.01873D0,
& 0.01518D0, 0.01221D0, 0.00971D0, 0.00758D0, 0.00587D0,
& 0.00448D0, 0.00329D0, 0.00233D0, 0.00171D0, 0.00117D0,
& 0.00073D0, 0.00051D0, 0.00028D0, 0.00010D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,15),I=1,49)/
& 2.72076D0, 2.25974D0, 1.87603D0, 1.68193D0, 1.55614D0,
& 1.46482D0, 1.21228D0, 1.00004D0, 0.89145D0, 0.82040D0,
& 0.76790D0, 0.62156D0, 0.49638D0, 0.43184D0, 0.38951D0,
& 0.35852D0, 0.31456D0, 0.27109D0, 0.22467D0, 0.19292D0,
& 0.14878D0, 0.11770D0, 0.09423D0, 0.07216D0, 0.05583D0,
& 0.04380D0, 0.03471D0, 0.02777D0, 0.02242D0, 0.01821D0,
& 0.01468D0, 0.01176D0, 0.00931D0, 0.00721D0, 0.00560D0,
& 0.00425D0, 0.00310D0, 0.00215D0, 0.00160D0, 0.00107D0,
& 0.00067D0, 0.00046D0, 0.00026D0, 0.00009D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,16),I=1,49)/
& 3.10372D0, 2.55317D0, 2.09952D0, 1.87189D0, 1.72513D0,
& 1.61899D0, 1.32738D0, 1.08482D0, 0.96174D0, 0.88163D0,
& 0.82262D0, 0.65935D0, 0.52128D0, 0.45078D0, 0.40481D0,
& 0.37132D0, 0.32407D0, 0.27766D0, 0.22852D0, 0.19522D0,
& 0.14943D0, 0.11759D0, 0.09376D0, 0.07153D0, 0.05518D0,
& 0.04316D0, 0.03411D0, 0.02721D0, 0.02189D0, 0.01771D0,
& 0.01421D0, 0.01135D0, 0.00894D0, 0.00691D0, 0.00532D0,
& 0.00403D0, 0.00292D0, 0.00202D0, 0.00150D0, 0.00098D0,
& 0.00063D0, 0.00043D0, 0.00024D0, 0.00009D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,17),I=1,49)/
& 3.53791D0, 2.88253D0, 2.34786D0, 2.08172D0, 1.91099D0,
& 1.78798D0, 1.45224D0, 1.17581D0, 1.03669D0, 0.94660D0,
& 0.88048D0, 0.69881D0, 0.54694D0, 0.47011D0, 0.42034D0,
& 0.38424D0, 0.33357D0, 0.28414D0, 0.23224D0, 0.19739D0,
& 0.14997D0, 0.11738D0, 0.09322D0, 0.07083D0, 0.05448D0,
& 0.04248D0, 0.03349D0, 0.02663D0, 0.02135D0, 0.01720D0,
& 0.01373D0, 0.01094D0, 0.00857D0, 0.00662D0, 0.00504D0,
& 0.00382D0, 0.00275D0, 0.00191D0, 0.00140D0, 0.00091D0,
& 0.00060D0, 0.00040D0, 0.00021D0, 0.00008D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,18),I=1,49)/
& 3.93600D0, 3.18179D0, 2.57144D0, 2.26962D0, 2.07679D0,
& 1.93828D0, 1.56224D0, 1.25519D0, 1.10169D0, 1.00271D0,
& 0.93026D0, 0.73238D0, 0.56848D0, 0.48622D0, 0.43319D0,
& 0.39487D0, 0.34131D0, 0.28936D0, 0.23517D0, 0.19905D0,
& 0.15030D0, 0.11713D0, 0.09270D0, 0.07021D0, 0.05385D0,
& 0.04190D0, 0.03295D0, 0.02612D0, 0.02087D0, 0.01677D0,
& 0.01334D0, 0.01060D0, 0.00827D0, 0.00637D0, 0.00486D0,
& 0.00366D0, 0.00263D0, 0.00181D0, 0.00134D0, 0.00088D0,
& 0.00056D0, 0.00038D0, 0.00020D0, 0.00007D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,19),I=1,49)/
& 4.46512D0, 3.57604D0, 2.86339D0, 2.51369D0, 2.29136D0,
& 2.13222D0, 1.70289D0, 1.35573D0, 1.18356D0, 1.07308D0,
& 0.99248D0, 0.77387D0, 0.59477D0, 0.50571D0, 0.44864D0,
& 0.40759D0, 0.35048D0, 0.29545D0, 0.23852D0, 0.20087D0,
& 0.15057D0, 0.11671D0, 0.09200D0, 0.06939D0, 0.05304D0,
& 0.04116D0, 0.03225D0, 0.02548D0, 0.02030D0, 0.01627D0,
& 0.01289D0, 0.01018D0, 0.00793D0, 0.00608D0, 0.00462D0,
& 0.00346D0, 0.00247D0, 0.00170D0, 0.00124D0, 0.00082D0,
& 0.00052D0, 0.00036D0, 0.00020D0, 0.00007D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,20),I=1,49)/
& 4.98110D0, 3.95717D0, 3.14315D0, 2.74636D0, 2.49515D0,
& 2.31589D0, 1.83490D0, 1.44924D0, 1.25928D0, 1.13790D0,
& 1.04961D0, 0.81156D0, 0.61839D0, 0.52309D0, 0.46234D0,
& 0.41880D0, 0.35851D0, 0.30072D0, 0.24136D0, 0.20237D0,
& 0.15073D0, 0.11629D0, 0.09134D0, 0.06865D0, 0.05232D0,
& 0.04048D0, 0.03163D0, 0.02492D0, 0.01980D0, 0.01582D0,
& 0.01251D0, 0.00983D0, 0.00765D0, 0.00583D0, 0.00441D0,
& 0.00330D0, 0.00234D0, 0.00161D0, 0.00116D0, 0.00076D0,
& 0.00049D0, 0.00034D0, 0.00019D0, 0.00006D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,21),I=1,49)/
& 5.48855D0, 4.32906D0, 3.41400D0, 2.97058D0, 2.69088D0,
& 2.49185D0, 1.96033D0, 1.53734D0, 1.33025D0, 1.19843D0,
& 1.10279D0, 0.84628D0, 0.63987D0, 0.53877D0, 0.47461D0,
& 0.42879D0, 0.36557D0, 0.30530D0, 0.24373D0, 0.20356D0,
& 0.15074D0, 0.11580D0, 0.09065D0, 0.06792D0, 0.05161D0,
& 0.03984D0, 0.03104D0, 0.02440D0, 0.01932D0, 0.01538D0,
& 0.01214D0, 0.00950D0, 0.00738D0, 0.00561D0, 0.00423D0,
& 0.00315D0, 0.00224D0, 0.00152D0, 0.00110D0, 0.00072D0,
& 0.00045D0, 0.00032D0, 0.00018D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,22),I=1,49)/
& 6.18910D0, 4.83835D0, 3.78189D0, 3.27368D0, 2.95458D0,
& 2.72828D0, 2.12748D0, 1.65375D0, 1.42355D0, 1.27771D0,
& 1.17223D0, 0.89116D0, 0.66734D0, 0.55867D0, 0.49010D0,
& 0.44134D0, 0.37438D0, 0.31092D0, 0.24658D0, 0.20493D0,
& 0.15066D0, 0.11512D0, 0.08974D0, 0.06696D0, 0.05069D0,
& 0.03901D0, 0.03030D0, 0.02374D0, 0.01874D0, 0.01485D0,
& 0.01168D0, 0.00911D0, 0.00704D0, 0.00533D0, 0.00400D0,
& 0.00297D0, 0.00211D0, 0.00142D0, 0.00104D0, 0.00068D0,
& 0.00042D0, 0.00029D0, 0.00017D0, 0.00005D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,23),I=1,49)/
& 6.90776D0, 5.35634D0, 4.15288D0, 3.57780D0, 3.21822D0,
& 2.96398D0, 2.29266D0, 1.76775D0, 1.51442D0, 1.35462D0,
& 1.23937D0, 0.93411D0, 0.69332D0, 0.57734D0, 0.50454D0,
& 0.45297D0, 0.38246D0, 0.31600D0, 0.24910D0, 0.20608D0,
& 0.15048D0, 0.11442D0, 0.08886D0, 0.06603D0, 0.04982D0,
& 0.03823D0, 0.02961D0, 0.02314D0, 0.01820D0, 0.01437D0,
& 0.01125D0, 0.00875D0, 0.00671D0, 0.00507D0, 0.00380D0,
& 0.00282D0, 0.00198D0, 0.00134D0, 0.00099D0, 0.00065D0,
& 0.00039D0, 0.00026D0, 0.00015D0, 0.00005D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,24),I=1,49)/
& 7.62426D0, 5.86871D0, 4.51692D0, 3.87481D0, 3.47482D0,
& 3.19280D0, 2.45168D0, 1.87657D0, 1.60070D0, 1.42736D0,
& 1.30266D0, 0.97414D0, 0.71722D0, 0.59437D0, 0.51760D0,
& 0.46341D0, 0.38962D0, 0.32042D0, 0.25117D0, 0.20694D0,
& 0.15017D0, 0.11367D0, 0.08795D0, 0.06511D0, 0.04897D0,
& 0.03748D0, 0.02894D0, 0.02253D0, 0.01769D0, 0.01392D0,
& 0.01087D0, 0.00842D0, 0.00645D0, 0.00484D0, 0.00362D0,
& 0.00267D0, 0.00187D0, 0.00128D0, 0.00093D0, 0.00060D0,
& 0.00037D0, 0.00024D0, 0.00014D0, 0.00004D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,25),I=1,49)/
& 8.39819D0, 6.41814D0, 4.90446D0, 4.18965D0, 3.74601D0,
& 3.43405D0, 2.61811D0, 1.98959D0, 1.68991D0, 1.50231D0,
& 1.36770D0, 1.01493D0, 0.74134D0, 0.61144D0, 0.53063D0,
& 0.47380D0, 0.39668D0, 0.32474D0, 0.25316D0, 0.20772D0,
& 0.14981D0, 0.11289D0, 0.08703D0, 0.06420D0, 0.04813D0,
& 0.03673D0, 0.02828D0, 0.02194D0, 0.01719D0, 0.01349D0,
& 0.01049D0, 0.00810D0, 0.00620D0, 0.00463D0, 0.00344D0,
& 0.00252D0, 0.00177D0, 0.00122D0, 0.00086D0, 0.00056D0,
& 0.00034D0, 0.00023D0, 0.00012D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,26),I=1,49)/
& 9.19912D0, 6.98269D0, 5.29980D0, 4.50945D0, 4.02062D0,
& 3.67776D0, 2.78497D0, 2.10203D0, 1.77824D0, 1.57626D0,
& 1.43169D0, 1.05466D0, 0.76454D0, 0.62772D0, 0.54298D0,
& 0.48357D0, 0.40325D0, 0.32867D0, 0.25488D0, 0.20830D0,
& 0.14936D0, 0.11205D0, 0.08608D0, 0.06328D0, 0.04729D0,
& 0.03598D0, 0.02762D0, 0.02140D0, 0.01669D0, 0.01307D0,
& 0.01014D0, 0.00780D0, 0.00595D0, 0.00443D0, 0.00330D0,
& 0.00240D0, 0.00168D0, 0.00114D0, 0.00081D0, 0.00053D0,
& 0.00032D0, 0.00022D0, 0.00012D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,27),I=1,49)/
& 10.00621D0, 7.54783D0, 5.69293D0, 4.82623D0, 4.29189D0,
& 3.91798D0, 2.94832D0, 2.21133D0, 1.86373D0, 1.64761D0,
& 1.49327D0, 1.09257D0, 0.78647D0, 0.64301D0, 0.55451D0,
& 0.49265D0, 0.40930D0, 0.33223D0, 0.25638D0, 0.20876D0,
& 0.14886D0, 0.11122D0, 0.08517D0, 0.06240D0, 0.04650D0,
& 0.03528D0, 0.02702D0, 0.02089D0, 0.01623D0, 0.01267D0,
& 0.00980D0, 0.00752D0, 0.00573D0, 0.00425D0, 0.00316D0,
& 0.00230D0, 0.00159D0, 0.00107D0, 0.00077D0, 0.00050D0,
& 0.00030D0, 0.00020D0, 0.00011D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,28),I=1,49)/
& 10.80590D0, 8.10435D0, 6.07766D0, 5.13510D0, 4.55568D0,
& 4.15111D0, 3.10583D0, 2.31601D0, 1.94527D0, 1.71546D0,
& 1.55167D0, 1.12822D0, 0.80689D0, 0.65715D0, 0.56511D0,
& 0.50095D0, 0.41476D0, 0.33539D0, 0.25764D0, 0.20907D0,
& 0.14833D0, 0.11039D0, 0.08428D0, 0.06155D0, 0.04576D0,
& 0.03462D0, 0.02647D0, 0.02040D0, 0.01582D0, 0.01230D0,
& 0.00949D0, 0.00726D0, 0.00551D0, 0.00409D0, 0.00302D0,
& 0.00221D0, 0.00152D0, 0.00102D0, 0.00073D0, 0.00048D0,
& 0.00029D0, 0.00019D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,29),I=1,49)/
& 11.65207D0, 8.68978D0, 6.48001D0, 5.45700D0, 4.82993D0,
& 4.39300D0, 3.26826D0, 2.42329D0, 2.02852D0, 1.78454D0,
& 1.61099D0, 1.16415D0, 0.82729D0, 0.67117D0, 0.57557D0,
& 0.50910D0, 0.42008D0, 0.33842D0, 0.25880D0, 0.20930D0,
& 0.14773D0, 0.10953D0, 0.08337D0, 0.06069D0, 0.04500D0,
& 0.03397D0, 0.02591D0, 0.01991D0, 0.01541D0, 0.01194D0,
& 0.00919D0, 0.00702D0, 0.00530D0, 0.00393D0, 0.00290D0,
& 0.00211D0, 0.00145D0, 0.00096D0, 0.00070D0, 0.00045D0,
& 0.00028D0, 0.00018D0, 0.00010D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,30),I=1,49)/
& 12.52131D0, 9.28774D0, 6.88859D0, 5.78276D0, 5.10678D0,
& 4.63673D0, 3.43094D0, 2.53005D0, 2.11104D0, 1.85281D0,
& 1.66948D0, 1.19929D0, 0.84705D0, 0.68466D0, 0.58556D0,
& 0.51685D0, 0.42507D0, 0.34121D0, 0.25979D0, 0.20942D0,
& 0.14709D0, 0.10866D0, 0.08245D0, 0.05983D0, 0.04425D0,
& 0.03334D0, 0.02536D0, 0.01943D0, 0.01501D0, 0.01160D0,
& 0.00891D0, 0.00678D0, 0.00511D0, 0.00378D0, 0.00279D0,
& 0.00202D0, 0.00138D0, 0.00091D0, 0.00067D0, 0.00043D0,
& 0.00026D0, 0.00018D0, 0.00010D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,31),I=1,49)/
& 13.38978D0, 9.88200D0, 7.29246D0, 6.10376D0, 5.37897D0,
& 4.87592D0, 3.58970D0, 2.63365D0, 2.19084D0, 1.91866D0,
& 1.72578D0, 1.23288D0, 0.86578D0, 0.69738D0, 0.59494D0,
& 0.52409D0, 0.42970D0, 0.34375D0, 0.26065D0, 0.20947D0,
& 0.14644D0, 0.10781D0, 0.08158D0, 0.05902D0, 0.04354D0,
& 0.03274D0, 0.02484D0, 0.01899D0, 0.01463D0, 0.01128D0,
& 0.00865D0, 0.00657D0, 0.00493D0, 0.00364D0, 0.00268D0,
& 0.00194D0, 0.00132D0, 0.00087D0, 0.00064D0, 0.00041D0,
& 0.00025D0, 0.00017D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,32),I=1,49)/
& 14.23688D0, 10.45864D0, 7.68231D0, 6.41264D0, 5.64030D0,
& 5.10517D0, 3.74102D0, 2.73180D0, 2.26617D0, 1.98065D0,
& 1.77865D0, 1.26417D0, 0.88305D0, 0.70902D0, 0.60346D0,
& 0.53062D0, 0.43382D0, 0.34595D0, 0.26134D0, 0.20941D0,
& 0.14577D0, 0.10696D0, 0.08072D0, 0.05825D0, 0.04287D0,
& 0.03215D0, 0.02436D0, 0.01857D0, 0.01428D0, 0.01098D0,
& 0.00840D0, 0.00638D0, 0.00476D0, 0.00351D0, 0.00258D0,
& 0.00187D0, 0.00127D0, 0.00083D0, 0.00061D0, 0.00039D0,
& 0.00024D0, 0.00016D0, 0.00009D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,33),I=1,49)/
& 15.13941D0, 11.07021D0, 8.09390D0, 6.73786D0, 5.91493D0,
& 5.34574D0, 3.89907D0, 2.83385D0, 2.34427D0, 2.04479D0,
& 1.83327D0, 1.29634D0, 0.90070D0, 0.72088D0, 0.61213D0,
& 0.53725D0, 0.43798D0, 0.34817D0, 0.26202D0, 0.20935D0,
& 0.14510D0, 0.10612D0, 0.07988D0, 0.05749D0, 0.04221D0,
& 0.03158D0, 0.02388D0, 0.01816D0, 0.01393D0, 0.01069D0,
& 0.00816D0, 0.00620D0, 0.00459D0, 0.00338D0, 0.00248D0,
& 0.00179D0, 0.00121D0, 0.00080D0, 0.00058D0, 0.00037D0,
& 0.00022D0, 0.00014D0, 0.00008D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,34),I=1,49)/
& 16.04276D0, 11.67919D0, 8.50158D0, 7.05899D0, 6.18548D0,
& 5.58230D0, 4.05359D0, 2.93300D0, 2.41985D0, 2.10667D0,
& 1.88583D0, 1.32700D0, 0.91732D0, 0.73194D0, 0.62013D0,
& 0.54331D0, 0.44171D0, 0.35007D0, 0.26248D0, 0.20913D0,
& 0.14434D0, 0.10523D0, 0.07901D0, 0.05671D0, 0.04155D0,
& 0.03102D0, 0.02340D0, 0.01777D0, 0.01360D0, 0.01042D0,
& 0.00793D0, 0.00600D0, 0.00446D0, 0.00326D0, 0.00238D0,
& 0.00173D0, 0.00118D0, 0.00076D0, 0.00055D0, 0.00036D0,
& 0.00022D0, 0.00014D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,35),I=1,49)/
& 16.94849D0, 12.28721D0, 8.90688D0, 7.37746D0, 6.45332D0,
& 5.81617D0, 4.20570D0, 3.03017D0, 2.49373D0, 2.16705D0,
& 1.93704D0, 1.35674D0, 0.93336D0, 0.74257D0, 0.62781D0,
& 0.54911D0, 0.44527D0, 0.35187D0, 0.26291D0, 0.20892D0,
& 0.14363D0, 0.10440D0, 0.07819D0, 0.05599D0, 0.04092D0,
& 0.03050D0, 0.02296D0, 0.01740D0, 0.01329D0, 0.01017D0,
& 0.00772D0, 0.00583D0, 0.00433D0, 0.00315D0, 0.00229D0,
& 0.00167D0, 0.00114D0, 0.00073D0, 0.00053D0, 0.00035D0,
& 0.00021D0, 0.00013D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,36),I=1,49)/
& 17.83243D0, 12.87802D0, 9.29900D0, 7.68475D0, 6.71127D0,
& 6.04107D0, 4.35129D0, 3.12272D0, 2.56388D0, 2.22424D0,
& 1.98545D0, 1.38466D0, 0.94830D0, 0.75241D0, 0.63488D0,
& 0.55441D0, 0.44848D0, 0.35346D0, 0.26323D0, 0.20867D0,
& 0.14292D0, 0.10358D0, 0.07741D0, 0.05529D0, 0.04033D0,
& 0.03000D0, 0.02255D0, 0.01705D0, 0.01300D0, 0.00993D0,
& 0.00753D0, 0.00566D0, 0.00421D0, 0.00306D0, 0.00221D0,
& 0.00161D0, 0.00110D0, 0.00071D0, 0.00051D0, 0.00034D0,
& 0.00020D0, 0.00013D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,37),I=1,49)/
& 18.74867D0, 13.48785D0, 9.70200D0, 7.99976D0, 6.97522D0,
& 6.27087D0, 4.49936D0, 3.21639D0, 2.63465D0, 2.28182D0,
& 2.03408D0, 1.41252D0, 0.96307D0, 0.76207D0, 0.64176D0,
& 0.55956D0, 0.45155D0, 0.35492D0, 0.26347D0, 0.20834D0,
& 0.14216D0, 0.10274D0, 0.07660D0, 0.05459D0, 0.03974D0,
& 0.02950D0, 0.02213D0, 0.01670D0, 0.01272D0, 0.00970D0,
& 0.00733D0, 0.00550D0, 0.00408D0, 0.00297D0, 0.00214D0,
& 0.00155D0, 0.00105D0, 0.00068D0, 0.00049D0, 0.00032D0,
& 0.00018D0, 0.00012D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,4,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 1),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 2),I=1,49)/
& 0.00003D0, 0.00003D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00002D0, 0.00002D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 3),I=1,49)/
& 0.03227D0, 0.02900D0, 0.02605D0, 0.02445D0, 0.02338D0,
& 0.02257D0, 0.02019D0, 0.01798D0, 0.01674D0, 0.01586D0,
& 0.01516D0, 0.01302D0, 0.01084D0, 0.00956D0, 0.00865D0,
& 0.00795D0, 0.00692D0, 0.00587D0, 0.00477D0, 0.00405D0,
& 0.00317D0, 0.00263D0, 0.00225D0, 0.00190D0, 0.00163D0,
& 0.00139D0, 0.00119D0, 0.00101D0, 0.00085D0, 0.00072D0,
& 0.00059D0, 0.00048D0, 0.00039D0, 0.00031D0, 0.00025D0,
& 0.00019D0, 0.00015D0, 0.00011D0, 0.00008D0, 0.00006D0,
& 0.00004D0, 0.00003D0, 0.00002D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 4),I=1,49)/
& 0.08412D0, 0.07493D0, 0.06672D0, 0.06231D0, 0.05935D0,
& 0.05713D0, 0.05068D0, 0.04474D0, 0.04144D0, 0.03913D0,
& 0.03731D0, 0.03177D0, 0.02623D0, 0.02303D0, 0.02077D0,
& 0.01905D0, 0.01652D0, 0.01397D0, 0.01129D0, 0.00957D0,
& 0.00745D0, 0.00615D0, 0.00525D0, 0.00441D0, 0.00375D0,
& 0.00320D0, 0.00272D0, 0.00230D0, 0.00193D0, 0.00161D0,
& 0.00132D0, 0.00108D0, 0.00087D0, 0.00069D0, 0.00054D0,
& 0.00042D0, 0.00032D0, 0.00024D0, 0.00018D0, 0.00013D0,
& 0.00009D0, 0.00006D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 5),I=1,49)/
& 0.14877D0, 0.13082D0, 0.11499D0, 0.10659D0, 0.10097D0,
& 0.09680D0, 0.08477D0, 0.07388D0, 0.06791D0, 0.06379D0,
& 0.06056D0, 0.05091D0, 0.04152D0, 0.03619D0, 0.03249D0,
& 0.02969D0, 0.02561D0, 0.02153D0, 0.01729D0, 0.01459D0,
& 0.01127D0, 0.00925D0, 0.00785D0, 0.00655D0, 0.00553D0,
& 0.00469D0, 0.00396D0, 0.00333D0, 0.00278D0, 0.00231D0,
& 0.00189D0, 0.00153D0, 0.00123D0, 0.00097D0, 0.00076D0,
& 0.00059D0, 0.00045D0, 0.00034D0, 0.00025D0, 0.00018D0,
& 0.00012D0, 0.00009D0, 0.00006D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 6),I=1,49)/
& 0.22202D0, 0.19306D0, 0.16779D0, 0.15452D0, 0.14570D0,
& 0.13918D0, 0.12051D0, 0.10386D0, 0.09484D0, 0.08868D0,
& 0.08388D0, 0.06972D0, 0.05624D0, 0.04872D0, 0.04355D0,
& 0.03966D0, 0.03405D0, 0.02848D0, 0.02274D0, 0.01911D0,
& 0.01466D0, 0.01197D0, 0.01011D0, 0.00838D0, 0.00703D0,
& 0.00592D0, 0.00498D0, 0.00416D0, 0.00346D0, 0.00286D0,
& 0.00233D0, 0.00188D0, 0.00150D0, 0.00118D0, 0.00092D0,
& 0.00071D0, 0.00054D0, 0.00041D0, 0.00030D0, 0.00021D0,
& 0.00015D0, 0.00010D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 7),I=1,49)/
& 0.30272D0, 0.26063D0, 0.22430D0, 0.20535D0, 0.19284D0,
& 0.18362D0, 0.15743D0, 0.13433D0, 0.12195D0, 0.11355D0,
& 0.10705D0, 0.08808D0, 0.07034D0, 0.06058D0, 0.05394D0,
& 0.04898D0, 0.04185D0, 0.03485D0, 0.02767D0, 0.02316D0,
& 0.01766D0, 0.01434D0, 0.01204D0, 0.00992D0, 0.00828D0,
& 0.00693D0, 0.00580D0, 0.00482D0, 0.00399D0, 0.00328D0,
& 0.00266D0, 0.00214D0, 0.00170D0, 0.00133D0, 0.00104D0,
& 0.00080D0, 0.00060D0, 0.00045D0, 0.00033D0, 0.00024D0,
& 0.00016D0, 0.00011D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 8),I=1,49)/
& 0.40640D0, 0.34641D0, 0.29514D0, 0.26863D0, 0.25121D0,
& 0.23843D0, 0.20237D0, 0.17095D0, 0.15427D0, 0.14303D0,
& 0.13440D0, 0.10944D0, 0.08650D0, 0.07407D0, 0.06568D0,
& 0.05945D0, 0.05056D0, 0.04189D0, 0.03309D0, 0.02757D0,
& 0.02089D0, 0.01686D0, 0.01408D0, 0.01153D0, 0.00956D0,
& 0.00796D0, 0.00662D0, 0.00548D0, 0.00451D0, 0.00369D0,
& 0.00298D0, 0.00239D0, 0.00189D0, 0.00148D0, 0.00114D0,
& 0.00087D0, 0.00066D0, 0.00049D0, 0.00037D0, 0.00026D0,
& 0.00018D0, 0.00012D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I, 9),I=1,49)/
& 0.51210D0, 0.43288D0, 0.36574D0, 0.33126D0, 0.30871D0,
& 0.29222D0, 0.24594D0, 0.20601D0, 0.18499D0, 0.17091D0,
& 0.16014D0, 0.12927D0, 0.10130D0, 0.08631D0, 0.07626D0,
& 0.06885D0, 0.05833D0, 0.04813D0, 0.03783D0, 0.03141D0,
& 0.02366D0, 0.01900D0, 0.01580D0, 0.01287D0, 0.01061D0,
& 0.00880D0, 0.00728D0, 0.00600D0, 0.00491D0, 0.00401D0,
& 0.00322D0, 0.00257D0, 0.00203D0, 0.00158D0, 0.00122D0,
& 0.00093D0, 0.00070D0, 0.00052D0, 0.00039D0, 0.00028D0,
& 0.00018D0, 0.00012D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,10),I=1,49)/
& 0.62615D0, 0.52524D0, 0.44038D0, 0.39709D0, 0.36888D0,
& 0.34831D0, 0.29091D0, 0.24179D0, 0.21613D0, 0.19903D0,
& 0.18601D0, 0.14895D0, 0.11579D0, 0.09820D0, 0.08649D0,
& 0.07789D0, 0.06575D0, 0.05404D0, 0.04228D0, 0.03498D0,
& 0.02621D0, 0.02095D0, 0.01734D0, 0.01405D0, 0.01153D0,
& 0.00952D0, 0.00784D0, 0.00644D0, 0.00525D0, 0.00426D0,
& 0.00342D0, 0.00272D0, 0.00213D0, 0.00166D0, 0.00127D0,
& 0.00097D0, 0.00073D0, 0.00054D0, 0.00040D0, 0.00029D0,
& 0.00019D0, 0.00013D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,11),I=1,49)/
& 0.72756D0, 0.60673D0, 0.50572D0, 0.45443D0, 0.42111D0,
& 0.39687D0, 0.32951D0, 0.27226D0, 0.24251D0, 0.22276D0,
& 0.20777D0, 0.16535D0, 0.12775D0, 0.10795D0, 0.09484D0,
& 0.08524D0, 0.07175D0, 0.05879D0, 0.04583D0, 0.03782D0,
& 0.02821D0, 0.02247D0, 0.01853D0, 0.01496D0, 0.01223D0,
& 0.01005D0, 0.00826D0, 0.00676D0, 0.00549D0, 0.00445D0,
& 0.00355D0, 0.00282D0, 0.00221D0, 0.00171D0, 0.00131D0,
& 0.00099D0, 0.00074D0, 0.00055D0, 0.00041D0, 0.00029D0,
& 0.00019D0, 0.00013D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,12),I=1,49)/
& 0.97596D0, 0.80419D0, 0.66232D0, 0.59100D0, 0.54494D0,
& 0.51159D0, 0.41968D0, 0.34257D0, 0.30297D0, 0.27688D0,
& 0.25720D0, 0.20210D0, 0.15417D0, 0.12932D0, 0.11303D0,
& 0.10119D0, 0.08465D0, 0.06892D0, 0.05333D0, 0.04376D0,
& 0.03235D0, 0.02557D0, 0.02094D0, 0.01675D0, 0.01359D0,
& 0.01109D0, 0.00904D0, 0.00734D0, 0.00594D0, 0.00477D0,
& 0.00379D0, 0.00299D0, 0.00233D0, 0.00179D0, 0.00137D0,
& 0.00103D0, 0.00077D0, 0.00057D0, 0.00042D0, 0.00030D0,
& 0.00019D0, 0.00013D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,13),I=1,49)/
& 1.22977D0, 1.00344D0, 0.81836D0, 0.72605D0, 0.66675D0,
& 0.62396D0, 0.50684D0, 0.40963D0, 0.36016D0, 0.32776D0,
& 0.30345D0, 0.23597D0, 0.17813D0, 0.14851D0, 0.12924D0,
& 0.11531D0, 0.09599D0, 0.07773D0, 0.05977D0, 0.04882D0,
& 0.03581D0, 0.02811D0, 0.02289D0, 0.01818D0, 0.01465D0,
& 0.01187D0, 0.00963D0, 0.00777D0, 0.00625D0, 0.00500D0,
& 0.00395D0, 0.00310D0, 0.00241D0, 0.00185D0, 0.00140D0,
& 0.00105D0, 0.00078D0, 0.00058D0, 0.00043D0, 0.00031D0,
& 0.00019D0, 0.00013D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,14),I=1,49)/
& 1.55816D0, 1.25825D0, 1.01555D0, 0.89552D0, 0.81883D0,
& 0.76371D0, 0.61389D0, 0.49095D0, 0.42897D0, 0.38864D0,
& 0.35854D0, 0.27572D0, 0.20581D0, 0.17047D0, 0.14766D0,
& 0.13128D0, 0.10869D0, 0.08751D0, 0.06683D0, 0.05430D0,
& 0.03950D0, 0.03078D0, 0.02489D0, 0.01962D0, 0.01569D0,
& 0.01264D0, 0.01018D0, 0.00817D0, 0.00653D0, 0.00519D0,
& 0.00408D0, 0.00319D0, 0.00246D0, 0.00188D0, 0.00142D0,
& 0.00106D0, 0.00078D0, 0.00058D0, 0.00043D0, 0.00031D0,
& 0.00019D0, 0.00012D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,15),I=1,49)/
& 1.94525D0, 1.55494D0, 1.24230D0, 1.08896D0, 0.99149D0,
& 0.92172D0, 0.73335D0, 0.58046D0, 0.50409D0, 0.45471D0,
& 0.41801D0, 0.31797D0, 0.23473D0, 0.19316D0, 0.16655D0,
& 0.14754D0, 0.12149D0, 0.09725D0, 0.07376D0, 0.05961D0,
& 0.04299D0, 0.03326D0, 0.02672D0, 0.02089D0, 0.01659D0,
& 0.01327D0, 0.01061D0, 0.00847D0, 0.00673D0, 0.00532D0,
& 0.00416D0, 0.00323D0, 0.00248D0, 0.00188D0, 0.00142D0,
& 0.00105D0, 0.00077D0, 0.00057D0, 0.00042D0, 0.00031D0,
& 0.00019D0, 0.00012D0, 0.00007D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,16),I=1,49)/
& 2.34531D0, 1.85826D0, 1.47159D0, 1.28330D0, 1.16416D0,
& 1.07915D0, 0.85101D0, 0.66758D0, 0.57668D0, 0.51821D0,
& 0.47495D0, 0.35786D0, 0.26164D0, 0.21408D0, 0.18385D0,
& 0.16236D0, 0.13305D0, 0.10596D0, 0.07987D0, 0.06425D0,
& 0.04599D0, 0.03535D0, 0.02822D0, 0.02192D0, 0.01729D0,
& 0.01375D0, 0.01093D0, 0.00867D0, 0.00685D0, 0.00540D0,
& 0.00420D0, 0.00325D0, 0.00248D0, 0.00188D0, 0.00141D0,
& 0.00104D0, 0.00076D0, 0.00056D0, 0.00041D0, 0.00030D0,
& 0.00018D0, 0.00011D0, 0.00006D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,17),I=1,49)/
& 2.80142D0, 2.20072D0, 1.72790D0, 1.49927D0, 1.35523D0,
& 1.25280D0, 0.97945D0, 0.76167D0, 0.65458D0, 0.58603D0,
& 0.53553D0, 0.39978D0, 0.28955D0, 0.23561D0, 0.20153D0,
& 0.17743D0, 0.14473D0, 0.11467D0, 0.08591D0, 0.06880D0,
& 0.04888D0, 0.03733D0, 0.02963D0, 0.02285D0, 0.01791D0,
& 0.01415D0, 0.01119D0, 0.00883D0, 0.00694D0, 0.00544D0,
& 0.00421D0, 0.00324D0, 0.00247D0, 0.00186D0, 0.00139D0,
& 0.00102D0, 0.00075D0, 0.00055D0, 0.00040D0, 0.00029D0,
& 0.00018D0, 0.00011D0, 0.00006D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,18),I=1,49)/
& 3.21652D0, 2.50960D0, 1.95700D0, 1.69126D0, 1.52443D0,
& 1.40610D0, 1.09176D0, 0.84313D0, 0.72161D0, 0.64414D0,
& 0.58724D0, 0.43516D0, 0.31280D0, 0.25339D0, 0.21606D0,
& 0.18974D0, 0.15419D0, 0.12166D0, 0.09071D0, 0.07236D0,
& 0.05109D0, 0.03882D0, 0.03067D0, 0.02352D0, 0.01834D0,
& 0.01442D0, 0.01135D0, 0.00892D0, 0.00699D0, 0.00545D0,
& 0.00421D0, 0.00322D0, 0.00245D0, 0.00184D0, 0.00137D0,
& 0.00100D0, 0.00073D0, 0.00053D0, 0.00039D0, 0.00029D0,
& 0.00017D0, 0.00010D0, 0.00006D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,19),I=1,49)/
& 3.76652D0, 2.91536D0, 2.25532D0, 1.93997D0, 1.74280D0,
& 1.60338D0, 1.23496D0, 0.94601D0, 0.80577D0, 0.71678D0,
& 0.65167D0, 0.47873D0, 0.34109D0, 0.27487D0, 0.23349D0,
& 0.20445D0, 0.16541D0, 0.12988D0, 0.09628D0, 0.07646D0,
& 0.05359D0, 0.04046D0, 0.03178D0, 0.02422D0, 0.01877D0,
& 0.01467D0, 0.01149D0, 0.00898D0, 0.00700D0, 0.00543D0,
& 0.00418D0, 0.00319D0, 0.00241D0, 0.00180D0, 0.00134D0,
& 0.00098D0, 0.00071D0, 0.00052D0, 0.00038D0, 0.00028D0,
& 0.00017D0, 0.00010D0, 0.00006D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,20),I=1,49)/
& 4.30575D0, 3.30993D0, 2.54302D0, 2.17866D0, 1.95165D0,
& 1.79153D0, 1.37036D0, 1.04242D0, 0.88422D0, 0.78423D0,
& 0.71130D0, 0.51866D0, 0.36673D0, 0.29419D0, 0.24910D0,
& 0.21757D0, 0.17534D0, 0.13711D0, 0.10112D0, 0.07999D0,
& 0.05571D0, 0.04184D0, 0.03270D0, 0.02477D0, 0.01909D0,
& 0.01486D0, 0.01158D0, 0.00901D0, 0.00699D0, 0.00541D0,
& 0.00414D0, 0.00315D0, 0.00237D0, 0.00177D0, 0.00131D0,
& 0.00095D0, 0.00069D0, 0.00050D0, 0.00037D0, 0.00027D0,
& 0.00016D0, 0.00009D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,21),I=1,49)/
& 4.82956D0, 3.69021D0, 2.81808D0, 2.40576D0, 2.14966D0,
& 1.96944D0, 1.49728D0, 1.13198D0, 0.95669D0, 0.84628D0,
& 0.76597D0, 0.55486D0, 0.38968D0, 0.31136D0, 0.26288D0,
& 0.22909D0, 0.18399D0, 0.14333D0, 0.10523D0, 0.08295D0,
& 0.05744D0, 0.04293D0, 0.03340D0, 0.02518D0, 0.01931D0,
& 0.01496D0, 0.01161D0, 0.00900D0, 0.00696D0, 0.00536D0,
& 0.00409D0, 0.00310D0, 0.00233D0, 0.00173D0, 0.00128D0,
& 0.00093D0, 0.00067D0, 0.00049D0, 0.00036D0, 0.00027D0,
& 0.00015D0, 0.00009D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,22),I=1,49)/
& 5.55546D0, 4.21326D0, 3.19353D0, 2.71436D0, 2.41786D0,
& 2.20981D0, 1.66741D0, 1.25104D0, 1.05255D0, 0.92807D0,
& 0.83783D0, 0.60198D0, 0.41926D0, 0.33333D0, 0.28043D0,
& 0.24370D0, 0.19489D0, 0.15111D0, 0.11032D0, 0.08657D0,
& 0.05953D0, 0.04421D0, 0.03422D0, 0.02563D0, 0.01955D0,
& 0.01506D0, 0.01163D0, 0.00897D0, 0.00690D0, 0.00529D0,
& 0.00403D0, 0.00304D0, 0.00227D0, 0.00168D0, 0.00124D0,
& 0.00090D0, 0.00064D0, 0.00047D0, 0.00035D0, 0.00026D0,
& 0.00015D0, 0.00008D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,23),I=1,49)/
& 6.30033D0, 4.74567D0, 3.57260D0, 3.02443D0, 2.68642D0,
& 2.44984D0, 1.83585D0, 1.36787D0, 1.14612D0, 1.00758D0,
& 0.90746D0, 0.64718D0, 0.44730D0, 0.35401D0, 0.29686D0,
& 0.25731D0, 0.20497D0, 0.15824D0, 0.11492D0, 0.08982D0,
& 0.06136D0, 0.04532D0, 0.03489D0, 0.02598D0, 0.01971D0,
& 0.01511D0, 0.01161D0, 0.00892D0, 0.00683D0, 0.00522D0,
& 0.00395D0, 0.00297D0, 0.00222D0, 0.00163D0, 0.00120D0,
& 0.00087D0, 0.00062D0, 0.00045D0, 0.00034D0, 0.00025D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,24),I=1,49)/
& 7.03684D0, 5.26796D0, 3.94145D0, 3.32468D0, 2.94556D0,
& 2.68082D0, 1.99651D0, 1.47829D0, 1.23404D0, 1.08198D0,
& 0.97239D0, 0.68884D0, 0.47281D0, 0.37266D0, 0.31157D0,
& 0.26944D0, 0.21386D0, 0.16445D0, 0.11886D0, 0.09256D0,
& 0.06285D0, 0.04618D0, 0.03539D0, 0.02621D0, 0.01979D0,
& 0.01510D0, 0.01155D0, 0.00884D0, 0.00675D0, 0.00513D0,
& 0.00387D0, 0.00290D0, 0.00216D0, 0.00159D0, 0.00116D0,
& 0.00084D0, 0.00060D0, 0.00044D0, 0.00033D0, 0.00024D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,25),I=1,49)/
& 7.83575D0, 5.83079D0, 4.33631D0, 3.64485D0, 3.22112D0,
& 2.92590D0, 2.16582D0, 1.59383D0, 1.32566D0, 1.15927D0,
& 1.03966D0, 0.73165D0, 0.49881D0, 0.39156D0, 0.32642D0,
& 0.28163D0, 0.22275D0, 0.17063D0, 0.12274D0, 0.09523D0,
& 0.06428D0, 0.04699D0, 0.03585D0, 0.02642D0, 0.01984D0,
& 0.01507D0, 0.01148D0, 0.00875D0, 0.00665D0, 0.00505D0,
& 0.00380D0, 0.00284D0, 0.00210D0, 0.00154D0, 0.00112D0,
& 0.00081D0, 0.00058D0, 0.00042D0, 0.00031D0, 0.00024D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,26),I=1,49)/
& 8.65815D0, 6.40607D0, 4.73699D0, 3.96832D0, 3.49865D0,
& 3.17213D0, 2.33459D0, 1.70806D0, 1.41577D0, 1.23500D0,
& 1.10538D0, 0.77305D0, 0.52365D0, 0.40947D0, 0.34040D0,
& 0.29306D0, 0.23101D0, 0.17630D0, 0.12625D0, 0.09761D0,
& 0.06550D0, 0.04766D0, 0.03620D0, 0.02654D0, 0.01984D0,
& 0.01501D0, 0.01139D0, 0.00864D0, 0.00655D0, 0.00495D0,
& 0.00371D0, 0.00276D0, 0.00204D0, 0.00149D0, 0.00108D0,
& 0.00078D0, 0.00056D0, 0.00041D0, 0.00030D0, 0.00023D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,27),I=1,49)/
& 9.48773D0, 6.98283D0, 5.13620D0, 4.28942D0, 3.77342D0,
& 3.41540D0, 2.50025D0, 1.81942D0, 1.50325D0, 1.30829D0,
& 1.16884D0, 0.81270D0, 0.54722D0, 0.42638D0, 0.35354D0,
& 0.30375D0, 0.23869D0, 0.18153D0, 0.12945D0, 0.09975D0,
& 0.06658D0, 0.04823D0, 0.03648D0, 0.02662D0, 0.01982D0,
& 0.01493D0, 0.01129D0, 0.00853D0, 0.00645D0, 0.00486D0,
& 0.00363D0, 0.00270D0, 0.00199D0, 0.00145D0, 0.00105D0,
& 0.00075D0, 0.00054D0, 0.00039D0, 0.00030D0, 0.00022D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,28),I=1,49)/
& 10.30763D0, 7.54945D0, 5.52601D0, 4.60181D0, 4.04004D0,
& 3.65097D0, 2.65960D0, 1.92581D0, 1.58647D0, 1.37780D0,
& 1.22885D0, 0.84989D0, 0.56911D0, 0.44198D0, 0.36560D0,
& 0.31352D0, 0.24565D0, 0.18623D0, 0.13228D0, 0.10162D0,
& 0.06750D0, 0.04868D0, 0.03669D0, 0.02666D0, 0.01976D0,
& 0.01484D0, 0.01118D0, 0.00842D0, 0.00635D0, 0.00477D0,
& 0.00355D0, 0.00263D0, 0.00193D0, 0.00141D0, 0.00102D0,
& 0.00073D0, 0.00052D0, 0.00038D0, 0.00029D0, 0.00022D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,29),I=1,49)/
& 11.17527D0, 8.14579D0, 5.93397D0, 4.92768D0, 4.31749D0,
& 3.89565D0, 2.82415D0, 2.03499D0, 1.67156D0, 1.44867D0,
& 1.28991D0, 0.88743D0, 0.59103D0, 0.45751D0, 0.37756D0,
& 0.32318D0, 0.25249D0, 0.19081D0, 0.13501D0, 0.10341D0,
& 0.06835D0, 0.04909D0, 0.03686D0, 0.02667D0, 0.01969D0,
& 0.01473D0, 0.01106D0, 0.00831D0, 0.00624D0, 0.00467D0,
& 0.00347D0, 0.00257D0, 0.00188D0, 0.00136D0, 0.00099D0,
& 0.00070D0, 0.00050D0, 0.00037D0, 0.00028D0, 0.00021D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,30),I=1,49)/
& 12.06456D0, 8.75358D0, 6.34740D0, 5.25678D0, 4.59701D0,
& 4.14168D0, 2.98858D0, 2.14338D0, 1.75569D0, 1.51853D0,
& 1.34994D0, 0.92405D0, 0.61221D0, 0.47241D0, 0.38898D0,
& 0.33235D0, 0.25894D0, 0.19508D0, 0.13752D0, 0.10502D0,
& 0.06908D0, 0.04942D0, 0.03697D0, 0.02664D0, 0.01960D0,
& 0.01461D0, 0.01093D0, 0.00819D0, 0.00613D0, 0.00458D0,
& 0.00339D0, 0.00250D0, 0.00183D0, 0.00132D0, 0.00095D0,
& 0.00068D0, 0.00049D0, 0.00036D0, 0.00027D0, 0.00021D0,
& 0.00014D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,31),I=1,49)/
& 12.95374D0, 9.35831D0, 6.75669D0, 5.58162D0, 4.87232D0,
& 4.38360D0, 3.14942D0, 2.24882D0, 1.83726D0, 1.58610D0,
& 1.40790D0, 0.95916D0, 0.63237D0, 0.48653D0, 0.39975D0,
& 0.34099D0, 0.26498D0, 0.19905D0, 0.13983D0, 0.10648D0,
& 0.06974D0, 0.04970D0, 0.03705D0, 0.02660D0, 0.01950D0,
& 0.01449D0, 0.01081D0, 0.00807D0, 0.00603D0, 0.00449D0,
& 0.00332D0, 0.00244D0, 0.00178D0, 0.00129D0, 0.00093D0,
& 0.00066D0, 0.00047D0, 0.00035D0, 0.00026D0, 0.00020D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,32),I=1,49)/
& 13.81822D0, 9.94319D0, 7.15042D0, 5.89310D0, 5.13569D0,
& 4.61461D0, 3.30209D0, 2.34827D0, 1.91389D0, 1.64940D0,
& 1.46205D0, 0.99170D0, 0.65086D0, 0.49940D0, 0.40952D0,
& 0.34877D0, 0.27037D0, 0.20256D0, 0.14182D0, 0.10773D0,
& 0.07026D0, 0.04989D0, 0.03708D0, 0.02652D0, 0.01938D0,
& 0.01436D0, 0.01068D0, 0.00795D0, 0.00592D0, 0.00440D0,
& 0.00325D0, 0.00238D0, 0.00174D0, 0.00125D0, 0.00090D0,
& 0.00064D0, 0.00046D0, 0.00034D0, 0.00026D0, 0.00020D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,33),I=1,49)/
& 14.74174D0, 10.56553D0, 7.56770D0, 6.22245D0, 5.41371D0,
& 4.85814D0, 3.46239D0, 2.45228D0, 1.99384D0, 1.71531D0,
& 1.51837D0, 1.02539D0, 0.66993D0, 0.51263D0, 0.41953D0,
& 0.35674D0, 0.27589D0, 0.20614D0, 0.14386D0, 0.10899D0,
& 0.07078D0, 0.05009D0, 0.03711D0, 0.02645D0, 0.01927D0,
& 0.01422D0, 0.01055D0, 0.00784D0, 0.00582D0, 0.00432D0,
& 0.00318D0, 0.00233D0, 0.00169D0, 0.00122D0, 0.00087D0,
& 0.00062D0, 0.00044D0, 0.00033D0, 0.00025D0, 0.00020D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,34),I=1,49)/
& 15.66159D0, 11.18202D0, 7.97872D0, 6.54573D0, 5.68591D0,
& 5.09611D0, 3.61802D0, 2.55254D0, 2.07056D0, 1.77835D0,
& 1.57208D0, 1.05721D0, 0.68771D0, 0.52486D0, 0.42872D0,
& 0.36401D0, 0.28085D0, 0.20931D0, 0.14560D0, 0.11004D0,
& 0.07117D0, 0.05019D0, 0.03707D0, 0.02633D0, 0.01912D0,
& 0.01408D0, 0.01041D0, 0.00771D0, 0.00572D0, 0.00423D0,
& 0.00311D0, 0.00227D0, 0.00165D0, 0.00118D0, 0.00085D0,
& 0.00060D0, 0.00043D0, 0.00032D0, 0.00025D0, 0.00020D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,35),I=1,49)/
& 16.58568D0, 11.79905D0, 8.38856D0, 6.86738D0, 5.95633D0,
& 5.33223D0, 3.77185D0, 2.65127D0, 2.14594D0, 1.84019D0,
& 1.62469D0, 1.08825D0, 0.70498D0, 0.53670D0, 0.43761D0,
& 0.37103D0, 0.28563D0, 0.21235D0, 0.14727D0, 0.11103D0,
& 0.07154D0, 0.05029D0, 0.03704D0, 0.02622D0, 0.01898D0,
& 0.01394D0, 0.01028D0, 0.00760D0, 0.00562D0, 0.00415D0,
& 0.00304D0, 0.00222D0, 0.00161D0, 0.00115D0, 0.00082D0,
& 0.00058D0, 0.00042D0, 0.00031D0, 0.00024D0, 0.00019D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,36),I=1,49)/
& 17.48656D0, 12.39804D0, 8.78469D0, 7.17746D0, 6.21652D0,
& 5.55909D0, 3.91895D0, 2.74520D0, 2.21743D0, 1.89869D0,
& 1.67437D0, 1.11736D0, 0.72106D0, 0.54767D0, 0.44580D0,
& 0.37747D0, 0.28999D0, 0.21509D0, 0.14875D0, 0.11190D0,
& 0.07184D0, 0.05035D0, 0.03698D0, 0.02610D0, 0.01884D0,
& 0.01380D0, 0.01016D0, 0.00749D0, 0.00553D0, 0.00407D0,
& 0.00298D0, 0.00217D0, 0.00157D0, 0.00112D0, 0.00080D0,
& 0.00057D0, 0.00041D0, 0.00031D0, 0.00024D0, 0.00019D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,37),I=1,49)/
& 18.41889D0, 13.01534D0, 9.19117D0, 7.49481D0, 6.48233D0,
& 5.79049D0, 4.06828D0, 2.84006D0, 2.28940D0, 1.95745D0,
& 1.72416D0, 1.14634D0, 0.73693D0, 0.55843D0, 0.45379D0,
& 0.38373D0, 0.29419D0, 0.21770D0, 0.15013D0, 0.11269D0,
& 0.07209D0, 0.05037D0, 0.03690D0, 0.02596D0, 0.01869D0,
& 0.01365D0, 0.01003D0, 0.00738D0, 0.00543D0, 0.00399D0,
& 0.00291D0, 0.00212D0, 0.00153D0, 0.00109D0, 0.00078D0,
& 0.00055D0, 0.00040D0, 0.00030D0, 0.00023D0, 0.00019D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,5,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 1),I=1,49)/
& 0.44989D0, 0.39539D0, 0.34747D0, 0.32216D0, 0.30531D0,
& 0.29285D0, 0.25722D0, 0.22578D0, 0.20909D0, 0.19792D0,
& 0.18955D0, 0.16547D0, 0.14378D0, 0.13212D0, 0.12429D0,
& 0.11845D0, 0.11003D0, 0.10150D0, 0.09208D0, 0.08532D0,
& 0.07497D0, 0.06641D0, 0.05872D0, 0.04993D0, 0.04200D0,
& 0.03492D0, 0.02867D0, 0.02327D0, 0.01867D0, 0.01463D0,
& 0.01149D0, 0.00885D0, 0.00675D0, 0.00511D0, 0.00375D0,
& 0.00275D0, 0.00200D0, 0.00140D0, 0.00092D0, 0.00067D0,
& 0.00045D0, 0.00028D0, 0.00020D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 2),I=1,49)/
& 0.46639D0, 0.41136D0, 0.36279D0, 0.33706D0, 0.31990D0,
& 0.30719D0, 0.27073D0, 0.23840D0, 0.22115D0, 0.20956D0,
& 0.20084D0, 0.17557D0, 0.15249D0, 0.13993D0, 0.13142D0,
& 0.12504D0, 0.11578D0, 0.10635D0, 0.09591D0, 0.08845D0,
& 0.07719D0, 0.06805D0, 0.05996D0, 0.05084D0, 0.04269D0,
& 0.03544D0, 0.02909D0, 0.02361D0, 0.01895D0, 0.01488D0,
& 0.01169D0, 0.00902D0, 0.00689D0, 0.00524D0, 0.00385D0,
& 0.00283D0, 0.00206D0, 0.00146D0, 0.00096D0, 0.00071D0,
& 0.00048D0, 0.00029D0, 0.00022D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 3),I=1,49)/
& 0.50684D0, 0.44821D0, 0.39632D0, 0.36876D0, 0.35036D0,
& 0.33670D0, 0.29743D0, 0.26242D0, 0.24363D0, 0.23094D0,
& 0.22132D0, 0.19327D0, 0.16725D0, 0.15293D0, 0.14314D0,
& 0.13576D0, 0.12501D0, 0.11402D0, 0.10188D0, 0.09328D0,
& 0.08055D0, 0.07049D0, 0.06177D0, 0.05212D0, 0.04362D0,
& 0.03613D0, 0.02960D0, 0.02400D0, 0.01926D0, 0.01513D0,
& 0.01189D0, 0.00918D0, 0.00704D0, 0.00535D0, 0.00395D0,
& 0.00290D0, 0.00211D0, 0.00152D0, 0.00101D0, 0.00074D0,
& 0.00051D0, 0.00031D0, 0.00023D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 4),I=1,49)/
& 0.55058D0, 0.48672D0, 0.43021D0, 0.40019D0, 0.38014D0,
& 0.36526D0, 0.32246D0, 0.28426D0, 0.26371D0, 0.24981D0,
& 0.23922D0, 0.20826D0, 0.17939D0, 0.16343D0, 0.15249D0,
& 0.14425D0, 0.13221D0, 0.11993D0, 0.10640D0, 0.09689D0,
& 0.08300D0, 0.07224D0, 0.06305D0, 0.05299D0, 0.04421D0,
& 0.03653D0, 0.02989D0, 0.02420D0, 0.01939D0, 0.01523D0,
& 0.01197D0, 0.00924D0, 0.00709D0, 0.00537D0, 0.00399D0,
& 0.00293D0, 0.00213D0, 0.00154D0, 0.00102D0, 0.00074D0,
& 0.00053D0, 0.00032D0, 0.00024D0, 0.00009D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 5),I=1,49)/
& 0.61607D0, 0.54291D0, 0.47835D0, 0.44415D0, 0.42133D0,
& 0.40441D0, 0.35583D0, 0.31254D0, 0.28927D0, 0.27353D0,
& 0.26150D0, 0.22639D0, 0.19363D0, 0.17555D0, 0.16316D0,
& 0.15384D0, 0.14026D0, 0.12643D0, 0.11130D0, 0.10077D0,
& 0.08558D0, 0.07403D0, 0.06431D0, 0.05381D0, 0.04474D0,
& 0.03686D0, 0.03008D0, 0.02432D0, 0.01945D0, 0.01528D0,
& 0.01199D0, 0.00925D0, 0.00709D0, 0.00537D0, 0.00398D0,
& 0.00293D0, 0.00214D0, 0.00154D0, 0.00103D0, 0.00074D0,
& 0.00052D0, 0.00032D0, 0.00024D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 6),I=1,49)/
& 0.68336D0, 0.60005D0, 0.52679D0, 0.48807D0, 0.46228D0,
& 0.44318D0, 0.38846D0, 0.33984D0, 0.31375D0, 0.29611D0,
& 0.28263D0, 0.24332D0, 0.20674D0, 0.18660D0, 0.17283D0,
& 0.16249D0, 0.14745D0, 0.13219D0, 0.11560D0, 0.10414D0,
& 0.08779D0, 0.07555D0, 0.06535D0, 0.05447D0, 0.04515D0,
& 0.03709D0, 0.03021D0, 0.02439D0, 0.01946D0, 0.01528D0,
& 0.01197D0, 0.00923D0, 0.00707D0, 0.00536D0, 0.00396D0,
& 0.00291D0, 0.00213D0, 0.00154D0, 0.00103D0, 0.00073D0,
& 0.00051D0, 0.00032D0, 0.00023D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 7),I=1,49)/
& 0.76355D0, 0.66723D0, 0.58292D0, 0.53852D0, 0.50902D0,
& 0.48721D0, 0.42490D0, 0.36978D0, 0.34030D0, 0.32042D0,
& 0.30522D0, 0.26107D0, 0.22021D0, 0.19782D0, 0.18257D0,
& 0.17114D0, 0.15457D0, 0.13784D0, 0.11976D0, 0.10736D0,
& 0.08987D0, 0.07693D0, 0.06629D0, 0.05503D0, 0.04547D0,
& 0.03726D0, 0.03027D0, 0.02439D0, 0.01942D0, 0.01523D0,
& 0.01190D0, 0.00918D0, 0.00701D0, 0.00533D0, 0.00392D0,
& 0.00287D0, 0.00209D0, 0.00153D0, 0.00101D0, 0.00073D0,
& 0.00050D0, 0.00032D0, 0.00022D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 8),I=1,49)/
& 0.86343D0, 0.75010D0, 0.65144D0, 0.59973D0, 0.56547D0,
& 0.54018D0, 0.46822D0, 0.40492D0, 0.37123D0, 0.34856D0,
& 0.33127D0, 0.28125D0, 0.23529D0, 0.21028D0, 0.19331D0,
& 0.18063D0, 0.16233D0, 0.14394D0, 0.12420D0, 0.11077D0,
& 0.09202D0, 0.07835D0, 0.06722D0, 0.05555D0, 0.04575D0,
& 0.03737D0, 0.03028D0, 0.02434D0, 0.01934D0, 0.01514D0,
& 0.01181D0, 0.00909D0, 0.00694D0, 0.00526D0, 0.00387D0,
& 0.00282D0, 0.00206D0, 0.00150D0, 0.00100D0, 0.00072D0,
& 0.00049D0, 0.00031D0, 0.00021D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I, 9),I=1,49)/
& 0.96361D0, 0.83251D0, 0.71897D0, 0.65971D0, 0.62055D0,
& 0.59171D0, 0.50993D0, 0.43838D0, 0.40047D0, 0.37504D0,
& 0.35567D0, 0.29991D0, 0.24906D0, 0.22156D0, 0.20298D0,
& 0.18914D0, 0.16924D0, 0.14933D0, 0.12809D0, 0.11373D0,
& 0.09387D0, 0.07954D0, 0.06798D0, 0.05596D0, 0.04595D0,
& 0.03743D0, 0.03026D0, 0.02427D0, 0.01926D0, 0.01505D0,
& 0.01172D0, 0.00900D0, 0.00687D0, 0.00519D0, 0.00383D0,
& 0.00278D0, 0.00203D0, 0.00148D0, 0.00098D0, 0.00071D0,
& 0.00048D0, 0.00031D0, 0.00021D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,10),I=1,49)/
& 1.07479D0, 0.92315D0, 0.79255D0, 0.72469D0, 0.67997D0,
& 0.64711D0, 0.55427D0, 0.47353D0, 0.43097D0, 0.40251D0,
& 0.38089D0, 0.31894D0, 0.26290D0, 0.23280D0, 0.21256D0,
& 0.19753D0, 0.17599D0, 0.15455D0, 0.13181D0, 0.11654D0,
& 0.09559D0, 0.08062D0, 0.06865D0, 0.05629D0, 0.04608D0,
& 0.03743D0, 0.03019D0, 0.02416D0, 0.01913D0, 0.01493D0,
& 0.01161D0, 0.00890D0, 0.00677D0, 0.00511D0, 0.00377D0,
& 0.00274D0, 0.00200D0, 0.00145D0, 0.00096D0, 0.00068D0,
& 0.00046D0, 0.00030D0, 0.00020D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,11),I=1,49)/
& 1.17232D0, 1.00213D0, 0.85623D0, 0.78069D0, 0.73104D0,
& 0.69461D0, 0.59200D0, 0.50321D0, 0.45658D0, 0.42550D0,
& 0.40194D0, 0.33467D0, 0.27424D0, 0.24195D0, 0.22032D0,
& 0.20431D0, 0.18142D0, 0.15872D0, 0.13477D0, 0.11875D0,
& 0.09692D0, 0.08144D0, 0.06915D0, 0.05653D0, 0.04615D0,
& 0.03741D0, 0.03011D0, 0.02406D0, 0.01902D0, 0.01482D0,
& 0.01152D0, 0.00881D0, 0.00669D0, 0.00505D0, 0.00371D0,
& 0.00270D0, 0.00197D0, 0.00143D0, 0.00094D0, 0.00066D0,
& 0.00045D0, 0.00029D0, 0.00020D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,12),I=1,49)/
& 1.41135D0, 1.19389D0, 1.00931D0, 0.91452D0, 0.85253D0,
& 0.80723D0, 0.68048D0, 0.57199D0, 0.51554D0, 0.47813D0,
& 0.44992D0, 0.37007D0, 0.29939D0, 0.26209D0, 0.23729D0,
& 0.21905D0, 0.19312D0, 0.16764D0, 0.14100D0, 0.12337D0,
& 0.09965D0, 0.08309D0, 0.07010D0, 0.05694D0, 0.04624D0,
& 0.03729D0, 0.02989D0, 0.02378D0, 0.01873D0, 0.01456D0,
& 0.01128D0, 0.00861D0, 0.00651D0, 0.00490D0, 0.00360D0,
& 0.00260D0, 0.00189D0, 0.00137D0, 0.00090D0, 0.00062D0,
& 0.00043D0, 0.00028D0, 0.00019D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,13),I=1,49)/
& 1.65256D0, 1.38522D0, 1.16028D0, 1.04559D0, 0.97092D0,
& 0.91653D0, 0.76529D0, 0.63704D0, 0.57085D0, 0.52722D0,
& 0.49446D0, 0.40243D0, 0.32201D0, 0.28002D0, 0.25230D0,
& 0.23200D0, 0.20332D0, 0.17533D0, 0.14629D0, 0.12724D0,
& 0.10187D0, 0.08438D0, 0.07080D0, 0.05719D0, 0.04622D0,
& 0.03712D0, 0.02965D0, 0.02350D0, 0.01845D0, 0.01430D0,
& 0.01104D0, 0.00841D0, 0.00634D0, 0.00476D0, 0.00349D0,
& 0.00251D0, 0.00182D0, 0.00132D0, 0.00086D0, 0.00060D0,
& 0.00042D0, 0.00026D0, 0.00018D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,14),I=1,49)/
& 1.96387D0, 1.62942D0, 1.35081D0, 1.20988D0, 1.11860D0,
& 1.05236D0, 0.86939D0, 0.71589D0, 0.63738D0, 0.58593D0,
& 0.54750D0, 0.44041D0, 0.34815D0, 0.30054D0, 0.26935D0,
& 0.24663D0, 0.21473D0, 0.18383D0, 0.15206D0, 0.13140D0,
& 0.10419D0, 0.08567D0, 0.07145D0, 0.05736D0, 0.04609D0,
& 0.03684D0, 0.02930D0, 0.02313D0, 0.01809D0, 0.01398D0,
& 0.01074D0, 0.00816D0, 0.00615D0, 0.00459D0, 0.00334D0,
& 0.00240D0, 0.00174D0, 0.00125D0, 0.00082D0, 0.00057D0,
& 0.00038D0, 0.00024D0, 0.00016D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,15),I=1,49)/
& 2.33902D0, 1.92024D0, 1.57497D0, 1.40179D0, 1.29021D0,
& 1.20956D0, 0.98833D0, 0.80477D0, 0.71175D0, 0.65116D0,
& 0.60614D0, 0.48174D0, 0.37612D0, 0.32226D0, 0.28724D0,
& 0.26188D0, 0.22649D0, 0.19248D0, 0.15783D0, 0.13549D0,
& 0.10637D0, 0.08680D0, 0.07195D0, 0.05738D0, 0.04585D0,
& 0.03646D0, 0.02886D0, 0.02269D0, 0.01768D0, 0.01360D0,
& 0.01043D0, 0.00789D0, 0.00592D0, 0.00441D0, 0.00321D0,
& 0.00230D0, 0.00166D0, 0.00118D0, 0.00078D0, 0.00054D0,
& 0.00037D0, 0.00022D0, 0.00015D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,16),I=1,49)/
& 2.72482D0, 2.21608D0, 1.80052D0, 1.59364D0, 1.46096D0,
& 1.36541D0, 1.10490D0, 0.89086D0, 0.78327D0, 0.71357D0,
& 0.66200D0, 0.52058D0, 0.40200D0, 0.34217D0, 0.30354D0,
& 0.27569D0, 0.23704D0, 0.20015D0, 0.16285D0, 0.13900D0,
& 0.10817D0, 0.08767D0, 0.07227D0, 0.05729D0, 0.04554D0,
& 0.03606D0, 0.02842D0, 0.02227D0, 0.01728D0, 0.01326D0,
& 0.01012D0, 0.00763D0, 0.00571D0, 0.00425D0, 0.00307D0,
& 0.00219D0, 0.00158D0, 0.00112D0, 0.00073D0, 0.00051D0,
& 0.00035D0, 0.00021D0, 0.00014D0, 0.00005D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,17),I=1,49)/
& 3.16184D0, 2.54784D0, 2.05090D0, 1.80533D0, 1.64858D0,
& 1.53608D0, 1.23122D0, 0.98314D0, 0.85944D0, 0.77972D0,
& 0.72099D0, 0.56109D0, 0.42865D0, 0.36249D0, 0.32006D0,
& 0.28962D0, 0.24759D0, 0.20774D0, 0.16775D0, 0.14236D0,
& 0.10984D0, 0.08843D0, 0.07249D0, 0.05712D0, 0.04518D0,
& 0.03560D0, 0.02794D0, 0.02182D0, 0.01686D0, 0.01291D0,
& 0.00980D0, 0.00737D0, 0.00550D0, 0.00408D0, 0.00294D0,
& 0.00209D0, 0.00150D0, 0.00107D0, 0.00069D0, 0.00049D0,
& 0.00034D0, 0.00019D0, 0.00014D0, 0.00005D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,18),I=1,49)/
& 3.56226D0, 2.84906D0, 2.27616D0, 1.99475D0, 1.81581D0,
& 1.68774D0, 1.34241D0, 1.06358D0, 0.92544D0, 0.83679D0,
& 0.77171D0, 0.59551D0, 0.45100D0, 0.37940D0, 0.33372D0,
& 0.30107D0, 0.25620D0, 0.21386D0, 0.17164D0, 0.14499D0,
& 0.11108D0, 0.08895D0, 0.07258D0, 0.05692D0, 0.04483D0,
& 0.03518D0, 0.02753D0, 0.02142D0, 0.01651D0, 0.01260D0,
& 0.00954D0, 0.00717D0, 0.00532D0, 0.00393D0, 0.00284D0,
& 0.00201D0, 0.00144D0, 0.00103D0, 0.00066D0, 0.00045D0,
& 0.00032D0, 0.00018D0, 0.00013D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,19),I=1,49)/
& 4.09416D0, 3.24567D0, 2.57011D0, 2.24065D0, 2.03209D0,
& 1.88332D0, 1.48448D0, 1.16540D0, 1.00850D0, 0.90831D0,
& 0.83504D0, 0.63803D0, 0.47827D0, 0.39987D0, 0.35015D0,
& 0.31478D0, 0.26640D0, 0.22104D0, 0.17612D0, 0.14797D0,
& 0.11241D0, 0.08943D0, 0.07259D0, 0.05659D0, 0.04434D0,
& 0.03464D0, 0.02699D0, 0.02092D0, 0.01606D0, 0.01221D0,
& 0.00922D0, 0.00691D0, 0.00511D0, 0.00375D0, 0.00271D0,
& 0.00191D0, 0.00136D0, 0.00097D0, 0.00063D0, 0.00043D0,
& 0.00030D0, 0.00017D0, 0.00012D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,20),I=1,49)/
& 4.61257D0, 3.62885D0, 2.85161D0, 2.47491D0, 2.23738D0,
& 2.06842D0, 1.61774D0, 1.26001D0, 1.08527D0, 0.97415D0,
& 0.89315D0, 0.67662D0, 0.50274D0, 0.41811D0, 0.36471D0,
& 0.32688D0, 0.27534D0, 0.22728D0, 0.17996D0, 0.15048D0,
& 0.11349D0, 0.08979D0, 0.07253D0, 0.05626D0, 0.04389D0,
& 0.03414D0, 0.02651D0, 0.02047D0, 0.01566D0, 0.01187D0,
& 0.00894D0, 0.00668D0, 0.00493D0, 0.00361D0, 0.00261D0,
& 0.00182D0, 0.00129D0, 0.00093D0, 0.00059D0, 0.00040D0,
& 0.00028D0, 0.00016D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,21),I=1,49)/
& 5.12222D0, 4.00261D0, 3.12404D0, 2.70057D0, 2.43446D0,
& 2.24566D0, 1.74429D0, 1.34911D0, 1.15718D0, 1.03559D0,
& 0.94721D0, 0.71215D0, 0.52500D0, 0.43455D0, 0.37776D0,
& 0.33766D0, 0.28323D0, 0.23271D0, 0.18324D0, 0.15257D0,
& 0.11432D0, 0.08998D0, 0.07237D0, 0.05588D0, 0.04342D0,
& 0.03365D0, 0.02604D0, 0.02004D0, 0.01529D0, 0.01156D0,
& 0.00869D0, 0.00646D0, 0.00477D0, 0.00348D0, 0.00251D0,
& 0.00175D0, 0.00124D0, 0.00088D0, 0.00057D0, 0.00038D0,
& 0.00026D0, 0.00015D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,22),I=1,49)/
& 5.82554D0, 4.51423D0, 3.49391D0, 3.00548D0, 2.69986D0,
& 2.48370D0, 1.91285D0, 1.46678D0, 1.25167D0, 1.11601D0,
& 1.01775D0, 0.75806D0, 0.55345D0, 0.45543D0, 0.39424D0,
& 0.35121D0, 0.29307D0, 0.23942D0, 0.18722D0, 0.15507D0,
& 0.11526D0, 0.09014D0, 0.07211D0, 0.05536D0, 0.04279D0,
& 0.03301D0, 0.02543D0, 0.01950D0, 0.01483D0, 0.01117D0,
& 0.00837D0, 0.00620D0, 0.00456D0, 0.00332D0, 0.00238D0,
& 0.00166D0, 0.00117D0, 0.00083D0, 0.00053D0, 0.00035D0,
& 0.00024D0, 0.00015D0, 0.00010D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,23),I=1,49)/
& 6.54676D0, 5.03439D0, 3.86673D0, 3.31126D0, 2.96506D0,
& 2.72090D0, 2.07933D0, 1.58195D0, 1.34364D0, 1.19398D0,
& 1.08591D0, 0.80195D0, 0.58033D0, 0.47501D0, 0.40960D0,
& 0.36377D0, 0.30212D0, 0.24551D0, 0.19078D0, 0.15726D0,
& 0.11602D0, 0.09021D0, 0.07181D0, 0.05483D0, 0.04218D0,
& 0.03240D0, 0.02486D0, 0.01900D0, 0.01440D0, 0.01081D0,
& 0.00808D0, 0.00597D0, 0.00437D0, 0.00317D0, 0.00227D0,
& 0.00157D0, 0.00111D0, 0.00080D0, 0.00050D0, 0.00034D0,
& 0.00022D0, 0.00014D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,24),I=1,49)/
& 7.26565D0, 5.54876D0, 4.23247D0, 3.60982D0, 3.22311D0,
& 2.95109D0, 2.23956D0, 1.69183D0, 1.43093D0, 1.26769D0,
& 1.15015D0, 0.84286D0, 0.60508D0, 0.49288D0, 0.42351D0,
& 0.37509D0, 0.31017D0, 0.25086D0, 0.19381D0, 0.15905D0,
& 0.11655D0, 0.09013D0, 0.07142D0, 0.05426D0, 0.04157D0,
& 0.03180D0, 0.02431D0, 0.01852D0, 0.01399D0, 0.01048D0,
& 0.00780D0, 0.00574D0, 0.00419D0, 0.00304D0, 0.00217D0,
& 0.00149D0, 0.00106D0, 0.00075D0, 0.00048D0, 0.00032D0,
& 0.00021D0, 0.00013D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,25),I=1,49)/
& 8.04192D0, 6.10017D0, 4.62168D0, 3.92618D0, 3.49572D0,
& 3.19370D0, 2.40717D0, 1.80591D0, 1.52114D0, 1.34361D0,
& 1.21613D0, 0.88453D0, 0.63003D0, 0.51078D0, 0.43739D0,
& 0.38633D0, 0.31813D0, 0.25609D0, 0.19674D0, 0.16076D0,
& 0.11701D0, 0.09001D0, 0.07101D0, 0.05368D0, 0.04095D0,
& 0.03121D0, 0.02377D0, 0.01805D0, 0.01359D0, 0.01015D0,
& 0.00753D0, 0.00553D0, 0.00402D0, 0.00291D0, 0.00207D0,
& 0.00142D0, 0.00101D0, 0.00071D0, 0.00045D0, 0.00030D0,
& 0.00020D0, 0.00012D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,26),I=1,49)/
& 8.84513D0, 6.66663D0, 5.01863D0, 4.24745D0, 3.77171D0,
& 3.43873D0, 2.57518D0, 1.91937D0, 1.61043D0, 1.41849D0,
& 1.28102D0, 0.92509D0, 0.65405D0, 0.52788D0, 0.45056D0,
& 0.39694D0, 0.32555D0, 0.26091D0, 0.19936D0, 0.16223D0,
& 0.11732D0, 0.08979D0, 0.07053D0, 0.05307D0, 0.04031D0,
& 0.03061D0, 0.02325D0, 0.01759D0, 0.01321D0, 0.00982D0,
& 0.00728D0, 0.00532D0, 0.00387D0, 0.00279D0, 0.00197D0,
& 0.00136D0, 0.00096D0, 0.00067D0, 0.00043D0, 0.00029D0,
& 0.00019D0, 0.00011D0, 0.00007D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,27),I=1,49)/
& 9.65435D0, 7.23356D0, 5.41328D0, 4.56560D0, 4.04426D0,
& 3.68017D0, 2.73960D0, 2.02962D0, 1.69683D0, 1.49072D0,
& 1.34344D0, 0.96379D0, 0.67674D0, 0.54393D0, 0.46286D0,
& 0.40680D0, 0.33241D0, 0.26531D0, 0.20171D0, 0.16351D0,
& 0.11755D0, 0.08953D0, 0.07005D0, 0.05247D0, 0.03970D0,
& 0.03004D0, 0.02275D0, 0.01715D0, 0.01284D0, 0.00953D0,
& 0.00704D0, 0.00513D0, 0.00373D0, 0.00268D0, 0.00189D0,
& 0.00130D0, 0.00092D0, 0.00064D0, 0.00040D0, 0.00027D0,
& 0.00018D0, 0.00010D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,28),I=1,49)/
& 10.45602D0, 7.79175D0, 5.79941D0, 4.87575D0, 4.30926D0,
& 3.91444D0, 2.89810D0, 2.13519D0, 1.77921D0, 1.55938D0,
& 1.40263D0, 1.00018D0, 0.69787D0, 0.55877D0, 0.47417D0,
& 0.41582D0, 0.33862D0, 0.26925D0, 0.20376D0, 0.16459D0,
& 0.11767D0, 0.08923D0, 0.06955D0, 0.05189D0, 0.03911D0,
& 0.02950D0, 0.02227D0, 0.01675D0, 0.01249D0, 0.00926D0,
& 0.00681D0, 0.00496D0, 0.00359D0, 0.00258D0, 0.00181D0,
& 0.00125D0, 0.00088D0, 0.00062D0, 0.00038D0, 0.00026D0,
& 0.00017D0, 0.00010D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,29),I=1,49)/
& 11.30416D0, 8.37884D0, 6.20316D0, 5.19892D0, 4.58469D0,
& 4.15747D0, 3.06152D0, 2.24335D0, 1.86330D0, 1.62927D0,
& 1.46273D0, 1.03685D0, 0.71898D0, 0.57351D0, 0.48535D0,
& 0.42471D0, 0.34469D0, 0.27305D0, 0.20570D0, 0.16558D0,
& 0.11773D0, 0.08889D0, 0.06902D0, 0.05129D0, 0.03852D0,
& 0.02896D0, 0.02179D0, 0.01634D0, 0.01216D0, 0.00899D0,
& 0.00659D0, 0.00479D0, 0.00347D0, 0.00248D0, 0.00174D0,
& 0.00119D0, 0.00084D0, 0.00059D0, 0.00036D0, 0.00024D0,
& 0.00016D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,30),I=1,49)/
& 12.17534D0, 8.97841D0, 6.61310D0, 5.52592D0, 4.86271D0,
& 4.40230D0, 3.22516D0, 2.35097D0, 1.94663D0, 1.69833D0,
& 1.52199D0, 1.07270D0, 0.73942D0, 0.58770D0, 0.49605D0,
& 0.43317D0, 0.35042D0, 0.27659D0, 0.20745D0, 0.16642D0,
& 0.11771D0, 0.08850D0, 0.06847D0, 0.05068D0, 0.03793D0,
& 0.02842D0, 0.02132D0, 0.01595D0, 0.01184D0, 0.00872D0,
& 0.00639D0, 0.00464D0, 0.00334D0, 0.00238D0, 0.00167D0,
& 0.00115D0, 0.00081D0, 0.00056D0, 0.00034D0, 0.00023D0,
& 0.00015D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,31),I=1,49)/
& 13.04562D0, 9.57419D0, 7.01826D0, 5.84808D0, 5.13599D0,
& 4.64254D0, 3.38483D0, 2.45538D0, 2.02720D0, 1.76492D0,
& 1.57901D0, 1.10697D0, 0.75881D0, 0.60107D0, 0.50610D0,
& 0.44109D0, 0.35574D0, 0.27985D0, 0.20903D0, 0.16716D0,
& 0.11764D0, 0.08810D0, 0.06793D0, 0.05010D0, 0.03737D0,
& 0.02791D0, 0.02089D0, 0.01558D0, 0.01154D0, 0.00848D0,
& 0.00620D0, 0.00450D0, 0.00323D0, 0.00230D0, 0.00160D0,
& 0.00110D0, 0.00077D0, 0.00053D0, 0.00032D0, 0.00022D0,
& 0.00015D0, 0.00008D0, 0.00006D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,32),I=1,49)/
& 13.89443D0, 10.15226D0, 7.40931D0, 6.15805D0, 5.39834D0,
& 4.87276D0, 3.53699D0, 2.55429D0, 2.10325D0, 1.82761D0,
& 1.63256D0, 1.13890D0, 0.77669D0, 0.61332D0, 0.51524D0,
& 0.44825D0, 0.36050D0, 0.28271D0, 0.21036D0, 0.16773D0,
& 0.11750D0, 0.08767D0, 0.06738D0, 0.04952D0, 0.03683D0,
& 0.02743D0, 0.02048D0, 0.01524D0, 0.01125D0, 0.00826D0,
& 0.00603D0, 0.00436D0, 0.00312D0, 0.00222D0, 0.00155D0,
& 0.00106D0, 0.00074D0, 0.00051D0, 0.00031D0, 0.00021D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,33),I=1,49)/
& 14.79866D0, 10.76526D0, 7.82209D0, 6.48437D0, 5.67399D0,
& 5.11430D0, 3.69589D0, 2.65710D0, 2.18207D0, 1.89245D0,
& 1.68785D0, 1.17170D0, 0.79496D0, 0.62581D0, 0.52453D0,
& 0.45551D0, 0.36532D0, 0.28560D0, 0.21171D0, 0.16831D0,
& 0.11736D0, 0.08724D0, 0.06684D0, 0.04896D0, 0.03630D0,
& 0.02696D0, 0.02007D0, 0.01490D0, 0.01098D0, 0.00805D0,
& 0.00586D0, 0.00423D0, 0.00302D0, 0.00214D0, 0.00150D0,
& 0.00102D0, 0.00071D0, 0.00049D0, 0.00030D0, 0.00020D0,
& 0.00013D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,34),I=1,49)/
& 15.70368D0, 11.37564D0, 8.23095D0, 6.80656D0, 5.94554D0,
& 5.35181D0, 3.85123D0, 2.75698D0, 2.25835D0, 1.95501D0,
& 1.74107D0, 1.20298D0, 0.81219D0, 0.63747D0, 0.53315D0,
& 0.46219D0, 0.36968D0, 0.28814D0, 0.21281D0, 0.16870D0,
& 0.11711D0, 0.08674D0, 0.06626D0, 0.04836D0, 0.03575D0,
& 0.02649D0, 0.01967D0, 0.01456D0, 0.01071D0, 0.00784D0,
& 0.00568D0, 0.00409D0, 0.00292D0, 0.00207D0, 0.00144D0,
& 0.00098D0, 0.00068D0, 0.00047D0, 0.00029D0, 0.00019D0,
& 0.00012D0, 0.00007D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,35),I=1,49)/
& 16.61098D0, 11.98498D0, 8.63737D0, 7.12604D0, 6.21432D0,
& 5.58657D0, 4.00413D0, 2.85486D0, 2.33290D0, 2.01603D0,
& 1.79291D0, 1.23331D0, 0.82880D0, 0.64868D0, 0.54141D0,
& 0.46858D0, 0.37384D0, 0.29056D0, 0.21385D0, 0.16907D0,
& 0.11687D0, 0.08628D0, 0.06571D0, 0.04780D0, 0.03525D0,
& 0.02604D0, 0.01929D0, 0.01425D0, 0.01046D0, 0.00764D0,
& 0.00552D0, 0.00397D0, 0.00283D0, 0.00200D0, 0.00139D0,
& 0.00095D0, 0.00066D0, 0.00045D0, 0.00028D0, 0.00019D0,
& 0.00012D0, 0.00007D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,36),I=1,49)/
& 17.49641D0, 12.57703D0, 9.03053D0, 7.43428D0, 6.47316D0,
& 5.81232D0, 4.15045D0, 2.94807D0, 2.40367D0, 2.07383D0,
& 1.84191D0, 1.26179D0, 0.84428D0, 0.65906D0, 0.54902D0,
& 0.47444D0, 0.37762D0, 0.29271D0, 0.21474D0, 0.16935D0,
& 0.11660D0, 0.08580D0, 0.06517D0, 0.04726D0, 0.03476D0,
& 0.02562D0, 0.01894D0, 0.01396D0, 0.01022D0, 0.00745D0,
& 0.00538D0, 0.00386D0, 0.00274D0, 0.00194D0, 0.00135D0,
& 0.00092D0, 0.00063D0, 0.00044D0, 0.00027D0, 0.00018D0,
& 0.00011D0, 0.00007D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,37),I=1,49)/
& 18.41415D0, 13.18812D0, 9.43458D0, 7.75025D0, 6.73800D0,
& 6.04297D0, 4.29926D0, 3.04240D0, 2.47507D0, 2.13202D0,
& 1.89114D0, 1.29020D0, 0.85959D0, 0.66927D0, 0.55646D0,
& 0.48015D0, 0.38126D0, 0.29476D0, 0.21554D0, 0.16955D0,
& 0.11628D0, 0.08530D0, 0.06461D0, 0.04672D0, 0.03427D0,
& 0.02520D0, 0.01858D0, 0.01367D0, 0.00999D0, 0.00727D0,
& 0.00525D0, 0.00375D0, 0.00266D0, 0.00188D0, 0.00131D0,
& 0.00088D0, 0.00061D0, 0.00042D0, 0.00026D0, 0.00017D0,
& 0.00011D0, 0.00006D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,6,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 1),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 2),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 3),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 4),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 5),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 6),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 7),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 8),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I, 9),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,10),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,11),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,12),I=1,49)/
& 0.00042D0, 0.00036D0, 0.00032D0, 0.00030D0, 0.00028D0,
& 0.00027D0, 0.00023D0, 0.00020D0, 0.00019D0, 0.00018D0,
& 0.00017D0, 0.00014D0, 0.00012D0, 0.00011D0, 0.00010D0,
& 0.00009D0, 0.00008D0, 0.00007D0, 0.00006D0, 0.00005D0,
& 0.00005D0, 0.00004D0, 0.00003D0, 0.00003D0, 0.00003D0,
& 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,13),I=1,49)/
& 0.21520D0, 0.16773D0, 0.13065D0, 0.11283D0, 0.10165D0,
& 0.09372D0, 0.07266D0, 0.05600D0, 0.04786D0, 0.04266D0,
& 0.03883D0, 0.02862D0, 0.02044D0, 0.01649D0, 0.01402D0,
& 0.01228D0, 0.00994D0, 0.00781D0, 0.00579D0, 0.00460D0,
& 0.00322D0, 0.00243D0, 0.00191D0, 0.00146D0, 0.00114D0,
& 0.00089D0, 0.00070D0, 0.00055D0, 0.00043D0, 0.00034D0,
& 0.00026D0, 0.00020D0, 0.00015D0, 0.00011D0, 0.00009D0,
& 0.00006D0, 0.00005D0, 0.00003D0, 0.00002D0, 0.00001D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,14),I=1,49)/
& 0.62424D0, 0.48455D0, 0.37589D0, 0.32385D0, 0.29126D0,
& 0.26818D0, 0.20706D0, 0.15892D0, 0.13546D0, 0.12053D0,
& 0.10954D0, 0.08034D0, 0.05707D0, 0.04589D0, 0.03892D0,
& 0.03403D0, 0.02747D0, 0.02151D0, 0.01589D0, 0.01258D0,
& 0.00876D0, 0.00658D0, 0.00515D0, 0.00391D0, 0.00303D0,
& 0.00236D0, 0.00185D0, 0.00144D0, 0.00112D0, 0.00088D0,
& 0.00067D0, 0.00051D0, 0.00039D0, 0.00029D0, 0.00022D0,
& 0.00016D0, 0.00011D0, 0.00008D0, 0.00006D0, 0.00004D0,
& 0.00002D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,15),I=1,49)/
& 1.00765D0, 0.77678D0, 0.59844D0, 0.51350D0, 0.46049D0,
& 0.42306D0, 0.32436D0, 0.24719D0, 0.20981D0, 0.18611D0,
& 0.16874D0, 0.12279D0, 0.08652D0, 0.06923D0, 0.05850D0,
& 0.05102D0, 0.04100D0, 0.03196D0, 0.02347D0, 0.01849D0,
& 0.01279D0, 0.00955D0, 0.00743D0, 0.00560D0, 0.00430D0,
& 0.00334D0, 0.00260D0, 0.00202D0, 0.00157D0, 0.00121D0,
& 0.00093D0, 0.00071D0, 0.00053D0, 0.00040D0, 0.00029D0,
& 0.00021D0, 0.00015D0, 0.00011D0, 0.00007D0, 0.00005D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,16),I=1,49)/
& 1.42250D0, 1.08981D0, 0.83442D0, 0.71339D0, 0.63810D0,
& 0.58505D0, 0.44575D0, 0.33755D0, 0.28542D0, 0.25249D0,
& 0.22841D0, 0.16506D0, 0.11545D0, 0.09197D0, 0.07747D0,
& 0.06738D0, 0.05394D0, 0.04186D0, 0.03057D0, 0.02399D0,
& 0.01648D0, 0.01223D0, 0.00946D0, 0.00708D0, 0.00541D0,
& 0.00417D0, 0.00323D0, 0.00250D0, 0.00193D0, 0.00149D0,
& 0.00113D0, 0.00086D0, 0.00064D0, 0.00048D0, 0.00035D0,
& 0.00026D0, 0.00018D0, 0.00013D0, 0.00009D0, 0.00005D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,17),I=1,49)/
& 1.90329D0, 1.44918D0, 1.10274D0, 0.93938D0, 0.83807D0,
& 0.76686D0, 0.58064D0, 0.43692D0, 0.36805D0, 0.32470D0,
& 0.29309D0, 0.21032D0, 0.14604D0, 0.11582D0, 0.09725D0,
& 0.08437D0, 0.06728D0, 0.05198D0, 0.03776D0, 0.02950D0,
& 0.02012D0, 0.01485D0, 0.01142D0, 0.00850D0, 0.00645D0,
& 0.00494D0, 0.00381D0, 0.00293D0, 0.00225D0, 0.00172D0,
& 0.00131D0, 0.00098D0, 0.00073D0, 0.00054D0, 0.00040D0,
& 0.00029D0, 0.00021D0, 0.00014D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,18),I=1,49)/
& 2.33137D0, 1.76616D0, 1.33713D0, 1.13567D0, 1.01106D0,
& 0.92363D0, 0.69576D0, 0.52083D0, 0.43738D0, 0.38501D0,
& 0.34690D0, 0.24753D0, 0.17085D0, 0.13502D0, 0.11307D0,
& 0.09789D0, 0.07781D0, 0.05991D0, 0.04333D0, 0.03374D0,
& 0.02288D0, 0.01680D0, 0.01286D0, 0.00952D0, 0.00719D0,
& 0.00549D0, 0.00420D0, 0.00322D0, 0.00246D0, 0.00188D0,
& 0.00142D0, 0.00107D0, 0.00079D0, 0.00059D0, 0.00043D0,
& 0.00031D0, 0.00022D0, 0.00015D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,19),I=1,49)/
& 2.89798D0, 2.18213D0, 1.64207D0, 1.38971D0, 1.23410D0,
& 1.12518D0, 0.84241D0, 0.62670D0, 0.52435D0, 0.46034D0,
& 0.41389D0, 0.29333D0, 0.20103D0, 0.15819D0, 0.13206D0,
& 0.11405D0, 0.09031D0, 0.06924D0, 0.04982D0, 0.03863D0,
& 0.02602D0, 0.01899D0, 0.01446D0, 0.01064D0, 0.00798D0,
& 0.00606D0, 0.00462D0, 0.00352D0, 0.00268D0, 0.00204D0,
& 0.00153D0, 0.00115D0, 0.00085D0, 0.00062D0, 0.00046D0,
& 0.00034D0, 0.00024D0, 0.00016D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,20),I=1,49)/
& 3.45978D0, 2.59142D0, 1.93977D0, 1.63658D0, 1.45012D0,
& 1.31987D0, 0.98290D0, 0.72728D0, 0.60655D0, 0.53126D0,
& 0.47676D0, 0.33590D0, 0.22879D0, 0.17936D0, 0.14933D0,
& 0.12869D0, 0.10156D0, 0.07757D0, 0.05556D0, 0.04293D0,
& 0.02875D0, 0.02087D0, 0.01582D0, 0.01157D0, 0.00864D0,
& 0.00653D0, 0.00495D0, 0.00376D0, 0.00285D0, 0.00216D0,
& 0.00162D0, 0.00120D0, 0.00089D0, 0.00065D0, 0.00048D0,
& 0.00035D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,21),I=1,49)/
& 3.99390D0, 2.97724D0, 2.21795D0, 1.86604D0, 1.65015D0,
& 1.49961D0, 1.11138D0, 0.81834D0, 0.68051D0, 0.59480D0,
& 0.53289D0, 0.37345D0, 0.25296D0, 0.19764D0, 0.16415D0,
& 0.14119D0, 0.11109D0, 0.08457D0, 0.06032D0, 0.04645D0,
& 0.03094D0, 0.02236D0, 0.01688D0, 0.01228D0, 0.00913D0,
& 0.00687D0, 0.00519D0, 0.00392D0, 0.00296D0, 0.00223D0,
& 0.00167D0, 0.00124D0, 0.00091D0, 0.00067D0, 0.00049D0,
& 0.00036D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,22),I=1,49)/
& 4.74104D0, 3.51318D0, 2.60162D0, 2.18119D0, 1.92405D0,
& 1.74515D0, 1.28558D0, 0.94085D0, 0.77956D0, 0.67959D0,
& 0.60758D0, 0.42298D0, 0.28453D0, 0.22138D0, 0.18331D0,
& 0.15728D0, 0.12329D0, 0.09346D0, 0.06632D0, 0.05087D0,
& 0.03366D0, 0.02418D0, 0.01815D0, 0.01313D0, 0.00971D0,
& 0.00726D0, 0.00546D0, 0.00411D0, 0.00309D0, 0.00232D0,
& 0.00172D0, 0.00128D0, 0.00094D0, 0.00068D0, 0.00049D0,
& 0.00036D0, 0.00026D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,23),I=1,49)/
& 5.50879D0, 4.05964D0, 2.98973D0, 2.49849D0, 2.19888D0,
& 1.99086D0, 1.45844D0, 1.06135D0, 0.87646D0, 0.76222D0,
& 0.68014D0, 0.47060D0, 0.31455D0, 0.24380D0, 0.20130D0,
& 0.17233D0, 0.13462D0, 0.10166D0, 0.07179D0, 0.05486D0,
& 0.03607D0, 0.02577D0, 0.01926D0, 0.01386D0, 0.01019D0,
& 0.00758D0, 0.00568D0, 0.00425D0, 0.00318D0, 0.00238D0,
& 0.00176D0, 0.00130D0, 0.00095D0, 0.00069D0, 0.00050D0,
& 0.00037D0, 0.00026D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,24),I=1,49)/
& 6.25919D0, 4.58931D0, 3.36270D0, 2.80183D0, 2.46064D0,
& 2.22421D0, 1.62105D0, 1.17360D0, 0.96617D0, 0.83838D0,
& 0.74677D0, 0.51381D0, 0.34143D0, 0.26369D0, 0.21716D0,
& 0.18553D0, 0.14447D0, 0.10870D0, 0.07643D0, 0.05820D0,
& 0.03805D0, 0.02705D0, 0.02012D0, 0.01441D0, 0.01054D0,
& 0.00781D0, 0.00582D0, 0.00434D0, 0.00324D0, 0.00241D0,
& 0.00178D0, 0.00131D0, 0.00095D0, 0.00069D0, 0.00050D0,
& 0.00037D0, 0.00026D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,25),I=1,49)/
& 7.07966D0, 5.16501D0, 3.76564D0, 3.12838D0, 2.74171D0,
& 2.47426D0, 1.79422D0, 1.29235D0, 1.06071D0, 0.91840D0,
& 0.81663D0, 0.55877D0, 0.36917D0, 0.28412D0, 0.23339D0,
& 0.19900D0, 0.15447D0, 0.11582D0, 0.08108D0, 0.06153D0,
& 0.03999D0, 0.02830D0, 0.02096D0, 0.01493D0, 0.01087D0,
& 0.00803D0, 0.00595D0, 0.00442D0, 0.00329D0, 0.00244D0,
& 0.00180D0, 0.00131D0, 0.00096D0, 0.00069D0, 0.00050D0,
& 0.00036D0, 0.00026D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,26),I=1,49)/
& 7.91829D0, 5.74916D0, 4.17141D0, 3.45573D0, 3.02255D0,
& 2.72346D0, 1.96537D0, 1.40870D0, 1.15285D0, 0.99608D0,
& 0.88421D0, 0.60182D0, 0.39541D0, 0.30330D0, 0.24854D0,
& 0.21150D0, 0.16368D0, 0.12231D0, 0.08527D0, 0.06448D0,
& 0.04169D0, 0.02937D0, 0.02165D0, 0.01535D0, 0.01113D0,
& 0.00818D0, 0.00604D0, 0.00447D0, 0.00331D0, 0.00245D0,
& 0.00180D0, 0.00131D0, 0.00095D0, 0.00068D0, 0.00049D0,
& 0.00036D0, 0.00026D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,27),I=1,49)/
& 8.76657D0, 6.33661D0, 4.57707D0, 3.78184D0, 3.30161D0,
& 2.97059D0, 2.13403D0, 1.52261D0, 1.24269D0, 1.07161D0,
& 0.94977D0, 0.64324D0, 0.42046D0, 0.32150D0, 0.26285D0,
& 0.22328D0, 0.17230D0, 0.12835D0, 0.08912D0, 0.06719D0,
& 0.04322D0, 0.03031D0, 0.02226D0, 0.01571D0, 0.01134D0,
& 0.00830D0, 0.00611D0, 0.00451D0, 0.00333D0, 0.00245D0,
& 0.00180D0, 0.00131D0, 0.00095D0, 0.00068D0, 0.00048D0,
& 0.00036D0, 0.00026D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,28),I=1,49)/
& 9.60252D0, 6.91204D0, 4.97199D0, 4.09813D0, 3.57154D0,
& 3.20914D0, 2.29574D0, 1.63105D0, 1.32784D0, 1.14296D0,
& 1.01154D0, 0.68194D0, 0.44362D0, 0.33823D0, 0.27595D0,
& 0.23401D0, 0.18011D0, 0.13377D0, 0.09255D0, 0.06957D0,
& 0.04454D0, 0.03111D0, 0.02277D0, 0.01600D0, 0.01150D0,
& 0.00839D0, 0.00616D0, 0.00453D0, 0.00333D0, 0.00245D0,
& 0.00179D0, 0.00130D0, 0.00094D0, 0.00067D0, 0.00048D0,
& 0.00035D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,29),I=1,49)/
& 10.48807D0, 7.51842D0, 5.38590D0, 4.42859D0, 3.85291D0,
& 3.45734D0, 2.46302D0, 1.74255D0, 1.41507D0, 1.21586D0,
& 1.07451D0, 0.72111D0, 0.46688D0, 0.35494D0, 0.28897D0,
& 0.24464D0, 0.18781D0, 0.13908D0, 0.09587D0, 0.07187D0,
& 0.04579D0, 0.03185D0, 0.02323D0, 0.01626D0, 0.01165D0,
& 0.00847D0, 0.00619D0, 0.00454D0, 0.00333D0, 0.00244D0,
& 0.00178D0, 0.00129D0, 0.00093D0, 0.00066D0, 0.00047D0,
& 0.00035D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,30),I=1,49)/
& 11.39334D0, 8.13482D0, 5.80422D0, 4.76138D0, 4.13555D0,
& 3.70617D0, 2.62967D0, 1.85288D0, 1.50103D0, 1.28747D0,
& 1.13621D0, 0.75917D0, 0.48927D0, 0.37093D0, 0.30137D0,
& 0.25473D0, 0.19506D0, 0.14404D0, 0.09894D0, 0.07396D0,
& 0.04691D0, 0.03251D0, 0.02363D0, 0.01647D0, 0.01175D0,
& 0.00851D0, 0.00621D0, 0.00454D0, 0.00332D0, 0.00243D0,
& 0.00176D0, 0.00127D0, 0.00091D0, 0.00065D0, 0.00046D0,
& 0.00034D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,31),I=1,49)/
& 12.30020D0, 8.74942D0, 6.21933D0, 5.09070D0, 4.41468D0,
& 3.95152D0, 2.79315D0, 1.96055D0, 1.58465D0, 1.35697D0,
& 1.19598D0, 0.79580D0, 0.51068D0, 0.38615D0, 0.31314D0,
& 0.26427D0, 0.20189D0, 0.14868D0, 0.10179D0, 0.07589D0,
& 0.04793D0, 0.03309D0, 0.02397D0, 0.01665D0, 0.01184D0,
& 0.00855D0, 0.00621D0, 0.00453D0, 0.00330D0, 0.00241D0,
& 0.00174D0, 0.00126D0, 0.00090D0, 0.00064D0, 0.00046D0,
& 0.00034D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,32),I=1,49)/
& 13.17835D0, 9.34137D0, 6.61692D0, 5.40505D0, 4.68045D0,
& 4.18467D0, 2.94753D0, 2.06155D0, 1.66276D0, 1.42169D0,
& 1.25150D0, 0.82954D0, 0.53019D0, 0.39993D0, 0.32374D0,
& 0.27283D0, 0.20796D0, 0.15278D0, 0.10427D0, 0.07755D0,
& 0.04878D0, 0.03356D0, 0.02424D0, 0.01677D0, 0.01189D0,
& 0.00856D0, 0.00621D0, 0.00451D0, 0.00328D0, 0.00239D0,
& 0.00173D0, 0.00124D0, 0.00089D0, 0.00063D0, 0.00045D0,
& 0.00033D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,33),I=1,49)/
& 14.12059D0, 9.97430D0, 7.04054D0, 5.73929D0, 4.96264D0,
& 4.43195D0, 3.11069D0, 2.16791D0, 1.74484D0, 1.48959D0,
& 1.30967D0, 0.86476D0, 0.55049D0, 0.41422D0, 0.33471D0,
& 0.28168D0, 0.21423D0, 0.15699D0, 0.10682D0, 0.07925D0,
& 0.04965D0, 0.03404D0, 0.02451D0, 0.01690D0, 0.01194D0,
& 0.00857D0, 0.00620D0, 0.00449D0, 0.00326D0, 0.00237D0,
& 0.00171D0, 0.00123D0, 0.00088D0, 0.00062D0, 0.00044D0,
& 0.00032D0, 0.00025D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,34),I=1,49)/
& 15.05309D0, 10.59701D0, 7.45476D0, 6.06488D0, 5.23678D0,
& 4.67164D0, 3.26773D0, 2.26948D0, 1.82284D0, 1.55389D0,
& 1.36460D0, 0.89767D0, 0.56921D0, 0.42730D0, 0.34468D0,
& 0.28967D0, 0.21983D0, 0.16070D0, 0.10902D0, 0.08069D0,
& 0.05036D0, 0.03441D0, 0.02470D0, 0.01698D0, 0.01196D0,
& 0.00856D0, 0.00617D0, 0.00446D0, 0.00323D0, 0.00234D0,
& 0.00168D0, 0.00121D0, 0.00086D0, 0.00061D0, 0.00043D0,
& 0.00032D0, 0.00024D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,35),I=1,49)/
& 15.99294D0, 11.22254D0, 7.86947D0, 6.39022D0, 5.51032D0,
& 4.91055D0, 3.42373D0, 2.37005D0, 1.89992D0, 1.61733D0,
& 1.41872D0, 0.92998D0, 0.58753D0, 0.44006D0, 0.35440D0,
& 0.29744D0, 0.22527D0, 0.16430D0, 0.11114D0, 0.08207D0,
& 0.05103D0, 0.03476D0, 0.02489D0, 0.01705D0, 0.01198D0,
& 0.00855D0, 0.00615D0, 0.00444D0, 0.00321D0, 0.00232D0,
& 0.00166D0, 0.00119D0, 0.00085D0, 0.00060D0, 0.00042D0,
& 0.00031D0, 0.00024D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,36),I=1,49)/
& 16.90825D0, 11.82917D0, 8.26989D0, 6.70353D0, 5.77324D0,
& 5.13985D0, 3.57272D0, 2.46560D0, 1.97292D0, 1.67727D0,
& 1.46976D0, 0.96025D0, 0.60456D0, 0.45187D0, 0.36334D0,
& 0.30458D0, 0.23023D0, 0.16756D0, 0.11304D0, 0.08330D0,
& 0.05162D0, 0.03506D0, 0.02503D0, 0.01710D0, 0.01198D0,
& 0.00853D0, 0.00612D0, 0.00440D0, 0.00318D0, 0.00229D0,
& 0.00164D0, 0.00117D0, 0.00083D0, 0.00059D0, 0.00042D0,
& 0.00031D0, 0.00024D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,37),I=1,49)/
& 17.85379D0, 12.45318D0, 8.67996D0, 7.02354D0, 6.04126D0,
& 5.37323D0, 3.72362D0, 2.56187D0, 2.04622D0, 1.73730D0,
& 1.52078D0, 0.99029D0, 0.62133D0, 0.46343D0, 0.37206D0,
& 0.31151D0, 0.23502D0, 0.17068D0, 0.11483D0, 0.08444D0,
& 0.05214D0, 0.03531D0, 0.02515D0, 0.01713D0, 0.01196D0,
& 0.00850D0, 0.00608D0, 0.00437D0, 0.00315D0, 0.00226D0,
& 0.00162D0, 0.00115D0, 0.00082D0, 0.00058D0, 0.00041D0,
& 0.00030D0, 0.00024D0, 0.00017D0, 0.00010D0, 0.00006D0,
& 0.00003D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,7,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 1),I=1,49)/
& 0.88043D0, 0.77333D0, 0.67888D0, 0.62888D0, 0.59555D0,
& 0.57086D0, 0.50019D0, 0.43775D0, 0.40464D0, 0.38254D0,
& 0.36610D0, 0.31885D0, 0.27689D0, 0.25464D0, 0.23989D0,
& 0.22903D0, 0.21364D0, 0.19859D0, 0.18303D0, 0.17273D0,
& 0.15826D0, 0.14656D0, 0.13527D0, 0.12062D0, 0.10522D0,
& 0.08955D0, 0.07420D0, 0.05981D0, 0.04692D0, 0.03554D0,
& 0.02630D0, 0.01878D0, 0.01298D0, 0.00870D0, 0.00554D0,
& 0.00339D0, 0.00198D0, 0.00110D0, 0.00049D0, 0.00026D0,
& 0.00012D0, 0.00002D0, 0.00002D0, 0.00000D0, -0.00001D0,
& -0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 2),I=1,49)/
& 0.89442D0, 0.78714D0, 0.69235D0, 0.64208D0, 0.60853D0,
& 0.58367D0, 0.51236D0, 0.44919D0, 0.41561D0, 0.39314D0,
& 0.37639D0, 0.32808D0, 0.28485D0, 0.26176D0, 0.24637D0,
& 0.23501D0, 0.21882D0, 0.20291D0, 0.18634D0, 0.17532D0,
& 0.15979D0, 0.14730D0, 0.13538D0, 0.12014D0, 0.10435D0,
& 0.08847D0, 0.07306D0, 0.05873D0, 0.04595D0, 0.03477D0,
& 0.02571D0, 0.01837D0, 0.01273D0, 0.00855D0, 0.00550D0,
& 0.00340D0, 0.00204D0, 0.00117D0, 0.00055D0, 0.00031D0,
& 0.00017D0, 0.00006D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 3),I=1,49)/
& 0.93116D0, 0.82082D0, 0.72315D0, 0.67127D0, 0.63662D0,
& 0.61092D0, 0.53708D0, 0.47148D0, 0.43647D0, 0.41299D0,
& 0.39541D0, 0.34450D0, 0.29850D0, 0.27374D0, 0.25714D0,
& 0.24483D0, 0.22722D0, 0.20981D0, 0.19154D0, 0.17933D0,
& 0.16210D0, 0.14837D0, 0.13550D0, 0.11937D0, 0.10300D0,
& 0.08681D0, 0.07133D0, 0.05711D0, 0.04449D0, 0.03362D0,
& 0.02480D0, 0.01774D0, 0.01234D0, 0.00831D0, 0.00539D0,
& 0.00338D0, 0.00208D0, 0.00122D0, 0.00062D0, 0.00038D0,
& 0.00022D0, 0.00010D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 4),I=1,49)/
& 0.97222D0, 0.85703D0, 0.75505D0, 0.70088D0, 0.66470D0,
& 0.63785D0, 0.56070D0, 0.49207D0, 0.45539D0, 0.43075D0,
& 0.41225D0, 0.35857D0, 0.30984D0, 0.28350D0, 0.26581D0,
& 0.25266D0, 0.23382D0, 0.21514D0, 0.19549D0, 0.18234D0,
& 0.16379D0, 0.14912D0, 0.13552D0, 0.11873D0, 0.10198D0,
& 0.08556D0, 0.07005D0, 0.05591D0, 0.04344D0, 0.03278D0,
& 0.02413D0, 0.01727D0, 0.01201D0, 0.00813D0, 0.00530D0,
& 0.00334D0, 0.00207D0, 0.00123D0, 0.00065D0, 0.00042D0,
& 0.00025D0, 0.00012D0, 0.00009D0, 0.00002D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 5),I=1,49)/
& 1.03488D0, 0.91080D0, 0.80113D0, 0.74294D0, 0.70410D0,
& 0.67529D0, 0.59258D0, 0.51904D0, 0.47974D0, 0.45332D0,
& 0.43343D0, 0.37573D0, 0.32325D0, 0.29486D0, 0.27577D0,
& 0.26158D0, 0.24123D0, 0.22104D0, 0.19979D0, 0.18555D0,
& 0.16552D0, 0.14984D0, 0.13548D0, 0.11801D0, 0.10084D0,
& 0.08422D0, 0.06865D0, 0.05459D0, 0.04229D0, 0.03183D0,
& 0.02342D0, 0.01674D0, 0.01163D0, 0.00790D0, 0.00517D0,
& 0.00326D0, 0.00204D0, 0.00126D0, 0.00069D0, 0.00044D0,
& 0.00027D0, 0.00014D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 6),I=1,49)/
& 1.09976D0, 0.96588D0, 0.84779D0, 0.78524D0, 0.74353D0,
& 0.71261D0, 0.62395D0, 0.54523D0, 0.50318D0, 0.47492D0,
& 0.45362D0, 0.39183D0, 0.33563D0, 0.30525D0, 0.28482D0,
& 0.26964D0, 0.24787D0, 0.22628D0, 0.20357D0, 0.18835D0,
& 0.16700D0, 0.15043D0, 0.13540D0, 0.11734D0, 0.09983D0,
& 0.08303D0, 0.06744D0, 0.05346D0, 0.04131D0, 0.03103D0,
& 0.02280D0, 0.01628D0, 0.01131D0, 0.00768D0, 0.00506D0,
& 0.00319D0, 0.00201D0, 0.00126D0, 0.00071D0, 0.00044D0,
& 0.00028D0, 0.00015D0, 0.00010D0, 0.00005D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 7),I=1,49)/
& 1.17764D0, 1.03108D0, 0.90223D0, 0.83415D0, 0.78882D0,
& 0.75526D0, 0.65918D0, 0.57411D0, 0.52875D0, 0.49829D0,
& 0.47532D0, 0.40880D0, 0.34842D0, 0.31585D0, 0.29397D0,
& 0.27773D0, 0.25447D0, 0.23144D0, 0.20722D0, 0.19102D0,
& 0.16837D0, 0.15091D0, 0.13525D0, 0.11665D0, 0.09880D0,
& 0.08184D0, 0.06625D0, 0.05236D0, 0.04036D0, 0.03026D0,
& 0.02219D0, 0.01583D0, 0.01099D0, 0.00745D0, 0.00494D0,
& 0.00313D0, 0.00199D0, 0.00124D0, 0.00071D0, 0.00044D0,
& 0.00028D0, 0.00014D0, 0.00011D0, 0.00005D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 8),I=1,49)/
& 1.27508D0, 1.11188D0, 0.96899D0, 0.89374D0, 0.84374D0,
& 0.80677D0, 0.70124D0, 0.60814D0, 0.55864D0, 0.52545D0,
& 0.50042D0, 0.42815D0, 0.36279D0, 0.32765D0, 0.30409D0,
& 0.28664D0, 0.26167D0, 0.23701D0, 0.21111D0, 0.19383D0,
& 0.16977D0, 0.15136D0, 0.13503D0, 0.11586D0, 0.09768D0,
& 0.08056D0, 0.06499D0, 0.05119D0, 0.03935D0, 0.02943D0,
& 0.02154D0, 0.01534D0, 0.01065D0, 0.00723D0, 0.00480D0,
& 0.00305D0, 0.00194D0, 0.00121D0, 0.00071D0, 0.00043D0,
& 0.00029D0, 0.00014D0, 0.00011D0, 0.00005D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I, 9),I=1,49)/
& 1.37316D0, 1.19249D0, 1.03498D0, 0.95232D0, 0.89751D0,
& 0.85705D0, 0.74185D0, 0.64064D0, 0.58699D0, 0.55108D0,
& 0.52402D0, 0.44610D0, 0.37594D0, 0.33836D0, 0.31323D0,
& 0.29464D0, 0.26809D0, 0.24193D0, 0.21452D0, 0.19627D0,
& 0.17094D0, 0.15171D0, 0.13480D0, 0.11515D0, 0.09667D0,
& 0.07946D0, 0.06388D0, 0.05018D0, 0.03847D0, 0.02871D0,
& 0.02099D0, 0.01493D0, 0.01036D0, 0.00705D0, 0.00466D0,
& 0.00297D0, 0.00189D0, 0.00119D0, 0.00071D0, 0.00043D0,
& 0.00029D0, 0.00015D0, 0.00010D0, 0.00005D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,10),I=1,49)/
& 1.48232D0, 1.28141D0, 1.10710D0, 1.01596D0, 0.95567D0,
& 0.91125D0, 0.78516D0, 0.67489D0, 0.61664D0, 0.57774D0,
& 0.54846D0, 0.46445D0, 0.38919D0, 0.34906D0, 0.32230D0,
& 0.30254D0, 0.27439D0, 0.24670D0, 0.21778D0, 0.19857D0,
& 0.17201D0, 0.15198D0, 0.13451D0, 0.11441D0, 0.09567D0,
& 0.07837D0, 0.06280D0, 0.04920D0, 0.03762D0, 0.02802D0,
& 0.02045D0, 0.01454D0, 0.01009D0, 0.00685D0, 0.00453D0,
& 0.00289D0, 0.00185D0, 0.00117D0, 0.00069D0, 0.00044D0,
& 0.00029D0, 0.00015D0, 0.00011D0, 0.00004D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,11),I=1,49)/
& 1.57825D0, 1.35904D0, 1.16962D0, 1.07091D0, 1.00575D0,
& 0.95780D0, 0.82207D0, 0.70384D0, 0.64159D0, 0.60009D0,
& 0.56890D0, 0.47964D0, 0.40007D0, 0.35779D0, 0.32966D0,
& 0.30893D0, 0.27945D0, 0.25052D0, 0.22036D0, 0.20038D0,
& 0.17283D0, 0.15216D0, 0.13426D0, 0.11380D0, 0.09487D0,
& 0.07750D0, 0.06195D0, 0.04843D0, 0.03696D0, 0.02748D0,
& 0.02002D0, 0.01423D0, 0.00988D0, 0.00669D0, 0.00443D0,
& 0.00283D0, 0.00181D0, 0.00116D0, 0.00068D0, 0.00044D0,
& 0.00028D0, 0.00016D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,12),I=1,49)/
& 1.81391D0, 1.54794D0, 1.32027D0, 1.20251D0, 1.12515D0,
& 1.06843D0, 0.90882D0, 0.77111D0, 0.69913D0, 0.65138D0,
& 0.61560D0, 0.51392D0, 0.42424D0, 0.37702D0, 0.34578D0,
& 0.32285D0, 0.29039D0, 0.25868D0, 0.22580D0, 0.20412D0,
& 0.17445D0, 0.15244D0, 0.13361D0, 0.11242D0, 0.09312D0,
& 0.07561D0, 0.06012D0, 0.04679D0, 0.03556D0, 0.02636D0,
& 0.01913D0, 0.01356D0, 0.00940D0, 0.00637D0, 0.00422D0,
& 0.00270D0, 0.00172D0, 0.00112D0, 0.00066D0, 0.00042D0,
& 0.00027D0, 0.00016D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,13),I=1,49)/
& 2.05224D0, 1.73683D0, 1.46916D0, 1.33169D0, 1.24177D0,
& 1.17604D0, 0.99216D0, 0.83488D0, 0.75325D0, 0.69933D0,
& 0.65905D0, 0.54532D0, 0.44603D0, 0.39419D0, 0.36006D0,
& 0.33511D0, 0.29992D0, 0.26571D0, 0.23041D0, 0.20724D0,
& 0.17571D0, 0.15255D0, 0.13296D0, 0.11116D0, 0.09157D0,
& 0.07397D0, 0.05855D0, 0.04538D0, 0.03436D0, 0.02540D0,
& 0.01839D0, 0.01299D0, 0.00900D0, 0.00610D0, 0.00403D0,
& 0.00259D0, 0.00165D0, 0.00107D0, 0.00064D0, 0.00040D0,
& 0.00027D0, 0.00015D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,14),I=1,49)/
& 2.36037D0, 1.97834D0, 1.65740D0, 1.49390D0, 1.38749D0,
& 1.31001D0, 1.09465D0, 0.91231D0, 0.81846D0, 0.75678D0,
& 0.71089D0, 0.58224D0, 0.47125D0, 0.41385D0, 0.37630D0,
& 0.34896D0, 0.31058D0, 0.27348D0, 0.23541D0, 0.21054D0,
& 0.17694D0, 0.15252D0, 0.13212D0, 0.10968D0, 0.08980D0,
& 0.07213D0, 0.05680D0, 0.04381D0, 0.03304D0, 0.02434D0,
& 0.01758D0, 0.01241D0, 0.00857D0, 0.00582D0, 0.00382D0,
& 0.00247D0, 0.00159D0, 0.00103D0, 0.00060D0, 0.00038D0,
& 0.00026D0, 0.00014D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,15),I=1,49)/
& 2.73224D0, 2.26638D0, 1.87922D0, 1.68367D0, 1.55710D0,
& 1.46530D0, 1.21194D0, 0.99975D0, 0.89148D0, 0.82073D0,
& 0.76831D0, 0.62250D0, 0.49828D0, 0.43470D0, 0.39338D0,
& 0.36342D0, 0.32158D0, 0.28138D0, 0.24036D0, 0.21374D0,
& 0.17800D0, 0.15230D0, 0.13108D0, 0.10804D0, 0.08789D0,
& 0.07017D0, 0.05499D0, 0.04222D0, 0.03170D0, 0.02325D0,
& 0.01673D0, 0.01178D0, 0.00810D0, 0.00551D0, 0.00361D0,
& 0.00232D0, 0.00150D0, 0.00098D0, 0.00058D0, 0.00036D0,
& 0.00025D0, 0.00014D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,16),I=1,49)/
& 3.11511D0, 2.55975D0, 2.10267D0, 1.87361D0, 1.72607D0,
& 1.61945D0, 1.32704D0, 1.08455D0, 0.96180D0, 0.88200D0,
& 0.82308D0, 0.66038D0, 0.52333D0, 0.45384D0, 0.40893D0,
& 0.37652D0, 0.33144D0, 0.28836D0, 0.24465D0, 0.21643D0,
& 0.17877D0, 0.15196D0, 0.13002D0, 0.10649D0, 0.08613D0,
& 0.06841D0, 0.05335D0, 0.04078D0, 0.03051D0, 0.02230D0,
& 0.01601D0, 0.01123D0, 0.00772D0, 0.00522D0, 0.00344D0,
& 0.00221D0, 0.00143D0, 0.00094D0, 0.00056D0, 0.00035D0,
& 0.00023D0, 0.00014D0, 0.00009D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,17),I=1,49)/
& 3.54920D0, 2.88904D0, 2.35096D0, 2.08340D0, 1.91191D0,
& 1.78843D0, 1.45191D0, 1.17555D0, 1.03678D0, 0.94701D0,
& 0.88099D0, 0.69993D0, 0.54914D0, 0.47339D0, 0.42472D0,
& 0.38973D0, 0.34130D0, 0.29525D0, 0.24881D0, 0.21897D0,
& 0.17941D0, 0.15149D0, 0.12887D0, 0.10488D0, 0.08433D0,
& 0.06664D0, 0.05172D0, 0.03936D0, 0.02933D0, 0.02138D0,
& 0.01531D0, 0.01070D0, 0.00735D0, 0.00494D0, 0.00327D0,
& 0.00210D0, 0.00135D0, 0.00089D0, 0.00053D0, 0.00034D0,
& 0.00022D0, 0.00013D0, 0.00009D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,18),I=1,49)/
& 3.94722D0, 3.18825D0, 2.57451D0, 2.27128D0, 2.07769D0,
& 1.93872D0, 1.56191D0, 1.25495D0, 1.10181D0, 1.00316D0,
& 0.93081D0, 0.73357D0, 0.57081D0, 0.48966D0, 0.43777D0,
& 0.40060D0, 0.34934D0, 0.30080D0, 0.25209D0, 0.22090D0,
& 0.17980D0, 0.15100D0, 0.12785D0, 0.10349D0, 0.08283D0,
& 0.06518D0, 0.05037D0, 0.03822D0, 0.02839D0, 0.02063D0,
& 0.01472D0, 0.01026D0, 0.00705D0, 0.00475D0, 0.00313D0,
& 0.00200D0, 0.00129D0, 0.00084D0, 0.00049D0, 0.00033D0,
& 0.00020D0, 0.00013D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,19),I=1,49)/
& 4.47623D0, 3.58243D0, 2.86642D0, 2.51532D0, 2.29224D0,
& 2.13264D0, 1.70256D0, 1.35552D0, 1.18371D0, 1.07357D0,
& 0.99309D0, 0.77516D0, 0.59726D0, 0.50937D0, 0.45348D0,
& 0.41360D0, 0.35886D0, 0.30730D0, 0.25582D0, 0.22304D0,
& 0.18010D0, 0.15028D0, 0.12653D0, 0.10177D0, 0.08099D0,
& 0.06341D0, 0.04879D0, 0.03686D0, 0.02728D0, 0.01973D0,
& 0.01404D0, 0.00977D0, 0.00668D0, 0.00449D0, 0.00295D0,
& 0.00189D0, 0.00122D0, 0.00079D0, 0.00046D0, 0.00031D0,
& 0.00019D0, 0.00011D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,20),I=1,49)/
& 4.99213D0, 3.96349D0, 3.14614D0, 2.74797D0, 2.49601D0,
& 2.31631D0, 1.83458D0, 1.44905D0, 1.25946D0, 1.13844D0,
& 1.05027D0, 0.81294D0, 0.62102D0, 0.52694D0, 0.46740D0,
& 0.42508D0, 0.36719D0, 0.31292D0, 0.25900D0, 0.22482D0,
& 0.18028D0, 0.14958D0, 0.12531D0, 0.10024D0, 0.07938D0,
& 0.06186D0, 0.04742D0, 0.03568D0, 0.02633D0, 0.01896D0,
& 0.01347D0, 0.00937D0, 0.00636D0, 0.00427D0, 0.00280D0,
& 0.00180D0, 0.00116D0, 0.00076D0, 0.00045D0, 0.00029D0,
& 0.00019D0, 0.00009D0, 0.00007D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,21),I=1,49)/
& 5.49949D0, 4.33534D0, 3.41695D0, 2.97216D0, 2.69173D0,
& 2.49225D0, 1.96002D0, 1.53717D0, 1.33047D0, 1.19901D0,
& 1.10350D0, 0.84773D0, 0.64263D0, 0.54279D0, 0.47988D0,
& 0.43530D0, 0.37453D0, 0.31778D0, 0.26166D0, 0.22622D0,
& 0.18027D0, 0.14882D0, 0.12412D0, 0.09878D0, 0.07788D0,
& 0.06045D0, 0.04618D0, 0.03463D0, 0.02546D0, 0.01831D0,
& 0.01296D0, 0.00899D0, 0.00611D0, 0.00409D0, 0.00268D0,
& 0.00172D0, 0.00111D0, 0.00073D0, 0.00045D0, 0.00028D0,
& 0.00018D0, 0.00010D0, 0.00007D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,22),I=1,49)/
& 6.19994D0, 4.84455D0, 3.78480D0, 3.27524D0, 2.95541D0,
& 2.72867D0, 2.12718D0, 1.65361D0, 1.42381D0, 1.27834D0,
& 1.17300D0, 0.89272D0, 0.67027D0, 0.56291D0, 0.49563D0,
& 0.44814D0, 0.38367D0, 0.32378D0, 0.26487D0, 0.22786D0,
& 0.18016D0, 0.14778D0, 0.12256D0, 0.09693D0, 0.07601D0,
& 0.05870D0, 0.04463D0, 0.03333D0, 0.02440D0, 0.01750D0,
& 0.01234D0, 0.00854D0, 0.00580D0, 0.00388D0, 0.00253D0,
& 0.00162D0, 0.00104D0, 0.00069D0, 0.00042D0, 0.00026D0,
& 0.00018D0, 0.00010D0, 0.00006D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,23),I=1,49)/
& 6.91850D0, 5.36248D0, 4.15576D0, 3.57933D0, 3.21903D0,
& 2.96436D0, 2.29236D0, 1.76765D0, 1.51472D0, 1.35530D0,
& 1.24020D0, 0.93576D0, 0.69640D0, 0.58179D0, 0.51031D0,
& 0.46004D0, 0.39207D0, 0.32922D0, 0.26771D0, 0.22925D0,
& 0.17994D0, 0.14672D0, 0.12105D0, 0.09521D0, 0.07427D0,
& 0.05708D0, 0.04320D0, 0.03213D0, 0.02345D0, 0.01676D0,
& 0.01179D0, 0.00813D0, 0.00551D0, 0.00368D0, 0.00240D0,
& 0.00152D0, 0.00099D0, 0.00064D0, 0.00039D0, 0.00024D0,
& 0.00017D0, 0.00009D0, 0.00006D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,24),I=1,49)/
& 7.63491D0, 5.87479D0, 4.51976D0, 3.87632D0, 3.47562D0,
& 3.19317D0, 2.45140D0, 1.87649D0, 1.60104D0, 1.42808D0,
& 1.30355D0, 0.97589D0, 0.72045D0, 0.59900D0, 0.52360D0,
& 0.47074D0, 0.39952D0, 0.33394D0, 0.27005D0, 0.23029D0,
& 0.17956D0, 0.14561D0, 0.11956D0, 0.09355D0, 0.07262D0,
& 0.05557D0, 0.04190D0, 0.03105D0, 0.02258D0, 0.01609D0,
& 0.01128D0, 0.00777D0, 0.00525D0, 0.00350D0, 0.00227D0,
& 0.00145D0, 0.00095D0, 0.00060D0, 0.00036D0, 0.00023D0,
& 0.00015D0, 0.00008D0, 0.00006D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,25),I=1,49)/
& 8.40875D0, 6.42416D0, 4.90727D0, 4.19114D0, 3.74679D0,
& 3.43441D0, 2.61784D0, 1.98954D0, 1.69029D0, 1.50308D0,
& 1.36865D0, 1.01677D0, 0.74472D0, 0.61626D0, 0.53686D0,
& 0.48138D0, 0.40687D0, 0.33856D0, 0.27230D0, 0.23124D0,
& 0.17912D0, 0.14448D0, 0.11807D0, 0.09190D0, 0.07100D0,
& 0.05410D0, 0.04063D0, 0.03001D0, 0.02174D0, 0.01545D0,
& 0.01080D0, 0.00742D0, 0.00500D0, 0.00332D0, 0.00215D0,
& 0.00138D0, 0.00091D0, 0.00056D0, 0.00034D0, 0.00022D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,26),I=1,49)/
& 9.20959D0, 6.98865D0, 5.30257D0, 4.51092D0, 4.02140D0,
& 3.67813D0, 2.78472D0, 2.10201D0, 1.77866D0, 1.57708D0,
& 1.43269D0, 1.05659D0, 0.76808D0, 0.63273D0, 0.54942D0,
& 0.49139D0, 0.41371D0, 0.34277D0, 0.27426D0, 0.23197D0,
& 0.17855D0, 0.14327D0, 0.11656D0, 0.09025D0, 0.06944D0,
& 0.05268D0, 0.03941D0, 0.02899D0, 0.02094D0, 0.01485D0,
& 0.01035D0, 0.00708D0, 0.00476D0, 0.00316D0, 0.00205D0,
& 0.00131D0, 0.00085D0, 0.00054D0, 0.00031D0, 0.00021D0,
& 0.00013D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,27),I=1,49)/
& 10.01660D0, 7.55374D0, 5.69567D0, 4.82767D0, 4.29265D0,
& 3.91834D0, 2.94808D0, 2.21134D0, 1.86419D0, 1.64848D0,
& 1.49433D0, 1.09459D0, 0.79015D0, 0.64820D0, 0.56116D0,
& 0.50070D0, 0.42001D0, 0.34660D0, 0.27598D0, 0.23256D0,
& 0.17794D0, 0.14210D0, 0.11511D0, 0.08871D0, 0.06797D0,
& 0.05137D0, 0.03829D0, 0.02806D0, 0.02022D0, 0.01430D0,
& 0.00994D0, 0.00679D0, 0.00455D0, 0.00301D0, 0.00196D0,
& 0.00124D0, 0.00081D0, 0.00052D0, 0.00030D0, 0.00020D0,
& 0.00013D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,28),I=1,49)/
& 10.81622D0, 8.11020D0, 6.08037D0, 5.13653D0, 4.55643D0,
& 4.15146D0, 3.10560D0, 2.31605D0, 1.94577D0, 1.71637D0,
& 1.55278D0, 1.13032D0, 0.81070D0, 0.66250D0, 0.57195D0,
& 0.50921D0, 0.42571D0, 0.35000D0, 0.27744D0, 0.23299D0,
& 0.17730D0, 0.14094D0, 0.11373D0, 0.08726D0, 0.06658D0,
& 0.05015D0, 0.03725D0, 0.02723D0, 0.01957D0, 0.01380D0,
& 0.00957D0, 0.00653D0, 0.00437D0, 0.00288D0, 0.00188D0,
& 0.00119D0, 0.00077D0, 0.00050D0, 0.00029D0, 0.00019D0,
& 0.00012D0, 0.00007D0, 0.00005D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,29),I=1,49)/
& 11.66230D0, 8.69558D0, 6.48269D0, 5.45841D0, 4.83067D0,
& 4.39335D0, 3.26805D0, 2.42336D0, 2.02906D0, 1.78549D0,
& 1.61215D0, 1.16634D0, 0.83123D0, 0.67669D0, 0.58260D0,
& 0.51757D0, 0.43126D0, 0.35327D0, 0.27879D0, 0.23332D0,
& 0.17659D0, 0.13975D0, 0.11233D0, 0.08581D0, 0.06521D0,
& 0.04895D0, 0.03623D0, 0.02642D0, 0.01893D0, 0.01332D0,
& 0.00922D0, 0.00628D0, 0.00420D0, 0.00276D0, 0.00179D0,
& 0.00113D0, 0.00073D0, 0.00048D0, 0.00028D0, 0.00018D0,
& 0.00012D0, 0.00007D0, 0.00004D0, 0.00001D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,30),I=1,49)/
& 12.53147D0, 9.29349D0, 6.89124D0, 5.78416D0, 5.10752D0,
& 4.63707D0, 3.43073D0, 2.53015D0, 2.11162D0, 1.85381D0,
& 1.67070D0, 1.20157D0, 0.85112D0, 0.69035D0, 0.59278D0,
& 0.52552D0, 0.43648D0, 0.35628D0, 0.27996D0, 0.23352D0,
& 0.17581D0, 0.13853D0, 0.11093D0, 0.08439D0, 0.06389D0,
& 0.04778D0, 0.03525D0, 0.02563D0, 0.01832D0, 0.01286D0,
& 0.00888D0, 0.00603D0, 0.00403D0, 0.00265D0, 0.00171D0,
& 0.00109D0, 0.00070D0, 0.00046D0, 0.00026D0, 0.00017D0,
& 0.00011D0, 0.00006D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,31),I=1,49)/
& 13.39986D0, 9.88770D0, 7.29509D0, 6.10513D0, 5.37969D0,
& 4.87627D0, 3.58951D0, 2.63377D0, 2.19145D0, 1.91971D0,
& 1.72706D0, 1.23525D0, 0.86997D0, 0.70322D0, 0.60234D0,
& 0.53296D0, 0.44131D0, 0.35903D0, 0.28099D0, 0.23364D0,
& 0.17503D0, 0.13736D0, 0.10960D0, 0.08305D0, 0.06264D0,
& 0.04669D0, 0.03435D0, 0.02491D0, 0.01775D0, 0.01244D0,
& 0.00857D0, 0.00581D0, 0.00387D0, 0.00255D0, 0.00164D0,
& 0.00105D0, 0.00067D0, 0.00044D0, 0.00025D0, 0.00016D0,
& 0.00011D0, 0.00006D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,32),I=1,49)/
& 14.24690D0, 10.46430D0, 7.68491D0, 6.41400D0, 5.64102D0,
& 5.10551D0, 3.74084D0, 2.73196D0, 2.26682D0, 1.98174D0,
& 1.77998D0, 1.26662D0, 0.88736D0, 0.71501D0, 0.61103D0,
& 0.53966D0, 0.44562D0, 0.36142D0, 0.28180D0, 0.23363D0,
& 0.17423D0, 0.13620D0, 0.10832D0, 0.08177D0, 0.06147D0,
& 0.04567D0, 0.03352D0, 0.02425D0, 0.01724D0, 0.01204D0,
& 0.00828D0, 0.00559D0, 0.00373D0, 0.00245D0, 0.00158D0,
& 0.00099D0, 0.00065D0, 0.00042D0, 0.00024D0, 0.00015D0,
& 0.00010D0, 0.00006D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,33),I=1,49)/
& 15.14936D0, 11.07583D0, 8.09647D0, 6.73922D0, 5.91564D0,
& 5.34608D0, 3.89891D0, 2.83403D0, 2.34496D0, 2.04593D0,
& 1.83464D0, 1.29886D0, 0.90513D0, 0.72701D0, 0.61986D0,
& 0.54647D0, 0.44998D0, 0.36383D0, 0.28262D0, 0.23362D0,
& 0.17343D0, 0.13505D0, 0.10704D0, 0.08050D0, 0.06032D0,
& 0.04468D0, 0.03270D0, 0.02360D0, 0.01675D0, 0.01165D0,
& 0.00800D0, 0.00538D0, 0.00360D0, 0.00236D0, 0.00153D0,
& 0.00094D0, 0.00062D0, 0.00040D0, 0.00024D0, 0.00014D0,
& 0.00010D0, 0.00005D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,34),I=1,49)/
& 16.05264D0, 11.68476D0, 8.50413D0, 7.06033D0, 6.18619D0,
& 5.58264D0, 4.05344D0, 2.93321D0, 2.42057D0, 2.10785D0,
& 1.88726D0, 1.32960D0, 0.92187D0, 0.73821D0, 0.62802D0,
& 0.55270D0, 0.45389D0, 0.36590D0, 0.28320D0, 0.23345D0,
& 0.17251D0, 0.13385D0, 0.10575D0, 0.07924D0, 0.05918D0,
& 0.04371D0, 0.03189D0, 0.02297D0, 0.01625D0, 0.01129D0,
& 0.00773D0, 0.00520D0, 0.00346D0, 0.00227D0, 0.00146D0,
& 0.00090D0, 0.00059D0, 0.00038D0, 0.00022D0, 0.00014D0,
& 0.00009D0, 0.00005D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,35),I=1,49)/
& 16.95831D0, 12.29275D0, 8.90942D0, 7.37879D0, 6.45402D0,
& 5.81651D0, 4.20556D0, 3.03041D0, 2.49449D0, 2.16827D0,
& 1.93852D0, 1.35941D0, 0.93802D0, 0.74899D0, 0.63586D0,
& 0.55868D0, 0.45763D0, 0.36787D0, 0.28375D0, 0.23328D0,
& 0.17165D0, 0.13272D0, 0.10453D0, 0.07807D0, 0.05811D0,
& 0.04281D0, 0.03114D0, 0.02238D0, 0.01579D0, 0.01096D0,
& 0.00748D0, 0.00503D0, 0.00334D0, 0.00218D0, 0.00141D0,
& 0.00087D0, 0.00056D0, 0.00036D0, 0.00021D0, 0.00013D0,
& 0.00009D0, 0.00005D0, 0.00004D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,36),I=1,49)/
& 17.84218D0, 12.88352D0, 9.30151D0, 7.68607D0, 6.71197D0,
& 6.04141D0, 4.35117D0, 3.12299D0, 2.56467D0, 2.22550D0,
& 1.98697D0, 1.38741D0, 0.95307D0, 0.75895D0, 0.64306D0,
& 0.56414D0, 0.46100D0, 0.36960D0, 0.28418D0, 0.23305D0,
& 0.17079D0, 0.13162D0, 0.10337D0, 0.07695D0, 0.05711D0,
& 0.04196D0, 0.03045D0, 0.02184D0, 0.01537D0, 0.01065D0,
& 0.00725D0, 0.00488D0, 0.00323D0, 0.00211D0, 0.00135D0,
& 0.00084D0, 0.00054D0, 0.00035D0, 0.00020D0, 0.00012D0,
& 0.00009D0, 0.00005D0, 0.00003D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,37),I=1,49)/
& 18.75837D0, 13.49331D0, 9.70449D0, 8.00107D0, 6.97591D0,
& 6.27121D0, 4.49926D0, 3.21668D0, 2.63548D0, 2.28312D0,
& 2.03566D0, 1.41534D0, 0.96795D0, 0.76874D0, 0.65009D0,
& 0.56943D0, 0.46423D0, 0.37122D0, 0.28450D0, 0.23274D0,
& 0.16989D0, 0.13050D0, 0.10219D0, 0.07583D0, 0.05612D0,
& 0.04112D0, 0.02978D0, 0.02129D0, 0.01496D0, 0.01035D0,
& 0.00703D0, 0.00473D0, 0.00312D0, 0.00203D0, 0.00130D0,
& 0.00081D0, 0.00052D0, 0.00034D0, 0.00019D0, 0.00012D0,
& 0.00008D0, 0.00005D0, 0.00003D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(1,8,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,1,I, 1),I=1,49)/
& 0.01616D0, 0.01968D0, 0.02397D0, 0.02690D0, 0.02921D0,
& 0.03113D0, 0.03797D0, 0.04639D0, 0.05222D0, 0.05685D0,
& 0.06076D0, 0.07508D0, 0.09409D0, 0.10852D0, 0.12095D0,
& 0.13220D0, 0.15265D0, 0.18041D0, 0.22265D0, 0.26180D0,
& 0.33338D0, 0.39710D0, 0.45318D0, 0.51262D0, 0.56037D0,
& 0.59685D0, 0.62256D0, 0.63820D0, 0.64458D0, 0.64218D0,
& 0.63256D0, 0.61605D0, 0.59381D0, 0.56668D0, 0.53544D0,
& 0.50113D0, 0.46441D0, 0.42608D0, 0.38703D0, 0.34764D0,
& 0.30873D0, 0.27101D0, 0.23457D0, 0.16829D0, 0.11224D0,
& 0.06802D0, 0.03588D0, 0.00449D0, 0.00000D0/
DATA (FMRS(2,1,I, 2),I=1,49)/
& 0.01632D0, 0.01989D0, 0.02423D0, 0.02721D0, 0.02954D0,
& 0.03149D0, 0.03843D0, 0.04698D0, 0.05290D0, 0.05761D0,
& 0.06159D0, 0.07621D0, 0.09566D0, 0.11046D0, 0.12320D0,
& 0.13473D0, 0.15566D0, 0.18401D0, 0.22694D0, 0.26649D0,
& 0.33826D0, 0.40154D0, 0.45671D0, 0.51456D0, 0.56041D0,
& 0.59481D0, 0.61838D0, 0.63191D0, 0.63628D0, 0.63211D0,
& 0.62085D0, 0.60298D0, 0.57964D0, 0.55165D0, 0.51988D0,
& 0.48526D0, 0.44851D0, 0.41042D0, 0.37182D0, 0.33308D0,
& 0.29500D0, 0.25823D0, 0.22287D0, 0.15893D0, 0.10532D0,
& 0.06336D0, 0.03315D0, 0.00405D0, 0.00000D0/
DATA (FMRS(2,1,I, 3),I=1,49)/
& 0.01657D0, 0.02020D0, 0.02463D0, 0.02767D0, 0.03005D0,
& 0.03204D0, 0.03912D0, 0.04786D0, 0.05393D0, 0.05876D0,
& 0.06285D0, 0.07791D0, 0.09803D0, 0.11338D0, 0.12658D0,
& 0.13853D0, 0.16018D0, 0.18937D0, 0.23326D0, 0.27335D0,
& 0.34527D0, 0.40778D0, 0.46152D0, 0.51696D0, 0.55995D0,
& 0.59126D0, 0.61170D0, 0.62221D0, 0.62369D0, 0.61697D0,
& 0.60343D0, 0.58371D0, 0.55889D0, 0.52978D0, 0.49735D0,
& 0.46237D0, 0.42568D0, 0.38804D0, 0.35014D0, 0.31246D0,
& 0.27562D0, 0.24027D0, 0.20650D0, 0.14595D0, 0.09580D0,
& 0.05701D0, 0.02946D0, 0.00347D0, 0.00000D0/
DATA (FMRS(2,1,I, 4),I=1,49)/
& 0.01676D0, 0.02044D0, 0.02493D0, 0.02801D0, 0.03042D0,
& 0.03244D0, 0.03964D0, 0.04852D0, 0.05470D0, 0.05962D0,
& 0.06379D0, 0.07918D0, 0.09980D0, 0.11554D0, 0.12909D0,
& 0.14134D0, 0.16349D0, 0.19329D0, 0.23784D0, 0.27828D0,
& 0.35023D0, 0.41207D0, 0.46471D0, 0.51833D0, 0.55923D0,
& 0.58830D0, 0.60648D0, 0.61486D0, 0.61433D0, 0.60584D0,
& 0.59072D0, 0.56980D0, 0.54398D0, 0.51418D0, 0.48131D0,
& 0.44619D0, 0.40966D0, 0.37236D0, 0.33505D0, 0.29814D0,
& 0.26220D0, 0.22791D0, 0.19528D0, 0.13713D0, 0.08936D0,
& 0.05277D0, 0.02703D0, 0.00310D0, 0.00000D0/
DATA (FMRS(2,1,I, 5),I=1,49)/
& 0.01695D0, 0.02068D0, 0.02524D0, 0.02837D0, 0.03082D0,
& 0.03287D0, 0.04018D0, 0.04922D0, 0.05552D0, 0.06053D0,
& 0.06480D0, 0.08053D0, 0.10168D0, 0.11784D0, 0.13174D0,
& 0.14430D0, 0.16698D0, 0.19737D0, 0.24257D0, 0.28331D0,
& 0.35517D0, 0.41625D0, 0.46767D0, 0.51932D0, 0.55801D0,
& 0.58472D0, 0.60061D0, 0.60677D0, 0.60420D0, 0.59394D0,
& 0.57732D0, 0.55511D0, 0.52831D0, 0.49795D0, 0.46473D0,
& 0.42958D0, 0.39324D0, 0.35636D0, 0.31976D0, 0.28363D0,
& 0.24869D0, 0.21549D0, 0.18405D0, 0.12838D0, 0.08307D0,
& 0.04866D0, 0.02468D0, 0.00276D0, 0.00000D0/
DATA (FMRS(2,1,I, 6),I=1,49)/
& 0.01712D0, 0.02090D0, 0.02552D0, 0.02868D0, 0.03117D0,
& 0.03325D0, 0.04066D0, 0.04984D0, 0.05623D0, 0.06133D0,
& 0.06568D0, 0.08172D0, 0.10333D0, 0.11984D0, 0.13405D0,
& 0.14688D0, 0.17001D0, 0.20090D0, 0.24663D0, 0.28761D0,
& 0.35934D0, 0.41972D0, 0.47004D0, 0.51998D0, 0.55675D0,
& 0.58145D0, 0.59540D0, 0.59970D0, 0.59545D0, 0.58373D0,
& 0.56587D0, 0.54263D0, 0.51509D0, 0.48426D0, 0.45082D0,
& 0.41570D0, 0.37956D0, 0.34309D0, 0.30710D0, 0.27167D0,
& 0.23758D0, 0.20532D0, 0.17488D0, 0.12129D0, 0.07799D0,
& 0.04537D0, 0.02283D0, 0.00249D0, 0.00000D0/
DATA (FMRS(2,1,I, 7),I=1,49)/
& 0.01728D0, 0.02111D0, 0.02578D0, 0.02899D0, 0.03151D0,
& 0.03361D0, 0.04113D0, 0.05044D0, 0.05693D0, 0.06211D0,
& 0.06653D0, 0.08287D0, 0.10492D0, 0.12178D0, 0.13628D0,
& 0.14936D0, 0.17290D0, 0.20425D0, 0.25045D0, 0.29164D0,
& 0.36316D0, 0.42280D0, 0.47203D0, 0.52030D0, 0.55522D0,
& 0.57804D0, 0.59016D0, 0.59271D0, 0.58692D0, 0.57390D0,
& 0.55488D0, 0.53075D0, 0.50265D0, 0.47135D0, 0.43776D0,
& 0.40267D0, 0.36679D0, 0.33078D0, 0.29535D0, 0.26064D0,
& 0.22735D0, 0.19600D0, 0.16649D0, 0.11484D0, 0.07339D0,
& 0.04241D0, 0.02117D0, 0.00226D0, 0.00000D0/
DATA (FMRS(2,1,I, 8),I=1,49)/
& 0.01745D0, 0.02133D0, 0.02606D0, 0.02931D0, 0.03187D0,
& 0.03400D0, 0.04163D0, 0.05108D0, 0.05768D0, 0.06295D0,
& 0.06745D0, 0.08411D0, 0.10662D0, 0.12385D0, 0.13865D0,
& 0.15200D0, 0.17596D0, 0.20780D0, 0.25445D0, 0.29582D0,
& 0.36707D0, 0.42589D0, 0.47392D0, 0.52041D0, 0.55338D0,
& 0.57422D0, 0.58442D0, 0.58519D0, 0.57783D0, 0.56344D0,
& 0.54329D0, 0.51831D0, 0.48960D0, 0.45793D0, 0.42423D0,
& 0.38922D0, 0.35366D0, 0.31814D0, 0.28333D0, 0.24940D0,
& 0.21696D0, 0.18656D0, 0.15803D0, 0.10837D0, 0.06882D0,
& 0.03949D0, 0.01956D0, 0.00204D0, 0.00000D0/
DATA (FMRS(2,1,I, 9),I=1,49)/
& 0.01760D0, 0.02152D0, 0.02631D0, 0.02960D0, 0.03218D0,
& 0.03434D0, 0.04207D0, 0.05164D0, 0.05833D0, 0.06368D0,
& 0.06825D0, 0.08519D0, 0.10811D0, 0.12566D0, 0.14073D0,
& 0.15430D0, 0.17863D0, 0.21087D0, 0.25789D0, 0.29938D0,
& 0.37036D0, 0.42844D0, 0.47541D0, 0.52034D0, 0.55162D0,
& 0.57077D0, 0.57932D0, 0.57861D0, 0.56993D0, 0.55438D0,
& 0.53332D0, 0.50767D0, 0.47844D0, 0.44653D0, 0.41277D0,
& 0.37787D0, 0.34261D0, 0.30753D0, 0.27327D0, 0.24001D0,
& 0.20832D0, 0.17873D0, 0.15102D0, 0.10304D0, 0.06508D0,
& 0.03712D0, 0.01826D0, 0.00186D0, 0.00000D0/
DATA (FMRS(2,1,I,10),I=1,49)/
& 0.01775D0, 0.02171D0, 0.02655D0, 0.02988D0, 0.03249D0,
& 0.03468D0, 0.04249D0, 0.05219D0, 0.05897D0, 0.06440D0,
& 0.06904D0, 0.08625D0, 0.10956D0, 0.12741D0, 0.14273D0,
& 0.15651D0, 0.18119D0, 0.21379D0, 0.26115D0, 0.30273D0,
& 0.37339D0, 0.43070D0, 0.47663D0, 0.52004D0, 0.54971D0,
& 0.56723D0, 0.57424D0, 0.57214D0, 0.56221D0, 0.54564D0,
& 0.52375D0, 0.49748D0, 0.46783D0, 0.43572D0, 0.40192D0,
& 0.36718D0, 0.33221D0, 0.29755D0, 0.26385D0, 0.23124D0,
& 0.20028D0, 0.17145D0, 0.14454D0, 0.09813D0, 0.06166D0,
& 0.03497D0, 0.01708D0, 0.00171D0, 0.00000D0/
DATA (FMRS(2,1,I,11),I=1,49)/
& 0.01786D0, 0.02185D0, 0.02674D0, 0.03010D0, 0.03274D0,
& 0.03494D0, 0.04284D0, 0.05263D0, 0.05949D0, 0.06497D0,
& 0.06967D0, 0.08709D0, 0.11072D0, 0.12880D0, 0.14432D0,
& 0.15827D0, 0.18322D0, 0.21609D0, 0.26371D0, 0.30535D0,
& 0.37572D0, 0.43240D0, 0.47751D0, 0.51970D0, 0.54811D0,
& 0.56435D0, 0.57017D0, 0.56701D0, 0.55612D0, 0.53878D0,
& 0.51626D0, 0.48950D0, 0.45957D0, 0.42732D0, 0.39351D0,
& 0.35893D0, 0.32420D0, 0.28986D0, 0.25663D0, 0.22452D0,
& 0.19414D0, 0.16588D0, 0.13961D0, 0.09442D0, 0.05909D0,
& 0.03336D0, 0.01621D0, 0.00160D0, 0.00000D0/
DATA (FMRS(2,1,I,12),I=1,49)/
& 0.01811D0, 0.02217D0, 0.02715D0, 0.03057D0, 0.03326D0,
& 0.03551D0, 0.04357D0, 0.05358D0, 0.06059D0, 0.06620D0,
& 0.07102D0, 0.08890D0, 0.11320D0, 0.13179D0, 0.14772D0,
& 0.16201D0, 0.18751D0, 0.22095D0, 0.26905D0, 0.31076D0,
& 0.38043D0, 0.43573D0, 0.47902D0, 0.51865D0, 0.54434D0,
& 0.55794D0, 0.56131D0, 0.55592D0, 0.54308D0, 0.52418D0,
& 0.50041D0, 0.47277D0, 0.44227D0, 0.40979D0, 0.37605D0,
& 0.34185D0, 0.30765D0, 0.27411D0, 0.24188D0, 0.21085D0,
& 0.18166D0, 0.15463D0, 0.12966D0, 0.08698D0, 0.05397D0,
& 0.03017D0, 0.01449D0, 0.00138D0, 0.00000D0/
DATA (FMRS(2,1,I,13),I=1,49)/
& 0.01832D0, 0.02245D0, 0.02751D0, 0.03099D0, 0.03372D0,
& 0.03601D0, 0.04421D0, 0.05440D0, 0.06155D0, 0.06727D0,
& 0.07220D0, 0.09048D0, 0.11535D0, 0.13437D0, 0.15065D0,
& 0.16524D0, 0.19119D0, 0.22510D0, 0.27356D0, 0.31528D0,
& 0.38427D0, 0.43832D0, 0.48002D0, 0.51742D0, 0.54081D0,
& 0.55220D0, 0.55352D0, 0.54629D0, 0.53189D0, 0.51174D0,
& 0.48699D0, 0.45870D0, 0.42778D0, 0.39517D0, 0.36159D0,
& 0.32774D0, 0.29406D0, 0.26124D0, 0.22984D0, 0.19975D0,
& 0.17155D0, 0.14556D0, 0.12166D0, 0.08107D0, 0.04993D0,
& 0.02767D0, 0.01316D0, 0.00122D0, 0.00000D0/
DATA (FMRS(2,1,I,14),I=1,49)/
& 0.01856D0, 0.02276D0, 0.02791D0, 0.03145D0, 0.03424D0,
& 0.03657D0, 0.04493D0, 0.05533D0, 0.06263D0, 0.06849D0,
& 0.07353D0, 0.09227D0, 0.11778D0, 0.13727D0, 0.15393D0,
& 0.16884D0, 0.19528D0, 0.22966D0, 0.27847D0, 0.32014D0,
& 0.38833D0, 0.44089D0, 0.48079D0, 0.51572D0, 0.53660D0,
& 0.54555D0, 0.54466D0, 0.53550D0, 0.51948D0, 0.49806D0,
& 0.47232D0, 0.44337D0, 0.41209D0, 0.37941D0, 0.34606D0,
& 0.31264D0, 0.27962D0, 0.24761D0, 0.21707D0, 0.18804D0,
& 0.16093D0, 0.13609D0, 0.11331D0, 0.07496D0, 0.04577D0,
& 0.02513D0, 0.01183D0, 0.00106D0, 0.00000D0/
DATA (FMRS(2,1,I,15),I=1,49)/
& 0.01882D0, 0.02309D0, 0.02833D0, 0.03194D0, 0.03478D0,
& 0.03716D0, 0.04569D0, 0.05632D0, 0.06378D0, 0.06977D0,
& 0.07493D0, 0.09414D0, 0.12031D0, 0.14028D0, 0.15732D0,
& 0.17254D0, 0.19946D0, 0.23430D0, 0.28337D0, 0.32492D0,
& 0.39212D0, 0.44309D0, 0.48109D0, 0.51344D0, 0.53176D0,
& 0.53830D0, 0.53520D0, 0.52410D0, 0.50654D0, 0.48389D0,
& 0.45725D0, 0.42772D0, 0.39621D0, 0.36351D0, 0.33050D0,
& 0.29757D0, 0.26525D0, 0.23404D0, 0.20451D0, 0.17653D0,
& 0.15059D0, 0.12691D0, 0.10526D0, 0.06909D0, 0.04183D0,
& 0.02276D0, 0.01059D0, 0.00092D0, 0.00000D0/
DATA (FMRS(2,1,I,16),I=1,49)/
& 0.01904D0, 0.02338D0, 0.02872D0, 0.03239D0, 0.03528D0,
& 0.03770D0, 0.04639D0, 0.05722D0, 0.06483D0, 0.07094D0,
& 0.07621D0, 0.09585D0, 0.12261D0, 0.14301D0, 0.16039D0,
& 0.17588D0, 0.20321D0, 0.23842D0, 0.28769D0, 0.32908D0,
& 0.39530D0, 0.44481D0, 0.48105D0, 0.51110D0, 0.52712D0,
& 0.53155D0, 0.52655D0, 0.51382D0, 0.49491D0, 0.47126D0,
& 0.44390D0, 0.41395D0, 0.38228D0, 0.34968D0, 0.31695D0,
& 0.28453D0, 0.25288D0, 0.22245D0, 0.19380D0, 0.16677D0,
& 0.14180D0, 0.11912D0, 0.09847D0, 0.06418D0, 0.03856D0,
& 0.02081D0, 0.00959D0, 0.00081D0, 0.00000D0/
DATA (FMRS(2,1,I,17),I=1,49)/
& 0.01928D0, 0.02369D0, 0.02911D0, 0.03284D0, 0.03578D0,
& 0.03825D0, 0.04709D0, 0.05813D0, 0.06589D0, 0.07213D0,
& 0.07751D0, 0.09758D0, 0.12493D0, 0.14576D0, 0.16348D0,
& 0.17924D0, 0.20696D0, 0.24251D0, 0.29193D0, 0.33312D0,
& 0.39831D0, 0.44629D0, 0.48077D0, 0.50852D0, 0.52228D0,
& 0.52463D0, 0.51781D0, 0.50355D0, 0.48335D0, 0.45879D0,
& 0.43078D0, 0.40049D0, 0.36872D0, 0.33629D0, 0.30386D0,
& 0.27197D0, 0.24101D0, 0.21137D0, 0.18360D0, 0.15751D0,
& 0.13349D0, 0.11178D0, 0.09210D0, 0.05961D0, 0.03555D0,
& 0.01901D0, 0.00868D0, 0.00071D0, 0.00000D0/
DATA (FMRS(2,1,I,18),I=1,49)/
& 0.01947D0, 0.02394D0, 0.02943D0, 0.03322D0, 0.03621D0,
& 0.03871D0, 0.04769D0, 0.05889D0, 0.06678D0, 0.07312D0,
& 0.07860D0, 0.09903D0, 0.12687D0, 0.14804D0, 0.16603D0,
& 0.18199D0, 0.21002D0, 0.24583D0, 0.29534D0, 0.33632D0,
& 0.40060D0, 0.44729D0, 0.48029D0, 0.50614D0, 0.51810D0,
& 0.51876D0, 0.51049D0, 0.49502D0, 0.47387D0, 0.44861D0,
& 0.42013D0, 0.38960D0, 0.35780D0, 0.32553D0, 0.29342D0,
& 0.26197D0, 0.23158D0, 0.20258D0, 0.17557D0, 0.15022D0,
& 0.12699D0, 0.10608D0, 0.08715D0, 0.05607D0, 0.03324D0,
& 0.01765D0, 0.00799D0, 0.00064D0, 0.00000D0/
DATA (FMRS(2,1,I,19),I=1,49)/
& 0.01970D0, 0.02424D0, 0.02983D0, 0.03369D0, 0.03672D0,
& 0.03927D0, 0.04841D0, 0.05983D0, 0.06787D0, 0.07433D0,
& 0.07993D0, 0.10079D0, 0.12921D0, 0.15080D0, 0.16909D0,
& 0.18531D0, 0.21368D0, 0.24977D0, 0.29932D0, 0.34002D0,
& 0.40312D0, 0.44820D0, 0.47944D0, 0.50301D0, 0.51281D0,
& 0.51154D0, 0.50156D0, 0.48470D0, 0.46252D0, 0.43645D0,
& 0.40748D0, 0.37672D0, 0.34495D0, 0.31293D0, 0.28123D0,
& 0.25036D0, 0.22064D0, 0.19244D0, 0.16630D0, 0.14187D0,
& 0.11955D0, 0.09954D0, 0.08152D0, 0.05209D0, 0.03065D0,
& 0.01614D0, 0.00723D0, 0.00056D0, 0.00000D0/
DATA (FMRS(2,1,I,20),I=1,49)/
& 0.01991D0, 0.02452D0, 0.03019D0, 0.03410D0, 0.03718D0,
& 0.03977D0, 0.04905D0, 0.06066D0, 0.06884D0, 0.07541D0,
& 0.08111D0, 0.10235D0, 0.13129D0, 0.15323D0, 0.17180D0,
& 0.18822D0, 0.21689D0, 0.25320D0, 0.30276D0, 0.34318D0,
& 0.40521D0, 0.44885D0, 0.47855D0, 0.50013D0, 0.50806D0,
& 0.50515D0, 0.49374D0, 0.47571D0, 0.45269D0, 0.42596D0,
& 0.39662D0, 0.36569D0, 0.33399D0, 0.30222D0, 0.27090D0,
& 0.24056D0, 0.21144D0, 0.18393D0, 0.15855D0, 0.13491D0,
& 0.11336D0, 0.09413D0, 0.07687D0, 0.04883D0, 0.02854D0,
& 0.01493D0, 0.00663D0, 0.00051D0, 0.00000D0/
DATA (FMRS(2,1,I,21),I=1,49)/
& 0.02011D0, 0.02477D0, 0.03051D0, 0.03448D0, 0.03760D0,
& 0.04023D0, 0.04965D0, 0.06143D0, 0.06973D0, 0.07641D0,
& 0.08220D0, 0.10379D0, 0.13319D0, 0.15544D0, 0.17424D0,
& 0.19085D0, 0.21976D0, 0.25625D0, 0.30577D0, 0.34590D0,
& 0.40689D0, 0.44921D0, 0.47746D0, 0.49725D0, 0.50352D0,
& 0.49914D0, 0.48649D0, 0.46748D0, 0.44367D0, 0.41645D0,
& 0.38678D0, 0.35582D0, 0.32417D0, 0.29264D0, 0.26169D0,
& 0.23187D0, 0.20335D0, 0.17646D0, 0.15176D0, 0.12881D0,
& 0.10798D0, 0.08943D0, 0.07284D0, 0.04602D0, 0.02675D0,
& 0.01389D0, 0.00613D0, 0.00046D0, 0.00000D0/
DATA (FMRS(2,1,I,22),I=1,49)/
& 0.02035D0, 0.02509D0, 0.03093D0, 0.03496D0, 0.03814D0,
& 0.04081D0, 0.05040D0, 0.06241D0, 0.07087D0, 0.07768D0,
& 0.08359D0, 0.10562D0, 0.13559D0, 0.15824D0, 0.17734D0,
& 0.19417D0, 0.22338D0, 0.26006D0, 0.30949D0, 0.34920D0,
& 0.40885D0, 0.44948D0, 0.47592D0, 0.49348D0, 0.49770D0,
& 0.49152D0, 0.47736D0, 0.45716D0, 0.43246D0, 0.40467D0,
& 0.37468D0, 0.34367D0, 0.31217D0, 0.28097D0, 0.25052D0,
& 0.22133D0, 0.19355D0, 0.16747D0, 0.14359D0, 0.12150D0,
& 0.10155D0, 0.08384D0, 0.06806D0, 0.04272D0, 0.02464D0,
& 0.01269D0, 0.00554D0, 0.00040D0, 0.00000D0/
DATA (FMRS(2,1,I,23),I=1,49)/
& 0.02058D0, 0.02539D0, 0.03132D0, 0.03542D0, 0.03865D0,
& 0.04137D0, 0.05112D0, 0.06333D0, 0.07195D0, 0.07888D0,
& 0.08490D0, 0.10735D0, 0.13786D0, 0.16087D0, 0.18023D0,
& 0.19726D0, 0.22673D0, 0.26356D0, 0.31287D0, 0.35216D0,
& 0.41052D0, 0.44953D0, 0.47430D0, 0.48980D0, 0.49215D0,
& 0.48435D0, 0.46885D0, 0.44758D0, 0.42215D0, 0.39387D0,
& 0.36366D0, 0.33261D0, 0.30132D0, 0.27045D0, 0.24050D0,
& 0.21190D0, 0.18476D0, 0.15947D0, 0.13635D0, 0.11504D0,
& 0.09587D0, 0.07894D0, 0.06387D0, 0.03984D0, 0.02282D0,
& 0.01167D0, 0.00505D0, 0.00036D0, 0.00000D0/
DATA (FMRS(2,1,I,24),I=1,49)/
& 0.02080D0, 0.02568D0, 0.03170D0, 0.03585D0, 0.03914D0,
& 0.04189D0, 0.05180D0, 0.06421D0, 0.07296D0, 0.08001D0,
& 0.08614D0, 0.10897D0, 0.13997D0, 0.16330D0, 0.18290D0,
& 0.20010D0, 0.22978D0, 0.26672D0, 0.31586D0, 0.35473D0,
& 0.41182D0, 0.44931D0, 0.47248D0, 0.48612D0, 0.48676D0,
& 0.47750D0, 0.46081D0, 0.43866D0, 0.41258D0, 0.38389D0,
& 0.35352D0, 0.32245D0, 0.29140D0, 0.26089D0, 0.23143D0,
& 0.20340D0, 0.17690D0, 0.15229D0, 0.12990D0, 0.10931D0,
& 0.09084D0, 0.07461D0, 0.06021D0, 0.03734D0, 0.02125D0,
& 0.01078D0, 0.00462D0, 0.00032D0, 0.00000D0/
DATA (FMRS(2,1,I,25),I=1,49)/
& 0.02102D0, 0.02596D0, 0.03207D0, 0.03629D0, 0.03962D0,
& 0.04242D0, 0.05248D0, 0.06508D0, 0.07398D0, 0.08115D0,
& 0.08738D0, 0.11059D0, 0.14207D0, 0.16573D0, 0.18556D0,
& 0.20292D0, 0.23281D0, 0.26985D0, 0.31879D0, 0.35722D0,
& 0.41303D0, 0.44900D0, 0.47060D0, 0.48240D0, 0.48138D0,
& 0.47074D0, 0.45292D0, 0.42993D0, 0.40324D0, 0.37421D0,
& 0.34370D0, 0.31266D0, 0.28186D0, 0.25172D0, 0.22275D0,
& 0.19528D0, 0.16943D0, 0.14547D0, 0.12379D0, 0.10391D0,
& 0.08611D0, 0.07055D0, 0.05678D0, 0.03501D0, 0.01980D0,
& 0.00997D0, 0.00424D0, 0.00029D0, 0.00000D0/
DATA (FMRS(2,1,I,26),I=1,49)/
& 0.02124D0, 0.02625D0, 0.03244D0, 0.03672D0, 0.04010D0,
& 0.04294D0, 0.05315D0, 0.06595D0, 0.07499D0, 0.08227D0,
& 0.08860D0, 0.11218D0, 0.14413D0, 0.16809D0, 0.18813D0,
& 0.20564D0, 0.23571D0, 0.27281D0, 0.32152D0, 0.35948D0,
& 0.41398D0, 0.44847D0, 0.46857D0, 0.47858D0, 0.47599D0,
& 0.46404D0, 0.44519D0, 0.42139D0, 0.39420D0, 0.36490D0,
& 0.33431D0, 0.30337D0, 0.27282D0, 0.24304D0, 0.21455D0,
& 0.18765D0, 0.16244D0, 0.13911D0, 0.11808D0, 0.09890D0,
& 0.08174D0, 0.06681D0, 0.05361D0, 0.03286D0, 0.01847D0,
& 0.00924D0, 0.00390D0, 0.00026D0, 0.00000D0/
DATA (FMRS(2,1,I,27),I=1,49)/
& 0.02145D0, 0.02652D0, 0.03279D0, 0.03713D0, 0.04055D0,
& 0.04343D0, 0.05378D0, 0.06677D0, 0.07594D0, 0.08333D0,
& 0.08975D0, 0.11368D0, 0.14607D0, 0.17031D0, 0.19054D0,
& 0.20819D0, 0.23841D0, 0.27555D0, 0.32402D0, 0.36153D0,
& 0.41478D0, 0.44786D0, 0.46655D0, 0.47490D0, 0.47088D0,
& 0.45773D0, 0.43795D0, 0.41346D0, 0.38583D0, 0.35628D0,
& 0.32564D0, 0.29483D0, 0.26454D0, 0.23512D0, 0.20709D0,
& 0.18074D0, 0.15610D0, 0.13337D0, 0.11295D0, 0.09439D0,
& 0.07783D0, 0.06346D0, 0.05079D0, 0.03096D0, 0.01730D0,
& 0.00860D0, 0.00360D0, 0.00023D0, 0.00000D0/
DATA (FMRS(2,1,I,28),I=1,49)/
& 0.02164D0, 0.02677D0, 0.03312D0, 0.03751D0, 0.04098D0,
& 0.04390D0, 0.05439D0, 0.06755D0, 0.07684D0, 0.08433D0,
& 0.09084D0, 0.11510D0, 0.14789D0, 0.17239D0, 0.19279D0,
& 0.21056D0, 0.24091D0, 0.27806D0, 0.32630D0, 0.36334D0,
& 0.41540D0, 0.44716D0, 0.46451D0, 0.47135D0, 0.46602D0,
& 0.45177D0, 0.43117D0, 0.40606D0, 0.37805D0, 0.34829D0,
& 0.31763D0, 0.28699D0, 0.25693D0, 0.22788D0, 0.20031D0,
& 0.17447D0, 0.15036D0, 0.12818D0, 0.10834D0, 0.09032D0,
& 0.07432D0, 0.06046D0, 0.04827D0, 0.02929D0, 0.01628D0,
& 0.00804D0, 0.00334D0, 0.00021D0, 0.00000D0/
DATA (FMRS(2,1,I,29),I=1,49)/
& 0.02184D0, 0.02703D0, 0.03346D0, 0.03790D0, 0.04142D0,
& 0.04437D0, 0.05500D0, 0.06833D0, 0.07775D0, 0.08534D0,
& 0.09195D0, 0.11653D0, 0.14972D0, 0.17447D0, 0.19503D0,
& 0.21292D0, 0.24339D0, 0.28054D0, 0.32851D0, 0.36507D0,
& 0.41592D0, 0.44635D0, 0.46240D0, 0.46773D0, 0.46111D0,
& 0.44581D0, 0.42442D0, 0.39875D0, 0.37037D0, 0.34044D0,
& 0.30980D0, 0.27932D0, 0.24952D0, 0.22085D0, 0.19375D0,
& 0.16840D0, 0.14482D0, 0.12320D0, 0.10392D0, 0.08643D0,
& 0.07097D0, 0.05759D0, 0.04588D0, 0.02770D0, 0.01531D0,
& 0.00752D0, 0.00311D0, 0.00019D0, 0.00000D0/
DATA (FMRS(2,1,I,30),I=1,49)/
& 0.02204D0, 0.02729D0, 0.03379D0, 0.03829D0, 0.04185D0,
& 0.04484D0, 0.05560D0, 0.06911D0, 0.07865D0, 0.08634D0,
& 0.09303D0, 0.11793D0, 0.15151D0, 0.17649D0, 0.19722D0,
& 0.21521D0, 0.24577D0, 0.28291D0, 0.33057D0, 0.36667D0,
& 0.41631D0, 0.44543D0, 0.46021D0, 0.46408D0, 0.45622D0,
& 0.43995D0, 0.41780D0, 0.39163D0, 0.36293D0, 0.33287D0,
& 0.30229D0, 0.27195D0, 0.24246D0, 0.21416D0, 0.18750D0,
& 0.16265D0, 0.13957D0, 0.11850D0, 0.09976D0, 0.08278D0,
& 0.06783D0, 0.05492D0, 0.04366D0, 0.02623D0, 0.01442D0,
& 0.00705D0, 0.00289D0, 0.00017D0, 0.00000D0/
DATA (FMRS(2,1,I,31),I=1,49)/
& 0.02222D0, 0.02753D0, 0.03410D0, 0.03866D0, 0.04226D0,
& 0.04528D0, 0.05617D0, 0.06985D0, 0.07951D0, 0.08729D0,
& 0.09407D0, 0.11927D0, 0.15320D0, 0.17841D0, 0.19928D0,
& 0.21737D0, 0.24802D0, 0.28513D0, 0.33249D0, 0.36812D0,
& 0.41660D0, 0.44449D0, 0.45808D0, 0.46059D0, 0.45160D0,
& 0.43442D0, 0.41159D0, 0.38497D0, 0.35599D0, 0.32584D0,
& 0.29532D0, 0.26514D0, 0.23594D0, 0.20800D0, 0.18176D0,
& 0.15738D0, 0.13478D0, 0.11421D0, 0.09597D0, 0.07947D0,
& 0.06498D0, 0.05251D0, 0.04166D0, 0.02491D0, 0.01363D0,
& 0.00662D0, 0.00270D0, 0.00016D0, 0.00000D0/
DATA (FMRS(2,1,I,32),I=1,49)/
& 0.02240D0, 0.02776D0, 0.03441D0, 0.03901D0, 0.04265D0,
& 0.04571D0, 0.05672D0, 0.07055D0, 0.08032D0, 0.08819D0,
& 0.09505D0, 0.12053D0, 0.15480D0, 0.18021D0, 0.20120D0,
& 0.21937D0, 0.25009D0, 0.28716D0, 0.33421D0, 0.36938D0,
& 0.41675D0, 0.44346D0, 0.45593D0, 0.45721D0, 0.44717D0,
& 0.42917D0, 0.40572D0, 0.37869D0, 0.34947D0, 0.31928D0,
& 0.28882D0, 0.25885D0, 0.22992D0, 0.20233D0, 0.17646D0,
& 0.15252D0, 0.13038D0, 0.11028D0, 0.09251D0, 0.07647D0,
& 0.06240D0, 0.05033D0, 0.03984D0, 0.02372D0, 0.01293D0,
& 0.00625D0, 0.00253D0, 0.00015D0, 0.00000D0/
DATA (FMRS(2,1,I,33),I=1,49)/
& 0.02258D0, 0.02800D0, 0.03471D0, 0.03936D0, 0.04304D0,
& 0.04613D0, 0.05727D0, 0.07126D0, 0.08114D0, 0.08911D0,
& 0.09604D0, 0.12181D0, 0.15642D0, 0.18202D0, 0.20315D0,
& 0.22140D0, 0.25219D0, 0.28920D0, 0.33594D0, 0.37065D0,
& 0.41690D0, 0.44243D0, 0.45378D0, 0.45384D0, 0.44278D0,
& 0.42397D0, 0.39993D0, 0.37250D0, 0.34307D0, 0.31283D0,
& 0.28245D0, 0.25269D0, 0.22404D0, 0.19681D0, 0.17131D0,
& 0.14780D0, 0.12613D0, 0.10648D0, 0.08918D0, 0.07357D0,
& 0.05991D0, 0.04824D0, 0.03811D0, 0.02259D0, 0.01226D0,
& 0.00589D0, 0.00237D0, 0.00014D0, 0.00000D0/
DATA (FMRS(2,1,I,34),I=1,49)/
& 0.02276D0, 0.02823D0, 0.03502D0, 0.03972D0, 0.04344D0,
& 0.04656D0, 0.05782D0, 0.07197D0, 0.08196D0, 0.09001D0,
& 0.09702D0, 0.12306D0, 0.15799D0, 0.18378D0, 0.20502D0,
& 0.22334D0, 0.25418D0, 0.29111D0, 0.33751D0, 0.37174D0,
& 0.41686D0, 0.44123D0, 0.45149D0, 0.45035D0, 0.43832D0,
& 0.41874D0, 0.39416D0, 0.36638D0, 0.33679D0, 0.30651D0,
& 0.27625D0, 0.24670D0, 0.21831D0, 0.19144D0, 0.16636D0,
& 0.14329D0, 0.12204D0, 0.10286D0, 0.08597D0, 0.07080D0,
& 0.05755D0, 0.04624D0, 0.03646D0, 0.02153D0, 0.01162D0,
& 0.00556D0, 0.00222D0, 0.00012D0, 0.00000D0/
DATA (FMRS(2,1,I,35),I=1,49)/
& 0.02294D0, 0.02846D0, 0.03531D0, 0.04006D0, 0.04381D0,
& 0.04697D0, 0.05834D0, 0.07264D0, 0.08274D0, 0.09087D0,
& 0.09796D0, 0.12426D0, 0.15949D0, 0.18547D0, 0.20682D0,
& 0.22520D0, 0.25608D0, 0.29293D0, 0.33900D0, 0.37277D0,
& 0.41683D0, 0.44010D0, 0.44933D0, 0.44706D0, 0.43413D0,
& 0.41383D0, 0.38877D0, 0.36068D0, 0.33093D0, 0.30063D0,
& 0.27049D0, 0.24114D0, 0.21302D0, 0.18649D0, 0.16180D0,
& 0.13914D0, 0.11828D0, 0.09955D0, 0.08303D0, 0.06826D0,
& 0.05540D0, 0.04443D0, 0.03497D0, 0.02057D0, 0.01106D0,
& 0.00526D0, 0.00209D0, 0.00012D0, 0.00000D0/
DATA (FMRS(2,1,I,36),I=1,49)/
& 0.02310D0, 0.02867D0, 0.03558D0, 0.04038D0, 0.04417D0,
& 0.04736D0, 0.05885D0, 0.07328D0, 0.08348D0, 0.09170D0,
& 0.09885D0, 0.12540D0, 0.16092D0, 0.18705D0, 0.20850D0,
& 0.22693D0, 0.25784D0, 0.29461D0, 0.34036D0, 0.37368D0,
& 0.41672D0, 0.43895D0, 0.44722D0, 0.44390D0, 0.43013D0,
& 0.40920D0, 0.38369D0, 0.35531D0, 0.32545D0, 0.29515D0,
& 0.26511D0, 0.23598D0, 0.20812D0, 0.18191D0, 0.15758D0,
& 0.13530D0, 0.11483D0, 0.09649D0, 0.08034D0, 0.06595D0,
& 0.05344D0, 0.04278D0, 0.03361D0, 0.01970D0, 0.01054D0,
& 0.00499D0, 0.00197D0, 0.00011D0, 0.00000D0/
DATA (FMRS(2,1,I,37),I=1,49)/
& 0.02327D0, 0.02889D0, 0.03587D0, 0.04071D0, 0.04453D0,
& 0.04775D0, 0.05935D0, 0.07393D0, 0.08423D0, 0.09253D0,
& 0.09975D0, 0.12655D0, 0.16235D0, 0.18864D0, 0.21018D0,
& 0.22866D0, 0.25959D0, 0.29626D0, 0.34166D0, 0.37452D0,
& 0.41652D0, 0.43771D0, 0.44502D0, 0.44067D0, 0.42606D0,
& 0.40453D0, 0.37859D0, 0.34994D0, 0.31996D0, 0.28968D0,
& 0.25976D0, 0.23084D0, 0.20328D0, 0.17738D0, 0.15341D0,
& 0.13150D0, 0.11145D0, 0.09348D0, 0.07773D0, 0.06369D0,
& 0.05153D0, 0.04117D0, 0.03229D0, 0.01885D0, 0.01005D0,
& 0.00474D0, 0.00186D0, 0.00010D0, 0.00000D0/
DATA (FMRS(2,1,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,2,I, 1),I=1,49)/
& 0.00683D0, 0.00832D0, 0.01013D0, 0.01138D0, 0.01237D0,
& 0.01320D0, 0.01619D0, 0.02004D0, 0.02286D0, 0.02522D0,
& 0.02744D0, 0.03623D0, 0.04952D0, 0.06032D0, 0.06982D0,
& 0.07843D0, 0.09385D0, 0.11395D0, 0.14220D0, 0.16592D0,
& 0.20382D0, 0.23228D0, 0.25344D0, 0.27158D0, 0.28216D0,
& 0.28647D0, 0.28570D0, 0.28068D0, 0.27216D0, 0.26127D0,
& 0.24773D0, 0.23281D0, 0.21663D0, 0.19968D0, 0.18252D0,
& 0.16522D0, 0.14809D0, 0.13153D0, 0.11576D0, 0.10050D0,
& 0.08631D0, 0.07335D0, 0.06127D0, 0.04098D0, 0.02531D0,
& 0.01409D0, 0.00672D0, 0.00064D0, 0.00000D0/
DATA (FMRS(2,2,I, 2),I=1,49)/
& 0.00687D0, 0.00838D0, 0.01023D0, 0.01151D0, 0.01252D0,
& 0.01336D0, 0.01643D0, 0.02037D0, 0.02327D0, 0.02569D0,
& 0.02797D0, 0.03698D0, 0.05059D0, 0.06162D0, 0.07129D0,
& 0.08004D0, 0.09567D0, 0.11595D0, 0.14429D0, 0.16793D0,
& 0.20539D0, 0.23318D0, 0.25356D0, 0.27069D0, 0.28025D0,
& 0.28363D0, 0.28200D0, 0.27624D0, 0.26713D0, 0.25572D0,
& 0.24185D0, 0.22669D0, 0.21040D0, 0.19345D0, 0.17637D0,
& 0.15928D0, 0.14242D0, 0.12615D0, 0.11076D0, 0.09591D0,
& 0.08215D0, 0.06963D0, 0.05800D0, 0.03856D0, 0.02367D0,
& 0.01309D0, 0.00619D0, 0.00057D0, 0.00000D0/
DATA (FMRS(2,2,I, 3),I=1,49)/
& 0.00693D0, 0.00848D0, 0.01038D0, 0.01170D0, 0.01274D0,
& 0.01362D0, 0.01679D0, 0.02088D0, 0.02389D0, 0.02641D0,
& 0.02877D0, 0.03812D0, 0.05220D0, 0.06356D0, 0.07349D0,
& 0.08244D0, 0.09836D0, 0.11888D0, 0.14732D0, 0.17082D0,
& 0.20757D0, 0.23434D0, 0.25356D0, 0.26918D0, 0.27725D0,
& 0.27927D0, 0.27642D0, 0.26960D0, 0.25969D0, 0.24758D0,
& 0.23327D0, 0.21778D0, 0.20136D0, 0.18446D0, 0.16756D0,
& 0.15079D0, 0.13434D0, 0.11852D0, 0.10371D0, 0.08946D0,
& 0.07631D0, 0.06442D0, 0.05345D0, 0.03522D0, 0.02142D0,
& 0.01172D0, 0.00548D0, 0.00049D0, 0.00000D0/
DATA (FMRS(2,2,I, 4),I=1,49)/
& 0.00697D0, 0.00855D0, 0.01050D0, 0.01184D0, 0.01291D0,
& 0.01380D0, 0.01706D0, 0.02126D0, 0.02435D0, 0.02694D0,
& 0.02937D0, 0.03897D0, 0.05339D0, 0.06499D0, 0.07510D0,
& 0.08419D0, 0.10031D0, 0.12100D0, 0.14949D0, 0.17285D0,
& 0.20905D0, 0.23506D0, 0.25342D0, 0.26794D0, 0.27493D0,
& 0.27599D0, 0.27230D0, 0.26475D0, 0.25426D0, 0.24171D0,
& 0.22712D0, 0.21140D0, 0.19495D0, 0.17811D0, 0.16138D0,
& 0.14485D0, 0.12869D0, 0.11323D0, 0.09881D0, 0.08500D0,
& 0.07230D0, 0.06086D0, 0.05034D0, 0.03297D0, 0.01992D0,
& 0.01081D0, 0.00501D0, 0.00044D0, 0.00000D0/
DATA (FMRS(2,2,I, 5),I=1,49)/
& 0.00702D0, 0.00863D0, 0.01062D0, 0.01200D0, 0.01309D0,
& 0.01401D0, 0.01735D0, 0.02167D0, 0.02485D0, 0.02751D0,
& 0.03001D0, 0.03988D0, 0.05465D0, 0.06649D0, 0.07678D0,
& 0.08602D0, 0.10233D0, 0.12317D0, 0.15168D0, 0.17488D0,
& 0.21046D0, 0.23564D0, 0.25309D0, 0.26645D0, 0.27234D0,
& 0.27243D0, 0.26786D0, 0.25959D0, 0.24854D0, 0.23557D0,
& 0.22068D0, 0.20486D0, 0.18841D0, 0.17163D0, 0.15506D0,
& 0.13880D0, 0.12296D0, 0.10788D0, 0.09387D0, 0.08052D0,
& 0.06829D0, 0.05730D0, 0.04726D0, 0.03074D0, 0.01844D0,
& 0.00993D0, 0.00456D0, 0.00039D0, 0.00000D0/
DATA (FMRS(2,2,I, 6),I=1,49)/
& 0.00706D0, 0.00870D0, 0.01073D0, 0.01213D0, 0.01325D0,
& 0.01419D0, 0.01761D0, 0.02203D0, 0.02528D0, 0.02801D0,
& 0.03057D0, 0.04067D0, 0.05575D0, 0.06780D0, 0.07825D0,
& 0.08760D0, 0.10408D0, 0.12504D0, 0.15354D0, 0.17659D0,
& 0.21162D0, 0.23607D0, 0.25274D0, 0.26511D0, 0.27006D0,
& 0.26933D0, 0.26403D0, 0.25518D0, 0.24367D0, 0.23035D0,
& 0.21525D0, 0.19935D0, 0.18289D0, 0.16620D0, 0.14980D0,
& 0.13377D0, 0.11822D0, 0.10346D0, 0.08981D0, 0.07685D0,
& 0.06502D0, 0.05441D0, 0.04475D0, 0.02894D0, 0.01725D0,
& 0.00923D0, 0.00420D0, 0.00035D0, 0.00000D0/
DATA (FMRS(2,2,I, 7),I=1,49)/
& 0.00711D0, 0.00877D0, 0.01083D0, 0.01227D0, 0.01340D0,
& 0.01436D0, 0.01785D0, 0.02237D0, 0.02570D0, 0.02850D0,
& 0.03112D0, 0.04143D0, 0.05680D0, 0.06905D0, 0.07964D0,
& 0.08911D0, 0.10573D0, 0.12679D0, 0.15527D0, 0.17816D0,
& 0.21263D0, 0.23638D0, 0.25229D0, 0.26373D0, 0.26781D0,
& 0.26630D0, 0.26033D0, 0.25095D0, 0.23903D0, 0.22536D0,
& 0.21011D0, 0.19416D0, 0.17766D0, 0.16111D0, 0.14488D0,
& 0.12910D0, 0.11382D0, 0.09936D0, 0.08606D0, 0.07347D0,
& 0.06201D0, 0.05178D0, 0.04247D0, 0.02732D0, 0.01619D0,
& 0.00860D0, 0.00389D0, 0.00031D0, 0.00000D0/
DATA (FMRS(2,2,I, 8),I=1,49)/
& 0.00716D0, 0.00885D0, 0.01095D0, 0.01241D0, 0.01357D0,
& 0.01455D0, 0.01812D0, 0.02275D0, 0.02616D0, 0.02902D0,
& 0.03170D0, 0.04225D0, 0.05792D0, 0.07038D0, 0.08112D0,
& 0.09070D0, 0.10747D0, 0.12863D0, 0.15707D0, 0.17976D0,
& 0.21362D0, 0.23661D0, 0.25172D0, 0.26218D0, 0.26535D0,
& 0.26303D0, 0.25640D0, 0.24647D0, 0.23413D0, 0.22018D0,
& 0.20477D0, 0.18875D0, 0.17228D0, 0.15585D0, 0.13983D0,
& 0.12430D0, 0.10932D0, 0.09519D0, 0.08225D0, 0.07005D0,
& 0.05898D0, 0.04912D0, 0.04018D0, 0.02570D0, 0.01514D0,
& 0.00799D0, 0.00358D0, 0.00028D0, 0.00000D0/
DATA (FMRS(2,2,I, 9),I=1,49)/
& 0.00720D0, 0.00891D0, 0.01105D0, 0.01254D0, 0.01372D0,
& 0.01472D0, 0.01836D0, 0.02308D0, 0.02656D0, 0.02948D0,
& 0.03221D0, 0.04297D0, 0.05891D0, 0.07154D0, 0.08241D0,
& 0.09208D0, 0.10897D0, 0.13020D0, 0.15860D0, 0.18111D0,
& 0.21443D0, 0.23674D0, 0.25116D0, 0.26078D0, 0.26316D0,
& 0.26017D0, 0.25299D0, 0.24260D0, 0.22991D0, 0.21577D0,
& 0.20023D0, 0.18414D0, 0.16776D0, 0.15141D0, 0.13557D0,
& 0.12027D0, 0.10555D0, 0.09171D0, 0.07908D0, 0.06721D0,
& 0.05646D0, 0.04691D0, 0.03829D0, 0.02437D0, 0.01428D0,
& 0.00749D0, 0.00333D0, 0.00026D0, 0.00000D0/
DATA (FMRS(2,2,I,10),I=1,49)/
& 0.00724D0, 0.00898D0, 0.01115D0, 0.01266D0, 0.01386D0,
& 0.01488D0, 0.01859D0, 0.02340D0, 0.02695D0, 0.02993D0,
& 0.03271D0, 0.04366D0, 0.05985D0, 0.07265D0, 0.08364D0,
& 0.09340D0, 0.11040D0, 0.13168D0, 0.16002D0, 0.18235D0,
& 0.21512D0, 0.23679D0, 0.25054D0, 0.25935D0, 0.26099D0,
& 0.25738D0, 0.24967D0, 0.23885D0, 0.22588D0, 0.21153D0,
& 0.19588D0, 0.17977D0, 0.16345D0, 0.14723D0, 0.13156D0,
& 0.11648D0, 0.10202D0, 0.08846D0, 0.07613D0, 0.06457D0,
& 0.05413D0, 0.04488D0, 0.03655D0, 0.02315D0, 0.01349D0,
& 0.00703D0, 0.00311D0, 0.00024D0, 0.00000D0/
DATA (FMRS(2,2,I,11),I=1,49)/
& 0.00727D0, 0.00904D0, 0.01123D0, 0.01276D0, 0.01398D0,
& 0.01501D0, 0.01877D0, 0.02366D0, 0.02727D0, 0.03029D0,
& 0.03311D0, 0.04422D0, 0.06061D0, 0.07353D0, 0.08461D0,
& 0.09444D0, 0.11152D0, 0.13285D0, 0.16112D0, 0.18330D0,
& 0.21564D0, 0.23680D0, 0.25001D0, 0.25818D0, 0.25925D0,
& 0.25517D0, 0.24705D0, 0.23591D0, 0.22272D0, 0.20821D0,
& 0.19248D0, 0.17638D0, 0.16011D0, 0.14399D0, 0.12847D0,
& 0.11356D0, 0.09932D0, 0.08597D0, 0.07388D0, 0.06256D0,
& 0.05235D0, 0.04334D0, 0.03522D0, 0.02223D0, 0.01290D0,
& 0.00670D0, 0.00295D0, 0.00022D0, 0.00000D0/
DATA (FMRS(2,2,I,12),I=1,49)/
& 0.00735D0, 0.00915D0, 0.01141D0, 0.01298D0, 0.01423D0,
& 0.01529D0, 0.01917D0, 0.02422D0, 0.02794D0, 0.03106D0,
& 0.03397D0, 0.04541D0, 0.06221D0, 0.07541D0, 0.08668D0,
& 0.09664D0, 0.11388D0, 0.13528D0, 0.16340D0, 0.18523D0,
& 0.21662D0, 0.23667D0, 0.24876D0, 0.25560D0, 0.25550D0,
& 0.25041D0, 0.24145D0, 0.22968D0, 0.21606D0, 0.20125D0,
& 0.18540D0, 0.16932D0, 0.15319D0, 0.13731D0, 0.12210D0,
& 0.10759D0, 0.09378D0, 0.08090D0, 0.06929D0, 0.05847D0,
& 0.04874D0, 0.04022D0, 0.03256D0, 0.02039D0, 0.01173D0,
& 0.00603D0, 0.00263D0, 0.00019D0, 0.00000D0/
DATA (FMRS(2,2,I,13),I=1,49)/
& 0.00742D0, 0.00926D0, 0.01156D0, 0.01317D0, 0.01446D0,
& 0.01554D0, 0.01952D0, 0.02471D0, 0.02853D0, 0.03173D0,
& 0.03472D0, 0.04644D0, 0.06360D0, 0.07703D0, 0.08845D0,
& 0.09852D0, 0.11589D0, 0.13732D0, 0.16529D0, 0.18680D0,
& 0.21735D0, 0.23643D0, 0.24757D0, 0.25329D0, 0.25220D0,
& 0.24629D0, 0.23665D0, 0.22439D0, 0.21043D0, 0.19540D0,
& 0.17949D0, 0.16343D0, 0.14746D0, 0.13180D0, 0.11686D0,
& 0.10269D0, 0.08926D0, 0.07677D0, 0.06556D0, 0.05517D0,
& 0.04584D0, 0.03772D0, 0.03044D0, 0.01893D0, 0.01082D0,
& 0.00551D0, 0.00238D0, 0.00017D0, 0.00000D0/
DATA (FMRS(2,2,I,14),I=1,49)/
& 0.00750D0, 0.00938D0, 0.01173D0, 0.01339D0, 0.01471D0,
& 0.01583D0, 0.01992D0, 0.02526D0, 0.02920D0, 0.03250D0,
& 0.03557D0, 0.04761D0, 0.06516D0, 0.07882D0, 0.09041D0,
& 0.10060D0, 0.11809D0, 0.13955D0, 0.16731D0, 0.18846D0,
& 0.21802D0, 0.23605D0, 0.24613D0, 0.25062D0, 0.24846D0,
& 0.24169D0, 0.23135D0, 0.21858D0, 0.20428D0, 0.18902D0,
& 0.17309D0, 0.15708D0, 0.14130D0, 0.12590D0, 0.11127D0,
& 0.09745D0, 0.08445D0, 0.07239D0, 0.06165D0, 0.05170D0,
& 0.04281D0, 0.03511D0, 0.02824D0, 0.01743D0, 0.00988D0,
& 0.00499D0, 0.00213D0, 0.00015D0, 0.00000D0/
DATA (FMRS(2,2,I,15),I=1,49)/
& 0.00758D0, 0.00950D0, 0.01192D0, 0.01362D0, 0.01498D0,
& 0.01613D0, 0.02034D0, 0.02584D0, 0.02990D0, 0.03330D0,
& 0.03646D0, 0.04882D0, 0.06676D0, 0.08067D0, 0.09242D0,
& 0.10271D0, 0.12031D0, 0.14177D0, 0.16927D0, 0.19002D0,
& 0.21855D0, 0.23546D0, 0.24445D0, 0.24771D0, 0.24448D0,
& 0.23683D0, 0.22584D0, 0.21262D0, 0.19799D0, 0.18255D0,
& 0.16661D0, 0.15073D0, 0.13511D0, 0.12003D0, 0.10571D0,
& 0.09233D0, 0.07973D0, 0.06812D0, 0.05781D0, 0.04834D0,
& 0.03990D0, 0.03259D0, 0.02612D0, 0.01599D0, 0.00899D0,
& 0.00450D0, 0.00190D0, 0.00013D0, 0.00000D0/
DATA (FMRS(2,2,I,16),I=1,49)/
& 0.00766D0, 0.00962D0, 0.01210D0, 0.01384D0, 0.01522D0,
& 0.01640D0, 0.02073D0, 0.02638D0, 0.03055D0, 0.03403D0,
& 0.03728D0, 0.04992D0, 0.06822D0, 0.08234D0, 0.09422D0,
& 0.10460D0, 0.12228D0, 0.14371D0, 0.17097D0, 0.19133D0,
& 0.21891D0, 0.23481D0, 0.24283D0, 0.24499D0, 0.24085D0,
& 0.23246D0, 0.22090D0, 0.20727D0, 0.19242D0, 0.17687D0,
& 0.16094D0, 0.14517D0, 0.12974D0, 0.11493D0, 0.10094D0,
& 0.08792D0, 0.07568D0, 0.06448D0, 0.05456D0, 0.04548D0,
& 0.03743D0, 0.03047D0, 0.02435D0, 0.01480D0, 0.00826D0,
& 0.00410D0, 0.00171D0, 0.00011D0, 0.00000D0/
DATA (FMRS(2,2,I,17),I=1,49)/
& 0.00775D0, 0.00975D0, 0.01228D0, 0.01406D0, 0.01548D0,
& 0.01669D0, 0.02112D0, 0.02692D0, 0.03120D0, 0.03478D0,
& 0.03810D0, 0.05104D0, 0.06968D0, 0.08400D0, 0.09602D0,
& 0.10648D0, 0.12423D0, 0.14563D0, 0.17261D0, 0.19256D0,
& 0.21918D0, 0.23405D0, 0.24112D0, 0.24221D0, 0.23719D0,
& 0.22809D0, 0.21600D0, 0.20198D0, 0.18694D0, 0.17130D0,
& 0.15541D0, 0.13976D0, 0.12455D0, 0.11000D0, 0.09636D0,
& 0.08368D0, 0.07182D0, 0.06101D0, 0.05149D0, 0.04278D0,
& 0.03510D0, 0.02849D0, 0.02269D0, 0.01370D0, 0.00759D0,
& 0.00374D0, 0.00155D0, 0.00010D0, 0.00000D0/
DATA (FMRS(2,2,I,18),I=1,49)/
& 0.00782D0, 0.00985D0, 0.01243D0, 0.01424D0, 0.01569D0,
& 0.01692D0, 0.02146D0, 0.02738D0, 0.03175D0, 0.03540D0,
& 0.03879D0, 0.05197D0, 0.07089D0, 0.08537D0, 0.09749D0,
& 0.10801D0, 0.12581D0, 0.14716D0, 0.17390D0, 0.19349D0,
& 0.21930D0, 0.23333D0, 0.23963D0, 0.23986D0, 0.23413D0,
& 0.22447D0, 0.21197D0, 0.19769D0, 0.18248D0, 0.16678D0,
& 0.15094D0, 0.13543D0, 0.12040D0, 0.10608D0, 0.09270D0,
& 0.08031D0, 0.06878D0, 0.05828D0, 0.04908D0, 0.04068D0,
& 0.03329D0, 0.02694D0, 0.02140D0, 0.01285D0, 0.00708D0,
& 0.00346D0, 0.00142D0, 0.00009D0, 0.00000D0/
DATA (FMRS(2,2,I,19),I=1,49)/
& 0.00791D0, 0.00998D0, 0.01261D0, 0.01447D0, 0.01595D0,
& 0.01722D0, 0.02186D0, 0.02794D0, 0.03242D0, 0.03616D0,
& 0.03963D0, 0.05310D0, 0.07234D0, 0.08702D0, 0.09924D0,
& 0.10983D0, 0.12767D0, 0.14895D0, 0.17537D0, 0.19453D0,
& 0.21933D0, 0.23238D0, 0.23773D0, 0.23696D0, 0.23039D0,
& 0.22010D0, 0.20715D0, 0.19257D0, 0.17716D0, 0.16147D0,
& 0.14570D0, 0.13034D0, 0.11556D0, 0.10152D0, 0.08847D0,
& 0.07643D0, 0.06526D0, 0.05515D0, 0.04631D0, 0.03827D0,
& 0.03122D0, 0.02519D0, 0.01995D0, 0.01190D0, 0.00650D0,
& 0.00315D0, 0.00128D0, 0.00008D0, 0.00000D0/
DATA (FMRS(2,2,I,20),I=1,49)/
& 0.00799D0, 0.01010D0, 0.01278D0, 0.01467D0, 0.01619D0,
& 0.01748D0, 0.02223D0, 0.02844D0, 0.03302D0, 0.03684D0,
& 0.04038D0, 0.05409D0, 0.07362D0, 0.08846D0, 0.10078D0,
& 0.11143D0, 0.12930D0, 0.15050D0, 0.17662D0, 0.19539D0,
& 0.21931D0, 0.23148D0, 0.23602D0, 0.23438D0, 0.22712D0,
& 0.21628D0, 0.20296D0, 0.18814D0, 0.17260D0, 0.15692D0,
& 0.14124D0, 0.12600D0, 0.11146D0, 0.09768D0, 0.08490D0,
& 0.07317D0, 0.06233D0, 0.05253D0, 0.04400D0, 0.03627D0,
& 0.02950D0, 0.02375D0, 0.01875D0, 0.01112D0, 0.00604D0,
& 0.00291D0, 0.00117D0, 0.00007D0, 0.00000D0/
DATA (FMRS(2,2,I,21),I=1,49)/
& 0.00806D0, 0.01021D0, 0.01293D0, 0.01486D0, 0.01641D0,
& 0.01772D0, 0.02256D0, 0.02890D0, 0.03357D0, 0.03747D0,
& 0.04106D0, 0.05501D0, 0.07479D0, 0.08976D0, 0.10217D0,
& 0.11285D0, 0.13073D0, 0.15184D0, 0.17768D0, 0.19608D0,
& 0.21918D0, 0.23055D0, 0.23436D0, 0.23195D0, 0.22407D0,
& 0.21277D0, 0.19913D0, 0.18411D0, 0.16851D0, 0.15282D0,
& 0.13724D0, 0.12215D0, 0.10780D0, 0.09426D0, 0.08175D0,
& 0.07030D0, 0.05975D0, 0.05024D0, 0.04199D0, 0.03453D0,
& 0.02802D0, 0.02251D0, 0.01772D0, 0.01045D0, 0.00564D0,
& 0.00270D0, 0.00108D0, 0.00006D0, 0.00000D0/
DATA (FMRS(2,2,I,22),I=1,49)/
& 0.00816D0, 0.01035D0, 0.01313D0, 0.01511D0, 0.01669D0,
& 0.01803D0, 0.02299D0, 0.02949D0, 0.03427D0, 0.03826D0,
& 0.04194D0, 0.05616D0, 0.07626D0, 0.09141D0, 0.10390D0,
& 0.11463D0, 0.13252D0, 0.15350D0, 0.17897D0, 0.19689D0,
& 0.21895D0, 0.22932D0, 0.23223D0, 0.22887D0, 0.22024D0,
& 0.20839D0, 0.19437D0, 0.17913D0, 0.16346D0, 0.14778D0,
& 0.13233D0, 0.11744D0, 0.10335D0, 0.09011D0, 0.07794D0,
& 0.06684D0, 0.05665D0, 0.04749D0, 0.03958D0, 0.03245D0,
& 0.02625D0, 0.02103D0, 0.01650D0, 0.00967D0, 0.00518D0,
& 0.00246D0, 0.00097D0, 0.00005D0, 0.00000D0/
DATA (FMRS(2,2,I,23),I=1,49)/
& 0.00826D0, 0.01049D0, 0.01333D0, 0.01534D0, 0.01695D0,
& 0.01833D0, 0.02340D0, 0.03004D0, 0.03494D0, 0.03901D0,
& 0.04276D0, 0.05725D0, 0.07764D0, 0.09293D0, 0.10551D0,
& 0.11628D0, 0.13416D0, 0.15502D0, 0.18011D0, 0.19758D0,
& 0.21867D0, 0.22812D0, 0.23018D0, 0.22598D0, 0.21667D0,
& 0.20434D0, 0.19000D0, 0.17460D0, 0.15883D0, 0.14320D0,
& 0.12787D0, 0.11321D0, 0.09934D0, 0.08640D0, 0.07454D0,
& 0.06376D0, 0.05389D0, 0.04504D0, 0.03744D0, 0.03063D0,
& 0.02471D0, 0.01973D0, 0.01544D0, 0.00899D0, 0.00479D0,
& 0.00225D0, 0.00088D0, 0.00005D0, 0.00000D0/
DATA (FMRS(2,2,I,24),I=1,49)/
& 0.00835D0, 0.01062D0, 0.01351D0, 0.01556D0, 0.01721D0,
& 0.01861D0, 0.02378D0, 0.03057D0, 0.03556D0, 0.03972D0,
& 0.04354D0, 0.05827D0, 0.07891D0, 0.09434D0, 0.10698D0,
& 0.11778D0, 0.13564D0, 0.15636D0, 0.18108D0, 0.19811D0,
& 0.21829D0, 0.22687D0, 0.22819D0, 0.22319D0, 0.21330D0,
& 0.20053D0, 0.18593D0, 0.17036D0, 0.15459D0, 0.13902D0,
& 0.12383D0, 0.10936D0, 0.09573D0, 0.08306D0, 0.07149D0,
& 0.06100D0, 0.05144D0, 0.04289D0, 0.03556D0, 0.02901D0,
& 0.02335D0, 0.01859D0, 0.01451D0, 0.00840D0, 0.00444D0,
& 0.00208D0, 0.00081D0, 0.00004D0, 0.00000D0/
DATA (FMRS(2,2,I,25),I=1,49)/
& 0.00844D0, 0.01075D0, 0.01369D0, 0.01578D0, 0.01746D0,
& 0.01889D0, 0.02417D0, 0.03109D0, 0.03619D0, 0.04043D0,
& 0.04431D0, 0.05929D0, 0.08018D0, 0.09573D0, 0.10844D0,
& 0.11926D0, 0.13709D0, 0.15767D0, 0.18202D0, 0.19861D0,
& 0.21788D0, 0.22561D0, 0.22620D0, 0.22044D0, 0.20998D0,
& 0.19681D0, 0.18196D0, 0.16625D0, 0.15048D0, 0.13499D0,
& 0.11994D0, 0.10567D0, 0.09228D0, 0.07987D0, 0.06858D0,
& 0.05838D0, 0.04911D0, 0.04085D0, 0.03379D0, 0.02749D0,
& 0.02207D0, 0.01753D0, 0.01364D0, 0.00785D0, 0.00413D0,
& 0.00192D0, 0.00074D0, 0.00004D0, 0.00000D0/
DATA (FMRS(2,2,I,26),I=1,49)/
& 0.00853D0, 0.01088D0, 0.01388D0, 0.01600D0, 0.01772D0,
& 0.01917D0, 0.02456D0, 0.03161D0, 0.03680D0, 0.04112D0,
& 0.04508D0, 0.06028D0, 0.08140D0, 0.09707D0, 0.10983D0,
& 0.12067D0, 0.13846D0, 0.15889D0, 0.18286D0, 0.19901D0,
& 0.21739D0, 0.22430D0, 0.22419D0, 0.21773D0, 0.20672D0,
& 0.19320D0, 0.17811D0, 0.16233D0, 0.14654D0, 0.13113D0,
& 0.11622D0, 0.10216D0, 0.08901D0, 0.07686D0, 0.06584D0,
& 0.05592D0, 0.04692D0, 0.03894D0, 0.03214D0, 0.02608D0,
& 0.02089D0, 0.01655D0, 0.01285D0, 0.00735D0, 0.00384D0,
& 0.00177D0, 0.00068D0, 0.00003D0, 0.00000D0/
DATA (FMRS(2,2,I,27),I=1,49)/
& 0.00862D0, 0.01100D0, 0.01405D0, 0.01622D0, 0.01796D0,
& 0.01944D0, 0.02492D0, 0.03211D0, 0.03739D0, 0.04178D0,
& 0.04580D0, 0.06121D0, 0.08256D0, 0.09833D0, 0.11114D0,
& 0.12198D0, 0.13974D0, 0.16000D0, 0.18361D0, 0.19934D0,
& 0.21688D0, 0.22303D0, 0.22227D0, 0.21516D0, 0.20368D0,
& 0.18983D0, 0.17455D0, 0.15870D0, 0.14292D0, 0.12759D0,
& 0.11282D0, 0.09895D0, 0.08604D0, 0.07413D0, 0.06336D0,
& 0.05370D0, 0.04495D0, 0.03722D0, 0.03066D0, 0.02482D0,
& 0.01983D0, 0.01568D0, 0.01214D0, 0.00691D0, 0.00359D0,
& 0.00164D0, 0.00063D0, 0.00003D0, 0.00000D0/
DATA (FMRS(2,2,I,28),I=1,49)/
& 0.00871D0, 0.01113D0, 0.01422D0, 0.01642D0, 0.01819D0,
& 0.01970D0, 0.02527D0, 0.03257D0, 0.03795D0, 0.04240D0,
& 0.04648D0, 0.06209D0, 0.08364D0, 0.09950D0, 0.11235D0,
& 0.12320D0, 0.14090D0, 0.16101D0, 0.18426D0, 0.19960D0,
& 0.21635D0, 0.22178D0, 0.22043D0, 0.21273D0, 0.20082D0,
& 0.18670D0, 0.17123D0, 0.15532D0, 0.13957D0, 0.12434D0,
& 0.10972D0, 0.09602D0, 0.08332D0, 0.07164D0, 0.06111D0,
& 0.05170D0, 0.04318D0, 0.03568D0, 0.02933D0, 0.02371D0,
& 0.01889D0, 0.01491D0, 0.01151D0, 0.00652D0, 0.00337D0,
& 0.00153D0, 0.00058D0, 0.00003D0, 0.00000D0/
DATA (FMRS(2,2,I,29),I=1,49)/
& 0.00880D0, 0.01125D0, 0.01439D0, 0.01662D0, 0.01842D0,
& 0.01995D0, 0.02562D0, 0.03305D0, 0.03850D0, 0.04303D0,
& 0.04716D0, 0.06297D0, 0.08471D0, 0.10067D0, 0.11354D0,
& 0.12440D0, 0.14205D0, 0.16199D0, 0.18487D0, 0.19981D0,
& 0.21577D0, 0.22050D0, 0.21856D0, 0.21030D0, 0.19797D0,
& 0.18358D0, 0.16796D0, 0.15200D0, 0.13629D0, 0.12116D0,
& 0.10670D0, 0.09318D0, 0.08069D0, 0.06924D0, 0.05894D0,
& 0.04976D0, 0.04148D0, 0.03421D0, 0.02806D0, 0.02263D0,
& 0.01799D0, 0.01417D0, 0.01091D0, 0.00615D0, 0.00316D0,
& 0.00143D0, 0.00054D0, 0.00003D0, 0.00000D0/
DATA (FMRS(2,2,I,30),I=1,49)/
& 0.00889D0, 0.01137D0, 0.01456D0, 0.01683D0, 0.01865D0,
& 0.02021D0, 0.02596D0, 0.03351D0, 0.03906D0, 0.04365D0,
& 0.04784D0, 0.06384D0, 0.08576D0, 0.10180D0, 0.11470D0,
& 0.12555D0, 0.14314D0, 0.16292D0, 0.18544D0, 0.19997D0,
& 0.21516D0, 0.21921D0, 0.21670D0, 0.20790D0, 0.19518D0,
& 0.18054D0, 0.16480D0, 0.14880D0, 0.13314D0, 0.11810D0,
& 0.10380D0, 0.09048D0, 0.07819D0, 0.06696D0, 0.05688D0,
& 0.04793D0, 0.03987D0, 0.03282D0, 0.02686D0, 0.02162D0,
& 0.01715D0, 0.01347D0, 0.01036D0, 0.00581D0, 0.00297D0,
& 0.00134D0, 0.00050D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,2,I,31),I=1,49)/
& 0.00897D0, 0.01149D0, 0.01472D0, 0.01702D0, 0.01887D0,
& 0.02045D0, 0.02630D0, 0.03396D0, 0.03958D0, 0.04424D0,
& 0.04848D0, 0.06466D0, 0.08676D0, 0.10286D0, 0.11579D0,
& 0.12663D0, 0.14416D0, 0.16377D0, 0.18594D0, 0.20009D0,
& 0.21455D0, 0.21797D0, 0.21493D0, 0.20563D0, 0.19256D0,
& 0.17769D0, 0.16185D0, 0.14582D0, 0.13021D0, 0.11528D0,
& 0.10112D0, 0.08798D0, 0.07588D0, 0.06486D0, 0.05500D0,
& 0.04626D0, 0.03841D0, 0.03155D0, 0.02578D0, 0.02071D0,
& 0.01640D0, 0.01285D0, 0.00986D0, 0.00551D0, 0.00280D0,
& 0.00125D0, 0.00046D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,2,I,32),I=1,49)/
& 0.00905D0, 0.01160D0, 0.01487D0, 0.01721D0, 0.01909D0,
& 0.02069D0, 0.02661D0, 0.03438D0, 0.04008D0, 0.04480D0,
& 0.04909D0, 0.06543D0, 0.08768D0, 0.10385D0, 0.11679D0,
& 0.12763D0, 0.14509D0, 0.16454D0, 0.18637D0, 0.20016D0,
& 0.21393D0, 0.21676D0, 0.21323D0, 0.20346D0, 0.19008D0,
& 0.17502D0, 0.15909D0, 0.14304D0, 0.12749D0, 0.11266D0,
& 0.09863D0, 0.08567D0, 0.07376D0, 0.06293D0, 0.05328D0,
& 0.04474D0, 0.03708D0, 0.03039D0, 0.02479D0, 0.01988D0,
& 0.01572D0, 0.01229D0, 0.00941D0, 0.00524D0, 0.00265D0,
& 0.00118D0, 0.00043D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,2,I,33),I=1,49)/
& 0.00914D0, 0.01172D0, 0.01503D0, 0.01740D0, 0.01930D0,
& 0.02092D0, 0.02693D0, 0.03481D0, 0.04058D0, 0.04536D0,
& 0.04970D0, 0.06621D0, 0.08862D0, 0.10485D0, 0.11781D0,
& 0.12863D0, 0.14602D0, 0.16531D0, 0.18679D0, 0.20022D0,
& 0.21330D0, 0.21555D0, 0.21154D0, 0.20131D0, 0.18763D0,
& 0.17238D0, 0.15637D0, 0.14031D0, 0.12482D0, 0.11010D0,
& 0.09620D0, 0.08342D0, 0.07168D0, 0.06106D0, 0.05161D0,
& 0.04326D0, 0.03580D0, 0.02928D0, 0.02384D0, 0.01908D0,
& 0.01506D0, 0.01176D0, 0.00899D0, 0.00498D0, 0.00251D0,
& 0.00111D0, 0.00041D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,2,I,34),I=1,49)/
& 0.00922D0, 0.01183D0, 0.01519D0, 0.01758D0, 0.01951D0,
& 0.02116D0, 0.02725D0, 0.03523D0, 0.04108D0, 0.04592D0,
& 0.05030D0, 0.06698D0, 0.08953D0, 0.10581D0, 0.11878D0,
& 0.12959D0, 0.14690D0, 0.16601D0, 0.18715D0, 0.20021D0,
& 0.21262D0, 0.21429D0, 0.20982D0, 0.19916D0, 0.18519D0,
& 0.16977D0, 0.15369D0, 0.13763D0, 0.12221D0, 0.10760D0,
& 0.09385D0, 0.08123D0, 0.06969D0, 0.05926D0, 0.05001D0,
& 0.04183D0, 0.03456D0, 0.02822D0, 0.02295D0, 0.01833D0,
& 0.01444D0, 0.01126D0, 0.00858D0, 0.00473D0, 0.00238D0,
& 0.00105D0, 0.00038D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,2,I,35),I=1,49)/
& 0.00930D0, 0.01194D0, 0.01534D0, 0.01777D0, 0.01972D0,
& 0.02138D0, 0.02755D0, 0.03564D0, 0.04156D0, 0.04645D0,
& 0.05088D0, 0.06771D0, 0.09039D0, 0.10673D0, 0.11970D0,
& 0.13050D0, 0.14773D0, 0.16667D0, 0.18748D0, 0.20020D0,
& 0.21197D0, 0.21309D0, 0.20820D0, 0.19714D0, 0.18290D0,
& 0.16734D0, 0.15119D0, 0.13514D0, 0.11978D0, 0.10528D0,
& 0.09167D0, 0.07922D0, 0.06786D0, 0.05760D0, 0.04853D0,
& 0.04052D0, 0.03343D0, 0.02726D0, 0.02213D0, 0.01765D0,
& 0.01387D0, 0.01080D0, 0.00822D0, 0.00451D0, 0.00226D0,
& 0.00099D0, 0.00036D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,2,I,36),I=1,49)/
& 0.00938D0, 0.01205D0, 0.01549D0, 0.01794D0, 0.01992D0,
& 0.02160D0, 0.02784D0, 0.03602D0, 0.04201D0, 0.04696D0,
& 0.05143D0, 0.06840D0, 0.09121D0, 0.10758D0, 0.12056D0,
& 0.13134D0, 0.14849D0, 0.16728D0, 0.18776D0, 0.20016D0,
& 0.21132D0, 0.21194D0, 0.20664D0, 0.19522D0, 0.18074D0,
& 0.16504D0, 0.14884D0, 0.13281D0, 0.11752D0, 0.10313D0,
& 0.08965D0, 0.07735D0, 0.06616D0, 0.05608D0, 0.04717D0,
& 0.03933D0, 0.03239D0, 0.02637D0, 0.02137D0, 0.01702D0,
& 0.01336D0, 0.01038D0, 0.00788D0, 0.00431D0, 0.00215D0,
& 0.00094D0, 0.00034D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,2,I,37),I=1,49)/
& 0.00946D0, 0.01216D0, 0.01563D0, 0.01812D0, 0.02011D0,
& 0.02182D0, 0.02814D0, 0.03641D0, 0.04247D0, 0.04747D0,
& 0.05199D0, 0.06909D0, 0.09202D0, 0.10844D0, 0.12142D0,
& 0.13217D0, 0.14925D0, 0.16786D0, 0.18802D0, 0.20008D0,
& 0.21063D0, 0.21075D0, 0.20506D0, 0.19327D0, 0.17856D0,
& 0.16274D0, 0.14648D0, 0.13048D0, 0.11526D0, 0.10099D0,
& 0.08766D0, 0.07551D0, 0.06448D0, 0.05458D0, 0.04583D0,
& 0.03816D0, 0.03137D0, 0.02550D0, 0.02064D0, 0.01641D0,
& 0.01285D0, 0.00997D0, 0.00756D0, 0.00412D0, 0.00204D0,
& 0.00089D0, 0.00032D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,2,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I, 1),I=1,49)/
& 2.49594D0, 2.59678D0, 2.70121D0, 2.76381D0, 2.80882D0,
& 2.84400D0, 2.95410D0, 3.06293D0, 3.12376D0, 3.16433D0,
& 3.19612D0, 3.26381D0, 3.24185D0, 3.15396D0, 3.04339D0,
& 2.92461D0, 2.68378D0, 2.34265D0, 1.85814D0, 1.47710D0,
& 0.96403D0, 0.68739D0, 0.56164D0, 0.53053D0, 0.57114D0,
& 0.63752D0, 0.70266D0, 0.75190D0, 0.77864D0, 0.78165D0,
& 0.76223D0, 0.72410D0, 0.67143D0, 0.60861D0, 0.54010D0,
& 0.46946D0, 0.39966D0, 0.33340D0, 0.27271D0, 0.21796D0,
& 0.17035D0, 0.13022D0, 0.09678D0, 0.04919D0, 0.02174D0,
& 0.00799D0, 0.00226D0, 0.00004D0, 0.00000D0/
DATA (FMRS(2,3,I, 2),I=1,49)/
& 4.92533D0, 4.79050D0, 4.65910D0, 4.58370D0, 4.53079D0,
& 4.49006D0, 4.36491D0, 4.24084D0, 4.16793D0, 4.11560D0,
& 4.07957D0, 3.94076D0, 3.72768D0, 3.53640D0, 3.35786D0,
& 3.19001D0, 2.88282D0, 2.48367D0, 1.95213D0, 1.55132D0,
& 1.02835D0, 0.75268D0, 0.62744D0, 0.59181D0, 0.62218D0,
& 0.67462D0, 0.72413D0, 0.75779D0, 0.77032D0, 0.76124D0,
& 0.73236D0, 0.68747D0, 0.63069D0, 0.56612D0, 0.49789D0,
& 0.42912D0, 0.36239D0, 0.29993D0, 0.24354D0, 0.19324D0,
& 0.14994D0, 0.11382D0, 0.08400D0, 0.04209D0, 0.01833D0,
& 0.00664D0, 0.00185D0, 0.00003D0, 0.00000D0/
DATA (FMRS(2,3,I, 3),I=1,49)/
& 9.56993D0, 8.80858D0, 8.10702D0, 7.72221D0, 7.45989D0,
& 7.26226D0, 6.67868D0, 6.13604D0, 5.83460D0, 5.62657D0,
& 5.47187D0, 4.98498D0, 4.45878D0, 4.10350D0, 3.81920D0,
& 3.57625D0, 3.16921D0, 2.68460D0, 2.08542D0, 1.65674D0,
& 1.11953D0, 0.84374D0, 0.71690D0, 0.67195D0, 0.68567D0,
& 0.71718D0, 0.74433D0, 0.75653D0, 0.75014D0, 0.72558D0,
& 0.68509D0, 0.63243D0, 0.57149D0, 0.50592D0, 0.43925D0,
& 0.37400D0, 0.31223D0, 0.25550D0, 0.20529D0, 0.16120D0,
& 0.12380D0, 0.09303D0, 0.06796D0, 0.03337D0, 0.01425D0,
& 0.00506D0, 0.00138D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,3,I, 4),I=1,49)/
& 13.80940D0, 12.36505D0, 11.07010D0, 10.37511D0, 9.90777D0,
& 9.55916D0, 8.54772D0, 7.63175D0, 7.13319D0, 6.79336D0,
& 6.53831D0, 5.76591D0, 4.99154D0, 4.51033D0, 4.14636D0,
& 3.84778D0, 3.36791D0, 2.82235D0, 2.17611D0, 1.72845D0,
& 1.18134D0, 0.90432D0, 0.77478D0, 0.72147D0, 0.72239D0,
& 0.73883D0, 0.75059D0, 0.74861D0, 0.73014D0, 0.69610D0,
& 0.64889D0, 0.59216D0, 0.52949D0, 0.46423D0, 0.39938D0,
& 0.33717D0, 0.27919D0, 0.22665D0, 0.18078D0, 0.14088D0,
& 0.10742D0, 0.08015D0, 0.05814D0, 0.02814D0, 0.01185D0,
& 0.00415D0, 0.00112D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,3,I, 5),I=1,49)/
& 18.88911D0, 16.54105D0, 14.48190D0, 13.39606D0, 12.67388D0,
& 12.13950D0, 10.61083D0, 9.25560D0, 8.52999D0, 8.04031D0,
& 7.67199D0, 6.58349D0, 5.54112D0, 4.92668D0, 4.47939D0,
& 4.12305D0, 3.56848D0, 2.96102D0, 2.26733D0, 1.80038D0,
& 1.24179D0, 0.96142D0, 0.82726D0, 0.76409D0, 0.75165D0,
& 0.75317D0, 0.75022D0, 0.73504D0, 0.70570D0, 0.66340D0,
& 0.61066D0, 0.55093D0, 0.48745D0, 0.42321D0, 0.36077D0,
& 0.30193D0, 0.24792D0, 0.19962D0, 0.15797D0, 0.12220D0,
& 0.09245D0, 0.06850D0, 0.04934D0, 0.02353D0, 0.00976D0,
& 0.00337D0, 0.00090D0, 0.00002D0, 0.00000D0/
DATA (FMRS(2,3,I, 6),I=1,49)/
& 24.17862D0, 20.81157D0, 17.90894D0, 16.39907D0, 15.40344D0,
& 14.67132D0, 12.59987D0, 10.79385D0, 9.83948D0, 9.20057D0,
& 8.72036D0, 7.32519D0, 6.02998D0, 5.29291D0, 4.77007D0,
& 4.36196D0, 3.74120D0, 3.07968D0, 2.34504D0, 1.86151D0,
& 1.29269D0, 1.00884D0, 0.87005D0, 0.79769D0, 0.77342D0,
& 0.76224D0, 0.74721D0, 0.72151D0, 0.68376D0, 0.63535D0,
& 0.57871D0, 0.51714D0, 0.45352D0, 0.39051D0, 0.33033D0,
& 0.27444D0, 0.22374D0, 0.17892D0, 0.14065D0, 0.10811D0,
& 0.08127D0, 0.05985D0, 0.04284D0, 0.02018D0, 0.00827D0,
& 0.00283D0, 0.00075D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I, 7),I=1,49)/
& 29.73861D0, 25.23818D0, 21.41267D0, 19.44500D0, 18.15658D0,
& 17.21404D0, 14.57125D0, 12.29875D0, 11.11092D0, 10.32111D0,
& 9.72854D0, 8.02926D0, 6.48794D0, 5.63342D0, 5.03891D0,
& 4.58210D0, 3.89945D0, 3.18799D0, 2.41570D0, 1.91680D0,
& 1.33767D0, 1.04936D0, 0.90523D0, 0.82366D0, 0.78841D0,
& 0.76591D0, 0.74039D0, 0.70578D0, 0.66114D0, 0.60793D0,
& 0.54844D0, 0.48585D0, 0.42265D0, 0.36114D0, 0.30329D0,
& 0.25030D0, 0.20271D0, 0.16106D0, 0.12587D0, 0.09616D0,
& 0.07187D0, 0.05262D0, 0.03744D0, 0.01745D0, 0.00707D0,
& 0.00239D0, 0.00063D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I, 8),I=1,49)/
& 36.41777D0, 30.48425D0, 25.50925D0, 22.97827D0, 21.33235D0,
& 20.13434D0, 16.80486D0, 13.98059D0, 12.52029D0, 11.55588D0,
& 10.83420D0, 8.78991D0, 6.97511D0, 5.99232D0, 5.32046D0,
& 4.81154D0, 4.06330D0, 3.29938D0, 2.48793D0, 1.97297D0,
& 1.38262D0, 1.08896D0, 0.93866D0, 0.84707D0, 0.80034D0,
& 0.76640D0, 0.73057D0, 0.68748D0, 0.63647D0, 0.57905D0,
& 0.51730D0, 0.45416D0, 0.39180D0, 0.33216D0, 0.27689D0,
& 0.22693D0, 0.18251D0, 0.14405D0, 0.11189D0, 0.08494D0,
& 0.06310D0, 0.04592D0, 0.03248D0, 0.01496D0, 0.00600D0,
& 0.00201D0, 0.00052D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I, 9),I=1,49)/
& 42.89913D0, 35.51439D0, 29.39055D0, 26.30256D0, 24.30551D0,
& 22.85784D0, 18.86316D0, 15.51177D0, 13.79420D0, 12.66617D0,
& 11.82423D0, 9.46212D0, 7.39982D0, 6.30264D0, 5.56252D0,
& 5.00794D0, 4.20275D0, 3.39360D0, 2.54868D0, 2.01994D0,
& 1.41958D0, 1.12075D0, 0.96469D0, 0.86425D0, 0.80777D0,
& 0.76439D0, 0.72030D0, 0.67061D0, 0.61480D0, 0.55436D0,
& 0.49120D0, 0.42796D0, 0.36659D0, 0.30874D0, 0.25576D0,
& 0.20835D0, 0.16660D0, 0.13075D0, 0.10101D0, 0.07629D0,
& 0.05637D0, 0.04082D0, 0.02872D0, 0.01310D0, 0.00521D0,
& 0.00173D0, 0.00045D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I,10),I=1,49)/
& 49.61974D0, 40.67585D0, 33.33157D0, 29.65726D0, 27.29273D0,
& 25.58490D0, 20.90223D0, 17.01226D0, 15.03449D0, 13.74211D0,
& 12.78005D0, 10.10345D0, 7.80003D0, 6.59295D0, 5.78776D0,
& 5.18997D0, 4.33113D0, 3.47979D0, 2.60379D0, 2.06215D0,
& 1.45191D0, 1.14765D0, 0.98577D0, 0.87686D0, 0.81144D0,
& 0.75966D0, 0.70838D0, 0.65310D0, 0.59339D0, 0.53065D0,
& 0.46666D0, 0.40372D0, 0.34354D0, 0.28753D0, 0.23679D0,
& 0.19183D0, 0.15254D0, 0.11910D0, 0.09155D0, 0.06880D0,
& 0.05059D0, 0.03647D0, 0.02554D0, 0.01155D0, 0.00456D0,
& 0.00150D0, 0.00039D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I,11),I=1,49)/
& 55.39180D0, 45.07076D0, 36.65840D0, 32.47479D0, 29.79258D0,
& 27.86062D0, 22.58892D0, 18.24235D0, 16.04583D0, 14.61602D0,
& 13.55394D0, 10.61757D0, 8.11747D0, 6.82180D0, 5.96451D0,
& 5.33234D0, 4.43100D0, 3.54652D0, 2.64619D0, 2.09446D0,
& 1.47626D0, 1.16746D0, 1.00084D0, 0.88523D0, 0.81292D0,
& 0.75482D0, 0.69824D0, 0.63893D0, 0.57653D0, 0.51229D0,
& 0.44790D0, 0.38538D0, 0.32625D0, 0.27173D0, 0.22275D0,
& 0.17969D0, 0.14226D0, 0.11063D0, 0.08472D0, 0.06341D0,
& 0.04647D0, 0.03337D0, 0.02328D0, 0.01046D0, 0.00410D0,
& 0.00135D0, 0.00035D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I,12),I=1,49)/
& 68.81419D0, 55.16745D0, 44.20809D0, 38.82247D0, 35.39534D0,
& 32.94036D0, 26.30577D0, 20.91710D0, 18.22705D0, 16.48958D0,
& 15.20488D0, 11.69679D0, 8.77186D0, 7.28789D0, 6.32113D0,
& 5.61724D0, 4.62839D0, 3.67636D0, 2.72714D0, 2.15522D0,
& 1.52072D0, 1.20219D0, 1.02548D0, 0.89610D0, 0.81011D0,
& 0.73981D0, 0.67337D0, 0.60686D0, 0.53995D0, 0.47362D0,
& 0.40911D0, 0.34808D0, 0.29158D0, 0.24046D0, 0.19523D0,
& 0.15609D0, 0.12251D0, 0.09445D0, 0.07178D0, 0.05329D0,
& 0.03875D0, 0.02763D0, 0.01914D0, 0.00848D0, 0.00328D0,
& 0.00107D0, 0.00027D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I,13),I=1,49)/
& 81.72071D0, 64.73620D0, 51.25830D0, 44.69851D0, 40.54929D0,
& 37.59021D0, 29.65526D0, 23.28836D0, 20.14139D0, 18.12166D0,
& 16.63424D0, 12.61228D0, 9.31401D0, 7.66787D0, 6.60816D0,
& 5.84402D0, 4.78269D0, 3.77556D0, 2.78721D0, 2.19932D0,
& 1.55169D0, 1.22492D0, 1.03973D0, 0.89912D0, 0.80240D0,
& 0.72291D0, 0.64937D0, 0.57800D0, 0.50838D0, 0.44121D0,
& 0.37732D0, 0.31807D0, 0.26412D0, 0.21603D0, 0.17402D0,
& 0.13809D0, 0.10760D0, 0.08235D0, 0.06220D0, 0.04588D0,
& 0.03314D0, 0.02349D0, 0.01618D0, 0.00709D0, 0.00272D0,
& 0.00088D0, 0.00022D0, 0.00001D0, 0.00000D0/
DATA (FMRS(2,3,I,14),I=1,49)/
& 97.52657D0, 76.29261D0, 59.65305D0, 51.63612D0, 46.59734D0,
& 43.02061D0, 33.50751D0, 25.97167D0, 22.28590D0, 19.93624D0,
& 18.21366D0, 13.60275D0, 9.88582D0, 8.06142D0, 6.90102D0,
& 6.07241D0, 4.93443D0, 3.87015D0, 2.84210D0, 2.23830D0,
& 1.57740D0, 1.24193D0, 1.04776D0, 0.89562D0, 0.78827D0,
& 0.70003D0, 0.62012D0, 0.54473D0, 0.47326D0, 0.40608D0,
& 0.34362D0, 0.28678D0, 0.23589D0, 0.19121D0, 0.15279D0,
& 0.12024D0, 0.09296D0, 0.07060D0, 0.05295D0, 0.03880D0,
& 0.02782D0, 0.01961D0, 0.01341D0, 0.00581D0, 0.00221D0,
& 0.00071D0, 0.00018D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,15),I=1,49)/
& 115.42858D0, 89.21046D0, 68.91241D0, 59.22810D0, 53.17852D0,
& 48.90368D0, 37.62299D0, 28.79719D0, 24.52433D0, 21.81818D0,
& 19.84305D0, 14.60749D0, 10.45530D0, 8.44881D0, 7.18665D0,
& 6.29326D0, 5.07912D0, 3.95881D0, 2.89174D0, 2.27205D0,
& 1.59726D0, 1.25251D0, 1.04935D0, 0.88634D0, 0.76946D0,
& 0.67380D0, 0.58880D0, 0.51059D0, 0.43833D0, 0.37190D0,
& 0.31141D0, 0.25732D0, 0.20974D0, 0.16850D0, 0.13349D0,
& 0.10422D0, 0.07994D0, 0.06028D0, 0.04489D0, 0.03267D0,
& 0.02328D0, 0.01630D0, 0.01109D0, 0.00475D0, 0.00179D0,
& 0.00057D0, 0.00015D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,16),I=1,49)/
& 133.20726D0,101.88441D0, 77.88580D0, 66.53202D0, 59.47687D0,
& 54.51081D0, 41.49468D0, 31.41946D0, 26.58451D0, 23.53963D0,
& 21.32609D0, 15.50695D0, 10.95547D0, 8.78473D0, 7.43186D0,
& 6.48132D0, 5.20052D0, 4.03146D0, 2.93090D0, 2.29753D0,
& 1.61041D0, 1.25744D0, 1.04659D0, 0.87462D0, 0.75027D0,
& 0.64906D0, 0.56054D0, 0.48074D0, 0.40844D0, 0.34317D0,
& 0.28476D0, 0.23329D0, 0.18860D0, 0.15037D0, 0.11827D0,
& 0.09171D0, 0.06985D0, 0.05235D0, 0.03876D0, 0.02805D0,
& 0.01988D0, 0.01385D0, 0.00937D0, 0.00398D0, 0.00150D0,
& 0.00048D0, 0.00012D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,17),I=1,49)/
& 152.75288D0,115.66533D0, 87.53463D0, 74.33386D0, 66.17272D0,
& 60.44971D0, 45.54741D0, 34.13087D0, 28.69873D0, 25.29647D0,
& 22.83273D0, 16.40709D0, 11.44748D0, 9.11138D0, 7.66812D0,
& 6.66113D0, 5.31487D0, 4.09842D0, 2.96558D0, 2.31899D0,
& 1.61977D0, 1.25878D0, 1.04063D0, 0.86046D0, 0.72956D0,
& 0.62377D0, 0.53260D0, 0.45191D0, 0.38010D0, 0.31636D0,
& 0.26019D0, 0.21141D0, 0.16955D0, 0.13419D0, 0.10481D0,
& 0.08073D0, 0.06109D0, 0.04550D0, 0.03350D0, 0.02411D0,
& 0.01700D0, 0.01178D0, 0.00794D0, 0.00335D0, 0.00125D0,
& 0.00040D0, 0.00010D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,18),I=1,49)/
& 170.01192D0,127.71370D0, 95.88535D0, 81.04548D0, 71.90795D0,
& 65.51928D0, 48.96956D0, 36.39437D0, 30.45131D0, 26.74517D0,
& 24.06967D0, 17.13549D0, 11.83889D0, 9.36824D0, 7.85201D0,
& 6.79985D0, 5.40144D0, 4.14772D0, 2.98965D0, 2.33267D0,
& 1.62383D0, 1.25653D0, 1.03280D0, 0.84662D0, 0.71111D0,
& 0.60235D0, 0.50969D0, 0.42880D0, 0.35778D0, 0.29558D0,
& 0.24138D0, 0.19483D0, 0.15529D0, 0.12217D0, 0.09488D0,
& 0.07271D0, 0.05474D0, 0.04057D0, 0.02974D0, 0.02131D0,
& 0.01497D0, 0.01034D0, 0.00694D0, 0.00291D0, 0.00108D0,
& 0.00035D0, 0.00009D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,19),I=1,49)/
& 192.21783D0,143.06714D0,106.42301D0, 89.46533D0, 79.07272D0,
& 71.83153D0, 53.18588D0, 39.15232D0, 32.57201D0, 28.48916D0,
& 25.55252D0, 17.99626D0, 12.29353D0, 9.66291D0, 8.06074D0,
& 6.95556D0, 5.49677D0, 4.20023D0, 3.01333D0, 2.34451D0,
& 1.62470D0, 1.25025D0, 1.02039D0, 0.82787D0, 0.68779D0,
& 0.57628D0, 0.48256D0, 0.40194D0, 0.33226D0, 0.27214D0,
& 0.22041D0, 0.17653D0, 0.13970D0, 0.10915D0, 0.08422D0,
& 0.06416D0, 0.04803D0, 0.03538D0, 0.02582D0, 0.01841D0,
& 0.01287D0, 0.00885D0, 0.00592D0, 0.00247D0, 0.00092D0,
& 0.00029D0, 0.00008D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,20),I=1,49)/
& 213.34880D0,157.54303D0,116.26574D0, 97.28644D0, 85.70139D0,
& 77.65329D0, 57.03621D0, 41.64487D0, 34.47643D0, 30.04790D0,
& 26.87277D0, 18.75275D0, 12.68704D0, 9.91527D0, 8.23788D0,
& 7.08656D0, 5.57571D0, 4.24254D0, 3.03117D0, 2.35234D0,
& 1.62325D0, 1.24282D0, 1.00799D0, 0.81051D0, 0.66705D0,
& 0.55370D0, 0.45951D0, 0.37948D0, 0.31121D0, 0.25302D0,
& 0.20347D0, 0.16190D0, 0.12732D0, 0.09891D0, 0.07590D0,
& 0.05752D0, 0.04285D0, 0.03141D0, 0.02283D0, 0.01621D0,
& 0.01129D0, 0.00774D0, 0.00517D0, 0.00215D0, 0.00079D0,
& 0.00025D0, 0.00007D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,21),I=1,49)/
& 233.39284D0,171.15466D0,125.43786D0,104.53514D0, 91.82097D0,
& 83.01126D0, 60.54451D0, 43.89167D0, 36.18145D0, 31.43626D0,
& 28.04374D0, 19.41375D0, 13.02433D0, 10.12820D0, 8.38525D0,
& 7.19405D0, 5.63853D0, 4.27419D0, 3.04230D0, 2.35510D0,
& 1.61821D0, 1.23292D0, 0.99418D0, 0.79299D0, 0.64721D0,
& 0.53284D0, 0.43872D0, 0.35966D0, 0.29291D0, 0.23658D0,
& 0.18910D0, 0.14961D0, 0.11702D0, 0.09045D0, 0.06907D0,
& 0.05212D0, 0.03865D0, 0.02823D0, 0.02044D0, 0.01446D0,
& 0.01004D0, 0.00687D0, 0.00457D0, 0.00189D0, 0.00070D0,
& 0.00022D0, 0.00006D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,22),I=1,49)/
& 260.44016D0,189.36696D0,137.60457D0,114.10131D0, 99.86725D0,
& 90.03576D0, 65.10178D0, 46.78208D0, 38.36169D0, 33.20363D0,
& 29.52871D0, 20.24143D0, 13.44020D0, 10.38777D0, 8.56307D0,
& 7.32250D0, 5.71195D0, 4.30962D0, 3.05294D0, 2.35572D0,
& 1.60960D0, 1.21865D0, 0.97551D0, 0.77034D0, 0.62226D0,
& 0.50716D0, 0.41356D0, 0.33596D0, 0.27128D0, 0.21734D0,
& 0.17244D0, 0.13547D0, 0.10527D0, 0.08085D0, 0.06139D0,
& 0.04607D0, 0.03398D0, 0.02471D0, 0.01781D0, 0.01255D0,
& 0.00868D0, 0.00593D0, 0.00393D0, 0.00162D0, 0.00060D0,
& 0.00019D0, 0.00005D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,23),I=1,49)/
& 287.44696D0,207.38838D0,149.53354D0,123.42919D0,107.68206D0,
& 96.83708D0, 69.47065D0, 49.52397D0, 40.41636D0, 34.86102D0,
& 30.91543D0, 21.00356D0, 13.81644D0, 10.61949D0, 8.71986D0,
& 7.43441D0, 5.77408D0, 4.33783D0, 3.05923D0, 2.35324D0,
& 1.59919D0, 1.20346D0, 0.95679D0, 0.74861D0, 0.59903D0,
& 0.48379D0, 0.39106D0, 0.31505D0, 0.25241D0, 0.20076D0,
& 0.15822D0, 0.12352D0, 0.09541D0, 0.07286D0, 0.05504D0,
& 0.04110D0, 0.03018D0, 0.02185D0, 0.01570D0, 0.01103D0,
& 0.00760D0, 0.00518D0, 0.00342D0, 0.00141D0, 0.00052D0,
& 0.00017D0, 0.00004D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,24),I=1,49)/
& 313.51825D0,224.63136D0,160.84229D0,132.22295D0,115.01953D0,
& 103.20245D0, 73.51698D0, 52.03463D0, 42.28400D0, 36.35911D0,
& 32.16307D0, 21.67765D0, 14.14149D0, 10.81558D0, 8.84983D0,
& 7.52509D0, 5.82169D0, 4.35654D0, 3.05952D0, 2.34629D0,
& 1.58590D0, 1.18656D0, 0.93734D0, 0.72724D0, 0.57702D0,
& 0.46218D0, 0.37070D0, 0.29646D0, 0.23590D0, 0.18642D0,
& 0.14603D0, 0.11337D0, 0.08712D0, 0.06621D0, 0.04979D0,
& 0.03702D0, 0.02708D0, 0.01953D0, 0.01399D0, 0.00980D0,
& 0.00674D0, 0.00458D0, 0.00302D0, 0.00124D0, 0.00046D0,
& 0.00015D0, 0.00004D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,25),I=1,49)/
& 341.15173D0,242.77290D0,172.65150D0,141.36496D0,122.62321D0,
& 109.78229D0, 77.66644D0, 54.58787D0, 44.17350D0, 37.86890D0,
& 33.41642D0, 22.34751D0, 14.46016D0, 11.00588D0, 8.97477D0,
& 7.61137D0, 5.86592D0, 4.37273D0, 3.05810D0, 2.33803D0,
& 1.57177D0, 1.16920D0, 0.91780D0, 0.70620D0, 0.55570D0,
& 0.44154D0, 0.35145D0, 0.27905D0, 0.22057D0, 0.17322D0,
& 0.13490D0, 0.10417D0, 0.07964D0, 0.06025D0, 0.04510D0,
& 0.03340D0, 0.02434D0, 0.01749D0, 0.01249D0, 0.00873D0,
& 0.00599D0, 0.00406D0, 0.00268D0, 0.00110D0, 0.00041D0,
& 0.00013D0, 0.00004D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,26),I=1,49)/
& 368.98822D0,260.90195D0,184.35516D0,150.38000D0,130.09390D0,
& 116.22827D0, 81.69344D0, 57.04021D0, 45.97627D0, 39.30195D0,
& 34.60083D0, 22.97047D0, 14.74975D0, 11.17543D0, 9.08370D0,
& 7.68467D0, 5.90104D0, 4.38251D0, 3.05244D0, 2.32659D0,
& 1.55551D0, 1.15047D0, 0.89759D0, 0.68521D0, 0.53495D0,
& 0.42187D0, 0.33342D0, 0.26295D0, 0.20656D0, 0.16128D0,
& 0.12493D0, 0.09597D0, 0.07303D0, 0.05500D0, 0.04100D0,
& 0.03027D0, 0.02198D0, 0.01575D0, 0.01122D0, 0.00782D0,
& 0.00536D0, 0.00363D0, 0.00239D0, 0.00098D0, 0.00036D0,
& 0.00012D0, 0.00003D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,27),I=1,49)/
& 396.49847D0,278.69458D0,195.76036D0,159.12776D0,137.32101D0,
& 122.44904D0, 85.54959D0, 59.36906D0, 47.67925D0, 40.65031D0,
& 35.71157D0, 23.54779D0, 15.01388D0, 11.32784D0, 9.18018D0,
& 7.74858D0, 5.93008D0, 4.38884D0, 3.04508D0, 2.31422D0,
& 1.53913D0, 1.13220D0, 0.87829D0, 0.66558D0, 0.51586D0,
& 0.40401D0, 0.31721D0, 0.24862D0, 0.19419D0, 0.15083D0,
& 0.11625D0, 0.08889D0, 0.06736D0, 0.05053D0, 0.03753D0,
& 0.02761D0, 0.01999D0, 0.01428D0, 0.01015D0, 0.00707D0,
& 0.00483D0, 0.00327D0, 0.00215D0, 0.00088D0, 0.00033D0,
& 0.00011D0, 0.00003D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,28),I=1,49)/
& 423.18488D0,295.83777D0,206.67247D0,167.46211D0,144.18538D0,
& 128.34305D0, 89.17443D0, 61.53922D0, 49.25727D0, 41.89430D0,
& 36.73269D0, 24.07136D0, 15.24876D0, 11.46075D0, 9.26257D0,
& 7.80186D0, 5.95221D0, 4.39115D0, 3.03561D0, 2.30059D0,
& 1.52239D0, 1.11417D0, 0.85969D0, 0.64709D0, 0.49822D0,
& 0.38776D0, 0.30261D0, 0.23584D0, 0.18326D0, 0.14166D0,
& 0.10869D0, 0.08277D0, 0.06247D0, 0.04670D0, 0.03458D0,
& 0.02536D0, 0.01831D0, 0.01305D0, 0.00927D0, 0.00644D0,
& 0.00439D0, 0.00297D0, 0.00195D0, 0.00080D0, 0.00030D0,
& 0.00010D0, 0.00003D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,29),I=1,49)/
& 450.92862D0,313.54996D0,217.87523D0,175.98549D0,151.18591D0,
& 134.34097D0, 92.83694D0, 63.71518D0, 50.83173D0, 43.13081D0,
& 37.74429D0, 24.58404D0, 15.47489D0, 11.58672D0, 9.33925D0,
& 7.85026D0, 5.97071D0, 4.39081D0, 3.02434D0, 2.28559D0,
& 1.50481D0, 1.09565D0, 0.84093D0, 0.62877D0, 0.48096D0,
& 0.37201D0, 0.28863D0, 0.22371D0, 0.17297D0, 0.13307D0,
& 0.10166D0, 0.07711D0, 0.05798D0, 0.04320D0, 0.03189D0,
& 0.02332D0, 0.01680D0, 0.01195D0, 0.00847D0, 0.00587D0,
& 0.00400D0, 0.00270D0, 0.00178D0, 0.00073D0, 0.00027D0,
& 0.00009D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,30),I=1,49)/
& 478.88074D0,331.28183D0,229.01660D0,184.42841D0,158.10007D0,
& 140.25114D0, 96.41853D0, 65.82523D0, 52.35015D0, 44.31818D0,
& 38.71195D0, 25.06767D0, 15.68364D0, 11.70050D0, 9.40671D0,
& 7.89123D0, 5.98412D0, 4.38708D0, 3.01099D0, 2.26914D0,
& 1.48646D0, 1.07684D0, 0.82225D0, 0.61085D0, 0.46437D0,
& 0.35704D0, 0.27550D0, 0.21242D0, 0.16347D0, 0.12519D0,
& 0.09525D0, 0.07197D0, 0.05394D0, 0.04005D0, 0.02949D0,
& 0.02151D0, 0.01546D0, 0.01097D0, 0.00776D0, 0.00538D0,
& 0.00366D0, 0.00247D0, 0.00162D0, 0.00067D0, 0.00025D0,
& 0.00008D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,31),I=1,49)/
& 506.38092D0,348.62979D0,239.85460D0,192.61319D0,164.78622D0,
& 145.95520D0, 99.85363D0, 67.83522D0, 53.79026D0, 45.44058D0,
& 39.62410D0, 25.51892D0, 15.87554D0, 11.80362D0, 9.46678D0,
& 7.92687D0, 5.99445D0, 4.38186D0, 2.99723D0, 2.25276D0,
& 1.46868D0, 1.05889D0, 0.80464D0, 0.59419D0, 0.44909D0,
& 0.34338D0, 0.26361D0, 0.20228D0, 0.15498D0, 0.11820D0,
& 0.08960D0, 0.06746D0, 0.05040D0, 0.03731D0, 0.02741D0,
& 0.01994D0, 0.01431D0, 0.01014D0, 0.00716D0, 0.00495D0,
& 0.00337D0, 0.00227D0, 0.00149D0, 0.00061D0, 0.00023D0,
& 0.00007D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,32),I=1,49)/
& 532.71063D0,365.14023D0,250.10423D0,200.32385D0,171.06720D0,
& 151.30153D0,103.04897D0, 69.68893D0, 55.11074D0, 46.46502D0,
& 40.45333D0, 25.92270D0, 16.04272D0, 11.89083D0, 9.51556D0,
& 7.95409D0, 5.99947D0, 4.37358D0, 2.98195D0, 2.23557D0,
& 1.45083D0, 1.04132D0, 0.78773D0, 0.57848D0, 0.43489D0,
& 0.33086D0, 0.25280D0, 0.19316D0, 0.14738D0, 0.11200D0,
& 0.08461D0, 0.06352D0, 0.04732D0, 0.03494D0, 0.02560D0,
& 0.01860D0, 0.01332D0, 0.00942D0, 0.00665D0, 0.00459D0,
& 0.00312D0, 0.00210D0, 0.00138D0, 0.00057D0, 0.00021D0,
& 0.00007D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,33),I=1,49)/
& 560.44952D0,382.45715D0,260.80753D0,208.35481D0,177.59706D0,
& 156.85155D0,106.35128D0, 71.59602D0, 56.46558D0, 47.51407D0,
& 41.30114D0, 26.33344D0, 16.21190D0, 11.97881D0, 9.56466D0,
& 7.98144D0, 6.00450D0, 4.36531D0, 2.96673D0, 2.21850D0,
& 1.43317D0, 1.02401D0, 0.77116D0, 0.56317D0, 0.42112D0,
& 0.31878D0, 0.24243D0, 0.18443D0, 0.14015D0, 0.10612D0,
& 0.07989D0, 0.05980D0, 0.04442D0, 0.03272D0, 0.02392D0,
& 0.01734D0, 0.01239D0, 0.00875D0, 0.00617D0, 0.00426D0,
& 0.00289D0, 0.00195D0, 0.00128D0, 0.00052D0, 0.00020D0,
& 0.00006D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,34),I=1,49)/
& 587.66711D0,399.34082D0,271.17145D0,216.09799D0,183.87283D0,
& 162.17198D0,109.48943D0, 73.38959D0, 57.73061D0, 48.48780D0,
& 42.08379D0, 26.70440D0, 16.35846D0, 12.05124D0, 9.60203D0,
& 7.99942D0, 6.00308D0, 4.35260D0, 2.94870D0, 2.19937D0,
& 1.41431D0, 1.00609D0, 0.75435D0, 0.54797D0, 0.40769D0,
& 0.30718D0, 0.23257D0, 0.17622D0, 0.13341D0, 0.10068D0,
& 0.07556D0, 0.05639D0, 0.04179D0, 0.03071D0, 0.02240D0,
& 0.01621D0, 0.01157D0, 0.00816D0, 0.00575D0, 0.00396D0,
& 0.00269D0, 0.00181D0, 0.00119D0, 0.00049D0, 0.00018D0,
& 0.00006D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,35),I=1,49)/
& 614.66376D0,416.01791D0,281.36646D0,223.69629D0,190.02084D0,
& 167.37685D0,112.54659D0, 75.12943D0, 58.95456D0, 49.42817D0,
& 42.83852D0, 27.06040D0, 16.49837D0, 12.12015D0, 9.63748D0,
& 8.01641D0, 6.00168D0, 4.34055D0, 2.93168D0, 2.18137D0,
& 1.39666D0, 0.98938D0, 0.73876D0, 0.53395D0, 0.39535D0,
& 0.29658D0, 0.22360D0, 0.16878D0, 0.12732D0, 0.09577D0,
& 0.07167D0, 0.05334D0, 0.03944D0, 0.02892D0, 0.02106D0,
& 0.01521D0, 0.01085D0, 0.00764D0, 0.00537D0, 0.00370D0,
& 0.00251D0, 0.00169D0, 0.00111D0, 0.00046D0, 0.00017D0,
& 0.00006D0, 0.00002D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,36),I=1,49)/
& 640.64490D0,431.98953D0,291.07977D0,230.91319D0,195.84616D0,
& 172.29993D0,115.42027D0, 76.75350D0, 60.09168D0, 50.29848D0,
& 43.53482D0, 27.38445D0, 16.62263D0, 12.17943D0, 9.66642D0,
& 8.02868D0, 5.99763D0, 4.32731D0, 2.91439D0, 2.16350D0,
& 1.37952D0, 0.97339D0, 0.72400D0, 0.52085D0, 0.38394D0,
& 0.28684D0, 0.21543D0, 0.16204D0, 0.12184D0, 0.09139D0,
& 0.06820D0, 0.05064D0, 0.03736D0, 0.02734D0, 0.01987D0,
& 0.01434D0, 0.01021D0, 0.00718D0, 0.00505D0, 0.00348D0,
& 0.00236D0, 0.00159D0, 0.00104D0, 0.00043D0, 0.00016D0,
& 0.00005D0, 0.00001D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,37),I=1,49)/
& 667.19971D0,448.23413D0,300.90906D0,238.19307D0,201.70891D0,
& 177.24495D0,118.28902D0, 78.36304D0, 61.21302D0, 51.15329D0,
& 44.21644D0, 27.69705D0, 16.73916D0, 12.23290D0, 9.69072D0,
& 8.03703D0, 5.99069D0, 4.31202D0, 2.89571D0, 2.14460D0,
& 1.36178D0, 0.95706D0, 0.70912D0, 0.50779D0, 0.37268D0,
& 0.27731D0, 0.20750D0, 0.15552D0, 0.11658D0, 0.08719D0,
& 0.06491D0, 0.04808D0, 0.03540D0, 0.02586D0, 0.01877D0,
& 0.01352D0, 0.00961D0, 0.00676D0, 0.00475D0, 0.00327D0,
& 0.00222D0, 0.00149D0, 0.00098D0, 0.00040D0, 0.00015D0,
& 0.00005D0, 0.00001D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,3,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 1),I=1,49)/
& 0.96883D0, 0.83010D0, 0.71060D0, 0.64853D0, 0.60767D0,
& 0.57770D0, 0.49346D0, 0.42161D0, 0.38501D0, 0.36146D0,
& 0.34535D0, 0.30095D0, 0.26559D0, 0.24803D0, 0.23669D0,
& 0.22831D0, 0.21597D0, 0.20255D0, 0.18524D0, 0.17029D0,
& 0.14323D0, 0.11890D0, 0.09745D0, 0.07499D0, 0.05725D0,
& 0.04365D0, 0.03351D0, 0.02602D0, 0.02043D0, 0.01653D0,
& 0.01318D0, 0.01067D0, 0.00853D0, 0.00671D0, 0.00530D0,
& 0.00405D0, 0.00296D0, 0.00217D0, 0.00162D0, 0.00103D0,
& 0.00065D0, 0.00047D0, 0.00023D0, 0.00008D0, 0.00004D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 2),I=1,49)/
& 0.97285D0, 0.83723D0, 0.71985D0, 0.65865D0, 0.61827D0,
& 0.58859D0, 0.50491D0, 0.43319D0, 0.39649D0, 0.37279D0,
& 0.35657D0, 0.31149D0, 0.27487D0, 0.25626D0, 0.24402D0,
& 0.23487D0, 0.22125D0, 0.20637D0, 0.18739D0, 0.17135D0,
& 0.14312D0, 0.11837D0, 0.09689D0, 0.07465D0, 0.05719D0,
& 0.04386D0, 0.03391D0, 0.02652D0, 0.02098D0, 0.01703D0,
& 0.01365D0, 0.01107D0, 0.00885D0, 0.00698D0, 0.00550D0,
& 0.00421D0, 0.00309D0, 0.00226D0, 0.00169D0, 0.00108D0,
& 0.00069D0, 0.00049D0, 0.00025D0, 0.00010D0, 0.00003D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 3),I=1,49)/
& 0.99630D0, 0.86193D0, 0.74498D0, 0.68373D0, 0.64319D0,
& 0.61334D0, 0.52882D0, 0.45586D0, 0.41827D0, 0.39388D0,
& 0.37707D0, 0.32984D0, 0.29034D0, 0.26968D0, 0.25582D0,
& 0.24531D0, 0.22956D0, 0.21234D0, 0.19077D0, 0.17310D0,
& 0.14315D0, 0.11778D0, 0.09624D0, 0.07426D0, 0.05716D0,
& 0.04417D0, 0.03445D0, 0.02716D0, 0.02168D0, 0.01765D0,
& 0.01422D0, 0.01151D0, 0.00919D0, 0.00726D0, 0.00569D0,
& 0.00437D0, 0.00323D0, 0.00233D0, 0.00177D0, 0.00113D0,
& 0.00072D0, 0.00052D0, 0.00028D0, 0.00011D0, 0.00003D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 4),I=1,49)/
& 1.02892D0, 0.89240D0, 0.77327D0, 0.71073D0, 0.66929D0,
& 0.63873D0, 0.55202D0, 0.47687D0, 0.43798D0, 0.41263D0,
& 0.39503D0, 0.34528D0, 0.30287D0, 0.28033D0, 0.26505D0,
& 0.25342D0, 0.23594D0, 0.21688D0, 0.19336D0, 0.17449D0,
& 0.14328D0, 0.11746D0, 0.09586D0, 0.07403D0, 0.05716D0,
& 0.04437D0, 0.03479D0, 0.02755D0, 0.02207D0, 0.01800D0,
& 0.01451D0, 0.01172D0, 0.00935D0, 0.00736D0, 0.00577D0,
& 0.00444D0, 0.00328D0, 0.00236D0, 0.00178D0, 0.00114D0,
& 0.00075D0, 0.00052D0, 0.00029D0, 0.00011D0, 0.00004D0,
& 0.00003D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 5),I=1,49)/
& 1.08451D0, 0.94133D0, 0.81630D0, 0.75061D0, 0.70706D0,
& 0.67493D0, 0.58367D0, 0.50437D0, 0.46318D0, 0.43623D0,
& 0.41737D0, 0.36373D0, 0.31732D0, 0.29240D0, 0.27539D0,
& 0.26243D0, 0.24295D0, 0.22186D0, 0.19623D0, 0.17608D0,
& 0.14355D0, 0.11725D0, 0.09556D0, 0.07384D0, 0.05715D0,
& 0.04453D0, 0.03504D0, 0.02784D0, 0.02236D0, 0.01824D0,
& 0.01470D0, 0.01187D0, 0.00949D0, 0.00742D0, 0.00580D0,
& 0.00445D0, 0.00328D0, 0.00235D0, 0.00175D0, 0.00116D0,
& 0.00074D0, 0.00053D0, 0.00029D0, 0.00011D0, 0.00004D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 6),I=1,49)/
& 1.14357D0, 0.99242D0, 0.86045D0, 0.79114D0, 0.74518D0,
& 0.71127D0, 0.61492D0, 0.53108D0, 0.48742D0, 0.45878D0,
& 0.43857D0, 0.38094D0, 0.33056D0, 0.30333D0, 0.28470D0,
& 0.27048D0, 0.24918D0, 0.22626D0, 0.19875D0, 0.17749D0,
& 0.14383D0, 0.11711D0, 0.09533D0, 0.07370D0, 0.05713D0,
& 0.04464D0, 0.03521D0, 0.02805D0, 0.02256D0, 0.01839D0,
& 0.01482D0, 0.01197D0, 0.00955D0, 0.00745D0, 0.00580D0,
& 0.00443D0, 0.00326D0, 0.00233D0, 0.00174D0, 0.00116D0,
& 0.00074D0, 0.00053D0, 0.00029D0, 0.00011D0, 0.00004D0,
& 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 7),I=1,49)/
& 1.21691D0, 1.05450D0, 0.91294D0, 0.83868D0, 0.78948D0,
& 0.75319D0, 0.65015D0, 0.56049D0, 0.51374D0, 0.48302D0,
& 0.46120D0, 0.39885D0, 0.34401D0, 0.31429D0, 0.29395D0,
& 0.27845D0, 0.25529D0, 0.23055D0, 0.20123D0, 0.17890D0,
& 0.14416D0, 0.11703D0, 0.09514D0, 0.07357D0, 0.05711D0,
& 0.04471D0, 0.03532D0, 0.02818D0, 0.02268D0, 0.01846D0,
& 0.01487D0, 0.01199D0, 0.00952D0, 0.00742D0, 0.00577D0,
& 0.00441D0, 0.00322D0, 0.00229D0, 0.00172D0, 0.00114D0,
& 0.00072D0, 0.00051D0, 0.00029D0, 0.00010D0, 0.00004D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 8),I=1,49)/
& 1.31000D0, 1.13230D0, 0.97784D0, 0.89699D0, 0.84348D0,
& 0.80406D0, 0.69226D0, 0.59511D0, 0.54444D0, 0.51110D0,
& 0.48726D0, 0.41913D0, 0.35898D0, 0.32638D0, 0.30408D0,
& 0.28713D0, 0.26192D0, 0.23518D0, 0.20389D0, 0.18042D0,
& 0.14454D0, 0.11697D0, 0.09497D0, 0.07342D0, 0.05705D0,
& 0.04474D0, 0.03539D0, 0.02827D0, 0.02275D0, 0.01851D0,
& 0.01488D0, 0.01197D0, 0.00947D0, 0.00737D0, 0.00571D0,
& 0.00437D0, 0.00318D0, 0.00224D0, 0.00169D0, 0.00111D0,
& 0.00070D0, 0.00049D0, 0.00029D0, 0.00010D0, 0.00004D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I, 9),I=1,49)/
& 1.40457D0, 1.21051D0, 1.04237D0, 0.95458D0, 0.89657D0,
& 0.85387D0, 0.73299D0, 0.62815D0, 0.57350D0, 0.53752D0,
& 0.51167D0, 0.43783D0, 0.37258D0, 0.33726D0, 0.31316D0,
& 0.29488D0, 0.26778D0, 0.23925D0, 0.20624D0, 0.18177D0,
& 0.14489D0, 0.11694D0, 0.09483D0, 0.07330D0, 0.05698D0,
& 0.04474D0, 0.03543D0, 0.02831D0, 0.02277D0, 0.01852D0,
& 0.01487D0, 0.01192D0, 0.00942D0, 0.00732D0, 0.00564D0,
& 0.00433D0, 0.00313D0, 0.00219D0, 0.00166D0, 0.00109D0,
& 0.00068D0, 0.00049D0, 0.00028D0, 0.00010D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,10),I=1,49)/
& 1.51092D0, 1.29750D0, 1.11331D0, 1.01744D0, 0.95421D0,
& 0.90772D0, 0.77643D0, 0.66288D0, 0.60378D0, 0.56488D0,
& 0.53682D0, 0.45681D0, 0.38616D0, 0.34803D0, 0.32208D0,
& 0.30246D0, 0.27350D0, 0.24321D0, 0.20851D0, 0.18308D0,
& 0.14525D0, 0.11692D0, 0.09469D0, 0.07316D0, 0.05689D0,
& 0.04470D0, 0.03541D0, 0.02828D0, 0.02274D0, 0.01846D0,
& 0.01479D0, 0.01184D0, 0.00933D0, 0.00722D0, 0.00556D0,
& 0.00426D0, 0.00307D0, 0.00215D0, 0.00161D0, 0.00106D0,
& 0.00067D0, 0.00048D0, 0.00027D0, 0.00010D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,11),I=1,49)/
& 1.60472D0, 1.37368D0, 1.17498D0, 1.07183D0, 1.00391D0,
& 0.95405D0, 0.81348D0, 0.69224D0, 0.62923D0, 0.58777D0,
& 0.55781D0, 0.47247D0, 0.39725D0, 0.35677D0, 0.32928D0,
& 0.30856D0, 0.27807D0, 0.24637D0, 0.21032D0, 0.18413D0,
& 0.14554D0, 0.11692D0, 0.09459D0, 0.07304D0, 0.05681D0,
& 0.04465D0, 0.03537D0, 0.02823D0, 0.02270D0, 0.01839D0,
& 0.01471D0, 0.01176D0, 0.00923D0, 0.00712D0, 0.00549D0,
& 0.00419D0, 0.00301D0, 0.00213D0, 0.00157D0, 0.00105D0,
& 0.00065D0, 0.00047D0, 0.00027D0, 0.00010D0, 0.00004D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,12),I=1,49)/
& 1.83637D0, 1.55987D0, 1.32404D0, 1.20242D0, 1.12267D0,
& 1.06429D0, 0.90056D0, 0.76032D0, 0.68777D0, 0.64012D0,
& 0.60555D0, 0.50757D0, 0.42172D0, 0.37588D0, 0.34496D0,
& 0.32177D0, 0.28792D0, 0.25312D0, 0.21417D0, 0.18636D0,
& 0.14617D0, 0.11691D0, 0.09435D0, 0.07276D0, 0.05658D0,
& 0.04447D0, 0.03521D0, 0.02807D0, 0.02254D0, 0.01819D0,
& 0.01452D0, 0.01154D0, 0.00905D0, 0.00695D0, 0.00533D0,
& 0.00404D0, 0.00292D0, 0.00205D0, 0.00149D0, 0.00100D0,
& 0.00062D0, 0.00045D0, 0.00024D0, 0.00010D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,13),I=1,49)/
& 2.07152D0, 1.74663D0, 1.47172D0, 1.33085D0, 1.23884D0,
& 1.17167D0, 0.98420D0, 0.82476D0, 0.74268D0, 0.68890D0,
& 0.64981D0, 0.53955D0, 0.44363D0, 0.39281D0, 0.35874D0,
& 0.33333D0, 0.29647D0, 0.25893D0, 0.21746D0, 0.18826D0,
& 0.14670D0, 0.11688D0, 0.09412D0, 0.07248D0, 0.05632D0,
& 0.04424D0, 0.03500D0, 0.02787D0, 0.02234D0, 0.01798D0,
& 0.01431D0, 0.01132D0, 0.00886D0, 0.00679D0, 0.00517D0,
& 0.00390D0, 0.00284D0, 0.00195D0, 0.00143D0, 0.00095D0,
& 0.00059D0, 0.00043D0, 0.00023D0, 0.00009D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,14),I=1,49)/
& 2.37643D0, 1.98603D0, 1.65879D0, 1.49235D0, 1.38415D0,
& 1.30543D0, 1.08702D0, 0.90288D0, 0.80867D0, 0.74716D0,
& 0.70240D0, 0.57696D0, 0.46881D0, 0.41209D0, 0.37432D0,
& 0.34632D0, 0.30599D0, 0.26535D0, 0.22106D0, 0.19032D0,
& 0.14723D0, 0.11682D0, 0.09381D0, 0.07211D0, 0.05596D0,
& 0.04392D0, 0.03471D0, 0.02757D0, 0.02204D0, 0.01767D0,
& 0.01400D0, 0.01105D0, 0.00862D0, 0.00657D0, 0.00496D0,
& 0.00374D0, 0.00270D0, 0.00182D0, 0.00137D0, 0.00090D0,
& 0.00057D0, 0.00039D0, 0.00023D0, 0.00007D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,15),I=1,49)/
& 2.74566D0, 2.27231D0, 1.87960D0, 1.68150D0, 1.55338D0,
& 1.46052D0, 1.20454D0, 0.99082D0, 0.88227D0, 0.81170D0,
& 0.76034D0, 0.61745D0, 0.49560D0, 0.43237D0, 0.39059D0,
& 0.35980D0, 0.31580D0, 0.27191D0, 0.22470D0, 0.19238D0,
& 0.14774D0, 0.11669D0, 0.09344D0, 0.07165D0, 0.05549D0,
& 0.04347D0, 0.03429D0, 0.02720D0, 0.02166D0, 0.01729D0,
& 0.01366D0, 0.01073D0, 0.00832D0, 0.00636D0, 0.00476D0,
& 0.00357D0, 0.00255D0, 0.00175D0, 0.00131D0, 0.00086D0,
& 0.00052D0, 0.00037D0, 0.00021D0, 0.00007D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,16),I=1,49)/
& 3.12622D0, 2.56414D0, 2.10216D0, 1.87087D0, 1.72199D0,
& 1.61445D0, 1.31978D0, 1.07596D0, 0.95298D0, 0.87335D0,
& 0.81544D0, 0.65540D0, 0.52031D0, 0.45090D0, 0.40535D0,
& 0.37197D0, 0.32458D0, 0.27772D0, 0.22787D0, 0.19414D0,
& 0.14813D0, 0.11651D0, 0.09303D0, 0.07117D0, 0.05501D0,
& 0.04302D0, 0.03385D0, 0.02678D0, 0.02128D0, 0.01692D0,
& 0.01332D0, 0.01043D0, 0.00806D0, 0.00611D0, 0.00459D0,
& 0.00341D0, 0.00242D0, 0.00166D0, 0.00123D0, 0.00082D0,
& 0.00050D0, 0.00034D0, 0.00020D0, 0.00006D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,17),I=1,49)/
& 3.55799D0, 2.89188D0, 2.34954D0, 2.08007D0, 1.90742D0,
& 1.78316D0, 1.44470D0, 1.16721D0, 1.02825D0, 0.93863D0,
& 0.87356D0, 0.69490D0, 0.54567D0, 0.46976D0, 0.42028D0,
& 0.38422D0, 0.33334D0, 0.28346D0, 0.23097D0, 0.19583D0,
& 0.14845D0, 0.11627D0, 0.09257D0, 0.07063D0, 0.05448D0,
& 0.04252D0, 0.03337D0, 0.02631D0, 0.02087D0, 0.01652D0,
& 0.01297D0, 0.01012D0, 0.00778D0, 0.00585D0, 0.00440D0,
& 0.00326D0, 0.00231D0, 0.00157D0, 0.00115D0, 0.00076D0,
& 0.00047D0, 0.00031D0, 0.00019D0, 0.00006D0, 0.00003D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,18),I=1,49)/
& 3.95423D0, 3.18985D0, 2.57232D0, 2.26740D0, 2.07281D0,
& 1.93314D0, 1.55464D0, 1.24668D0, 1.09337D0, 0.99486D0,
& 0.92342D0, 0.72838D0, 0.56689D0, 0.48541D0, 0.43260D0,
& 0.39429D0, 0.34049D0, 0.28810D0, 0.23344D0, 0.19715D0,
& 0.14866D0, 0.11602D0, 0.09214D0, 0.07013D0, 0.05399D0,
& 0.04205D0, 0.03295D0, 0.02591D0, 0.02050D0, 0.01618D0,
& 0.01266D0, 0.00984D0, 0.00753D0, 0.00565D0, 0.00424D0,
& 0.00314D0, 0.00221D0, 0.00150D0, 0.00109D0, 0.00072D0,
& 0.00043D0, 0.00030D0, 0.00018D0, 0.00006D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,19),I=1,49)/
& 4.48113D0, 3.58253D0, 2.86323D0, 2.51070D0, 2.28676D0,
& 2.12659D0, 1.69508D0, 1.34718D0, 1.17523D0, 1.06522D0,
& 0.98559D0, 0.76963D0, 0.59272D0, 0.50431D0, 0.44739D0,
& 0.40630D0, 0.34895D0, 0.29355D0, 0.23628D0, 0.19863D0,
& 0.14882D0, 0.11566D0, 0.09156D0, 0.06947D0, 0.05334D0,
& 0.04144D0, 0.03238D0, 0.02540D0, 0.02000D0, 0.01574D0,
& 0.01227D0, 0.00950D0, 0.00724D0, 0.00541D0, 0.00404D0,
& 0.00298D0, 0.00211D0, 0.00142D0, 0.00103D0, 0.00067D0,
& 0.00041D0, 0.00028D0, 0.00016D0, 0.00006D0, 0.00002D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,20),I=1,49)/
& 4.99499D0, 3.96212D0, 3.14196D0, 2.74258D0, 2.48991D0,
& 2.30973D0, 1.82681D0, 1.44056D0, 1.25085D0, 1.12995D0,
& 1.04258D0, 0.80704D0, 0.61586D0, 0.52113D0, 0.46048D0,
& 0.41689D0, 0.35636D0, 0.29827D0, 0.23871D0, 0.19986D0,
& 0.14892D0, 0.11531D0, 0.09101D0, 0.06887D0, 0.05276D0,
& 0.04087D0, 0.03186D0, 0.02494D0, 0.01954D0, 0.01534D0,
& 0.01192D0, 0.00921D0, 0.00699D0, 0.00520D0, 0.00387D0,
& 0.00284D0, 0.00201D0, 0.00135D0, 0.00099D0, 0.00063D0,
& 0.00039D0, 0.00027D0, 0.00014D0, 0.00005D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,21),I=1,49)/
& 5.50061D0, 4.33261D0, 3.41176D0, 2.96594D0, 2.68491D0,
& 2.48503D0, 1.95181D0, 1.52837D0, 1.32157D0, 1.19023D0,
& 1.09549D0, 0.84140D0, 0.63686D0, 0.53627D0, 0.47219D0,
& 0.42632D0, 0.36291D0, 0.30239D0, 0.24078D0, 0.20086D0,
& 0.14892D0, 0.11489D0, 0.09045D0, 0.06826D0, 0.05215D0,
& 0.04031D0, 0.03135D0, 0.02446D0, 0.01914D0, 0.01497D0,
& 0.01162D0, 0.00892D0, 0.00678D0, 0.00502D0, 0.00373D0,
& 0.00273D0, 0.00191D0, 0.00128D0, 0.00093D0, 0.00060D0,
& 0.00037D0, 0.00026D0, 0.00014D0, 0.00005D0, 0.00001D0,
& 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,22),I=1,49)/
& 6.19859D0, 4.83989D0, 3.77815D0, 3.26780D0, 2.94753D0,
& 2.72049D0, 2.11828D0, 1.64429D0, 1.41443D0, 1.26909D0,
& 1.16448D0, 0.88574D0, 0.66367D0, 0.55547D0, 0.48697D0,
& 0.43816D0, 0.37106D0, 0.30748D0, 0.24329D0, 0.20204D0,
& 0.14885D0, 0.11433D0, 0.08969D0, 0.06745D0, 0.05136D0,
& 0.03959D0, 0.03069D0, 0.02386D0, 0.01861D0, 0.01451D0,
& 0.01121D0, 0.00856D0, 0.00649D0, 0.00480D0, 0.00355D0,
& 0.00258D0, 0.00180D0, 0.00120D0, 0.00087D0, 0.00057D0,
& 0.00034D0, 0.00024D0, 0.00013D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,23),I=1,49)/
& 6.91462D0, 5.35579D0, 4.14753D0, 3.57056D0, 3.20996D0,
& 2.95511D0, 2.28266D0, 1.75769D0, 1.50477D0, 1.34548D0,
& 1.23109D0, 0.92809D0, 0.68898D0, 0.57345D0, 0.50073D0,
& 0.44914D0, 0.37855D0, 0.31211D0, 0.24552D0, 0.20305D0,
& 0.14871D0, 0.11376D0, 0.08894D0, 0.06666D0, 0.05060D0,
& 0.03890D0, 0.03007D0, 0.02332D0, 0.01811D0, 0.01408D0,
& 0.01081D0, 0.00824D0, 0.00620D0, 0.00458D0, 0.00337D0,
& 0.00246D0, 0.00171D0, 0.00112D0, 0.00082D0, 0.00053D0,
& 0.00032D0, 0.00022D0, 0.00013D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,24),I=1,49)/
& 7.62855D0, 5.86601D0, 4.50985D0, 3.86607D0, 3.46522D0,
& 3.18268D0, 2.44073D0, 1.86575D0, 1.59038D0, 1.41758D0,
& 1.29375D0, 0.96750D0, 0.71223D0, 0.58984D0, 0.51319D0,
& 0.45902D0, 0.38523D0, 0.31616D0, 0.24739D0, 0.20383D0,
& 0.14846D0, 0.11312D0, 0.08817D0, 0.06586D0, 0.04986D0,
& 0.03821D0, 0.02946D0, 0.02275D0, 0.01763D0, 0.01365D0,
& 0.01046D0, 0.00797D0, 0.00597D0, 0.00439D0, 0.00323D0,
& 0.00235D0, 0.00162D0, 0.00107D0, 0.00078D0, 0.00051D0,
& 0.00031D0, 0.00021D0, 0.00012D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,25),I=1,49)/
& 8.39955D0, 6.41302D0, 4.89545D0, 4.17923D0, 3.73489D0,
& 3.42253D0, 2.60607D0, 1.97793D0, 1.67884D0, 1.49183D0,
& 1.35810D0, 1.00761D0, 0.73567D0, 0.60627D0, 0.52562D0,
& 0.46884D0, 0.39183D0, 0.32012D0, 0.24919D0, 0.20455D0,
& 0.14818D0, 0.11246D0, 0.08739D0, 0.06506D0, 0.04911D0,
& 0.03752D0, 0.02885D0, 0.02220D0, 0.01716D0, 0.01324D0,
& 0.01012D0, 0.00771D0, 0.00575D0, 0.00422D0, 0.00309D0,
& 0.00225D0, 0.00154D0, 0.00103D0, 0.00074D0, 0.00048D0,
& 0.00030D0, 0.00020D0, 0.00010D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,26),I=1,49)/
& 9.19737D0, 6.97494D0, 5.28863D0, 4.49714D0, 4.00779D0,
& 3.66466D0, 2.77170D0, 2.08938D0, 1.76629D0, 1.56497D0,
& 1.42130D0, 1.04661D0, 0.75821D0, 0.62194D0, 0.53740D0,
& 0.47810D0, 0.39797D0, 0.32376D0, 0.25078D0, 0.20510D0,
& 0.14782D0, 0.11174D0, 0.08657D0, 0.06424D0, 0.04835D0,
& 0.03684D0, 0.02824D0, 0.02168D0, 0.01670D0, 0.01284D0,
& 0.00977D0, 0.00742D0, 0.00552D0, 0.00404D0, 0.00296D0,
& 0.00214D0, 0.00146D0, 0.00097D0, 0.00071D0, 0.00044D0,
& 0.00028D0, 0.00017D0, 0.00010D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,27),I=1,49)/
& 10.00116D0, 7.53729D0, 5.67949D0, 4.81192D0, 4.27724D0,
& 3.90320D0, 2.93374D0, 2.19765D0, 1.85088D0, 1.63549D0,
& 1.48207D0, 1.08380D0, 0.77950D0, 0.63664D0, 0.54841D0,
& 0.48671D0, 0.40364D0, 0.32707D0, 0.25218D0, 0.20556D0,
& 0.14742D0, 0.11104D0, 0.08576D0, 0.06344D0, 0.04762D0,
& 0.03619D0, 0.02766D0, 0.02119D0, 0.01627D0, 0.01248D0,
& 0.00947D0, 0.00716D0, 0.00532D0, 0.00389D0, 0.00284D0,
& 0.00205D0, 0.00139D0, 0.00092D0, 0.00068D0, 0.00042D0,
& 0.00026D0, 0.00016D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,28),I=1,49)/
& 10.79744D0, 8.09092D0, 6.06186D0, 5.11871D0, 4.53915D0,
& 4.13458D0, 3.08987D0, 2.30126D0, 1.93148D0, 1.70248D0,
& 1.53966D0, 1.11875D0, 0.79931D0, 0.65024D0, 0.55853D0,
& 0.49459D0, 0.40879D0, 0.33003D0, 0.25337D0, 0.20589D0,
& 0.14698D0, 0.11033D0, 0.08498D0, 0.06267D0, 0.04691D0,
& 0.03557D0, 0.02711D0, 0.02071D0, 0.01586D0, 0.01214D0,
& 0.00920D0, 0.00692D0, 0.00514D0, 0.00376D0, 0.00272D0,
& 0.00196D0, 0.00133D0, 0.00087D0, 0.00064D0, 0.00040D0,
& 0.00025D0, 0.00016D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,29),I=1,49)/
& 11.63983D0, 8.67317D0, 6.46161D0, 5.43834D0, 4.81133D0,
& 4.37457D0, 3.25082D0, 2.40738D0, 2.01373D0, 1.77063D0,
& 1.59811D0, 1.15395D0, 0.81909D0, 0.66374D0, 0.56853D0,
& 0.50235D0, 0.41381D0, 0.33288D0, 0.25448D0, 0.20616D0,
& 0.14650D0, 0.10959D0, 0.08417D0, 0.06189D0, 0.04620D0,
& 0.03495D0, 0.02656D0, 0.02024D0, 0.01545D0, 0.01181D0,
& 0.00893D0, 0.00670D0, 0.00496D0, 0.00362D0, 0.00261D0,
& 0.00187D0, 0.00127D0, 0.00083D0, 0.00060D0, 0.00038D0,
& 0.00023D0, 0.00015D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,30),I=1,49)/
& 12.50504D0, 9.26774D0, 6.86743D0, 5.76168D0, 5.08599D0,
& 4.61626D0, 3.41191D0, 2.51292D0, 2.09519D0, 1.83795D0,
& 1.65570D0, 1.18836D0, 0.83825D0, 0.67674D0, 0.57810D0,
& 0.50972D0, 0.41855D0, 0.33552D0, 0.25546D0, 0.20633D0,
& 0.14597D0, 0.10882D0, 0.08334D0, 0.06111D0, 0.04550D0,
& 0.03432D0, 0.02602D0, 0.01977D0, 0.01507D0, 0.01148D0,
& 0.00865D0, 0.00649D0, 0.00478D0, 0.00347D0, 0.00250D0,
& 0.00177D0, 0.00121D0, 0.00078D0, 0.00056D0, 0.00036D0,
& 0.00022D0, 0.00014D0, 0.00008D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,31),I=1,49)/
& 13.36928D0, 9.85846D0, 7.26844D0, 6.08018D0, 5.35592D0,
& 4.85338D0, 3.56907D0, 2.61529D0, 2.17393D0, 1.90285D0,
& 1.71111D0, 1.22123D0, 0.85642D0, 0.68899D0, 0.58709D0,
& 0.51663D0, 0.42295D0, 0.33794D0, 0.25632D0, 0.20644D0,
& 0.14544D0, 0.10808D0, 0.08256D0, 0.06036D0, 0.04483D0,
& 0.03373D0, 0.02551D0, 0.01933D0, 0.01470D0, 0.01117D0,
& 0.00840D0, 0.00629D0, 0.00462D0, 0.00334D0, 0.00240D0,
& 0.00170D0, 0.00116D0, 0.00075D0, 0.00053D0, 0.00034D0,
& 0.00021D0, 0.00014D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,32),I=1,49)/
& 14.21204D0, 10.43149D0, 7.65538D0, 6.38652D0, 5.61495D0,
& 5.08051D0, 3.71876D0, 2.71221D0, 2.24821D0, 1.96390D0,
& 1.76311D0, 1.25185D0, 0.87317D0, 0.70020D0, 0.59526D0,
& 0.52288D0, 0.42687D0, 0.34005D0, 0.25702D0, 0.20645D0,
& 0.14487D0, 0.10733D0, 0.08179D0, 0.05963D0, 0.04417D0,
& 0.03317D0, 0.02503D0, 0.01893D0, 0.01436D0, 0.01089D0,
& 0.00816D0, 0.00610D0, 0.00447D0, 0.00322D0, 0.00232D0,
& 0.00164D0, 0.00111D0, 0.00072D0, 0.00051D0, 0.00033D0,
& 0.00020D0, 0.00013D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,33),I=1,49)/
& 15.10980D0, 11.03912D0, 8.06381D0, 6.70901D0, 5.88712D0,
& 5.31881D0, 3.87508D0, 2.81294D0, 2.32519D0, 2.02704D0,
& 1.81681D0, 1.28330D0, 0.89029D0, 0.71163D0, 0.60357D0,
& 0.52922D0, 0.43085D0, 0.34218D0, 0.25771D0, 0.20646D0,
& 0.14430D0, 0.10659D0, 0.08103D0, 0.05890D0, 0.04353D0,
& 0.03261D0, 0.02455D0, 0.01854D0, 0.01403D0, 0.01061D0,
& 0.00794D0, 0.00591D0, 0.00432D0, 0.00310D0, 0.00224D0,
& 0.00159D0, 0.00107D0, 0.00069D0, 0.00049D0, 0.00032D0,
& 0.00019D0, 0.00012D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,34),I=1,49)/
& 16.00814D0, 11.64399D0, 8.46821D0, 7.02730D0, 6.15513D0,
& 5.55303D0, 4.02783D0, 2.91076D0, 2.39965D0, 2.08793D0,
& 1.86846D0, 1.31328D0, 0.90643D0, 0.72231D0, 0.61128D0,
& 0.53505D0, 0.43443D0, 0.34403D0, 0.25822D0, 0.20634D0,
& 0.14366D0, 0.10580D0, 0.08022D0, 0.05817D0, 0.04288D0,
& 0.03206D0, 0.02408D0, 0.01814D0, 0.01369D0, 0.01034D0,
& 0.00771D0, 0.00572D0, 0.00418D0, 0.00300D0, 0.00216D0,
& 0.00152D0, 0.00103D0, 0.00065D0, 0.00048D0, 0.00031D0,
& 0.00018D0, 0.00012D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,35),I=1,49)/
& 16.90871D0, 12.24779D0, 8.87019D0, 7.34290D0, 6.42039D0,
& 5.78454D0, 4.17816D0, 3.00661D0, 2.47242D0, 2.14733D0,
& 1.91876D0, 1.34235D0, 0.92199D0, 0.73258D0, 0.61867D0,
& 0.54063D0, 0.43786D0, 0.34580D0, 0.25870D0, 0.20622D0,
& 0.14305D0, 0.10506D0, 0.07947D0, 0.05749D0, 0.04228D0,
& 0.03154D0, 0.02364D0, 0.01777D0, 0.01338D0, 0.01009D0,
& 0.00750D0, 0.00555D0, 0.00406D0, 0.00290D0, 0.00208D0,
& 0.00145D0, 0.00100D0, 0.00062D0, 0.00047D0, 0.00030D0,
& 0.00017D0, 0.00012D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,36),I=1,49)/
& 17.78739D0, 12.83436D0, 9.25897D0, 7.64732D0, 6.67578D0,
& 6.00710D0, 4.32199D0, 3.09786D0, 2.54148D0, 2.20357D0,
& 1.96631D0, 1.36964D0, 0.93649D0, 0.74208D0, 0.62547D0,
& 0.54573D0, 0.44096D0, 0.34736D0, 0.25907D0, 0.20605D0,
& 0.14244D0, 0.10433D0, 0.07874D0, 0.05683D0, 0.04170D0,
& 0.03105D0, 0.02321D0, 0.01741D0, 0.01309D0, 0.00985D0,
& 0.00731D0, 0.00540D0, 0.00394D0, 0.00282D0, 0.00201D0,
& 0.00140D0, 0.00096D0, 0.00060D0, 0.00045D0, 0.00029D0,
& 0.00016D0, 0.00012D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,37),I=1,49)/
& 18.69798D0, 13.43965D0, 9.65843D0, 7.95932D0, 6.93703D0,
& 6.23444D0, 4.46823D0, 3.19019D0, 2.61115D0, 2.26017D0,
& 2.01407D0, 1.39688D0, 0.95084D0, 0.75143D0, 0.63213D0,
& 0.55070D0, 0.44393D0, 0.34881D0, 0.25937D0, 0.20581D0,
& 0.14178D0, 0.10356D0, 0.07799D0, 0.05614D0, 0.04110D0,
& 0.03053D0, 0.02278D0, 0.01705D0, 0.01280D0, 0.00961D0,
& 0.00713D0, 0.00525D0, 0.00382D0, 0.00273D0, 0.00195D0,
& 0.00136D0, 0.00092D0, 0.00058D0, 0.00043D0, 0.00028D0,
& 0.00015D0, 0.00011D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,4,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 1),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 2),I=1,49)/
& 0.00003D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00002D0, 0.00002D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 3),I=1,49)/
& 0.02821D0, 0.02609D0, 0.02411D0, 0.02301D0, 0.02226D0,
& 0.02169D0, 0.01996D0, 0.01827D0, 0.01727D0, 0.01654D0,
& 0.01595D0, 0.01400D0, 0.01174D0, 0.01027D0, 0.00917D0,
& 0.00829D0, 0.00696D0, 0.00558D0, 0.00415D0, 0.00329D0,
& 0.00239D0, 0.00200D0, 0.00182D0, 0.00170D0, 0.00161D0,
& 0.00151D0, 0.00140D0, 0.00127D0, 0.00113D0, 0.00099D0,
& 0.00084D0, 0.00071D0, 0.00058D0, 0.00047D0, 0.00038D0,
& 0.00029D0, 0.00023D0, 0.00017D0, 0.00013D0, 0.00009D0,
& 0.00006D0, 0.00004D0, 0.00003D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 4),I=1,49)/
& 0.07423D0, 0.06794D0, 0.06215D0, 0.05896D0, 0.05679D0,
& 0.05514D0, 0.05023D0, 0.04550D0, 0.04276D0, 0.04079D0,
& 0.03919D0, 0.03404D0, 0.02827D0, 0.02460D0, 0.02188D0,
& 0.01974D0, 0.01650D0, 0.01320D0, 0.00980D0, 0.00778D0,
& 0.00567D0, 0.00475D0, 0.00430D0, 0.00399D0, 0.00376D0,
& 0.00351D0, 0.00322D0, 0.00290D0, 0.00256D0, 0.00223D0,
& 0.00189D0, 0.00158D0, 0.00129D0, 0.00104D0, 0.00083D0,
& 0.00064D0, 0.00049D0, 0.00037D0, 0.00027D0, 0.00020D0,
& 0.00014D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 5),I=1,49)/
& 0.13335D0, 0.12014D0, 0.10818D0, 0.10170D0, 0.09731D0,
& 0.09401D0, 0.08430D0, 0.07519D0, 0.07001D0, 0.06635D0,
& 0.06344D0, 0.05426D0, 0.04442D0, 0.03837D0, 0.03396D0,
& 0.03053D0, 0.02541D0, 0.02025D0, 0.01501D0, 0.01192D0,
& 0.00870D0, 0.00726D0, 0.00654D0, 0.00602D0, 0.00561D0,
& 0.00519D0, 0.00472D0, 0.00422D0, 0.00370D0, 0.00319D0,
& 0.00269D0, 0.00224D0, 0.00183D0, 0.00146D0, 0.00116D0,
& 0.00089D0, 0.00068D0, 0.00051D0, 0.00038D0, 0.00027D0,
& 0.00019D0, 0.00013D0, 0.00008D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 6),I=1,49)/
& 0.20163D0, 0.17920D0, 0.15918D0, 0.14846D0, 0.14125D0,
& 0.13587D0, 0.12018D0, 0.10574D0, 0.09768D0, 0.09205D0,
& 0.08763D0, 0.07395D0, 0.05979D0, 0.05130D0, 0.04521D0,
& 0.04052D0, 0.03360D0, 0.02669D0, 0.01976D0, 0.01569D0,
& 0.01145D0, 0.00954D0, 0.00855D0, 0.00780D0, 0.00720D0,
& 0.00661D0, 0.00597D0, 0.00530D0, 0.00461D0, 0.00396D0,
& 0.00333D0, 0.00275D0, 0.00223D0, 0.00178D0, 0.00140D0,
& 0.00108D0, 0.00082D0, 0.00061D0, 0.00045D0, 0.00032D0,
& 0.00022D0, 0.00015D0, 0.00010D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 7),I=1,49)/
& 0.27774D0, 0.24395D0, 0.21415D0, 0.19835D0, 0.18780D0,
& 0.17996D0, 0.15730D0, 0.13677D0, 0.12547D0, 0.11766D0,
& 0.11157D0, 0.09303D0, 0.07437D0, 0.06341D0, 0.05566D0,
& 0.04974D0, 0.04109D0, 0.03255D0, 0.02405D0, 0.01909D0,
& 0.01394D0, 0.01158D0, 0.01033D0, 0.00936D0, 0.00857D0,
& 0.00780D0, 0.00699D0, 0.00616D0, 0.00533D0, 0.00455D0,
& 0.00380D0, 0.00313D0, 0.00253D0, 0.00201D0, 0.00157D0,
& 0.00121D0, 0.00091D0, 0.00068D0, 0.00050D0, 0.00036D0,
& 0.00024D0, 0.00016D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 8),I=1,49)/
& 0.37644D0, 0.32674D0, 0.28346D0, 0.26073D0, 0.24565D0,
& 0.23449D0, 0.20256D0, 0.17404D0, 0.15854D0, 0.14793D0,
& 0.13972D0, 0.11511D0, 0.09095D0, 0.07707D0, 0.06738D0,
& 0.06004D0, 0.04941D0, 0.03901D0, 0.02877D0, 0.02283D0,
& 0.01667D0, 0.01381D0, 0.01226D0, 0.01101D0, 0.01000D0,
& 0.00902D0, 0.00803D0, 0.00703D0, 0.00604D0, 0.00513D0,
& 0.00426D0, 0.00349D0, 0.00280D0, 0.00222D0, 0.00173D0,
& 0.00132D0, 0.00099D0, 0.00074D0, 0.00054D0, 0.00039D0,
& 0.00026D0, 0.00017D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I, 9),I=1,49)/
& 0.47784D0, 0.41072D0, 0.35284D0, 0.32270D0, 0.30279D0,
& 0.28813D0, 0.24646D0, 0.20968D0, 0.18991D0, 0.17647D0,
& 0.16612D0, 0.13548D0, 0.10603D0, 0.08938D0, 0.07787D0,
& 0.06921D0, 0.05678D0, 0.04472D0, 0.03292D0, 0.02612D0,
& 0.01906D0, 0.01575D0, 0.01392D0, 0.01241D0, 0.01119D0,
& 0.01003D0, 0.00887D0, 0.00772D0, 0.00660D0, 0.00557D0,
& 0.00461D0, 0.00376D0, 0.00301D0, 0.00237D0, 0.00184D0,
& 0.00140D0, 0.00105D0, 0.00077D0, 0.00057D0, 0.00041D0,
& 0.00027D0, 0.00018D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,10),I=1,49)/
& 0.58781D0, 0.50078D0, 0.42641D0, 0.38796D0, 0.36269D0,
& 0.34414D0, 0.29176D0, 0.24601D0, 0.22164D0, 0.20518D0,
& 0.19257D0, 0.15561D0, 0.12070D0, 0.10126D0, 0.08794D0,
& 0.07799D0, 0.06379D0, 0.05011D0, 0.03684D0, 0.02922D0,
& 0.02130D0, 0.01755D0, 0.01544D0, 0.01368D0, 0.01225D0,
& 0.01090D0, 0.00959D0, 0.00830D0, 0.00706D0, 0.00594D0,
& 0.00489D0, 0.00397D0, 0.00316D0, 0.00248D0, 0.00192D0,
& 0.00146D0, 0.00109D0, 0.00080D0, 0.00059D0, 0.00042D0,
& 0.00027D0, 0.00018D0, 0.00012D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,11),I=1,49)/
& 0.68602D0, 0.58051D0, 0.49095D0, 0.44491D0, 0.41476D0,
& 0.39269D0, 0.33066D0, 0.27690D0, 0.24847D0, 0.22936D0,
& 0.21477D0, 0.17232D0, 0.13275D0, 0.11095D0, 0.09613D0,
& 0.08510D0, 0.06944D0, 0.05445D0, 0.03997D0, 0.03169D0,
& 0.02308D0, 0.01898D0, 0.01663D0, 0.01466D0, 0.01306D0,
& 0.01157D0, 0.01013D0, 0.00872D0, 0.00740D0, 0.00620D0,
& 0.00508D0, 0.00411D0, 0.00327D0, 0.00256D0, 0.00197D0,
& 0.00149D0, 0.00111D0, 0.00081D0, 0.00060D0, 0.00042D0,
& 0.00028D0, 0.00018D0, 0.00012D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,12),I=1,49)/
& 0.92772D0, 0.77438D0, 0.64603D0, 0.58078D0, 0.53835D0,
& 0.50746D0, 0.42147D0, 0.34811D0, 0.30983D0, 0.28433D0,
& 0.26501D0, 0.20960D0, 0.15924D0, 0.13208D0, 0.11385D0,
& 0.10043D0, 0.08155D0, 0.06370D0, 0.04663D0, 0.03692D0,
& 0.02683D0, 0.02195D0, 0.01909D0, 0.01665D0, 0.01467D0,
& 0.01287D0, 0.01115D0, 0.00952D0, 0.00801D0, 0.00666D0,
& 0.00542D0, 0.00436D0, 0.00344D0, 0.00268D0, 0.00205D0,
& 0.00155D0, 0.00115D0, 0.00083D0, 0.00061D0, 0.00043D0,
& 0.00028D0, 0.00018D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,13),I=1,49)/
& 1.17595D0, 0.97076D0, 0.80093D0, 0.71538D0, 0.66007D0,
& 0.61997D0, 0.50921D0, 0.41588D0, 0.36771D0, 0.33586D0,
& 0.31184D0, 0.24377D0, 0.18310D0, 0.15092D0, 0.12956D0,
& 0.11394D0, 0.09216D0, 0.07174D0, 0.05238D0, 0.04143D0,
& 0.03003D0, 0.02446D0, 0.02114D0, 0.01827D0, 0.01595D0,
& 0.01387D0, 0.01193D0, 0.01011D0, 0.00845D0, 0.00698D0,
& 0.00565D0, 0.00451D0, 0.00355D0, 0.00275D0, 0.00209D0,
& 0.00157D0, 0.00116D0, 0.00084D0, 0.00061D0, 0.00043D0,
& 0.00028D0, 0.00018D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,14),I=1,49)/
& 1.49839D0, 1.22261D0, 0.99703D0, 0.88447D0, 0.81213D0,
& 0.75993D0, 0.61688D0, 0.49791D0, 0.43718D0, 0.39731D0,
& 0.36742D0, 0.28369D0, 0.21052D0, 0.17237D0, 0.14732D0,
& 0.12915D0, 0.10402D0, 0.08067D0, 0.05873D0, 0.04638D0,
& 0.03352D0, 0.02715D0, 0.02331D0, 0.01995D0, 0.01725D0,
& 0.01486D0, 0.01267D0, 0.01065D0, 0.00884D0, 0.00725D0,
& 0.00583D0, 0.00463D0, 0.00362D0, 0.00279D0, 0.00211D0,
& 0.00158D0, 0.00116D0, 0.00083D0, 0.00061D0, 0.00043D0,
& 0.00027D0, 0.00018D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,15),I=1,49)/
& 1.87945D0, 1.51634D0, 1.22268D0, 1.07750D0, 0.98475D0,
& 0.91809D0, 0.73686D0, 0.58798D0, 0.51279D0, 0.46377D0,
& 0.42722D0, 0.32591D0, 0.23902D0, 0.19443D0, 0.16545D0,
& 0.14459D0, 0.11596D0, 0.08960D0, 0.06503D0, 0.05127D0,
& 0.03691D0, 0.02973D0, 0.02534D0, 0.02147D0, 0.01838D0,
& 0.01569D0, 0.01327D0, 0.01107D0, 0.00912D0, 0.00743D0,
& 0.00594D0, 0.00469D0, 0.00364D0, 0.00279D0, 0.00210D0,
& 0.00156D0, 0.00114D0, 0.00082D0, 0.00059D0, 0.00041D0,
& 0.00026D0, 0.00017D0, 0.00010D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,16),I=1,49)/
& 2.27429D0, 1.81716D0, 1.45106D0, 1.27151D0, 1.15736D0,
& 1.07564D0, 0.85491D0, 0.67549D0, 0.58568D0, 0.52749D0,
& 0.48429D0, 0.36563D0, 0.26542D0, 0.21469D0, 0.18200D0,
& 0.15862D0, 0.12673D0, 0.09760D0, 0.07063D0, 0.05559D0,
& 0.03988D0, 0.03195D0, 0.02705D0, 0.02273D0, 0.01930D0,
& 0.01634D0, 0.01371D0, 0.01136D0, 0.00930D0, 0.00753D0,
& 0.00599D0, 0.00470D0, 0.00364D0, 0.00277D0, 0.00208D0,
& 0.00154D0, 0.00112D0, 0.00080D0, 0.00058D0, 0.00040D0,
& 0.00025D0, 0.00016D0, 0.00010D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,17),I=1,49)/
& 2.72539D0, 2.15724D0, 1.70653D0, 1.48715D0, 1.34837D0,
& 1.24937D0, 0.98364D0, 0.76983D0, 0.66373D0, 0.59537D0,
& 0.54484D0, 0.40724D0, 0.29272D0, 0.23547D0, 0.19888D0,
& 0.17287D0, 0.13761D0, 0.10564D0, 0.07622D0, 0.05987D0,
& 0.04278D0, 0.03409D0, 0.02869D0, 0.02390D0, 0.02012D0,
& 0.01691D0, 0.01408D0, 0.01159D0, 0.00943D0, 0.00759D0,
& 0.00600D0, 0.00469D0, 0.00361D0, 0.00273D0, 0.00204D0,
& 0.00151D0, 0.00109D0, 0.00078D0, 0.00056D0, 0.00039D0,
& 0.00024D0, 0.00015D0, 0.00009D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,18),I=1,49)/
& 3.13641D0, 2.46418D0, 1.93488D0, 1.67881D0, 1.51744D0,
& 1.40264D0, 1.09608D0, 0.85138D0, 0.73076D0, 0.65340D0,
& 0.59642D0, 0.44225D0, 0.31539D0, 0.25259D0, 0.21272D0,
& 0.18450D0, 0.14644D0, 0.11211D0, 0.08069D0, 0.06328D0,
& 0.04506D0, 0.03575D0, 0.02993D0, 0.02476D0, 0.02070D0,
& 0.01729D0, 0.01432D0, 0.01172D0, 0.00949D0, 0.00760D0,
& 0.00598D0, 0.00466D0, 0.00357D0, 0.00269D0, 0.00201D0,
& 0.00147D0, 0.00106D0, 0.00075D0, 0.00054D0, 0.00038D0,
& 0.00023D0, 0.00015D0, 0.00009D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,19),I=1,49)/
& 3.68153D0, 2.86757D0, 2.23222D0, 1.92702D0, 1.73553D0,
& 1.59976D0, 1.23927D0, 0.95419D0, 0.81477D0, 0.72581D0,
& 0.66053D0, 0.48527D0, 0.34292D0, 0.27324D0, 0.22931D0,
& 0.19839D0, 0.15691D0, 0.11975D0, 0.08593D0, 0.06725D0,
& 0.04768D0, 0.03762D0, 0.03130D0, 0.02569D0, 0.02130D0,
& 0.01766D0, 0.01453D0, 0.01182D0, 0.00951D0, 0.00757D0,
& 0.00594D0, 0.00459D0, 0.00350D0, 0.00264D0, 0.00195D0,
& 0.00143D0, 0.00103D0, 0.00072D0, 0.00052D0, 0.00036D0,
& 0.00022D0, 0.00014D0, 0.00008D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,20),I=1,49)/
& 4.21665D0, 3.26014D0, 2.51906D0, 2.16522D0, 1.94405D0,
& 1.78768D0, 1.37455D0, 1.05042D0, 0.89295D0, 0.79293D0,
& 0.71977D0, 0.52460D0, 0.36780D0, 0.29178D0, 0.24415D0,
& 0.21076D0, 0.16620D0, 0.12648D0, 0.09052D0, 0.07070D0,
& 0.04993D0, 0.03920D0, 0.03244D0, 0.02644D0, 0.02178D0,
& 0.01794D0, 0.01467D0, 0.01187D0, 0.00951D0, 0.00753D0,
& 0.00588D0, 0.00453D0, 0.00344D0, 0.00258D0, 0.00191D0,
& 0.00139D0, 0.00099D0, 0.00070D0, 0.00050D0, 0.00035D0,
& 0.00021D0, 0.00013D0, 0.00008D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,21),I=1,49)/
& 4.73651D0, 3.63839D0, 2.79314D0, 2.39169D0, 2.14159D0,
& 1.96521D0, 1.50121D0, 1.13968D0, 0.96506D0, 0.85456D0,
& 0.77398D0, 0.56020D0, 0.39006D0, 0.30823D0, 0.25724D0,
& 0.22164D0, 0.17431D0, 0.13232D0, 0.09445D0, 0.07364D0,
& 0.05181D0, 0.04050D0, 0.03335D0, 0.02701D0, 0.02212D0,
& 0.01812D0, 0.01474D0, 0.01187D0, 0.00946D0, 0.00747D0,
& 0.00580D0, 0.00446D0, 0.00337D0, 0.00252D0, 0.00185D0,
& 0.00135D0, 0.00096D0, 0.00068D0, 0.00049D0, 0.00034D0,
& 0.00020D0, 0.00013D0, 0.00007D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,22),I=1,49)/
& 5.45753D0, 4.15887D0, 3.16726D0, 2.69936D0, 2.40907D0,
& 2.20495D0, 1.67083D0, 1.25820D0, 1.06032D0, 0.93568D0,
& 0.84511D0, 0.60646D0, 0.41869D0, 0.32928D0, 0.27391D0,
& 0.23544D0, 0.18455D0, 0.13964D0, 0.09936D0, 0.07728D0,
& 0.05411D0, 0.04206D0, 0.03442D0, 0.02766D0, 0.02248D0,
& 0.01829D0, 0.01478D0, 0.01184D0, 0.00938D0, 0.00736D0,
& 0.00570D0, 0.00435D0, 0.00328D0, 0.00244D0, 0.00179D0,
& 0.00129D0, 0.00092D0, 0.00065D0, 0.00046D0, 0.00032D0,
& 0.00019D0, 0.00012D0, 0.00007D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,23),I=1,49)/
& 6.19783D0, 4.68879D0, 3.54494D0, 3.00840D0, 2.67675D0,
& 2.44420D0, 1.83862D0, 1.37436D0, 1.15316D0, 1.01443D0,
& 0.91394D0, 0.65074D0, 0.44579D0, 0.34906D0, 0.28951D0,
& 0.24830D0, 0.19403D0, 0.14639D0, 0.10384D0, 0.08058D0,
& 0.05616D0, 0.04343D0, 0.03534D0, 0.02820D0, 0.02276D0,
& 0.01841D0, 0.01478D0, 0.01177D0, 0.00929D0, 0.00725D0,
& 0.00558D0, 0.00425D0, 0.00319D0, 0.00236D0, 0.00173D0,
& 0.00124D0, 0.00088D0, 0.00062D0, 0.00044D0, 0.00031D0,
& 0.00018D0, 0.00011D0, 0.00007D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,24),I=1,49)/
& 6.92966D0, 5.20839D0, 3.91218D0, 3.30740D0, 2.93482D0,
& 2.67420D0, 1.99847D0, 1.48399D0, 1.24028D0, 1.08801D0,
& 0.97803D0, 0.69152D0, 0.47043D0, 0.36691D0, 0.30350D0,
& 0.25978D0, 0.20243D0, 0.15231D0, 0.10773D0, 0.08341D0,
& 0.05788D0, 0.04454D0, 0.03605D0, 0.02858D0, 0.02293D0,
& 0.01844D0, 0.01473D0, 0.01167D0, 0.00917D0, 0.00713D0,
& 0.00547D0, 0.00415D0, 0.00310D0, 0.00229D0, 0.00167D0,
& 0.00120D0, 0.00085D0, 0.00059D0, 0.00043D0, 0.00030D0,
& 0.00017D0, 0.00011D0, 0.00006D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,25),I=1,49)/
& 7.72396D0, 5.76848D0, 4.30532D0, 3.62618D0, 3.20915D0,
& 2.91815D0, 2.16681D0, 1.59861D0, 1.33097D0, 1.16435D0,
& 1.04435D0, 0.73337D0, 0.49551D0, 0.38498D0, 0.31761D0,
& 0.27133D0, 0.21084D0, 0.15821D0, 0.11158D0, 0.08620D0,
& 0.05955D0, 0.04560D0, 0.03673D0, 0.02893D0, 0.02307D0,
& 0.01845D0, 0.01466D0, 0.01156D0, 0.00904D0, 0.00700D0,
& 0.00535D0, 0.00404D0, 0.00301D0, 0.00221D0, 0.00161D0,
& 0.00115D0, 0.00081D0, 0.00057D0, 0.00041D0, 0.00028D0,
& 0.00017D0, 0.00010D0, 0.00006D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,26),I=1,49)/
& 8.54145D0, 6.34073D0, 4.70401D0, 3.94803D0, 3.48525D0,
& 3.16305D0, 2.33446D0, 1.71181D0, 1.42007D0, 1.23908D0,
& 1.10907D0, 0.77380D0, 0.51947D0, 0.40212D0, 0.33092D0,
& 0.28218D0, 0.21869D0, 0.16367D0, 0.11510D0, 0.08871D0,
& 0.06103D0, 0.04651D0, 0.03727D0, 0.02918D0, 0.02314D0,
& 0.01840D0, 0.01456D0, 0.01142D0, 0.00889D0, 0.00686D0,
& 0.00522D0, 0.00393D0, 0.00292D0, 0.00214D0, 0.00155D0,
& 0.00111D0, 0.00078D0, 0.00054D0, 0.00039D0, 0.00027D0,
& 0.00016D0, 0.00009D0, 0.00005D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,27),I=1,49)/
& 9.36625D0, 6.91445D0, 5.10115D0, 4.26741D0, 3.75848D0,
& 3.40490D0, 2.49891D0, 1.82207D0, 1.50649D0, 1.31134D0,
& 1.17150D0, 0.81249D0, 0.54219D0, 0.41829D0, 0.34343D0,
& 0.29234D0, 0.22601D0, 0.16873D0, 0.11834D0, 0.09101D0,
& 0.06235D0, 0.04731D0, 0.03774D0, 0.02938D0, 0.02318D0,
& 0.01834D0, 0.01444D0, 0.01128D0, 0.00875D0, 0.00672D0,
& 0.00510D0, 0.00383D0, 0.00283D0, 0.00207D0, 0.00150D0,
& 0.00107D0, 0.00075D0, 0.00052D0, 0.00038D0, 0.00026D0,
& 0.00015D0, 0.00009D0, 0.00005D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,28),I=1,49)/
& 10.18132D0, 7.47793D0, 5.48877D0, 4.57798D0, 4.02345D0,
& 3.63894D0, 2.65699D0, 1.92733D0, 1.58864D0, 1.37981D0,
& 1.23051D0, 0.84875D0, 0.56329D0, 0.43322D0, 0.35493D0,
& 0.30165D0, 0.23267D0, 0.17330D0, 0.12123D0, 0.09305D0,
& 0.06349D0, 0.04798D0, 0.03811D0, 0.02952D0, 0.02317D0,
& 0.01825D0, 0.01431D0, 0.01114D0, 0.00861D0, 0.00659D0,
& 0.00498D0, 0.00373D0, 0.00275D0, 0.00201D0, 0.00145D0,
& 0.00103D0, 0.00072D0, 0.00050D0, 0.00036D0, 0.00026D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,29),I=1,49)/
& 11.04388D0, 8.07089D0, 5.89435D0, 4.90182D0, 4.29909D0,
& 3.88193D0, 2.82014D0, 2.03528D0, 1.67258D0, 1.44958D0,
& 1.29048D0, 0.88533D0, 0.58442D0, 0.44808D0, 0.36634D0,
& 0.31085D0, 0.23922D0, 0.17778D0, 0.12404D0, 0.09501D0,
& 0.06457D0, 0.04859D0, 0.03843D0, 0.02962D0, 0.02314D0,
& 0.01814D0, 0.01416D0, 0.01098D0, 0.00846D0, 0.00645D0,
& 0.00486D0, 0.00363D0, 0.00267D0, 0.00194D0, 0.00140D0,
& 0.00099D0, 0.00069D0, 0.00048D0, 0.00035D0, 0.00025D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,30),I=1,49)/
& 11.92777D0, 8.67505D0, 6.30518D0, 5.22873D0, 4.57663D0,
& 4.12613D0, 2.98306D0, 2.14237D0, 1.75551D0, 1.51831D0,
& 1.34943D0, 0.92100D0, 0.60483D0, 0.46237D0, 0.37725D0,
& 0.31962D0, 0.24543D0, 0.18198D0, 0.12665D0, 0.09681D0,
& 0.06554D0, 0.04912D0, 0.03869D0, 0.02967D0, 0.02307D0,
& 0.01801D0, 0.01401D0, 0.01082D0, 0.00830D0, 0.00632D0,
& 0.00475D0, 0.00353D0, 0.00259D0, 0.00188D0, 0.00135D0,
& 0.00095D0, 0.00066D0, 0.00047D0, 0.00034D0, 0.00024D0,
& 0.00014D0, 0.00008D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,31),I=1,49)/
& 12.81161D0, 9.27611D0, 6.71181D0, 5.55130D0, 4.84990D0,
& 4.36615D0, 3.14234D0, 2.24650D0, 1.83587D0, 1.58474D0,
& 1.40629D0, 0.95519D0, 0.62425D0, 0.47590D0, 0.38756D0,
& 0.32788D0, 0.25125D0, 0.18591D0, 0.12907D0, 0.09846D0,
& 0.06642D0, 0.04959D0, 0.03891D0, 0.02970D0, 0.02299D0,
& 0.01788D0, 0.01385D0, 0.01067D0, 0.00816D0, 0.00619D0,
& 0.00464D0, 0.00344D0, 0.00252D0, 0.00182D0, 0.00130D0,
& 0.00092D0, 0.00064D0, 0.00045D0, 0.00033D0, 0.00023D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,32),I=1,49)/
& 13.67059D0, 9.85720D0, 7.10279D0, 5.86046D0, 5.11119D0,
& 4.59523D0, 3.29346D0, 2.34466D0, 1.91134D0, 1.64694D0,
& 1.45941D0, 0.98687D0, 0.64209D0, 0.48825D0, 0.39691D0,
& 0.33535D0, 0.25648D0, 0.18940D0, 0.13119D0, 0.09990D0,
& 0.06714D0, 0.04995D0, 0.03906D0, 0.02968D0, 0.02289D0,
& 0.01773D0, 0.01369D0, 0.01051D0, 0.00801D0, 0.00606D0,
& 0.00453D0, 0.00335D0, 0.00245D0, 0.00177D0, 0.00126D0,
& 0.00089D0, 0.00062D0, 0.00043D0, 0.00032D0, 0.00023D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,33),I=1,49)/
& 14.58850D0, 10.47558D0, 7.51716D0, 6.18731D0, 5.38695D0,
& 4.83668D0, 3.45207D0, 2.44727D0, 1.99002D0, 1.71168D0,
& 1.51462D0, 1.01965D0, 0.66046D0, 0.50094D0, 0.40651D0,
& 0.34300D0, 0.26182D0, 0.19296D0, 0.13335D0, 0.10136D0,
& 0.06788D0, 0.05032D0, 0.03921D0, 0.02967D0, 0.02278D0,
& 0.01759D0, 0.01353D0, 0.01035D0, 0.00787D0, 0.00594D0,
& 0.00443D0, 0.00327D0, 0.00238D0, 0.00172D0, 0.00122D0,
& 0.00086D0, 0.00060D0, 0.00042D0, 0.00031D0, 0.00022D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,34),I=1,49)/
& 15.50215D0, 11.08776D0, 7.92505D0, 6.50796D0, 5.65681D0,
& 5.07248D0, 3.60600D0, 2.54615D0, 2.06552D0, 1.77359D0,
& 1.56726D0, 1.05062D0, 0.67763D0, 0.51270D0, 0.41535D0,
& 0.35001D0, 0.26666D0, 0.19615D0, 0.13524D0, 0.10260D0,
& 0.06847D0, 0.05058D0, 0.03928D0, 0.02960D0, 0.02264D0,
& 0.01742D0, 0.01336D0, 0.01019D0, 0.00772D0, 0.00581D0,
& 0.00432D0, 0.00318D0, 0.00232D0, 0.00166D0, 0.00118D0,
& 0.00083D0, 0.00058D0, 0.00041D0, 0.00030D0, 0.00022D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,35),I=1,49)/
& 16.42021D0, 11.70052D0, 8.33176D0, 6.82695D0, 5.92484D0,
& 5.30641D0, 3.75809D0, 2.64348D0, 2.13966D0, 1.83429D0,
& 1.61881D0, 1.08081D0, 0.69429D0, 0.52409D0, 0.42389D0,
& 0.35678D0, 0.27133D0, 0.19921D0, 0.13706D0, 0.10380D0,
& 0.06904D0, 0.05083D0, 0.03934D0, 0.02953D0, 0.02251D0,
& 0.01726D0, 0.01320D0, 0.01004D0, 0.00759D0, 0.00569D0,
& 0.00422D0, 0.00310D0, 0.00225D0, 0.00162D0, 0.00115D0,
& 0.00080D0, 0.00056D0, 0.00039D0, 0.00029D0, 0.00021D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,36),I=1,49)/
& 17.31499D0, 12.29519D0, 8.72473D0, 7.13436D0, 6.18265D0,
& 5.53107D0, 3.90347D0, 2.73604D0, 2.20994D0, 1.89170D0,
& 1.66747D0, 1.10914D0, 0.70980D0, 0.53464D0, 0.43178D0,
& 0.36300D0, 0.27560D0, 0.20200D0, 0.13869D0, 0.10485D0,
& 0.06952D0, 0.05103D0, 0.03937D0, 0.02945D0, 0.02237D0,
& 0.01710D0, 0.01303D0, 0.00989D0, 0.00746D0, 0.00558D0,
& 0.00413D0, 0.00303D0, 0.00220D0, 0.00157D0, 0.00111D0,
& 0.00078D0, 0.00054D0, 0.00038D0, 0.00028D0, 0.00021D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,37),I=1,49)/
& 18.24071D0, 12.90782D0, 9.12782D0, 7.44886D0, 6.44591D0,
& 5.76014D0, 4.05101D0, 2.82949D0, 2.28068D0, 1.94934D0,
& 1.71624D0, 1.13734D0, 0.72513D0, 0.54501D0, 0.43949D0,
& 0.36907D0, 0.27974D0, 0.20467D0, 0.14023D0, 0.10583D0,
& 0.06996D0, 0.05118D0, 0.03937D0, 0.02934D0, 0.02221D0,
& 0.01693D0, 0.01286D0, 0.00973D0, 0.00732D0, 0.00547D0,
& 0.00404D0, 0.00296D0, 0.00214D0, 0.00153D0, 0.00108D0,
& 0.00076D0, 0.00052D0, 0.00037D0, 0.00027D0, 0.00020D0,
& 0.00013D0, 0.00007D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,5,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 1),I=1,49)/
& 0.49855D0, 0.42587D0, 0.36389D0, 0.33197D0, 0.31109D0,
& 0.29584D0, 0.25332D0, 0.21750D0, 0.19938D0, 0.18774D0,
& 0.17961D0, 0.15726D0, 0.13904D0, 0.12982D0, 0.12379D0,
& 0.11933D0, 0.11282D0, 0.10593D0, 0.09760D0, 0.09090D0,
& 0.07946D0, 0.06933D0, 0.06013D0, 0.04980D0, 0.04078D0,
& 0.03302D0, 0.02641D0, 0.02091D0, 0.01639D0, 0.01253D0,
& 0.00964D0, 0.00728D0, 0.00545D0, 0.00406D0, 0.00291D0,
& 0.00211D0, 0.00151D0, 0.00106D0, 0.00067D0, 0.00051D0,
& 0.00036D0, 0.00020D0, 0.00015D0, 0.00005D0, 0.00001D0,
& -0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 2),I=1,49)/
& 0.50643D0, 0.43610D0, 0.37562D0, 0.34428D0, 0.32368D0,
& 0.30859D0, 0.26628D0, 0.23029D0, 0.21194D0, 0.20007D0,
& 0.19176D0, 0.16857D0, 0.14897D0, 0.13868D0, 0.13176D0,
& 0.12655D0, 0.11883D0, 0.11060D0, 0.10078D0, 0.09314D0,
& 0.08065D0, 0.07007D0, 0.06069D0, 0.05033D0, 0.04135D0,
& 0.03363D0, 0.02706D0, 0.02157D0, 0.01702D0, 0.01315D0,
& 0.01020D0, 0.00777D0, 0.00589D0, 0.00442D0, 0.00323D0,
& 0.00236D0, 0.00171D0, 0.00122D0, 0.00079D0, 0.00059D0,
& 0.00042D0, 0.00024D0, 0.00018D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 3),I=1,49)/
& 0.53555D0, 0.46535D0, 0.40441D0, 0.37256D0, 0.35153D0,
& 0.33606D0, 0.29238D0, 0.25475D0, 0.23531D0, 0.22262D0,
& 0.21361D0, 0.18804D0, 0.16542D0, 0.15305D0, 0.14451D0,
& 0.13799D0, 0.12824D0, 0.11785D0, 0.10571D0, 0.09664D0,
& 0.08259D0, 0.07132D0, 0.06165D0, 0.05118D0, 0.04219D0,
& 0.03449D0, 0.02794D0, 0.02243D0, 0.01784D0, 0.01392D0,
& 0.01089D0, 0.00837D0, 0.00641D0, 0.00486D0, 0.00360D0,
& 0.00265D0, 0.00193D0, 0.00138D0, 0.00092D0, 0.00067D0,
& 0.00048D0, 0.00029D0, 0.00022D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 4),I=1,49)/
& 0.57226D0, 0.49911D0, 0.43533D0, 0.40188D0, 0.37974D0,
& 0.36342D0, 0.31717D0, 0.27704D0, 0.25615D0, 0.24242D0,
& 0.23256D0, 0.20428D0, 0.17865D0, 0.16439D0, 0.15446D0,
& 0.14683D0, 0.13543D0, 0.12334D0, 0.10944D0, 0.09929D0,
& 0.08411D0, 0.07232D0, 0.06240D0, 0.05181D0, 0.04280D0,
& 0.03507D0, 0.02851D0, 0.02298D0, 0.01835D0, 0.01437D0,
& 0.01128D0, 0.00872D0, 0.00670D0, 0.00509D0, 0.00378D0,
& 0.00278D0, 0.00204D0, 0.00149D0, 0.00099D0, 0.00072D0,
& 0.00050D0, 0.00032D0, 0.00023D0, 0.00009D0, 0.00003D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 5),I=1,49)/
& 0.63213D0, 0.55147D0, 0.48109D0, 0.44417D0, 0.41970D0,
& 0.40166D0, 0.35046D0, 0.30587D0, 0.28254D0, 0.26712D0,
& 0.25592D0, 0.22358D0, 0.19384D0, 0.17718D0, 0.16554D0,
& 0.15661D0, 0.14330D0, 0.12931D0, 0.11348D0, 0.10220D0,
& 0.08579D0, 0.07344D0, 0.06325D0, 0.05250D0, 0.04341D0,
& 0.03561D0, 0.02901D0, 0.02344D0, 0.01875D0, 0.01473D0,
& 0.01158D0, 0.00897D0, 0.00690D0, 0.00525D0, 0.00392D0,
& 0.00287D0, 0.00212D0, 0.00153D0, 0.00104D0, 0.00075D0,
& 0.00052D0, 0.00033D0, 0.00023D0, 0.00009D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 6),I=1,49)/
& 0.69484D0, 0.60548D0, 0.52759D0, 0.48675D0, 0.45969D0,
& 0.43974D0, 0.38311D0, 0.33372D0, 0.30779D0, 0.29059D0,
& 0.27800D0, 0.24152D0, 0.20772D0, 0.18874D0, 0.17549D0,
& 0.16535D0, 0.15028D0, 0.13457D0, 0.11704D0, 0.10475D0,
& 0.08728D0, 0.07444D0, 0.06400D0, 0.05308D0, 0.04390D0,
& 0.03605D0, 0.02939D0, 0.02378D0, 0.01903D0, 0.01499D0,
& 0.01179D0, 0.00914D0, 0.00703D0, 0.00535D0, 0.00400D0,
& 0.00293D0, 0.00217D0, 0.00156D0, 0.00107D0, 0.00077D0,
& 0.00053D0, 0.00034D0, 0.00024D0, 0.00009D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 7),I=1,49)/
& 0.77164D0, 0.67034D0, 0.58230D0, 0.53624D0, 0.50577D0,
& 0.48332D0, 0.41966D0, 0.36421D0, 0.33508D0, 0.31572D0,
& 0.30145D0, 0.26012D0, 0.22178D0, 0.20031D0, 0.18536D0,
& 0.17396D0, 0.15711D0, 0.13969D0, 0.12049D0, 0.10724D0,
& 0.08874D0, 0.07542D0, 0.06472D0, 0.05362D0, 0.04433D0,
& 0.03642D0, 0.02969D0, 0.02403D0, 0.01923D0, 0.01516D0,
& 0.01193D0, 0.00926D0, 0.00710D0, 0.00541D0, 0.00405D0,
& 0.00297D0, 0.00219D0, 0.00158D0, 0.00108D0, 0.00077D0,
& 0.00052D0, 0.00033D0, 0.00024D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 8),I=1,49)/
& 0.86838D0, 0.75105D0, 0.64953D0, 0.59658D0, 0.56163D0,
& 0.53592D0, 0.46317D0, 0.39995D0, 0.36678D0, 0.34473D0,
& 0.32838D0, 0.28112D0, 0.23740D0, 0.21303D0, 0.19616D0,
& 0.18334D0, 0.16450D0, 0.14520D0, 0.12419D0, 0.10991D0,
& 0.09031D0, 0.07647D0, 0.06547D0, 0.05416D0, 0.04475D0,
& 0.03674D0, 0.02994D0, 0.02423D0, 0.01939D0, 0.01529D0,
& 0.01202D0, 0.00932D0, 0.00715D0, 0.00545D0, 0.00407D0,
& 0.00298D0, 0.00220D0, 0.00159D0, 0.00108D0, 0.00077D0,
& 0.00052D0, 0.00033D0, 0.00024D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I, 9),I=1,49)/
& 0.96608D0, 0.83177D0, 0.71606D0, 0.65593D0, 0.61632D0,
& 0.58722D0, 0.50510D0, 0.43397D0, 0.39671D0, 0.37195D0,
& 0.35355D0, 0.30046D0, 0.25156D0, 0.22448D0, 0.20581D0,
& 0.19169D0, 0.17103D0, 0.15004D0, 0.12743D0, 0.11224D0,
& 0.09169D0, 0.07737D0, 0.06612D0, 0.05461D0, 0.04508D0,
& 0.03697D0, 0.03013D0, 0.02435D0, 0.01949D0, 0.01536D0,
& 0.01207D0, 0.00933D0, 0.00718D0, 0.00545D0, 0.00407D0,
& 0.00298D0, 0.00219D0, 0.00159D0, 0.00106D0, 0.00076D0,
& 0.00052D0, 0.00033D0, 0.00024D0, 0.00009D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,10),I=1,49)/
& 1.07543D0, 0.92116D0, 0.78892D0, 0.72047D0, 0.67548D0,
& 0.64249D0, 0.54968D0, 0.46963D0, 0.42782D0, 0.40008D0,
& 0.37941D0, 0.32003D0, 0.26568D0, 0.23578D0, 0.21528D0,
& 0.19985D0, 0.17739D0, 0.15473D0, 0.13057D0, 0.11449D0,
& 0.09302D0, 0.07823D0, 0.06672D0, 0.05501D0, 0.04535D0,
& 0.03715D0, 0.03025D0, 0.02442D0, 0.01953D0, 0.01538D0,
& 0.01207D0, 0.00932D0, 0.00717D0, 0.00543D0, 0.00405D0,
& 0.00296D0, 0.00217D0, 0.00158D0, 0.00105D0, 0.00075D0,
& 0.00051D0, 0.00033D0, 0.00023D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,11),I=1,49)/
& 1.17158D0, 0.99923D0, 0.85209D0, 0.77617D0, 0.72639D0,
& 0.68993D0, 0.58762D0, 0.49971D0, 0.45391D0, 0.42357D0,
& 0.40096D0, 0.33616D0, 0.27719D0, 0.24495D0, 0.22293D0,
& 0.20642D0, 0.18248D0, 0.15848D0, 0.13306D0, 0.11628D0,
& 0.09406D0, 0.07891D0, 0.06718D0, 0.05531D0, 0.04555D0,
& 0.03727D0, 0.03032D0, 0.02446D0, 0.01953D0, 0.01537D0,
& 0.01205D0, 0.00930D0, 0.00714D0, 0.00540D0, 0.00402D0,
& 0.00294D0, 0.00214D0, 0.00155D0, 0.00104D0, 0.00074D0,
& 0.00050D0, 0.00032D0, 0.00022D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,12),I=1,49)/
& 1.40820D0, 1.18938D0, 1.00430D0, 0.90953D0, 0.84767D0,
& 0.80252D0, 0.67658D0, 0.56932D0, 0.51382D0, 0.47719D0,
& 0.44989D0, 0.37226D0, 0.30256D0, 0.26497D0, 0.23955D0,
& 0.22062D0, 0.19343D0, 0.16648D0, 0.13836D0, 0.12007D0,
& 0.09626D0, 0.08032D0, 0.06811D0, 0.05588D0, 0.04588D0,
& 0.03745D0, 0.03039D0, 0.02446D0, 0.01948D0, 0.01531D0,
& 0.01197D0, 0.00921D0, 0.00706D0, 0.00532D0, 0.00395D0,
& 0.00288D0, 0.00209D0, 0.00151D0, 0.00101D0, 0.00072D0,
& 0.00049D0, 0.00031D0, 0.00021D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,13),I=1,49)/
& 1.64756D0, 1.37951D0, 1.15467D0, 1.04031D0, 0.96596D0,
& 0.91188D0, 0.76181D0, 0.63505D0, 0.56988D0, 0.52704D0,
& 0.49515D0, 0.40510D0, 0.32525D0, 0.28268D0, 0.25415D0,
& 0.23303D0, 0.20292D0, 0.17336D0, 0.14288D0, 0.12329D0,
& 0.09812D0, 0.08148D0, 0.06886D0, 0.05629D0, 0.04609D0,
& 0.03753D0, 0.03037D0, 0.02438D0, 0.01937D0, 0.01519D0,
& 0.01185D0, 0.00910D0, 0.00695D0, 0.00523D0, 0.00387D0,
& 0.00281D0, 0.00204D0, 0.00147D0, 0.00097D0, 0.00069D0,
& 0.00048D0, 0.00029D0, 0.00020D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,14),I=1,49)/
& 1.95709D0, 1.62260D0, 1.34467D0, 1.20438D0, 1.11362D0,
& 1.04783D0, 0.86639D0, 0.71460D0, 0.63715D0, 0.58648D0,
& 0.54885D0, 0.44345D0, 0.35130D0, 0.30283D0, 0.27064D0,
& 0.24698D0, 0.21351D0, 0.18099D0, 0.14786D0, 0.12681D0,
& 0.10011D0, 0.08269D0, 0.06959D0, 0.05666D0, 0.04624D0,
& 0.03752D0, 0.03025D0, 0.02422D0, 0.01919D0, 0.01499D0,
& 0.01165D0, 0.00893D0, 0.00678D0, 0.00510D0, 0.00375D0,
& 0.00271D0, 0.00197D0, 0.00141D0, 0.00093D0, 0.00065D0,
& 0.00045D0, 0.00028D0, 0.00019D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,15),I=1,49)/
& 2.33106D0, 1.91266D0, 1.56849D0, 1.39616D0, 1.28524D0,
& 1.20514D0, 0.98569D0, 0.80398D0, 0.71204D0, 0.65222D0,
& 0.60792D0, 0.48491D0, 0.37897D0, 0.32402D0, 0.28785D0,
& 0.26145D0, 0.22441D0, 0.18878D0, 0.15289D0, 0.13035D0,
& 0.10206D0, 0.08383D0, 0.07023D0, 0.05691D0, 0.04625D0,
& 0.03736D0, 0.03004D0, 0.02396D0, 0.01891D0, 0.01473D0,
& 0.01139D0, 0.00872D0, 0.00659D0, 0.00494D0, 0.00362D0,
& 0.00261D0, 0.00189D0, 0.00136D0, 0.00089D0, 0.00062D0,
& 0.00043D0, 0.00026D0, 0.00018D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,16),I=1,49)/
& 2.71585D0, 2.20785D0, 1.79373D0, 1.58787D0, 1.45597D0,
& 1.36104D0, 1.10250D0, 0.89041D0, 0.78391D0, 0.71494D0,
& 0.66403D0, 0.52372D0, 0.40449D0, 0.34337D0, 0.30346D0,
& 0.27452D0, 0.23417D0, 0.19570D0, 0.15732D0, 0.13343D0,
& 0.10373D0, 0.08475D0, 0.07072D0, 0.05705D0, 0.04617D0,
& 0.03716D0, 0.02977D0, 0.02366D0, 0.01861D0, 0.01445D0,
& 0.01114D0, 0.00850D0, 0.00640D0, 0.00478D0, 0.00350D0,
& 0.00251D0, 0.00181D0, 0.00130D0, 0.00086D0, 0.00058D0,
& 0.00040D0, 0.00024D0, 0.00016D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,17),I=1,49)/
& 3.15180D0, 2.53892D0, 2.04375D0, 1.79938D0, 1.64351D0,
& 1.53170D0, 1.22899D0, 0.98294D0, 0.86032D0, 0.78129D0,
& 0.72315D0, 0.56409D0, 0.43066D0, 0.36305D0, 0.31926D0,
& 0.28768D0, 0.24394D0, 0.20257D0, 0.16168D0, 0.13644D0,
& 0.10531D0, 0.08560D0, 0.07112D0, 0.05711D0, 0.04602D0,
& 0.03691D0, 0.02945D0, 0.02332D0, 0.01829D0, 0.01415D0,
& 0.01087D0, 0.00826D0, 0.00621D0, 0.00462D0, 0.00337D0,
& 0.00241D0, 0.00173D0, 0.00124D0, 0.00082D0, 0.00055D0,
& 0.00038D0, 0.00023D0, 0.00015D0, 0.00005D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,18),I=1,49)/
& 3.55145D0, 2.83962D0, 2.26870D0, 1.98860D0, 1.81061D0,
& 1.68328D0, 1.34021D0, 1.06346D0, 0.92638D0, 0.83839D0,
& 0.77383D0, 0.59827D0, 0.45255D0, 0.37938D0, 0.33229D0,
& 0.29849D0, 0.25191D0, 0.20813D0, 0.16517D0, 0.13882D0,
& 0.10653D0, 0.08622D0, 0.07137D0, 0.05708D0, 0.04584D0,
& 0.03664D0, 0.02914D0, 0.02300D0, 0.01798D0, 0.01388D0,
& 0.01064D0, 0.00807D0, 0.00604D0, 0.00448D0, 0.00326D0,
& 0.00232D0, 0.00166D0, 0.00119D0, 0.00077D0, 0.00053D0,
& 0.00036D0, 0.00022D0, 0.00015D0, 0.00005D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,19),I=1,49)/
& 4.08243D0, 3.23554D0, 2.56218D0, 2.23414D0, 2.02661D0,
& 1.87862D0, 1.48217D0, 1.16519D0, 1.00935D0, 0.90979D0,
& 0.83697D0, 0.64037D0, 0.47917D0, 0.39910D0, 0.34794D0,
& 0.31141D0, 0.26137D0, 0.21468D0, 0.16924D0, 0.14156D0,
& 0.10788D0, 0.08686D0, 0.07159D0, 0.05697D0, 0.04554D0,
& 0.03624D0, 0.02871D0, 0.02258D0, 0.01759D0, 0.01353D0,
& 0.01034D0, 0.00780D0, 0.00582D0, 0.00431D0, 0.00313D0,
& 0.00222D0, 0.00159D0, 0.00113D0, 0.00073D0, 0.00050D0,
& 0.00034D0, 0.00021D0, 0.00014D0, 0.00005D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,20),I=1,49)/
& 4.59984D0, 3.61795D0, 2.84314D0, 2.46798D0, 2.23154D0,
& 2.06341D0, 1.61522D0, 1.25965D0, 1.08594D0, 0.97542D0,
& 0.89482D0, 0.67853D0, 0.50302D0, 0.41664D0, 0.36179D0,
& 0.32280D0, 0.26966D0, 0.22039D0, 0.17274D0, 0.14391D0,
& 0.10901D0, 0.08736D0, 0.07173D0, 0.05682D0, 0.04524D0,
& 0.03586D0, 0.02831D0, 0.02220D0, 0.01723D0, 0.01322D0,
& 0.01007D0, 0.00756D0, 0.00563D0, 0.00415D0, 0.00301D0,
& 0.00213D0, 0.00152D0, 0.00108D0, 0.00071D0, 0.00046D0,
& 0.00032D0, 0.00019D0, 0.00013D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,21),I=1,49)/
& 5.10866D0, 3.99099D0, 3.11497D0, 2.69310D0, 2.42814D0,
& 2.24021D0, 1.74141D0, 1.34843D0, 1.15753D0, 1.03651D0,
& 0.94850D0, 0.71355D0, 0.52465D0, 0.43244D0, 0.37419D0,
& 0.33296D0, 0.27700D0, 0.22539D0, 0.17578D0, 0.14590D0,
& 0.10992D0, 0.08772D0, 0.07175D0, 0.05660D0, 0.04490D0,
& 0.03547D0, 0.02791D0, 0.02182D0, 0.01688D0, 0.01291D0,
& 0.00980D0, 0.00735D0, 0.00546D0, 0.00401D0, 0.00289D0,
& 0.00204D0, 0.00145D0, 0.00103D0, 0.00067D0, 0.00045D0,
& 0.00030D0, 0.00018D0, 0.00012D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,22),I=1,49)/
& 5.81063D0, 4.50144D0, 3.48388D0, 2.99716D0, 2.69275D0,
& 2.47752D0, 1.90937D0, 1.46556D0, 1.25149D0, 1.11639D0,
& 1.01845D0, 0.75875D0, 0.55228D0, 0.45248D0, 0.38985D0,
& 0.34573D0, 0.28616D0, 0.23159D0, 0.17950D0, 0.14831D0,
& 0.11099D0, 0.08809D0, 0.07172D0, 0.05628D0, 0.04443D0,
& 0.03495D0, 0.02738D0, 0.02132D0, 0.01642D0, 0.01252D0,
& 0.00947D0, 0.00708D0, 0.00524D0, 0.00384D0, 0.00275D0,
& 0.00194D0, 0.00137D0, 0.00097D0, 0.00062D0, 0.00042D0,
& 0.00028D0, 0.00017D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,23),I=1,49)/
& 6.53035D0, 5.02028D0, 3.85558D0, 3.30194D0, 2.95702D0,
& 2.71384D0, 2.07512D0, 1.58008D0, 1.34283D0, 1.19373D0,
& 1.08596D0, 0.80189D0, 0.57834D0, 0.47125D0, 0.40444D0,
& 0.35757D0, 0.29461D0, 0.23726D0, 0.18285D0, 0.15046D0,
& 0.11188D0, 0.08836D0, 0.07162D0, 0.05593D0, 0.04396D0,
& 0.03443D0, 0.02686D0, 0.02084D0, 0.01599D0, 0.01216D0,
& 0.00917D0, 0.00683D0, 0.00504D0, 0.00368D0, 0.00262D0,
& 0.00186D0, 0.00129D0, 0.00092D0, 0.00058D0, 0.00038D0,
& 0.00026D0, 0.00015D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,24),I=1,49)/
& 7.24769D0, 5.53321D0, 4.22004D0, 3.59932D0, 3.21397D0,
& 2.94299D0, 2.23445D0, 1.68918D0, 1.42937D0, 1.26671D0,
& 1.14944D0, 0.84202D0, 0.60229D0, 0.48837D0, 0.41766D0,
& 0.36826D0, 0.30216D0, 0.24227D0, 0.18575D0, 0.15227D0,
& 0.11258D0, 0.08849D0, 0.07143D0, 0.05553D0, 0.04345D0,
& 0.03390D0, 0.02636D0, 0.02037D0, 0.01559D0, 0.01181D0,
& 0.00887D0, 0.00659D0, 0.00484D0, 0.00353D0, 0.00252D0,
& 0.00176D0, 0.00124D0, 0.00088D0, 0.00055D0, 0.00037D0,
& 0.00025D0, 0.00014D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,25),I=1,49)/
& 8.02203D0, 6.08288D0, 4.60775D0, 3.91431D0, 3.48531D0,
& 3.18439D0, 2.40103D0, 1.80237D0, 1.51875D0, 1.34182D0,
& 1.21461D0, 0.88286D0, 0.62643D0, 0.50552D0, 0.43085D0,
& 0.37888D0, 0.30963D0, 0.24719D0, 0.18858D0, 0.15401D0,
& 0.11322D0, 0.08857D0, 0.07120D0, 0.05510D0, 0.04294D0,
& 0.03336D0, 0.02585D0, 0.01990D0, 0.01519D0, 0.01146D0,
& 0.00858D0, 0.00636D0, 0.00466D0, 0.00338D0, 0.00242D0,
& 0.00168D0, 0.00119D0, 0.00083D0, 0.00052D0, 0.00035D0,
& 0.00023D0, 0.00013D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,26),I=1,49)/
& 8.82307D0, 6.64735D0, 5.00295D0, 4.23399D0, 3.75981D0,
& 3.42801D0, 2.56785D0, 1.91480D0, 1.60708D0, 1.41578D0,
& 1.27859D0, 0.92256D0, 0.64966D0, 0.52190D0, 0.44338D0,
& 0.38892D0, 0.31662D0, 0.25175D0, 0.19114D0, 0.15555D0,
& 0.11371D0, 0.08855D0, 0.07090D0, 0.05462D0, 0.04239D0,
& 0.03281D0, 0.02532D0, 0.01944D0, 0.01478D0, 0.01112D0,
& 0.00830D0, 0.00614D0, 0.00448D0, 0.00324D0, 0.00231D0,
& 0.00160D0, 0.00113D0, 0.00079D0, 0.00049D0, 0.00033D0,
& 0.00022D0, 0.00013D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,27),I=1,49)/
& 9.62987D0, 7.21210D0, 5.39571D0, 4.55043D0, 4.03076D0,
& 3.66794D0, 2.73100D0, 2.02398D0, 1.69250D0, 1.48708D0,
& 1.34010D0, 0.96040D0, 0.67159D0, 0.53727D0, 0.45509D0,
& 0.39827D0, 0.32310D0, 0.25593D0, 0.19347D0, 0.15692D0,
& 0.11411D0, 0.08848D0, 0.07058D0, 0.05414D0, 0.04185D0,
& 0.03228D0, 0.02482D0, 0.01900D0, 0.01440D0, 0.01080D0,
& 0.00804D0, 0.00593D0, 0.00431D0, 0.00312D0, 0.00222D0,
& 0.00152D0, 0.00108D0, 0.00075D0, 0.00046D0, 0.00031D0,
& 0.00020D0, 0.00012D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,28),I=1,49)/
& 10.42894D0, 7.76794D0, 5.77982D0, 4.85875D0, 4.29406D0,
& 3.90061D0, 2.88817D0, 2.12844D0, 1.77387D0, 1.55479D0,
& 1.39837D0, 0.99596D0, 0.69200D0, 0.55150D0, 0.46587D0,
& 0.40684D0, 0.32899D0, 0.25970D0, 0.19552D0, 0.15809D0,
& 0.11441D0, 0.08837D0, 0.07023D0, 0.05366D0, 0.04133D0,
& 0.03176D0, 0.02435D0, 0.01859D0, 0.01405D0, 0.01051D0,
& 0.00780D0, 0.00573D0, 0.00416D0, 0.00301D0, 0.00213D0,
& 0.00146D0, 0.00103D0, 0.00071D0, 0.00045D0, 0.00029D0,
& 0.00020D0, 0.00011D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,29),I=1,49)/
& 11.27410D0, 8.35239D0, 6.18132D0, 5.17989D0, 4.56762D0,
& 4.14187D0, 3.05014D0, 2.23540D0, 1.85687D0, 1.62366D0,
& 1.45750D0, 1.03178D0, 0.71238D0, 0.56563D0, 0.47653D0,
& 0.41529D0, 0.33476D0, 0.26336D0, 0.19748D0, 0.15919D0,
& 0.11465D0, 0.08820D0, 0.06985D0, 0.05316D0, 0.04080D0,
& 0.03125D0, 0.02388D0, 0.01817D0, 0.01370D0, 0.01022D0,
& 0.00757D0, 0.00554D0, 0.00401D0, 0.00290D0, 0.00205D0,
& 0.00140D0, 0.00098D0, 0.00068D0, 0.00043D0, 0.00028D0,
& 0.00019D0, 0.00011D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,30),I=1,49)/
& 12.14199D0, 8.94909D0, 6.58882D0, 5.50470D0, 4.84361D0,
& 4.38480D0, 3.21222D0, 2.34175D0, 1.93908D0, 1.69167D0,
& 1.51576D0, 1.06678D0, 0.73213D0, 0.57923D0, 0.48674D0,
& 0.42334D0, 0.34023D0, 0.26678D0, 0.19927D0, 0.16016D0,
& 0.11481D0, 0.08798D0, 0.06944D0, 0.05264D0, 0.04025D0,
& 0.03073D0, 0.02343D0, 0.01777D0, 0.01335D0, 0.00994D0,
& 0.00734D0, 0.00536D0, 0.00388D0, 0.00278D0, 0.00196D0,
& 0.00135D0, 0.00094D0, 0.00065D0, 0.00041D0, 0.00027D0,
& 0.00017D0, 0.00010D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,31),I=1,49)/
& 13.00875D0, 9.54182D0, 6.99142D0, 5.82458D0, 5.11479D0,
& 4.62308D0, 3.37031D0, 2.44489D0, 2.01852D0, 1.75723D0,
& 1.57179D0, 1.10022D0, 0.75086D0, 0.59207D0, 0.49634D0,
& 0.43089D0, 0.34532D0, 0.26994D0, 0.20090D0, 0.16103D0,
& 0.11492D0, 0.08774D0, 0.06903D0, 0.05213D0, 0.03973D0,
& 0.03024D0, 0.02300D0, 0.01739D0, 0.01303D0, 0.00968D0,
& 0.00712D0, 0.00520D0, 0.00375D0, 0.00268D0, 0.00188D0,
& 0.00130D0, 0.00090D0, 0.00063D0, 0.00039D0, 0.00025D0,
& 0.00016D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,32),I=1,49)/
& 13.85388D0, 10.11672D0, 7.37984D0, 6.13221D0, 5.37500D0,
& 4.85130D0, 3.52087D0, 2.54252D0, 2.09344D0, 1.81889D0,
& 1.62437D0, 1.13136D0, 0.76814D0, 0.60383D0, 0.50509D0,
& 0.43774D0, 0.34990D0, 0.27275D0, 0.20231D0, 0.16173D0,
& 0.11495D0, 0.08745D0, 0.06859D0, 0.05162D0, 0.03921D0,
& 0.02977D0, 0.02256D0, 0.01702D0, 0.01273D0, 0.00943D0,
& 0.00693D0, 0.00505D0, 0.00364D0, 0.00260D0, 0.00181D0,
& 0.00125D0, 0.00086D0, 0.00060D0, 0.00037D0, 0.00024D0,
& 0.00016D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,33),I=1,49)/
& 14.75398D0, 10.72621D0, 7.78974D0, 6.45599D0, 5.64833D0,
& 5.09068D0, 3.67806D0, 2.64398D0, 2.17108D0, 1.88265D0,
& 1.67867D0, 1.16335D0, 0.78579D0, 0.61581D0, 0.51399D0,
& 0.44470D0, 0.35453D0, 0.27558D0, 0.20373D0, 0.16245D0,
& 0.11497D0, 0.08717D0, 0.06816D0, 0.05112D0, 0.03871D0,
& 0.02930D0, 0.02213D0, 0.01666D0, 0.01243D0, 0.00919D0,
& 0.00674D0, 0.00490D0, 0.00353D0, 0.00251D0, 0.00175D0,
& 0.00120D0, 0.00083D0, 0.00058D0, 0.00036D0, 0.00023D0,
& 0.00015D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,34),I=1,49)/
& 15.65461D0, 11.33290D0, 8.19558D0, 6.77553D0, 5.91747D0,
& 5.32596D0, 3.83165D0, 2.74249D0, 2.24617D0, 1.94414D0,
& 1.73088D0, 1.19385D0, 0.80244D0, 0.62703D0, 0.52226D0,
& 0.45111D0, 0.35875D0, 0.27811D0, 0.20493D0, 0.16299D0,
& 0.11490D0, 0.08681D0, 0.06768D0, 0.05059D0, 0.03819D0,
& 0.02883D0, 0.02172D0, 0.01631D0, 0.01213D0, 0.00895D0,
& 0.00656D0, 0.00475D0, 0.00341D0, 0.00243D0, 0.00169D0,
& 0.00116D0, 0.00080D0, 0.00055D0, 0.00034D0, 0.00022D0,
& 0.00015D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,35),I=1,49)/
& 16.55734D0, 11.93842D0, 8.59892D0, 7.09231D0, 6.18381D0,
& 5.55847D0, 3.98278D0, 2.83900D0, 2.31954D0, 2.00411D0,
& 1.78173D0, 1.22341D0, 0.81850D0, 0.63782D0, 0.53020D0,
& 0.45726D0, 0.36278D0, 0.28052D0, 0.20606D0, 0.16351D0,
& 0.11482D0, 0.08647D0, 0.06722D0, 0.05009D0, 0.03770D0,
& 0.02838D0, 0.02133D0, 0.01598D0, 0.01187D0, 0.00873D0,
& 0.00639D0, 0.00462D0, 0.00330D0, 0.00235D0, 0.00163D0,
& 0.00111D0, 0.00077D0, 0.00053D0, 0.00033D0, 0.00021D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,36),I=1,49)/
& 17.43806D0, 12.52661D0, 8.98898D0, 7.39784D0, 6.44021D0,
& 5.78196D0, 4.12737D0, 2.93087D0, 2.38917D0, 2.06088D0,
& 1.82979D0, 1.25117D0, 0.83346D0, 0.64781D0, 0.53752D0,
& 0.46291D0, 0.36645D0, 0.28268D0, 0.20706D0, 0.16393D0,
& 0.11470D0, 0.08612D0, 0.06676D0, 0.04960D0, 0.03723D0,
& 0.02796D0, 0.02096D0, 0.01566D0, 0.01161D0, 0.00852D0,
& 0.00623D0, 0.00449D0, 0.00321D0, 0.00227D0, 0.00158D0,
& 0.00107D0, 0.00074D0, 0.00051D0, 0.00031D0, 0.00020D0,
& 0.00013D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,37),I=1,49)/
& 18.35067D0, 13.13351D0, 9.38971D0, 7.71095D0, 6.70247D0,
& 6.01024D0, 4.27436D0, 3.02381D0, 2.45940D0, 2.11802D0,
& 1.87806D0, 1.27887D0, 0.84828D0, 0.65765D0, 0.54469D0,
& 0.46841D0, 0.37001D0, 0.28475D0, 0.20797D0, 0.16429D0,
& 0.11453D0, 0.08573D0, 0.06628D0, 0.04909D0, 0.03675D0,
& 0.02752D0, 0.02059D0, 0.01535D0, 0.01135D0, 0.00831D0,
& 0.00606D0, 0.00437D0, 0.00311D0, 0.00220D0, 0.00153D0,
& 0.00103D0, 0.00072D0, 0.00049D0, 0.00030D0, 0.00019D0,
& 0.00013D0, 0.00007D0, 0.00005D0, 0.00001D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,6,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 1),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 2),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 3),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 4),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 5),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 6),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 7),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 8),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I, 9),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,10),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,11),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,12),I=1,49)/
& 0.00041D0, 0.00036D0, 0.00032D0, 0.00030D0, 0.00028D0,
& 0.00027D0, 0.00023D0, 0.00021D0, 0.00019D0, 0.00018D0,
& 0.00017D0, 0.00014D0, 0.00012D0, 0.00011D0, 0.00010D0,
& 0.00009D0, 0.00008D0, 0.00007D0, 0.00006D0, 0.00005D0,
& 0.00004D0, 0.00004D0, 0.00003D0, 0.00003D0, 0.00003D0,
& 0.00003D0, 0.00002D0, 0.00002D0, 0.00002D0, 0.00002D0,
& 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0, 0.00001D0,
& 0.00001D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,13),I=1,49)/
& 0.21131D0, 0.16558D0, 0.12967D0, 0.11232D0, 0.10141D0,
& 0.09365D0, 0.07296D0, 0.05647D0, 0.04835D0, 0.04314D0,
& 0.03929D0, 0.02893D0, 0.02049D0, 0.01636D0, 0.01376D0,
& 0.01193D0, 0.00947D0, 0.00725D0, 0.00522D0, 0.00409D0,
& 0.00289D0, 0.00226D0, 0.00187D0, 0.00153D0, 0.00127D0,
& 0.00106D0, 0.00087D0, 0.00071D0, 0.00058D0, 0.00046D0,
& 0.00037D0, 0.00028D0, 0.00022D0, 0.00016D0, 0.00012D0,
& 0.00009D0, 0.00007D0, 0.00005D0, 0.00003D0, 0.00002D0,
& 0.00001D0, 0.00001D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,14),I=1,49)/
& 0.61374D0, 0.47881D0, 0.37330D0, 0.32254D0, 0.29066D0,
& 0.26804D0, 0.20788D0, 0.16016D0, 0.13675D0, 0.12177D0,
& 0.11072D0, 0.08109D0, 0.05711D0, 0.04545D0, 0.03813D0,
& 0.03299D0, 0.02611D0, 0.01996D0, 0.01434D0, 0.01121D0,
& 0.00789D0, 0.00617D0, 0.00509D0, 0.00414D0, 0.00341D0,
& 0.00282D0, 0.00231D0, 0.00188D0, 0.00151D0, 0.00120D0,
& 0.00094D0, 0.00073D0, 0.00056D0, 0.00042D0, 0.00031D0,
& 0.00023D0, 0.00016D0, 0.00012D0, 0.00008D0, 0.00005D0,
& 0.00003D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,15),I=1,49)/
& 0.99259D0, 0.76862D0, 0.59480D0, 0.51168D0, 0.45967D0,
& 0.42287D0, 0.32549D0, 0.24886D0, 0.21152D0, 0.18775D0,
& 0.17025D0, 0.12366D0, 0.08636D0, 0.06840D0, 0.05719D0,
& 0.04937D0, 0.03895D0, 0.02967D0, 0.02125D0, 0.01657D0,
& 0.01162D0, 0.00903D0, 0.00740D0, 0.00597D0, 0.00488D0,
& 0.00399D0, 0.00325D0, 0.00263D0, 0.00210D0, 0.00166D0,
& 0.00130D0, 0.00100D0, 0.00076D0, 0.00057D0, 0.00042D0,
& 0.00031D0, 0.00022D0, 0.00015D0, 0.00011D0, 0.00007D0,
& 0.00004D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,16),I=1,49)/
& 1.40334D0, 1.07950D0, 0.82983D0, 0.71109D0, 0.63704D0,
& 0.58478D0, 0.44710D0, 0.33953D0, 0.28741D0, 0.25436D0,
& 0.23011D0, 0.16589D0, 0.11498D0, 0.09067D0, 0.07559D0,
& 0.06510D0, 0.05120D0, 0.03889D0, 0.02777D0, 0.02161D0,
& 0.01509D0, 0.01166D0, 0.00950D0, 0.00760D0, 0.00617D0,
& 0.00501D0, 0.00405D0, 0.00325D0, 0.00258D0, 0.00203D0,
& 0.00158D0, 0.00121D0, 0.00091D0, 0.00068D0, 0.00050D0,
& 0.00037D0, 0.00026D0, 0.00018D0, 0.00012D0, 0.00008D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,17),I=1,49)/
& 1.88020D0, 1.43681D0, 1.09723D0, 0.93659D0, 0.83676D0,
& 0.76647D0, 0.58212D0, 0.43908D0, 0.37019D0, 0.32667D0,
& 0.29484D0, 0.21099D0, 0.14515D0, 0.11396D0, 0.09473D0,
& 0.08141D0, 0.06382D0, 0.04833D0, 0.03440D0, 0.02672D0,
& 0.01856D0, 0.01428D0, 0.01156D0, 0.00918D0, 0.00739D0,
& 0.00596D0, 0.00478D0, 0.00381D0, 0.00301D0, 0.00236D0,
& 0.00181D0, 0.00138D0, 0.00104D0, 0.00077D0, 0.00057D0,
& 0.00041D0, 0.00030D0, 0.00020D0, 0.00014D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,18),I=1,49)/
& 2.30534D0, 1.75221D0, 1.33088D0, 1.13244D0, 1.00946D0,
& 0.92305D0, 0.69723D0, 0.52301D0, 0.43952D0, 0.38693D0,
& 0.34856D0, 0.24795D0, 0.16954D0, 0.13265D0, 0.11000D0,
& 0.09436D0, 0.07379D0, 0.05574D0, 0.03958D0, 0.03067D0,
& 0.02123D0, 0.01626D0, 0.01309D0, 0.01033D0, 0.00826D0,
& 0.00663D0, 0.00529D0, 0.00419D0, 0.00329D0, 0.00257D0,
& 0.00197D0, 0.00150D0, 0.00112D0, 0.00083D0, 0.00061D0,
& 0.00044D0, 0.00032D0, 0.00022D0, 0.00015D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,19),I=1,49)/
& 2.86856D0, 2.16633D0, 1.63487D0, 1.38587D0, 1.23207D0,
& 1.12426D0, 0.84372D0, 0.62876D0, 0.52633D0, 0.46206D0,
& 0.41530D0, 0.29334D0, 0.19914D0, 0.15517D0, 0.12832D0,
& 0.10984D0, 0.08563D0, 0.06450D0, 0.04565D0, 0.03529D0,
& 0.02431D0, 0.01851D0, 0.01482D0, 0.01161D0, 0.00922D0,
& 0.00734D0, 0.00582D0, 0.00458D0, 0.00358D0, 0.00278D0,
& 0.00212D0, 0.00160D0, 0.00119D0, 0.00088D0, 0.00064D0,
& 0.00047D0, 0.00033D0, 0.00023D0, 0.00015D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,20),I=1,49)/
& 3.42748D0, 2.57399D0, 1.93167D0, 1.63211D0, 1.44759D0,
& 1.31854D0, 0.98395D0, 0.72909D0, 0.60825D0, 0.53267D0,
& 0.47783D0, 0.33544D0, 0.22632D0, 0.17572D0, 0.14495D0,
& 0.12384D0, 0.09630D0, 0.07234D0, 0.05105D0, 0.03938D0,
& 0.02701D0, 0.02047D0, 0.01631D0, 0.01268D0, 0.01001D0,
& 0.00793D0, 0.00625D0, 0.00489D0, 0.00380D0, 0.00294D0,
& 0.00223D0, 0.00168D0, 0.00125D0, 0.00091D0, 0.00066D0,
& 0.00048D0, 0.00035D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,21),I=1,49)/
& 3.95907D0, 2.95830D0, 2.20894D0, 1.86088D0, 1.64705D0,
& 1.49778D0, 1.11204D0, 0.81980D0, 0.68185D0, 0.59583D0,
& 0.53354D0, 0.37251D0, 0.24993D0, 0.19343D0, 0.15921D0,
& 0.13581D0, 0.10535D0, 0.07895D0, 0.05557D0, 0.04278D0,
& 0.02922D0, 0.02205D0, 0.01748D0, 0.01352D0, 0.01061D0,
& 0.00835D0, 0.00655D0, 0.00511D0, 0.00395D0, 0.00304D0,
& 0.00230D0, 0.00172D0, 0.00128D0, 0.00093D0, 0.00067D0,
& 0.00049D0, 0.00035D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,22),I=1,49)/
& 4.70301D0, 3.49223D0, 2.59131D0, 2.17500D0, 1.92006D0,
& 1.74251D0, 1.28559D0, 0.94171D0, 0.78029D0, 0.68000D0,
& 0.60759D0, 0.42132D0, 0.28074D0, 0.21641D0, 0.17764D0,
& 0.15121D0, 0.11695D0, 0.08738D0, 0.06130D0, 0.04706D0,
& 0.03198D0, 0.02400D0, 0.01891D0, 0.01452D0, 0.01131D0,
& 0.00885D0, 0.00690D0, 0.00535D0, 0.00412D0, 0.00314D0,
& 0.00237D0, 0.00177D0, 0.00130D0, 0.00095D0, 0.00068D0,
& 0.00049D0, 0.00036D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,23),I=1,49)/
& 5.46775D0, 4.03669D0, 2.97803D0, 2.49113D0, 2.19384D0,
& 1.98726D0, 1.45764D0, 1.06148D0, 0.87647D0, 0.76190D0,
& 0.67941D0, 0.46817D0, 0.30998D0, 0.23809D0, 0.19493D0,
& 0.16562D0, 0.12774D0, 0.09517D0, 0.06655D0, 0.05097D0,
& 0.03446D0, 0.02573D0, 0.02017D0, 0.01538D0, 0.01190D0,
& 0.00925D0, 0.00718D0, 0.00553D0, 0.00424D0, 0.00322D0,
& 0.00242D0, 0.00179D0, 0.00132D0, 0.00095D0, 0.00069D0,
& 0.00049D0, 0.00036D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,24),I=1,49)/
& 6.21519D0, 4.56429D0, 3.34948D0, 2.79317D0, 2.45443D0,
& 2.21950D0, 1.61934D0, 1.17290D0, 0.96539D0, 0.83728D0,
& 0.74526D0, 0.51062D0, 0.33614D0, 0.25732D0, 0.21020D0,
& 0.17828D0, 0.13715D0, 0.10192D0, 0.07106D0, 0.05428D0,
& 0.03653D0, 0.02714D0, 0.02117D0, 0.01604D0, 0.01234D0,
& 0.00954D0, 0.00736D0, 0.00565D0, 0.00431D0, 0.00326D0,
& 0.00243D0, 0.00180D0, 0.00132D0, 0.00095D0, 0.00068D0,
& 0.00049D0, 0.00035D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,25),I=1,49)/
& 7.03262D0, 5.13776D0, 3.75072D0, 3.11823D0, 2.73413D0,
& 2.46827D0, 1.79141D0, 1.29068D0, 1.05901D0, 0.91641D0,
& 0.81423D0, 0.55475D0, 0.36312D0, 0.27706D0, 0.22581D0,
& 0.19119D0, 0.14672D0, 0.10875D0, 0.07559D0, 0.05760D0,
& 0.03859D0, 0.02852D0, 0.02214D0, 0.01668D0, 0.01276D0,
& 0.00981D0, 0.00753D0, 0.00575D0, 0.00436D0, 0.00329D0,
& 0.00245D0, 0.00180D0, 0.00132D0, 0.00095D0, 0.00068D0,
& 0.00048D0, 0.00035D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,26),I=1,49)/
& 7.86804D0, 5.71947D0, 4.15459D0, 3.44391D0, 3.01342D0,
& 2.71602D0, 1.96133D0, 1.40596D0, 1.15014D0, 0.99314D0,
& 0.88088D0, 0.59694D0, 0.38863D0, 0.29560D0, 0.24039D0,
& 0.20320D0, 0.15555D0, 0.11500D0, 0.07970D0, 0.06059D0,
& 0.04040D0, 0.02973D0, 0.02296D0, 0.01720D0, 0.01308D0,
& 0.01001D0, 0.00765D0, 0.00581D0, 0.00439D0, 0.00330D0,
& 0.00245D0, 0.00180D0, 0.00131D0, 0.00094D0, 0.00067D0,
& 0.00048D0, 0.00034D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,27),I=1,49)/
& 8.71308D0, 6.30440D0, 4.55822D0, 3.76823D0, 3.29083D0,
& 2.96160D0, 2.12868D0, 1.51874D0, 1.23894D0, 1.06767D0,
& 0.94548D0, 0.63752D0, 0.41296D0, 0.31319D0, 0.25418D0,
& 0.21452D0, 0.16385D0, 0.12085D0, 0.08351D0, 0.06334D0,
& 0.04205D0, 0.03081D0, 0.02369D0, 0.01765D0, 0.01336D0,
& 0.01017D0, 0.00773D0, 0.00586D0, 0.00441D0, 0.00330D0,
& 0.00244D0, 0.00178D0, 0.00129D0, 0.00092D0, 0.00066D0,
& 0.00047D0, 0.00034D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,28),I=1,49)/
& 9.54571D0, 6.87720D0, 4.95101D0, 4.08263D0, 3.55902D0,
& 3.19851D0, 2.28903D0, 1.62602D0, 1.32303D0, 1.13803D0,
& 1.00630D0, 0.67540D0, 0.43546D0, 0.32936D0, 0.26680D0,
& 0.22485D0, 0.17138D0, 0.12612D0, 0.08693D0, 0.06579D0,
& 0.04350D0, 0.03173D0, 0.02430D0, 0.01801D0, 0.01357D0,
& 0.01029D0, 0.00779D0, 0.00587D0, 0.00441D0, 0.00329D0,
& 0.00242D0, 0.00177D0, 0.00128D0, 0.00091D0, 0.00065D0,
& 0.00046D0, 0.00033D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,29),I=1,49)/
& 10.42768D0, 7.48069D0, 5.36257D0, 4.41099D0, 3.83846D0,
& 3.44489D0, 2.45481D0, 1.73627D0, 1.40913D0, 1.20986D0,
& 1.06825D0, 0.71372D0, 0.45804D0, 0.34552D0, 0.27937D0,
& 0.23511D0, 0.17881D0, 0.13130D0, 0.09026D0, 0.06816D0,
& 0.04488D0, 0.03260D0, 0.02487D0, 0.01834D0, 0.01375D0,
& 0.01038D0, 0.00783D0, 0.00588D0, 0.00440D0, 0.00327D0,
& 0.00240D0, 0.00175D0, 0.00126D0, 0.00090D0, 0.00063D0,
& 0.00045D0, 0.00033D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,30),I=1,49)/
& 11.32906D0, 8.09395D0, 5.77834D0, 4.74153D0, 4.11903D0,
& 3.69178D0, 2.61985D0, 1.84528D0, 1.49390D0, 1.28038D0,
& 1.12893D0, 0.75094D0, 0.47979D0, 0.36099D0, 0.29135D0,
& 0.24485D0, 0.18584D0, 0.13617D0, 0.09335D0, 0.07035D0,
& 0.04613D0, 0.03338D0, 0.02536D0, 0.01861D0, 0.01389D0,
& 0.01045D0, 0.00785D0, 0.00587D0, 0.00438D0, 0.00324D0,
& 0.00237D0, 0.00172D0, 0.00124D0, 0.00088D0, 0.00062D0,
& 0.00044D0, 0.00032D0, 0.00024D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,31),I=1,49)/
& 12.23197D0, 8.70533D0, 6.19083D0, 5.06852D0, 4.39601D0,
& 3.93512D0, 2.78170D0, 1.95161D0, 1.57633D0, 1.34878D0,
& 1.18767D0, 0.78675D0, 0.50057D0, 0.37571D0, 0.30272D0,
& 0.25408D0, 0.19247D0, 0.14074D0, 0.09625D0, 0.07237D0,
& 0.04728D0, 0.03408D0, 0.02579D0, 0.01885D0, 0.01401D0,
& 0.01049D0, 0.00785D0, 0.00586D0, 0.00435D0, 0.00321D0,
& 0.00235D0, 0.00170D0, 0.00122D0, 0.00086D0, 0.00061D0,
& 0.00043D0, 0.00031D0, 0.00023D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,32),I=1,49)/
& 13.10605D0, 9.29397D0, 6.58574D0, 5.38050D0, 4.65963D0,
& 4.16627D0, 2.93446D0, 2.05131D0, 1.65329D0, 1.41245D0,
& 1.24220D0, 0.81972D0, 0.51953D0, 0.38906D0, 0.31298D0,
& 0.26237D0, 0.19840D0, 0.14478D0, 0.09878D0, 0.07413D0,
& 0.04825D0, 0.03465D0, 0.02614D0, 0.01902D0, 0.01408D0,
& 0.01051D0, 0.00784D0, 0.00583D0, 0.00432D0, 0.00318D0,
& 0.00232D0, 0.00167D0, 0.00120D0, 0.00085D0, 0.00060D0,
& 0.00042D0, 0.00031D0, 0.00023D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,33),I=1,49)/
& 14.04396D0, 9.92333D0, 7.00645D0, 5.71217D0, 4.93947D0,
& 4.41134D0, 3.09586D0, 2.15625D0, 1.73413D0, 1.47923D0,
& 1.29933D0, 0.85413D0, 0.53923D0, 0.40291D0, 0.32360D0,
& 0.27095D0, 0.20451D0, 0.14895D0, 0.10139D0, 0.07594D0,
& 0.04925D0, 0.03524D0, 0.02649D0, 0.01920D0, 0.01416D0,
& 0.01053D0, 0.00783D0, 0.00580D0, 0.00428D0, 0.00315D0,
& 0.00229D0, 0.00165D0, 0.00118D0, 0.00083D0, 0.00058D0,
& 0.00041D0, 0.00030D0, 0.00022D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,34),I=1,49)/
& 14.97171D0, 10.54223D0, 7.41762D0, 6.03510D0, 5.21118D0,
& 4.64879D0, 3.25111D0, 2.25643D0, 1.81093D0, 1.54244D0,
& 1.35325D0, 0.88628D0, 0.55744D0, 0.41560D0, 0.33329D0,
& 0.27873D0, 0.21001D0, 0.15267D0, 0.10367D0, 0.07749D0,
& 0.05007D0, 0.03571D0, 0.02675D0, 0.01931D0, 0.01419D0,
& 0.01051D0, 0.00779D0, 0.00576D0, 0.00424D0, 0.00311D0,
& 0.00225D0, 0.00162D0, 0.00115D0, 0.00081D0, 0.00057D0,
& 0.00041D0, 0.00030D0, 0.00022D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,35),I=1,49)/
& 15.90678D0, 11.16388D0, 7.82922D0, 6.35772D0, 5.48225D0,
& 4.88541D0, 3.40531D0, 2.35558D0, 1.88678D0, 1.60477D0,
& 1.40636D0, 0.91783D0, 0.57524D0, 0.42799D0, 0.34272D0,
& 0.28629D0, 0.21535D0, 0.15626D0, 0.10587D0, 0.07899D0,
& 0.05087D0, 0.03616D0, 0.02700D0, 0.01941D0, 0.01421D0,
& 0.01050D0, 0.00776D0, 0.00572D0, 0.00420D0, 0.00307D0,
& 0.00222D0, 0.00159D0, 0.00113D0, 0.00080D0, 0.00056D0,
& 0.00040D0, 0.00029D0, 0.00022D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,36),I=1,49)/
& 16.81722D0, 11.76659D0, 8.22652D0, 6.66831D0, 5.74271D0,
& 5.11243D0, 3.55252D0, 2.44976D0, 1.95860D0, 1.66366D0,
& 1.45643D0, 0.94739D0, 0.59179D0, 0.43945D0, 0.35142D0,
& 0.29325D0, 0.22023D0, 0.15953D0, 0.10786D0, 0.08033D0,
& 0.05156D0, 0.03654D0, 0.02720D0, 0.01949D0, 0.01422D0,
& 0.01047D0, 0.00772D0, 0.00567D0, 0.00416D0, 0.00303D0,
& 0.00219D0, 0.00157D0, 0.00111D0, 0.00078D0, 0.00055D0,
& 0.00039D0, 0.00029D0, 0.00022D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,37),I=1,49)/
& 17.75747D0, 12.38637D0, 8.63327D0, 6.98544D0, 6.00814D0,
& 5.34342D0, 3.70158D0, 2.54461D0, 2.03070D0, 1.72263D0,
& 1.50647D0, 0.97674D0, 0.60811D0, 0.45069D0, 0.35992D0,
& 0.30003D0, 0.22496D0, 0.16268D0, 0.10975D0, 0.08160D0,
& 0.05220D0, 0.03687D0, 0.02737D0, 0.01954D0, 0.01421D0,
& 0.01044D0, 0.00767D0, 0.00562D0, 0.00411D0, 0.00299D0,
& 0.00215D0, 0.00154D0, 0.00109D0, 0.00077D0, 0.00053D0,
& 0.00038D0, 0.00028D0, 0.00021D0, 0.00016D0, 0.00009D0,
& 0.00005D0, 0.00002D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,7,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 1),I=1,49)/
& 0.98494D0, 0.83942D0, 0.71517D0, 0.65113D0, 0.60921D0,
& 0.57857D0, 0.49313D0, 0.42114D0, 0.38478D0, 0.36147D0,
& 0.34532D0, 0.30109D0, 0.26601D0, 0.24883D0, 0.23797D0,
& 0.23013D0, 0.21908D0, 0.20797D0, 0.19531D0, 0.18554D0,
& 0.16898D0, 0.15367D0, 0.13862D0, 0.11992D0, 0.10161D0,
& 0.08421D0, 0.06813D0, 0.05380D0, 0.04148D0, 0.03102D0,
& 0.02276D0, 0.01618D0, 0.01125D0, 0.00763D0, 0.00500D0,
& 0.00317D0, 0.00203D0, 0.00121D0, 0.00069D0, 0.00043D0,
& 0.00027D0, 0.00012D0, 0.00011D0, 0.00003D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 2),I=1,49)/
& 0.98889D0, 0.84649D0, 0.72438D0, 0.66122D0, 0.61978D0,
& 0.58944D0, 0.50458D0, 0.43271D0, 0.39626D0, 0.37282D0,
& 0.35655D0, 0.31168D0, 0.27538D0, 0.25719D0, 0.24547D0,
& 0.23690D0, 0.22464D0, 0.21217D0, 0.19794D0, 0.18712D0,
& 0.16930D0, 0.15330D0, 0.13787D0, 0.11894D0, 0.10059D0,
& 0.08325D0, 0.06732D0, 0.05317D0, 0.04104D0, 0.03076D0,
& 0.02264D0, 0.01619D0, 0.01134D0, 0.00776D0, 0.00516D0,
& 0.00334D0, 0.00218D0, 0.00135D0, 0.00080D0, 0.00052D0,
& 0.00034D0, 0.00018D0, 0.00014D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 3),I=1,49)/
& 1.01222D0, 0.87111D0, 0.74946D0, 0.68626D0, 0.64467D0,
& 0.61416D0, 0.52846D0, 0.45538D0, 0.41806D0, 0.39393D0,
& 0.37708D0, 0.33010D0, 0.29099D0, 0.27082D0, 0.25752D0,
& 0.24766D0, 0.23338D0, 0.21871D0, 0.20204D0, 0.18963D0,
& 0.16990D0, 0.15288D0, 0.13686D0, 0.11759D0, 0.09914D0,
& 0.08186D0, 0.06611D0, 0.05221D0, 0.04030D0, 0.03030D0,
& 0.02237D0, 0.01612D0, 0.01138D0, 0.00788D0, 0.00532D0,
& 0.00353D0, 0.00233D0, 0.00151D0, 0.00092D0, 0.00061D0,
& 0.00042D0, 0.00024D0, 0.00016D0, 0.00005D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 4),I=1,49)/
& 1.04476D0, 0.90153D0, 0.77771D0, 0.71324D0, 0.67074D0,
& 0.63953D0, 0.55166D0, 0.47640D0, 0.43777D0, 0.41269D0,
& 0.39507D0, 0.34558D0, 0.30362D0, 0.28161D0, 0.26695D0,
& 0.25601D0, 0.24007D0, 0.22367D0, 0.20514D0, 0.19155D0,
& 0.17043D0, 0.15264D0, 0.13620D0, 0.11664D0, 0.09810D0,
& 0.08084D0, 0.06518D0, 0.05144D0, 0.03971D0, 0.02989D0,
& 0.02211D0, 0.01600D0, 0.01135D0, 0.00790D0, 0.00539D0,
& 0.00362D0, 0.00238D0, 0.00157D0, 0.00098D0, 0.00066D0,
& 0.00045D0, 0.00026D0, 0.00018D0, 0.00006D0, 0.00003D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 5),I=1,49)/
& 1.10026D0, 0.95040D0, 0.82069D0, 0.75308D0, 0.70848D0,
& 0.67571D0, 0.58330D0, 0.50390D0, 0.46299D0, 0.43632D0,
& 0.41743D0, 0.36409D0, 0.31818D0, 0.29384D0, 0.27750D0,
& 0.26527D0, 0.24742D0, 0.22908D0, 0.20853D0, 0.19368D0,
& 0.17108D0, 0.15248D0, 0.13556D0, 0.11567D0, 0.09702D0,
& 0.07977D0, 0.06421D0, 0.05061D0, 0.03905D0, 0.02941D0,
& 0.02179D0, 0.01578D0, 0.01121D0, 0.00787D0, 0.00539D0,
& 0.00363D0, 0.00243D0, 0.00163D0, 0.00101D0, 0.00068D0,
& 0.00046D0, 0.00028D0, 0.00020D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 6),I=1,49)/
& 1.15923D0, 1.00143D0, 0.86481D0, 0.79358D0, 0.74658D0,
& 0.71202D0, 0.61454D0, 0.53061D0, 0.48723D0, 0.45888D0,
& 0.43867D0, 0.38135D0, 0.33152D0, 0.30491D0, 0.28699D0,
& 0.27355D0, 0.25394D0, 0.23384D0, 0.21150D0, 0.19554D0,
& 0.17166D0, 0.15236D0, 0.13502D0, 0.11484D0, 0.09608D0,
& 0.07883D0, 0.06335D0, 0.04988D0, 0.03847D0, 0.02897D0,
& 0.02148D0, 0.01557D0, 0.01108D0, 0.00781D0, 0.00536D0,
& 0.00363D0, 0.00245D0, 0.00167D0, 0.00103D0, 0.00070D0,
& 0.00046D0, 0.00029D0, 0.00021D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 7),I=1,49)/
& 1.23248D0, 1.06345D0, 0.91726D0, 0.84109D0, 0.79085D0,
& 0.75393D0, 0.64976D0, 0.56002D0, 0.51357D0, 0.48314D0,
& 0.46132D0, 0.39931D0, 0.34507D0, 0.31602D0, 0.29642D0,
& 0.28173D0, 0.26034D0, 0.23848D0, 0.21438D0, 0.19736D0,
& 0.17224D0, 0.15227D0, 0.13452D0, 0.11404D0, 0.09516D0,
& 0.07789D0, 0.06251D0, 0.04914D0, 0.03786D0, 0.02851D0,
& 0.02113D0, 0.01532D0, 0.01096D0, 0.00772D0, 0.00530D0,
& 0.00360D0, 0.00243D0, 0.00166D0, 0.00104D0, 0.00071D0,
& 0.00048D0, 0.00030D0, 0.00020D0, 0.00008D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 8),I=1,49)/
& 1.32548D0, 1.14118D0, 0.98212D0, 0.89937D0, 0.84484D0,
& 0.80478D0, 0.69187D0, 0.59465D0, 0.54428D0, 0.51124D0,
& 0.48741D0, 0.41964D0, 0.36014D0, 0.32825D0, 0.30675D0,
& 0.29065D0, 0.26725D0, 0.24348D0, 0.21747D0, 0.19931D0,
& 0.17288D0, 0.15217D0, 0.13398D0, 0.11319D0, 0.09418D0,
& 0.07689D0, 0.06158D0, 0.04833D0, 0.03719D0, 0.02798D0,
& 0.02073D0, 0.01504D0, 0.01077D0, 0.00760D0, 0.00523D0,
& 0.00355D0, 0.00240D0, 0.00165D0, 0.00105D0, 0.00070D0,
& 0.00048D0, 0.00029D0, 0.00020D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I, 9),I=1,49)/
& 1.41996D0, 1.21934D0, 1.04662D0, 0.95694D0, 0.89790D0,
& 0.85457D0, 0.73259D0, 0.62769D0, 0.57336D0, 0.53768D0,
& 0.51185D0, 0.43840D0, 0.37384D0, 0.33927D0, 0.31599D0,
& 0.29859D0, 0.27338D0, 0.24788D0, 0.22018D0, 0.20102D0,
& 0.17344D0, 0.15210D0, 0.13351D0, 0.11246D0, 0.09333D0,
& 0.07602D0, 0.06075D0, 0.04762D0, 0.03659D0, 0.02749D0,
& 0.02036D0, 0.01479D0, 0.01057D0, 0.00748D0, 0.00516D0,
& 0.00349D0, 0.00238D0, 0.00163D0, 0.00104D0, 0.00069D0,
& 0.00047D0, 0.00028D0, 0.00019D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,10),I=1,49)/
& 1.52623D0, 1.30628D0, 1.11753D0, 1.01977D0, 0.95552D0,
& 0.90841D0, 0.77603D0, 0.66243D0, 0.60365D0, 0.56506D0,
& 0.53703D0, 0.45743D0, 0.38751D0, 0.35017D0, 0.32507D0,
& 0.30636D0, 0.27933D0, 0.25214D0, 0.22280D0, 0.20266D0,
& 0.17397D0, 0.15202D0, 0.13306D0, 0.11174D0, 0.09248D0,
& 0.07516D0, 0.05994D0, 0.04691D0, 0.03600D0, 0.02702D0,
& 0.02000D0, 0.01454D0, 0.01039D0, 0.00736D0, 0.00507D0,
& 0.00344D0, 0.00235D0, 0.00162D0, 0.00103D0, 0.00069D0,
& 0.00047D0, 0.00027D0, 0.00019D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,11),I=1,49)/
& 1.61996D0, 1.38242D0, 1.17917D0, 1.07414D0, 1.00521D0,
& 0.95472D0, 0.81307D0, 0.69180D0, 0.62911D0, 0.58797D0,
& 0.55803D0, 0.47313D0, 0.39867D0, 0.35901D0, 0.33241D0,
& 0.31262D0, 0.28411D0, 0.25553D0, 0.22487D0, 0.20396D0,
& 0.17439D0, 0.15196D0, 0.13270D0, 0.11116D0, 0.09180D0,
& 0.07446D0, 0.05929D0, 0.04635D0, 0.03552D0, 0.02665D0,
& 0.01972D0, 0.01433D0, 0.01024D0, 0.00726D0, 0.00500D0,
& 0.00340D0, 0.00233D0, 0.00161D0, 0.00102D0, 0.00069D0,
& 0.00047D0, 0.00027D0, 0.00019D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,12),I=1,49)/
& 1.85147D0, 1.56851D0, 1.32816D0, 1.20469D0, 1.12394D0,
& 1.06494D0, 0.90014D0, 0.75989D0, 0.68768D0, 0.64036D0,
& 0.60582D0, 0.50832D0, 0.42330D0, 0.37835D0, 0.34837D0,
& 0.32616D0, 0.29437D0, 0.26278D0, 0.22928D0, 0.20671D0,
& 0.17525D0, 0.15178D0, 0.13188D0, 0.10989D0, 0.09032D0,
& 0.07294D0, 0.05789D0, 0.04511D0, 0.03448D0, 0.02582D0,
& 0.01907D0, 0.01385D0, 0.00987D0, 0.00700D0, 0.00482D0,
& 0.00328D0, 0.00224D0, 0.00154D0, 0.00100D0, 0.00066D0,
& 0.00045D0, 0.00027D0, 0.00019D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,13),I=1,49)/
& 2.08649D0, 1.75519D0, 1.47580D0, 1.33308D0, 1.24007D0,
& 1.17230D0, 0.98378D0, 0.82434D0, 0.74261D0, 0.68917D0,
& 0.65012D0, 0.54038D0, 0.44535D0, 0.39548D0, 0.36240D0,
& 0.33801D0, 0.30327D0, 0.26901D0, 0.23303D0, 0.20903D0,
& 0.17595D0, 0.15158D0, 0.13113D0, 0.10875D0, 0.08901D0,
& 0.07161D0, 0.05666D0, 0.04403D0, 0.03356D0, 0.02508D0,
& 0.01848D0, 0.01341D0, 0.00954D0, 0.00676D0, 0.00467D0,
& 0.00317D0, 0.00216D0, 0.00148D0, 0.00096D0, 0.00064D0,
& 0.00043D0, 0.00027D0, 0.00018D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,14),I=1,49)/
& 2.39126D0, 1.99450D0, 1.66281D0, 1.49454D0, 1.38536D0,
& 1.30604D0, 1.08660D0, 0.90248D0, 0.80863D0, 0.74747D0,
& 0.70276D0, 0.57787D0, 0.47070D0, 0.41497D0, 0.37825D0,
& 0.35132D0, 0.31319D0, 0.27591D0, 0.23714D0, 0.21153D0,
& 0.17666D0, 0.15129D0, 0.13023D0, 0.10742D0, 0.08751D0,
& 0.07010D0, 0.05525D0, 0.04280D0, 0.03250D0, 0.02426D0,
& 0.01784D0, 0.01291D0, 0.00918D0, 0.00650D0, 0.00451D0,
& 0.00308D0, 0.00210D0, 0.00146D0, 0.00091D0, 0.00061D0,
& 0.00040D0, 0.00024D0, 0.00017D0, 0.00007D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,15),I=1,49)/
& 2.76033D0, 2.28068D0, 1.88356D0, 1.68366D0, 1.55456D0,
& 1.46111D0, 1.20412D0, 0.99043D0, 0.88227D0, 0.81205D0,
& 0.76076D0, 0.61847D0, 0.49766D0, 0.43549D0, 0.39480D0,
& 0.36513D0, 0.32340D0, 0.28293D0, 0.24126D0, 0.21400D0,
& 0.17728D0, 0.15089D0, 0.12922D0, 0.10598D0, 0.08590D0,
& 0.06852D0, 0.05375D0, 0.04146D0, 0.03141D0, 0.02338D0,
& 0.01716D0, 0.01238D0, 0.00882D0, 0.00618D0, 0.00431D0,
& 0.00292D0, 0.00200D0, 0.00136D0, 0.00088D0, 0.00058D0,
& 0.00038D0, 0.00023D0, 0.00015D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,16),I=1,49)/
& 3.14075D0, 2.57242D0, 2.10607D0, 1.87299D0, 1.72314D0,
& 1.61501D0, 1.31935D0, 1.07560D0, 0.95301D0, 0.87374D0,
& 0.81592D0, 0.65651D0, 0.52253D0, 0.45423D0, 0.40982D0,
& 0.37760D0, 0.33254D0, 0.28915D0, 0.24485D0, 0.21612D0,
& 0.17773D0, 0.15044D0, 0.12821D0, 0.10460D0, 0.08439D0,
& 0.06702D0, 0.05238D0, 0.04027D0, 0.03041D0, 0.02258D0,
& 0.01653D0, 0.01190D0, 0.00847D0, 0.00593D0, 0.00412D0,
& 0.00279D0, 0.00191D0, 0.00129D0, 0.00084D0, 0.00056D0,
& 0.00036D0, 0.00023D0, 0.00014D0, 0.00006D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,17),I=1,49)/
& 3.57238D0, 2.90007D0, 2.35339D0, 2.08215D0, 1.90855D0,
& 1.78371D0, 1.44428D0, 1.16687D0, 1.02831D0, 0.93907D0,
& 0.87409D0, 0.69611D0, 0.54805D0, 0.47331D0, 0.42502D0,
& 0.39015D0, 0.34166D0, 0.29530D0, 0.24836D0, 0.21814D0,
& 0.17810D0, 0.14991D0, 0.12715D0, 0.10317D0, 0.08284D0,
& 0.06549D0, 0.05101D0, 0.03909D0, 0.02941D0, 0.02178D0,
& 0.01590D0, 0.01142D0, 0.00811D0, 0.00570D0, 0.00393D0,
& 0.00267D0, 0.00181D0, 0.00123D0, 0.00079D0, 0.00053D0,
& 0.00034D0, 0.00022D0, 0.00013D0, 0.00006D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,18),I=1,49)/
& 3.96850D0, 3.19797D0, 2.57613D0, 2.26945D0, 2.07391D0,
& 1.93368D0, 1.55423D0, 1.24636D0, 1.09346D0, 0.99533D0,
& 0.92399D0, 0.72966D0, 0.56941D0, 0.48914D0, 0.43755D0,
& 0.40046D0, 0.34910D0, 0.30027D0, 0.25115D0, 0.21971D0,
& 0.17833D0, 0.14941D0, 0.12622D0, 0.10197D0, 0.08154D0,
& 0.06423D0, 0.04986D0, 0.03809D0, 0.02858D0, 0.02112D0,
& 0.01538D0, 0.01101D0, 0.00783D0, 0.00549D0, 0.00377D0,
& 0.00256D0, 0.00173D0, 0.00118D0, 0.00076D0, 0.00050D0,
& 0.00033D0, 0.00020D0, 0.00012D0, 0.00005D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,19),I=1,49)/
& 4.49525D0, 3.59055D0, 2.86699D0, 2.51271D0, 2.28784D0,
& 2.12710D0, 1.69466D0, 1.34689D0, 1.17536D0, 1.06574D0,
& 0.98622D0, 0.77102D0, 0.59540D0, 0.50826D0, 0.45260D0,
& 0.41278D0, 0.35791D0, 0.30610D0, 0.25436D0, 0.22147D0,
& 0.17849D0, 0.14870D0, 0.12502D0, 0.10045D0, 0.07994D0,
& 0.06271D0, 0.04847D0, 0.03689D0, 0.02761D0, 0.02033D0,
& 0.01477D0, 0.01056D0, 0.00749D0, 0.00523D0, 0.00359D0,
& 0.00243D0, 0.00165D0, 0.00112D0, 0.00070D0, 0.00047D0,
& 0.00031D0, 0.00018D0, 0.00012D0, 0.00004D0, 0.00002D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,20),I=1,49)/
& 5.00899D0, 3.97007D0, 3.14567D0, 2.74457D0, 2.49097D0,
& 2.31023D0, 1.82640D0, 1.44029D0, 1.25101D0, 1.13051D0,
& 1.04327D0, 0.80852D0, 0.61869D0, 0.52527D0, 0.46592D0,
& 0.42363D0, 0.36563D0, 0.31116D0, 0.25711D0, 0.22294D0,
& 0.17857D0, 0.14803D0, 0.12392D0, 0.09909D0, 0.07852D0,
& 0.06137D0, 0.04727D0, 0.03584D0, 0.02676D0, 0.01965D0,
& 0.01424D0, 0.01018D0, 0.00720D0, 0.00501D0, 0.00343D0,
& 0.00232D0, 0.00157D0, 0.00107D0, 0.00066D0, 0.00045D0,
& 0.00029D0, 0.00018D0, 0.00012D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,21),I=1,49)/
& 5.51448D0, 4.34048D0, 3.41543D0, 2.96790D0, 2.68596D0,
& 2.48552D0, 1.95141D0, 1.52811D0, 1.32176D0, 1.19083D0,
& 1.09623D0, 0.84295D0, 0.63982D0, 0.54059D0, 0.47785D0,
& 0.43329D0, 0.37244D0, 0.31558D0, 0.25945D0, 0.22413D0,
& 0.17852D0, 0.14733D0, 0.12285D0, 0.09781D0, 0.07721D0,
& 0.06012D0, 0.04616D0, 0.03490D0, 0.02597D0, 0.01904D0,
& 0.01376D0, 0.00981D0, 0.00692D0, 0.00481D0, 0.00330D0,
& 0.00222D0, 0.00150D0, 0.00102D0, 0.00064D0, 0.00042D0,
& 0.00028D0, 0.00017D0, 0.00011D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,22),I=1,49)/
& 6.21231D0, 4.84766D0, 3.78177D0, 3.26973D0, 2.94855D0,
& 2.72097D0, 2.11789D0, 1.64406D0, 1.41467D0, 1.26974D0,
& 1.16528D0, 0.88741D0, 0.66681D0, 0.56001D0, 0.49289D0,
& 0.44543D0, 0.38094D0, 0.32104D0, 0.26228D0, 0.22553D0,
& 0.17838D0, 0.14638D0, 0.12146D0, 0.09617D0, 0.07554D0,
& 0.05855D0, 0.04477D0, 0.03372D0, 0.02502D0, 0.01828D0,
& 0.01316D0, 0.00936D0, 0.00658D0, 0.00457D0, 0.00313D0,
& 0.00210D0, 0.00142D0, 0.00097D0, 0.00060D0, 0.00039D0,
& 0.00026D0, 0.00016D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,23),I=1,49)/
& 6.92819D0, 5.36347D0, 4.15110D0, 3.57245D0, 3.21096D0,
& 2.95557D0, 2.28227D0, 1.75749D0, 1.50504D0, 1.34618D0,
& 1.23195D0, 0.92986D0, 0.69228D0, 0.57821D0, 0.50690D0,
& 0.45669D0, 0.38876D0, 0.32601D0, 0.26481D0, 0.22674D0,
& 0.17816D0, 0.14541D0, 0.12011D0, 0.09461D0, 0.07396D0,
& 0.05707D0, 0.04348D0, 0.03263D0, 0.02417D0, 0.01758D0,
& 0.01264D0, 0.00894D0, 0.00628D0, 0.00436D0, 0.00298D0,
& 0.00199D0, 0.00135D0, 0.00091D0, 0.00057D0, 0.00037D0,
& 0.00024D0, 0.00015D0, 0.00010D0, 0.00004D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,24),I=1,49)/
& 7.64199D0, 5.87362D0, 4.51337D0, 3.86793D0, 3.46620D0,
& 3.18314D0, 2.44035D0, 1.86558D0, 1.59069D0, 1.41834D0,
& 1.29468D0, 0.96937D0, 0.71569D0, 0.59480D0, 0.51959D0,
& 0.46683D0, 0.39572D0, 0.33035D0, 0.26693D0, 0.22767D0,
& 0.17780D0, 0.14441D0, 0.11876D0, 0.09309D0, 0.07246D0,
& 0.05571D0, 0.04226D0, 0.03164D0, 0.02333D0, 0.01693D0,
& 0.01213D0, 0.00857D0, 0.00600D0, 0.00415D0, 0.00282D0,
& 0.00189D0, 0.00128D0, 0.00086D0, 0.00054D0, 0.00035D0,
& 0.00022D0, 0.00014D0, 0.00009D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,25),I=1,49)/
& 8.41285D0, 6.42055D0, 4.89893D0, 4.18106D0, 3.73585D0,
& 3.42298D0, 2.60571D0, 1.97779D0, 1.67919D0, 1.49264D0,
& 1.35909D0, 1.00958D0, 0.73928D0, 0.61142D0, 0.53225D0,
& 0.47690D0, 0.40260D0, 0.33461D0, 0.26898D0, 0.22853D0,
& 0.17741D0, 0.14339D0, 0.11741D0, 0.09159D0, 0.07099D0,
& 0.05437D0, 0.04108D0, 0.03067D0, 0.02252D0, 0.01631D0,
& 0.01165D0, 0.00822D0, 0.00574D0, 0.00396D0, 0.00268D0,
& 0.00180D0, 0.00120D0, 0.00081D0, 0.00050D0, 0.00033D0,
& 0.00021D0, 0.00013D0, 0.00008D0, 0.00003D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,26),I=1,49)/
& 9.21054D0, 6.98238D0, 5.29207D0, 4.49895D0, 4.00873D0,
& 3.66510D0, 2.77134D0, 2.08927D0, 1.76669D0, 1.56583D0,
& 1.42235D0, 1.04868D0, 0.76198D0, 0.62728D0, 0.54426D0,
& 0.48640D0, 0.40901D0, 0.33853D0, 0.27078D0, 0.22922D0,
& 0.17691D0, 0.14232D0, 0.11604D0, 0.09010D0, 0.06954D0,
& 0.05305D0, 0.03996D0, 0.02972D0, 0.02176D0, 0.01572D0,
& 0.01122D0, 0.00790D0, 0.00548D0, 0.00378D0, 0.00255D0,
& 0.00171D0, 0.00115D0, 0.00078D0, 0.00048D0, 0.00031D0,
& 0.00020D0, 0.00012D0, 0.00008D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,27),I=1,49)/
& 10.01421D0, 7.54466D0, 5.68289D0, 4.81371D0, 4.27818D0,
& 3.90363D0, 2.93340D0, 2.19757D0, 1.85131D0, 1.63639D0,
& 1.48318D0, 1.08596D0, 0.78341D0, 0.64217D0, 0.55547D0,
& 0.49525D0, 0.41494D0, 0.34210D0, 0.27239D0, 0.22977D0,
& 0.17638D0, 0.14126D0, 0.11473D0, 0.08869D0, 0.06818D0,
& 0.05182D0, 0.03892D0, 0.02884D0, 0.02107D0, 0.01518D0,
& 0.01082D0, 0.00760D0, 0.00526D0, 0.00363D0, 0.00244D0,
& 0.00163D0, 0.00110D0, 0.00075D0, 0.00046D0, 0.00030D0,
& 0.00019D0, 0.00012D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,28),I=1,49)/
& 10.81038D0, 8.09822D0, 6.06522D0, 5.12048D0, 4.54007D0,
& 4.13500D0, 3.08954D0, 2.30121D0, 1.93196D0, 1.70343D0,
& 1.54082D0, 1.12100D0, 0.80336D0, 0.65594D0, 0.56579D0,
& 0.50334D0, 0.42032D0, 0.34528D0, 0.27377D0, 0.23019D0,
& 0.17582D0, 0.14022D0, 0.11347D0, 0.08735D0, 0.06690D0,
& 0.05067D0, 0.03795D0, 0.02804D0, 0.02043D0, 0.01468D0,
& 0.01043D0, 0.00733D0, 0.00506D0, 0.00348D0, 0.00235D0,
& 0.00155D0, 0.00105D0, 0.00071D0, 0.00043D0, 0.00029D0,
& 0.00018D0, 0.00011D0, 0.00007D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,29),I=1,49)/
& 11.65265D0, 8.68040D0, 6.46494D0, 5.44008D0, 4.81224D0,
& 4.37498D0, 3.25050D0, 2.40736D0, 2.01424D0, 1.77163D0,
& 1.59933D0, 1.15629D0, 0.82328D0, 0.66961D0, 0.57598D0,
& 0.51130D0, 0.42557D0, 0.34836D0, 0.27505D0, 0.23054D0,
& 0.17519D0, 0.13914D0, 0.11219D0, 0.08600D0, 0.06563D0,
& 0.04954D0, 0.03699D0, 0.02726D0, 0.01981D0, 0.01419D0,
& 0.01006D0, 0.00705D0, 0.00487D0, 0.00334D0, 0.00225D0,
& 0.00148D0, 0.00100D0, 0.00068D0, 0.00041D0, 0.00027D0,
& 0.00017D0, 0.00010D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,30),I=1,49)/
& 12.51775D0, 9.27489D0, 6.87071D0, 5.76340D0, 5.08688D0,
& 4.61667D0, 3.41161D0, 2.51293D0, 2.09575D0, 1.83900D0,
& 1.65698D0, 1.19078D0, 0.84258D0, 0.68277D0, 0.58574D0,
& 0.51889D0, 0.43052D0, 0.35121D0, 0.27618D0, 0.23078D0,
& 0.17451D0, 0.13804D0, 0.11091D0, 0.08467D0, 0.06438D0,
& 0.04844D0, 0.03605D0, 0.02651D0, 0.01920D0, 0.01373D0,
& 0.00970D0, 0.00677D0, 0.00468D0, 0.00321D0, 0.00215D0,
& 0.00142D0, 0.00096D0, 0.00064D0, 0.00040D0, 0.00026D0,
& 0.00017D0, 0.00010D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,31),I=1,49)/
& 13.38188D0, 9.86555D0, 7.27170D0, 6.08188D0, 5.35680D0,
& 4.85378D0, 3.56878D0, 2.61532D0, 2.17453D0, 1.90394D0,
& 1.71244D0, 1.22374D0, 0.86087D0, 0.69518D0, 0.59491D0,
& 0.52599D0, 0.43513D0, 0.35383D0, 0.27719D0, 0.23095D0,
& 0.17383D0, 0.13697D0, 0.10968D0, 0.08342D0, 0.06322D0,
& 0.04742D0, 0.03518D0, 0.02580D0, 0.01865D0, 0.01331D0,
& 0.00937D0, 0.00652D0, 0.00451D0, 0.00308D0, 0.00206D0,
& 0.00136D0, 0.00092D0, 0.00061D0, 0.00038D0, 0.00024D0,
& 0.00016D0, 0.00010D0, 0.00006D0, 0.00002D0, 0.00001D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,32),I=1,49)/
& 14.22455D0, 10.43853D0, 7.65861D0, 6.38821D0, 5.61583D0,
& 5.08091D0, 3.71848D0, 2.71227D0, 2.24884D0, 1.96503D0,
& 1.76449D0, 1.25443D0, 0.87775D0, 0.70654D0, 0.60325D0,
& 0.53242D0, 0.43925D0, 0.35613D0, 0.27800D0, 0.23100D0,
& 0.17312D0, 0.13592D0, 0.10849D0, 0.08223D0, 0.06212D0,
& 0.04645D0, 0.03438D0, 0.02514D0, 0.01814D0, 0.01292D0,
& 0.00909D0, 0.00631D0, 0.00435D0, 0.00297D0, 0.00198D0,
& 0.00130D0, 0.00088D0, 0.00059D0, 0.00036D0, 0.00023D0,
& 0.00015D0, 0.00009D0, 0.00006D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,33),I=1,49)/
& 15.12220D0, 11.04609D0, 8.06700D0, 6.71068D0, 5.88799D0,
& 5.31921D0, 3.87481D0, 2.81304D0, 2.32586D0, 2.02823D0,
& 1.81825D0, 1.28597D0, 0.89499D0, 0.71812D0, 0.61173D0,
& 0.53894D0, 0.44342D0, 0.35844D0, 0.27882D0, 0.23104D0,
& 0.17241D0, 0.13488D0, 0.10730D0, 0.08105D0, 0.06103D0,
& 0.04549D0, 0.03359D0, 0.02450D0, 0.01765D0, 0.01253D0,
& 0.00880D0, 0.00610D0, 0.00420D0, 0.00286D0, 0.00191D0,
& 0.00125D0, 0.00083D0, 0.00057D0, 0.00034D0, 0.00022D0,
& 0.00014D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,34),I=1,49)/
& 16.02044D0, 11.65091D0, 8.47137D0, 7.02895D0, 6.15599D0,
& 5.55343D0, 4.02757D0, 2.91088D0, 2.40036D0, 2.08916D0,
& 1.86995D0, 1.31603D0, 0.91125D0, 0.72894D0, 0.61960D0,
& 0.54494D0, 0.44718D0, 0.36046D0, 0.27943D0, 0.23094D0,
& 0.17160D0, 0.13377D0, 0.10610D0, 0.07985D0, 0.05994D0,
& 0.04455D0, 0.03282D0, 0.02388D0, 0.01715D0, 0.01216D0,
& 0.00853D0, 0.00590D0, 0.00405D0, 0.00275D0, 0.00184D0,
& 0.00120D0, 0.00080D0, 0.00054D0, 0.00033D0, 0.00021D0,
& 0.00013D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,35),I=1,49)/
& 16.92092D0, 12.25466D0, 8.87333D0, 7.34454D0, 6.42124D0,
& 5.78493D0, 4.17791D0, 3.00675D0, 2.47316D0, 2.14860D0,
& 1.92031D0, 1.34518D0, 0.92693D0, 0.73935D0, 0.62715D0,
& 0.55068D0, 0.45078D0, 0.36238D0, 0.28002D0, 0.23083D0,
& 0.17082D0, 0.13273D0, 0.10496D0, 0.07873D0, 0.05891D0,
& 0.04367D0, 0.03209D0, 0.02331D0, 0.01669D0, 0.01182D0,
& 0.00827D0, 0.00571D0, 0.00391D0, 0.00265D0, 0.00178D0,
& 0.00117D0, 0.00077D0, 0.00052D0, 0.00031D0, 0.00020D0,
& 0.00012D0, 0.00008D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,36),I=1,49)/
& 17.79951D0, 12.84117D0, 9.26208D0, 7.64895D0, 6.67663D0,
& 6.00749D0, 4.32176D0, 3.09803D0, 2.54226D0, 2.20489D0,
& 1.96790D0, 1.37254D0, 0.94153D0, 0.74899D0, 0.63410D0,
& 0.55594D0, 0.45404D0, 0.36409D0, 0.28048D0, 0.23067D0,
& 0.17006D0, 0.13172D0, 0.10387D0, 0.07767D0, 0.05796D0,
& 0.04286D0, 0.03142D0, 0.02277D0, 0.01627D0, 0.01150D0,
& 0.00803D0, 0.00554D0, 0.00379D0, 0.00256D0, 0.00172D0,
& 0.00113D0, 0.00074D0, 0.00050D0, 0.00030D0, 0.00019D0,
& 0.00012D0, 0.00007D0, 0.00005D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,37),I=1,49)/
& 18.71000D0, 13.44641D0, 9.66151D0, 7.96092D0, 6.93787D0,
& 6.23483D0, 4.46802D0, 3.19039D0, 2.61196D0, 2.26153D0,
& 2.01571D0, 1.39986D0, 0.95599D0, 0.75847D0, 0.64090D0,
& 0.56106D0, 0.45717D0, 0.36568D0, 0.28085D0, 0.23044D0,
& 0.16924D0, 0.13067D0, 0.10276D0, 0.07660D0, 0.05700D0,
& 0.04204D0, 0.03075D0, 0.02224D0, 0.01586D0, 0.01118D0,
& 0.00780D0, 0.00537D0, 0.00367D0, 0.00247D0, 0.00167D0,
& 0.00108D0, 0.00071D0, 0.00047D0, 0.00029D0, 0.00018D0,
& 0.00011D0, 0.00006D0, 0.00004D0, 0.00002D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
DATA (FMRS(2,8,I,38),I=1,49)/
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0,
& 0.00000D0, 0.00000D0, 0.00000D0, 0.00000D0/
END
CDECK ID>, HWUDKL.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWUDKL(ID,PMOM,DISP)
C-----------------------------------------------------------------------
C Given a real or virtual particle, flavour ID and 4-momentum PMOM,
C returns DISP its distance travelled in mm.
C
C Modified 16/01/01 by BRW to force particle on mass shell if
C p^2-m^2 < 10^-10 GeV^2 (rounding errors)
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,PMOM(4),DISP(4),PMOM2,SCALE,OFFSH
INTEGER ID
EXTERNAL HWRGEN
PMOM2=(PMOM(4)+PMOM(3))*(PMOM(4)-PMOM(3))-PMOM(1)**2-PMOM(2)**2
OFFSH=PMOM2-RMASS(ID)**2
IF (OFFSH.LT.1D-10) OFFSH=ZERO
SCALE=-GEV2MM*LOG(HWRGEN(0))/SQRT(OFFSH**2+(PMOM2/DKLTM(ID))**2)
IF (ID.GT.197.AND.ID.LT.203) SCALE=SCALE*EXAG
CALL HWVSCA(4,SCALE,PMOM,DISP)
END
C-----------------------------------------------------------------------
CDECK ID>, HWUDKS.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWUDKS
C-----------------------------------------------------------------------
C Sets up internal pointers based on the decay table in HWUDAT or as
C supplied via HWIODK. Computes CoM momenta of two-body decay modes.
C Particles with long lifetimes or no allowed decay (excepting light
C b hadrons when CLEO/EURODEC decays requested) are set stable, else
C calculate DKLTM(I) = mass/width ( = mass * lifetime/hbar).
C Gives warnings if: a particle has no decay modes or antiparticle's
C modes are not the charge conjugates of the particles.
C (N.B. CP violation permits this).
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUPCM,HWUAEM,HWUALF,BRSUM,EPS,SCALE,
& BRTMP(NMXDKS),FN,X,W,Q,FAC
INTEGER HWUANT,I,IDKY,LAST,LTMP(NMXMOD),J,L,K,M,N,INDX(NMXMOD),
& IRES,IAPDG,IPART,LR,LP,KPRDLR
LOGICAL BPDK,TOPDKS,MATCH(5),PMATCH(NMXMOD),IFGO
CHARACTER*7 CVETO(2)
CHARACTER*8 CDUM
EXTERNAL HWUPCM,HWUAEM,HWUALF,HWUANT
PARAMETER(EPS=1.E-6)
FN(X,Q,W)=X**4/(((X*X-Q*Q)**2+W*W*(X*X+Q*Q)-2.*W**4)
& *SQRT(X**4+Q**4+W**4-2.*(X*X*Q*Q+X*X*W*W+Q*Q*W*W)))
WRITE(6,10)
10 FORMAT(/10X,'Checking consistency of decay tables'/)
DKPSET=.TRUE.
C First zero arrays
DO 20 I=1,NMXRES
LSTRT(I)=0
20 NMODES(I)=0
DO 30 I=1,NMXDKS
NPRODS(I)=0
LNEXT(I)=0
30 CMMOM(I)=0
BPDK=BDECAY.NE.'HERW'
DO 180 I=1,NDKYS
C Search for next decaying particle type
IDKY=IDK(I)
C Skip if particle is not recognised or already dealt with
IF (IDKY.EQ.0.OR.IDKY.EQ.20) THEN
WRITE(6,40) I
40 FORMAT(1X,'Line ',I4,': decaying particle not recognised')
GOTO 180
ENDIF
IF (NMODES(IDKY).GT.0) GOTO 180
C Check and include first decay mode, storing a copy
CALL HWDCHK(IDKY,I,IFGO)
IF(IFGO) GOTO 180
LSTRT(IDKY)=I
NMODES(IDKY)=1
BRSUM=BRFRAC(I)
LTMP(1)=I
BRTMP(1)=-BRFRAC(I)
LAST=I
C Sets CMMOM(IDKY) = CoM momentum for first 2-body decay mode I (else 0)
IF (NPRODS(I).EQ.2) CMMOM(I)=
& HWUPCM(RMASS(IDKY),RMASS(IDKPRD(1,I)),RMASS(IDKPRD(2,I)))
C Include any other decay modes of IDKY
DO 120 J=I+1,NDKYS
IF (IDK(J).EQ.IDKY) THEN
C First see if it is a copy of the same decay channel
IF ((IDKPRD(2,J).GE.1.AND.IDKPRD(2,J).LE.13).OR.
& (IDKPRD(3,J).GE.1.AND.IDKPRD(3,J).LE.13)) THEN
C Partonic respect order
L=LSTRT(IDKY)
DO 50 K=1,NMODES(IDKY)
IF (IDKPRD(1,L).EQ.IDKPRD(1,J).AND.
& IDKPRD(2,L).EQ.IDKPRD(2,J).AND.
& IDKPRD(3,L).EQ.IDKPRD(3,J).AND.
& IDKPRD(4,L).EQ.IDKPRD(4,J).AND.
& IDKPRD(5,L).EQ.IDKPRD(5,J)) GOTO 100
50 L=LNEXT(L)
ELSE
C Allow for different order in matching
L=LSTRT(IDKY)
DO 90 K=1,NMODES(IDKY)
DO 60 M=1,5
60 MATCH(M)=.FALSE.
DO 80 M=1,5
DO 70 N=1,5
IF (.NOT.MATCH(N).AND.IDKPRD(N,L).EQ.IDKPRD(M,J)) THEN
MATCH(N)=.TRUE.
GOTO 80
ENDIF
70 CONTINUE
80 CONTINUE
IF (MATCH(1).AND.MATCH(2).AND.MATCH(3).AND.
& MATCH(4).AND.MATCH(5)) GOTO 100
90 L=LNEXT(L)
ENDIF
CALL HWDCHK(IDKY,J,IFGO)
IF(IFGO) GOTO 120
NMODES(IDKY)=NMODES(IDKY)+1
IF (NMODES(IDKY).GT.NMXMOD) THEN
CALL HWWARN('HWUDKS',100)
GOTO 999
ENDIF
LNEXT(LAST)=J
BRSUM=BRSUM+BRFRAC(J)
LTMP(NMODES(IDKY))=J
BRTMP(NMODES(IDKY))=-BRFRAC(J)
LAST=J
C Sets CMMOM(IDKY) = CoM momentum for next 2-body decay mode J (else 0)
IF (NPRODS(J).EQ.2) CMMOM(J)=
& HWUPCM(RMASS(IDKY),RMASS(IDKPRD(1,J)),RMASS(IDKPRD(2,J)))
ENDIF
GOTO 120
100 WRITE(6,110) L,J,BRFRAC(J),NME(J)
BRSUM=BRSUM-BRFRAC(L)+BRFRAC(J)
BRFRAC(L)=BRFRAC(J)
BRTMP(L)=-BRFRAC(L)
NME(L)=NME(J)
110 FORMAT(1X,'Line ',I4,' is the same as line ',I4/
& 1X,'Take BR ',F5.3,' and ME code ',I3,' from second entry')
120 CONTINUE
C Set sum of branching ratios to 1. if necessary
IF (ABS(BRSUM-1.).GT.EPS) THEN
WRITE(6,130) RNAME(IDKY),BRSUM
130 FORMAT(1X,A8,': BR sum =',F8.5)
IF (ABS(BRSUM).LT.EPS) THEN
WRITE(6,140)
140 FORMAT(1X,'Setting particle stable'/)
NMODES(IDKY)=0
ELSE
WRITE(6,150)
150 FORMAT(1X,'Rescaling to 1'/)
SCALE=1./BRSUM
K=LSTRT(IDKY)
DO 160 J=1,NMODES(IDKY)
BRFRAC(K)=SCALE*BRFRAC(K)
160 K=LNEXT(K)
ENDIF
ENDIF
C Sort branching ratios into descending order and rearrange pointers
CALL HWUSOR(BRTMP,NMODES(IDKY),INDX,2)
LSTRT(IDKY)=LTMP(INDX(1))
LNEXT(LTMP(INDX(1)))=LTMP(INDX(1))
DO 170 J=2,NMODES(IDKY)
IF (ABS(BRFRAC(LTMP(INDX(J)))).LT.EPS) THEN
NMODES(IDKY)=J-1
GOTO 175
ENDIF
170 LNEXT(LTMP(INDX(J-1)))=LTMP(INDX(J))
175 LNEXT(LTMP(INDX(NMODES(IDKY))))=LTMP(INDX(NMODES(IDKY)))
180 CONTINUE
C If not a short lived particle with a decay mode then set stable
DO 190 I=1,NRES
IF (.NOT.RSTAB(I).AND.RLTIM(I).LT.PLTCUT.AND.
& (NMODES(I).GT.0.OR.
& (BPDK.AND.((I.GE.221.AND.I.LE.231).OR.
& (I.GE.245.AND.I.LE.254))))) THEN
DKLTM(I)=RLTIM(I)*RMASS(I)/HBAR
ELSE
RSTAB(I)=.TRUE.
ENDIF
190 CONTINUE
C Set up DKLTM for light quarks
DO 200 I=1,5
DKLTM(I)=RMASS(I)**2/VMIN2
200 DKLTM(I+6)=DKLTM(I)
C gluon
DKLTM(13)=RMASS(13)**2/VMIN2
C and diquarks
DO 210 I=109,114
DKLTM(I)=RMASS(I)**2/VMIN2
210 DKLTM(I+6)=DKLTM(I)
C Set up DKLTM for weak bosons
DKLTM(198)=RMASS(198)/GAMW
DKLTM(199)=DKLTM(198)
DKLTM(200)=RMASS(200)/GAMZ
DKLTM(201)=RMASS(201)/GAMH
DKLTM(202)=RMASS(202)/GAMZP
C Set up DKTRM for massive quarks (plus check m_Q > M_W + m_q)
FAC=SWEIN*(FOUR*RMASS(198))**2/HWUAEM(RMASS(198)**2)
IF (.NOT.SUSYIN) THEN
IF (RMASS(6).GT.RMASS(5)+RMASS(198)) THEN
DKLTM(6)=FAC*FN(RMASS(6 ),RMASS(5 ),RMASS(198))
& /(1-HWUALF(1,RMASS(6))*2*(2*PIFAC**2/3-5/2)/(3*PIFAC))
DKLTM(12)=DKLTM(6)
ELSE
WRITE(6,220) RNAME(6),RNAME(5),RNAME(198)
ENDIF
ENDIF
IF (RMASS(209).GT.RMASS(4)+RMASS(198)) THEN
DKLTM(209)=FAC*FN(RMASS(209),RMASS(4 ),RMASS(198))
DKLTM(215)=DKLTM(209)
ELSE
WRITE(6,220) RNAME(209),RNAME(4),RNAME(198)
ENDIF
IF (RMASS(210).GT.RMASS(209)+RMASS(198)) THEN
DKLTM(210)=FAC*FN(RMASS(210),RMASS(209),RMASS(198))
DKLTM(216)=DKLTM(210)
ELSE
WRITE(6,220) RNAME(210),RNAME(209),RNAME(198)
ENDIF
IF (RMASS(211).GT.RMASS(6)+RMASS(198)) THEN
DKLTM(211)=FAC*FN(RMASS(211),RMASS(6 ),RMASS(198))
DKLTM(217)=DKLTM(211)
ELSE
WRITE(6,220) RNAME(211),RNAME(6),RNAME(198)
ENDIF
IF (RMASS(212).GT.RMASS(211)+RMASS(198)) THEN
DKLTM(212)=FAC*FN(RMASS(212),RMASS(211),RMASS(198))
DKLTM(218)=DKLTM(212)
ELSE
WRITE(6,220) RNAME(212),RNAME(211),RNAME(198)
ENDIF
220 FORMAT(1X,'W not real in the decay: ',A8,' --> ',A8,' + ',A8)
C Now carry out diagnostic checks on decay table
CALL HWDTOP(TOPDKS)
DO 310 IRES=1,NRES
IAPDG=ABS(IDPDG(IRES))
C Do not check (di-)quarks, gauge bosons, higgses or special particles
IF ((IAPDG.GE.1.AND.IAPDG.LE.9).OR.
& (MOD(IAPDG/10,10).EQ.0.AND.MOD(IAPDG/1000,10).NE.0).OR.
& (IAPDG.GE.21.AND.IAPDG.LE.26).OR.
& IAPDG.EQ.32.OR.
& (IAPDG.GE.35.AND.IAPDG.LE.37).OR.
& IAPDG.EQ.91.OR.
& IAPDG.EQ.98.OR.IAPDG.EQ.99) THEN
GOTO 310
C Ignore top hadrons if top decays
ELSEIF(TOPDKS.AND.((IRES.GE.232.AND.IRES.LE.244).OR.
& (IRES.GE.255.AND.IRES.LE.264))) THEN
GOTO 310
C Ignore particles not produced in cluster or particle decays
ELSEIF(VTOCDK(IRES).AND.VTORDK(IRES)) THEN
GOTO 310
C Ignore B's if EURO or CLEO decay package used
ELSEIF(((IRES.GE.221.AND.IRES.LE.223).OR.
& (IRES.GE.245.AND.IRES.LE.247)).AND.BDECAY.NE.'HERW') THEN
WRITE(6,320) BDECAY,RNAME(IRES)
C Check decay modes exist for massive, short lived particles
ELSEIF (NMODES(IRES).EQ.0.AND.RMASS(IRES).NE.ZERO.AND.
& RLTIM(IRES).LT.PLTCUT) THEN
IF (VTOCDK(IRES)) THEN
CVETO(1)='VETOED '
ELSE
CVETO(1)='ALLOWED'
ENDIF
IF (VTORDK(IRES)) THEN
CVETO(2)='VETOED '
ELSE
CVETO(2)='ALLOWED'
ENDIF
WRITE(6,330) RNAME(IRES),CVETO(1),CVETO(2)
C ignore particles with no modes if massless or long lived
ELSEIF (NMODES(IRES).EQ.0.AND.
& (RMASS(IRES).EQ.ZERO.OR.RLTIM(IRES).GT.PLTCUT)) THEN
GOTO 310
ELSEIF (IDPDG(IRES).LT.0) THEN
C Antiparticle: check decays are charge conjugates of particle decays
CALL HWUIDT(1,-IDPDG(IRES),IPART,CDUM)
IF (NMODES(IPART).EQ.0) THEN
C Nothing to compare to
WRITE(6,340) RNAME(IPART),RNAME(IRES)
ELSE
C First initialize particle matching array
DO 230 I=1,NMODES(IPART)
230 PMATCH(I)=.FALSE.
C Loop through antiparticle decay modes
LR=LSTRT(IRES)
DO 290 I=1,NMODES(IRES)
C Search for conjugate mode allowing for different particle order
LP=LSTRT(IPART)
DO 270 J=1,NMODES(IPART)
IF (PMATCH(J)) GOTO 270
DO 240 K=1,5
240 MATCH(K)=.FALSE.
DO 260 K=1,5
KPRDLR=HWUANT(IDKPRD(K,LR))
DO 250 L=1,5
IF (.NOT.MATCH(L).AND.KPRDLR.EQ.IDKPRD(L,LP) ) THEN
MATCH(L)=.TRUE.
GOTO 260
ENDIF
250 CONTINUE
260 CONTINUE
IF (MATCH(1).AND.MATCH(2).AND.MATCH(3).AND.
& MATCH(4).AND.MATCH(5)) GOTO 280
270 LP=LNEXT(LP)
C No match found
WRITE(6,350) LR,RNAME(IRES),(RNAME(IDKPRD(J,LR)),J=1,5)
GOTO 290
C Match found, check branching ratios and matrix element codes
280 PMATCH(J)=.TRUE.
IF (BRFRAC(LR).NE.BRFRAC(LP))
& WRITE(6,360) LR,RNAME(IRES),(RNAME(IDKPRD(J,LR)),J=1,5),
& BRFRAC(LR),BRFRAC(LP)
IF (NME(LR).NE.NME(LP))
& WRITE(6,370) LR,RNAME(IRES),(RNAME(IDKPRD(J,LR)),J=1,5),
& NME(LR),NME(LP)
290 LR=LNEXT(LR)
C Check for unmatched modes of particle conjugate to antiparticle
LP=LSTRT(IPART)
DO 300 I=1,NMODES(IPART)
IF (.NOT.PMATCH(I))
& WRITE(6,350) LP,RNAME(IPART),(RNAME(IDKPRD(J,LP)),J=1,5)
300 LP=LNEXT(LP)
ENDIF
ENDIF
310 CONTINUE
320 FORMAT(1X,A8,' decay package to be used for particle ',A8)
330 FORMAT(1X,'No decay modes available for particle ',A8/
& 1X,'Production in cluster decays ',A7,' and particle decays ',A7)
340 FORMAT(1X,A8,' has no modes conjugate to those of ',A8)
350 FORMAT(1X,'Line, ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'A charge conjugate decay mode does not exist')
360 FORMAT(1X,'Line, ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'BR ',F5.3,' unequal to that of conjugate mode ',F5.3)
370 FORMAT(1X,'Line, ',I4,' decay: ',A8,' --> ',4(A8,1X),A8/
& 1X,'ME code ',I3,' unequal to that of conjugate mode ',I3)
999 RETURN
END
CDECK ID>, HWUDPR.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles, Bryan Webber & Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWUDPR
C-----------------------------------------------------------------------
C Prints out particle properies/decay tables in a number of formats:
C If (PRNDEF) ASCII to stout
C If (PRNTEX) LaTeX to the file HW_decays.tex
C Paper size and offsets as set in HWUEPR
C Uses the package longtable.sty
C Designed to be printed as landscape
C If (PRNWEB) HTML to the file HW_decays/index.html
C /PART0000001.html etc.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER MMWIDE,MMLONG,MMHOFF,MMVOFF,IUNITT,IUNTW1,IUNTW2,I,NM,J,K,
& L,M
CHARACTER*1 Z
CHARACTER*2 ZZ,ACHRG
CHARACTER*3 ASPIN(0:10)
CHARACTER*6 BGCOLS(5),TBCOLS(3)
CHARACTER*7 HWUNST,TMPNME
CHARACTER*17 FNAMEP
CHARACTER*33 FNAMEW
COMMON/PAPER/MMWIDE,MMLONG,MMHOFF,MMVOFF
EXTERNAL HWUNST
SAVE BGCOLS,TBCOLS,ASPIN
DATA BGCOLS/'ffffff','0000aa','aa0000','00aa00','aa00ff'/
DATA TBCOLS/'ccccff','9966ff','ffff00'/
DATA ASPIN/' 0 ','1/2',' 1 ','3/2',' 2 ','5/2',' 3 ','7/2',
& ' 4 ','9/2',' 5 '/
C
Z=CHAR(92)
ZZ=Z//Z
C
IUNITT=50
IUNTW1=51
IUNTW2=52
C Open and write out file header information for index file
IF (PRNDEF) THEN
IF (NPRFMT.LE.1) THEN
WRITE (6,10) NRES
ELSE
WRITE (6,20) NRES
END IF
END IF
IF (PRNTEX) THEN
OPEN(IUNITT,STATUS='UNKNOWN',FILE='HW_decays.tex')
IF (NPRFMT.LE.1) THEN
WRITE(IUNITT,30) Z,Z,Z,MMWIDE,Z,MMLONG,Z,MMHOFF,Z,MMVOFF,
& Z,Z,Z,Z,Z,ZZ,Z,Z,Z,Z,Z,Z,NRES,ZZ,Z,Z,ZZ,Z,Z
ELSE
WRITE(IUNITT,40) Z,Z,Z,MMLONG,Z,MMWIDE,Z,MMHOFF,Z,MMVOFF,
& Z,Z,Z,Z,Z,Z,ZZ,Z,Z,Z,Z,Z,Z,NRES,ZZ,Z,Z,Z,ZZ,Z,Z
END IF
ENDIF
IF (PRNWEB) THEN
OPEN(IUNTW1,STATUS='UNKNOWN',FILE='HW_decays/index.html')
WRITE(IUNTW1,50) BGCOLS,TBCOLS,NRES,((TBCOLS(I),I=2,3),J=1,7)
ENDIF
10 FORMAT(1H1//15X,'TABLE OF PROPERTIES OF',I4,' PARTICLES USED'/)
20 FORMAT(1H1//30X,'TABLE OF PROPERTIES OF',I4,' PARTICLES USED'//
& 5X,'Name IDPDG Mass Chg Spn Lifetime Modes ',
& ' Branching fractions ME codes and decay products')
30 FORMAT(A1,'documentclass{article}'/A1,'usepackage{longtable}'/
& A1,'textwidth ',I4,'mm ',A1,'textheight ',I4,'mm'/
& A1,'hoffset ',I4,'mm ',A1,'voffset ',I4,'mm'/
& A1,'pagestyle{empty}'/A1,'begin{document}'/
& A1,'begin{center}'/A1,'begin{longtable}{|r|c|r|r|r|r|r|r|}'/
& A1,'hline'/'Id HW & Name & Id PDG & Mass & Charge & Spin ',
& '& Lifetime & Modes ',A2/A1,'hline'/
& A1,'endhead'/A1,'hline'/A1,'endfoot'/A1,'hline'/
& A1,'multicolumn{8}{|c|}{HERWIG 6.5: Table of properties',
& ' of the ',I3,' particles used} ',A2/A1,'hline',A1,'hline'/
& 'Id HW & Name & Id PDG & Mass & Charge & Spin & ',
& 'Lifetime & Modes ',A2/A1,'hline'/A1,'endfirsthead')
40 FORMAT(A1,'documentclass{article}'/A1,'usepackage{longtable}'/
& A1,'textwidth ',I4,'mm ',A1,'textheight ',I4,'mm'/
& A1,'hoffset ',I4,'mm ',A1,'voffset ',I4,'mm'/
& A1,'pagestyle{empty}'/A1,'begin{document}'/A1,'begin{center}'/
& A1,'begin{longtable}{|r|c|r|r|r|r|r|r|c|r|ccccc|}'/
& A1,'hline'/'Id HW & Name & Id PDG & Mass & Charge & Spin ',
& '& Lifetime & Modes & B.R. & M.E. & ' /
& A1,'multicolumn{5}{|c|}{Decay Products} ',A2/A1,'hline'/
& A1,'endhead'/A1,'hline'/A1,'endfoot'/A1,'hline'/
& A1,'multicolumn{15}{|c|}{HERWIG 6.5: Table of properties',
& ' of the ',I3,' particles used} ',A2/A1,'hline',A1,'hline'/
& 'Id HW & Name & Id PDG & Mass & Charge & Spin & ',
& 'Lifetime & Modes & B.R. & M.E. & '/
& A1,'multicolumn{5}{|c|}{Decay Products} ',A2/A1,'hline'/
& A1,'endfirsthead')
50 FORMAT(''/''/''/
& 'HERWIG 6.5 Particle Properties'/''/
& ''/''/
& '',
& ''/'',
& '',
& 'HERWIG 6.5: Table of properties of',
& ' the ',I3,' particles used | '/'
'/' | '/
& 'Name | '/
& '',
& 'Id PDG | '/
& 'Mass | '/
& 'Charge | '/
& 'Spin | '/
& 'Lifetime | '/
& 'Modes | '/
& '
')
C Loop through resonances
DO 260 I=1,NRES
C Skip particles that can't be produced or blank lines
IF ((VTOCDK(I).AND.VTORDK(I)).OR.
& (RNAME(I).EQ.' ')) GOTO 260
C Open and write out header information for particle file
IF (PRNWEB) THEN
TMPNME = HWUNST(I)
WRITE(FNAMEP,'(A5,A7,A5)') 'PART_',TMPNME,'.html'
WRITE(FNAMEW,'(A,A17)') 'HW_decays/',FNAMEP
OPEN(IUNTW2,STATUS='UNKNOWN',FILE=FNAMEW)
WRITE(IUNTW2,60) RNAME(I),BGCOLS
WRITE(IUNTW2,70) TBCOLS,((TBCOLS(L),L=2,3),M=1,6)
ENDIF
60 FORMAT(''/''/''/
& 'HERWIG 6.5: ',A8,' properties'/''/
& ''/'')
70 FORMAT(''/
& ''/' | '/
& 'Name | '/
& 'Id PDG | '/
& 'Mass | '/
& 'Charge | '/
& 'Spin | '/
& 'Lifetime | '/
& 'Modes | '/
& '
')
C Trick to output charge in fractions for di/s - quarks
IF ((I.GE. 1.AND.I.LE. 12).OR.(I.GE.109.AND.I.LE.120).OR.
& (I.GE.209.AND.I.LE.218).OR.(I.GE.401.AND.I.LE.424)) THEN
ACHRG='/3'
ELSE
ACHRG=' '
ENDIF
C Write out special particles with no decay modes
IF (NMODES(I).EQ.0) THEN
IF (PRNDEF) THEN
IF (NPRFMT.LE.1) THEN
WRITE(6,80) I,RNAME(I),IDPDG(I),RMASS(I),ICHRG(I),
& ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),0
ELSE
WRITE(6,90) I,RNAME(I),IDPDG(I),RMASS(I),ICHRG(I),
& ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),0
ENDIF
ENDIF
C Add particle to LaTeX file
IF (PRNTEX) THEN
IF (NPRFMT.LE.1) THEN
WRITE(IUNITT,100) Z,I,TXNAME(1,I),IDPDG(I),RMASS(I),
& ICHRG(I),ACHRG,ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),0,ZZ
ELSE
WRITE(IUNITT,110) Z,I,TXNAME(1,I),IDPDG(I),RMASS(I),
& ICHRG(I),ACHRG,ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),0,Z,ZZ
ENDIF
ENDIF
IF (PRNWEB) THEN
C Add properties to Web index
WRITE(IUNTW1,120) TBCOLS(2),TBCOLS(3),I,FNAMEP,TXNAME(2,I),
& IDPDG(I),RMASS(I),ICHRG(I),ACHRG,
& ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),0
C Add properties to Web particle file
WRITE(IUNTW2,130) TBCOLS(2),TBCOLS(3),I,TXNAME(2,I),
& IDPDG(I),RMASS(I),ICHRG(I),ACHRG,
& ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),0
ENDIF
80 FORMAT(/1X,I3,1X,A8,' IDPDG=',I8,', M=',F8.3,', Q=',I2,', J=',
& A3,', T=',1P,E9.3,',',I3,' Modes')
90 FORMAT(/1X,I3,1X,A8,1X,I8,1X,F8.3,1X,I2,1X,A3,1X,1P,E9.3,1X,I3)
100 FORMAT(A1,'hline',I4,' & ',A37,' & $',I8,'$ & ',F8.3,' & $',I2,
& A2,'$ & ',A3,' & $',1P,E9.3,'$ & ',I3,' ',A2)
110 FORMAT(A1,'cline{1-8}'/
& I4,' & ',A37,' & $',I8,'$ & ',F8.3,' & $',I2,A2,'$ & ',A3,
& ' & $',1P,E9.3,'$ & ',I3,' & ',A1,'multicolumn{7}{|c|}{} ',A2)
120 FORMAT(''/
& '',I3,
& ' | '/
& '',A37,' | '/
& '',I8,' | '/
& '',F8.3,' | '/
& '',I2,A2,' | '/
& '',A3,' | '/
& '',1P,E9.3,' | '/
& '',I3,' | '/'
')
130 FORMAT(''/
& '',I3,
& ' | '/
& '',A37,' | '/
& '',I8,' | '/
& '',F8.3,' | '/
& '',I2,A2,' | '/
& '',A3,' | '/
& '',1P,E9.3,' | '/
& '',I3,' | '/'
'/'
'/'')
ELSE
C Particle with decay modes
IF (RSTAB(I)) THEN
NM=0
ELSEIF (VTOCDK(I)) THEN
NM=-NMODES(I)
ELSE
NM=NMODES(I)
ENDIF
K=LSTRT(I)
C Write out properties and first decay mode
IF (PRNDEF) THEN
IF (NPRFMT.LE.1) THEN
WRITE(6, 80) I,RNAME(I),IDPDG(I),RMASS(I),ICHRG(I),
& ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),NM
WRITE(6,140) (RNAME(IDKPRD(L,K)),L=1,5),BRFRAC(K),NME(K)
ELSE
WRITE(6,150) I,RNAME(I),IDPDG(I),RMASS(I),ICHRG(I),
& ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),NM,BRFRAC(K),NME(K),
& (RNAME(IDKPRD(L,K)),L=1,5)
ENDIF
ENDIF
IF (PRNTEX) THEN
IF (NPRFMT.LE.1) THEN
WRITE(IUNITT,160) Z,I,TXNAME(1,I),IDPDG(I),RMASS(I),
& ICHRG(I),ACHRG,ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),NM,ZZ,Z
WRITE(IUNITT,170) Z,Z,(TXNAME(1,IDKPRD(L,K)),L=1,5),Z,
& BRFRAC(K),Z,NME(K),ZZ
ELSE
WRITE(IUNITT,180) Z,I,TXNAME(1,I),IDPDG(I),RMASS(I),
& ICHRG(I),ACHRG,ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),NM,
& BRFRAC(K),NME(K),(TXNAME(1,IDKPRD(L,K)),L=1,5),ZZ,Z
ENDIF
END IF
IF (PRNWEB) THEN
C Add properties to index
WRITE(IUNTW1,120) TBCOLS(2),TBCOLS(3),I,FNAMEP,TXNAME(2,I),
& IDPDG(I),RMASS(I),ICHRG(I),ACHRG,ASPIN(INT(TWO*RSPIN(I))),
& RLTIM(I),NM
C Add properties to Web particle file
WRITE(IUNTW2,130) TBCOLS(2),TBCOLS(3),I,TXNAME(2,I),IDPDG(I),
& RMASS(I),ICHRG(I),ACHRG,ASPIN(INT(TWO*RSPIN(I))),RLTIM(I),NM
WRITE(IUNTW2,190) TBCOLS,TXNAME(2,I),
& ((TBCOLS(L),L=2,3),M=1,3)
WRITE(IUNTW2,200) TBCOLS(2),TBCOLS(3),1,BRFRAC(K),NME(K),
& (TXNAME(2,IDKPRD(L,K)),L=1,5)
ENDIF
140 FORMAT(5X,'BR[ -->',5(1X,A8),']=',F5.3,', ME code',I5)
150 FORMAT(/1X,I3,1X,A8,1X,I8,1X,F8.3,1X,I2,1X,A3,1X,1P,E9.3,1X,I3,
& 2X,F5.3,1X,I3,5(1X,A8))
160 FORMAT(A1,'hline',
& I4,' & ',A37,' & $',I8,'$ & ',F8.3,' & $',I2,A2,'$ & ',
& A3,' & $',1P,E9.3,'$ & ',I3,' ',A2/A1,'cline{2-8}')
170 FORMAT(' & & ',A1,'multicolumn{2}{l}{$',A1,'longrightarrow$'/
& 5(A37,' '),'}'/' & ',A1,'multicolumn{2}{l}{BR = ',F5.3,'} & ',
& A1,'multicolumn{2}{l|}{ME code = ',I3,'} ',A2)
180 FORMAT(A1,'hline'/
& I4,' & ',A37,' & $',I8,'$ & ',F8.3,' & $',I2,A2,'$ & ',
& A3,' & $',1P,E9.3,'$ & ',I3,' & ',F5.3,' & ',I3,
& 5(' & ',A37), ' ',A2/A1,'cline{2-8}')
190 FORMAT('
'/''/
& '',A37,
& ' Decay Modes | '/'
'/''/' | ',
& 'B.R. | '/
& 'M.E. | '/
& '',
& 'Decay products | '/'
')
200 FORMAT(''/
& '',
& I3,' | '/
& '',F5.3,' | '/
& '',I3,' | '/
& 5('',A37,' | '/),'
')
C Write out additional decay modes
IF (NMODES(I).GE.2) THEN
DO 210 J=2,NMODES(I)
K=LNEXT(K)
IF (PRNDEF) THEN
IF (NPRFMT.LE.1) THEN
WRITE(6,140) (RNAME(IDKPRD(L,K)),L=1,5),BRFRAC(K),NME(K)
ELSE
WRITE(6,220) BRFRAC(K),NME(K),(RNAME(IDKPRD(L,K)),L=1,5)
END IF
END IF
IF (PRNTEX) THEN
IF (NPRFMT.LE.1) THEN
WRITE(IUNITT,170) Z,Z,(TXNAME(1,IDKPRD(L,K)),L=1,5),Z,
& BRFRAC(K),Z,NME(K),ZZ
ELSE
WRITE(IUNITT,230) Z,BRFRAC(K),NME(K),
& (TXNAME(1,IDKPRD(L,K)),L=1,5),ZZ
ENDIF
ENDIF
IF (PRNWEB) WRITE(IUNTW2,200) TBCOLS(2),TBCOLS(3),J,
& BRFRAC(K),NME(K),(TXNAME(2,IDKPRD(L,K)),L=1,5)
210 CONTINUE
IF (PRNTEX.AND.NPRFMT.EQ.2.AND.NMODES(I+1).EQ.0)
& WRITE(IUNITT,240) Z
220 FORMAT(54X,F5.3,1X,I3,5(1X,A8))
230 FORMAT(' & ',A1,'multicolumn{7}{|c|}{} & ',F5.3,' & ',I3,
& 5(' & ',A37),' ',A2)
240 FORMAT(A1,'hline')
ENDIF
ENDIF
C Close Web particle file
IF (PRNWEB) THEN
WRITE(IUNTW2,250)
CLOSE(IUNTW2)
ENDIF
250 FORMAT('
'/''/''/
& 'Main particle index'/
& ''/'')
260 CONTINUE
C Close the LaTeX file
IF (PRNTEX) THEN
WRITE(IUNITT,270) Z,Z,Z
CLOSE(IUNITT)
ENDIF
C Close the index file
IF (PRNWEB) THEN
WRITE(IUNTW1,280)
CLOSE(IUNTW1)
ENDIF
270 FORMAT(A1,'end{longtable}'/A1,'end{center}'/A1,'end{document}')
280 FORMAT('
'/''/''/'')
END
CDECK ID>, HWUECM.
*CMZ :- -29/01/93 11.11.55 by Bryan Webber
*-- Author : Giovanni Abbiendi & Luca Stanco
C---------------------------------------------------------------------
FUNCTION HWUECM (S,M1QUAD,M2QUAD)
C-----------------------------------------------------------------------
C C.M. ENERGY OF A PARTICLE IN 1-->2 BRANCH, MAY BE SPACELIKE
C---------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWUECM,S,M1QUAD,M2QUAD
HWUECM = (S+M1QUAD-M2QUAD)/(2.D0*SQRT(S))
END
CDECK ID>, HWUEDT.
*CMZ :- -09/12/91 12.07.08 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWUEDT(N,IEDT)
C-----------------------------------------------------------------------
C EDIT THE EVENT RECORD
C IF N>0 DELETE THE N ENTRIES IN IEDT FROM EVENT RECORD
C IF N<0 INSERT LINES AFTER THE -N ENTRIES IN IEDT
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER N,IEDT(*),IMAP(0:NMXHEP),IHEP,I,J,I1,I2
COMMON /HWUMAP/IMAP
C---MOVE ENTRIES AND CALCULATE MAPPING OF POINTERS
IF (N.EQ.0) THEN
RETURN
ELSEIF (N.GT.0) THEN
I=1
I1=1
I2=NHEP
ELSE
I=NHEP-N
I1=NHEP
I2=1
ENDIF
DO 110 IHEP=I1,I2,SIGN(1,I2-I1)
IMAP(IHEP)=I
DO 100 J=1,ABS(N)
IF (IHEP.EQ.IEDT(J)) THEN
IF (N.GT.0) IMAP(IHEP)=0
I=I-1
IF (N.LT.0) IMAP(IHEP)=I
ENDIF
100 CONTINUE
IF (IMAP(IHEP).EQ.I .AND. IHEP.NE.I) THEN
ISTHEP(I)=ISTHEP(IHEP)
IDHW(I)=IDHW(IHEP)
IDHEP(I)=IDHEP(IHEP)
JMOHEP(1,I)=JMOHEP(1,IHEP)
JMOHEP(2,I)=JMOHEP(2,IHEP)
JDAHEP(1,I)=JDAHEP(1,IHEP)
JDAHEP(2,I)=JDAHEP(2,IHEP)
CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,I))
CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,I))
ISTHEP(IHEP)=0
IDHW(IHEP)=20
IDHEP(IHEP)=0
JMOHEP(1,IHEP)=0
JMOHEP(2,IHEP)=0
JDAHEP(1,IHEP)=0
JDAHEP(2,IHEP)=0
CALL HWVZRO(5,PHEP(1,IHEP))
CALL HWVZRO(4,VHEP(1,IHEP))
ENDIF
I=I+SIGN(1,N)
110 CONTINUE
NHEP=NHEP-N
C---RELABEL POINTERS, SETTING ANY WHICH WERE TO DELETED ENTRIES TO ZERO
IMAP(0)=0
DO 200 IHEP=1,NHEP
JMOHEP(1,IHEP)=IMAP(JMOHEP(1,IHEP))
JMOHEP(2,IHEP)=IMAP(JMOHEP(2,IHEP))
JDAHEP(1,IHEP)=IMAP(JDAHEP(1,IHEP))
JDAHEP(2,IHEP)=IMAP(JDAHEP(2,IHEP))
200 CONTINUE
END
CDECK ID>, HWUEEC.
*CMZ :- -26/04/91 14.22.30 by Federico Carminati
*-- Author : Bryan Webber and Ian Knowles
C-----------------------------------------------------------------------
SUBROUTINE HWUEEC(IL)
C-----------------------------------------------------------------------
C Loads cross-section coefficients, for kinematically open channels,
C in llbar-->qqbar; lepton label IL=1-6: e,nu_e,mu,nu_mu,tau,nu_tau.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION Q2
INTEGER IL,JL,IQ
Q2=EMSCA**2
JL=IL+10
MAXFL=0
TQWT=0.
DO 10 IQ=1,NFLAV
IF (EMSCA.GT.2.*RMASS(IQ)) THEN
MAXFL=MAXFL+1
MAPQ(MAXFL)=IQ
CALL HWUCFF(JL,IQ,Q2,CLQ(1,MAXFL))
TQWT=TQWT+CLQ(1,MAXFL)
ENDIF
10 CONTINUE
IF (MAXFL.EQ.0) CALL HWWARN('HWUEEC',100)
END
CDECK ID>, HWUEMV.
*CMZ :- -30/06/94 19.31.08 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWUEMV(N,IFROM,ITO)
C-----------------------------------------------------------------------
C MOVE A BLOCK OF ENTRIES IN THE EVENT RECORD
C N ENTRIES IN HEPEVT STARTING AT IFROM ARE MOVED TO AFTER ITO
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER N,IFROM,ITO,IMAP(0:NMXHEP),LFROM,LTO,I,IEDT(NMXHEP),IHEP,
$ JHEP,KHEP
COMMON /HWUMAP/IMAP
LFROM=IFROM
LTO=ITO
DO 100 I=1,N
100 IEDT(I)=LTO
CALL HWUEDT(-N,IEDT)
DO 300 I=1,N
IHEP=LTO+I
JHEP=IMAP(LFROM+I-1)
ISTHEP(IHEP)=ISTHEP(JHEP)
IDHW(IHEP)=IDHW(JHEP)
IDHEP(IHEP)=IDHEP(JHEP)
JMOHEP(1,IHEP)=JMOHEP(1,JHEP)
JMOHEP(2,IHEP)=JMOHEP(2,JHEP)
JDAHEP(1,IHEP)=JDAHEP(1,JHEP)
JDAHEP(2,IHEP)=JDAHEP(2,JHEP)
CALL HWVEQU(5,PHEP(1,JHEP),PHEP(1,IHEP))
CALL HWVEQU(4,VHEP(1,JHEP),VHEP(1,IHEP))
DO 200 KHEP=1,NHEP
IF (JMOHEP(1,KHEP).EQ.JHEP) JMOHEP(1,KHEP)=IHEP
IF (JMOHEP(2,KHEP).EQ.JHEP) JMOHEP(2,KHEP)=IHEP
IF (JDAHEP(1,KHEP).EQ.JHEP) JDAHEP(1,KHEP)=IHEP
IF (JDAHEP(2,KHEP).EQ.JHEP) JDAHEP(2,KHEP)=IHEP
200 CONTINUE
IEDT(I)=JHEP
300 CONTINUE
CALL HWUEDT(N,IEDT)
END
CDECK ID>, HWUEPR.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles, Bryan Webber & Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWUEPR
C-----------------------------------------------------------------------
C Prints out event data in a number of possible formats:
C If (PRNDEF) ASCII to stout
C If (PRNTEX) LaTeX to the file HWEV_*******.tex
C Please check paper size and offsets given in mm
C Uses the package longtable.sty
C If (PRVTX>OR.NPRFMT.EQ.2) designed to be printed
C as landscape
C If (PRNWEB) HTML to the file HWEV_*******.html
C Call HWUDPR to create particle property files in
C the subdirectory HW_decays/
C ******* gives the event number 0000001 etc.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER MMWIDE,MMLONG,MMHOFF,MMVOFF,I,IST,IS,ID,MS,J,K,IUNITW,
& IUNITT
CHARACTER*1 Z
CHARACTER*2 ZZ
CHARACTER*6 BGCOLS(5),TBCOLS(3),THEAD(17,3)
CHARACTER*7 HWUNST,TMPNME
CHARACTER*16 FNAMET
CHARACTER*17 FNAMEW
CHARACTER*27 FNAMEP
CHARACTER*28 TITLE(11),SECTXT
LOGICAL FIRST(11),NEWSEC
COMMON/PAPER/MMWIDE,MMLONG,MMHOFF,MMVOFF
EXTERNAL HWUNST
C
SAVE BGCOLS,TBCOLS,THEAD,TITLE
DATA BGCOLS/'ffffff','0000aa','aa0000','00aa00','aa00ff'/
DATA TBCOLS/'ccccff','9966ff','ffff00'/
DATA THEAD/ 17*'9966ff',17*'ffff00',
& 'IHEP ',' ID ',' IDPDG',' IST ',' MO1 ',' MO2 ',
& ' DA1 ',' DA2 ',' P-X ',' P-Y ',' P-Z ','ENERGY',
& ' MASS ',' V-X ',' V-Y ',' V-Z ',' V-C*T'/
DATA TITLE/' ---INITIAL STATE--- ',
& ' ---HARD SUBPROCESS--- ',
& ' ---PARTON SHOWERS--- ',
& ' ---GLUON SPLITTING--- ',
& ' ---CLUSTER FORMATION--- ',
& ' ---CLUSTER DECAYS--- ',
& ' ---STRONG HADRON DECAYS--- ',
& ' ---HEAVY PARTICLE DECAYS---',
& ' ---H/W/Z BOSON DECAYS--- ',
& ' ---SOFT UNDERLYING EVENT---',
& ' ---MULTIPLE SCATTERING--- '/
Z=CHAR(92)
ZZ=Z//Z
C
IUNITT=50
IUNITW=51
C Write out any required file header information
TMPNME=HWUNST(NEVHEP)
IF (PRNTEX) THEN
WRITE(FNAMET,'(A5,A7,A4)') 'HWEV_',TMPNME,'.tex'
OPEN(IUNITT,STATUS='UNKNOWN',FILE=FNAMET)
IF (PRVTX.OR.NPRFMT.EQ.2) THEN
WRITE(IUNITT,10) Z,Z,Z,MMLONG,Z,MMWIDE,Z,MMVOFF,Z,MMHOFF,Z,Z,Z
ELSE
WRITE(IUNITT,10) Z,Z,Z,MMWIDE,Z,MMLONG,Z,MMHOFF,Z,MMVOFF,Z,Z,Z
ENDIF
ENDIF
IF (PRNWEB) THEN
WRITE(FNAMEW,'(A5,A7,A5)') 'HWEV_',TMPNME,'.html'
OPEN(IUNITW,STATUS='UNKNOWN',FILE=FNAMEW)
WRITE(IUNITW,20) BGCOLS
ENDIF
10 FORMAT(A1,'documentclass{article}'/A1,'usepackage{longtable}'/
& A1,'textwidth ',I4,'mm ',A1,'textheight ',I4,'mm'/
& A1,'hoffset ',I4,'mm ',A1,'voffset ',I4,'mm'/
& A1,'pagestyle{empty}'/A1,'begin{document}'/A1,'begin{center}')
20 FORMAT(''/''/''/
& 'HERWIG Event Record'/''/
& '')
C Write out event header details and set up tables
IF (PRNDEF) THEN
WRITE(6,30) NEVHEP,PBEAM1,PART1,PBEAM2,PART2,
& IPROC,NRN,ISTAT,IERROR,EVWGT
ENDIF
IF (PRNTEX) THEN
WRITE(IUNITT,40) Z,Z,Z,ISTAT,ZZ,Z,
& IPROC,PBEAM1,PBEAM2,NRN(1),
& IERROR,ZZ,Z,Z,NEVHEP,TXNAME(1,IDHW(1)),TXNAME(1,IDHW(2)),
& NRN(2),EVWGT,ZZ,Z,Z,Z
IF (PRVTX) THEN
WRITE(IUNITT,50) Z,Z,Z,Z,Z
ELSE
WRITE(IUNITT,60) Z,Z,Z,Z,Z
ENDIF
ENDIF
IF (PRNWEB) THEN
WRITE(IUNITW,70) TBCOLS(1),TBCOLS(2),(TBCOLS(2),TBCOLS(3),
& I=1,4),ISTAT,TBCOLS(2),TBCOLS(3),
& IPROC,PBEAM1,PBEAM2,NRN(1),
& TBCOLS(2),TBCOLS(3),IERROR
WRITE(IUNITW,71) TBCOLS(2),TBCOLS(3),NEVHEP,TXNAME(2,IDHW(1)),
& TXNAME(2,IDHW(2)),NRN(2),TBCOLS(2),TBCOLS(3),EVWGT,TBCOLS(1)
ENDIF
30 FORMAT(///1X,'EVENT ',I7,':',F8.2,' GEV/C ',A8,' ON ',F8.2,
& ' GEV/C ',A8,' PROCESS:',I6/1X,'SEEDS: ',I11,' & ',I11,
& ' STATUS: ',I4,' ERROR:',I4,' WEIGHT: ',1P,E11.4/)
40 FORMAT(A1,'begin{tabular}{|l|r|c|c|r|l|c|}'/A1,'hline'/
& A1,'multicolumn{2}{|c|}{HERWIG 6.5} & Beam 1: & Beam 2: & ',
& 'Seeds: & Status: & ',I4, ' ',A2/A1,'hline'/'Process: & ',I6,
& ' & ',F8.2,'~GeV/c & ',F8.2,'~GeV/c',' & ',I11,' & Error: & ',
& I4,' ',A2/A1,'cline{1-2} ',A1,'cline{6-7}'/'Event: & ',I7,' & ',
& A37,' & ',A37,' & ',I11,' & Weight: & ',1P,E11.4,' ',A2/A1,
& 'hline'/A1,'end{tabular}'/A1,'vskip 5mm')
50 FORMAT(A1,'begin{longtable}{|r|c|r|r|r|r|r|r|r|r|r|r|r|r|r|r|r|}'/
& A1,'hline'/A1,'endhead'/A1,'hline'/A1,'endfoot')
60 FORMAT(A1,'begin{longtable}{|r|c|r|r|r|r|r|r|r|r|r|r|r|}'/
& A1,'hline'/A1,'endhead'/A1,'hline'/A1,'endfoot')
70 FORMAT(/''/''/
& ''/'',
& '',
& 'HERWIG 6.5 | '/
& 'Beam 1: | '/
& 'Beam 2: | '/
& 'Seeds: | '/
& 'Status: | '/'',I4,' | '/'
'/
& ''/
& 'Process: | '/'',I6,' | '/
& '',F8.2,' GeV/c | '/'',F8.2,' GeV/c | '/
& '',I11,' | '/
& 'Error: | '/'',I4,' | '/'
')
71 FORMAT(''/
& 'Event: | '/'',I7,' | '/
& '',A37,' | '/
& '',A37,' | '/
& '',I11,' | '/
& 'Weight: | '/'',1P,E11.4,' | '/'
'/
& '
'//''/
& '
')
C Initialize control flags
DO 80 I=1,11
80 FIRST(I)=.TRUE.
C Loop through event record
DO 410 I=1,NHEP
NEWSEC=.FALSE.
C First find start of new sections
IST=ISTHEP(I)
IS=IST/10
ID=IDHW(I)
IF (IST.EQ.101) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(1)
ELSEIF (FIRST(2).AND.IS.EQ.12) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(2)
FIRST(2)=.FALSE.
ELSEIF (FIRST(3).AND.IS.EQ.14) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(3)
FIRST(3)=.FALSE.
FIRST(8)=.TRUE.
FIRST(9)=.TRUE.
FIRST(11)=.TRUE.
ELSEIF (FIRST(4).AND.IST.GE.158.AND.IST.NE.160
& .AND.IST.LE.162) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(4)
FIRST(4)=.FALSE.
ELSEIF (FIRST(5).AND.(IS.EQ.16.OR.IS.EQ.18)
& .AND.IST.GT.162) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(5)
FIRST(5)=.FALSE.
ELSEIF (IS.EQ.19.OR.IST.EQ.1.OR.IST.EQ.200) THEN
MS=ISTHEP(JMOHEP(1,I))/10
IF (MS.EQ.15.OR.MS.EQ.16.OR.MS.EQ.18) THEN
IF (FIRST(6)) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(6)
FIRST(6)=.FALSE.
ENDIF
ELSEIF (FIRST(7).AND.(.NOT.FIRST(6))) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(7)
FIRST(7)=.FALSE.
ENDIF
ELSEIF (FIRST(8).AND.(IST.EQ.125.OR.IST.EQ.155.OR.
& (IST.EQ.123.AND.ISTHEP(JMOHEP(1,I)).EQ.199))) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(8)
FIRST(3)=.TRUE.
FIRST(4)=.TRUE.
FIRST(5)=.TRUE.
FIRST(6)=.TRUE.
FIRST(7)=.TRUE.
FIRST(8)=.FALSE.
ELSEIF (FIRST(9).AND.(IST.EQ.123.OR.IST.EQ.124)) THEN
MS=ABS(IDHEP(JMOHEP(1,I)))
IF (MS.EQ.23.OR.MS.EQ.24.OR.MS.EQ.25) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(9)
FIRST(3)=.TRUE.
FIRST(4)=.TRUE.
FIRST(5)=.TRUE.
FIRST(6)=.TRUE.
FIRST(7)=.TRUE.
FIRST(8)=.TRUE.
FIRST(9)=.FALSE.
ENDIF
ELSEIF (IST.EQ.170) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(10)
FIRST(6)=.FALSE.
FIRST(7)=.FALSE.
FIRST(8)=.FALSE.
ELSEIF (FIRST(11).AND.(ID.EQ.71.OR.ID.EQ.72)) THEN
NEWSEC=.TRUE.
SECTXT=TITLE(11)
FIRST(3)=.TRUE.
FIRST(11)=.FALSE.
ENDIF
C Print out section heading
IF (NEWSEC) THEN
IF (PRVTX) THEN
IF (PRNDEF) THEN
IF (NPRFMT.EQ.1) THEN
WRITE(6, 90) SECTXT,(THEAD(J,3),J=1,17)
ELSE
WRITE(6,100) SECTXT,(THEAD(J,3),J=1,17)
ENDIF
ENDIF
IF (PRNTEX) WRITE(IUNITT,110) Z,Z,SECTXT,ZZ,Z,
& (Z,THEAD(J,3),J=1,17),ZZ,Z
IF (PRNWEB) WRITE(IUNITW,120) TBCOLS(2),TBCOLS(3),
& SECTXT,((THEAD(K,J),J=1,3),K=1,17)
90 FORMAT(/46X,A28//1X,A4,2X,A6,3X,A6,5A4,3(2X,A6),A6,3X,A5,
& 4(4X,A6))
100 FORMAT(/58X,A28//1X,A4,2X,A6,3X,A6,5A4,3(6X,A6),5X,A6,8X,A5,
& 4X,A6,2(5X,A6),6X,A6)
110 FORMAT(A1,'hline'/A1,'multicolumn{17}{|c|}{',A28,'} ',A2/A1,
& 'hline'/16(A1,'multicolumn{1}{|c|}{',A6,'} & '),
& A1,'multicolumn{1}{|c|}{',A6,'} ',A2/A1,'hline')
120 FORMAT('',
& '',A28,' |
'/
& '',17(/,1X,'
& ',A6,' | '),'
')
ELSE
IF (PRNDEF) THEN
IF (NPRFMT.EQ.1) THEN
WRITE(6,130) SECTXT,(THEAD(J,3),J=1,13)
ELSE
WRITE(6,140) SECTXT,(THEAD(J,3),J=1,13)
ENDIF
END IF
IF (PRNTEX) WRITE(IUNITT,150) Z,Z,SECTXT,ZZ,Z,
& (Z,THEAD(J,3),J=1,13),ZZ,Z
IF (PRNWEB) WRITE(IUNITW,160) TBCOLS(2),TBCOLS(3),
& SECTXT,((THEAD(K,J),J=1,3),K=1,13)
130 FORMAT(/26X,A28//1X,A4,2X,A6,3X,A6,5A4,3(2X,A6),A6,3X,A5)
140 FORMAT(/36X,A28//1X,A4,2X,A6,3X,A6,5A4,3(6X,A6),5X,A6,8X,A5)
150 FORMAT(A1,'hline'/A1,'multicolumn{13}{|c|}{',A28,'} ',A2/A1,
& 'hline'/12(A1,'multicolumn{1}{|c|}{',A6,'} & '),
& A1,'multicolumn{1}{|c|}{',A6,'} ',A2/A1,'hline')
160 FORMAT('',
& '',A28,' |
'/
& '',13(/'',
& '',A6,' | '),'
')
ENDIF
ENDIF
C Now print out the data line
IF (PRVTX) THEN
C Include vertex information
IF (PRNDEF) THEN
IF (PRNDEC) THEN
IF (NPRFMT.EQ.1) THEN
WRITE(6,190) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4)
ELSE
WRITE(6,200) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4)
ENDIF
ELSE
IF (NPRFMT.EQ.1) THEN
WRITE(6,210) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4)
ELSE
WRITE(6,220) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4)
ENDIF
ENDIF
ENDIF
IF (PRNTEX) WRITE(IUNITT,230) I,TXNAME(1,IDHW(I)),IDHEP(I),
& IST,JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4),ZZ
IF (PRNWEB) THEN
WRITE(IUNITW,240) TBCOLS(2),TBCOLS(3),I,I
IF (IDHEP(I).EQ.0.OR.IDHEP(I).EQ.91) THEN
WRITE(IUNITW,250) TXNAME(2,IDHW(I)),IDHEP(I),IST
ELSE
TMPNME=HWUNST(IDHW(I))
WRITE(FNAMEP,'(A15,A7,A5)')
& 'HW_decays/PART_',TMPNME,'.html'
WRITE(IUNITW,260) FNAMEP,TXNAME(2,IDHW(I)),IDHEP(I),IST
ENDIF
DO 170 J=1,2
IF (JMOHEP(J,I).NE.0) THEN
WRITE(IUNITW,270) JMOHEP(J,I),JMOHEP(J,I)
ELSE
WRITE(IUNITW,280) JMOHEP(J,I)
ENDIF
170 CONTINUE
DO 180 J=1,2
IF (JDAHEP(J,I).NE.0) THEN
WRITE(IUNITW,270) JDAHEP(J,I),JDAHEP(J,I)
ELSE
WRITE(IUNITW,280) JDAHEP(J,I)
ENDIF
180 CONTINUE
IF (NPRFMT.EQ.1) THEN
WRITE(IUNITW,290) (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4)
ELSE
WRITE(IUNITW,300) (PHEP(J,I),J=1,5),(VHEP(J,I),J=1,4)
ENDIF
ENDIF
190 FORMAT(1X,I4,1X,A8,I8,5I4, 2F8.2,2F7.1,F8.2,1P,4E10.3)
200 FORMAT(1X,I4,1X,A8,I8,5I4, 5F12.5,1P,4E11.4)
210 FORMAT(1X,Z4,1X,A8,I8,I4,4Z4,2F8.2,2F7.1,F8.2,1P,4E10.3)
220 FORMAT(1X,Z4,1X,A8,I8,I4,4Z4,5F12.5,1P,4E11.4)
230 FORMAT(I4,' & ',A37,' & $',I8,'$',5(' & ',I4),
& 5(' & $',F8.2,'$'),4(' & $',1P,E11.3,'$'),' ',A2)
240 FORMAT(''/'',
& '',I4,' | '/)
250 FORMAT('',A37,' | '/'',
& I8,' | '/'',I4,' | ')
260 FORMAT('',A37,' | '/
& '',I8,' | '/
& '',I4,' | ')
270 FORMAT(/'',I4,' | ')
280 FORMAT(/'',I4,' | ')
290 FORMAT(5(/'',F8.2,' | '),1P,
& 4(/'',E10.3,' | ')/'
')
300 FORMAT(5(/'',F12.5,' | '),1P,
& 4(/'',E11.4,' | ')/'')
ELSE
C Do not include vertex information
IF (PRNDEF) THEN
IF (PRNDEC) THEN
IF (NPRFMT.EQ.1) THEN
WRITE(6,330) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5)
ELSE
WRITE(6,340) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5)
ENDIF
ELSE
IF (NPRFMT.EQ.1) THEN
WRITE(6,350) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5)
ELSE
WRITE(6,360) I,RNAME(IDHW(I)),IDHEP(I),IST,
& JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5)
ENDIF
ENDIF
ENDIF
IF (PRNTEX) THEN
IF (NPRFMT.EQ.1) THEN
WRITE(IUNITT,370) I,TXNAME(1,IDHW(I)),IDHEP(I),
& IST,JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),ZZ
ELSE
WRITE(IUNITT,380) I,TXNAME(1,IDHW(I)),IDHEP(I),
& IST,JMOHEP(1,I),JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),
& (PHEP(J,I),J=1,5),ZZ
ENDIF
ENDIF
IF (PRNWEB) THEN
WRITE(IUNITW,240) TBCOLS(2),TBCOLS(3),I,I
IF (IDHEP(I).EQ.0.OR.IDHEP(I).EQ.91) THEN
WRITE(IUNITW,250) TXNAME(2,IDHW(I)),IDHEP(I),IST
ELSE
TMPNME = HWUNST(IDHW(I))
WRITE(FNAMEP,'(A15,A7,A5)')
& 'HW_decays/PART_',TMPNME,'.html'
WRITE(IUNITW,260) FNAMEP,TXNAME(2,IDHW(I)),IDHEP(I),IST
ENDIF
DO 310 J=1,2
IF (JMOHEP(J,I).NE.0) THEN
WRITE(IUNITW,270) JMOHEP(J,I),JMOHEP(J,I)
ELSE
WRITE(IUNITW,280) JMOHEP(J,I)
ENDIF
310 CONTINUE
DO 320 J=1,2
IF (JDAHEP(J,I).NE.0) THEN
WRITE(IUNITW,270) JDAHEP(J,I),JDAHEP(J,I)
ELSE
WRITE(IUNITW,280) JDAHEP(J,I)
ENDIF
320 CONTINUE
IF (NPRFMT.EQ.1) THEN
WRITE(IUNITW,390) (PHEP(J,I),J=1,5)
ELSE
WRITE(IUNITW,400) (PHEP(J,I),J=1,5)
ENDIF
ENDIF
330 FORMAT(1X,I4,1X,A8,I8,5I4 ,2F8.2,2F7.1,F8.2)
340 FORMAT(1X,I4,1X,A8,I8,5I4 ,5F12.5)
350 FORMAT(1X,Z4,1X,A8,I8,I4,4Z4,2F8.2,2F7.1,F8.2)
360 FORMAT(1X,Z4,1X,A8,I8,I4,4Z4,5F12.5)
370 FORMAT(I4,' & ',A37,' & $',I8,'$',5(' & ',I4),
& 5(' & $',F8.2,'$'),' ',A2)
380 FORMAT(I4,' & ',A37,' & $',I8,'$',5(' & ',I4),
& 5(' & $',F12.5,'$'),' ',A2)
390 FORMAT(5(/'',F8.2,' | ')/'')
400 FORMAT(5(/'',F12.5,' | ')/'')
ENDIF
410 CONTINUE
C Close the files
IF (PRNTEX) THEN
WRITE(IUNITT,420) Z,Z,Z
420 FORMAT(A1,'end{longtable}'/A1,'end{center}'/A1,'end{document}')
CLOSE(IUNITT)
ENDIF
IF (PRNWEB) THEN
WRITE(IUNITW,430)
430 FORMAT('
'/''/''/'')
CLOSE(IUNITW)
ENDIF
END
CDECK ID>, HWUGUP.
*CMZ :- -13/02/02 07.20.46 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWUGUP
C-----------------------------------------------------------------------
C Subroutine to handle termination of HERWIG if reaches end of event
C file
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
C--reset the number of events to the correct value
NEVHEP = NEVHEP-1
C--output information on the events
CALL HWEFIN
STOP
END
CDECK ID>, HWUFNE.
*CMZ :- -16/10/93 12.42.15 by Mike Seymour
*-- Author : Mike Seymour
C-----------------------------------------------------------------------
SUBROUTINE HWUFNE
C-----------------------------------------------------------------------
C FINALISES THE EVENT BY UNDOING THE LORENTZ BOOST IF THERE WAS ONE,
C CHECKING FOR ERRORS, AND PRINTING
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IHEP
LOGICAL CALLED
COMMON/HWDBUG/CALLED
CALLED=.TRUE.
C---UNBOOST EVENT RECORD IF NECESSARY
CALL HWUBST(0)
C---CHECK FOR NEGATIVE ENERGY PARTICLES (REMNANT BUG?)
DO IHEP=1,NHEP
IF (ISTHEP(IHEP).EQ.1.AND.PHEP(4,IHEP).LT.ZERO) THEN
CALL HWWARN('HWUFNE',100)
GOTO 99
ENDIF
ENDDO
99 CONTINUE
C---CHANGE LIGHTEST SUSY HIGGS CODE TO THE PDG VALUE
DO IHEP=1,NHEP
IF (IDHEP(IHEP).EQ.26) IDHEP(IHEP)=25
ENDDO
C---CHECK FOR FATAL ERROR
IF (IERROR.NE.0) THEN
IF (IERROR.GT.0) THEN
NUMER=NUMER+1
ELSE
NUMERU=NUMERU+1
ENDIF
IF (NUMER.GT.MAXER) CALL HWWARN('HWUFNE',300)
NEVHEP=NEVHEP-1
IF (NEGWTS.AND.EVWGT.LT.ZERO) NNEGEV=NNEGEV-1
C---PRINT FIRST MAXPR EVENTS
ELSEIF (NEVHEP.LE.MAXPR) THEN
CALL HWUEPR
END IF
END
CDECK ID>, HWUGAU.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWUGAU(F,A,B,EPS)
C-----------------------------------------------------------------------
C ADAPTIVE GAUSSIAN INTEGRATION OF FUNCTION F
C IN INTERVAL (A,B) WITH PRECISION EPS
C (MODIFIED CERN LIBRARY ROUTINE GAUSS)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWUGAU,F,A,B,EPS,CONST,AA,BB,C1,C2,S8,U,S16,
& W(12),X(12),ZERO
INTEGER I
EXTERNAL F
PARAMETER (ZERO=0.0D0)
SAVE W,X
DATA W/.1012285363D0,.2223810345D0,.3137066459D0,
& .3626837834D0,.0271524594D0,.0622535239D0,
& .0951585117D0,.1246289713D0,.1495959888D0,
& .1691565194D0,.1826034150D0,.1894506105D0/
DATA X/.9602898565D0,.7966664774D0,.5255324099D0,
& .1834346425D0,.9894009350D0,.9445750231D0,
& .8656312024D0,.7554044084D0,.6178762444D0,
& .4580167777D0,.2816035508D0,.0950125098D0/
HWUGAU=0.
IF (A.EQ.B) RETURN
CONST=.005/ABS(B-A)
BB=A
1 AA=BB
BB=B
2 C1=0.5*(BB+AA)
C2=0.5*(BB-AA)
S8=0.
DO 3 I=1,4
U=C2*X(I)
S8=S8+W(I)*(F(C1+U)+F(C1-U))
3 CONTINUE
S8=C2*S8
S16=0.
DO 4 I=5,12
U=C2*X(I)
S16=S16+W(I)*(F(C1+U)+F(C1-U))
4 CONTINUE
S16=C2*S16
IF (ABS(S16-S8).LE.EPS*(1.+ABS(S16))) GOTO 5
BB=C1
IF (CONST*ABS(C2).NE.ZERO) GOTO 2
C---TOO HIGH ACCURACY REQUESTED
CALL HWWARN('HWUGAU',500)
5 HWUGAU=HWUGAU+S16
IF (BB.NE.B) GOTO 1
END
CDECK ID>, HWUIDT.
*CMZ :- -26/04/91 10.18.58 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUIDT(IOPT,IPDG,IWIG,NWIG)
C-----------------------------------------------------------------------
C TRANSLATES PARTICLE IDENTIFIERS:
C IPDG = PARTICLE DATA GROUP CODE
C IWIG = HERWIG IDENTITY CODE
C NWIG = HERWIG CHARACTER*8 NAME
C
C IOPT= 1 GIVEN IPDG, RETURNS IWIG AND NWIG
C IOPT= 2 GIVEN IWIG, RETURNS IPDG AND NWIG
C IOPT= 3 GIVEN NWIG, RETURNS IPDG AND IWIG
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IOPT,IPDG,IWIG,I
CHARACTER*8 NWIG
IF (IOPT.EQ.1) THEN
DO 10 I=0,NRES
IF (IDPDG(I).EQ.IPDG) THEN
IWIG=I
NWIG=RNAME(I)
RETURN
ENDIF
10 CONTINUE
WRITE(6,20) IPDG
20 FORMAT(1X,'Particle not recognised, PDG code: ',I8)
IWIG=20
NWIG=RNAME(20)
CALL HWWARN('HWUIDT',101)
GOTO 999
ELSEIF (IOPT.EQ.2) THEN
IF (IWIG.LT.0.OR.IWIG.GT.NRES) THEN
WRITE(6,30) IWIG
30 FORMAT(1X,'Particle not recognised, HERWIG code: ',I3)
IPDG=0
NWIG=RNAME(20)
CALL HWWARN('HWUIDT',102)
GOTO 999
ELSE
IPDG=IDPDG(IWIG)
NWIG=RNAME(IWIG)
RETURN
ENDIF
ELSEIF (IOPT.EQ.3) THEN
DO 40 I=0,NRES
IF (RNAME(I).EQ.NWIG) THEN
IWIG=I
IPDG=IDPDG(I)
RETURN
ENDIF
40 CONTINUE
WRITE(6,50) NWIG
50 FORMAT(1X,'Particle not recognised, HERWIG name: ',A8)
IWIG=20
IPDG=0
CALL HWWARN('HWUIDT',103)
GOTO 999
ELSE
CALL HWWARN('HWUIDT',404)
ENDIF
999 RETURN
END
CDECK ID>, HWUINC.
*CMZ :- -12/10/01 09.56.07 by Peter Richardson
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUINC
C-----------------------------------------------------------------------
C COMPUTES CONSTANTS AND LOOKUP TABLES
C---BRW change 27/8/04: include Frixione's fix to reduce PDFSET calls
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWBVMC,HWUALF,HWUPCM,XMIN,XMAX,XPOW,QR,DQKWT,
& UQKWT,SQKWT,DIQWT,QMAX,PMAX,PTLIM,ETLIM,PGS,PTELM,X,QSCA,UPV,DNV,
& USEA,DSEA,STR,CHM,BTM,TOP,GLU,VAL(20),CLMXPW,RCLPOW,TEST,RPM(2)
INTEGER ISTOP,I,J,IQK,IDB,IDT,ISET,IOP1,IOP2,IP2,ID,IH,IV
INTEGER LPROC,KPROC
INTEGER IS,IP(3),IQ
COMMON/SQSQH/JHIGGS,ILBL,JH,IF1MIN,IF1MAX,IF2MIN,IF2MAX
INTEGER JHIGGS,ILBL,JH,IF1MIN,IF1MAX,IF2MIN,IF2MAX
INTEGER ISQ1,ISQ2
INTEGER IHLP,JHLP,KHLP,ISIGN,ITMP(8)
LOGICAL FIRST,FSTPDF
CHARACTER*20 PARM(20)
EXTERNAL HWBVMC,HWUALF,HWUPCM
COMMON/HWRPIN/XMIN,XMAX,XPOW,FIRST
COMMON/W50516/FSTPDF
CHARACTER*20 PARMSAVE
DOUBLE PRECISION VALSAVE
COMMON/HWSFSA/PARMSAVE
COMMON/HWSFSB/VALSAVE
SAVE ITMP
DATA ITMP/0,12,-12,0,0,12,-12,0/
C--read in the information frmo the Les Houches common block if needed
IF(IPROC.LE.0) CALL HWIGUP
C---MSSM Higgs processes: additional IDs to distinguish from SM-like ones.
IMSSM=0
IHIGGS=0
C---Sets even parity of Higgs bosons (in the coupling to fermions) as default.
PARITY=1
C...define parity of Neutral MSSM Higgses.
IP(1)=+1
IP(2)=+1
IP(3)=-1
C---IPRO=9,11 (lepton-lepton); 31...38 (hadron-hadron) MSSM Higgs production.
LPROC=MOD(IPROC,10000)
IF((LPROC.LT.3100).OR.(LPROC.GE.3900))THEN
C...add here MSSM Higgs processes in lepton-lepton collisions.
IF((LPROC/100.NE.9).AND.(LPROC/100.NE.11))GOTO 666
END IF
C-----------------------------------------------------------------------
C HARD 2 LEPTON/PARTON -> HIGGS + X PROCESSES IN MSSM
C IH = 1 MSSM h^0 IV = 0 SM W+/- IQ = 1,3,5 d,s,b-quark
C = 2 MSSM H^0 = 1 SM Z 2,4,6 u,c,t-quark
C = 3 MSSM A^0 ID = IQ, IL
C = 4/5 MSSM H^+/- IL = 1,2,3 e,mu,tau-lepton
C-----------------------------------------------------------------------
C...leptonic processes.
IF(LPROC/100.EQ.9)THEN
IF(LPROC.EQ.955)THEN
IMSSM=-1
IHIGGS=206-201
ELSE IF(LPROC.EQ.965)THEN
IHIGGS=203-201
IMSSM=-1
ELSE IF(LPROC.EQ.975)THEN
IHIGGS=204-201
IMSSM=-1
ELSE IF((LPROC.EQ.910).OR.(LPROC.EQ.920).OR.
& (LPROC.EQ.960).OR.(LPROC.EQ.970))THEN
KPROC=MIN(951,LPROC)
IV=MAX(KPROC-950,0)
IF((IV.LT.0).OR.(IV.GT.1)) CALL HWWARN('HWUINC',627)
IH=LPROC/10-90-5*IV
IF((IH.LE.0).OR.(IH.GT.2)) CALL HWWARN('HWUINC',626)
IF(LPROC.LE.920)IMSSM=LPROC-400
IF(LPROC.GE.960)IMSSM=LPROC-300
C...assign enhancement for MSSM Higgs-VV couplings, V->W,Z-gauge bosons.
DO 545 I=10,10
ENHANC(I )=GHWWSS(IH)
ENHANC(I+1)=GHZZSS(IH)
545 CONTINUE
IF(IH.EQ.1)IHIGGS=203-201
IF(IH.EQ.2)IHIGGS=204-201
IF(IH.EQ.3)IHIGGS=205-201
ELSE
CALL HWWARN('HWUINC',625)
END IF
ELSE IF(LPROC/100.EQ.11)THEN
IMSSM=-1
IF(LPROC.GE.1140)THEN
IHIGGS=207-201
PARITY=1
GOTO 548
END IF
IF(LPROC.LT.1140)IH=3
IF(LPROC.LT.1130)IH=2
IF(LPROC.LT.1120)IH=1
IF((IH.LE.0).OR.(IH.GT.3)) CALL HWWARN('HWUINC',624)
IQ=LPROC-1100-10*IH
IF((IQ.LE.0).OR.(IQ.GT.9)) CALL HWWARN('HWUINC',623)
C...assign Neutral MSSM Higgs parity.
PARITY=IP(IH)
C...assign enhancement for MSSM Higgs-QQ couplings, Q->U,D-type quarks.
DO 546 I=1,5,2
ENHANC(I )=GHDDSS(IH)
ENHANC(I+1)=GHUUSS(IH)
546 CONTINUE
C...assign enhancement for MSSM Higgs-LL couplings, L->D-type leptons.
ENHANC(7)=GHDDSS(IH)
ENHANC(8)=GHDDSS(IH)
ENHANC(9)=GHDDSS(IH)
C...assign enhancement for MSSM Higgs-VV couplings, V->W,Z-gauge bosons.
DO 547 I=10,10
ENHANC(I )=GHWWSS(IH)
ENHANC(I+1)=GHZZSS(IH)
547 CONTINUE
IF(IH.EQ.1)IHIGGS=203-201
IF(IH.EQ.2)IHIGGS=204-201
IF(IH.EQ.3)IHIGGS=205-201
548 CONTINUE
C...hadronic processes.
ELSE IF((LPROC/100.EQ.31).OR.(LPROC/100.EQ.32))THEN
IF(LPROC/100.EQ.31)THEN
IF((LPROC.LE.3109).OR.
& ((LPROC.GE.3119).AND.(LPROC.LE.3139)).OR.
& ((LPROC.GE.3149).AND.(LPROC.LE.3169)).OR.
& (LPROC.GE.3179)) CALL HWWARN('HWUINC',622)
IMSSM=-1
IF(LPROC/100-LPROC/10*10.LE.4)IHIGGS=5
IF(LPROC/100-LPROC/10*10.GE.5)IHIGGS=6
ELSE IF(LPROC/100.EQ.32)THEN
IF(LPROC.LE.3209) CALL HWWARN('HWUINC',621)
IF(LPROC.EQ.3219) CALL HWWARN('HWUINC',620)
IF(LPROC.EQ.3229) CALL HWWARN('HWUINC',619)
IF(LPROC.EQ.3239) CALL HWWARN('HWUINC',618)
IF(LPROC.EQ.3249) CALL HWWARN('HWUINC',617)
IF(LPROC.EQ.3259) CALL HWWARN('HWUINC',616)
IF(LPROC.EQ.3269) CALL HWWARN('HWUINC',615)
IF(LPROC.EQ.3279) CALL HWWARN('HWUINC',614)
IF(LPROC.EQ.3289) CALL HWWARN('HWUINC',613)
IF(LPROC.GE.3299) CALL HWWARN('HWUINC',612)
IMSSM=-1
IF(LPROC.LT.3300)IHIGGS=4
IF(LPROC.LT.3290)IHIGGS=3
IF(LPROC.LT.3280)IHIGGS=2
IF(LPROC.LT.3270)IHIGGS=4
IF(LPROC.LT.3260)IHIGGS=3
IF(LPROC.LT.3250)IHIGGS=2
IF(LPROC.LT.3240)IHIGGS=4
IF(LPROC.LT.3230)IHIGGS=3
IF(LPROC.LT.3220)IHIGGS=2
END IF
C...assign squarks/Higgs-flavours.
IF(LPROC/100.EQ.31)JHIGGS=1
IF(LPROC/100.EQ.32)JHIGGS=IHIGGS-1
IF(LPROC/100.EQ.31)ILBL=3100
IF(LPROC/100.EQ.32)ILBL=3200
IHLP=LPROC-ILBL-60-JHIGGS*10
IF(LPROC.LT.ILBL+70)IHLP=LPROC-ILBL-30-JHIGGS*10
IF(LPROC.LT.ILBL+40)IHLP=LPROC-ILBL -JHIGGS*10
IF(IHLP.LE.8)ISIGN=-1
IF(IHLP.LE.4)ISIGN=+1
JHLP=IHLP/5
KHLP=IHLP/(3+4*JHLP)
ISQ1=405+JHLP+12*KHLP
IF(ILBL.EQ.3100)THEN
ISQ2=ISQ1+ITMP(IHLP)+6+ISIGN
IF(ISIGN.EQ.+1)JH=206
IF(ISIGN.EQ.-1)JH=207
IF(ISIGN.EQ.+1)JHIGGS=4
IF(ISIGN.EQ.-1)JHIGGS=5
ELSE IF(ILBL.EQ.3200)THEN
ISQ2=ISQ1+ITMP(IHLP)+6
IF(JHIGGS.EQ.1)JH=203
IF(JHIGGS.EQ.2)JH=204
IF(JHIGGS.EQ.3)JH=205
END IF
IF1MIN=ISQ1
IF1MAX=ISQ1
IF2MIN=ISQ2
IF2MAX=ISQ2
IF((LPROC.EQ.3110).OR.(LPROC.EQ.3210).OR.
& (LPROC.EQ.3220).OR.(LPROC.EQ.3230).OR.
& (LPROC.EQ.3140).OR.(LPROC.EQ.3240).OR.
& (LPROC.EQ.3250).OR.(LPROC.EQ.3260).OR.
& (LPROC.EQ.3170).OR.(LPROC.EQ.3270).OR.
& (LPROC.EQ.3280).OR.(LPROC.EQ.3290))THEN
IF1MIN=405
IF1MAX=418
IF2MIN=411
IF2MAX=424
END IF
ELSE IF(LPROC/100.EQ.33)THEN
IF((LPROC.EQ.3350).OR.(LPROC.EQ.3355))THEN
IMSSM=-1
IHIGGS=206-201
ELSE IF((LPROC.EQ.3310).OR.(LPROC.EQ.3320).OR.
& (LPROC.EQ.3360).OR.(LPROC.EQ.3370))THEN
KPROC=MIN(3351,LPROC)
IV=MAX(KPROC-3350,0)
IF((IV.LT.0).OR.(IV.GT.1)) CALL HWWARN('HWUINC',611)
IH=LPROC/10-330-5*IV
IF((IH.LE.0).OR.(IH.GT.2)) CALL HWWARN('HWUINC',610)
IF(LPROC.LE.3320)IMSSM=LPROC-2600
IF(LPROC.GE.3360)IMSSM=LPROC-2700
C...assign enhancement for MSSM Higgs-VV couplings, V->W,Z-gauge bosons.
DO 555 I=10,10
ENHANC(I )=GHWWSS(IH)
ENHANC(I+1)=GHZZSS(IH)
555 CONTINUE
IF(IH.EQ.1)IHIGGS=203-201
IF(IH.EQ.2)IHIGGS=204-201
IF(IH.EQ.3)IHIGGS=205-201
ELSE IF((LPROC.EQ.3315).OR.(LPROC.EQ.3365))THEN
IHIGGS=203-201
IMSSM=-1
ELSE IF((LPROC.EQ.3325).OR.(LPROC.EQ.3375))THEN
IHIGGS=204-201
IMSSM=-1
ELSE IF(LPROC.EQ.3335)THEN
IHIGGS=205-201
IMSSM=-1
ELSE
CALL HWWARN('HWUINC',609)
END IF
ELSE IF(LPROC/100.EQ.34)THEN
IMSSM=-1
IF(LPROC.EQ.3410)IHIGGS=203-201
IF(LPROC.EQ.3420)IHIGGS=204-201
IF(LPROC.EQ.3430)IHIGGS=205-201
IF(LPROC.EQ.3450)IHIGGS=206-201
IF(IHIGGS.EQ.0) CALL HWWARN('HWUINC',608)
ELSE IF(LPROC/100.EQ.35)THEN
IMSSM=-1
IHIGGS=206-201
ELSE IF(LPROC/100.EQ.36)THEN
IF((LPROC.NE.3610).AND.(LPROC.NE.3620).AND.
& (LPROC.NE.3630)) CALL HWWARN('HWUINC',607)
IH=LPROC/10-360
IF((IH.LE.0).OR.(IH.GT.3)) CALL HWWARN('HWUINC',606)
ID=LPROC-3600-10*IH
IF((ID.LT.0).OR.(ID.GT.9)) CALL HWWARN('HWUINC',605)
IMSSM=LPROC-(1600+ID)
C...assign Neutral MSSM Higgs parity.
IF(IH.EQ.3)PARITY=-1
DO 222 I=1,5,2
C...assign enhancement for Neutral MSSM Higgs-QQ couplings, Q->U,D-type quarks.
ENHANC(I)=GHDDSS(IH)
ENHANC(I+1)=GHUUSS(IH)
222 CONTINUE
C...assign enhancement for Neutral MSSM Higgs-Q~Q~ couplings,
C Q~->U,D-type squarks.
DO 223 I=1,6
SENHNC(I )=RMASS(198)*GHSQSS(IH,I,1,1)/RMASS(400+I)**2
SENHNC(I+12)=RMASS(198)*GHSQSS(IH,I,2,2)/RMASS(412+I)**2
223 CONTINUE
IF(IH.EQ.1)IHIGGS=203-201
IF(IH.EQ.2)IHIGGS=204-201
IF(IH.EQ.3)IHIGGS=205-201
ELSE IF(LPROC/100.EQ.37)THEN
IH=LPROC/10-370
IF((IH.LE.0).OR.(IH.GT.2)) CALL HWWARN('HWUINC',604)
IMSSM=LPROC-1900
C...assign enhancement for MSSM Higgs-VV couplings, V->W,Z-gauge bosons.
DO 333 I=10,10
ENHANC(I )=GHWWSS(IH)
ENHANC(I+1)=GHZZSS(IH)
333 CONTINUE
IF(IH.EQ.1)IHIGGS=203-201
IF(IH.EQ.2)IHIGGS=204-201
IF(IH.EQ.3)IHIGGS=205-201
ELSE IF(LPROC/100.EQ.38)THEN
IMSSM=-1
IF((LPROC.EQ.3839).OR.(LPROC.EQ.3869).OR.(LPROC.EQ.3899))THEN
IHIGGS=207-201
PARITY=1
GOTO 445
END IF
IF(LPROC.LT.4000)IS=6
IF(LPROC.LT.3870)IS=3
IF(LPROC.LT.3840)IS=0
IH=LPROC/10-380-IS
IF((IH.LE.0).OR.(IH.GT.3)) CALL HWWARN('HWUINC',603)
IQ=LPROC-3800-10*(IH+IS)
IF((IQ.LE.0).OR.(IQ.GT.6)) CALL HWWARN('HWUINC',602)
C...assign Neutral MSSM Higgs parity.
PARITY=IP(IH)
C...assign enhancement for MSSM Higgs-QQ couplings, Q->U,D-type quarks.
DO 444 I=1,5,2
ENHANC(I )=GHDDSS(IH)
ENHANC(I+1)=GHUUSS(IH)
444 CONTINUE
IF(IH.EQ.1)IHIGGS=203-201
IF(IH.EQ.2)IHIGGS=204-201
IF(IH.EQ.3)IHIGGS=205-201
445 CONTINUE
END IF
IF((IMSSM.NE.-1).AND.(IPROC.GE.10000))IMSSM=IMSSM+10000
666 CONTINUE
IPRO=MOD(IPROC/100,100)
IQK=MOD(IPROC,100)
C---SET UP BEAMS
CALL HWUIDT(3,IDB,IPART1,PART1)
CALL HWUIDT(3,IDT,IPART2,PART2)
EBEAM1=SQRT(PBEAM1**2+RMASS(IPART1)**2)
EBEAM2=SQRT(PBEAM2**2+RMASS(IPART2)**2)
C---PHOTON CUTOFF DEFAULTS TO ROOT S
PTLIM=SQRT(HALF*(EBEAM1*EBEAM2+PBEAM1*PBEAM2))
ETLIM=TWO*PTLIM
IF (VPCUT.GT.ETLIM) VPCUT=ETLIM
IF (Q2MAX.GT.ETLIM**2) Q2MAX=ETLIM**2
C---PRINT OUT MOST IMPORTANT INPUT PARAMETERS
IF (IPRINT.EQ.0) GOTO 50
WRITE (6,10) PART1,PBEAM1,PART2,PBEAM2,IPROC,
& NFLAV,NSTRU,AZSPIN,AZSOFT,QCDLAM,(RMASS(I),I=1,6),RMASS(13)
IF (ISPAC.LE.1) THEN
WRITE (6,20) VQCUT,VGCUT,VPCUT,CLMAX,QSPAC,PTRMS
ELSE
WRITE (6,30) VQCUT,VGCUT,VPCUT,CLMAX,QSPAC,PTRMS
ENDIF
C--switch on three body matrix elements if doing spin correlations
IF(SYSPIN) THREEB=.TRUE.
C--output spin correlation options
WRITE(6,35) SYSPIN,THREEB,FOURB
IF (NOSPAC) WRITE (6,40)
10 FORMAT(/10X,'INPUT CONDITIONS FOR THIS RUN'//
& 10X,'BEAM 1 (',A8,') MOM. =',F10.2/
& 10X,'BEAM 2 (',A8,') MOM. =',F10.2/
& 10X,'PROCESS CODE (IPROC) =',I8/
& 10X,'NUMBER OF FLAVOURS =',I5/
& 10X,'STRUCTURE FUNCTION SET =',I5/
& 10X,'AZIM SPIN CORRELATIONS =',L5/
& 10X,'AZIM SOFT CORRELATIONS =',L5/
& 10X,'QCD LAMBDA (GEV) =',F10.4/
& 10X,'DOWN QUARK MASS =',F10.4/
& 10X,'UP QUARK MASS =',F10.4/
& 10X,'STRANGE QUARK MASS =',F10.4/
& 10X,'CHARMED QUARK MASS =',F10.4/
& 10X,'BOTTOM QUARK MASS =',F10.4/
& 10X,'TOP QUARK MASS =',F10.4/
& 10X,'GLUON EFFECTIVE MASS =',F10.4)
20 FORMAT(10X,'EXTRA SHOWER CUTOFF (Q)=',F10.4/
& 10X,'EXTRA SHOWER CUTOFF (G)=',F10.4/
& 10X,'PHOTON SHOWER CUTOFF =',F10.4/
& 10X,'CLUSTER MASS PARAMETER =',F10.4/
& 10X,'SPACELIKE EVOLN CUTOFF =',F10.4/
& 10X,'INTRINSIC P-TRAN (RMS) =',F10.4)
30 FORMAT(10X,'EXTRA SHOWER CUTOFF (Q)=',F10.4/
& 10X,'EXTRA SHOWER CUTOFF (G)=',F10.4/
& 10X,'PHOTON SHOWER CUTOFF =',F10.4/
& 10X,'CLUSTER MASS PARAMETER =',F10.4/
& 10X,'PDF FREEZING CUTOFF =',F10.4/
& 10X,'INTRINSIC P-TRAN (RMS) =',F10.4)
35 FORMAT(10X,'DECAY SPIN CORRELATIONS=',L5/
& 10X,'SUSY THREE BODY ME =',L5/
& 10X,'SUSY FOUR BODY ME =',L5)
40 FORMAT(10X,'NO SPACE-LIKE SHOWERS')
50 ISTOP=0
C---INITIALIZE ALPHA-STRONG
IF (QLIM.GT.ETLIM) QLIM=ETLIM
QR=HWUALF(0,QLIM)
C---DO SOME SAFETY CHECKS ON INPUT PARAMETERS
C Check beam order for point-like photon/QCD processes
IF (IPRO.GE.50.AND.IPRO.LE.59.AND.
& IDB.NE.22.AND.ABS(IDB).NE.11.AND.ABS(IDB).NE.13) THEN
WRITE(6,60)
60 FORMAT(1X,'WARNING: require FIRST beam to be a photon/lepton')
ISTOP=ISTOP+1
ENDIF
QG=HWBVMC(13)
QR=QG/QCDL3
IF (QR.GE.2.01) GOTO 80
WRITE (6,70) QG,QCDLAM,QCDL3
70 FORMAT(//10X,'SHOWER GLUON VIRTUAL MASS CUTOFF =',F8.5/
& 10X,'TOO SMALL RELATIVE TO QCD LAMBDA =',F8.5/
& 10X,'CORRESPONDS TO 3-FLAV MC LAMBDA =',F8.5)
ISTOP=ISTOP+1
80 QV=MIN(HWBVMC(1),HWBVMC(2))
IF (QV.GE.QG/(QR-1.)) GOTO 100
ISTOP=ISTOP+1
WRITE (6,90) QV,QCDLAM,QCDL3
90 FORMAT(//10X,'SHOWER QUARK VIRTUAL MASS CUTOFF =',F8.5/
& 10X,'TOO SMALL RELATIVE TO QCD LAMBDA =',F8.5/
& 10X,'CORRESPONDS TO 3-FLAV MC LAMBDA =',F8.5)
100 IF (ISTOP.NE.0) THEN
WRITE (6,110) ISTOP
110 FORMAT(//10X,'EXECUTION PREVENTED BY',I2,
& ' ERRORS IN INPUT PARAMETERS.')
STOP
ENDIF
DO 120 I=1,6
120 RMASS(I+6)=RMASS(I)
RMASS(199)=RMASS(198)
C---A PRIORI WEIGHTS FOR QUARK AND DIQUARKS
DQKWT=PWT(1)
UQKWT=PWT(2)
SQKWT=PWT(3)
DIQWT=PWT(7)
PWT(10)=PWT(4)
PWT(11)=PWT(5)
PWT(12)=PWT(6)
C
PWT(4)=UQKWT*UQKWT*DIQWT
PWT(5)=UQKWT*DQKWT*DIQWT*HALF
PWT(6)=DQKWT*DQKWT*DIQWT
PWT(7)=UQKWT*SQKWT*DIQWT*HALF
PWT(8)=DQKWT*SQKWT*DIQWT*HALF
PWT(9)=SQKWT*SQKWT*DIQWT
QMAX=MAX(PWT(1),PWT(2),PWT(3))
PMAX=MAX(PWT(4),PWT(5),PWT(6),PWT(7),PWT(8),PWT(9),
& PWT(10),PWT(11),PWT(12),QMAX)
PMAX=1./PMAX
QMAX=1./QMAX
DO 130 I=1,3
130 QWT(I)=PWT(I)*QMAX
DO 140 I=1,12
140 PWT(I)=PWT(I)*PMAX
C MASSES OF DIQUARKS (ASSUME BINDING NEGLIGIBLE)
RMASS(109)=RMASS(2)+RMASS(2)
RMASS(110)=RMASS(1)+RMASS(2)
RMASS(111)=RMASS(1)+RMASS(1)
RMASS(112)=RMASS(2)+RMASS(3)
RMASS(113)=RMASS(1)+RMASS(3)
RMASS(114)=RMASS(3)+RMASS(3)
DO 150 I=109,114
150 RMASS(I+6)=RMASS(I)
C MASSES OF TOP HADRONS (ASSUME BINDING NEGLIGIBLE)
RMASS(232)=RMASS(6)+RMASS(5)
RMASS(233)=RMASS(6)+RMASS(1)
RMASS(234)=RMASS(6)+RMASS(2)
RMASS(235)=RMASS(6)+RMASS(3)
RMASS(236)=RMASS(6)+RMASS(2)+RMASS(2)
RMASS(237)=RMASS(6)+RMASS(1)+RMASS(2)
RMASS(238)=RMASS(6)+RMASS(1)+RMASS(1)
RMASS(239)=RMASS(6)+RMASS(2)+RMASS(3)
RMASS(240)=RMASS(6)+RMASS(1)+RMASS(3)
RMASS(241)=RMASS(6)+RMASS(3)+RMASS(3)
RMASS(242)=RMASS(6)+RMASS(4)
RMASS(243)=RMASS(6)+RMASS(5)
RMASS(244)=RMASS(6)+RMASS(6)
RMASS(232)=RMASS(243)
DO 160 I=233,242
160 RMASS(I+22)=RMASS(I)
C Set up an array of cluster mass threholds
CLMXPW=CLMAX**CLPOW
RCLPOW=ONE/CLPOW
CALL HWVZRO(144,CTHRPW(1,1))
DO 170 I=1,6
DO 170 J=1,6
CTHRPW(I ,J )=(CLMXPW+(RMASS(I )+RMASS(J+6 ))**CLPOW)**RCLPOW
CTHRPW(I ,J+6)=(CLMXPW+(RMASS(I )+RMASS(J+108))**CLPOW)**RCLPOW
170 CTHRPW(I+6,J )=(CLMXPW+(RMASS(I+114)+RMASS(J+6 ))**CLPOW)**RCLPOW
C Decay length conversion factor GEV2MM hbar.c/e
GEV2MM=1.D-15*SQRT(GEV2NB/10.)
C Plank's constant/2pi (GeV.s)
HBAR=GEV2MM/CSPEED
C Check the SUSY DATA has been read in (if needed)
IF((IPRO.EQ.7.OR.IPRO.EQ.8.OR.IPRO.EQ.9.OR.IPRO.EQ.11.OR.
& (IPRO.GE.30.AND.IPRO.LE.41)).AND..NOT.SUSYIN)
& CALL HWWARN('HWUINC',601)
C---IMPORTANCE SAMPLING
FIRST=.TRUE.
XMIN=0
XMAX=0
XPOW=-1
IF (IPRO.EQ.5) THEN
IF (EMMAX.GT.ETLIM) EMMAX=ETLIM
IF (PTMAX.GT.PTLIM) PTMAX=PTLIM
ELSEIF (IPRO.EQ.13) THEN
IF (EMMIN.EQ.ZERO) EMMIN=10
IF (EMMAX.GT.ETLIM) EMMAX=ETLIM
IF (IQK.GT.0.AND.IQK.LE.6) EMMIN=MAX(EMMIN,2*RMASS(IQK))
XMIN=EMMIN
XMAX=EMMAX
XPOW=-EMPOW
ELSEIF (IPRO.EQ.15.OR.IPRO.EQ.17.OR.IPRO.EQ.18.OR.IPRO.EQ.21
& .OR.IPRO.EQ.22.OR.IPRO.EQ.23.OR.IPRO.EQ.24.OR.IPRO.EQ.50
& .OR.IPRO.EQ.51.OR.IPRO.EQ.53.OR.IPRO.EQ.55.OR.IPRO.EQ.60) THEN
IF (PTMAX.GT.PTLIM) PTMAX=PTLIM
IF (IQK.NE.0.AND.IQK.LT.7.AND.IPRO.NE.23) THEN
XMIN=2.*SQRT(PTMIN**2+RMASS(IQK)**2)
XMAX=2.*SQRT(PTMAX**2+RMASS(IQK)**2)
IF (XMAX.GT.ETLIM) XMAX=ETLIM
ELSE
XMIN=2.*PTMIN
XMAX=2.*PTMAX
ENDIF
XPOW=-PTPOW
C--Gauge Boson pairs in hadron-hadron
ELSEIF(IPRO.EQ.28) THEN
IF(EMMIN.EQ.ZERO) EMMIN=20.0D0
C--Drell-Yan + 2 jets processes
ELSEIF(IPRO.EQ.29) THEN
IF(EMMIN.EQ.ZERO) EMMIN=20.0D0
IF(PTMAX.GT.ETLIM) PTMAX = ETLIM
C--Cuts on the graviton to avoid unitarity violations
C--If the width exceeds 0.1 times the mass this should be reset
ELSEIF(IPRO.EQ.42) THEN
EMMIN = 0.9D0*EMGRV
EMMAX = 1.1D0*EMGRV
ELSEIF (IPRO.EQ.52) THEN
PTELM=PTLIM-RMASS(IQK)**2/(4.*PTLIM)
IF (PTMAX.GT.PTELM) PTMAX=PTELM
XMIN=PTMIN
XMAX=PTMAX
XPOW=-PTPOW
ELSEIF (IPRO.EQ.30) THEN
IF (PTMAX.GT.PTLIM) PTMAX=PTLIM
XMIN=2.*SQRT(PTMIN**2+RMMNSS**2)
XMAX=2.*SQRT(PTMAX**2+RMMNSS**2)
IF (XMAX.GT.ETLIM) XMAX=ETLIM
XPOW=-PTPOW
C--PR MOD 7/7/99
ELSEIF(IPRO.EQ.40.OR.IPRO.EQ.41) THEN
IF (PTMAX.GT.PTLIM) PTMAX=PTLIM
ID = MOD(IPROC,100)
RPM(1) = RMMNSS
RPM(2) = ZERO
IF(ID.GE.10.AND.ID.LT.20) THEN
RPM(1) = ABS(RMASS(450))
IF(ID.GT.10) RPM(1) = ABS(RMASS(449+MOD(ID,10)))
ELSEIF(ID.GE.20.AND.ID.LT.30) THEN
RPM(1) = ABS(RMASS(454))
IF(ID.GT.20) RPM(1) = ABS(RMASS(453+MOD(ID,20)))
ELSEIF(ID.EQ.30) THEN
RPM(1) = RMASS(449)
ELSEIF(ID.EQ.40) THEN
IF(IPRO.EQ.40) THEN
RPM(1) = RMASS(425)
DO I=1,5
RPM(1) = MIN(RPM(1),RMASS(425+I))
ENDDO
ELSE
RPM(1) = MIN(RMASS(405),RMASS(406))
ENDIF
RPM(2) = RMASS(198)
ELSEIF(ID.EQ.50) THEN
IF(IPRO.EQ.40) THEN
RPM(1) = RMASS(425)
DO I=1,5
RPM(1) = MIN(RPM(1),RMASS(425+I))
ENDDO
DO I=1,3
RPM(2) = MIN(RPM(1),RMASS(433+2*I))
ENDDO
RPM(1) = MIN(RPM(1),RPM(2))
RPM(2) = RMASS(203)
DO I=1,2
RPM(2) = MIN(RPM(2),RMASS(204+I))
ENDDO
ELSE
RPM(1) = RMASS(401)
RPM(2) = RMASS(413)
DO I=1,5
RPM(1) = MIN(RPM(1),RMASS(401+I))
RPM(2) = MIN(RPM(2),RMASS(413+I))
ENDDO
RPM(1) = MIN(RPM(1),RPM(2))
RPM(2) = RMASS(203)
DO I=1,2
RPM(2) = MIN(RPM(2),RMASS(204+I))
ENDDO
ENDIF
RPM(2) = RMASS(203)
DO I=1,2
RPM(2) = MIN(RPM(2),RMASS(204+I))
ENDDO
ELSEIF(ID.GE.60) THEN
RPM(1) = ZERO
ENDIF
RPM(1) = RPM(1)**2
RPM(2) = RPM(2)**2
XMIN = SQRT(RPM(1)+RPM(2)+TWO*(PTMIN**2+
& SQRT(RPM(1)*RPM(2)+PTMIN**2*(RPM(1)+RPM(2)+PTMIN**2))))
XMAX = SQRT(RPM(1)+RPM(2)+TWO*(PTMAX**2+
& SQRT(RPM(1)*RPM(2)+PTMAX**2*(RPM(1)+RPM(2)+PTMAX**2))))
IF (XMAX.GT.ETLIM) XMAX=ETLIM
C--end of mod
ELSEIF (IPRO.EQ.90) THEN
XMIN=SQRT(Q2MIN)
XMAX=SQRT(Q2MAX)
XPOW=1.-2.*Q2POW
ELSEIF (IPRO.EQ.91) THEN
IF (EMMAX.GT.ETLIM) EMMAX=ETLIM
ENDIF
C---CALCULATE HIGGS WIDTH
IF (IPRO.EQ. 3.OR.IPRO.EQ. 4.OR.IPRO.EQ.10.OR.IPRO.EQ.16
&.OR.IPRO.EQ.19.OR.IPRO.EQ.23.OR.IPRO.EQ.25.OR.IPRO.EQ.26
&.OR.IPRO.EQ.27.OR.IPRO.EQ.95) THEN
GAMH=RMASS(201)
CALL HWDHIG(GAMH)
ENDIF
C---IF Q**2 CAN BE TOO SMALL, BREIT FRAME MAKES NO SENSE
IF ((IPRO/10.EQ.9.AND.Q2MIN.LE.1.D-2).OR.
& (IPRO.EQ.91.AND.IQK.EQ.7)) BREIT=.FALSE.
IF (IPRINT.NE.0) THEN
IF (PBEAM1.NE.PBEAM2) WRITE (6,180) USECMF
IF (IPRO.EQ.91.OR.IPRO.EQ.92)
& WRITE (6,190) PTMIN
IF (IPRO.EQ.90.OR.(IPRO.EQ.91.AND.IQK.NE.7).OR.IPRO.EQ.92)
& WRITE (6,200) Q2MIN,Q2MAX,BREIT
IF (IPRO.EQ.90.OR.(IPRO.EQ.91.AND.IQK.NE.7).OR.IPRO.EQ.92)
& WRITE (6,210) YBMIN,YBMAX
IF (IPRO.EQ.91.AND.IQK.EQ.7)
& WRITE (6,220) Q2WWMN,Q2WWMX,BREIT,ZJMAX
IF (IPROC/10.EQ.11) WRITE (6,230) THMAX
IF (IPRO.EQ.13) WRITE (6,240) EMMIN,EMMAX
IF (IPRO.EQ.15.OR.IPRO.EQ.17.OR.IPRO.EQ.18.OR.IPRO.EQ.21
& .OR.IPRO.EQ.22.OR.IPRO.EQ.23.OR.IPRO.EQ.24.OR.IPRO.EQ.50
& .OR.IPRO.EQ.51.OR.IPRO.EQ.52.OR.IPRO.EQ.53.OR.IPRO.EQ.55
& .OR.IPRO.EQ.60)
& WRITE (6,250) PTMIN,PTMAX
IF (IPRO.EQ. 3.OR.IPRO.EQ. 4.OR.IPRO.EQ.10.OR.IPRO.EQ.16
& .OR.IPRO.EQ.19.OR.IPRO.EQ.23.OR.IPRO.EQ.25.OR.IPRO.EQ.26
& .OR.IPRO.EQ.27.OR.IPRO.EQ.95)
& WRITE (6,260) RMASS(201),GAMH,
& GAMMAX,RMASS(201)+GAMMAX*GAMH,(BRHIG(I)*100,I=1,12)
IF (IPRO.EQ.91) WRITE (6,270) BGSHAT,EMMIN,EMMAX
IF (IPRO.EQ.5.AND.IQK.LT.50)
& WRITE (6,280) EMMIN,EMMAX,PTMIN,PTMAX,CTMAX
IF (IPRO.EQ.5.AND.IQK.GE.50)
& WRITE (6,290) EMMIN,EMMAX,Q2MIN,Q2MAX,PTMIN
IF (IPRO.GT.12.AND.
& (IPRO.LT.90.AND.(ABS(IDB).EQ.11.OR.ABS(IDB).EQ.13).OR.
& (ABS(IDT).EQ.11.OR.ABS(IDT).EQ.13))) THEN
WRITE (6,300) Q2WWMN,Q2WWMX,YWWMIN,YWWMAX
IF (PHOMAS.GT.ZERO) WRITE (6,310) PHOMAS
ENDIF
IF (IPROC/10.EQ.10.OR.IPRO.EQ.90)
& WRITE (6,320) HARDME,SOFTME
C Check minimum mass threshold if ISR switched on
IF ((IPRO.LE.3.OR.IPRO.EQ.6).AND.ZMXISR.GT.ZERO) THEN
TEST=TWO*RMASS(IPART1)**2+ETLIM**2
TEST=FOUR*RMASS(2)**2/TEST
IF (TMNISR.LT.TEST) THEN
WRITE(6,175) TMNISR,TEST
175 FORMAT(10X,'Minimum invariant mass',F10.6,' too low'/
& 10X,'increasing to TMNISR=',F10.6)
TMNISR=TEST
ENDIF
WRITE (6,330) TMNISR,ONE-ZMXISR
ENDIF
IF (WHMIN.GT.ZERO .AND. IPRO.GT.12.AND.(IPRO.EQ.90.OR.
& (ABS(IDB).EQ.11.OR.ABS(IDB).EQ.13).OR.
& (ABS(IDT).EQ.11.OR.ABS(IDT).EQ.13))) WRITE (6,340) WHMIN
180 FORMAT(10X,'USE BEAM-TARGET C.M.F. =',L5)
190 FORMAT(10X,'MIN P-T FOR O(AS) DILS =',F10.4)
200 FORMAT(10X,'MIN ABS(Q**2) FOR DILS =',E10.4/
& 10X,'MAX ABS(Q**2) FOR DILS =',E10.4/
& 10X,'BREIT FRAME SHOWERING =',L5)
210 FORMAT(10X,'MIN BJORKEN Y FOR DILS =',F10.4/
& 10X,'MAX BJORKEN Y FOR DILS =',F10.4)
220 FORMAT(10X,'MIN ABS(Q**2) FOR J/PSI=',E10.4/
& 10X,'MAX ABS(Q**2) FOR J/PSI=',E10.4/
& 10X,'BREIT FRAME SHOWERING =',L5/
& 10X,'MAX Z FOR J/PSI =',F10.4)
230 FORMAT(10X,'MAX THRUST FOR 2->3 =',F10.4)
240 FORMAT(10X,'MIN MASS FOR DRELL-YAN =',F10.4/
& 10X,'MAX MASS FOR DRELL-YAN =',F10.4)
250 FORMAT(10X,'MIN P-TRAN FOR 2->2 =',F10.4/
& 10X,'MAX P-TRAN FOR 2->2 =',F10.4)
260 FORMAT(10X,'HIGGS BOSON MASS =',F10.4/
& 10X,'HIGGS BOSON WIDTH =',F10.4/
& 10X,'CUTOFF = EMH +',F4.1,'*GAMH=',F10.4/
& 10X,'HIGGS D DBAR =',F10.4/
& 10X,'BRANCHING U UBAR =',F10.4/
& 10X,'FRACTIONS S SBAR =',F10.4/
& 10X,'(PER CENT) C CBAR =',F10.4/
& 10X,' B BBAR =',F10.4/
& 10X,' T TBAR =',F10.4/
& 10X,' E+ E- =',F10.4/
& 10X,' MU+ MU- =',F10.4/
& 10X,' TAU+ TAU- =',F10.4/
& 10X,' W W =',F10.4/
& 10X,' Z Z =',F10.4/
& 10X,' GAMMA GAMMA =',F10.4)
270 FORMAT(10X,'SCALE FOR BGF IS S-HAT =',L5/
& 10X,'MIN MASS FOR BGF =',F10.4/
& 10X,'MAX MASS FOR BGF =',F10.4)
280 FORMAT(10X,'MIN MASS FOR 2 PHOTONS =',F10.4/
& 10X,'MAX MASS FOR 2 PHOTONS =',F10.4/
& 10X,'MIN PT OF 2 PHOTON CMF =',F10.4/
& 10X,'MAX PT OF 2 PHOTON CMF =',F10.4/
& 10X,'MAX COS THETA IN CMF =',F10.4)
290 FORMAT(10X,'MIN MASS FOR GAMMA + W =',F10.4/
& 10X,'MAX MASS FOR GAMMA + W =',F10.4/
& 10X,'MIN ABS(Q**2) =',E10.4/
& 10X,'MAX ABS(Q**2) =',E10.4/
& 10X,'MIN PT =',F10.4)
300 FORMAT(10X,'MIN Q**2 FOR WW PHOTON =',F10.4/
& 10X,'MAX Q**2 FOR WW PHOTON =',F10.4/
& 10X,'MIN MOMENTUM FRACTION =',F10.4/
& 10X,'MAX MOMENTUM FRACTION =',F10.4)
310 FORMAT(10X,'GAMMA* S.F. MASS PARAM =',F10.4)
320 FORMAT(10X,'HARD M.E. MATCHING =',L5/
& 10X,'SOFT M.E. MATCHING =',L5)
330 FORMAT(10X,'MIN MTM FRAC FOR ISR =',1PE10.4/
& 10X,'1-MAX MTM FRAC FOR ISR =',1PE10.4)
340 FORMAT(10X,'MINIMUM HADRONIC MASS =',F10.4)
IF (LWEVT.LE.0) THEN
WRITE (6,350)
ELSE
WRITE (6,360) LWEVT
ENDIF
350 FORMAT(/10X,'NO EVENTS WILL BE WRITTEN TO DISK')
360 FORMAT(/10X,'EVENTS WILL BE OUTPUT ON UNIT',I4)
ENDIF
C Verify and print beam polarisations
IF((IPRO.EQ.1.OR.IPRO.EQ.3).OR.
& ((IPRO.EQ.9).AND.(MOD(IPROC,10000).EQ.960)).OR.
& ((IPRO.EQ.9).AND.(MOD(IPROC,10000).EQ.970)))THEN
C Set up transverse polarisation parameters for e+e-
IF ((EPOLN(1)**2+EPOLN(2)**2)
& *(PPOLN(1)**2+PPOLN(2)**2).GT.ZERO) THEN
TPOL=.TRUE.
COSS=EPOLN(1)*PPOLN(1)-EPOLN(2)*PPOLN(2)
SINS=EPOLN(2)*PPOLN(1)+EPOLN(1)*PPOLN(2)
ELSE
TPOL=.FALSE.
ENDIF
C print out lepton beam polarisation(s)
IF (IPRINT.NE.0) THEN
IF (IPART1.EQ.121) THEN
WRITE (6,370) PART1,EPOLN,PART2,PPOLN
ELSE
WRITE (6,370) PART1,PPOLN,PART2,EPOLN
ENDIF
370 FORMAT(/10X,A8,'Beam polarisation=',3F10.4/
& 10X,A8,'Beam polarisation=',3F10.4)
ENDIF
ELSEIF (IPRO.GE.90.AND.IPRO.LE.99) THEN
IF (IDB.GE.11.AND.IDB.LE.16) THEN
CALL HWVZRO(3,PPOLN)
C Check neutrino polarisations for DIS
IF (IDB.EQ. 12.OR.IDB.EQ. 14.OR.IDB.EQ. 16.AND.
& EPOLN(3).NE.-ONE) EPOLN(3)=-ONE
IF (IPRINT.NE.0) WRITE(6,380) PART1,EPOLN(3)
ELSE
CALL HWVZRO(3,EPOLN)
C Check anti-neutrino polarisations for DIS
IF (IDB.EQ.-12.OR.IDB.EQ.-14.OR.IDB.EQ.-16.AND.
& PPOLN(3).NE.ONE) PPOLN(3)=ONE
IF (IPRINT.NE.0) WRITE(6,380) PART1,PPOLN(3)
ENDIF
380 FORMAT(/10X,A8,1X,'Longitudinal beam polarisation=',F10.4/)
ENDIF
IF (IPRINT.NE.0) THEN
IF (ZPRIME) THEN
WRITE(6,390) RMASS(200),RMASS(202),GAMZ,GAMZP
WRITE(6,400) (RNAME(I),VFCH(I,1),AFCH(I,1),VFCH(I,2),
& AFCH(I,2),I=1,6)
WRITE(6,400) (RNAME(110+I),VFCH(I,1),AFCH(I,1),
& VFCH(I,2),AFCH(I,2),I=11,16)
390 FORMAT(/10X,'MASSIVE NEUTRAL VECTOR BOSON PARAMS'/
& 10X,'Z MASS=',F10.4,7X,'Z-PRIME MASS=',F10.4/
& 10X,' WIDTH=',F10.4,7X,' WIDTH=',F10.4/
& 10X,'FERMION COUPLINGS: e.(V.1+A.G_5)G_mu'/
& 10X,'FERMION: VECTOR AXIAL',6X,
& 'VECTOR AXIAL'/)
400 FORMAT(10X,A8,2X,F10.4,1X,F10.4,1X,F10.4,1X,F10.4)
ENDIF
IF (MIXING) THEN
WRITE(6,410) XMIX(2),YMIX(2),XMIX(1),YMIX(1)
410 FORMAT(/10X,'B_d: Delt-M/Gam =',F6.4,
& ' Delt-Gam/2*Gam =',F6.4,/
& 10X,'B_s: Delt-M/Gam =',F6.2,
& ' Delt-Gam/2*Gam =',F6.4)
ENDIF
IF (CLRECO) WRITE(6,420) PRECO,EXAG
420 FORMAT(/10X,'Colour rearrangement ALLOWED, probability =',F6.4,/
& 10x,'Weak boson life-time exaggeration factor =',F10.6)
C---PDF STRUCTURE FUNCTIONS
WRITE (6,'(1X)')
DO 450 I=1,2
IF (MODPDF(I).GE.0) THEN
WRITE (6,430) I,MODPDF(I),AUTPDF(I)
ELSE
WRITE (6,440) I
ENDIF
430 FORMAT(10X,'PDFLIB USED FOR BEAM',I2,': SET',I3,' OF ',A20)
440 FORMAT(10X,'PDFLIB NOT USED FOR BEAM',I2)
450 CONTINUE
C---GET THE UGLY INITIALISATION MESSAGES OVER AND DONE WITH NOW TOO
DO 460 I=1,2
IF (MODPDF(I).GE.0) THEN
PARM(1)=AUTPDF(I)
VAL(1)=FLOAT(MODPDF(I))
PARMSAVE=PARM(1)
VALSAVE=VAL(1)
FSTPDF=.TRUE.
X=0.5
QSCA=10
C---FIX TO CALL SCHULER-SJOSTRAND CODE
IF (AUTPDF(I).EQ.'SaSph') THEN
ISET=MOD(MODPDF(I),10)
IOP1=MOD(MODPDF(I)/10,2)
IOP2=MOD(MODPDF(I)/20,2)
IP2=MODPDF(I)/100
IF (ISET.EQ.1) THEN
WRITE (6,'(10X,A)')'SCHULER-SJOSTRAND PHOTON PDF SET 1D'
ELSEIF (ISET.EQ.2) THEN
WRITE (6,'(10X,A)')'SCHULER-SJOSTRAND PHOTON PDF SET 1M'
ELSEIF (ISET.EQ.3) THEN
WRITE (6,'(10X,A)')'SCHULER-SJOSTRAND PHOTON PDF SET 2D'
ELSEIF (ISET.EQ.4) THEN
WRITE (6,'(10X,A)')'SCHULER-SJOSTRAND PHOTON PDF SET 2M'
ELSE
WRITE (6,'(10X,A)')'UNKNOWN SCHULER-SJOSTRAND PDF SET'
CALL HWWARN('HWUINC',500)
ENDIF
IF (IOP1.EQ.1) THEN
WRITE (6,'(10X,A)') 'WITH DIRECT COMPONENT IN DIS'
IF (IPRO.NE.90) WRITE (6,'(10X,A)')
$ 'NOT RECOMMENDED FOR NON-DIS PROCESSES'
ENDIF
IF (IOP2.EQ.1) THEN
WRITE (6,'(10X,A)') 'WITH P**2 DEPENDENCE INCLUDED'
IF (PHOMAS.GT.ZERO)
$ WRITE (6,'(10X,A)') 'NOT RECOMMENDED WITH PHOMAS.GT.0'
IF (IP2.GT.0)
$ WRITE (6,'(10X,A,I2)') 'WITH IP2 OPTION EQUAL TO',IP2
ENDIF
ELSEIF (AUTPDF(I).EQ.'SSph') THEN
WRITE (6,'(10X,A)') 'THE ACRONYM FOR SCHULER-SJOSTRAND'
WRITE (6,'(10X,A)') 'HAS CHANGED TO SaSph ACCORDING TO'
WRITE (6,'(10X,A)') 'THEIR WISHES. SSph NO LONGER WORKS'
STOP
ELSE
CALL PDFSET_HERWIG(PARM,VAL)
CALL STRUCTM(X,QSCA,UPV,DNV,USEA,DSEA,STR,CHM,BTM,TOP,GLU)
ENDIF
ENDIF
460 CONTINUE
WRITE (6,'(1X)')
ENDIF
C Set up neutral B meson mixing parameters
IF (MIXING.AND..NOT.(RSTAB(223).AND.RSTAB(247))) THEN
XMRCT(1)=XMIX(1)*RMASS(223)/(CSPEED*RLTIM(223))
YMRCT(1)=YMIX(1)*RMASS(223)/(CSPEED*RLTIM(223))
ENDIF
IF (MIXING.AND..NOT.(RSTAB(221).AND.RSTAB(245))) THEN
XMRCT(2)=XMIX(2)*RMASS(221)/(CSPEED*RLTIM(221))
YMRCT(2)=YMIX(2)*RMASS(221)/(CSPEED*RLTIM(221))
ENDIF
C---B DECAY PACKAGE
IF (BDECAY.EQ.'EURO') THEN
IF (IPRINT.NE.0) WRITE (6,470) 'EURODEC'
ELSEIF (BDECAY.EQ.'CLEO') THEN
IF (IPRINT.NE.0) WRITE (6,470) 'CLEO'
ELSE
BDECAY='HERW'
ENDIF
470 FORMAT (10X,A,' B DECAY PACKAGE WILL BE USED')
C---TAU DECAY PACKAGE
IF(TAUDEC.EQ.'TAUOLA') THEN
IF(IPRINT.NE.0) WRITE(6,475) 'TAUOLA'
CALL HWDTAU(-1,0,0.0D0)
ENDIF
475 FORMAT(10X,A,' TAU DECAY PACKAGE WILL BE USED'/)
C---COMPUTE PARTICLE PROPERTIES FOR HADRONIZATION
CALL HWURES
C Prepare internal decay tables and do diagnostic checks
CALL HWUDKS
C Convert ampersands to backslahes in particle LaTeX names
CALL HWUATS
C---MISCELLANEOUS DERIVED QUANTITIES
TMTOP=2.*LOG(RMASS(6)/30.)
PXRMS=PTRMS/SQRT(2.)
ZBINM=0.25/ZBINM
PSPLT(1)=1./PSPLT(1)
PSPLT(2)=1./PSPLT(2)
NDTRY=2*NCTRY
NGSPL=0
PGSMX=0.
DO 480 I=1,4
PGS=HWUPCM(RMASS(13),RMASS(I),RMASS(I))
IF (PGS.GE.ZERO) NGSPL=I
IF (PGS.GE.PGSMX) PGSMX=PGS
480 PGSPL(I)=PGS
CALL HWVZRO(6,PTINT)
IF (IPRO.NE.80) THEN
C---SET UP TABLES OF SUDAKOV FORM FACTORS, GIVING
C PROBABILITY DISTRIBUTION IN VARIABLE Q = E*SQRT(XI)
NSUD=NFLAV
CALL HWBSUD
C---SET PARAMETERS FOR SPACELIKE BRANCHING
DO 500 I=1,NSUD
DO 490 J=2,NQEV
IF (QEV(J,I).GT.QSPAC) GOTO 500
490 CONTINUE
500 NSPAC(I)=J-1
ENDIF
EVWGT=AVWGT
ISTAT=1
C--optimize the weights for the channels if needed
CALL HWIPHS(2)
C--perform the initialisation of the SUSY ME's
IF(SYSPIN.OR.THREEB.OR.FOURB) THEN
CALL HWISPN
IF (IPRINT.NE.0) WRITE (6,510)
510 FORMAT(/10X,'CHECKING SUSY DECAY MATRIX ELEMENTS')
ENDIF
C Print particle decay tables here
IF (IPRINT.GE.2) CALL HWUDPR
C-- initialise photos if needed
IF ((TAUDEC.EQ.'TAUOLA'.AND.IFPHOT.EQ.1).OR.ITOPRD.EQ.1)
& CALL PHOINI
END
CDECK ID>, HWUINE.
*CMZ :- -16/10/93 12.42.15 by Mike Seymour
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUINE
C-----------------------------------------------------------------------
C INITIALISES AN EVENT
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWRGEN,HWRGET,DUMMY
REAL TL
LOGICAL CALLED,HWRLOG
EXTERNAL HWRGEN,HWRGET,HWRLOG
COMMON/HWDBUG/CALLED
C---CHECK THAT MAIN PROGRAM HAS BEEN MODIFIED CORRECTLY
IF (NEVHEP.GT.0.AND..NOT.CALLED) THEN
WRITE (6,10)
10 FORMAT (1X,'A call to the subroutine HWUFNE should be added to',
& /,' the main program, immediately after the call to HWMEVT')
CALL HWWARN('HWUINE',500)
ENDIF
CALLED=.FALSE.
C---CHECK TIME LEFT
CALL HWUTIM(TL)
IF (TL.LT.TLOUT) CALL HWWARN('HWUINE',200)
C---UPDATE RANDOM NUMBER SEED
DUMMY = HWRGET(NRN)
NEVHEP=NEVHEP+1
IF (NEGWTS.AND.EVWGT.LT.ZERO) NNEGEV=NNEGEV+1
NHEP=0
ISTAT=6
IERROR=0
EVWGT=AVWGT
HVFCEN=.FALSE.
ISLENT=1
NQDK=0
C---DECIDE WHETHER TO GENERATE SOFT UNDERLYING EVENT
GENSOF=IPROC.GE.1300.AND.IPROC.LT.10000.AND.
& (IPROC.EQ.8000.OR.HWRLOG(PRSOF))
C Zero arrays
CALL HWVZRI(2*NMXHEP,JMOHEP)
CALL HWVZRI(2*NMXHEP,JDAHEP)
CALL HWVZRO(4*NMXHEP,VHEP)
CALL HWVZRO(3*NMXHEP,RHOHEP)
EMSCA=ZERO
IF(SYSPIN) THEN
NSPN = 0
CALL HWVZRI( NMXHEP,ISNHEP)
CALL HWVZRI( NMXSPN,JMOSPN)
CALL HWVZRI(2*NMXSPN,JDASPN)
CALL HWVZRI( NMXSPN, IDSPN)
ENDIF
END
CDECK ID>, HWULB4.
*CMZ :- -05/11/95 19.33.42 by Mike Seymour
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWULB4(PS,PI,PF)
C-----------------------------------------------------------------------
C TRANSFORMS PI (GIVEN IN REST FRAME OF PS) INTO PF (IN LAB)
C N.B. P(1,2,3,4) = (PX,PY,PZ,E); PS(5)=M
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION PF4,FN,PS(5),PI(4),PF(4)
IF (PS(4).EQ.PS(5)) THEN
PF(1)= PI(1)
PF(2)= PI(2)
PF(3)= PI(3)
PF(4)= PI(4)
ELSE
PF4 = (PI(1)*PS(1)+PI(2)*PS(2)
& +PI(3)*PS(3)+PI(4)*PS(4))/PS(5)
FN = (PF4+PI(4)) / (PS(4)+PS(5))
PF(1)= PI(1) + FN*PS(1)
PF(2)= PI(2) + FN*PS(2)
PF(3)= PI(3) + FN*PS(3)
PF(4)= PF4
END IF
END
CDECK ID>, HWULDO.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C----------------------------------------------------------------------
FUNCTION HWULDO(P,Q)
C----------------------------------------------------------------------
C LORENTZ 4-VECTOR DOT PRODUCT
C----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWULDO,P(4),Q(4)
HWULDO=P(4)*Q(4)-(P(1)*Q(1)+P(2)*Q(2)+P(3)*Q(3))
END
CDECK ID>, HWULF4.
*CMZ :- -05/11/95 19.33.42 by Mike Seymour
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWULF4(PS,PI,PF)
C-----------------------------------------------------------------------
C TRANSFORMS PI (GIVEN IN LAB) INTO PF (IN REST FRAME OF PS)
C N.B. P(1,2,3,4) = (PX,PY,PZ,E); PS(5)=M
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION PF4,FN,PS(5),PI(4),PF(4)
IF (PS(4).EQ.PS(5)) THEN
PF(1)= PI(1)
PF(2)= PI(2)
PF(3)= PI(3)
PF(4)= PI(4)
ELSE
PF4 = (PI(4)*PS(4)-PI(3)*PS(3)
& -PI(2)*PS(2)-PI(1)*PS(1))/PS(5)
FN = (PF4+PI(4)) / (PS(4)+PS(5))
PF(1)= PI(1) - FN*PS(1)
PF(2)= PI(2) - FN*PS(2)
PF(3)= PI(3) - FN*PS(3)
PF(4)= PF4
END IF
END
CDECK ID>, HWULI2.
*CMZ :- -23/08/94 13.22.29 by Mike Seymour
*-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWULI2(X)
C-----------------------------------------------------------------------
C Complex dilogarithm function, Li_2 (Spence function)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX HWULI2,PROD,Y,Y2,X,Z
DOUBLE PRECISION XR,XI,R2,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2,
& ZERO,ONE,HALF
PARAMETER (ZERO=0.0D0, ONE=1.0D0, HALF=0.5D0)
SAVE A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2
DATA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2/ -0.250000000000000D0,
& -0.111111111111111D0,-0.010000000000000D0,-0.017006802721088D0,
& -0.019444444444444D0,-0.020661157024793D0,-0.021417300648069D0,
& -0.021948866377231D0,-0.022349233811171D0,-0.022663689135191D0,
& 1.644934066848226D0/
PROD(Y,Y2)=Y*(ONE+A1*Y*(ONE+A2*Y*(ONE+A3*Y2*(ONE+A4*Y2*(ONE+A5*Y2*
& (ONE+A6*Y2*(ONE+A7*Y2*(ONE+A8*Y2*(ONE+A9*Y2*(ONE+A10*Y2))))))))))
XR=DREAL(X)
XI=DIMAG(X)
R2=XR*XR+XI*XI
IF (R2.GT.ONE.AND.(XR/R2).GT.HALF) THEN
Z=-LOG(ONE/X)
HWULI2=PROD(Z,Z*Z)+ZETA2-LOG(X)*LOG(ONE-X)+HALF*LOG(X)**2
ELSEIF (R2.GT.ONE.AND.(XR/R2).LE.HALF) THEN
Z=-LOG(ONE-ONE/X)
HWULI2=-PROD(Z,Z*Z)-ZETA2-HALF*LOG(-X)**2
ELSEIF (R2.EQ.ONE.AND.XI.EQ.ZERO) THEN
HWULI2=ZETA2
ELSEIF (R2.LE.ONE.AND.XR.GT.HALF) THEN
Z=-LOG(X)
HWULI2=-PROD(Z,Z*Z)+ZETA2-LOG(X)*LOG(ONE-X)
ELSE
Z=-LOG(ONE-X)
HWULI2=PROD(Z,Z*Z)
ENDIF
END
CDECK ID>, HWULOB.
*CMZ :- -05/11/95 19.33.42 by Mike Seymour
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWULOB(PS,PI,PF)
C-----------------------------------------------------------------------
C TRANSFORMS PI (GIVEN IN REST FRAME OF PS) INTO PF (IN LAB)
C N.B. P(1,2,3,4,5) = (PX,PY,PZ,E,M)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION PS(5),PI(5),PF(5)
CALL HWULB4(PS,PI,PF)
PF(5)= PI(5)
END
CDECK ID>, HWULOF.
*CMZ :- -05/11/95 19.33.42 by Mike Seymour
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWULOF(PS,PI,PF)
C-----------------------------------------------------------------------
C TRANSFORMS PI (GIVEN IN LAB) INTO PF (IN REST FRAME OF PS)
C N.B. P(1,2,3,4,5) = (PX,PY,PZ,E,M)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION PS(5),PI(5),PF(5)
CALL HWULF4(PS,PI,PF)
PF(5)= PI(5)
END
CDECK ID>, HWULOR.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Giovanni Abbiendi & Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE HWULOR (TRANSF,PI,PF)
C-----------------------------------------------------------------------
C Makes the HWULOR transformation specified by TRANSF on the
C quadrivector PI(5), giving PF(5).
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION TRANSF(4,4),PI(5),PF(5)
INTEGER I,J
DO 1 I=1,5
PF(I)=0.D0
1 CONTINUE
DO 3 I=1,4
DO 2 J=1,4
PF(I) = PF(I) + TRANSF(I,J) * PI(J)
2 CONTINUE
3 CONTINUE
PF(5) = PI(5)
END
CDECK ID>, HWUMAS.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUMAS(P)
C-----------------------------------------------------------------------
C PUTS INVARIANT MASS IN 5TH COMPONENT OF VECTOR
C (NEGATIVE SIGN IF SPACELIKE)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWUSQR,P(5)
EXTERNAL HWUSQR
P(5)=HWUSQR((P(4)+P(3))*(P(4)-P(3))-P(1)**2-P(2)**2)
END
CDECK ID>, HWUMBW.
*CMZ :- -21/02/98 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWUMBW(ID)
C-----------------------------------------------------------------------
C CHOOSES MASS ACCORDING TO BREIT-WIGNER DISTRIBUTION
C--BRW fix 27/8/04: changed from mass to mass-squared BW formula
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUMBW,HWRGEN,WMX,TAU,GAM,T,TM
INTEGER ID
C--WMX IS MAX NUMBER OF WIDTHS FROM NOMINAL MASS
WMX=GAMMAX
HWUMBW=RMASS(ID)
IF(ID.EQ.198.OR.ID.EQ.199) THEN
TAU = HBAR/GAMW
ELSEIF(ID.EQ.200) THEN
TAU = HBAR/GAMZ
ELSEIF(ID.EQ.201) THEN
TAU = HBAR/GAMH
ELSE
TAU=RLTIM(ID)
ENDIF
IF (TAU.EQ.ZERO.OR.TAU.GT.1D-18) RETURN
GAM=HBAR/TAU
1 T=TAN(PIFAC*(HWRGEN(0)-HALF))
TM=RMASS(ID)*(RMASS(ID)+GAM*T)
IF(TM.LT.ZERO) GOTO 1
TM=SQRT(TM)
IF (ABS(TM-RMASS(ID)).GT.WMX*GAM) GOTO 1
HWUMBW=TM
END
CDECK ID>, HWUNST.
*CMZ :- -27/07/99 13.33.03 by Mike Seymour
*-- Author : Ian Knowles
C-----------------------------------------------------------------------
FUNCTION HWUNST(N)
C-----------------------------------------------------------------------
C Creates a character string of length 7 equivalent to integer N
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I,M,NN(7)
CHARACTER*1 NCHAR(0:9)
CHARACTER*7 HWUNST
SAVE NCHAR
DATA NCHAR/'0','1','2','3','4','5','6','7','8','9'/
M=1
DO 10 I=7,1,-1
NN(I)=MOD(N/M,10)
10 M=M*10
WRITE(HWUNST,'(7A1)') (NCHAR(NN(I)),I=1,7)
END
CDECK ID>, HWUPCM.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWUPCM(EM0,EM1,EM2)
C-----------------------------------------------------------------------
C C.M. MOMENTUM FOR DECAY MASSES EM0 -> EM1 + EM2
C SET TO -1 BELOW THRESHOLD
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWUPCM,EM0,EM1,EM2,EMS,EMD
EMS=ABS(EM1+EM2)
EMD=ABS(EM1-EM2)
IF (EM0.LT.EMS.OR.EM0.LT.EMD) THEN
HWUPCM=-1.
ELSEIF (EM0.EQ.EMS.OR.EM0.EQ.EMD) THEN
HWUPCM=0.
ELSE
HWUPCM=SQRT((EM0+EMD)*(EM0-EMD)*
& (EM0+EMS)*(EM0-EMS))*.5/EM0
ENDIF
END
CDECK ID>, HWURAP.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWURAP(P)
C-----------------------------------------------------------------------
C LONGITUDINAL RAPIDITY (SET TO +/-1000 IF TOO LARGE)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWURAP,EMT2,P(5),ZERO
PARAMETER (ZERO=0.D0)
EMT2=P(1)**2+P(2)**2+P(5)**2
IF (P(3).GT.ZERO) THEN
IF (EMT2.EQ.ZERO) THEN
HWURAP=1000.
ELSE
HWURAP= 0.5*LOG((P(3)+P(4))**2/EMT2)
ENDIF
ELSEIF (P(3).LT.ZERO) THEN
IF (EMT2.EQ.ZERO) THEN
HWURAP=-1000.
ELSE
HWURAP=-0.5*LOG((P(3)-P(4))**2/EMT2)
ENDIF
ELSE
HWURAP=0.
ENDIF
END
CDECK ID>, HWUMPO.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWUMPO(P,M,PMM,MGAM,PPROJ,FPROP)
C-----------------------------------------------------------------------
C RETURNS PROJECTION OPERATOR 1/(P-SLASH - M + I*MGAM) IN WEYL-BASIS
C USED IN SUBROUTINE HWH2QH
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION P(0:3),M,PMM,MGAM,ZERO,ONE
DOUBLE COMPLEX PROP, PPROJ(4,4), CZERO
LOGICAL FPROP
PARAMETER (ZERO=0.D0,CZERO=(0.D0,0.D0),ONE=1.D0)
IF (FPROP) THEN
PROP=ONE/DCMPLX(PMM,MGAM)
ELSE
PROP=DCMPLX(ONE/PMM, ZERO)
END IF
PPROJ(1,1) = M*PROP
PPROJ(1,2) = CZERO
PPROJ(2,1) = CZERO
PPROJ(2,2) = PPROJ(1,1)
PPROJ(1,3) = (P(0)-P(3))*PROP
PPROJ(1,4) = DCMPLX(-P(1),P(2))*PROP
PPROJ(2,3) = DCMPLX(-P(1),-P(2))*PROP
PPROJ(2,4) = (P(0)+P(3))*PROP
PPROJ(3,1) = PPROJ(2,4)
PPROJ(3,2) = -PPROJ(1,4)
PPROJ(4,1) = -PPROJ(2,3)
PPROJ(4,2) = PPROJ(1,3)
PPROJ(3,3) = PPROJ(1,1)
PPROJ(3,4) = CZERO
PPROJ(4,3) = CZERO
PPROJ(4,4) = PPROJ(1,1)
END
CDECK ID>, HWUMPP.
*CMZ :- -26/11/00 17.21.55 by Bryan Webber
*-- Author : Kosuke Odagiri
C-----------------------------------------------------------------------
SUBROUTINE HWUMPP(M,GPM,PERM,U,UU,LR)
C-----------------------------------------------------------------------
C APPLIES OPERATOR FROM HWUMPO ON SPINORS.
C SPINOR COMPONENTS CAN BE PERMUTATED (PERM) AND TRANSVERSED (LR)
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE COMPLEX U(4), TEMP, A(4,4), M(16), UU(4), CZERO
DOUBLE PRECISION GPM(2), FAC, ZERO, ONE, MONE
INTEGER LR,TV(4,4,2),I,J, PERM(4), IZERO, GTOF(4)
PARAMETER (ZERO=0.D0,CZERO=(0.D0,0.D0),IZERO=0)
PARAMETER (ONE =1.D0,MONE = -1.D0)
SAVE GTOF,TV
DATA GTOF/1,1,2,2/
DATA TV/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
& 1,5,9,13,2,6,10,14,3,7,11,15,4,8,12,16/
DO I=1,4
FAC = GPM(GTOF(I))
IF ((PERM(I).EQ.IZERO).OR.(FAC.EQ.ZERO)) THEN
DO J=1,4
A(I,J)=CZERO
END DO
ELSE
IF(FAC.EQ.ONE) THEN
TEMP = U(PERM(I))
ELSEIF(FAC.EQ.MONE) THEN
TEMP = -U(PERM(I))
ELSE
TEMP = FAC*U(PERM(I))
ENDIF
IF(TEMP.NE.ZERO) THEN
DO J=1,4
IF(M(TV(I,J,LR)).NE.ZERO) THEN
A(I,J)=TEMP*M(TV(I,J,LR))
ELSE
A(I,J)=ZERO
ENDIF
END DO
ELSE
DO J=1,4
A(I,J)=ZERO
END DO
END IF
END IF
END DO
DO J=1,4
UU(J)=A(1,J)+A(2,J)+A(3,J)+A(4,J)
END DO
END
CDECK ID>, HWUPUP.
*CMZ :- -13/02/02 16.42.23 by Peter Richardson
*-- Author : Bryan Webber
C----------------------------------------------------------------------
SUBROUTINE HWUPUP
C----------------------------------------------------------------------
C Prints contents of the GUPI (Generic User Process Interface)
C common block HEPEUP
C----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER MAXNUP
PARAMETER (MAXNUP=500)
INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,
& IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP),
& ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP),
& SPINUP(MAXNUP)
INTEGER IUP,IWIG,I
CHARACTER*8 NAME
PRINT *
PRINT *, ' I ISTUP IDUP NAME MOTHUP ICOLUP PUP'
DO IUP=1,NUP
CALL HWUIDT(1,IDUP(IUP),IWIG,NAME)
PRINT 11,IUP,ISTUP(IUP),IDUP(IUP),NAME,MOTHUP(1,IUP),
& MOTHUP(2,IUP),ICOLUP(1,IUP),ICOLUP(2,IUP),(PUP(I,IUP),I=1,5)
Enddo
11 Format(2I3,I4,2X,A8,2I3,2I4,5F8.1)
End
CDECK ID>, HWURES.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Ian Knowles & Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWURES
C-----------------------------------------------------------------------
C Using properties of particle I supplied in HWUDAT checks particles
C and antiparticles have compatible properties and sets SWTEF(I) =
C ( rep. enhancement factor)^2 - used in cluster decays
C Finds iso-flavour hadrons and creates pointers for cluster decays.
C Sets CLDKWT(K) =(2J+1) spin weight normalizing largest value to 1.
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER NMXTMP
PARAMETER (NMXTMP=20)
DOUBLE PRECISION EPS,WTMX,REMMN,RWTMX,WTMP,RESTMP(91),WTMX2,
& REMMN2,WT,CDWTMP(NMXTMP)
INTEGER HWUANT,MAPF(89),MAPC(12,12),I,IANT,IABPDG,J,L,N,K,LTMP,
& NCDKS,IMN,ITMP,LOCTMP(91),NTMP,NCDTMP(NMXTMP),IMN2
EXTERNAL HWUANT
PARAMETER (EPS=1.D-6)
SAVE MAPF,MAPC
DATA MAPF/21,31,41,51,61,12,32,42,52,62,13,23,43,53,63,14,24,34,
& 44,54,64,15,25,35,45,55,65,16,26,36,46,56,66,111,112,113,122,123,
& 133,222,223,233,333,-111,-112,-113,-122,-123,-133,-222,-223,-233,
& -333,114,124,134,224,234,334,-114,-124,-134,-224,-234,-334,115,
& 125,135,225,235,335,-115,-125,-135,-225,-235,-335,116,126,136,
& 226,236,336,-116,-126,-136,-226,-236,-336/
DATA MAPC/90,1,2,47,45,44,48,46,49,3,4,5,6,90,7,50,47,45,51,48,52,
& 8,9,10,11,12,91,51,48,46,52,49,53,13,14,15,37,40,41,6*0,57,69,81,
& 35,37,38,6*0,55,67,79,34,35,36,6*0,54,66,78,38,41,42,6*0,58,70,
& 82,36,38,39,6*0,56,68,80,39,42,43,6*0,59,71,83,16,17,18,63,61,60,
& 64,62,65,19,20,21,22,23,24,75,73,72,76,74,77,25,26,27,28,29,30,
& 87,85,84,88,86,89,31,32,33/
C Check particle/anti-particle properties are compatible
WRITE(6,10)
10 FORMAT(/10X,'Checking consistency of particle properties'/)
DO 20 I=10,NRES
IF (IDPDG(I).GT.0) THEN
IANT=HWUANT(I)
IF (IANT.EQ.20) GOTO 20
IF (MOD(IDPDG(I)/1000,10).EQ.0.AND.
& MOD(IDPDG(I)/100 ,10).NE.0) THEN
IF (MOD(IFLAV(I)/10-IFLAV(IANT),10).NE.0.OR.
& MOD(IFLAV(I)-IFLAV(IANT)/10,10).NE.0)
& WRITE(6,30) RNAME(I),IFLAV(I),IFLAV(IANT)
ELSE
IF (IFLAV(I)+IFLAV(IANT).NE.0)
& WRITE(6,30) RNAME(I),IFLAV(I),IFLAV(IANT)
ENDIF
IF (ICHRG(I)+ICHRG(IANT).NE.0)
& WRITE(6,40) RNAME(I),RNAME(IANT),ICHRG(I),ICHRG(IANT)
IF (ABS(RMASS(I)-RMASS(IANT)).GT.EPS)
& WRITE(6,50) RNAME(I),RMASS(I),RMASS(IANT)
IF (ABS(RLTIM(I)-RLTIM(IANT)).GT.EPS)
& WRITE(6,60) RNAME(I),RLTIM(I),RLTIM(IANT)
IF (ABS(RSPIN(I)-RSPIN(IANT)).GT.EPS)
& WRITE(6,70) RNAME(I),RSPIN(I),RSPIN(IANT)
ENDIF
20 CONTINUE
30 FORMAT(10X,A8,' flavour code=',I4,5X,' antiparticle=',I4)
40 FORMAT(10X,2A8,' charge =',I2,7X,' antiparticle=',I2)
50 FORMAT(10X,A8,' mass =',F7.3,2X,' antiparticle=',F7.3)
60 FORMAT(10X,A8,' life time =',E9.3,' antiparticle=',E9.3)
70 FORMAT(10X,A8,' spin =',F3.1,6X,' antiparticle=',F3.1)
C Compute resonance properties
DO 80 I=21,NRES
C Compute representation weights for hadrons, used in cluster decays
IABPDG=ABS(IDPDG(I))
J=MOD(IABPDG,10)
IF (J.EQ.2.AND.MOD(IABPDG/100,10).LT.MOD(IABPDG/10,10)) THEN
C Singlet (Lambda-like) baryon
SWTEF(I)=SNGWT**2
ELSEIF (J.EQ.4) THEN
C Decuplet baryon
SWTEF(I)=DECWT**2
ELSEIF(2*(J/2).NE.J) THEN
C Mesons: identify by spin, angular momentum & radial excitation
J=(J-1)/2
L= MOD(IABPDG/10000 ,10)
N= MOD(IABPDG/100000,10)
IF (L.EQ.0.AND.J.EQ.0.AND.N.EQ.0.OR.
& L.GT.3.OR. J.GT.4.OR .N.GT.4) THEN
SWTEF(I)=1.
ELSE
SWTEF(I)=REPWT(L,J,N)**2
ENDIF
ELSE
C Not recognized
SWTEF(I)=1.
ENDIF
80 CONTINUE
C Prepare tables for cluster decays, except flavourless light mesons
LTMP=1
NCDKS=0
DO 120 I=1,89
C Store particles, flavour MAPF(I), noting highest spin and lowest mass
WTMX=0.
REMMN=1000.
DO 90 J=21,NRES
IF (VTOCDK(J).OR.IFLAV(J).NE.MAPF(I)) GOTO 90
NCDKS=NCDKS+1
IF (NCDKS.GT.NMXCDK) THEN
CALL HWWARN('HWURES',101)
GOTO 999
ENDIF
NCLDK(NCDKS)=J
CLDKWT(NCDKS)=TWO*RSPIN(J)+ONE
IF (CLDKWT(NCDKS).GT.WTMX) WTMX=CLDKWT(NCDKS)
IF (RMASS(J).LT.REMMN) THEN
REMMN=RMASS(J)
IMN=NCDKS
ENDIF
90 CONTINUE
IF (NCDKS+1-LTMP.EQ.0) THEN
WRITE(6,100) MAPF(I)
100 FORMAT(1X,'No particles exist for a cluster with flavour, ',I4,
& ' to decay into')
CALL HWWARN('HWURES',51)
GOTO 120
ENDIF
C Set scaled spin weights
RWTMX=1./WTMX
DO 110 J=LTMP,NCDKS
110 CLDKWT(J)=CLDKWT(J)*RWTMX
C Swap order if lightest hadron of given flavour not first
IF (IMN.NE.LTMP) THEN
ITMP=NCLDK(LTMP)
WTMP=CLDKWT(LTMP)
NCLDK(LTMP)=NCLDK(IMN)
CLDKWT(LTMP)=CLDKWT(IMN)
NCLDK(IMN)=ITMP
CLDKWT(IMN)=WTMP
ENDIF
C Set pointers etc
LOCTMP(I)=LTMP
RESTMP(I)=FLOAT(NCDKS+1-LTMP)
LTMP=NCDKS+1
120 CONTINUE
C Now do flavourless light mesons, allowing for mixing in weights
WTMX=0.
REMMN=1000.
WTMX2=0.
REMMN2=1000.
NTMP=0
DO 140 J=21,NRES
IF (VTOCDK(J)) THEN
GOTO 140
C Calculate mixing weight for (|uubar>+|ddbar>)/sqrt(2) component
ELSEIF (IFLAV(J).EQ.11) THEN
WT=1.
ELSEIF (IFLAV(J).EQ.33) THEN
C eta - eta'
IF (J.EQ.22 ) THEN
WT=COS(ETAMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.25 ) THEN
WT=SIN(ETAMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
C phi - omega
ELSEIF (J.EQ.56 ) THEN
WT=COS(PHIMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.24 ) THEN
WT=SIN(PHIMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
C f'_2 - f_2
ELSEIF (J.EQ.58 ) THEN
WT=COS(F2MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.26 ) THEN
WT=SIN(F2MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
C f_1(1420) - f_1(1285)
ELSEIF (J.EQ.57 ) THEN
WT=COS(F1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.28 ) THEN
WT=SIN(F1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
C h_1(1380) - h_1(1170)
ELSEIF (J.EQ.289) THEN
WT=COS(H1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.288) THEN
WT=SIN(H1MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
C MISSING - f_0(1370)
ELSEIF (J.EQ.294) THEN
WT=SIN(F0MIX *PIFAC/180.+ATAN(SQRT(TWO)))**2
C phi_3 - omega_3
ELSEIF (J.EQ.396) THEN
WT=COS(PH3MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.395) THEN
WT=SIN(PH3MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
C eta_2(1645) - eta_2(1870)
ELSEIF (J.EQ.397) THEN
WT=COS(ET2MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSEIF (J.EQ.398) THEN
WT=SIN(ET2MIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
C MISSING - omega(1600)
ELSEIF (J.EQ.399) THEN
WT=SIN(OMHMIX*PIFAC/180.+ATAN(SQRT(TWO)))**2
ELSE
WT=1./3.
WRITE(6,130) J
130 FORMAT(1X,'Isoscalar particle ',I3,' not recognised,',
& ' no I=0 mixing assumed')
ENDIF
ELSE
GOTO 140
ENDIF
IF (WT.GT.EPS) THEN
NCDKS=NCDKS+1
IF (NCDKS.GT.NMXCDK) THEN
CALL HWWARN('HWURES',102)
GOTO 999
ENDIF
NCLDK(NCDKS)=J
CLDKWT(NCDKS)=WT*(TWO*RSPIN(J)+ONE)
IF (CLDKWT(NCDKS).GT.WTMX) WTMX=CLDKWT(NCDKS)
IF (RMASS(J).LT.REMMN) THEN
REMMN=RMASS(J)
IMN=NCDKS
ENDIF
ENDIF
IF (ONE-WT.GT.EPS) THEN
NTMP=NTMP+1
IF (NTMP.GT.NMXTMP) THEN
CALL HWWARN('HWURES',103)
GOTO 999
ENDIF
NCDTMP(NTMP)=J
CDWTMP(NTMP)=(ONE-WT)*(TWO*RSPIN(J)+ONE)
IF (CDWTMP(NTMP).GT.WTMX2) WTMX2=CDWTMP(NTMP)
IF (RMASS(J).LT.REMMN2) THEN
REMMN2=RMASS(J)
IMN2=NTMP
ENDIF
ENDIF
140 CONTINUE
IF (NCDKS+1-LTMP.EQ.0) THEN
WRITE(6,100) 11
CALL HWWARN('HWURES',52)
GOTO 160
ENDIF
C Normalize scaled spin weights
RWTMX=1./WTMX
DO 150 I=LTMP,NCDKS
150 CLDKWT(I)=CLDKWT(I)*RWTMX
C Swap order if lightest hadron of flavour 11 not first
IF (IMN.NE.LTMP) THEN
ITMP=NCLDK(LTMP)
WTMP=CLDKWT(LTMP)
NCLDK(LTMP)=NCLDK(IMN)
CLDKWT(LTMP)=CLDKWT(IMN)
NCLDK(IMN)=ITMP
CLDKWT(IMN)=WTMP
ENDIF
160 IF (NTMP.EQ.0) THEN
WRITE(6,100) 33
CALL HWWARN('HWURES',53)
GOTO 180
ENDIF
IF (NCDKS+NTMP.GT.NMXCDK) THEN
CALL HWWARN('HWURES',104)
GOTO 999
ENDIF
C Store hadrons for |ssbar> channel and normalize their weights
RWTMX=1./WTMX2
DO 170 I=1,NTMP
J=NCDKS+I
NCLDK(J)=NCDTMP(I)
170 CLDKWT(J)=CDWTMP(I)*RWTMX
C Swap order if lightest hadron of flavour 33 not first
IF (IMN2.NE.1) THEN
ITMP=NCLDK(NCDKS+1)
WTMP=CLDKWT(NCDKS+1)
NCLDK(NCDKS+1)=NCLDK(NCDKS+IMN2)
CLDKWT(NCDKS+1)=CLDKWT(NCDKS+IMN2)
NCLDK(NCDKS+IMN2)=ITMP
CLDKWT(NCDKS+IMN2)=WTMP
ENDIF
C Set pointers etc
180 LOCTMP(90)=LTMP
RESTMP(90)=FLOAT(NCDKS+1-LTMP)
LOCTMP(91)=NCDKS+1
RESTMP(91)=FLOAT(NTMP)
C Set pointers to hadrons of given flavours for cluster decays
DO 190 I=1,12
DO 190 J=1,12
K=MAPC(I,J)
IF (K.EQ.0) THEN
LOCN(I,J)=0
RESN(I,J)=0
RMIN(I,J)=MIN(RMASS(NCLDK(LOCN(I,1)))+RMASS(NCLDK(LOCN(1,J))),
$ RMASS(NCLDK(LOCN(I,2)))+RMASS(NCLDK(LOCN(2,J))))+1.D-2
ELSE
LOCN(I,J)=LOCTMP(K)
RESN(I,J)=RESTMP(K)
RMIN(I,J)=RMASS(NCLDK(LOCN(I,J)))
ENDIF
190 CONTINUE
999 RETURN
END
CDECK ID>, HWUROB.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUROB(R,P,Q)
C-----------------------------------------------------------------------
C ROTATES VECTORS BY INVERSE OF ROTATION MATRIX R
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION S1,S2,S3,R(3,3),P(3),Q(3)
S1=P(1)*R(1,1)+P(2)*R(2,1)+P(3)*R(3,1)
S2=P(1)*R(1,2)+P(2)*R(2,2)+P(3)*R(3,2)
S3=P(1)*R(1,3)+P(2)*R(2,3)+P(3)*R(3,3)
Q(1)=S1
Q(2)=S2
Q(3)=S3
END
CDECK ID>, HWUROF.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUROF(R,P,Q)
C-----------------------------------------------------------------------
C ROTATES VECTORS BY ROTATION MATRIX R
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION S1,S2,S3,R(3,3),P(3),Q(3)
S1=R(1,1)*P(1)+R(1,2)*P(2)+R(1,3)*P(3)
S2=R(2,1)*P(1)+R(2,2)*P(2)+R(2,3)*P(3)
S3=R(3,1)*P(1)+R(3,2)*P(2)+R(3,3)*P(3)
Q(1)=S1
Q(2)=S2
Q(3)=S3
END
CDECK ID>, HWUROT.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUROT(P,CP,SP,R)
C-----------------------------------------------------------------------
C R IS ROTATION MATRIX TO GET FROM VECTOR P TO Z AXIS, FOLLOWED BY
C A ROTATION BY PSI ABOUT Z AXIS, WHERE CP = COS-PSI, SP = SIN-PSI
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION WN,CP,SP,PTCUT,PP,PT,CT,ST,CF,SF,P(3),R(3,3)
SAVE WN,PTCUT
DATA WN,PTCUT/1.D0,1.D-20/
PT=P(1)**2+P(2)**2
PP=P(3)**2+PT
IF (PT.LE.PP*PTCUT) THEN
CT=SIGN(WN,P(3))
ST=0.
CF=1.
SF=0.
ELSE
PP=SQRT(PP)
PT=SQRT(PT)
CT=P(3)/PP
ST=PT/PP
CF=P(1)/PT
SF=P(2)/PT
END IF
R(1,1)= CP*CF*CT+SP*SF
R(1,2)= CP*SF*CT-SP*CF
R(1,3)=-CP*ST
R(2,1)=-CP*SF+SP*CF*CT
R(2,2)= CP*CF+SP*SF*CT
R(2,3)=-SP*ST
R(3,1)= CF*ST
R(3,2)= SF*ST
R(3,3)= CT
END
CDECK ID>, HWURQM.
*CMZ :- -17/07/03 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C----------------------------------------------------------------------
SUBROUTINE HWURQM(SCALE,RQM)
C-----------------------------------------------------------------------
C RUNNING QUARK MASSES (MSBAR, 2-LOOP, 5 FLAVOUR, NO THRESHOLDS)
C ASSUMING RMASS(IQ) IS POLE MASS
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
DOUBLE PRECISION HWUALF,SCALE,ALFAS,P0,C1,CC,MHAT(6),RQM(6)
INTEGER IQ
LOGICAL FIRST
SAVE P0,C1,MHAT,FIRST
DATA FIRST/.TRUE./
IF (FIRST) THEN
C---INITIALIZE CONSTANTS
P0=12./23.
C1=3731./(3174.*PIFAC)
CC=C1+4./(3.*PIFAC)
DO IQ=1,6
ALFAS=HWUALF(1,RMASS(IQ))
IF (ALFAS.GT.ZERO) THEN
MHAT(IQ)=RMASS(IQ)/(1.+CC*ALFAS)/ALFAS**P0
ELSE
CALL HWWARN('HWURQM',IQ)
MHAT(IQ)=ZERO
ENDIF
ENDDO
FIRST=.FALSE.
ENDIF
ALFAS=HWUALF(1,SCALE)
CC=(1.+C1*ALFAS)*ALFAS**P0
DO IQ=1,6
RQM(IQ)=MHAT(IQ)*CC
ENDDO
END
CDECK ID>, HWUSOR.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUSOR(A,N,K,IOPT)
C-----------------------------------------------------------------------
C Sort A(N) into ascending order
C IOPT = 1 : return sorted A and index array K
C IOPT = 2 : return index array K only
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I,J,IOPT,K(N),IL(500),IR(500)
DOUBLE PRECISION A(N),B(500)
IF (N.GT.500) THEN
CALL HWWARN('HWUSOR',100)
GOTO 999
ENDIF
IL(1)=0
IR(1)=0
DO 10 I=2,N
IL(I)=0
IR(I)=0
J=1
2 IF(A(I).GT.A(J)) GOTO 5
IF(IL(J).EQ.0) GOTO 4
J=IL(J)
GOTO 2
4 IR(I)=-J
IL(J)=I
GOTO 10
5 IF(IR(J).LE.0) GOTO 6
J=IR(J)
GOTO 2
6 IR(I)=IR(J)
IR(J)=I
10 CONTINUE
I=1
J=1
GOTO 8
20 J=IL(J)
8 IF(IL(J).GT.0) GOTO 20
9 K(I)=J
B(I)=A(J)
I=I+1
C---REMOVED OBSOLESCENT ARITHMETIC IF STATEMENT
C$$$ IF(IR(J)) 12,30,13
IF (IR(J).LT.0) THEN
GOTO 12
ELSEIF (IR(J).EQ.0) THEN
GOTO 30
ELSE
GOTO 13
ENDIF
C---END OF REPLACEMENT ARITHMETIC IF STATEMENT
13 J=IR(J)
GOTO 8
12 J=-IR(J)
GOTO 9
30 IF(IOPT.EQ.2) RETURN
DO 31 I=1,N
31 A(I)=B(I)
999 RETURN
END
CDECK ID>, HWUSPR.
*CMZ :- -17/10/01 13:59:28 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE HWUSPR
C-----------------------------------------------------------------------
C Subroutine to output the contents of the spin common block
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER I
C--write out the header
WRITE(6,1000)
DO I=1,NSPN
WRITE(6,1010) I,IDSPN(I),DECSPN(I),JMOSPN(I),JDASPN(1,I),
& JDASPN(2,I)
ENDDO
1000 FORMAT(/1X,'ISPN',1X,'IDSPN',1X,'DECS',1X,'JMOSPN',1X,' JDASPN '/)
1010 FORMAT( 1X, I4 ,1X, I5 ,1X, L4 ,1X, I6 ,1X, I3,2X,I3)
END
CDECK ID>, HWUSQR.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWUSQR(X)
C-----------------------------------------------------------------------
C SQUARE ROOT WITH SIGN RETENTION
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION HWUSQR,X
HWUSQR=SIGN(SQRT(ABS(X)),X)
END
CDECK ID>, HWUSTA.
*CMZ :- -26/04/91 10.18.58 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWUSTA(NAME)
C-----------------------------------------------------------------------
C MAKES PARTICLE TYPE 'NAME' STABLE
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER IPDG,IWIG
CHARACTER*8 NAME
CALL HWUIDT(3,IPDG,IWIG,NAME)
IF (IWIG.EQ.20) CALL HWWARN('HWUSTA',500)
RSTAB(IWIG)=.TRUE.
WRITE (6,10) IWIG,NAME
10 FORMAT(/10X,'PARTICLE TYPE',I4,'=',A8,' SET STABLE')
END
CDECK ID>, HWUTAB.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Adapted by Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWUTAB(F,A,NN,X,MM)
C-----------------------------------------------------------------------
C MODIFIED CERN INTERPOLATION ROUTINE DIVDIF
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER NN,MM,MMAX,N,M,MPLUS,IX,IY,MID,NPTS,IP,I,J,L,ISUB
DOUBLE PRECISION HWUTAB,SUM,X,F(NN),A(NN),T(20),D(20)
LOGICAL EXTRA
SAVE MMAX
DATA MMAX/10/
N=NN
M=MIN(MM,MMAX,N-1)
MPLUS=M+1
IX=0
IY=N+1
IF (A(1).GT.A(N)) GOTO 4
1 MID=(IX+IY)/2
IF (X.GE.A(MID)) GOTO 2
IY=MID
GOTO 3
2 IX=MID
3 IF (IY-IX.GT.1) GOTO 1
GOTO 7
4 MID=(IX+IY)/2
IF (X.LE.A(MID)) GOTO 5
IY=MID
GOTO 6
5 IX=MID
6 IF (IY-IX.GT.1) GOTO 4
7 NPTS=M+2-MOD(M,2)
IP=0
L=0
GOTO 9
8 L=-L
IF (L.GE.0) L=L+1
9 ISUB=IX+L
IF ((1.LE.ISUB).AND.(ISUB.LE.N)) GOTO 10
NPTS=MPLUS
GOTO 11
10 IP=IP+1
T(IP)=A(ISUB)
D(IP)=F(ISUB)
11 IF (IP.LT.NPTS) GOTO 8
EXTRA=NPTS.NE.MPLUS
DO 14 L=1,M
IF (.NOT.EXTRA) GOTO 12
ISUB=MPLUS-L
D(M+2)=(D(M+2)-D(M))/(T(M+2)-T(ISUB))
12 I=MPLUS
DO 13 J=L,M
ISUB=I-L
D(I)=(D(I)-D(I-1))/(T(I)-T(ISUB))
I=I-1
13 CONTINUE
14 CONTINUE
SUM=D(MPLUS)
IF (EXTRA) SUM=0.5*(SUM+D(M+2))
J=M
DO 15 L=1,M
SUM=D(J)+(X-T(J))*SUM
J=J-1
15 CONTINUE
HWUTAB=SUM
END
CDECK ID>, HWUTIM.
*CMZ :- -26/04/91 11.38.43 by Federico Carminati
*-- Author : Federico Carminati
C-----------------------------------------------------------------------
SUBROUTINE HWUTIM(TRES)
C-----------------------------------------------------------------------
IMPLICIT NONE
REAL TRES
CALL TIMEL(TRES)
END
CDECK ID>, HWVDIF.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWVDIF(N,P,Q,R)
C-----------------------------------------------------------------------
C VECTOR DIFFERENCE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I
DOUBLE PRECISION P(N),Q(N),R(N)
DO 10 I=1,N
10 R(I)=P(I)-Q(I)
END
CDECK ID>, HWVDOT.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
FUNCTION HWVDOT(N,P,Q)
C-----------------------------------------------------------------------
C VECTOR DOT PRODUCT
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I
DOUBLE PRECISION HWVDOT,PQ,P(N),Q(N)
PQ=0.
DO 10 I=1,N
10 PQ=PQ+P(I)*Q(I)
HWVDOT=PQ
END
CDECK ID>, HWVEQU.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWVEQU(N,P,Q)
C-----------------------------------------------------------------------
C VECTOR EQUALITY
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I
DOUBLE PRECISION P(N),Q(N)
DO 10 I=1,N
10 Q(I)=P(I)
END
CDECK ID>, HWVSCA.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWVSCA(N,C,P,Q)
C-----------------------------------------------------------------------
C VECTOR TIMES SCALAR
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I
DOUBLE PRECISION C,P(N),Q(N)
DO 10 I=1,N
10 Q(I)=C*P(I)
END
CDECK ID>, HWVSUM.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWVSUM(N,P,Q,R)
C-----------------------------------------------------------------------
C VECTOR SUM
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I
DOUBLE PRECISION P(N),Q(N),R(N)
DO 10 I=1,N
10 R(I)=P(I)+Q(I)
END
CDECK ID>, HWVZRI.
*CMZ :- -05/02/98 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWVZRI(N,IP)
C-----------------------------------------------------------------------
C ZERO INTEGER VECTOR
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,IP(N),I
DO 10 I=1,N
10 IP(I)=0
END
CDECK ID>, HWVZRO.
*CMZ :- -26/04/91 11.11.56 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWVZRO(N,P)
C-----------------------------------------------------------------------
C ZERO VECTOR
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER N,I
DOUBLE PRECISION P(N)
DO 10 I=1,N
10 P(I)=0D0
END
CDECK ID>, HWWARN.
*CMZ :- -26/04/91 10.18.58 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE HWWARN(SUBRTN,ICODE)
C-----------------------------------------------------------------------
C DEALS WITH ERRORS DURING EXECUTION
C SUBRTN = NAME OF CALLING SUBROUTINE
C ICODE = ERROR CODE: - -1 NONFATAL, KILL EVENT & PRINT NOTHING
C 0- 49 NONFATAL, PRINT WARNING & CONTINUE
C 50- 99 NONFATAL, PRINT WARNING & JUMP
C 100-199 NONFATAL, DUMP & KILL EVENT
C 200-299 FATAL, TERMINATE RUN
C 300-399 FATAL, DUMP EVENT & TERMINATE RUN
C 400-499 FATAL, DUMP EVENT & STOP DEAD
C 500- FATAL, STOP DEAD WITH NO DUMP
C-----------------------------------------------------------------------
INCLUDE 'herwig65.inc'
INTEGER ICODE
CHARACTER*6 SUBRTN
IF (ICODE.GE.0) WRITE (6,10) SUBRTN,ICODE
10 FORMAT(/' HWWARN CALLED FROM SUBPROGRAM ',A6,': CODE =',I4)
IF (ICODE.LT.0) THEN
IERROR=ICODE
RETURN
ELSEIF (ICODE.LT.100) THEN
WRITE (6,20) NEVHEP,NRN,EVWGT
20 FORMAT(' EVENT',I8,': SEEDS =',I11,' &',I11,
&' WEIGHT =',E11.4/' EVENT SURVIVES. EXECUTION CONTINUES')
IF (ICODE.GT.49) RETURN
ELSEIF (ICODE.LT.200) THEN
WRITE (6,30) NEVHEP,NRN,EVWGT
30 FORMAT(' EVENT',I8,': SEEDS =',I11,' &',I11,
&' WEIGHT =',E11.4/' EVENT KILLED. EXECUTION CONTINUES')
IERROR=ICODE
RETURN
ELSEIF (ICODE.LT.300) THEN
WRITE (6,40)
40 FORMAT(' EVENT SURVIVES. RUN ENDS GRACEFULLY')
CALL HWEFIN
STOP
ELSEIF (ICODE.LT.400) THEN
WRITE (6,50)
50 FORMAT(' EVENT KILLED: DUMP FOLLOWS. RUN ENDS GRACEFULLY')
IERROR=ICODE
CALL HWUEPR
CALL HWUBPR
CALL HWEFIN
STOP
ELSEIF (ICODE.LT.500) THEN
WRITE (6,60)
60 FORMAT(' EVENT KILLED: DUMP FOLLOWS. RUN STOPS DEAD')
IERROR=ICODE
CALL HWUEPR
CALL HWUBPR
STOP
ELSE
WRITE (6,70)
70 FORMAT(' RUN CANNOT CONTINUE')
STOP
ENDIF
END
CDECK ID>, IEUPDG.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
FUNCTION IEUPDG(I)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
C IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER IEUPDG,I
WRITE (6,10)
10 FORMAT(/10X,'IEUPDG CALLED BUT NOT LINKED')
IEUPDG=0
STOP
END
CDECK ID>, IPDGEU.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
FUNCTION IPDGEU(I)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
C IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER IPDGEU,I
WRITE (6,10)
10 FORMAT(/10X,'IPDGEU CALLED BUT NOT LINKED')
IPDGEU=0
STOP
END
CDECK ID>, INIETC.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE INIETC(JAK1,JAK2,ITDKRC,IFPHOT)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER JAK1,JAK2,ITDKRC,IFPHOT
WRITE (6,10)
10 FORMAT(/10X,'INIETC CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, INIMAS.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE INIMAS
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
WRITE (6,10)
10 FORMAT(/10X,'INIMAS CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, INIPHX.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE INIPHX(CUT)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
DOUBLE PRECISION CUT
WRITE (6,10)
10 FORMAT(/10X,'INIPHX CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, INITDK.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE INITDK
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
WRITE (6,10)
10 FORMAT(/10X,'INITDK CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, PHOINI.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE PHOINI
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
WRITE (6,10)
10 FORMAT(/10X,'PHOINI CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, PHOTOS.
*CMZ :- -17/10/01 10.03.37 by Peter Richardson
*-- Author : Peter Richardson
C-----------------------------------------------------------------------
SUBROUTINE PHOTOS(IHEP)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET TAUDEC='TAUOLA'
C IN MAIN PROGRAM IF YOU USE TAUOLA DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
INTEGER IHEP
WRITE (6,10)
10 FORMAT(/10X,'PHOTOS CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, QQINIT.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
SUBROUTINE QQINIT(QQLERR)
C-----------------------------------------------------------------------
C DUMMY SUBROUTINE: DELETE AND SET BDECAY='CLEO'
C IN MAIN PROGRAM IF YOU USE CLEO DECAY PACKAGE
C-----------------------------------------------------------------------
IMPLICIT NONE
LOGICAL QQLERR
WRITE (6,10)
10 FORMAT(/10X,'QQINIT CALLED BUT NOT LINKED')
STOP
END
CDECK ID>, QQLMAT.
*CMZ :- -28/01/92 12.34.44 by Mike Seymour
*-- Author : Luca Stanco
C-----------------------------------------------------------------------
INTEGER FUNCTION QQLMAT(IDL,NDIR)
C-----------------------------------------------------------------------
C. QQLMAT - Given a particle flavor (KF), converts it to QQ particle number
C. (KF = IDPDG code)
C.
C. Inputs : IDL (input particle code)
C NDIR = 1 LUND --> QQ
C NDIR = 2 QQ --> LUND
C
C. Outputs : QQLMAT (output particle code)
C.
C-----------------------------------------------------------------------
IMPLICIT NONE
C-- Calling variable
INTEGER IDL,NDIR
C-- External declaration
C-- Local variables
INTEGER AKF(321),I
SAVE AKF
DATA (AKF(I), I=1,151) /
+ 0, 0, 0, 0, 0, 0, 0, 21, -6, -5,
+ -4, -3, -1, -2, 6, 5, 4, 3, 1, 2,
+ 0,
+ 22, 23, 24, -24, 90, 0, 11, -11, 12, -12,
+ 13, -13, 14, -14, 15, -15, 16, -16,20313,-20313,
+ 211, -211, 321, -321, 311, -311, 421, -421, 411, -411,
+ 431, -431, -521, 521, -511, 511, -531, 531, -541, 541,
+ 621, -621, 611, -611, 631, -631, 641, -641, 651, -651,
+ 111, 221, 331, 441,20551, 661, 310, 130,10313,-10313,
+ 213, -213, 323, -323, 313, -313, 423, -423, 413, -413,
+ 433, -433, -523, 523, -513, 513, -533, 533, -543, 543,
+ 623, -623, 613, -613, 633, -633, 643, -643, 653, -653,
+ 113, 223, 333, 443, 553, 136, 20553, 30553, 40553, 551,
+ 10553, 555, 10551,70553,10555, 0, 20213, 20113, -20213, 10441,
+ 10443, 445, 8*0,
+ 3122, -3122, 4122, -4122, 4232, -4232, 4132, -4132, 3212, -3212/
DATA (AKF(I), I=152,321) /
+ 4212, -4212, 4322, -4322, 4312, -4312, 2212, -2212, 3222, -3222,
+ 4222, -4222, 2112, -2112, 3112, -3112, 4112, -4112, 3322, -3322,
+ 3312, -3312, 4332, -4332, 6*0,
+ 3214, -3214, 4214, -4214, 4324, -4324, 4314, -4314, 2214, -2214,
+ 3224, -3224, 4224, -4224, 2114, -2114, 3114, -3114, 4114, -4114,
+ 3324, -3324, 3314, -3314, 4334, -4334, 4*0,
+ 0, 0, 2224, -2224, 1114, -1114, 3334, -3334, 0, 0,
+ 10323, -10323, 20323, -20323, 6*0,
+ 30443, 0, 0, 0, 70443, 50553, 60553, 80553, 20443, 0,
+ 10411, 20413, 10413, 415,
+ -10411,-20413,-10413,-415,
+ 10421, 20423, 10423, 425,
+ -10421,-20423,-10423,-425,
+ 10431, 20433, 10433, 435,
+ -10431,-20433,-10433,-435, 0,0,0,0,0,0,
+ 10111, 10211,-10211, 115, 215, -215,10221,10331,20223,20333,
+ 225, 335, 10223, 10333, 10113, 10213,-10213, 33*0 /
IF(NDIR.EQ.1) THEN
DO 10 I=1,321
IF (IDL.EQ.AKF(I)) THEN
QQLMAT=I-21
RETURN
ENDIF
10 CONTINUE
QQLMAT=0
WRITE(6,20) IDL
20 FORMAT(1X,'Lund code particle ',I6,' not recognized')
ELSEIF(NDIR.EQ.2) THEN
QQLMAT = AKF(IDL+21)
ELSE
QQLMAT=0
WRITE(6,30)
30 FORMAT(1X,'Unrecognized option in QQLMAT')
ENDIF
END
C-----------------------------------------------------------------------
C...SaSgam version 2 - parton distributions of the photon
C...by Gerhard A. Schuler and Torbjorn Sjostrand
C...For further information see Z. Phys. C68 (1995) 607
C...and CERN-TH/96-04 and LU TP 96-2.
C...Program last changed on 18 January 1996.
C
C!!!Note that one further call parameter - IP2 - has been added
C!!!to the SASGAM argument list compared with version 1.
C
C...The user should only need to call the SASGAM routine,
C...which in turn calls the auxiliary routines SASVMD, SASANO,
C...SASBEH and SASDIR. The package is self-contained.
C
C...One particular aspect of these parametrizations is that F2 for
C...the photon is not obtained just as the charge-squared-weighted
C...sum of quark distributions, but differ in the treatment of
C...heavy flavours (in F2 the DIS relation W2 = Q2*(1-x)/x restricts
C...the kinematics range of heavy-flavour production, but the same
C...kinematics is not relevant e.g. for jet production) and, for the
C...'MSbar' fits, in the addition of a Cgamma term related to the
C...separation of direct processes. Schematically:
C...PDF = VMD (rho, omega, phi) + anomalous (d, u, s, c, b).
C...F2 = VMD (rho, omega, phi) + anomalous (d, u, s) +
C... Bethe-Heitler (c, b) (+ Cgamma (d, u, s)).
C...The J/psi and Upsilon states have not been included in the VMD sum,
C...but low c and b masses in the other components should compensate
C...for this in a duality sense.
C
C...The calling sequence is the following:
C CALL SASGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
C...with the following declaration statement:
C DIMENSION XPDFGM(-6:6)
C...and, optionally, further information in:
C COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
C &XPDIR(-6:6)
C COMMON/SASVAL/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
C...Input: ISET = 1 : SaS set 1D ('DIS', Q0 = 0.6 GeV)
C = 2 : SaS set 1M ('MSbar', Q0 = 0.6 GeV)
C = 3 : SaS set 2D ('DIS', Q0 = 2 GeV)
C = 4 : SaS set 2M ('MSbar', Q0 = 2 GeV)
C X : x value.
C Q2 : Q2 value.
C P2 : P2 value; should be = 0. for an on-shell photon.
C IP2 : scheme used to evaluate off-shell anomalous component.
C = 0 : recommended default, see = 7.
C = 1 : dipole dampening by integration; very time-consuming.
C = 2 : P_0^2 = max( Q_0^2, P^2 )
C = 3 : P'_0^2 = Q_0^2 + P^2.
C = 4 : P_{eff} that preserves momentum sum.
C = 5 : P_{int} that preserves momentum and average
C evolution range.
C = 6 : P_{eff}, matched to P_0 in P2 -> Q2 limit.
C = 7 : P_{eff}, matched to P_0 in P2 -> Q2 limit.
C...Output: F2GM : F2 value of the photon (including factors of alpha_em).
C XPFDGM : x times parton distribution functions of the photon,
C with elements 0 = g, 1 = d, 2 = u, 3 = s, 4 = c, 5 = b,
C 6 = t (always empty!), - for antiquarks (result is same).
C...The breakdown by component is stored in the commonblock SASCOM,
C with elements as above.
C XPVMD : rho, omega, phi VMD part only of output.
C XPANL : d, u, s anomalous part only of output.
C XPANH : c, b anomalous part only of output.
C XPBEH : c, b Bethe-Heitler part only of output.
C XPDIR : Cgamma (direct contribution) part only of output.
C...The above arrays do not distinguish valence and sea contributions,
C...although this information is available internally. The additional
C...commonblock SASVAL provides the valence part only of the above
C...distributions. Array names VXPVMD, VXPANL and VXPANH correspond
C...to XPVMD, XPANL and XPANH, while XPBEH and XPDIR are valence only
C...and therefore not given doubly. VXPDGM gives the sum of valence
C...parts, and so matches XPDFGM. The difference, i.e. XPVMD-VXPVMD
C...and so on, gives the sea part only.
C
SUBROUTINE SASGAM(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
C...Purpose: to construct the F2 and parton distributions of the photon
C...by summing homogeneous (VMD) and inhomogeneous (anomalous) terms.
C...For F2, c and b are included by the Bethe-Heitler formula;
C...in the 'MSbar' scheme additionally a Cgamma term is added.
DIMENSION XPDFGM(-6:6)
COMMON/SASCOM/XPVMD(-6:6),XPANL(-6:6),XPANH(-6:6),XPBEH(-6:6),
&XPDIR(-6:6)
COMMON/SASVAL/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
SAVE /SASCOM/,/SASVAL/
C
C...Temporary array.
DIMENSION XPGA(-6:6), VXPGA(-6:6)
SAVE PMC,PMB,AEM,AEM2PI,ALAM,FRACU,FRHO,FOMEGA,FPHI,PMRHO,PMPHI,
$ NSTEP
C...Charm and bottom masses (low to compensate for J/psi etc.).
DATA PMC/1.3/, PMB/4.6/
C...alpha_em and alpha_em/(2*pi).
DATA AEM/0.007297/, AEM2PI/0.0011614/
C...Lambda value for 4 flavours.
DATA ALAM/0.20/
C...Mixture u/(u+d), = 0.5 for incoherent and = 0.8 for coherent sum.
DATA FRACU/0.8/
C...VMD couplings f_V**2/(4*pi).
DATA FRHO/2.20/, FOMEGA/23.6/, FPHI/18.4/
C...Masses for rho (=omega) and phi.
DATA PMRHO/0.770/, PMPHI/1.020/
C...Number of points in integration for IP2=1.
DATA NSTEP/100/
C
C...Reset output.
F2GM=0.
DO 100 KFL=-6,6
XPDFGM(KFL)=0.
XPVMD(KFL)=0.
XPANL(KFL)=0.
XPANH(KFL)=0.
XPBEH(KFL)=0.
XPDIR(KFL)=0.
VXPVMD(KFL)=0.
VXPANL(KFL)=0.
VXPANH(KFL)=0.
VXPDGM(KFL)=0.
100 CONTINUE
C
C...Check that input sensible.
IF(ISET.LE.0.OR.ISET.GE.5) THEN
WRITE(*,*) ' FATAL ERROR: SaSgam called for unknown set'
WRITE(*,*) ' ISET = ',ISET
STOP
ENDIF
IF(X.LE.0..OR.X.GT.1.) THEN
WRITE(*,*) ' FATAL ERROR: SaSgam called for unphysical x'
WRITE(*,*) ' X = ',X
STOP
ENDIF
C
C...Set Q0 cut-off parameter as function of set used.
IF(ISET.LE.2) THEN
Q0=0.6
ELSE
Q0=2.
ENDIF
Q02=Q0**2
C
C...Scale choice for off-shell photon; common factors.
Q2A=Q2
FACNOR=1.
IF(IP2.EQ.1) THEN
P2MX=P2+Q02
Q2A=Q2+P2*Q02/MAX(Q02,Q2)
FACNOR=LOG(Q2/Q02)/NSTEP
ELSEIF(IP2.EQ.2) THEN
P2MX=MAX(P2,Q02)
ELSEIF(IP2.EQ.3) THEN
P2MX=P2+Q02
Q2A=Q2+P2*Q02/MAX(Q02,Q2)
ELSEIF(IP2.EQ.4) THEN
P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
& ((Q2+P2)*(Q02+P2)))
ELSEIF(IP2.EQ.5) THEN
P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
& ((Q2+P2)*(Q02+P2)))
P2MX=Q0*SQRT(P2MXA)
FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MX)
ELSEIF(IP2.EQ.6) THEN
P2MX=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
& ((Q2+P2)*(Q02+P2)))
P2MX=MAX(0.,1.-P2/Q2)*P2MX+MIN(1.,P2/Q2)*MAX(P2,Q02)
ELSE
P2MXA=Q2*(Q02+P2)/(Q2+P2)*EXP(P2*(Q2-Q02)/
& ((Q2+P2)*(Q02+P2)))
P2MX=Q0*SQRT(P2MXA)
P2MXB=P2MX
P2MX=MAX(0.,1.-P2/Q2)*P2MX+MIN(1.,P2/Q2)*MAX(P2,Q02)
P2MXB=MAX(0.,1.-P2/Q2)*P2MXB+MIN(1.,P2/Q2)*P2MXA
FACNOR=LOG(Q2/P2MXA)/LOG(Q2/P2MXB)
ENDIF
C
C...Call VMD parametrization for d quark and use to give rho, omega,
C...phi. Note dipole dampening for off-shell photon.
CALL SASVMD(ISET,1,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
XFVAL=VXPGA(1)
XPGA(1)=XPGA(2)
XPGA(-1)=XPGA(-2)
FACUD=AEM*(1./FRHO+1./FOMEGA)*(PMRHO**2/(PMRHO**2+P2))**2
FACS=AEM*(1./FPHI)*(PMPHI**2/(PMPHI**2+P2))**2
DO 110 KFL=-5,5
XPVMD(KFL)=(FACUD+FACS)*XPGA(KFL)
110 CONTINUE
XPVMD(1)=XPVMD(1)+(1.-FRACU)*FACUD*XFVAL
XPVMD(2)=XPVMD(2)+FRACU*FACUD*XFVAL
XPVMD(3)=XPVMD(3)+FACS*XFVAL
XPVMD(-1)=XPVMD(-1)+(1.-FRACU)*FACUD*XFVAL
XPVMD(-2)=XPVMD(-2)+FRACU*FACUD*XFVAL
XPVMD(-3)=XPVMD(-3)+FACS*XFVAL
VXPVMD(1)=(1.-FRACU)*FACUD*XFVAL
VXPVMD(2)=FRACU*FACUD*XFVAL
VXPVMD(3)=FACS*XFVAL
VXPVMD(-1)=(1.-FRACU)*FACUD*XFVAL
VXPVMD(-2)=FRACU*FACUD*XFVAL
VXPVMD(-3)=FACS*XFVAL
C
IF(IP2.NE.1) THEN
C...Anomalous parametrizations for different strategies
C...for off-shell photons; except full integration.
C
C...Call anomalous parametrization for d + u + s.
CALL SASANO(-3,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
DO 120 KFL=-5,5
XPANL(KFL)=FACNOR*XPGA(KFL)
VXPANL(KFL)=FACNOR*VXPGA(KFL)
120 CONTINUE
C
C...Call anomalous parametrization for c and b.
CALL SASANO(4,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
DO 130 KFL=-5,5
XPANH(KFL)=FACNOR*XPGA(KFL)
VXPANH(KFL)=FACNOR*VXPGA(KFL)
130 CONTINUE
CALL SASANO(5,X,Q2A,P2MX,ALAM,XPGA,VXPGA)
DO 140 KFL=-5,5
XPANH(KFL)=XPANH(KFL)+FACNOR*XPGA(KFL)
VXPANH(KFL)=VXPANH(KFL)+FACNOR*VXPGA(KFL)
140 CONTINUE
C
ELSE
C...Special option: loop over flavours and integrate over k2.
DO 170 KF=1,5
DO 160 ISTEP=1,NSTEP
Q2STEP=Q02*(Q2/Q02)**((ISTEP-0.5)/NSTEP)
IF((KF.EQ.4.AND.Q2STEP.LT.PMC**2).OR.
& (KF.EQ.5.AND.Q2STEP.LT.PMB**2)) GOTO 160
CALL SASVMD(0,KF,X,Q2,Q2STEP,ALAM,XPGA,VXPGA)
FACQ=AEM2PI*(Q2STEP/(Q2STEP+P2))**2*FACNOR
IF(MOD(KF,2).EQ.0) FACQ=FACQ*(8./9.)
IF(MOD(KF,2).EQ.1) FACQ=FACQ*(2./9.)
DO 150 KFL=-5,5
IF(KF.LE.3) XPANL(KFL)=XPANL(KFL)+FACQ*XPGA(KFL)
IF(KF.GE.4) XPANH(KFL)=XPANH(KFL)+FACQ*XPGA(KFL)
IF(KF.LE.3) VXPANL(KFL)=VXPANL(KFL)+FACQ*VXPGA(KFL)
IF(KF.GE.4) VXPANH(KFL)=VXPANH(KFL)+FACQ*VXPGA(KFL)
150 CONTINUE
160 CONTINUE
170 CONTINUE
ENDIF
C
C...Call Bethe-Heitler term expression for charm and bottom.
CALL SASBEH(4,X,Q2,P2,PMC**2,XPBH)
XPBEH(4)=XPBH
XPBEH(-4)=XPBH
CALL SASBEH(5,X,Q2,P2,PMB**2,XPBH)
XPBEH(5)=XPBH
XPBEH(-5)=XPBH
C
C...For MSbar subtraction call C^gamma term expression for d, u, s.
IF(ISET.EQ.2.OR.ISET.EQ.4) THEN
CALL SASDIR(X,Q2,P2,Q02,XPGA)
DO 180 KFL=-5,5
XPDIR(KFL)=XPGA(KFL)
180 CONTINUE
ENDIF
C
C...Store result in output array.
DO 190 KFL=-5,5
CHSQ=1./9.
IF(IABS(KFL).EQ.2.OR.IABS(KFL).EQ.4) CHSQ=4./9.
XPF2=XPVMD(KFL)+XPANL(KFL)+XPBEH(KFL)+XPDIR(KFL)
IF(KFL.NE.0) F2GM=F2GM+CHSQ*XPF2
XPDFGM(KFL)=XPVMD(KFL)+XPANL(KFL)+XPANH(KFL)
VXPDGM(KFL)=VXPVMD(KFL)+VXPANL(KFL)+VXPANH(KFL)
190 CONTINUE
C
END
C
C*********************************************************************
C
SUBROUTINE SASVMD(ISET,KF,X,Q2,P2,ALAM,XPGA,VXPGA)
C...Purpose: to evaluate the VMD parton distributions of a photon,
C...evolved homogeneously from an initial scale P2 to Q2.
C...Does not include dipole suppression factor.
C...ISET is parton distribution set, see above;
C...additionally ISET=0 is used for the evolution of an anomalous photon
C...which branched at a scale P2 and then evolved homogeneously to Q2.
C...ALAM is the 4-flavour Lambda, which is automatically converted
C...to 3- and 5-flavour equivalents as needed.
DIMENSION XPGA(-6:6), VXPGA(-6:6)
SAVE PMC,PMB
DATA PMC/1.3/, PMB/4.6/
C
C...Reset output.
DO 100 KFL=-6,6
XPGA(KFL)=0.
VXPGA(KFL)=0.
100 CONTINUE
KFA=IABS(KF)
C
C...Calculate Lambda; protect against unphysical Q2 and P2 input.
ALAM3=ALAM*(PMC/ALAM)**(2./27.)
ALAM5=ALAM*(ALAM/PMB)**(2./23.)
P2EFF=MAX(P2,1.2*ALAM3**2)
IF(KFA.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
IF(KFA.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
Q2EFF=MAX(Q2,P2EFF)
C
C...Find number of flavours at lower and upper scale.
NFP=4
IF(P2EFF.LT.PMC**2) NFP=3
IF(P2EFF.GT.PMB**2) NFP=5
NFQ=4
IF(Q2EFF.LT.PMC**2) NFQ=3
IF(Q2EFF.GT.PMB**2) NFQ=5
C
C...Find s as sum of 3-, 4- and 5-flavour parts.
S=0.
IF(NFP.EQ.3) THEN
Q2DIV=PMC**2
IF(NFQ.EQ.3) Q2DIV=Q2EFF
S=S+(6./27.)*LOG(LOG(Q2DIV/ALAM3**2)/LOG(P2EFF/ALAM3**2))
ENDIF
IF(NFP.LE.4.AND.NFQ.GE.4) THEN
P2DIV=P2EFF
IF(NFP.EQ.3) P2DIV=PMC**2
Q2DIV=Q2EFF
IF(NFQ.EQ.5) Q2DIV=PMB**2
S=S+(6./25.)*LOG(LOG(Q2DIV/ALAM**2)/LOG(P2DIV/ALAM**2))
ENDIF
IF(NFQ.EQ.5) THEN
P2DIV=PMB**2
IF(NFP.EQ.5) P2DIV=P2EFF
S=S+(6./23.)*LOG(LOG(Q2EFF/ALAM5**2)/LOG(P2DIV/ALAM5**2))
ENDIF
C
C...Calculate frequent combinations of x and s.
X1=1.-X
XL=-LOG(X)
S2=S**2
S3=S**3
S4=S**4
C
C...Evaluate homogeneous anomalous parton distributions below or
C...above threshold.
IF(ISET.EQ.0) THEN
IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
&(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
XVAL = X * 1.5 * (X**2+X1**2)
XGLU = 0.
XSEA = 0.
ELSE
XVAL = (1.5/(1.-0.197*S+4.33*S2)*X**2 + (1.5+2.10*S)/
& (1.+3.29*S)*X1**2 + 5.23*S/(1.+1.17*S+19.9*S3)*X*X1) *
& X**(1./(1.+1.5*S)) * (1.-X**2)**(2.667*S)
XGLU = 4.*S/(1.+4.76*S+15.2*S2+29.3*S4) *
& X**(-2.03*S/(1.+2.44*S)) * (X1*XL)**(1.333*S) *
& ((4.*X**2+7.*X+4.)*X1/3. - 2.*X*(1.+X)*XL)
XSEA = S2/(1.+4.54*S+8.19*S2+8.05*S3) *
& X**(-1.54*S/(1.+1.29*S)) * X1**(2.667*S) *
& ((8.-73.*X+62.*X**2)*X1/9. + (3.-8.*X**2/3.)*X*XL +
& (2.*X-1.)*X*XL**2)
ENDIF
C
C...Evaluate set 1D parton distributions below or above threshold.
ELSEIF(ISET.EQ.1) THEN
IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
&(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
XVAL = 1.294 * X**0.80 * X1**0.76
XGLU = 1.273 * X**0.40 * X1**1.76
XSEA = 0.100 * X1**3.76
ELSE
XVAL = 1.294/(1.+0.252*S+3.079*S2) * X**(0.80-0.13*S) *
& X1**(0.76+0.667*S) * XL**(2.*S)
XGLU = 7.90*S/(1.+5.50*S) * EXP(-5.16*S) *
& X**(-1.90*S/(1.+3.60*S)) * X1**1.30 * XL**(0.50+3.*S) +
& 1.273 * EXP(-10.*S) * X**0.40 * X1**(1.76+3.*S)
XSEA = (0.1-0.397*S2+1.121*S3)/(1.+5.61*S2+5.26*S3) *
& X**(-7.32*S2/(1.+10.3*S2)) *
& X1**((3.76+15.*S+12.*S2)/(1.+4.*S))
XSEA0 = 0.100 * X1**3.76
ENDIF
C
C...Evaluate set 1M parton distributions below or above threshold.
ELSEIF(ISET.EQ.2) THEN
IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
&(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
XVAL = 0.8477 * X**0.51 * X1**1.37
XGLU = 3.42 * X**0.255 * X1**2.37
XSEA = 0.
ELSE
XVAL = 0.8477/(1.+1.37*S+2.18*S2+3.73*S3) * X**(0.51+0.21*S)
& * X1**1.37 * XL**(2.667*S)
XGLU = 24.*S/(1.+9.6*S+0.92*S2+14.34*S3) * EXP(-5.94*S) *
& X**((-0.013-1.80*S)/(1.+3.14*S)) * X1**(2.37+0.4*S) *
& XL**(0.32+3.6*S) + 3.42 * EXP(-12.*S) * X**0.255 *
& X1**(2.37+3.*S)
XSEA = 0.842*S/(1.+21.3*S-33.2*S2+229.*S3) *
& X**((0.13-2.90*S)/(1.+5.44*S)) * X1**(3.45+0.5*S) *
& XL**(2.8*S)
XSEA0 = 0.
ENDIF
C
C...Evaluate set 2D parton distributions below or above threshold.
ELSEIF(ISET.EQ.3) THEN
IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
&(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
XVAL = X**0.46 * X1**0.64 + 0.76 * X
XGLU = 1.925 * X1**2
XSEA = 0.242 * X1**4
ELSE
XVAL = (1.+0.186*S)/(1.-0.209*S+1.495*S2) * X**(0.46+0.25*S)
& * X1**((0.64+0.14*S+5.*S2)/(1.+S)) * XL**(1.9*S) +
& (0.76+0.4*S) * X * X1**(2.667*S)
XGLU = (1.925+5.55*S+147.*S2)/(1.-3.59*S+3.32*S2) *
& EXP(-18.67*S) * X**((-5.81*S-5.34*S2)/(1.+29.*S-4.26*S2))
& * X1**((2.-5.9*S)/(1.+1.7*S)) * XL**(9.3*S/(1.+1.7*S))
XSEA = (0.242-0.252*S+1.19*S2)/(1.-0.607*S+21.95*S2) *
& X**(-12.1*S2/(1.+2.62*S+16.7*S2)) * X1**4 * XL**S
XSEA0 = 0.242 * X1**4
ENDIF
C
C...Evaluate set 2M parton distributions below or above threshold.
ELSEIF(ISET.EQ.4) THEN
IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
&(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
XVAL = 1.168 * X**0.50 * X1**2.60 + 0.965 * X
XGLU = 1.808 * X1**2
XSEA = 0.209 * X1**4
ELSE
XVAL = (1.168+1.771*S+29.35*S2) * EXP(-5.776*S) *
& X**((0.5+0.208*S)/(1.-0.794*S+1.516*S2)) *
& X1**((2.6+7.6*S)/(1.+5.*S)) * XL**(5.15*S/(1.+2.*S)) +
& (0.965+22.35*S)/(1.+18.4*S) * X * X1**(2.667*S)
XGLU = (1.808+29.9*S)/(1.+26.4*S) * EXP(-5.28*S) *
& X**((-5.35*S-10.11*S2)/(1.+31.71*S)) *
& X1**((2.-7.3*S+4.*S2)/(1.+2.5*S)) *
& XL**(10.9*S/(1.+2.5*S))
XSEA = (0.209+0.644*S2)/(1.+0.319*S+17.6*S2) *
& X**((-0.373*S-7.71*S2)/(1.+0.815*S+11.0*S2)) *
& X1**(4.+S) * XL**(0.45*S)
XSEA0 = 0.209 * X1**4
ENDIF
ENDIF
C
C...Threshold factors for c and b sea.
SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
XCHM=0.
IF(Q2.GT.PMC**2.AND.Q2.GT.1.001*P2EFF) THEN
SCH=MAX(0.,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
IF(ISET.EQ.0) THEN
XCHM=XSEA*(1.-(SCH/SLL)**2)
ELSE
XCHM=MAX(0.,XSEA-XSEA0*X1**(2.667*S))*(1.-SCH/SLL)
ENDIF
ENDIF
XBOT=0.
IF(Q2.GT.PMB**2.AND.Q2.GT.1.001*P2EFF) THEN
SBT=MAX(0.,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
IF(ISET.EQ.0) THEN
XBOT=XSEA*(1.-(SBT/SLL)**2)
ELSE
XBOT=MAX(0.,XSEA-XSEA0*X1**(2.667*S))*(1.-SBT/SLL)
ENDIF
ENDIF
C
C...Fill parton distributions.
XPGA(0)=XGLU
XPGA(1)=XSEA
XPGA(2)=XSEA
XPGA(3)=XSEA
XPGA(4)=XCHM
XPGA(5)=XBOT
XPGA(KFA)=XPGA(KFA)+XVAL
DO 110 KFL=1,5
XPGA(-KFL)=XPGA(KFL)
110 CONTINUE
VXPGA(KFA)=XVAL
VXPGA(-KFA)=XVAL
C
END
C
C*********************************************************************
C
SUBROUTINE SASANO(KF,X,Q2,P2,ALAM,XPGA,VXPGA)
C...Purpose: to evaluate the parton distributions of the anomalous
C...photon, inhomogeneously evolved from a scale P2 (where it vanishes)
C...to Q2.
C...KF=0 gives the sum over (up to) 5 flavours,
C...KF<0 limits to flavours up to abs(KF),
C...KF>0 is for flavour KF only.
C...ALAM is the 4-flavour Lambda, which is automatically converted
C...to 3- and 5-flavour equivalents as needed.
DIMENSION XPGA(-6:6), VXPGA(-6:6), ALAMSQ(3:5)
SAVE PMC,PMB,AEM2PI
DATA PMC/1.3/, PMB/4.6/, AEM2PI/0.0011614/
C
C...Reset output.
DO 100 KFL=-6,6
XPGA(KFL)=0.
VXPGA(KFL)=0.
100 CONTINUE
IF(Q2.LE.P2) RETURN
KFA=IABS(KF)
C
C...Calculate Lambda; protect against unphysical Q2 and P2 input.
ALAMSQ(3)=(ALAM*(PMC/ALAM)**(2./27.))**2
ALAMSQ(4)=ALAM**2
ALAMSQ(5)=(ALAM*(ALAM/PMB)**(2./23.))**2
P2EFF=MAX(P2,1.2*ALAMSQ(3))
IF(KF.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
IF(KF.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
Q2EFF=MAX(Q2,P2EFF)
XL=-LOG(X)
C
C...Find number of flavours at lower and upper scale.
NFP=4
IF(P2EFF.LT.PMC**2) NFP=3
IF(P2EFF.GT.PMB**2) NFP=5
NFQ=4
IF(Q2EFF.LT.PMC**2) NFQ=3
IF(Q2EFF.GT.PMB**2) NFQ=5
C
C...Define range of flavour loop.
IF(KF.EQ.0) THEN
KFLMN=1
KFLMX=5
ELSEIF(KF.LT.0) THEN
KFLMN=1
KFLMX=KFA
ELSE
KFLMN=KFA
KFLMX=KFA
ENDIF
C
C...Loop over flavours the photon can branch into.
DO 110 KFL=KFLMN,KFLMX
C
C...Light flavours: calculate t range and (approximate) s range.
IF(KFL.LE.3.AND.(KFL.EQ.1.OR.KFL.EQ.KF)) THEN
TDIFF=LOG(Q2EFF/P2EFF)
S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
& LOG(P2EFF/ALAMSQ(NFQ)))
IF(NFQ.GT.NFP) THEN
Q2DIV=PMB**2
IF(NFQ.EQ.4) Q2DIV=PMC**2
SNFQ=(6./(33.-2.*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
& LOG(P2EFF/ALAMSQ(NFQ)))
SNFP=(6./(33.-2.*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
& LOG(P2EFF/ALAMSQ(NFQ-1)))
S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
ENDIF
IF(NFQ.EQ.5.AND.NFP.EQ.3) THEN
Q2DIV=PMC**2
SNF4=(6./(33.-2.*4))*LOG(LOG(Q2DIV/ALAMSQ(4))/
& LOG(P2EFF/ALAMSQ(4)))
SNF3=(6./(33.-2.*3))*LOG(LOG(Q2DIV/ALAMSQ(3))/
& LOG(P2EFF/ALAMSQ(3)))
S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNF3-SNF4)
ENDIF
C
C...u and s quark do not need a separate treatment when d has been done.
ELSEIF(KFL.EQ.2.OR.KFL.EQ.3) THEN
C
C...Charm: as above, but only include range above c threshold.
ELSEIF(KFL.EQ.4) THEN
IF(Q2.LE.PMC**2) GOTO 110
P2EFF=MAX(P2EFF,PMC**2)
Q2EFF=MAX(Q2EFF,P2EFF)
TDIFF=LOG(Q2EFF/P2EFF)
S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
& LOG(P2EFF/ALAMSQ(NFQ)))
IF(NFQ.EQ.5.AND.NFP.EQ.4) THEN
Q2DIV=PMB**2
SNFQ=(6./(33.-2.*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
& LOG(P2EFF/ALAMSQ(NFQ)))
SNFP=(6./(33.-2.*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
& LOG(P2EFF/ALAMSQ(NFQ-1)))
S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
ENDIF
C
C...Bottom: as above, but only include range above b threshold.
ELSEIF(KFL.EQ.5) THEN
IF(Q2.LE.PMB**2) GOTO 110
P2EFF=MAX(P2EFF,PMB**2)
Q2EFF=MAX(Q2,P2EFF)
TDIFF=LOG(Q2EFF/P2EFF)
S=(6./(33.-2.*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
& LOG(P2EFF/ALAMSQ(NFQ)))
ENDIF
C
C...Evaluate flavour-dependent prefactor (charge^2 etc.).
CHSQ=1./9.
IF(KFL.EQ.2.OR.KFL.EQ.4) CHSQ=4./9.
FAC=AEM2PI*2.*CHSQ*TDIFF
C
C...Evaluate parton distributions (normalized to unit momentum sum).
IF(KFL.EQ.1.OR.KFL.EQ.4.OR.KFL.EQ.5.OR.KFL.EQ.KF) THEN
XVAL= ((1.5+2.49*S+26.9*S**2)/(1.+32.3*S**2)*X**2 +
& (1.5-0.49*S+7.83*S**2)/(1.+7.68*S**2)*(1.-X)**2 +
& 1.5*S/(1.-3.2*S+7.*S**2)*X*(1.-X)) *
& X**(1./(1.+0.58*S)) * (1.-X**2)**(2.5*S/(1.+10.*S))
XGLU= 2.*S/(1.+4.*S+7.*S**2) *
& X**(-1.67*S/(1.+2.*S)) * (1.-X**2)**(1.2*S) *
& ((4.*X**2+7.*X+4.)*(1.-X)/3. - 2.*X*(1.+X)*XL)
XSEA= 0.333*S**2/(1.+4.90*S+4.69*S**2+21.4*S**3) *
& X**(-1.18*S/(1.+1.22*S)) * (1.-X)**(1.2*S) *
& ((8.-73.*X+62.*X**2)*(1.-X)/9. + (3.-8.*X**2/3.)*X*XL +
& (2.*X-1.)*X*XL**2)
C
C...Threshold factors for c and b sea.
SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
XCHM=0.
IF(Q2.GT.PMC**2.AND.Q2.GT.1.001*P2EFF) THEN
SCH=MAX(0.,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
XCHM=XSEA*(1.-(SCH/SLL)**3)
ENDIF
XBOT=0.
IF(Q2.GT.PMB**2.AND.Q2.GT.1.001*P2EFF) THEN
SBT=MAX(0.,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
XBOT=XSEA*(1.-(SBT/SLL)**3)
ENDIF
ENDIF
C
C...Add contribution of each valence flavour.
XPGA(0)=XPGA(0)+FAC*XGLU
XPGA(1)=XPGA(1)+FAC*XSEA
XPGA(2)=XPGA(2)+FAC*XSEA
XPGA(3)=XPGA(3)+FAC*XSEA
XPGA(4)=XPGA(4)+FAC*XCHM
XPGA(5)=XPGA(5)+FAC*XBOT
XPGA(KFL)=XPGA(KFL)+FAC*XVAL
VXPGA(KFL)=VXPGA(KFL)+FAC*XVAL
110 CONTINUE
DO 120 KFL=1,5
XPGA(-KFL)=XPGA(KFL)
VXPGA(-KFL)=VXPGA(KFL)
120 CONTINUE
C
END
C
C*********************************************************************
C
SUBROUTINE SASBEH(KF,X,Q2,P2,PM2,XPBH)
C...Purpose: to evaluate the Bethe-Heitler cross section for
C...heavy flavour production.
SAVE AEM2PI
DATA AEM2PI/0.0011614/
C
C...Reset output.
XPBH=0.
SIGBH=0.
C
C...Check kinematics limits.
IF(X.GE.Q2/(4.*PM2+Q2+P2)) RETURN
W2=Q2*(1.-X)/X-P2
BETA2=1.-4.*PM2/W2
IF(BETA2.LT.1E-10) RETURN
BETA=SQRT(BETA2)
RMQ=4.*PM2/Q2
C
C...Simple case: P2 = 0.
IF(P2.LT.1E-4) THEN
IF(BETA.LT.0.99) THEN
XBL=LOG((1.+BETA)/(1.-BETA))
ELSE
XBL=LOG((1.+BETA)**2*W2/(4.*PM2))
ENDIF
SIGBH=BETA*(8.*X*(1.-X)-1.-RMQ*X*(1.-X))+
& XBL*(X**2+(1.-X)**2+RMQ*X*(1.-3.*X)-0.5*RMQ**2*X**2)
C
C...Complicated case: P2 > 0, based on approximation of
C...C.T. Hill and G.G. Ross, Nucl. Phys. B148 (1979) 373
ELSE
RPQ=1.-4.*X**2*P2/Q2
IF(RPQ.GT.1E-10) THEN
RPBE=SQRT(RPQ*BETA2)
IF(RPBE.LT.0.99) THEN
XBL=LOG((1.+RPBE)/(1.-RPBE))
XBI=2.*RPBE/(1.-RPBE**2)
ELSE
RPBESN=4.*PM2/W2+(4.*X**2*P2/Q2)*BETA2
XBL=LOG((1.+RPBE)**2/RPBESN)
XBI=2.*RPBE/RPBESN
ENDIF
SIGBH=BETA*(6.*X*(1.-X)-1.)+
& XBL*(X**2+(1.-X)**2+RMQ*X*(1.-3.*X)-0.5*RMQ**2*X**2)+
& XBI*(2.*X/Q2)*(PM2*X*(2.-RMQ)-P2*X)
ENDIF
ENDIF
C
C...Multiply by charge-squared etc. to get parton distribution.
CHSQ=1./9.
IF(IABS(KF).EQ.2.OR.IABS(KF).EQ.4) CHSQ=4./9.
XPBH=3.*CHSQ*AEM2PI*X*SIGBH
C
END
C
C*********************************************************************
C
SUBROUTINE SASDIR(X,Q2,P2,Q02,XPGA)
C...Purpose: to evaluate the direct contribution, i.e. the C^gamma term,
C...as needed in MSbar parametrizations.
DIMENSION XPGA(-6:6)
SAVE AEM2PI
DATA AEM2PI/0.0011614/
C
C...Reset output.
DO 100 KFL=-6,6
XPGA(KFL)=0.
100 CONTINUE
C
C...Evaluate common x-dependent expression.
XTMP = (X**2+(1.-X)**2) * (-LOG(X)) - 1.
CGAM = 3.*AEM2PI*X * (XTMP*(1.+P2/(P2+Q02)) + 6.*X*(1.-X))
C
C...d, u, s part by simple charge factor.
XPGA(1)=(1./9.)*CGAM
XPGA(2)=(4./9.)*CGAM
XPGA(3)=(1./9.)*CGAM
C
C...Also fill for antiquarks.
DO 110 KF=1,5
XPGA(-KF)=XPGA(KF)
110 CONTINUE
C
END
C-----------------------------------------------------------------------
CDECK ID>, TIMEL.
*CMZ :- -28/06/01 16.55.32 by Bryan Webber
*-- Author : Bryan Webber
C-----------------------------------------------------------------------
SUBROUTINE TIMEL(TRES)
C-----------------------------------------------------------------------
C DUMMY TIME SUBROUTINE: DELETE AND REPLACE BY SYSTEM
C ROUTINE GIVING TRES = CPU TIME REMAINING (SECONDS)
C-----------------------------------------------------------------------
IMPLICIT NONE
REAL TRES
LOGICAL FIRST
SAVE FIRST
DATA FIRST/.TRUE./
IF (FIRST) THEN
WRITE (6,10)
10 FORMAT(/10X,'SUBROUTINE TIMEL CALLED BUT NOT LINKED.'/
& 10X,'DUMMY TIMEL WILL BE USED. DELETE DUMMY'/
& 10X,'AND LINK CERNLIB FOR CPU TIME REMAINING.')
FIRST=.FALSE.
ENDIF
TRES=1E10
END