More volume overlaps corrected
[u/mrichter/AliRoot.git] / ISAJET / code / sigssy.F
1 #include "isajet/pilot.h"
2       SUBROUTINE SIGSSY
3 C
4 C          Calculate d(sigma)/d(pt**2)d(y1)d(y2) for supersymmetric
5 C          particle pairs, including gluinos, gauginos, and squarks.
6 C
7 C          SIGMA    = cross section summed over types allowed by
8 C                     JETTYPE cards (with natural equivalence.)
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
11 C
12 C          Extra factor of 1/2 needed for nonidentical final jets.
13 C          Y=-log(tan(theta/2)) gives jacobean P1*P2/E1*E2
14 C
15 C          Dec. 1992: Use cross sections from Baer and Tata, Phys. 
16 C          Lett. 160B, 159; Phys. Rev. D42, 2259. These papers
17 C          separate L and R squarks.
18 C
19 C          Gauginos are included only for MSSM. The cross sections are
20 C          calculated in SIGSSZ, which is called from here.
21 C
22 #if defined(CERNLIB_IMPNONE)
23       IMPLICIT NONE
24 #endif
25 #include "isajet/itapes.inc"
26 #include "isajet/qcdpar.inc"
27 #include "isajet/jetpar.inc"
28 #include "isajet/primar.inc"
29 #include "isajet/q1q2.inc"
30 #include "isajet/jetsig.inc"
31 #include "isajet/const.inc"
32 #include "isajet/qsave.inc"
33 #include "isajet/wcon.inc"
34 #include "isajet/sstype.inc"
35 #include "isajet/xmssm.inc"
36 C
37       REAL X(2)
38       INTEGER IDQ(13),IDQSS(25),JS2JT(25)
39       EQUIVALENCE (X(1),X1)
40       LOGICAL LLRR
41       REAL QFCN,STRUC,AMASS,FQG
42       REAL AMG,SIG0,SIGR,AM1,SIG,FAC,AMQ,AM,AM2,AMQ2,S,T,U,AMG2,E1,E2,
43      $AMSQ,AM1SQ,AM2SQ,SIGL
44       INTEGER IFL1,IFL2,IQ1,IQ2,JQ1,JQ2,I,IFLQ1,IFLQ2,IH,IQ,     
45      $JQ,JQIN1,JQIN2
46 C
47 C          IDENT codes from /SSTYPE/. (Fortran 77 allows - signs in
48 C          parameter statements but not data statements.)
49       INTEGER MSUPL,MSDNL,MSSTL,MSCHL,MSBT1,MSTP1,
50      $MSUPR,MSDNR,MSSTR,MSCHR,MSBT2,MSTP2,
51      $MDUP,MDDN,MDST,MDCH,MDBT,MDTP
52       PARAMETER (MSUPL=-ISUPL)
53       PARAMETER (MSDNL=-ISDNL)
54       PARAMETER (MSSTL=-ISSTL)
55       PARAMETER (MSCHL=-ISCHL)
56       PARAMETER (MSBT1=-ISBT1)
57       PARAMETER (MSTP1=-ISTP1)
58       PARAMETER (MSUPR=-ISUPR)
59       PARAMETER (MSDNR=-ISDNR)
60       PARAMETER (MSSTR=-ISSTR)
61       PARAMETER (MSCHR=-ISCHR)
62       PARAMETER (MSBT2=-ISBT2)
63       PARAMETER (MSTP2=-ISTP2)
64       PARAMETER (MDUP=-IDUP)
65       PARAMETER (MDDN=-IDDN)
66       PARAMETER (MDST=-IDST)
67       PARAMETER (MDCH=-IDCH)
68       PARAMETER (MDBT=-IDBT)
69       PARAMETER (MDTP=-IDTP)
70       DATA IDQSS/0,
71      $ISUPL,MSUPL,ISDNL,MSDNL,ISSTL,MSSTL,ISCHL,MSCHL,ISBT1,MSBT1,
72      $ISTP1,MSTP1,
73      $ISUPR,MSUPR,ISDNR,MSDNR,ISSTR,MSSTR,ISCHR,MSCHR,ISBT2,MSBT2,
74      $ISTP2,MSTP2/
75       DATA IDQ/IDGL,IDUP,MDUP,IDDN,MDDN,IDST,MDST,IDCH,MDCH,
76      $IDBT,MDBT,IDTP,MDTP/
77 C          JS2JT: Susy jettype -> normal jettype
78       DATA JS2JT/1,
79      $2,3,4,5,6,7,8,9,10,11,12,13,2,3,4,5,6,7,8,9,10,11,12,13/
80 C
81 C          Functions
82       QFCN(IQ,IH)=STRUC(X(IH),QSQ,IQ,IDIN(IH))/X(IH)
83       FQG(S,T,U)=((16./3.)*(1./(U*T)**2+1./(S*U)**2)
84      $+2.*(-2./3.)/(S*T*U**2))*(-U*S*T**2+2.*U*S*T*(AMG2-AMQ2)
85      $-2.*U*S*(AMG2-AMQ2)**2-2.*S**2*AMG2*(AMG2-AMQ2))
86 C
87 C          Initialize
88 C
89       SIGMA=0.
90       NSIGS=0
91       DO 100 I=1,MXSIGS
92         SIGS(I)=0.
93 100   CONTINUE
94 C
95 C          Gluino + gluino
96 C
97       IF(.NOT.(GOQ(1,1).AND.GOQ(1,2))) GO TO 300
98       AM=AMASS(ISGL)
99       CALL TWOKIN(0.,0.,AM,AM)
100       IF(X1.GE.1..OR.X2.GE.1.) GO TO 300
101       AM2=AM**2
102       S=SHAT
103       T=THAT
104       U=UHAT
105       E1=SQRT(P(1)**2+AM2)
106       E2=SQRT(P(2)**2+AM2)
107       FAC=PI*ALFQSQ**2/S**2
108       FAC=FAC*(S/SCM)*(P(1)*P(2)/(E1*E2))*UNITS
109 C
110 C          gl gl ---> glss glss
111       SIG=9./4.*(2.*(T-AM2)*(U-AM2)/S**2
112      $+((T-AM2)*(U-AM2)-2.*AM2*(T+AM2))/(T-AM2)**2
113      $+((U-AM2)*(T-AM2)-2.*AM2*(U+AM2))/(U-AM2)**2
114      $+((T-AM2)*(U-AM2)+AM2*(U-T))/(S*(T-AM2))
115      $+((U-AM2)*(T-AM2)+AM2*(T-U))/(S*(U-AM2))
116      $+AM2*(S-4*AM2)/((T-AM2)*(U-AM2)))
117       SIG=.5*FAC*SIG*QFCN(1,1)*QFCN(1,2)
118       CALL SIGFIL(SIG,1,1,1,1)
119 C
120 C          qk qb ---> glss glss
121       DO 220 IQ=1,5
122         IQ1=2*IQ
123         IQ2=IQ1+1
124 C          Left squark exchange
125         AMQ=AMASS(IDQSS(IQ1))
126         AMQ2=AMQ**2
127         SIGL=(8./3.)*((T-AM2)**2+(U-AM2)**2+2.*AM2*S)/(S**2)
128      $  +(32./27.)*(T-AM2)**2/(T-AMQ2)**2
129      $  +(32./27.)*(U-AM2)**2/(U-AMQ2)**2
130      $  +(8./3.)*((T-AM2)**2+AM2*S)/(S*(T-AMQ2))
131      $  +(8./3.)*((U-AM2)**2+AM2*S)/(S*(U-AMQ2))
132      $  +(8./27.)*AM2*S/((T-AMQ2)*(U-AMQ2))
133         SIGL=.5*FAC*SIGL
134 C          Right squark exchange
135         AMQ=AMASS(IDQSS(IQ1+12))
136         AMQ2=AMQ**2
137         SIGR=(8./3.)*((T-AM2)**2+(U-AM2)**2+2.*AM2*S)/(S**2)
138      $  +(32./27.)*(T-AM2)**2/(T-AMQ2)**2
139      $  +(32./27.)*(U-AM2)**2/(U-AMQ2)**2
140      $  +(8./3.)*((T-AM2)**2+AM2*S)/(S*(T-AMQ2))
141      $  +(8./3.)*((U-AM2)**2+AM2*S)/(S*(U-AMQ2))
142      $  +(8./27.)*AM2*S/((T-AMQ2)*(U-AMQ2))
143         SIGR=.5*FAC*SIGR
144         SIG0=.5*(SIGL+SIGR)
145 C          Total
146         SIG=SIG0*QFCN(IQ1,1)*QFCN(IQ2,2)
147         CALL SIGFIL(SIG,IQ1,IQ2,1,1)
148         SIG=SIG0*QFCN(IQ2,1)*QFCN(IQ1,2)
149         CALL SIGFIL(SIG,IQ2,IQ1,1,1)
150 220   CONTINUE
151 C
152 C          Scalar quark + scalar (anti)quark
153 C
154 300   CONTINUE
155       AMG=AMASS(ISGL)
156       AMG2=AMG**2
157 C          IQ1 and IQ2 loop over left and right (anti)squarks
158       DO 310 IQ1=2,25
159       DO 320 IQ2=2,25
160         IF(.NOT.(GOQ(IQ1,1).AND.GOQ(IQ2,2))) GO TO 320
161         JQ1=JS2JT(IQ1)
162         JQ2=JS2JT(IQ2)
163 C        IF(JQ1.GE.12.OR.JQ2.GE.12) GO TO 320
164         IFL1=IDQSS(IQ1)
165         IFL2=IDQSS(IQ2)
166         IFLQ1=IDQ(JQ1)
167         IFLQ2=IDQ(JQ2)
168 C          LLRR is true for left-left or right-right
169         IF((IQ1.LE.13.AND.IQ2.LE.13).OR.(IQ1.GT.13.AND.IQ2.GT.13))
170      $  THEN
171           LLRR=.TRUE.
172         ELSE
173           LLRR=.FALSE.
174         ENDIF
175 C          Kinematics
176         AM1=AMASS(IFL1)
177         AM2=AMASS(IFL2)
178         AM=AM1
179         CALL TWOKIN(0.,0.,AM1,AM2)
180         IF(X1.GE.1..OR.X2.GE.1.) GO TO 320
181         AMSQ=AM**2
182         AM1SQ=AM1**2
183         AM2SQ=AM2**2
184         S=SHAT
185         T=THAT
186         U=UHAT
187         E1=SQRT(P(1)**2+AM1SQ)
188         E2=SQRT(P(2)**2+AM2SQ)
189         FAC=PI*ALFQSQ**2/S**2
190         FAC=FAC*(S/SCM)*(P(1)*P(2)/(E1*E2))*UNITS
191 C
192 C          gl gl ---> qkss qbss
193 C
194         IF(IFL1.EQ.-IFL2) THEN
195           SIG=(7./48.+3.*(U-T)**2/(16.*S**2))
196      $    *(1.+2.*AMSQ*T/(T-AMSQ)**2+2.*AMSQ*U/(U-AMSQ)**2
197      $    +4.*AMSQ**2/((T-AMSQ)*(U-AMSQ)))
198           SIG=SIG*FAC*QFCN(1,1)*QFCN(1,2)
199           SIG=.5*SIG
200 C          Another .5 to sum over L and R
201           SIG=.5*SIG
202           CALL SIGFIL(SIG,1,1,IQ1,IQ2)
203         ENDIF
204 C
205 C          qk qb ---> qkss qbss
206 C
207         IF(IFLQ1.EQ.-IFLQ2.AND.LLRR) THEN
208 C          Identical squark-antisquark, LL or RR
209           SIG=(2./9.)*(1/(T-AMG2)**2+2/S**2-2/(3*S*(T-AMG2)))
210      $     *(-S*T-(T-AMSQ)**2)*FAC*QFCN(JQ1,1)*QFCN(JQ2,2)
211           SIG=.5*SIG
212           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
213           SIG=(2./9.)*(1/(U-AMG2)**2+2/S**2-2/(3*S*(U-AMG2)))
214      $     *(-S*U-(U-AMSQ)**2)*FAC*QFCN(JQ2,1)*QFCN(JQ1,2)
215           SIG=.5*SIG
216           CALL SIGFIL(SIG,JQ2,JQ1,IQ1,IQ2)
217         ELSEIF(IFLQ1.EQ.-IFLQ2.AND..NOT.LLRR) THEN
218 C          Identical squark-antisquark, LR or RL
219           SIG=(2./9.)*AMG2*S/(T-AMG2)**2*FAC*QFCN(JQ1,1)*QFCN(JQ2,2)
220         SIG=.5*SIG
221           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
222           SIG=(2./9.)*AMG2*S/(U-AMG2)**2*FAC*QFCN(JQ2,1)*QFCN(JQ1,2)
223           SIG=.5*SIG
224           CALL SIGFIL(SIG,JQ2,JQ1,IQ1,IQ2)
225         ELSEIF(IFLQ1.EQ.IFLQ2.AND.LLRR) THEN
226 C          Identical squark-squark, LL or RR
227           SIG=(1./9.)*AMG2*S*(1/(T-AMG2)**2+1/(U-AMG2)**2
228      $    -(2./3.)/((T-AMG2)*(U-AMG2)))*FAC*QFCN(JQ1,1)*QFCN(JQ2,2)
229           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
230         ELSEIF(IFLQ1.EQ.IFLQ2.AND..NOT.LLRR) THEN
231 C          Identical squark-squark, LR or RL
232           SIG=(2./9.)*(1/(T-AMG2)**2*(-S*T-(T-AM1SQ)*(T-AM2SQ))
233      $    +1/(U-AMG2)**2*(-S*U-(U-AM1SQ)*(U-AM2SQ)))
234      $    *FAC*QFCN(JQ1,1)*QFCN(JQ2,2)
235           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
236         ELSEIF(IFL1*IFL2.LT.0.AND.LLRR) THEN
237 C          Nonidentical squark-antisquark, LL or RR
238           SIG=(2./9.)*(-S*T-(T-AM1SQ)*(T-AM2SQ))/(T-AMG2)**2*FAC
239      $    *QFCN(JQ1,1)*QFCN(JQ2,2)
240           SIG=.5*SIG
241           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
242           SIG=(2./9.)*(-S*U-(U-AM1SQ)*(U-AM2SQ))/(U-AMG2)**2*FAC
243      $    *QFCN(JQ2,1)*QFCN(JQ1,2)
244           SIG=.5*SIG
245           CALL SIGFIL(SIG,JQ2,JQ1,IQ1,IQ2)
246         ELSEIF(IFL1*IFL2.LT.0.AND..NOT.LLRR) THEN
247 C          Nonidentical squark-antisquark, LR or RL
248           SIG=(2./9.)*AMG2*S/(T-AMG2)**2*FAC*QFCN(JQ1,1)*QFCN(JQ2,2)
249           SIG=.5*SIG
250           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
251           SIG=(2./9.)*AMG2*S/(U-AMG2)**2*FAC*QFCN(JQ2,1)*QFCN(JQ1,2)
252           SIG=.5*SIG
253           CALL SIGFIL(SIG,JQ2,JQ1,IQ1,IQ2)
254         ELSEIF(IFL1*IFL2.GT.0.AND.LLRR) THEN
255 C          Nonidentical squark-squark, LL or RR
256           SIG=(2./9.)*AMG2*S/(T-AMG2)**2*FAC*QFCN(JQ1,1)*QFCN(JQ2,2)
257           SIG=.5*SIG
258           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
259           SIG=(2./9.)*AMG2*S/(U-AMG2)**2*FAC*QFCN(JQ2,1)*QFCN(JQ1,2)
260           SIG=.5*SIG
261           CALL SIGFIL(SIG,JQ2,JQ1,IQ1,IQ2)
262         ELSEIF(IFL1*IFL2.GT.0.AND..NOT.LLRR) THEN
263 C          Nonidentical squark-squark, LR or RL
264           SIG=(2./9.)*(-S*T-(T-AM1SQ)*(T-AM2SQ))/(T-AMG2)**2*FAC
265      $    *QFCN(JQ1,1)*QFCN(JQ2,2)
266           SIG=.5*SIG
267           CALL SIGFIL(SIG,JQ1,JQ2,IQ1,IQ2)
268           SIG=(2./9.)*(-S*U-(U-AM1SQ)*(U-AM2SQ))/(U-AMG2)**2*FAC
269      $    *QFCN(JQ2,1)*QFCN(JQ1,2)
270           SIG=.5*SIG
271           CALL SIGFIL(SIG,JQ2,JQ1,IQ1,IQ2)
272         ELSE
273           STOP99
274         ENDIF
275 C
276 C          q1 + q1bar --> q2ss + q2ssbar
277 C
278         IF(IFLQ1.EQ.-IFLQ2.AND.LLRR) THEN
279           DO 330 JQIN1=2,10,2
280             IF(JQIN1.EQ.JQ1.OR.JQIN1.EQ.JQ2) GO TO 330
281             JQIN2=MATCH(JQIN1,4)
282             SIG=(4./9.)*(-S*T-(T-AM1SQ)**2)/S**2*FAC
283      $      *QFCN(JQIN1,1)*QFCN(JQIN2,2)
284             SIG=.5*SIG
285             CALL SIGFIL(SIG,JQIN1,JQIN2,IQ1,IQ2)
286             SIG=(4./9.)*(-S*U-(U-AM1SQ)**2)/S**2*FAC
287      $      *QFCN(JQIN2,1)*QFCN(JQIN1,2)
288             SIG=.5*SIG
289             CALL SIGFIL(SIG,JQIN2,JQIN1,IQ1,IQ2)
290 330       CONTINUE
291         ENDIF
292 320   CONTINUE
293 310   CONTINUE
294 C
295 C          Scalar quark + gluino
296 C
297       AMG=AMASS(ISGL)
298       AMG2=AMG**2
299       DO 400 IQ=2,25
300         AMQ=AMASS(IDQSS(IQ))
301         AMQ2=AMQ**2
302         JQ=JS2JT(IQ)        
303 C
304 C          Jet 1 = scalar quark
305         IF(.NOT.(GOQ(JQ,1).AND.GOQ(1,2))) GO TO 410
306         CALL TWOKIN(0.,0.,AMQ,AMG)
307         IF(X1.GE.1..OR.X2.GE.1.) GO TO 410
308         S=SHAT
309         E1=SQRT(P(1)**2+AMQ2)
310         E2=SQRT(P(2)**2+AMG2)
311         FAC=PI*ALFQSQ**2/S**2
312         FAC=FAC*S/SCM*P(1)*P(2)/(E1*E2)*UNITS
313 C
314         T=THAT-AMQ2
315         U=UHAT-AMG2
316         SIG=FQG(S,T,U)*FAC/12.*QFCN(JQ,1)*QFCN(1,2)
317         SIG=.5*SIG
318         SIG=.5*SIG
319         CALL SIGFIL(SIG,JQ,1,IQ,1)
320 C
321         T=UHAT-AMQ2
322         U=THAT-AMG2
323         SIG=FQG(S,T,U)*FAC/12.*QFCN(1,1)*QFCN(JQ,2)
324         SIG=.5*SIG
325         SIG=.5*SIG
326         CALL SIGFIL(SIG,1,JQ,IQ,1)
327 C
328 C          Jet 2 = scalar quark
329 410     IF(.NOT.(GOQ(1,1).AND.GOQ(JQ,2))) GO TO 400
330         CALL TWOKIN(0.,0.,AMG,AMQ)
331         IF(X1.GE.1..OR.X2.GE.1.) GO TO 400
332         S=SHAT
333         E1=SQRT(P(1)**2+AMG2)
334         E2=SQRT(P(2)**2+AMQ2)
335         FAC=PI*ALFQSQ**2/S**2
336         FAC=FAC*S/SCM*P(1)*P(2)/(E1*E2)*UNITS
337
338         T=UHAT-AMQ2
339         U=THAT-AMG2
340         SIG=FQG(S,T,U)*FAC/12.*QFCN(1,1)*QFCN(JQ,2)
341         SIG=.5*SIG
342         SIG=.5*SIG
343         CALL SIGFIL(SIG,1,JQ,1,IQ)
344 C
345         T=THAT-AMQ2
346         U=UHAT-AMG2
347         SIG=FQG(S,T,U)*FAC/12.*QFCN(JQ,1)*QFCN(1,2)
348         SIG=.5*SIG
349         SIG=.5*SIG
350         CALL SIGFIL(SIG,JQ,1,1,IQ)
351 400   CONTINUE
352 C
353 C          Calculate gaugino AND slepton cross sections only for MSSM
354 C
355       IF(GOMSSM) CALL SIGSSZ
356       IF(GOMSSM) CALL SIGSSL
357 C
358       RETURN
359       END