1 #include "isajet/pilot.h"
4 C Compute D(SIGMA)/D(PT**2)D(Y1)D(Y2)
5 C Include quark masses for ch, bt, and tp and 4th generation.
6 C Note ch is now treated as heavy.
8 C SIGMA = cross section summed over quark types allowed by
10 C SIGS(I) = partial cross section for I1 + I2 --> I3 + I4.
11 C INOUT(I) = IOPAK**3*I4 + IOPAK**2*I3 + IOPAK*I2 + I1
14 C Cross sections from Feynman, Field and Fox, P.R. D18, 3320
15 C Massive cross sections from B. Combridge, N.P. B151, 429.
16 C Extra factor of 1/2 needed for non-identical jets since all
17 C all jets are treated as identical.
19 C Ver 6.35: Fix kinematics for gl + tp -> gl + tp, etc.
21 #if defined(CERNLIB_IMPNONE)
24 #include "isajet/itapes.inc"
25 #include "isajet/qcdpar.inc"
26 #include "isajet/jetpar.inc"
27 #include "isajet/primar.inc"
28 #include "isajet/q1q2.inc"
29 #include "isajet/jetsig.inc"
30 #include "isajet/const.inc"
32 REAL X(2),QSAVE(13,2),EBT(2)
33 EQUIVALENCE (X(1),X1),(S,SHAT),(T,THAT),(U,UHAT)
34 REAL FFF1,FFF2,FFF3,FFF4,FFF5,FFF6,FFF7,S,T,U,FGQ,AM2,FQQ,
35 $ QFCN,STRUC,FJAC,SIG,AMASS,SIG1,AMQ,FJACBT,SIG2,QQ,XQMIN,
37 INTEGER IQ,IH,I,J,IFL,JTYP1,JTYP2,IQ1,IQ2
39 C Elementary cross sections from Feynman, Field, and Fox.
41 FFF1(S,T,U)=4./9.*(S**2+U**2)/T**2
42 FFF2(S,T,U)=4./9.*((S**2+U**2)/T**2+(S**2+T**2)/U**2)
44 FFF3(S,T,U)=4./9.*((S**2+U**2)/T**2+(T**2+U**2)/S**2)
46 FFF4(S,T,U)=32./27.*(U**2+T**2)/(U*T)-8./3.*(U**2+T**2)/S**2
47 FFF5(S,T,U)=1./6.*(U**2+T**2)/(U*T)-3./8.*(U**2+T**2)/S**2
48 FFF6(S,T,U)=-4./9.*(U**2+S**2)/(U*S)+(U**2+S**2)/T**2
49 FFF7(S,T,U)=9./2.*(3.-U*T/S**2-U*S/T**2-S*T/U**2)
50 C Heavy quark cross sections from Combridge
51 FGQ(S,T,U)=2.*(S-AM2)*(AM2-U)/T**2
52 1+4./9.*((S-AM2)*(AM2-U)+2.*AM2*(S+AM2))/(S-AM2)**2
53 2+4./9.*((S-AM2)*(AM2-U)+2.*AM2*(AM2+U))/(AM2-U)**2
54 3+1./9.*AM2*(4.*AM2-T)/((S-AM2)*(AM2-U))
55 4+((S-AM2)*(AM2-U)+AM2*(S-U))/(T*(S-AM2))
56 5-((S-AM2)*(AM2-U)-AM2*(S-U))/(T*(AM2-U))
57 FQQ(S,T,U)=4./9.*((AM2-U)**2+(S-AM2)**2+2.*AM2*T)/T**2
58 QFCN(IQ,IH)=STRUC(X(IH),QSQ,IQ,IDIN(IH))/X(IH)
60 C Use massless kinematics for ch and lighter quarks.
62 CALL TWOKIN(0.,0.,0.,0.)
64 FJAC=FJAC*PI*ALFQSQ**2/SHAT**2
66 C Initialize cross sections.
73 IF(X1.GE.1.0.OR.X2.GE.1.0) RETURN
74 C Compute structure functions
77 QSAVE(IQ,IH)=STRUC(X(IH),QSQ,IQ,IDIN(IH))/X(IH)
80 C Compute cross sections summed over quark types allowed by
84 IF(.NOT.(GOQ(1,1).AND.GOQ(1,2))) GO TO 210
85 SIG=.5*FJAC*QSAVE(1,1)*QSAVE(1,2)*FFF7(S,T,U)
86 CALL SIGFIL(SIG,1,1,1,1)
89 SIG=.5*FJAC*QSAVE(2*I,1)*QSAVE(2*I+1,2)*FFF4(S,T,U)
90 CALL SIGFIL(SIG,2*I,2*I+1,1,1)
91 SIG=.5*FJAC*QSAVE(2*I+1,1)*QSAVE(2*I,2)*FFF4(S,U,T)
92 CALL SIGFIL(SIG,2*I+1,2*I,1,1)
98 IF(.NOT.(GOQ(I,1).AND.GOQ(1,2))) GO TO 212
99 SIG=.5*FJAC*QSAVE(I,1)*QSAVE(1,2)*FFF6(S,T,U)
100 CALL SIGFIL(SIG,I,1,I,1)
101 SIG=.5*FJAC*QSAVE(1,1)*QSAVE(I,2)*FFF6(S,U,T)
102 CALL SIGFIL(SIG,1,I,I,1)
104 IF(.NOT.(GOQ(1,1).AND.GOQ(I,2))) GO TO 211
105 SIG=.5*FJAC*QSAVE(1,1)*QSAVE(I,2)*FFF6(S,T,U)
106 CALL SIGFIL(SIG,1,I,1,I)
107 SIG=.5*FJAC*QSAVE(I,1)*QSAVE(1,2)*FFF6(S,U,T)
108 CALL SIGFIL(SIG,I,1,1,I)
111 C Identical quark-quark
113 IF(.NOT.(GOQ(I,1).AND.GOQ(I,2))) GO TO 220
114 SIG=.5*FJAC*QSAVE(I,1)*QSAVE(I,2)*FFF2(S,T,U)
115 CALL SIGFIL(SIG,I,I,I,I)
118 C Identical quark-antiquark
120 IF(SHAT.LT.4.*AMASS(I)**2) GO TO 230
121 IF(.NOT.(GOQ(2*I,1).AND.GOQ(2*I+1,2))) GO TO 235
122 SIG=.5*FJAC*QSAVE(1,1)*QSAVE(1,2)*FFF5(S,T,U)
123 CALL SIGFIL(SIG,1,1,2*I,2*I+1)
126 SIG=.5*FJAC*QSAVE(2*J,1)*QSAVE(2*J+1,2)*FFF1(T,S,U)
127 CALL SIGFIL(SIG,2*J,2*J+1,2*I,2*I+1)
128 SIG=.5*FJAC*QSAVE(2*J+1,1)*QSAVE(2*J,2)*FFF1(T,S,U)
129 CALL SIGFIL(SIG,2*J+1,2*J,2*I,2*I+1)
131 SIG=.5*FJAC*QSAVE(2*I,1)*QSAVE(2*I+1,2)*FFF3(S,T,U)
132 CALL SIGFIL(SIG,2*I,2*I+1,2*I,2*I+1)
133 SIG=.5*FJAC*QSAVE(2*I+1,1)*QSAVE(2*I,2)*FFF3(S,U,T)
134 CALL SIGFIL(SIG,2*I+1,2*I,2*I,2*I+1)
137 IF(.NOT.(GOQ(2*I+1,1).AND.GOQ(2*I,2))) GO TO 230
138 SIG=.5*FJAC*QSAVE(1,1)*QSAVE(1,2)*FFF5(S,T,U)
139 CALL SIGFIL(SIG,1,1,2*I+1,2*I)
142 SIG=.5*FJAC*QSAVE(2*J,1)*QSAVE(2*J+1,2)*FFF1(T,S,U)
143 CALL SIGFIL(SIG,2*J,2*J+1,2*I+1,2*I)
144 SIG=.5*FJAC*QSAVE(2*J+1,1)*QSAVE(2*J,2)*FFF1(T,S,U)
145 CALL SIGFIL(SIG,2*J+1,2*J,2*I+1,2*I)
147 SIG1=.5*FJAC*QSAVE(2*I,1)*QSAVE(2*I+1,2)*FFF3(S,U,T)
148 CALL SIGFIL(SIG1,2*I,2*I+1,2*I+1,2*I)
149 SIG=.5*FJAC*QSAVE(2*I+1,1)*QSAVE(2*I,2)*FFF3(S,T,U)
150 CALL SIGFIL(SIG,2*I+1,2*I,2*I+1,2*I)
153 C General massless quark-quark
156 IF(.NOT.(GOQ(I,1).AND.GOQ(J,2))) GO TO 241
157 IF((I/2).EQ.(J/2)) GO TO 241
158 SIG=.5*FJAC*QSAVE(I,1)*QSAVE(J,2)*FFF1(S,T,U)
159 CALL SIGFIL(SIG,I,J,I,J)
160 SIG=.5*FJAC*QSAVE(J,1)*QSAVE(I,2)*FFF1(S,U,T)
161 CALL SIGFIL(SIG,I,J,J,I)
165 C CH+CB, BT+BB, and TP+TB cross sections.
166 C Y=-log(tan(theta/2)), so Jacobean contains P1*P2/E1*E2.
167 C Also fourth generation.
173 IF(.NOT.((GOQ(JTYP1,1).AND.GOQ(JTYP2,2)).OR.
174 1 (GOQ(JTYP2,1).AND.GOQ(JTYP1,2)))) GO TO 250
176 IF(AMQ.LT.0.) GO TO 250
178 CALL TWOKIN(0.,0.,AMQ,AMQ)
179 IF(X(1).GE.1..OR.X(2).GE.1.) GO TO 250
180 EBT(1)=SQRT(P(1)**2+AM2)
181 EBT(2)=SQRT(P(2)**2+AM2)
182 FJACBT=.5*S/SCM*UNITS*P(1)*P(2)/(EBT(1)*EBT(2))
183 SIG1=12.*(AM2-T)*(AM2-U)/S**2
184 1 +8./3.*((AM2-T)*(AM2-U)-2.*AM2*(AM2+T))/(AM2-T)**2
185 2 +8./3.*((AM2-T)*(AM2-U)-2.*AM2*(AM2+U))/(AM2-U)**2
186 3 -2./3.*AM2*(S-4.*AM2)/((AM2-T)*(AM2-U))
187 4 -6.*((AM2-T)*(AM2-U)+AM2*(U-T))/(S*(AM2-T))
188 5 -6.*((AM2-T)*(AM2-U)+AM2*(T-U))/(S*(AM2-U))
189 SIG1=SIG1*PI**2*ALFQSQ**2/(16.*PI*S**2)
190 SIG=FJACBT*SIG1*STRUC(X(1),QSQ,1,IDIN(1))/X(1)
191 1 *STRUC(X(2),QSQ,1,IDIN(2))/X(2)
192 IF(GOQ(JTYP1,1).AND.GOQ(JTYP2,2))
193 $ CALL SIGFIL(SIG,1,1,JTYP1,JTYP2)
194 IF(GOQ(JTYP2,1).AND.GOQ(JTYP1,2))
195 $ CALL SIGFIL(SIG,1,1,JTYP2,JTYP1)
197 SIG2=((AM2-T)**2+(AM2-U)**2+2.*S*AM2)/S**2
198 SIG2=FJACBT*SIG2*64.*PI**2*ALFQSQ**2/(9.*16.*PI*S**2)
200 QQ=STRUC(X(1),QSQ,2*I,IDIN(1))*STRUC(X(2),QSQ,2*I+1,IDIN(2))
201 SIG=SIG2*QQ/(X(1)*X(2))
202 IF(GOQ(JTYP1,1).AND.GOQ(JTYP2,2))
203 $ CALL SIGFIL(SIG,2*I,2*I+1,JTYP1,JTYP2)
204 IF(GOQ(JTYP2,1).AND.GOQ(JTYP1,2))
205 $ CALL SIGFIL(SIG,2*I,2*I+1,JTYP2,JTYP1)
206 QQ=STRUC(X(1),QSQ,2*I+1,IDIN(1))*STRUC(X(2),QSQ,2*I,IDIN(2))
207 SIG=SIG2*QQ/(X(1)*X(2))
208 IF(GOQ(JTYP1,1).AND.GOQ(JTYP2,2))
209 $ CALL SIGFIL(SIG,2*I+1,2*I,JTYP1,JTYP2)
210 IF(GOQ(JTYP2,1).AND.GOQ(JTYP1,2))
211 $ CALL SIGFIL(SIG,2*I+1,2*I,JTYP2,JTYP1)
215 C Gluon + heavy quark
217 IF(.NOT.(GOQ(1,1).AND.GOQ(IQ,2))) GO TO 310
223 FJAC=.5*S/SCM*UNITS*PI*ALFQSQ**2/S**2
224 CALL TWOKIN(0.,AMQ,0.,AMQ)
225 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(2).GT.XQMIN) THEN
226 SIG=FJAC*P(1)*P(2)/(E1*E2)*FGQ(S,T,U)*QFCN(1,1)*QFCN(IQ,2)
227 CALL SIGFIL(SIG,1,IQ,1,IQ)
229 CALL TWOKIN(AMQ,0.,0.,AMQ)
230 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(1).GT.XQMIN) THEN
231 SIG=FJAC*P(1)*P(2)/(E1*E2)*FGQ(S,U,T)*QFCN(IQ,1)*QFCN(1,2)
232 CALL SIGFIL(SIG,IQ,1,1,IQ)
235 310 IF(.NOT.(GOQ(IQ,1).AND.GOQ(1,2))) GO TO 300
241 FJAC=.5*S/SCM*UNITS*PI*ALFQSQ**2/S**2
242 CALL TWOKIN(0.,AMQ,AMQ,0.)
243 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(2).GT.XQMIN) THEN
244 SIG=FJAC*P(1)*P(2)/(E1*E2)*FGQ(S,U,T)*QFCN(1,1)*QFCN(IQ,2)
245 CALL SIGFIL(SIG,1,IQ,IQ,1)
247 CALL TWOKIN(AMQ,0.,AMQ,0.)
248 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(1).GT.XQMIN) THEN
249 SIG=FJAC*P(1)*P(2)/(E1*E2)*FGQ(S,T,U)*QFCN(IQ,1)*QFCN(1,2)
250 CALL SIGFIL(SIG,IQ,1,IQ,1)
254 C Light quark + heavy quark
257 IF(.NOT.(GOQ(IQ1,1).AND.GOQ(IQ2,2))) GO TO 340
263 FJAC=.5*S/SCM*UNITS*PI*ALFQSQ**2/S**2
264 CALL TWOKIN(0.,AMQ,0.,AMQ)
265 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(2).GT.XQMIN) THEN
266 SIG=FJAC*P(1)*P(2)/(E1*E2)*FQQ(S,T,U)*QFCN(IQ1,1)
268 CALL SIGFIL(SIG,IQ1,IQ2,IQ1,IQ2)
270 CALL TWOKIN(AMQ,0.,0.,AMQ)
271 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(1).GT.XQMIN) THEN
272 SIG=FJAC*P(1)*P(2)/(E1*E2)*FQQ(S,U,T)*QFCN(IQ1,2)
274 CALL SIGFIL(SIG,IQ2,IQ1,IQ1,IQ2)
277 340 IF(.NOT.(GOQ(IQ1,2).AND.GOQ(IQ2,1))) GO TO 330
283 FJAC=.5*S/SCM*UNITS*PI*ALFQSQ**2/S**2
284 CALL TWOKIN(0.,AMQ,AMQ,0.)
285 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(2).GT.XQMIN) THEN
286 SIG=FJAC*P(1)*P(2)/(E1*E2)*FQQ(S,U,T)*QFCN(IQ1,1)
288 CALL SIGFIL(SIG,IQ1,IQ2,IQ2,IQ1)
290 CALL TWOKIN(AMQ,0.,AMQ,0.)
291 IF(X(1).LT.1..AND.X(2).LT.1..AND.X(1).GT.XQMIN) THEN
292 SIG=FJAC*P(1)*P(2)/(E1*E2)*FQQ(S,T,U)*QFCN(IQ1,2)
294 CALL SIGFIL(SIG,IQ2,IQ1,IQ2,IQ1)