]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/src/hwhigb.f
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / HERWIG / src / hwhigb.f
1
2 CDECK  ID>, HWHIGB.
3
4 *CMZ :-        -23/08/94  13.22.29  by  Mike Seymour
5
6 *-- Author :    Ulrich Baur & Nigel Glover, adapted by Ian Knowles
7
8 C-----------------------------------------------------------------------
9
10       FUNCTION HWHIGB(NOMASS,S,T,EH2,EQ2)
11
12 C-----------------------------------------------------------------------
13
14 C     One loop scalar integrals, used in HWHIGJ.
15
16 C     If NOMASS=.TRUE. use a small mass approx. for particle in loop.
17
18 C-----------------------------------------------------------------------
19
20       INCLUDE 'HERWIG61.INC'
21
22       DOUBLE COMPLEX HWHIGB,HWHIGC,HWHIGD,HWUCI2,HWULI2,EPSI,PII,Z1,Z2
23
24       DOUBLE PRECISION S,T,EQ2,EH2,RAT,COSH,DLS,DLT,DLM,RZ12,DL1,DL2,
25
26      & ST,ROOT,XP,XM
27
28       LOGICAL NOMASS
29
30       EXTERNAL HWULI2,HWUCI2
31
32       COMMON/SMALL/EPSI
33
34 C-----------------------------------------------------------------------
35
36 C     B_0(2p1.p2=S;mq,mq)
37
38 C-----------------------------------------------------------------------
39
40       PII=CMPLX(ZERO,PIFAC)
41
42       IF (NOMASS) THEN
43
44          RAT=DABS(S/EQ2)
45
46          HWHIGB=-DLOG(RAT)+TWO
47
48          IF (S.GT.ZERO) HWHIGB=HWHIGB+PII
49
50       ELSE
51
52          RAT=S/(FOUR*EQ2)
53
54          IF (S.LT.ZERO) THEN
55
56             HWHIGB=TWO-TWO*DSQRT(ONE-ONE/RAT)
57
58      &                    *DLOG(DSQRT(-RAT)+DSQRT(ONE-RAT))
59
60          ELSEIF (S.GT.ZERO.AND.RAT.LT.ONE) THEN
61
62             HWHIGB=TWO-TWO*DSQRT(ONE/RAT-ONE)*DASIN(DSQRT(RAT))
63
64          ELSEIF (RAT.GT.ONE) THEN
65
66             HWHIGB=TWO-DSQRT(ONE-ONE/RAT)
67
68      &                *(TWO*DLOG(DSQRT(RAT)+DSQRT(RAT-ONE))-PII)
69
70          ENDIF
71
72       ENDIF
73
74       RETURN
75
76 C-----------------------------------------------------------------------
77
78       ENTRY HWHIGC(NOMASS,S,T,EH2,EQ2)
79
80 C-----------------------------------------------------------------------
81
82 C     C_0(p{1,2}^2=0,2p1.p2=S;mq,mq,mq)
83
84 C-----------------------------------------------------------------------
85
86       PII=CMPLX(ZERO,PIFAC)
87
88       IF (NOMASS) THEN
89
90          RAT=DABS(S/EQ2)
91
92          HWHIGC=HALF*DLOG(RAT)**2
93
94          IF (S.GT.ZERO) HWHIGC=HWHIGC-HALF*PIFAC**2-PII*DLOG(RAT)
95
96          HWHIGC=HWHIGC/S
97
98       ELSE
99
100          RAT=S/(FOUR*EQ2)
101
102          IF (S.LT.ZERO) THEN
103
104             HWHIGC=TWO*DLOG(DSQRT(-RAT)+DSQRT(ONE-RAT))**2/S
105
106          ELSEIF (S.GT.ZERO.AND.RAT.LT.ONE) THEN
107
108             HWHIGC=-TWO*(DASIN(DSQRT(RAT)))**2/S
109
110          ELSEIF (RAT.GT.ONE) THEN
111
112             COSH=DLOG(DSQRT(RAT)+DSQRT(RAT-ONE))
113
114             HWHIGC=TWO*(COSH**2-PIFAC**2/FOUR-PII*COSH)/S
115
116          ENDIF
117
118       ENDIF
119
120       RETURN
121
122 C-----------------------------------------------------------------------
123
124       ENTRY HWHIGD(NOMASS,S,T,EH2,EQ2)
125
126 C-----------------------------------------------------------------------
127
128 C     D_0(p{1,2,3}^2=0,p4^2=EH2,2p1.p2=S,2p2.p3=T;mq,mq,mq,mq)
129
130 C-----------------------------------------------------------------------
131
132       PII=CMPLX(ZERO,PIFAC)
133
134       IF (NOMASS) THEN
135
136          DLS=DLOG(DABS(S/EQ2))
137
138          DLT=DLOG(DABS(T/EQ2))
139
140          DLM=DLOG(DABS(EH2/EQ2))
141
142          IF (S.GE.ZERO.AND.T.LE.ZERO) THEN
143
144             DL1=DLOG((EH2-T)/S)
145
146             Z1=T/(T-EH2)
147
148             Z2=(S-EH2)/S
149
150             HWHIGD=DLS**2+DLT**2-DLM**2+DL1**2
151
152      &            +TWO*(DLOG(S/(EH2-T))*DLOG(-T/S)+HWULI2(Z1)-HWULI2(Z2)
153
154      &                 +PII*DLOG(EH2/(EH2-T)))
155
156          ELSEIF (S.LT.ZERO.AND.T.LT.ZERO) THEN
157
158             Z1=(S-EH2)/S
159
160             Z2=(T-EH2)/T
161
162             RZ12=ONE/(Z1*Z2)
163
164             DL1=DLOG((T-EH2)/(S-EH2))
165
166             DL2=DLOG(RZ12)
167
168             HWHIGD=DLS**2+DLT**2-DLM**2+TWO*PIFAC**2/THREE
169
170      &            +TWO*DLOG(S/(T-EH2))*DLOG(ONE/DBLE(Z2))
171
172      &            +TWO*DLOG(T/(S-EH2))*DLOG(ONE/DBLE(Z1))
173
174      &            -DL1**2-DL2**2-TWO*(HWULI2(Z1)+HWULI2(Z2))
175
176      &            +TWO*PII*DLOG(RZ12**2*EH2/EQ2)
177
178          ENDIF
179
180          HWHIGD=HWHIGD/(S*T)
181
182       ELSE
183
184          ST=S*T
185
186          ROOT=DSQRT(ST**2-FOUR*ST*EQ2*(S+T-EH2))
187
188          XP=HALF*(ST+ROOT)/ST
189
190          XM=1-XP
191
192          HWHIGD=TWO/ROOT*(-HWUCI2(EQ2,S,XP)-HWUCI2(EQ2,T,XP)
193
194      &         +HWUCI2(EQ2,EH2,XP)+DLOG(-XM/XP)
195
196      &         *(LOG(EQ2+EPSI)-LOG(EQ2+EPSI-S*XP*XM)
197
198      &          +LOG(EQ2+EPSI-EH2*XP*XM)-LOG(EQ2+EPSI-T*XP*XM)))
199
200       ENDIF
201
202       RETURN
203
204       END