]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/sigdy.F
Update rawdata format for trigger (Christian)
[u/mrichter/AliRoot.git] / ISAJET / code / sigdy.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE SIGDY
3C
4C Compute the Drell-Yan and Drell-Yan plus jet cross sections
5C d(sigma)/d(qmw**2)d(qtw**2)d(yw)d(yj)
6C
7C SIGMA = cross section summed over quark types allowed by
8C JETTYPE3 and WTYPE cards.
9C SIGS(I) = partial cross section for I1 + I2 --> I3 + I4.
10C INOUT(I) = IOPAK**3*I4 + IOPAK**2*I3 + IOPAK*I2 + I1
11C using JETTYPE code.
12C
13C QT cutoff for W+JET taken from Parisi and Petronzio,
14C Nucl Phys B154, 427
15C qk + gl --> qk + w suppressed at low QTW by extra factor
16C of qtw**2/(qtw**2+qt2cut(qmw))
17C
18C Ver 7.17: include top mass for gb --> Wt and gt --> Zt
19C with no extra qt suppression factor. Note we do NOT include
20C gt --> Wb; while this process makes sense for qt >> m_t,
21C it has a pole in the physical region at low qt from the
22C on-shell decay t --> Wb. We let Q**2 --> Q**2 + m_t**2
23C in the scale for the parton distributions.
24C
25C Ver 7.32: Rewrite AJLWT for gb --> Wt, etc., in terms of
26C scaled variables, and restore SWT**5 later to avoid
27C floating errors on VMS.
28C
29C Ver 7.41: Recalculate COUT for each mass(!).
30C
31#if defined(CERNLIB_IMPNONE)
32 IMPLICIT NONE
33#endif
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"
44C
45 REAL X(2)
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
49 REAL AMI2,AMF2,EFWT
50 REAL AJLWT,AJLZT1,AJLZT2,A2,A2B2,QQ,TM2
51 INTEGER I,IQ,IH,IQ1,IFL,IQ2,IW
52 INTEGER NZERO(4)
53 REAL AMFAC(13)
54 INTEGER NUTYP(25)
55 INTEGER IFL1,IFL2
56 REAL TERM
57 EQUIVALENCE (S,SHAT),(T,THAT),(U,UHAT),(X(1),X1)
58C
59 DATA NZERO/11,9,9,11/
60 DATA AMFAC/11*0.,2*1./
61 DATA NUTYP/13*0,1,1,0,0,1,1,0,0,1,1,0,0/
62C
63C Functions
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)
67C Qt cutoff function
68 QT2CUT(QMW)=CUTOFF*QMW**CUTPOW
69C Parton distributions
70 QFCN(XX,IQ,IH)=STRUC(XX,QSQ+AMT2,IQ,IDIN(IH))/XX
71C Integrated matrix elements JLint from FORM
72 AJLWT(S,T,QQ,TM2)=
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
80C
81 AJLZT1(S,T,QQ,TM2)=
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 )
90 AJLZT2(S,T,QQ,TM2)=
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 )
103C
104C Kinematics
105C
106 QMW2=QMW**2
107 QTMW=SQRT(QMW2+QTW**2)
108 Q0W=QTMW*COSH(YW)
109 QZW=QTMW*SINH(YW)
110 QW=SQRT(QZW**2+QTW**2)
111C Protect against errors
112 IF(QW.NE.0.) THEN
113 CTHW=QZW/QW
114 STHW=QTW/QW
115 IF(ABS(CTHW).LT.1.) THEN
116 THW=ACOS(CTHW)
117 ELSE
118 CTHW=0.
119 STHW=1.
120 THW=.5*PI
121 ENDIF
122 ELSE
123 CTHW=0.
124 STHW=1.
125 THW=.5*PI
126 ENDIF
127C
128 IF(STDDY) THEN
129C Kinematics for standard Drell-Yan
130 EHAT=QMW
131 SHAT=QMW**2
132 QSQ=SHAT
133 Q2SAVE=QSQ
134 YHAT=YW
135 EY=EXP(YHAT)
136 X1=EHAT/ECM*EY
137 X2=EHAT/(ECM*EY)
138 ELSE
139C Kinematics for Drell-Yan plus jet
140 P3Z=P(3)*CTH(3)
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)
144 X1=P1/HALFE
145 X2=P2/HALFE
146 THAT=-2.*P1*(P(3)-P3Z)
147 UHAT=-2.*P2*(P(3)+P3Z)
148 QSQ=QTW**2
149 QSQ=AMAX1(QSQ,4.)
150 ANEFF=4.+QSQ/(QSQ+AMASS(5)**2)+QSQ/(QSQ+AMASS(6)**2)
151 ALFQSQ=12.*PI/((33.-2.*ANEFF)*ALOG(QSQ/ALAM2))
152 Q2SAVE=QSQ
153 QSQ=SHAT
154 ENDIF
155C
156C Initialize
157C
158 SIGMA=0.
159 NSIGS=0
160 DO 100 I=1,MXSIGS
161 SIGS(I)=0.
162100 CONTINUE
163 IF(X1.GE.1..OR.X2.GE.1.) RETURN
164C
165C Compute structure functions
166C
167 DO 110 IH=1,2
168 DO 120 IQ=1,11
169 QSAVE(IQ,IH)=STRUC(X(IH),QSQ,IQ,IDIN(IH))/X(IH)
170120 CONTINUE
171 QSAVE(12,IH)=0
172 QSAVE(13,IH)=0
173110 CONTINUE
174 QSQ=Q2SAVE
175C
176C Recompute COUT for this mass
177C
178 DO 130 IW=1,4
179 COUT(IW)=0.
180 IF(.NOT.GODY(IW)) GO TO 130
181 DO 140 IQ1=2,25
182 IQ2=MATCH(IQ1,IW)
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
186 IFL1=IQ1/2
187 IFL2=IQ2/2
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
192140 CONTINUE
193130 CONTINUE
194C
195 IF(STDDY) GO TO 400
196C
197C Compute cross section for types allowed by WTYPE and
198C JETTYPE cards.
199C
200C qk + gl --> qk + W
201C
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
206 DO 200 IW=1,4
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
211 IQ1=MATCH(IQ,4)
212 IQ1=MATCH(IQ1,IW)
213 IF(IQ1.EQ.0) GO TO 210
214 IFL=IQ/2
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)
221210 CONTINUE
222200 CONTINUE
223C
224C bt,tp + gl -> bt,tp + W,Z
225C
226 AMT=AMASS(6)
227 AMT2=AMT**2
228 Q2=QMW2
229 DO 220 IW=2,4
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
233 IQ1=MATCH(IQ,4)
234 IQ1=MATCH(IQ1,IW)
235 IF(IQ1.EQ.0) GO TO 230
236 IF(IQ1.GE.12.AND.IW.NE.4) GO TO 230
237C Assign zero or top masses for initial/final quarks
238 AMF2=AMT2*AMFAC(IQ)
239 AMI2=AMT2*AMFAC(IQ1)
240 EFWT=SQRT(P(3)**2+AMF2)
241 SWT=QMW2+AMF2+2.*Q0W*EFWT-2.*QZW*P3Z+2.*PT(3)**2
242C
243C qk + gl initial state
244C Do kinematics using p(small) = 0 for gluon
245C
246 P1WT=EFWT+P3Z+Q0W+QZW
247 P1M=AMI2/P1WT
248 P2WT=EFWT-P3Z+Q0W-QZW-P1M
249 X1WT=.5*P1WT/HALFE
250 X2WT=.5*P2WT/HALFE
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)
254 $ GO TO 240
255C Cross sections
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)
263 ELSEIF(IW.EQ.4) THEN
264 SIG0=ALFA**2*ALFQSQ/(144*SCM*SWT)*UNITS
265 SIG0=SIG0*COUT(IW)*PROP(IW)
266 A2=AQ(6,IW)**2
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)
273 ENDIF
274C
275C gl + qk initial state
276C Do kinematics using p(small) = 0 for gluon
277C
278240 P2WT=EFWT-P3Z+Q0W-QZW
279 P2M=AMI2/P2WT
280 P1WT=EFWT+P3Z+Q0W+QZW-P2M
281 X1WT=.5*P1WT/HALFE
282 X2WT=.5*P2WT/HALFE
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)
286 $ GO TO 230
287C Cross sections
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)
295 ELSEIF(IW.EQ.4) THEN
296 SIG0=ALFA**2*ALFQSQ/(144*SCM*SWT)*UNITS
297 SIG0=SIG0*COUT(IW)*PROP(IW)
298 A2=AQ(6,IW)**2
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)
305 ENDIF
306230 CONTINUE
307220 CONTINUE
308C
309C qk + qb --> gl + W
310C
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
315 DO 300 IW=1,4
316 IF(.NOT.GODY(IW)) GO TO 300
317 FAC=COUT(IW)*PROP(IW)
318 DO 310 IQ1=2,11
319 IQ2=MATCH(IQ1,IW)
320 IF(IQ2.EQ.0) GO TO 310
321 IFL=IQ1/2
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)
325310 CONTINUE
326300 CONTINUE
327 RETURN
328C
329C Standard Drell-Yan for QT=0.
330C
331400 CONTINUE
332 SIG0=4.*PI*ALFA**2*QMW2/(9.*SCM)*UNITS
333 DO 410 IW=1,4
334 IF(.NOT.GODY(IW)) GO TO 410
335 FAC=COUT(IW)*PROP(IW)
336 DO 420 IQ1=2,13
337 IQ2=MATCH(IQ1,IW)
338 IF(IQ2.EQ.0) GO TO 420
339 IFL=IQ1/2
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)
343420 CONTINUE
344410 CONTINUE
345C
346 RETURN
347 END