]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/zjj0.F
changes for proper protection against failed retrieval of CDB Reco object (moved...
[u/mrichter/AliRoot.git] / ISAJET / code / zjj0.F
1 #include "isajet/pilot.h"
2       SUBROUTINE ZJJ0
3 C-----------------------------------------------------------------------
4 C
5 C          Initialize MadGraph/Helas to generate Z + 2 jets.
6 C          Cross section routines from MadGraph:
7 C          ZJJ1:   q1 q1b -> Z q2 q2b, q1 != q2
8 C          ZJJ2:   g  g   -> Z q2 q2b
9 C          ZJJ3:   q1 q1b -> Z g  g
10 C          ZJJ4:   q1 q1b -> Z q1 q1b
11 C          ZJJ5:   q1 q2  -> Z q1 q2
12 C          ZJJ6:   q1 q1  -> Z q1 q1
13 C          ZJJ7:   g  q   -> Z g  q
14 C
15 C          Note: The Z is always jet1, but the other two jets are 
16 C          symmetrized so a symmetry factor of 1/2 is needed for every
17 C          subprocess. This is included by MadGraph for identical
18 C          particles!
19 C
20 C-----------------------------------------------------------------------
21 #if defined(CERNLIB_IMPNONE)
22       IMPLICIT NONE
23 #endif
24 #include "isajet/const.inc"
25 #include "isajet/q1q2.inc"
26 #include "isajet/itapes.inc"
27 #include "isajet/jetlim.inc"
28 #include "isajet/primar.inc"
29 #include "isajet/sstype.inc"
30 #include "isajet/mgkin.inc"
31 #include "isajet/mgcoms.inc"
32 #include "isajet/mgsigs.inc"
33 C
34       INTEGER IMAD(6)
35       INTEGER IQ1,IQ2,IQ4,IQ5,IFL1,IFL2,IM1,IM2,I,NEV,KK,II,J
36       REAL*8 P1(0:3),P2(0:3),P3(0:3),P4(0:3),P5(0:3)
37       EQUIVALENCE (P1(0),PJETS8(0,1))
38       EQUIVALENCE (P2(0),PJETS8(0,2))
39       EQUIVALENCE (P3(0),PJETS8(0,3))
40       EQUIVALENCE (P4(0),PJETS8(0,4))
41       EQUIVALENCE (P5(0),PJETS8(0,5))
42       REAL*8 WT,TERM,FJAC,SZJJ1,SZJJ2,SZJJ3,SZJJ4,SUM
43       REAL*8 SZJJ5,SZJJ6,SZJJ7
44       REAL X1,X2,XX,QQ,TMP(MXSIG8),QFCN,STRUC,ALQCD
45       INTEGER IQ,IH,NPT,NNN,ISUM
46 C
47 C          Map Jettype/2 to MadGraph
48       DATA IMAD/3,4,8,7,12,11/
49 C
50 C          Parton distributions
51       QFCN(XX,IQ,IH)=STRUC(XX,QQ,IQ,IDIN(IH))/XX
52 C
53 C          Begin
54 C
55       NPT=MAX(NSIGMA,100)
56       WRITE(ITLIS,1000) NTRIES,NPT
57 1000  FORMAT(//' INITIALIZING CROSS SECTIONS WITH',I6,
58      $' TRIES FOR',I6,' POINTS EACH:')
59       FJAC=UNITS/SCM
60       WTTOT8=0
61       NSIG8=0
62 C
63 C          Cases 1,4: q1 q1b -> z q2 q2b
64 C
65       AMJET8(3)=ZMASS
66       DO 100 IFL1=1,5
67         IM1=IMAD(IFL1)
68         IQ1=2*IFL1
69         IQ2=IQ1+1
70         AMJET8(1)=FMASS(IM1)
71         AMJET8(2)=FMASS(IM1)
72         DO 110 IFL2=1,6
73           IM2=IMAD(IFL2)
74           IQ4=2*IFL2
75           IQ5=IQ4+1
76           AMJET8(4)=FMASS(IM2)
77           AMJET8(5)=FMASS(IM2)
78 C
79 C          Subcase 1a: 3=z, 4=q, 5=qb
80 C
81           IF(GOQ(IQ4,2).AND.GOQ(IQ5,3)) THEN
82             IF(NSIG8+2.GT.MXSIG8) GO TO 999
83             DO 120 I=1,2
84               WTSUM8(NSIG8+I)=0
85               WTMAX8(NSIG8+I)=0
86               NWT8(NSIG8+I)=0
87               IDENT8(1,NSIG8+I)=(3-2*I)*IFL1
88               IDENT8(2,NSIG8+I)=-(3-2*I)*IFL1
89               IDENT8(3,NSIG8+I)=IDZ
90               IDENT8(4,NSIG8+I)=IFL2
91               IDENT8(5,NSIG8+I)=-IFL2
92               IF(IFL1.EQ.IFL2) THEN
93                 IFUNC8(NSIG8+I)=4
94               ELSE
95                 IFUNC8(NSIG8+I)=1
96               ENDIF
97               NNN=0
98               DO 125 NEV=1,NTRIES
99                 IF(NNN.GT.NPT) GO TO 120
100                 CALL MULJET(WT)
101                 NWT8(NSIG8+I)=NWT8(NSIG8+I)+1
102                 NWTTOT=NWTTOT+1
103                 IF(WT.GT.0) THEN
104                   NNN=NNN+1
105                   X1=(P1(0)+P1(3))/ECM
106                   X2=(P2(0)-P2(3))/ECM
107                   QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
108      $            P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
109                   IF(I.EQ.1) THEN
110                     IF(IFL2.EQ.IFL1) THEN
111                       TERM=SZJJ4(P1,P2,P3,P4,P5,IM1)
112                     ELSE
113                       TERM=SZJJ1(P1,P2,P3,P4,P5,IM1,IM2)
114                     ENDIF
115                     TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
116                     TERM=TERM*WT*FJAC*QFCN(X1,IQ1,1)*QFCN(X2,IQ2,2)
117                   ELSE
118                     IF(IFL2.EQ.IFL1) THEN
119                       TERM=SZJJ4(P2,P1,P3,P4,P5,IM1)
120                     ELSE
121                       TERM=SZJJ1(P2,P1,P3,P4,P5,IM1,IM2)
122                     ENDIF
123                     TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
124                     TERM=TERM*WT*FJAC*QFCN(X1,IQ2,1)*QFCN(X2,IQ1,2)
125                   ENDIF
126                   TERM=0.5*TERM
127                   WTTOT8=WTTOT8+TERM
128                   WTSUM8(NSIG8+I)=WTSUM8(NSIG8+I)+TERM
129                   WTMAX8(NSIG8+I)=MAX(WTMAX8(NSIG8+I),TERM)
130                 ENDIF
131 125           CONTINUE
132               WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
133      $        (IDENT8(KK,NSIG8+I),KK=1,5)
134 120         CONTINUE
135             NSIG8=NSIG8+2
136           ENDIF
137 C
138 C          Subcase 1b: 3=z, 4=qb, 5=q
139 C
140           IF(GOQ(IQ5,2).AND.GOQ(IQ4,3)) THEN
141             IF(NSIG8+2.GT.MXSIG8) GO TO 999
142             DO 130 I=1,2
143               WTSUM8(NSIG8+I)=0
144               WTMAX8(NSIG8+I)=0
145               NWT8(NSIG8+I)=0
146               IDENT8(1,NSIG8+I)=(3-2*I)*IFL1
147               IDENT8(2,NSIG8+I)=-(3-2*I)*IFL1
148               IDENT8(3,NSIG8+I)=IDZ
149               IDENT8(4,NSIG8+I)=-IFL2
150               IDENT8(5,NSIG8+I)=IFL2
151               IF(IFL1.EQ.IFL2) THEN
152                 IFUNC8(NSIG8+I)=4
153               ELSE
154                 IFUNC8(NSIG8+I)=1
155               ENDIF
156               NNN=0
157               DO 135 NEV=1,NTRIES
158                 IF(NNN.GT.NPT) GO TO 130
159                 CALL MULJET(WT)
160                 NWT8(NSIG8+I)=NWT8(NSIG8+I)+1
161                 NWTTOT=NWTTOT+1
162                 IF(WT.GT.0) THEN
163                   NNN=NNN+1
164                   X1=(P1(0)+P1(3))/ECM
165                   X2=(P2(0)-P2(3))/ECM
166                   QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
167      $            P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
168                   IF(I.EQ.1) THEN
169                     IF(IFL1.EQ.IFL2) THEN
170                       TERM=SZJJ4(P1,P2,P3,P5,P4,IM1)
171                     ELSE
172                       TERM=SZJJ1(P1,P2,P3,P5,P4,IM1,IM2)
173                     ENDIF
174                     TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
175                     TERM=TERM*WT*FJAC*QFCN(X1,IQ1,1)*QFCN(X2,IQ2,2)
176                   ELSE
177                     IF(IFL1.EQ.IFL2) THEN
178                       TERM=SZJJ4(P2,P1,P3,P5,P4,IM1)
179                     ELSE
180                       TERM=SZJJ1(P2,P1,P3,P5,P4,IM1,IM2)
181                     ENDIF
182                     TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
183                     TERM=TERM*WT*FJAC*QFCN(X1,IQ2,1)*QFCN(X2,IQ1,2)
184                   ENDIF
185                   TERM=0.5*TERM
186                   WTTOT8=WTTOT8+TERM
187                   WTSUM8(NSIG8+I)=WTSUM8(NSIG8+I)+TERM
188                   WTMAX8(NSIG8+I)=MAX(WTMAX8(NSIG8+I),TERM)
189                 ENDIF
190 135           CONTINUE
191               WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
192      $        (IDENT8(KK,NSIG8+I),KK=1,5)
193 130         CONTINUE
194             NSIG8=NSIG8+2
195           ENDIF
196 110     CONTINUE
197 100   CONTINUE
198 C
199 C          Case 2: g g -> z q2 q2b
200 C
201       AMJET8(3)=ZMASS
202       IFL1=9
203       AMJET8(1)=0
204       AMJET8(2)=0
205       DO 210 IFL2=1,6
206         IM2=IMAD(IFL2)
207         IQ4=2*IFL2
208         IQ5=IQ4+1
209         AMJET8(4)=FMASS(IM2)
210         AMJET8(5)=FMASS(IM2)
211 C
212 C          Subcase 2a: 3=z, 4=q, 5=qb
213 C
214         IF(GOQ(IQ4,2).AND.GOQ(IQ5,3)) THEN
215           IF(NSIG8+1.GT.MXSIG8) GO TO 999
216           WTSUM8(NSIG8+1)=0
217           WTMAX8(NSIG8+1)=0
218           NWT8(NSIG8+1)=0
219           IDENT8(1,NSIG8+1)=IDGL
220           IDENT8(2,NSIG8+1)=IDGL
221           IDENT8(3,NSIG8+1)=IDZ
222           IDENT8(4,NSIG8+1)=IFL2
223           IDENT8(5,NSIG8+1)=-IFL2
224           IFUNC8(NSIG8+1)=2
225           NNN=0
226           DO 225 NEV=1,NTRIES
227             IF(NNN.GT.NPT) GO TO 220
228             CALL MULJET(WT)
229             NWT8(NSIG8+1)=NWT8(NSIG8+1)+1
230             NWTTOT=NWTTOT+1
231             IF(WT.GT.0) THEN
232               NNN=NNN+1
233               X1=(P1(0)+P1(3))/ECM
234               X2=(P2(0)-P2(3))/ECM
235               QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
236      $        P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
237               TERM=SZJJ2(P1,P2,P3,P4,P5,IM2)
238               TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
239               TERM=TERM*WT*FJAC*QFCN(X1,1,1)*QFCN(X2,1,2)
240               TERM=0.5*TERM
241               WTTOT8=WTTOT8+TERM
242               WTSUM8(NSIG8+1)=WTSUM8(NSIG8+1)+TERM
243               WTMAX8(NSIG8+1)=MAX(WTMAX8(NSIG8+1),TERM)
244             ENDIF
245 225       CONTINUE
246           WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
247      $    (IDENT8(KK,NSIG8+1),KK=1,5)
248 220       CONTINUE
249           NSIG8=NSIG8+1
250         ENDIF
251 C
252 C          Subcase 2b: 3=z, 4=qb, 5=q
253 C
254         IF(GOQ(IQ5,2).AND.GOQ(IQ4,3)) THEN
255           IF(NSIG8+1.GT.MXSIG8) GO TO 999
256           WTSUM8(NSIG8+1)=0
257           WTMAX8(NSIG8+1)=0
258           NWT8(NSIG8+1)=0
259           IDENT8(1,NSIG8+1)=IDGL
260           IDENT8(2,NSIG8+1)=IDGL
261           IDENT8(3,NSIG8+1)=IDZ
262           IDENT8(4,NSIG8+1)=-IFL2
263           IDENT8(5,NSIG8+1)=IFL2
264           IFUNC8(NSIG8+1)=2
265           NNN=0
266           DO 235 NEV=1,NTRIES
267             IF(NNN.GT.NPT) GO TO 230
268             CALL MULJET(WT)
269             NWT8(NSIG8+1)=NWT8(NSIG8+1)+1
270             NWTTOT=NWTTOT+1
271             IF(WT.GT.0) THEN
272               NNN=NNN+1
273               X1=(P1(0)+P1(3))/ECM
274               X2=(P2(0)-P2(3))/ECM
275               QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
276      $        P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
277               TERM=SZJJ2(P1,P2,P3,P5,P4,IM2)
278               TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
279               TERM=TERM*WT*FJAC*QFCN(X1,1,1)*QFCN(X2,1,2)
280               TERM=0.5*TERM
281               WTTOT8=WTTOT8+TERM
282               WTSUM8(NSIG8+1)=WTSUM8(NSIG8+1)+TERM
283               WTMAX8(NSIG8+1)=MAX(WTMAX8(NSIG8+1),TERM)
284             ENDIF
285 235       CONTINUE
286           WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
287      $    (IDENT8(KK,NSIG8+1),KK=1,5)
288 230       CONTINUE
289           NSIG8=NSIG8+1
290         ENDIF
291 210   CONTINUE
292 C
293 C          Case 3: q1 q1b -> z g g
294 C
295       AMJET8(3)=ZMASS
296       AMJET8(4)=0
297       AMJET8(5)=0
298       DO 310 IFL1=1,5
299         IM1=IMAD(IFL1)
300         IQ1=2*IFL1
301         IQ2=IQ1+1
302         AMJET8(1)=FMASS(IM1)
303         AMJET8(2)=FMASS(IM1)
304 C
305         IF(GOQ(1,2).AND.GOQ(1,3)) THEN
306           IF(NSIG8+2.GT.MXSIG8) GO TO 999
307           DO 320 I=1,2
308             WTSUM8(NSIG8+I)=0
309             WTMAX8(NSIG8+I)=0
310             NWT8(NSIG8+I)=0
311             IDENT8(1,NSIG8+I)=(3-2*I)*IFL1
312             IDENT8(2,NSIG8+I)=-(3-2*I)*IFL1
313             IDENT8(3,NSIG8+I)=IDZ
314             IDENT8(4,NSIG8+I)=IDGL
315             IDENT8(5,NSIG8+I)=IDGL
316             IFUNC8(NSIG8+I)=3
317             NNN=0
318             DO 325 NEV=1,NTRIES
319               IF(NNN.GT.NPT) GO TO 320
320               CALL MULJET(WT)
321               NWT8(NSIG8+I)=NWT8(NSIG8+I)+1
322               NWTTOT=NWTTOT+1
323               IF(WT.GT.0) THEN
324                 NNN=NNN+1
325                 X1=(P1(0)+P1(3))/ECM
326                 X2=(P2(0)-P2(3))/ECM
327                 QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
328      $          P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
329                 IF(I.EQ.1) THEN
330                   TERM=SZJJ3(P1,P2,P3,P4,P5,IM1)
331                   TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
332                   TERM=TERM*WT*FJAC*QFCN(X1,IQ1,1)*QFCN(X2,IQ2,2)
333                 ELSE
334                   TERM=SZJJ3(P2,P1,P3,P4,P5,IM1)
335                   TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
336                   TERM=TERM*WT*FJAC*QFCN(X1,IQ2,1)*QFCN(X2,IQ1,2)
337                 ENDIF
338                 WTTOT8=WTTOT8+TERM
339                 WTSUM8(NSIG8+I)=WTSUM8(NSIG8+I)+TERM
340                 WTMAX8(NSIG8+I)=MAX(WTMAX8(NSIG8+I),TERM)
341               ENDIF
342 325         CONTINUE
343             WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
344      $      (IDENT8(KK,NSIG8+I),KK=1,5)
345 320       CONTINUE
346           NSIG8=NSIG8+2
347         ENDIF
348 310   CONTINUE
349 C
350 C          Cases 5,6: q1 q2 -> Z q1 q2, q1 != q2
351 C          Since we integrate over the Z decay, we can use the same
352 C          cross sections for quarks (I=1) and antiquarks (I=2).
353 C
354       DO 400 IFL1=1,5
355         IM1=IMAD(IFL1)
356         DO 410 IFL2=1,5
357           IM2=IMAD(IFL2)
358           AMJET8(1)=FMASS(IM1)
359           AMJET8(2)=FMASS(IM2)
360           AMJET8(3)=ZMASS
361           AMJET8(4)=FMASS(IM1)
362           AMJET8(5)=FMASS(IM2)
363           DO 420 I=1,2
364             IQ1=2*IFL1+I-1
365             IQ2=2*IFL2+I-1
366             IF(GOQ(IQ1,1).AND.GOQ(IQ2,2)) THEN
367               WTSUM8(NSIG8+1)=0
368               WTMAX8(NSIG8+1)=0
369               NWT8(NSIG8+1)=0
370               IDENT8(1,NSIG8+1)=(3-2*I)*IFL1
371               IDENT8(2,NSIG8+1)=(3-2*I)*IFL2
372               IDENT8(3,NSIG8+1)=IDZ
373               IDENT8(4,NSIG8+1)=(3-2*I)*IFL1
374               IDENT8(5,NSIG8+1)=(3-2*I)*IFL2
375               IF(IFL1.EQ.IFL2) THEN
376                 IFUNC8(NSIG8+1)=6
377               ELSE
378                 IFUNC8(NSIG8+1)=5
379               ENDIF
380               NNN=0
381               DO 425 NEV=1,NTRIES
382                 IF(NNN.GT.NPT) THEN
383                   NSIG8=NSIG8+1
384                   GO TO 420
385                 ENDIF
386                 CALL MULJET(WT)
387                 NWT8(NSIG8+1)=NWT8(NSIG8+1)+1
388                 NWTTOT=NWTTOT+1
389                 IF(WT.GT.0) THEN
390                   NNN=NNN+1
391                   X1=(P1(0)+P1(3))/ECM
392                   X2=(P2(0)-P2(3))/ECM
393                   QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
394      $            P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
395                   IF(IFL1.EQ.IFL2) THEN
396                     TERM=SZJJ6(P1,P2,P3,P4,P5,IM1)
397                     TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
398                     TERM=TERM*WT*FJAC*QFCN(X1,IQ1,1)*QFCN(X2,IQ2,2)
399                   ELSE
400                     TERM=SZJJ5(P2,P1,P3,P4,P5,IM1,IM2)
401                     TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
402                     TERM=TERM*WT*FJAC*QFCN(X1,IQ2,1)*QFCN(X2,IQ1,2)
403                     TERM=0.5*TERM
404                   ENDIF
405                   WTTOT8=WTTOT8+TERM
406                   WTSUM8(NSIG8+1)=WTSUM8(NSIG8+1)+TERM
407                   WTMAX8(NSIG8+1)=MAX(WTMAX8(NSIG8+1),TERM)
408                 ENDIF
409 425           CONTINUE
410               WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
411      $        (IDENT8(KK,NSIG8+1),KK=1,5)
412               NSIG8=NSIG8+1
413             ENDIF
414 420       CONTINUE
415 410     CONTINUE
416 400   CONTINUE
417 C
418 C          Case 7: g q -> z g q
419 C          Since we integrate over the Z decay, we can use the same
420 C          cross sections for quarks (I=1) and antiquarks (I=2).
421 C
422       DO 500 IFL2=1,5
423         IM2=IMAD(IFL2)
424         DO 510 I=1,2
425           IQ5=2*IFL2+I-1
426 C
427 C          Subcase 7a: 3=z, 4=g, 5=q (J=1,2 for initial states)
428 C
429           IF(GOQ(1,2).AND.GOQ(IQ5,3)) THEN
430             IF(NSIG8+2.GT.MXSIG8) GO TO 999
431             AMJET8(3)=ZMASS
432             AMJET8(4)=0
433             AMJET8(5)=FMASS(IM2)
434             DO 520 J=1,2
435               WTSUM8(NSIG8+J)=0
436               WTMAX8(NSIG8+J)=0
437               NWT8(NSIG8+J)=0
438               IF(J.EQ.1) THEN
439                 IDENT8(1,NSIG8+J)=IDGL
440                 IDENT8(2,NSIG8+J)=(3-2*I)*IFL2
441                 IQ1=1
442                 IQ2=IQ5
443                 AMJET8(1)=0
444                 AMJET8(2)=FMASS(IM2)
445               ELSE
446                 IDENT8(2,NSIG8+J)=IDGL
447                 IDENT8(1,NSIG8+J)=(3-2*I)*IFL2
448                 IQ1=IQ5
449                 IQ2=1
450                 AMJET8(2)=0
451                 AMJET8(1)=FMASS(IM2)
452               ENDIF
453               IDENT8(3,NSIG8+J)=IDZ
454               IDENT8(4,NSIG8+J)=IDGL
455               IDENT8(5,NSIG8+J)=(3-2*I)*IFL2
456               IFUNC8(NSIG8+J)=7
457               NNN=0
458               DO 525 NEV=1,NTRIES
459                 IF(NNN.GT.NPT) GO TO 520
460                 CALL MULJET(WT)
461                 NWT8(NSIG8+J)=NWT8(NSIG8+J)+1
462                 NWTTOT=NWTTOT+1
463                 IF(WT.GT.0) THEN
464                   NNN=NNN+1
465                   X1=(P1(0)+P1(3))/ECM
466                   X2=(P2(0)-P2(3))/ECM
467                   QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
468      $            P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
469                   IF(J.EQ.1) THEN
470                     TERM=SZJJ7(P1,P2,P3,P4,P5,IM2)
471                   ELSE
472                     TERM=SZJJ7(P2,P1,P3,P4,P5,IM2)
473                   ENDIF
474                   TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
475                   TERM=TERM*WT*FJAC*QFCN(X1,IQ1,1)*QFCN(X2,IQ2,2)
476                   TERM=0.5*TERM
477                   WTTOT8=WTTOT8+TERM
478                   WTSUM8(NSIG8+J)=WTSUM8(NSIG8+J)+TERM
479                   WTMAX8(NSIG8+J)=MAX(WTMAX8(NSIG8+J),TERM)
480                 ENDIF
481 525           CONTINUE
482               WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
483      $        (IDENT8(KK,NSIG8+1),KK=1,5)
484 520         CONTINUE
485             NSIG8=NSIG8+2
486           ENDIF
487 C
488 C          Subcase 7b: 3=z, 4=q, 5=g
489 C
490           IF(GOQ(IQ5,2).AND.GOQ(1,3)) THEN
491             IF(NSIG8+2.GT.MXSIG8) GO TO 999
492             AMJET8(3)=ZMASS
493             AMJET8(4)=FMASS(IM2)
494             AMJET8(5)=0
495             DO 530 J=1,2
496               WTSUM8(NSIG8+J)=0
497               WTMAX8(NSIG8+J)=0
498               NWT8(NSIG8+J)=0
499               IF(J.EQ.1) THEN
500                 IDENT8(1,NSIG8+J)=IDGL
501                 IDENT8(2,NSIG8+J)=(3-2*I)*IFL2
502                 IQ1=1
503                 IQ2=IQ5
504                 AMJET8(1)=0
505                 AMJET8(2)=FMASS(IM2)
506               ELSE
507                 IDENT8(2,NSIG8+J)=IDGL
508                 IDENT8(1,NSIG8+J)=(3-2*I)*IFL2
509                 IQ1=IQ5
510                 IQ2=1
511                 AMJET8(2)=0
512                 AMJET8(1)=FMASS(IM2)
513               ENDIF
514               IDENT8(3,NSIG8+J)=IDZ
515               IDENT8(4,NSIG8+J)=(3-2*I)*IFL2
516               IDENT8(5,NSIG8+J)=IDGL
517               IFUNC8(NSIG8+J)=7
518               NNN=0
519               DO 535 NEV=1,NTRIES
520                 IF(NNN.GT.NPT) GO TO 530
521                 CALL MULJET(WT)
522                 NWT8(NSIG8+J)=NWT8(NSIG8+J)+1
523                 NWTTOT=NWTTOT+1
524                 IF(WT.GT.0) THEN
525                   NNN=NNN+1
526                   X1=(P1(0)+P1(3))/ECM
527                   X2=(P2(0)-P2(3))/ECM
528                   QQ=P3(1)**2+P3(2)**2+P4(1)**2+P4(2)**2+P5(1)**2+
529      $            P5(2)**2+AMJET8(3)**2+AMJET8(4)**2+AMJET8(5)**2
530                   IF(J.EQ.1) THEN
531                     TERM=SZJJ2(P1,P2,P3,P5,P4,IM2)
532                   ELSE
533                     TERM=SZJJ2(P2,P1,P3,P5,P4,IM2)
534                   ENDIF
535                   TERM=TERM*(4*PI*ALQCD(REAL(QQ)))**2
536                   TERM=TERM*WT*FJAC*QFCN(X1,1,1)*QFCN(X2,1,2)
537                   TERM=0.5*TERM
538                   WTTOT8=WTTOT8+TERM
539                   WTSUM8(NSIG8+J)=WTSUM8(NSIG8+J)+TERM
540                   WTMAX8(NSIG8+J)=MAX(WTMAX8(NSIG8+J),TERM)
541                 ENDIF
542 535           CONTINUE
543               WRITE(ITLIS,*) ' ZJJ0 WARNING: INSUFFICIENT TRIES FOR ',
544      $        (IDENT8(KK,NSIG8+1),KK=1,5)
545 530         CONTINUE
546             NSIG8=NSIG8+2
547           ENDIF
548 510     CONTINUE
549 500   CONTINUE
550 C
551 C          Sort using initial cross sections
552 C
553       SUM=0
554       ISUM=0
555       DO 991 I=1,NSIG8
556         ISORT8(I)=NSIG8+1-I
557         TMP(I)=WTSUM8(I)/NWT8(I)
558         SUM=SUM+WTSUM8(I)
559         ISUM=ISUM+NWT8(I)
560 991   CONTINUE
561       IF(NSIG8.GT.1) CALL SORTTF(TMP,ISORT8,NSIG8)
562       WRITE(ITLIS,*)
563       WRITE(ITLIS,9001)
564 9001  FORMAT(6X,'INITIAL MULTIJET CROSS SECTIONS'/
565      $6X,'PROCESS',18X,'SIGMA',10X,'MAX(SIGMA)')
566       DO 992 I=1,NSIG8
567         II=ISORT8(I)
568         WRITE(ITLIS,9002) (IDENT8(KK,II),KK=1,5),TMP(II),WTMAX8(II)
569 9002    FORMAT(2X,5I5,2E15.5)
570 992   CONTINUE
571       RETURN
572 C
573 C          Errors
574 C
575 999   WRITE(ITLIS,*) 'ERROR IN ZJJ0, NSIG8 = ',NSIG8
576       STOP 99
577       END