1 #include "isajet/pilot.h"
4 C Compute the Drell-Yan and Drell-Yan plus jet cross sections
5 C d(sigma)/d(qmw**2)d(qtw**2)d(yw)d(yj)
7 C SIGMA = cross section summed over quark types allowed by
8 C JETTYPE3 and WTYPE cards.
9 C SIGS(I) = partial cross section for I1 + I2 --> I3 + I4.
10 C INOUT(I) = IOPAK**3*I4 + IOPAK**2*I3 + IOPAK*I2 + I1
13 C QT cutoff for W+JET taken from Parisi and Petronzio,
15 C qk + gl --> qk + w suppressed at low QTW by extra factor
16 C of qtw**2/(qtw**2+qt2cut(qmw))
18 C Ver 7.17: include top mass for gb --> Wt and gt --> Zt
19 C with no extra qt suppression factor. Note we do NOT include
20 C gt --> Wb; while this process makes sense for qt >> m_t,
21 C it has a pole in the physical region at low qt from the
22 C on-shell decay t --> Wb. We let Q**2 --> Q**2 + m_t**2
23 C in the scale for the parton distributions.
25 C Ver 7.32: Rewrite AJLWT for gb --> Wt, etc., in terms of
26 C scaled variables, and restore SWT**5 later to avoid
27 C floating errors on VMS.
29 C Ver 7.41: Recalculate COUT for each mass(!).
31 #if defined(CERNLIB_IMPNONE)
34 #include "isajet/itapes.inc"
35 #include "isajet/qcdpar.inc"
36 #include "isajet/jetpar.inc"
37 #include "isajet/primar.inc"
38 #include "isajet/q1q2.inc"
39 #include "isajet/jetsig.inc"
40 #include "isajet/qsave.inc"
41 #include "isajet/wcon.inc"
42 #include "isajet/const.inc"
43 #include "isajet/nodcay.inc"
46 REAL Z,S,T,U,QMW2,QZW,EHAT,Q2SAVE,YHAT,EY,P3Z,P1,P2,AMASS,ANEFF,
47 $SIG0,DENOM,QT2CUT,SIGT,SIGU,FAC,PROP,FACTOR,SIG,AMT,AMT2,SWT,
48 $P1WT,P2WT,X1WT,X2WT,TWT,UWT,Q2,QFCN,STRUC,XX,ACOSH,ATANH,P2M,P1M
50 REAL AJLWT,AJLZT1,AJLZT2,A2,A2B2,QQ,TM2
51 INTEGER I,IQ,IH,IQ1,IFL,IQ2,IW
57 EQUIVALENCE (S,SHAT),(T,THAT),(U,UHAT),(X(1),X1)
60 DATA AMFAC/11*0.,2*1./
61 DATA NUTYP/13*0,1,1,0,0,1,1,0,0,1,1,0,0/
64 ACOSH(Z)=ALOG(Z+SQRT(Z**2-1.))
65 ATANH(Z)=.5*ALOG((1.+Z)/(1.-Z))
66 PROP(I)=1./((QMW2-WMASS(I)**2)**2+(WMASS(I)*WGAM(I))**2)
68 QT2CUT(QMW)=CUTOFF*QMW**CUTPOW
69 C Parton distributions
70 QFCN(XX,IQ,IH)=STRUC(XX,QSQ+AMT2,IQ,IDIN(IH))/XX
71 C Integrated matrix elements JLint from FORM
73 $ - 32*QQ**3*S*T + 32*QQ**3*S*TM2 + 32*QQ**2*S**2*T
74 $ + 32*QQ**2*S*T**2 - 16*QQ**2*S*T*TM2 - 16*QQ**2*S*TM2**2
75 $ - 16*QQ*S**3*T + 16*QQ*S**3*TM2 - 16*QQ*S**2*T*TM2
76 $ - 16*QQ*S*T**3 + 32*QQ*S*T**2*TM2 - 16*QQ*S*T*TM2**2
77 $ - 8*S**3*T*TM2 + 8*S**3*TM2**2 - 16*S**2*T**2*TM2
78 $ + 16*S**2*T*TM2**2 - 16*S**2*TM2**3 - 8*S*T**3*TM2
79 $ + 8*S*T**2*TM2**2 - 8*S*T*TM2**3 + 8*S*TM2**4
82 $ + A2 * ( - 96*QQ**2*S*T*TM2 + 96*QQ**2*S*TM2**2
83 $ + 96*QQ**2*T*TM2**2 - 96*QQ**2*TM2**3 + 96*QQ*S**2*T*TM2
84 $ + 96*QQ*S*T**2*TM2 - 192*QQ*S*T*TM2**2 - 96*QQ*S*TM2**3
85 $ - 96*QQ*T*TM2**3 + 192*QQ*TM2**4 + 16*S**3*T*TM2
86 $ - 16*S**3*TM2**2 + 32*S**2*T**2*TM2 - 112*S**2*T*TM2**2
87 $ + 80*S**2*TM2**3 + 16*S*T**3*TM2 - 112*S*T**2*TM2**2
88 $ + 224*S*T*TM2**3 - 128*S*TM2**4 - 16*T**3*TM2**2
89 $ + 80*T**2*TM2**3 - 128*T*TM2**4 + 64*TM2**5 )
91 $ + A2B2 * ( - 16*QQ**3*S*T + 16*QQ**3*S*TM2 + 16*QQ**3*T*TM2
92 $ - 16*QQ**3*TM2**2 + 16*QQ**2*S**2*T + 16*QQ**2*S*T**2
93 $ + 32*QQ**2*S*T*TM2 - 80*QQ**2*S*TM2**2 - 80*QQ**2*T*TM2**2
94 $ + 96*QQ**2*TM2**3 - 8*QQ*S**3*T + 8*QQ*S**3*TM2
95 $ - 40*QQ*S**2*T*TM2 - 24*QQ*S**2*TM2**2 - 8*QQ*S*T**3
96 $ - 40*QQ*S*T**2*TM2 + 80*QQ*S*T*TM2**2 + 96*QQ*S*TM2**3
97 $ + 8*QQ*T**3*TM2 - 24*QQ*T**2*TM2**2 + 96*QQ*T*TM2**3
98 $ - 144*QQ*TM2**4 - 16*S**3*T*TM2 + 16*S**3*TM2**2
99 $ - 32*S**2*T**2*TM2 + 112*S**2*T*TM2**2 - 80*S**2*TM2**3
100 $ - 16*S*T**3*TM2 + 112*S*T**2*TM2**2 - 224*S*T*TM2**3
101 $ + 128*S*TM2**4 + 16*T**3*TM2**2 - 80*T**2*TM2**3
102 $ + 128*T*TM2**4 - 64*TM2**5 )
107 QTMW=SQRT(QMW2+QTW**2)
110 QW=SQRT(QZW**2+QTW**2)
111 C Protect against errors
115 IF(ABS(CTHW).LT.1.) THEN
129 C Kinematics for standard Drell-Yan
139 C Kinematics for Drell-Yan plus jet
141 SHAT=QMW2+2.*Q0W*P(3)-2.*QZW*P3Z+2.*PT(3)**2
142 P1=.5*(P(3)+P3Z+Q0W+QZW)
143 P2=.5*(P(3)-P3Z+Q0W-QZW)
146 THAT=-2.*P1*(P(3)-P3Z)
147 UHAT=-2.*P2*(P(3)+P3Z)
150 ANEFF=4.+QSQ/(QSQ+AMASS(5)**2)+QSQ/(QSQ+AMASS(6)**2)
151 ALFQSQ=12.*PI/((33.-2.*ANEFF)*ALOG(QSQ/ALAM2))
163 IF(X1.GE.1..OR.X2.GE.1.) RETURN
165 C Compute structure functions
169 QSAVE(IQ,IH)=STRUC(X(IH),QSQ,IQ,IDIN(IH))/X(IH)
176 C Recompute COUT for this mass
180 IF(.NOT.GODY(IW)) GO TO 130
183 IF(IQ2.EQ.0) GO TO 140
184 IF(.NOT.(GOQ(IQ1,1).AND.GOQ(IQ2,2))) GO TO 140
185 IF(NUTYP(IQ1)*NUTYP(IQ2).EQ.1.AND.NONUNU) GO TO 140
188 IF(AMASS(IFL1)+AMASS(IFL2).GE.QMW) GO TO 140
189 TERM=.5*(AQ(IFL1,IW)**2+BQ(IFL1,IW)**2)
190 IF(IQ1.LE.13) TERM=3.*TERM
191 COUT(IW)=COUT(IW)+TERM
197 C Compute cross section for types allowed by WTYPE and
202 SIG0=ALFA**2*ALFQSQ*QMW2/(9.*SCM*S)*UNITS
203 DENOM=S**2*EXP(.5*ALOG(QTW**4+QT2CUT(QMW)**2))
204 SIGT=SIG0*(S**2+U**2+2.*T*QMW2)*(-T)/DENOM
205 SIGU=SIG0*(S**2+T**2+2.*U*QMW2)*(-U)/DENOM
207 IF(.NOT.GODY(IW)) GO TO 200
208 FAC=COUT(IW)*PROP(IW)
209 DO 210 IQ=2,NZERO(IW)
210 IF(.NOT.GOQ(IQ,3)) GO TO 210
213 IF(IQ1.EQ.0) GO TO 210
215 FACTOR=FAC*(AQ(IFL,IW)**2+BQ(IFL,IW)**2)
216 $ *QTW**2/(QTW**2+QT2CUT(QMW))
217 SIG=FACTOR*SIGT*QSAVE(IQ1,1)*QSAVE(1,2)
218 CALL SIGFIL(SIG,IQ1,1,IW,IQ)
219 SIG=FACTOR*SIGU*QSAVE(IQ1,2)*QSAVE(1,1)
220 CALL SIGFIL(SIG,1,IQ1,IW,IQ)
224 C bt,tp + gl -> bt,tp + W,Z
230 IF(.NOT.GODY(IW)) GO TO 220
231 DO 230 IQ=NZERO(IW)+1,13
232 IF(.NOT.GOQ(IQ,3)) GO TO 230
235 IF(IQ1.EQ.0) GO TO 230
236 IF(IQ1.GE.12.AND.IW.NE.4) GO TO 230
237 C Assign zero or top masses for initial/final quarks
240 EFWT=SQRT(P(3)**2+AMF2)
241 SWT=QMW2+AMF2+2.*Q0W*EFWT-2.*QZW*P3Z+2.*PT(3)**2
243 C qk + gl initial state
244 C Do kinematics using p(small) = 0 for gluon
246 P1WT=EFWT+P3Z+Q0W+QZW
248 P2WT=EFWT-P3Z+Q0W-QZW-P1M
251 TWT=-P1WT*(EFWT-P3Z)-P1M*(EFWT+P3Z)+AMI2+AMF2
252 UWT=-P2WT*(EFWT+P3Z)+AMF2
253 IF(X1WT.LT.0.OR.X1WT.GT.1.OR.X2WT.LT.0.OR.X2WT.GT.1)
256 IF(IW.EQ.2.OR.IW.EQ.3) THEN
257 SIG0=ALFA**2*ALFQSQ/(144*SCM*SWT)*UNITS
258 SIG0=SIG0*(AQ(5,IW)**2+BQ(5,IW)**2)*COUT(IW)*PROP(IW)
259 SIGU=SIG0*AJLWT(SWT/SWT,UWT/SWT,Q2/SWT,AMT2/SWT)*SWT*
260 $ (SWT/(SWT-AMI2))**2*(SWT/(UWT-AMF2))**2
261 SIG=SIGU*QFCN(X1WT,IQ1,1)*QFCN(X2WT,1,2)
262 CALL SIGFIL(SIG,IQ1,1,IW,IQ)
264 SIG0=ALFA**2*ALFQSQ/(144*SCM*SWT)*UNITS
265 SIG0=SIG0*COUT(IW)*PROP(IW)
267 A2B2=AQ(6,IW)**2+BQ(6,IW)**2
268 SIGU=SIG0*(AJLZT1(SWT/SWT,UWT/SWT,Q2/SWT,AMT2/SWT)+
269 $ AJLZT2(SWT/SWT,UWT/SWT,Q2/SWT,AMT2/SWT))*SWT*
270 $ (SWT/(SWT-AMI2))**2*(SWT/(UWT-AMF2))**2
271 SIG=SIGU*QFCN(X1WT,IQ1,1)*QFCN(X2WT,1,2)
272 CALL SIGFIL(SIG,IQ1,1,IW,IQ)
275 C gl + qk initial state
276 C Do kinematics using p(small) = 0 for gluon
278 240 P2WT=EFWT-P3Z+Q0W-QZW
280 P1WT=EFWT+P3Z+Q0W+QZW-P2M
283 TWT=-P1WT*(EFWT-P3Z)+AMF2
284 UWT=-P2WT*(EFWT+P3Z)-P2M*(EFWT-P3Z)+AMI2+AMF2
285 IF(X1WT.LT.0.OR.X1WT.GT.1.OR.X2WT.LT.0.OR.X2WT.GT.1)
288 IF(IW.EQ.2.OR.IW.EQ.3) THEN
289 SIG0=ALFA**2*ALFQSQ/(144*SCM*SWT)*UNITS
290 SIG0=SIG0*(AQ(5,IW)**2+BQ(5,IW)**2)*COUT(IW)*PROP(IW)
291 SIGT=SIG0*AJLWT(SWT/SWT,TWT/SWT,Q2/SWT,AMT2/SWT)*SWT*
292 $ (SWT/(SWT-AMI2))**2*(SWT/(TWT-AMF2)**2)
293 SIG=SIGT*QFCN(X1WT,1,1)*QFCN(X2WT,IQ1,2)
294 CALL SIGFIL(SIG,1,IQ1,IW,IQ)
296 SIG0=ALFA**2*ALFQSQ/(144*SCM*SWT)*UNITS
297 SIG0=SIG0*COUT(IW)*PROP(IW)
299 A2B2=AQ(6,IW)**2+BQ(6,IW)**2
300 SIGU=SIG0*(AJLZT1(SWT/SWT,TWT/SWT,Q2/SWT,AMT2/SWT)+
301 $ AJLZT2(SWT/SWT,TWT/SWT,Q2/SWT,AMT2/SWT))*SWT*
302 $ (SWT/(SWT-AMI2))**2*(SWT/(TWT-AMF2))**2
303 SIG=SIGU*QFCN(X1WT,1,1)*QFCN(X2WT,IQ1,2)
304 CALL SIGFIL(SIG,1,IQ1,IW,IQ)
311 IF(.NOT.GOQ(1,3)) RETURN
312 SIG0=8.*ALFA**2*ALFQSQ*QMW2/(27.*SCM*S)*UNITS
313 DENOM=S*EXP(.5*ALOG(QTW**4+QT2CUT(QMW)**2))
314 SIG0=SIG0*(T**2+U**2+2.*S*QMW2)/DENOM
316 IF(.NOT.GODY(IW)) GO TO 300
317 FAC=COUT(IW)*PROP(IW)
320 IF(IQ2.EQ.0) GO TO 310
322 SIG=FAC*SIG0*(AQ(IFL,IW)**2+BQ(IFL,IW)**2)
323 $ *QSAVE(IQ1,1)*QSAVE(IQ2,2)
324 CALL SIGFIL(SIG,IQ1,IQ2,IW,1)
329 C Standard Drell-Yan for QT=0.
332 SIG0=4.*PI*ALFA**2*QMW2/(9.*SCM)*UNITS
334 IF(.NOT.GODY(IW)) GO TO 410
335 FAC=COUT(IW)*PROP(IW)
338 IF(IQ2.EQ.0) GO TO 420
340 SIG=FAC*SIG0*(AQ(IFL,IW)**2+BQ(IFL,IW)**2)
341 $ *QSAVE(IQ1,1)*QSAVE(IQ2,2)
342 CALL SIGFIL(SIG,IQ1,IQ2,IW,0)