4 *CMZ :- -03/07/95 19.02.12 by Giovanni Abbiendi
6 *-- Author : Giovanni Abbiendi & Luca Stanco
8 C----------------------------------------------------------------------
12 C----------------------------------------------------------------------
14 C Returns differential cross section DSIGMA in (Y,Q2,ETA,Z,PHI)
16 C Scale for structure functions and alpha_s selected by BGSHAT
18 C----------------------------------------------------------------------
20 INCLUDE 'HERWIG61.INC'
22 DOUBLE PRECISION HWUALF,HWUAEM,LEP,Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,
24 & ME,MP,ML,MREMIF(18),MFIN1(18),MFIN2(18),RS,SMA,W2,RSHAT,
26 & SFUN(13),ALPHA,LDSIG,DLQ(7),SG,XG,MF1,MF2,MSUM,MDIF,MPRO,FFUN,
28 & GFUN,H43,H41,H11,H12,H14,H16,H21,H22,G11,G12,G1A,G1B,G21,G22,G3,
30 & GC,A11,A12,A44,ALPHAS,PDENS,AFACT,BFACT,CFACT,DFACT,GAMMA,S,T,U,
34 INTEGER IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,IPROO,IHAD,ILEPT,IQ,IS
36 LOGICAL CHARGD,INCLUD(18),INSIDE(18)
38 EXTERNAL HWUALF,HWUAEM
40 COMMON /HWAREA/ LEP,Y,Q2,SHAT,Z,PHI,AJACOB,DSIGMA,ME,MP,ML,MREMIF,
42 & MFIN1,MFIN2,RS,SMA,W2,RSHAT,IQK,IFLAVU,IFLAVD,IMIN,IMAX,IFL,
44 & IPROO,CHARGD,INCLUD,INSIDE
50 IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
76 IF (IFL.EQ.164) IS=IQK
86 C---choose subprocess scale
96 IF (IFL.GE.7.AND.IFL.LE.18) S=SHAT+Q2-MF1**2
102 IF (IFL.GE.7.AND.IFL.LE.18) U=-S-T-2*MF1**2
104 EMSCA = SQRT(TWO*S*T*U/(S**2+T**2+U**2))
106 IF (IFL.EQ.164) EMSCA=SQRT(-U)
110 ALPHAS = HWUALF(1,EMSCA)
112 IF (ALPHAS.GE.ONE.OR.ALPHAS.LE.ZERO) CALL HWWARN('HWHBSG',51,*888)
114 C---structure functions
116 ETA = (SHAT+Q2)/SMA/Y
118 IF (ETA.GT.ONE) ETA=ONE
120 CALL HWSFUN (ETA,EMSCA,IDHW(IHAD),NSTRU,SFUN,2)
126 IF (SG.LE.(RSHAT+ML)**2.OR.SG.GE.(RS-MREMIN)**2) GOTO 888
130 IF (IFL.EQ.164) GOTO 200
134 C---Electroweak couplings
140 POL = PPOLN(3) - EPOLN(3)
142 DLQ(1)=.0625*VCKM(IFLAVU/2,(IFLAVD+1)/2)/SWEIN**2 *
144 + Q2**2/((Q2+RMASS(198)**2)**2+(RMASS(198)*GAMW)**2) *
156 ILEPT=MOD(IDHW(1)-121,6)+11
158 CALL HWUCFF(ILEPT,IQ,-Q2,DLQ(1))
166 C---For Boson-Gluon Fusion
172 MSUM = (MF1**2 + MF2**2) / (Y*SG)
174 MDIF = (MF1**2 - MF2**2) / (Y*SG)
176 MPRO = MF1*MF2 / (Y*SG)
180 FFUN = (1.D0-XG)*Z*(1.D0-Z) + (MDIF*(2.D0*Z-1.D0)-MSUM)/2.D0
182 GFUN = (1.D0-XG)*(1.D0-Z) + XG*Z + MDIF
184 IF ( FFUN .LT. ZERO ) FFUN = ZERO
186 H43 = (8.D0*(2.D0*Z**2*XG-Z**2-2.D0*Z*XG+2.D0*Z*MDIF+Z-MDIF
188 & -MSUM)) / (Z*(1.D0-Z))**2
192 H41 = (8.D0*(Z**2-Z*XG+Z*MDIF-MDIF-MSUM)) / (Z**2*(1.D0-Z))
196 H11 = (4.D0*(2.D0*Z**4-4.D0*Z**3+2.D0*Z**2*MSUM*XG
198 & -2.D0*Z**2*MSUM+2.D0*Z**2*XG**2-2.D0*Z**2*XG+3.D0*Z**2
200 & +2.D0*Z*MDIF*MSUM+2.D0*Z*MDIF*XG-2.D0*Z*MSUM*XG
202 & +2.D0*Z*MSUM-2.D0*Z*XG**2+2.D0*Z*XG-Z-MDIF*MSUM-MDIF*XG
204 & -MSUM**2-MSUM*XG)) / (Z*(1.D0-Z))**2
208 H12 = (16.D0*(-Z*MDIF+Z*XG+MDIF+MSUM))/(Z**2*(1.D0-Z))
212 H14 = (16.D0*(-2.D0*Z**2*XG-2.D0*Z*MDIF+2.D0*Z*XG+MDIF+MSUM))
218 H16 = (32.D0*(Z*MDIF-Z*XG-MDIF-MSUM)) / (Z**2*(1.D0-Z))
222 H21 = (8.D0*MPRO*(-2.D0*Z**2*XG+2.D0*Z**2-2.D0*Z*MDIF+2.D0*Z*XG
224 + -2.D0*Z+MDIF+MSUM)) / (Z*(1.D0-Z))**2
228 H22 = (-32.D0*MPRO) / (Z*(1.D0-Z))
232 G11 = -2.D0*H11 + FFUN*H14
234 G12 = 2.D0*XG*FFUN*H14 + H12 + GFUN * ( H16+GFUN*H14 )
236 G1A = SQRT( XG*FFUN ) * ( H16 + 2.D0*GFUN*H14 )
246 GC = SQRT( XG*FFUN ) * (-2.D0*XG*H43 )
250 C---for QCD Compton, massless matrix element
252 PDENS = SFUN(IFL-6)/ETA
256 FFUN = XG*(ONE-XG)*Z*(ONE-Z)
258 GFUN = (ONE-XG)*(ONE-Z)+XG*Z
260 G11 = 8.D0*((Z**2+XG**2)/(ONE-XG)/(ONE-Z)+TWO*(XG*Z+ONE))
262 G12 = 64.D0*XG**2*Z+TWO*XG*G11
264 G1A = 32.D0*XG*GFUN*SQRT(FFUN)/((ONE-XG)*(ONE-Z))
268 G3 = -16.D0*(ONE-XG)*(ONE-Z)+G11
270 GC = -16.D0*XG*SQRT(FFUN)*(ONE-Z-XG)/((ONE-XG)*(ONE-Z))
280 A11 = XG * Y**2 * G11 + (1.D0-Y) * G12
282 & - (2.D0-Y) * SQRT( 1.D0-Y ) * G1A * COS( PHI )
284 & + 2.D0 * XG * (1.D0-Y) * G1B * COS( 2.D0*PHI )
288 A12 = XG * Y**2 * G21 + (1.D0-Y) * G22
292 A44 = XG * Y * (2.D0-Y) * G3
294 & - 2.D0 * Y * SQRT( 1.D0-Y ) * GC * COS( PHI )
298 IF ( Y*Q2**2 .LT. 1D-38 ) THEN
300 C---prevent numerical uncertainties in DSIGMA computation
302 DSIGMA = PDENS*ALPHA**2*ALPHAS*GEV2NB*CCOL/(16.D0*PIFAC)
304 & *(DLQ(1)*A11 + DLQ(2)*A12 + LEP*DLQ(3)*A44)
306 IF ( DSIGMA .LE. ZERO ) GOTO 888
308 LDSIG = LOG (DSIGMA) - LOG (Y) - 2.D0 * LOG (Q2)
314 DSIGMA = PDENS*ALPHA**2*ALPHAS*GEV2NB*CCOL
316 & * (DLQ(1)*A11 + DLQ(2)*A12 + LEP*DLQ(3)*A44)
318 & / (16.D0*PIFAC*Y*Q2**2)
322 IF (DSIGMA.LT.ZERO) GOTO 888
330 C--- J/psi production
338 AFACT = (8.D0*PIFAC*ALPHAS**2*RMASS(164)**3*GAMMA)/(3.D0*ALPHA)
340 BFACT = ONE/(Y*SG*Z**2*((Z-ONE)*Y*SG-RMASS(164)**2)**2)
342 CFACT = (RMASS(164)**2-Z*Y*SG)**2/(Y*SG*(ONE-XG)**2*
344 & ((ONE-XG)*Y*SG-RMASS(164)**2)**2*
346 & ((Z-ONE)*Y*SG-RMASS(164)**2)**2)
348 DFACT = ((Z-ONE)*Y*SG)**2/(Y*SG*(ONE-XG)**2*
350 & ((ONE-XG)*Y*SG-RMASS(164)**2)**2*(Z*Y*SG)**2)
352 DSIGMA = GEV2NB*ALPHA/(TWO*PIFAC)*AFACT*(BFACT+CFACT+DFACT)*PDENS
354 IF (DSIGMA.LT.ZERO ) GOTO 888