4 *CMZ :- -23/08/94 13.22.29 by Mike Seymour
6 *-- Author : Ulrich Baur & Nigel Glover, adapted by Ian Knowles
8 C-----------------------------------------------------------------------
10 FUNCTION HWHIGB(NOMASS,S,T,EH2,EQ2)
12 C-----------------------------------------------------------------------
14 C One loop scalar integrals, used in HWHIGJ.
16 C If NOMASS=.TRUE. use a small mass approx. for particle in loop.
18 C-----------------------------------------------------------------------
20 INCLUDE 'HERWIG61.INC'
22 DOUBLE COMPLEX HWHIGB,HWHIGC,HWHIGD,HWUCI2,HWULI2,EPSI,PII,Z1,Z2
24 DOUBLE PRECISION S,T,EQ2,EH2,RAT,COSH,DLS,DLT,DLM,RZ12,DL1,DL2,
30 EXTERNAL HWULI2,HWUCI2
34 C-----------------------------------------------------------------------
38 C-----------------------------------------------------------------------
48 IF (S.GT.ZERO) HWHIGB=HWHIGB+PII
56 HWHIGB=TWO-TWO*DSQRT(ONE-ONE/RAT)
58 & *DLOG(DSQRT(-RAT)+DSQRT(ONE-RAT))
60 ELSEIF (S.GT.ZERO.AND.RAT.LT.ONE) THEN
62 HWHIGB=TWO-TWO*DSQRT(ONE/RAT-ONE)*DASIN(DSQRT(RAT))
64 ELSEIF (RAT.GT.ONE) THEN
66 HWHIGB=TWO-DSQRT(ONE-ONE/RAT)
68 & *(TWO*DLOG(DSQRT(RAT)+DSQRT(RAT-ONE))-PII)
76 C-----------------------------------------------------------------------
78 ENTRY HWHIGC(NOMASS,S,T,EH2,EQ2)
80 C-----------------------------------------------------------------------
82 C C_0(p{1,2}^2=0,2p1.p2=S;mq,mq,mq)
84 C-----------------------------------------------------------------------
92 HWHIGC=HALF*DLOG(RAT)**2
94 IF (S.GT.ZERO) HWHIGC=HWHIGC-HALF*PIFAC**2-PII*DLOG(RAT)
104 HWHIGC=TWO*DLOG(DSQRT(-RAT)+DSQRT(ONE-RAT))**2/S
106 ELSEIF (S.GT.ZERO.AND.RAT.LT.ONE) THEN
108 HWHIGC=-TWO*(DASIN(DSQRT(RAT)))**2/S
110 ELSEIF (RAT.GT.ONE) THEN
112 COSH=DLOG(DSQRT(RAT)+DSQRT(RAT-ONE))
114 HWHIGC=TWO*(COSH**2-PIFAC**2/FOUR-PII*COSH)/S
122 C-----------------------------------------------------------------------
124 ENTRY HWHIGD(NOMASS,S,T,EH2,EQ2)
126 C-----------------------------------------------------------------------
128 C D_0(p{1,2,3}^2=0,p4^2=EH2,2p1.p2=S,2p2.p3=T;mq,mq,mq,mq)
130 C-----------------------------------------------------------------------
132 PII=CMPLX(ZERO,PIFAC)
136 DLS=DLOG(DABS(S/EQ2))
138 DLT=DLOG(DABS(T/EQ2))
140 DLM=DLOG(DABS(EH2/EQ2))
142 IF (S.GE.ZERO.AND.T.LE.ZERO) THEN
150 HWHIGD=DLS**2+DLT**2-DLM**2+DL1**2
152 & +TWO*(DLOG(S/(EH2-T))*DLOG(-T/S)+HWULI2(Z1)-HWULI2(Z2)
154 & +PII*DLOG(EH2/(EH2-T)))
156 ELSEIF (S.LT.ZERO.AND.T.LT.ZERO) THEN
164 DL1=DLOG((T-EH2)/(S-EH2))
168 HWHIGD=DLS**2+DLT**2-DLM**2+TWO*PIFAC**2/THREE
170 & +TWO*DLOG(S/(T-EH2))*DLOG(ONE/DBLE(Z2))
172 & +TWO*DLOG(T/(S-EH2))*DLOG(ONE/DBLE(Z1))
174 & -DL1**2-DL2**2-TWO*(HWULI2(Z1)+HWULI2(Z2))
176 & +TWO*PII*DLOG(RZ12**2*EH2/EQ2)
186 ROOT=DSQRT(ST**2-FOUR*ST*EQ2*(S+T-EH2))
192 HWHIGD=TWO/ROOT*(-HWUCI2(EQ2,S,XP)-HWUCI2(EQ2,T,XP)
194 & +HWUCI2(EQ2,EH2,XP)+DLOG(-XM/XP)
196 & *(LOG(EQ2+EPSI)-LOG(EQ2+EPSI-S*XP*XM)
198 & +LOG(EQ2+EPSI-EH2*XP*XM)-LOG(EQ2+EPSI-T*XP*XM)))