2 C*********************************************************************
6 C...Finds outgoing flavours and event type; sets up the kinematics
7 C...and colour flow of the hard scattering.
8 COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5)
9 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
10 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
11 COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
12 COMMON/PYSUBS/MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200)
13 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
14 COMMON/PYINT1/MINT(400),VINT(400)
15 COMMON/PYINT2/ISET(200),KFPR(200,2),COEF(200,20),ICOL(40,4,2)
16 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
17 COMMON/PYINT4/WIDP(21:40,0:40),WIDE(21:40,0:40),WIDS(21:40,3)
18 COMMON/PYINT5/NGEN(0:200,3),XSEC(0:200,3)
19 COMMON/PYUPPR/NUP,KUP(20,7),PUP(20,5),NFUP,IFUP(10,2),Q2UP(0:10)
20 SAVE /LUJETS/,/LUDAT1/,/LUDAT2/,/LUDAT3/
21 SAVE /PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,
23 DIMENSION WDTP(0:40),WDTE(0:40,0:5),PMQ(2),Z(2),CTHE(2),PHI(2),
24 &KUPPO(20),VINTSV(41:66)
31 C...Restore information for low-pT processes.
32 IF(ISUB.EQ.95.AND.MINT(57).GE.1) THEN
37 C...Convert H' or A process into equivalent H one.
40 IF((ISUB.GE.151.AND.ISUB.LE.160).OR.(ISUB.GE.171.AND.
43 IF(MOD(ISUB-1,10).GE.5) IHIGG=3
45 IF(ISUB.EQ.151.OR.ISUB.EQ.156) ISUB=3
46 IF(ISUB.EQ.152.OR.ISUB.EQ.157) ISUB=102
47 IF(ISUB.EQ.153.OR.ISUB.EQ.158) ISUB=103
48 IF(ISUB.EQ.171.OR.ISUB.EQ.176) ISUB=24
49 IF(ISUB.EQ.172.OR.ISUB.EQ.177) ISUB=26
50 IF(ISUB.EQ.173.OR.ISUB.EQ.178) ISUB=123
51 IF(ISUB.EQ.174.OR.ISUB.EQ.179) ISUB=124
52 IF(ISUB.EQ.181.OR.ISUB.EQ.186) ISUB=121
53 IF(ISUB.EQ.182.OR.ISUB.EQ.187) ISUB=122
56 C...Choice of subprocess, number of documentation lines.
59 IF(ISET(ISUB).EQ.5.OR.ISET(ISUB).EQ.6) IDOC=9
60 IF(ISET(ISUB).EQ.11) IDOC=4+NUP
62 IF(IDOC.GE.9.AND.ISET(ISUB).LE.4) IDOC=IDOC+2
71 C...Reset K, P and V vectors. Store incoming particles.
72 DO 120 JT=1,MSTP(126)+20
85 P(I,J)=VINT(285+5*JT+J)
91 C...Store incoming partons in their CM-frame.
97 IF(ISET(ISUB).GE.3.AND.ISET(ISUB).LE.5) SHUSER=SHPR
103 P(I,3)=0.5*SHUSER*(-1.)**(JT-1)
107 C...Copy incoming partons to documentation lines.
119 C...Choose new quark/lepton flavour for relevant annihilation graphs.
120 IF(ISUB.EQ.12.OR.ISUB.EQ.53.OR.ISUB.EQ.54.OR.ISUB.EQ.58) THEN
122 IF(ISUB.EQ.58) IGLGA=22
123 CALL PYWIDT(IGLGA,SH,WDTP,WDTE)
124 180 RKFL=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))*RLU(0)
125 DO 190 I=1,MDCY(IGLGA,3)
126 KFLF=KFDP(I+MDCY(IGLGA,2)-1,1)
127 RKFL=RKFL-(WDTE(I,1)+WDTE(I,2)+WDTE(I,4))
128 IF(RKFL.LE.0.) GOTO 200
131 IF(ISUB.EQ.12.AND.MSTP(5).EQ.1.AND.IABS(MINT(15)).LE.2.AND.
132 & IABS(KFLF).GE.3) THEN
133 FACQQB=VINT(58)**2*4./9.*(VINT(45)**2+VINT(46)**2)/
135 FACCIB=VINT(46)**2/PARU(155)**4
136 IF(FACQQB/(FACQQB+FACCIB).LT.RLU(0)) GOTO 180
137 ELSEIF(ISUB.EQ.54) THEN
138 IF((KCHG(IABS(KFLF),1)/2.)**2.LT.RLU(0)) GOTO 180
139 ELSEIF(ISUB.EQ.58) THEN
140 IF((KCHG(IABS(KFLF),1)/3.)**2.LT.RLU(0)) GOTO 180
144 C...Final state flavours and colour flow: default values.
151 KCS=ISIGN(1,MINT(15))
153 IF(ISET(ISUB).EQ.11) THEN
154 C...User-defined processes: find products.
157 IF(KUP(IUP,1).NE.1) THEN
158 ELSEIF(IRUP.LE.5) THEN
160 MINT(20+IRUP)=KUP(IUP,2)
164 ELSEIF(ISUB.LE.10) THEN
166 C...f + f~ -> gamma*/Z0.
169 ELSEIF(ISUB.EQ.2) THEN
170 C...f + f~' -> W+/- .
171 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
172 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
173 KFRES=ISIGN(24,KCH1+KCH2)
175 ELSEIF(ISUB.EQ.3) THEN
176 C...f + f~ -> H0 (or H'0, or A0).
179 ELSEIF(ISUB.EQ.4) THEN
180 C...gamma + W+/- -> W+/-.
182 ELSEIF(ISUB.EQ.5) THEN
187 PMQ(1)=ULMASS(MINT(21))
188 PMQ(2)=ULMASS(MINT(22))
189 220 JT=INT(1.5+RLU(0))
191 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
193 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU(0)
194 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
195 & (1.-XH)**2/(4.*XH)*RLU(0)) GOTO 220
196 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
197 IF(SQC1.LT.1.E-8) GOTO 220
199 C2=1.+2.*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
200 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
201 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
202 Z(3-JT)=1.-XH/(1.-Z(JT))
203 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
204 IF(SQC1.LT.1.E-8) GOTO 220
206 C2=1.+2.*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
207 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
208 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
211 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
213 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
214 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
215 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
217 ZMIN=2.*PMQ(3-JT)/SHPR
218 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
220 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 220
224 ELSEIF(ISUB.EQ.6) THEN
225 C...Z0 + W+/- -> W+/-.
227 ELSEIF(ISUB.EQ.7) THEN
230 ELSEIF(ISUB.EQ.8) THEN
237 RVCKM=VINT(180+I)*RLU(0)
242 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 240
243 MINT(20+JT)=ISIGN(IB,I)
244 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
245 IF(RVCKM.LE.0.) GOTO 250
248 IB=2*((IA+1)/2)-1+MOD(IA,2)
249 MINT(20+JT)=ISIGN(IB,I)
251 250 PMQ(JT)=ULMASS(MINT(20+JT))
255 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
257 IF(ZMIN.GE.ZMAX) GOTO 230
258 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU(0)
259 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
260 & (1.-XH)**2/(4.*XH)*RLU(0)) GOTO 230
261 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
262 IF(SQC1.LT.1.E-8) GOTO 230
264 C2=1.+2.*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
265 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
266 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
267 Z(3-JT)=1.-XH/(1.-Z(JT))
268 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
269 IF(SQC1.LT.1.E-8) GOTO 230
271 C2=1.+2.*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
272 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
273 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
276 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
278 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
279 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
280 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
282 ZMIN=2.*PMQ(3-JT)/SHPR
283 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
285 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 230
289 ELSEIF(ISUB.EQ.10) THEN
290 C...f + f' -> f + f' (gamma/Z/W exchange); th = (p(f)-p(f))**2.
291 IF(MINT(2).EQ.1) THEN
294 C...W exchange: need to mix flavours according to CKM matrix.
299 RVCKM=VINT(180+I)*RLU(0)
304 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 270
305 MINT(20+JT)=ISIGN(IB,I)
306 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
307 IF(RVCKM.LE.0.) GOTO 280
310 IB=2*((IA+1)/2)-1+MOD(IA,2)
311 MINT(20+JT)=ISIGN(IB,I)
318 ELSEIF(ISUB.LE.20) THEN
320 C...f + f' -> f + f' (g exchange); th = (p(f)-p(f))**2.
322 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
324 ELSEIF(ISUB.EQ.12) THEN
325 C...f + f~ -> f' + f~'; th = (p(f)-p(f'))**2.
326 MINT(21)=ISIGN(KFLF,MINT(15))
330 ELSEIF(ISUB.EQ.13) THEN
331 C...f + f~ -> g + g; th arbitrary.
336 ELSEIF(ISUB.EQ.14) THEN
337 C...f + f~ -> g + gamma; th arbitrary.
338 IF(RLU(0).GT.0.5) JS=2
343 ELSEIF(ISUB.EQ.15) THEN
344 C...f + f~ -> g + Z0; th arbitrary.
345 IF(RLU(0).GT.0.5) JS=2
350 ELSEIF(ISUB.EQ.16) THEN
351 C...f + f~' -> g + W+/-; th = (p(f)-p(W-))**2 or (p(f~')-p(W+))**2.
352 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
353 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
354 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
356 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
359 ELSEIF(ISUB.EQ.17) THEN
360 C...f + f~ -> g + H0; th arbitrary.
361 IF(RLU(0).GT.0.5) JS=2
366 ELSEIF(ISUB.EQ.18) THEN
367 C...f + f~ -> gamma + gamma; th arbitrary.
371 ELSEIF(ISUB.EQ.19) THEN
372 C...f + f~ -> gamma + Z0; th arbitrary.
373 IF(RLU(0).GT.0.5) JS=2
377 ELSEIF(ISUB.EQ.20) THEN
378 C...f + f~' -> gamma + W+/-; th = (p(f)-p(W-))**2 or (p(f~')-p(W+))**2.
379 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
380 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
381 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
383 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
386 ELSEIF(ISUB.LE.30) THEN
388 C...f + f~ -> gamma + H0; th arbitrary.
389 IF(RLU(0).GT.0.5) JS=2
393 ELSEIF(ISUB.EQ.22) THEN
394 C...f + f~ -> Z0 + Z0; th arbitrary.
398 ELSEIF(ISUB.EQ.23) THEN
399 C...f + f~' -> Z0 + W+/-; th = (p(f)-p(W-))**2 or (p(f~')-p(W+))**2.
400 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
401 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
402 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
404 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
406 ELSEIF(ISUB.EQ.24) THEN
407 C...f + f~ -> Z0 + H0 (or H'0, or A0); th arbitrary.
408 IF(RLU(0).GT.0.5) JS=2
412 ELSEIF(ISUB.EQ.25) THEN
413 C...f + f~ -> W+ + W-; th = (p(f)-p(W-))**2.
414 MINT(21)=-ISIGN(24,MINT(15))
417 ELSEIF(ISUB.EQ.26) THEN
418 C...f + f~' -> W+/- + H0 (or H'0, or A0);
419 C...th = (p(f)-p(W-))**2 or (p(f~')-p(W+))**2.
420 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
421 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
422 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
423 MINT(20+JS)=ISIGN(24,KCH1+KCH2)
426 ELSEIF(ISUB.EQ.27) THEN
427 C...f + f~ -> H0 + H0.
429 ELSEIF(ISUB.EQ.28) THEN
430 C...f + g -> f + g; th = (p(f)-p(f))**2.
432 IF(MINT(15).EQ.21) KCC=KCC+2
433 IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
434 IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
436 ELSEIF(ISUB.EQ.29) THEN
437 C...f + g -> f + gamma; th = (p(f)-p(f))**2.
438 IF(MINT(15).EQ.21) JS=2
441 KCS=ISIGN(1,MINT(14+JS))
443 ELSEIF(ISUB.EQ.30) THEN
444 C...f + g -> f + Z0; th = (p(f)-p(f))**2.
445 IF(MINT(15).EQ.21) JS=2
448 KCS=ISIGN(1,MINT(14+JS))
451 ELSEIF(ISUB.LE.40) THEN
453 C...f + g -> f' + W+/-; th = (p(f)-p(f'))**2; choose flavour f'.
454 IF(MINT(15).EQ.21) JS=2
457 MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
458 RVCKM=VINT(180+I)*RLU(0)
463 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 290
464 MINT(20+JS)=ISIGN(IB,I)
465 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
466 IF(RVCKM.LE.0.) GOTO 300
469 KCS=ISIGN(1,MINT(14+JS))
471 ELSEIF(ISUB.EQ.32) THEN
472 C...f + g -> f + H0; th = (p(f)-p(f))**2.
473 IF(MINT(15).EQ.21) JS=2
476 KCS=ISIGN(1,MINT(14+JS))
478 ELSEIF(ISUB.EQ.33) THEN
479 C...f + gamma -> f + g; th=(p(f)-p(f))**2.
480 IF(MINT(15).EQ.22) JS=2
483 KCS=ISIGN(1,MINT(14+JS))
485 ELSEIF(ISUB.EQ.34) THEN
486 C...f + gamma -> f + gamma; th=(p(f)-p(f))**2.
487 IF(MINT(15).EQ.22) JS=2
489 KCS=ISIGN(1,MINT(14+JS))
491 ELSEIF(ISUB.EQ.35) THEN
492 C...f + gamma -> f + Z0; th=(p(f)-p(f))**2.
493 IF(MINT(15).EQ.22) JS=2
497 ELSEIF(ISUB.EQ.36) THEN
498 C...f + gamma -> f' + W+/-; th=(p(f)-p(f'))**2.
499 IF(MINT(15).EQ.22) JS=2
502 MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
504 RVCKM=VINT(180+I)*RLU(0)
509 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 310
510 MINT(20+JS)=ISIGN(IB,I)
511 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
512 IF(RVCKM.LE.0.) GOTO 320
515 IB=2*((IA+1)/2)-1+MOD(IA,2)
516 MINT(20+JS)=ISIGN(IB,I)
520 ELSEIF(ISUB.EQ.37) THEN
521 C...f + gamma -> f + H0.
523 ELSEIF(ISUB.EQ.38) THEN
526 ELSEIF(ISUB.EQ.39) THEN
527 C...f + Z0 -> f + gamma.
529 ELSEIF(ISUB.EQ.40) THEN
530 C...f + Z0 -> f + Z0.
533 ELSEIF(ISUB.LE.50) THEN
535 C...f + Z0 -> f' + W+/-.
537 ELSEIF(ISUB.EQ.42) THEN
538 C...f + Z0 -> f + H0.
540 ELSEIF(ISUB.EQ.43) THEN
541 C...f + W+/- -> f' + g.
543 ELSEIF(ISUB.EQ.44) THEN
544 C...f + W+/- -> f' + gamma.
546 ELSEIF(ISUB.EQ.45) THEN
547 C...f + W+/- -> f' + Z0.
549 ELSEIF(ISUB.EQ.46) THEN
550 C...f + W+/- -> f' + W+/-.
552 ELSEIF(ISUB.EQ.47) THEN
553 C...f + W+/- -> f' + H0.
555 ELSEIF(ISUB.EQ.48) THEN
558 ELSEIF(ISUB.EQ.49) THEN
559 C...f + H0 -> f + gamma.
561 ELSEIF(ISUB.EQ.50) THEN
562 C...f + H0 -> f + Z0.
565 ELSEIF(ISUB.LE.60) THEN
567 C...f + H0 -> f' + W+/-.
569 ELSEIF(ISUB.EQ.52) THEN
570 C...f + H0 -> f + H0.
572 ELSEIF(ISUB.EQ.53) THEN
573 C...g + g -> f + f~; th arbitrary.
574 KCS=(-1)**INT(1.5+RLU(0))
575 MINT(21)=ISIGN(KFLF,KCS)
579 ELSEIF(ISUB.EQ.54) THEN
580 C...g + gamma -> f + f~; th arbitrary.
581 KCS=(-1)**INT(1.5+RLU(0))
582 MINT(21)=ISIGN(KFLF,KCS)
585 IF(MINT(16).EQ.21) KCC=28
587 ELSEIF(ISUB.EQ.55) THEN
588 C...g + Z0 -> f + f~.
590 ELSEIF(ISUB.EQ.56) THEN
591 C...g + W+/- -> f + f~'.
593 ELSEIF(ISUB.EQ.57) THEN
594 C...g + H0 -> f + f~.
596 ELSEIF(ISUB.EQ.58) THEN
597 C...gamma + gamma -> f + f~; th arbitrary.
598 KCS=(-1)**INT(1.5+RLU(0))
599 MINT(21)=ISIGN(KFLF,KCS)
603 ELSEIF(ISUB.EQ.59) THEN
604 C...gamma + Z0 -> f + f~.
606 ELSEIF(ISUB.EQ.60) THEN
607 C...gamma + W+/- -> f + f~'.
610 ELSEIF(ISUB.LE.70) THEN
612 C...gamma + H0 -> f + f~.
614 ELSEIF(ISUB.EQ.62) THEN
615 C...Z0 + Z0 -> f + f~.
617 ELSEIF(ISUB.EQ.63) THEN
618 C...Z0 + W+/- -> f + f~'.
620 ELSEIF(ISUB.EQ.64) THEN
621 C...Z0 + H0 -> f + f~.
623 ELSEIF(ISUB.EQ.65) THEN
624 C...W+ + W- -> f + f~.
626 ELSEIF(ISUB.EQ.66) THEN
627 C...W+/- + H0 -> f + f~'.
629 ELSEIF(ISUB.EQ.67) THEN
630 C...H0 + H0 -> f + f~.
632 ELSEIF(ISUB.EQ.68) THEN
633 C...g + g -> g + g; th arbitrary.
635 KCS=(-1)**INT(1.5+RLU(0))
637 ELSEIF(ISUB.EQ.69) THEN
638 C...gamma + gamma -> W+ + W-; th arbitrary.
643 ELSEIF(ISUB.EQ.70) THEN
644 C...gamma + W+/- -> Z0 + W+/-; th=(p(W)-p(W))**2.
645 IF(MINT(15).EQ.22) MINT(21)=23
646 IF(MINT(16).EQ.22) MINT(22)=23
650 ELSEIF(ISUB.LE.80) THEN
651 IF(ISUB.EQ.71.OR.ISUB.EQ.72) THEN
652 C...Z0 + Z0 -> Z0 + Z0; Z0 + Z0 -> W+ + W-.
656 PMQ(1)=ULMASS(MINT(21))
657 PMQ(2)=ULMASS(MINT(22))
658 330 JT=INT(1.5+RLU(0))
660 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
662 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU(0)
663 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
664 & (1.-XH)**2/(4.*XH)*RLU(0)) GOTO 330
665 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
666 IF(SQC1.LT.1.E-8) GOTO 330
668 C2=1.+2.*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
669 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
670 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
671 Z(3-JT)=1.-XH/(1.-Z(JT))
672 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
673 IF(SQC1.LT.1.E-8) GOTO 330
675 C2=1.+2.*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
676 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
677 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
680 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
682 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
683 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
684 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
686 ZMIN=2.*PMQ(3-JT)/SHPR
687 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
689 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 330
692 ELSEIF(ISUB.EQ.73) THEN
693 C...Z0 + W+/- -> Z0 + W+/-.
700 RVCKM=VINT(180+I)*RLU(0)
705 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 350
706 MINT(20+JT)=ISIGN(IB,I)
707 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
708 IF(RVCKM.LE.0.) GOTO 360
711 IB=2*((IA+1)/2)-1+MOD(IA,2)
712 MINT(20+JT)=ISIGN(IB,I)
714 360 PMQ(JT)=ULMASS(MINT(20+JT))
715 MINT(23-JT)=MINT(17-JT)
716 PMQ(3-JT)=ULMASS(MINT(23-JT))
719 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
721 IF(ZMIN.GE.ZMAX) GOTO 340
722 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU(0)
723 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
724 & (1.-XH)**2/(4.*XH)*RLU(0)) GOTO 340
725 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
726 IF(SQC1.LT.1.E-8) GOTO 340
728 C2=1.+2.*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
729 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
730 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
731 Z(3-JT)=1.-XH/(1.-Z(JT))
732 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
733 IF(SQC1.LT.1.E-8) GOTO 340
735 C2=1.+2.*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
736 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
737 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
740 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
742 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
743 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
744 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
746 ZMIN=2.*PMQ(3-JT)/SHPR
747 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
749 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 340
752 ELSEIF(ISUB.EQ.74) THEN
753 C...Z0 + H0 -> Z0 + H0.
755 ELSEIF(ISUB.EQ.75) THEN
756 C...W+ + W- -> gamma + gamma.
758 ELSEIF(ISUB.EQ.76.OR.ISUB.EQ.77) THEN
759 C...W+ + W- -> Z0 + Z0; W+ + W- -> W+ + W-.
765 RVCKM=VINT(180+I)*RLU(0)
770 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 380
771 MINT(20+JT)=ISIGN(IB,I)
772 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
773 IF(RVCKM.LE.0.) GOTO 390
776 IB=2*((IA+1)/2)-1+MOD(IA,2)
777 MINT(20+JT)=ISIGN(IB,I)
779 390 PMQ(JT)=ULMASS(MINT(20+JT))
783 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
785 IF(ZMIN.GE.ZMAX) GOTO 370
786 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU(0)
787 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
788 & (1.-XH)**2/(4.*XH)*RLU(0)) GOTO 370
789 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
790 IF(SQC1.LT.1.E-8) GOTO 370
792 C2=1.+2.*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
793 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
794 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
795 Z(3-JT)=1.-XH/(1.-Z(JT))
796 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
797 IF(SQC1.LT.1.E-8) GOTO 370
799 C2=1.+2.*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
800 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU(0)-1.)*C1))/C1
801 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
804 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
806 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
807 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
808 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
810 ZMIN=2.*PMQ(3-JT)/SHPR
811 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
813 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 370
816 ELSEIF(ISUB.EQ.78) THEN
817 C...W+/- + H0 -> W+/- + H0.
819 ELSEIF(ISUB.EQ.79) THEN
820 C...H0 + H0 -> H0 + H0.
822 ELSEIF(ISUB.EQ.80) THEN
823 C...q + gamma -> q' + pi+/-; th=(p(q)-p(q'))**2.
824 IF(MINT(15).EQ.22) JS=2
827 MINT(23-JS)=ISIGN(211,KCHG(IA,1)*I)
829 MINT(20+JS)=ISIGN(IB,I)
833 ELSEIF(ISUB.LE.90) THEN
835 C...q + q~ -> Q + Q~; th = (p(q)-p(Q))**2.
836 MINT(21)=ISIGN(MINT(55),MINT(15))
840 ELSEIF(ISUB.EQ.82) THEN
841 C...g + g -> Q + Q~; th arbitrary.
842 KCS=(-1)**INT(1.5+RLU(0))
843 MINT(21)=ISIGN(MINT(55),KCS)
847 ELSEIF(ISUB.EQ.83) THEN
848 C...f + q -> f' + Q; th = (p(f) - p(f'))**2.
850 IF(MINT(2).EQ.2) KFOLD=MINT(15)
852 IF(KFAOLD.GT.10) THEN
853 KFANEW=KFAOLD+2*MOD(KFAOLD,2)-1
855 RCKM=VINT(180+KFOLD)*RLU(0)
856 IPM=(5-ISIGN(1,KFOLD))/2
857 KFANEW=-MOD(KFAOLD+1,2)
859 IDC=MDCY(KFAOLD,2)+(KFANEW+1)/2+2
860 IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.IPM) THEN
861 IF(MOD(KFAOLD,2).EQ.0) RCKM=RCKM-VCKM(KFAOLD/2,(KFANEW+1)/2)
862 IF(MOD(KFAOLD,2).EQ.1) RCKM=RCKM-VCKM(KFANEW/2,(KFAOLD+1)/2)
864 IF(KFANEW.LE.6.AND.RCKM.GT.0.) GOTO 410
866 IF(MINT(2).EQ.1) THEN
867 MINT(21)=ISIGN(MINT(55),MINT(15))
868 MINT(22)=ISIGN(KFANEW,MINT(16))
870 MINT(21)=ISIGN(KFANEW,MINT(15))
871 MINT(22)=ISIGN(MINT(55),MINT(16))
876 ELSEIF(ISUB.EQ.84) THEN
877 C...g + gamma -> Q + Q~; th arbitary.
878 KCS=(-1)**INT(1.5+RLU(0))
879 MINT(21)=ISIGN(MINT(55),KCS)
882 IF(MINT(16).EQ.21) KCC=28
884 ELSEIF(ISUB.EQ.85) THEN
885 C...gamma + gamma -> F + F~; th arbitary.
886 KCS=(-1)**INT(1.5+RLU(0))
887 MINT(21)=ISIGN(MINT(56),KCS)
891 ELSEIF(ISUB.GE.86.AND.ISUB.LE.89) THEN
892 C...g + g -> (J/Psi, chi_0c, chi_1c or chi_2c) + g
893 MINT(21)=KFPR(ISUB,1)
894 MINT(22)=KFPR(ISUB,2)
896 KCS=(-1)**INT(1.5+RLU(0))
899 ELSEIF(ISUB.LE.100) THEN
901 C...Low-pT ( = energyless g + g -> g + g).
903 KCS=(-1)**INT(1.5+RLU(0))
905 ELSEIF(ISUB.EQ.96) THEN
906 C...Multiple interactions (should be reassigned to QCD process).
909 ELSEIF(ISUB.LE.110) THEN
911 C...g + g -> gamma*/Z0.
915 ELSEIF(ISUB.EQ.102) THEN
916 C...g + g -> H0 (or H'0, or A0).
920 ELSEIF(ISUB.EQ.103) THEN
921 C...gamma + gamma -> H0 (or H'0, or A0).
925 ELSEIF(ISUB.EQ.110) THEN
926 C...f + f~ -> gamma + H0; th arbitrary.
927 IF(RLU(0).GT.0.5) JS=2
932 ELSEIF(ISUB.LE.120) THEN
934 C...f + f~ -> g + H0; th arbitrary.
935 IF(RLU(0).GT.0.5) JS=2
940 ELSEIF(ISUB.EQ.112) THEN
941 C...f + g -> f + H0; th = (p(f) - p(f))**2.
942 IF(MINT(15).EQ.21) JS=2
945 KCS=ISIGN(1,MINT(14+JS))
947 ELSEIF(ISUB.EQ.113) THEN
948 C...g + g -> g + H0; th arbitrary.
949 IF(RLU(0).GT.0.5) JS=2
952 KCS=(-1)**INT(1.5+RLU(0))
954 ELSEIF(ISUB.EQ.114) THEN
955 C...g + g -> gamma + gamma; th arbitrary.
956 IF(RLU(0).GT.0.5) JS=2
961 ELSEIF(ISUB.EQ.115) THEN
962 C...g + g -> g + gamma; th arbitrary.
963 IF(RLU(0).GT.0.5) JS=2
966 KCS=(-1)**INT(1.5+RLU(0))
968 ELSEIF(ISUB.EQ.116) THEN
969 C...g + g -> gamma + Z0.
971 ELSEIF(ISUB.EQ.117) THEN
972 C...g + g -> Z0 + Z0.
974 ELSEIF(ISUB.EQ.118) THEN
975 C...g + g -> W+ + W-.
978 ELSEIF(ISUB.LE.140) THEN
980 C...g + g -> Q + Q~ + H0.
981 KCS=(-1)**INT(1.5+RLU(0))
982 MINT(21)=ISIGN(KFPR(ISUBSV,2),KCS)
984 KCC=11+INT(0.5+RLU(0))
987 ELSEIF(ISUB.EQ.122) THEN
988 C...q + q~ -> Q + Q~ + H0.
989 MINT(21)=ISIGN(KFPR(ISUBSV,2),MINT(15))
994 ELSEIF(ISUB.EQ.123) THEN
995 C...f + f' -> f + f' + H0 (or H'0, or A0) (Z0 + Z0 -> H0 as
1000 ELSEIF(ISUB.EQ.124) THEN
1001 C...f + f' -> f" + f"' + H0 (or H'0, or A) (W+ + W- -> H0 as
1007 RVCKM=VINT(180+I)*RLU(0)
1010 IPM=(5-ISIGN(1,I))/2
1012 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 420
1013 MINT(20+JT)=ISIGN(IB,I)
1014 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
1015 IF(RVCKM.LE.0.) GOTO 430
1018 IB=2*((IA+1)/2)-1+MOD(IA,2)
1019 MINT(20+JT)=ISIGN(IB,I)
1025 ELSEIF(ISUB.EQ.131) THEN
1026 C...g + g -> Z0 + q + q~.
1027 MINT(21)=KFPR(131,1)
1028 MINT(22)=KFPR(131,2)
1034 ELSEIF(ISUB.LE.160) THEN
1035 IF(ISUB.EQ.141) THEN
1036 C...f + f~ -> gamma*/Z0/Z'0.
1039 ELSEIF(ISUB.EQ.142) THEN
1040 C...f + f~' -> W'+/- .
1041 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
1042 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
1043 KFRES=ISIGN(34,KCH1+KCH2)
1045 ELSEIF(ISUB.EQ.143) THEN
1046 C...f + f~' -> H+/-.
1047 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
1048 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
1049 KFRES=ISIGN(37,KCH1+KCH2)
1051 ELSEIF(ISUB.EQ.144) THEN
1053 KFRES=ISIGN(40,MINT(15)+MINT(16))
1055 ELSEIF(ISUB.EQ.145) THEN
1056 C...q + l -> LQ (leptoquark).
1057 IF(IABS(MINT(16)).LE.8) JS=2
1058 KFRES=ISIGN(39,MINT(14+JS))
1060 KCS=ISIGN(1,MINT(14+JS))
1062 ELSEIF(ISUB.EQ.147.OR.ISUB.EQ.148) THEN
1063 C...q + g -> q* (excited quark).
1064 IF(MINT(15).EQ.21) JS=2
1065 KFRES=MINT(14+JS)+ISIGN(6,MINT(14+JS))
1067 KCS=ISIGN(1,MINT(14+JS))
1069 ELSEIF(ISUB.EQ.149) THEN
1070 C...g + g -> eta_techni.
1073 KCS=(-1)**INT(1.5+RLU(0))
1077 IF(ISUB.EQ.161) THEN
1078 C...f + g -> f' + H+/-; th = (p(f)-p(f'))**2.
1079 IF(MINT(15).EQ.21) JS=2
1082 MINT(23-JS)=ISIGN(37,KCHG(IA,1)*I)
1083 IB=IA+MOD(IA,2)-MOD(IA+1,2)
1084 MINT(20+JS)=ISIGN(IB,I)
1086 KCS=ISIGN(1,MINT(14+JS))
1088 ELSEIF(ISUB.EQ.162) THEN
1089 C...q + g -> LQ + l~; LQ=leptoquark; th=(p(q)-p(LQ))^2.
1090 IF(MINT(15).EQ.21) JS=2
1091 MINT(20+JS)=ISIGN(39,MINT(14+JS))
1092 KFLQL=KFDP(MDCY(39,2),2)
1093 MINT(23-JS)=-ISIGN(KFLQL,MINT(14+JS))
1095 KCS=ISIGN(1,MINT(14+JS))
1097 ELSEIF(ISUB.EQ.163) THEN
1098 C...g + g -> LQ + LQ~; LQ=leptoquark; th arbitrary.
1099 KCS=(-1)**INT(1.5+RLU(0))
1100 MINT(21)=ISIGN(39,KCS)
1104 ELSEIF(ISUB.EQ.164) THEN
1105 C...q + q~ -> LQ + LQ~; LQ=leptoquark; th=(p(q)-p(LQ))**2.
1106 MINT(21)=ISIGN(39,MINT(15))
1110 ELSEIF(ISUB.EQ.165) THEN
1111 C...q + q~ -> l- + l+; th=(p(q)-p(l-))**2.
1112 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
1115 ELSEIF(ISUB.EQ.166) THEN
1116 C...q + q~' -> l + nu; th=(p(u)-p(nu))**2 or (p(u~)-p(nu~))**2.
1117 IF(MOD(MINT(15),2).EQ.0) THEN
1118 MINT(21)=ISIGN(KFPR(ISUB,1)+1,MINT(15))
1119 MINT(22)=ISIGN(KFPR(ISUB,1),MINT(16))
1121 MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
1122 MINT(22)=ISIGN(KFPR(ISUB,1)+1,MINT(16))
1125 ELSEIF(ISUB.EQ.167.OR.ISUB.EQ.168) THEN
1126 C...q + q' -> q" + q* (excited quark).
1130 MINT(20+JS)=ISIGN(KFQSTR,MINT(14+JS))
1131 IF(IABS(MINT(15)).NE.KFQEXC.AND.IABS(MINT(16)).NE.KFQEXC)
1132 & MINT(23-JS)=ISIGN(KFQEXC,MINT(17-JS))
1137 IF(ISET(ISUB).EQ.11) THEN
1138 C...Store documentation for user-defined processes.
1139 BEZUP=(PUP(1,4)-PUP(2,4))/(PUP(1,4)+PUP(2,4))
1145 IF(MSTP(128).GE.2.AND.KUP(IUP,3).NE.0) THEN
1155 IF(KUP(IUP,3).NE.0) K(I,3)=KUPPO(KUP(IUP,3))
1162 CALL LUDBRB(MINT(83)+7,MINT(83)+4+NUP,0.,VINT(24),0D0,0D0,
1165 C...Store final state partons for user-defined processes.
1170 IF(KUP(IUP,1).NE.1) K(N,1)=11
1172 IF(MSTP(128).LE.0.OR.KUP(IUP,3).EQ.0) THEN
1175 K(N,3)=MINT(84)+KUP(IUP,3)
1183 CALL LUDBRB(IPU3,N,0.,VINT(24),0D0,0D0,-DBLE(BEZUP))
1185 C...Arrange colour flow for user-defined processes.
1189 IF(KCHG(LUCOMP(K(N,2)),2).EQ.0) GOTO 480
1190 IF(K(N,1).EQ.1) K(N,1)=3
1191 IF(K(N,1).EQ.11) K(N,1)=14
1192 IF(KUP(IUP,4).NE.0) K(N,4)=K(N,4)+MSTU(5)*(KUP(IUP,4)+MINT(84))
1193 IF(KUP(IUP,5).NE.0) K(N,5)=K(N,5)+MSTU(5)*(KUP(IUP,5)+MINT(84))
1194 IF(KUP(IUP,6).NE.0) K(N,4)=K(N,4)+KUP(IUP,6)+MINT(84)
1195 IF(KUP(IUP,7).NE.0) K(N,5)=K(N,5)+KUP(IUP,7)+MINT(84)
1198 ELSEIF(IDOC.EQ.7) THEN
1199 C...Resonance not decaying; store kinematics.
1214 C...Special cases: colour flow in g + g -> eta_techni, q + l -> LQ
1215 C...and q + g -> q*.
1216 IF(KFRES.EQ.38.OR.IABS(KFRES).EQ.39.OR.(MSTP(6).EQ.1.AND.
1217 & (IABS(KFRES).EQ.7.OR.IABS(KFRES).EQ.8))) THEN
1221 IF(KCS.EQ.-1) JC=3-J
1222 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
1223 & MINT(84)+ICOL(KCC,1,JC)
1224 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
1225 & MINT(84)+ICOL(KCC,2,JC)
1226 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
1227 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
1236 ELSEIF(IDOC.EQ.8) THEN
1237 C...2 -> 2 processes: store outgoing partons in their CM-frame.
1241 IF(IABS(MINT(20+JT)).LE.100) THEN
1242 IF(KCHG(IABS(MINT(20+JT)),2).NE.0) K(I,1)=3
1245 K(I,3)=MINT(83)+IDOC+JT-2
1247 IF(KFAA.GE.23.OR.(KFAA.EQ.6.AND.KFPR(ISUBSV,1).NE.0.AND.
1248 & MSTP(48).GE.1).OR.((KFAA.EQ.7.OR.KFAA.EQ.8.OR.KFAA.EQ.17.OR.
1249 & KFAA.EQ.18).AND.KFPR(ISUBSV,1).NE.0.AND.MSTP(49).GE.1)) THEN
1250 P(I,5)=SQRT(VINT(63+MOD(JS+JT,2)))
1251 ELSEIF((KFAA.EQ.7.OR.KFAA.EQ.8).AND.MSTP(6).EQ.1.AND.
1252 & KFPR(ISUBSV,2).NE.0) THEN
1253 P(I,5)=SQRT(VINT(64))
1255 P(I,5)=ULMASS(K(I,2))
1258 IF(P(IPU3,5)+P(IPU4,5).GE.SHR) THEN
1261 IF((KFA1.GT.3.AND.KFA1.NE.21).OR.(KFA2.GT.3.AND.KFA2.NE.21))
1269 P(IPU3,4)=0.5*(SHR+(P(IPU3,5)**2-P(IPU4,5)**2)/SHR)
1270 P(IPU3,3)=SQRT(MAX(0.,P(IPU3,4)**2-P(IPU3,5)**2))
1271 P(IPU4,4)=SHR-P(IPU3,4)
1272 P(IPU4,3)=-P(IPU3,3)
1277 C...Rotate outgoing partons using cos(theta)=(th-uh)/lam(sh,sqm3,sqm4).
1278 CALL LUDBRB(IPU3,IPU4,ACOS(VINT(23)),VINT(24),0D0,0D0,0D0)
1280 ELSEIF(IDOC.EQ.9.AND.ISET(ISUB).EQ.5) THEN
1281 C...2 -> 3 processes (alt 1): store outgoing partons in their CM frame.
1285 IF(IABS(MINT(20+JT)).LE.100) THEN
1286 IF(KCHG(IABS(MINT(20+JT)),2).NE.0) K(I,1)=3
1289 K(I,3)=MINT(83)+IDOC+JT-3
1290 IF(IABS(K(I,2)).LE.22) THEN
1291 P(I,5)=ULMASS(K(I,2))
1293 P(I,5)=SQRT(VINT(63+MOD(JS+JT,2)))
1295 PT=SQRT(MAX(0.,VINT(197+5*JT)-P(I,5)**2+VINT(196+5*JT)**2))
1296 P(I,1)=PT*COS(VINT(198+5*JT))
1297 P(I,2)=PT*SIN(VINT(198+5*JT))
1301 K(IPU5,3)=MINT(83)+IDOC
1303 P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
1304 P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
1305 PMS1=P(IPU3,5)**2+P(IPU3,1)**2+P(IPU3,2)**2
1306 PMS2=P(IPU4,5)**2+P(IPU4,1)**2+P(IPU4,2)**2
1307 PMS3=P(IPU5,5)**2+P(IPU5,1)**2+P(IPU5,2)**2
1309 P(IPU5,3)=PMT3*SINH(VINT(211))
1310 P(IPU5,4)=PMT3*COSH(VINT(211))
1311 PMS12=(SHPR-P(IPU5,4))**2-P(IPU5,3)**2
1312 SQL12=(PMS12-PMS1-PMS2)**2-4.*PMS1*PMS2
1313 IF(SQL12.LE.0.) THEN
1317 P(IPU3,3)=(-P(IPU5,3)*(PMS12+PMS1-PMS2)+
1318 & VINT(213)*(SHPR-P(IPU5,4))*SQRT(SQL12))/(2.*PMS12)
1319 P(IPU4,3)=-P(IPU3,3)-P(IPU5,3)
1320 P(IPU3,4)=SQRT(PMS1+P(IPU3,3)**2)
1321 P(IPU4,4)=SQRT(PMS2+P(IPU4,3)**2)
1327 ELSEIF(IDOC.EQ.9) THEN
1328 C...2 -> 3 processes: store outgoing partons in their CM frame.
1332 IF(IABS(MINT(20+JT)).LE.10.OR.MINT(20+JT).EQ.21) K(I,1)=3
1334 K(I,3)=MINT(83)+IDOC+JT-3
1336 P(I,5)=SQRT(VINT(63))
1338 P(I,5)=PMAS(KFPR(ISUB,2),1)
1341 P(IPU3,4)=0.5*(SHR+(VINT(63)-VINT(64))/SHR)
1342 P(IPU3,3)=SQRT(MAX(0.,P(IPU3,4)**2-P(IPU3,5)**2))
1343 P(IPU4,4)=0.5*SQRT(VINT(64))
1344 P(IPU4,3)=SQRT(MAX(0.,P(IPU4,4)**2-P(IPU4,5)**2))
1346 P(IPU5,3)=-P(IPU4,3)
1351 C...Rotate and boost outgoing partons.
1352 CALL LUDBRB(IPU4,IPU5,ACOS(VINT(83)),VINT(84),0D0,0D0,0D0)
1353 CALL LUDBRB(IPU4,IPU5,0.,0.,0D0,0D0,
1354 & -DBLE(P(IPU3,3)/(SHR-P(IPU3,4))))
1355 CALL LUDBRB(IPU3,IPU5,ACOS(VINT(23)),VINT(24),0D0,0D0,0D0)
1357 ELSEIF(IDOC.EQ.11) THEN
1358 C...Z0 + Z0 -> H0, W+ + W- -> H0: store Higgs and outgoing partons.
1359 PHI(1)=PARU(2)*RLU(0)
1364 IF(IABS(MINT(20+JT)).LE.10.OR.MINT(20+JT).EQ.21) K(I,1)=3
1366 K(I,3)=MINT(83)+IDOC+JT-2
1367 P(I,5)=ULMASS(K(I,2))
1368 IF(0.5*SHPR*Z(JT).LE.P(I,5)) P(I,5)=0.
1369 PABS=SQRT(MAX(0.,(0.5*SHPR*Z(JT))**2-P(I,5)**2))
1370 PTABS=PABS*SQRT(MAX(0.,1.-CTHE(JT)**2))
1371 P(I,1)=PTABS*COS(PHI(JT))
1372 P(I,2)=PTABS*SIN(PHI(JT))
1373 P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
1374 P(I,4)=0.5*SHPR*Z(JT)
1378 IF(ISUB.EQ.8) K(IZW,2)=ISIGN(24,LUCHGE(MINT(14+JT)))
1382 P(IZW,3)=(0.5*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
1383 P(IZW,4)=0.5*SHPR*(1.-Z(JT))
1384 P(IZW,5)=-SQRT(MAX(0.,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
1391 P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
1392 P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
1393 P(IPU5,3)=-P(IPU3,3)-P(IPU4,3)
1394 P(IPU5,4)=SHPR-P(IPU3,4)-P(IPU4,4)
1403 ELSEIF(IDOC.EQ.12) THEN
1404 C...Z0 and W+/- scattering: store bosons and outgoing partons.
1405 PHI(1)=PARU(2)*RLU(0)
1407 JTRAN=INT(1.5+RLU(0))
1411 IF(IABS(MINT(20+JT)).LE.10.OR.MINT(20+JT).EQ.21) K(I,1)=3
1413 K(I,3)=MINT(83)+IDOC+JT-2
1414 P(I,5)=ULMASS(K(I,2))
1415 IF(0.5*SHPR*Z(JT).LE.P(I,5)) P(I,5)=0.
1416 PABS=SQRT(MAX(0.,(0.5*SHPR*Z(JT))**2-P(I,5)**2))
1417 PTABS=PABS*SQRT(MAX(0.,1.-CTHE(JT)**2))
1418 P(I,1)=PTABS*COS(PHI(JT))
1419 P(I,2)=PTABS*SIN(PHI(JT))
1420 P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
1421 P(I,4)=0.5*SHPR*Z(JT)
1424 IF(MINT(14+JT).EQ.MINT(20+JT)) THEN
1427 K(IZW,2)=ISIGN(24,LUCHGE(MINT(14+JT))-LUCHGE(MINT(20+JT)))
1432 P(IZW,3)=(0.5*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
1433 P(IZW,4)=0.5*SHPR*(1.-Z(JT))
1434 P(IZW,5)=-SQRT(MAX(0.,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
1437 K(IPU,2)=KFPR(ISUB,JT)
1438 IF(ISUB.EQ.72.AND.JT.EQ.JTRAN) K(IPU,2)=-K(IPU,2)
1439 IF(ISUB.EQ.73.OR.ISUB.EQ.77) K(IPU,2)=K(IZW,2)
1440 K(IPU,3)=MINT(83)+8+JT
1441 IF(IABS(K(IPU,2)).LE.10.OR.K(IPU,2).EQ.21) THEN
1442 P(IPU,5)=ULMASS(K(IPU,2))
1444 P(IPU,5)=SQRT(VINT(63+MOD(JS+JT,2)))
1446 MINT(22+JT)=K(IPU,2)
1448 C...Find rotation and boost for hard scattering subsystem.
1451 BEXCM=(P(I1,1)+P(I2,1))/(P(I1,4)+P(I2,4))
1452 BEYCM=(P(I1,2)+P(I2,2))/(P(I1,4)+P(I2,4))
1453 BEZCM=(P(I1,3)+P(I2,3))/(P(I1,4)+P(I2,4))
1454 GAMCM=(P(I1,4)+P(I2,4))/SHR
1455 BEPCM=BEXCM*P(I1,1)+BEYCM*P(I1,2)+BEZCM*P(I1,3)
1456 PX=P(I1,1)+GAMCM*(GAMCM/(1.+GAMCM)*BEPCM-P(I1,4))*BEXCM
1457 PY=P(I1,2)+GAMCM*(GAMCM/(1.+GAMCM)*BEPCM-P(I1,4))*BEYCM
1458 PZ=P(I1,3)+GAMCM*(GAMCM/(1.+GAMCM)*BEPCM-P(I1,4))*BEZCM
1459 THECM=ULANGL(PZ,SQRT(PX**2+PY**2))
1461 C...Store hard scattering subsystem. Rotate and boost it.
1462 SQLAM=(SH-P(IPU5,5)**2-P(IPU6,5)**2)**2-4.*P(IPU5,5)**2*
1464 PABS=SQRT(MAX(0.,SQLAM/(4.*SH)))
1466 STHWZ=SQRT(MAX(0.,1.-CTHWZ**2))
1467 PHIWZ=VINT(24)-PHICM
1468 P(IPU5,1)=PABS*STHWZ*COS(PHIWZ)
1469 P(IPU5,2)=PABS*STHWZ*SIN(PHIWZ)
1470 P(IPU5,3)=PABS*CTHWZ
1471 P(IPU5,4)=SQRT(PABS**2+P(IPU5,5)**2)
1472 P(IPU6,1)=-P(IPU5,1)
1473 P(IPU6,2)=-P(IPU5,2)
1474 P(IPU6,3)=-P(IPU5,3)
1475 P(IPU6,4)=SQRT(PABS**2+P(IPU6,5)**2)
1476 CALL LUDBRB(IPU5,IPU6,THECM,PHICM,DBLE(BEXCM),DBLE(BEYCM),
1492 IF(ISET(ISUB).EQ.11) THEN
1493 ELSEIF(IDOC.GE.8.AND.ISET(ISUB).NE.6) THEN
1494 C...Store colour connection indices.
1497 IF(KCS.EQ.-1) JC=3-J
1498 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
1499 & K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)
1500 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
1501 & K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)
1502 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
1503 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
1504 IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
1505 & MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
1508 C...Copy outgoing partons to documentation lines.
1510 IF(IDOC.EQ.9) IMAX=3
1512 I1=MINT(83)+IDOC-IMAX+I
1516 IF(IDOC.LE.9) K(I1,3)=0
1517 IF(IDOC.GE.11) K(I1,3)=MINT(83)+2+I
1523 ELSEIF(IDOC.EQ.9) THEN
1524 C...Store colour connection indices.
1527 IF(KCS.EQ.-1) JC=3-J
1528 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
1529 & K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)+
1530 & MAX(0,MIN(1,ICOL(KCC,1,JC)-2))
1531 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
1532 & K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)+
1533 & MAX(0,MIN(1,ICOL(KCC,2,JC)-2))
1534 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
1535 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
1536 IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU5,1).EQ.3) K(IPU5,J+3)=
1537 & MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
1540 C...Copy outgoing partons to documentation lines.
1542 I1=MINT(83)+IDOC-3+I
1553 C...Low-pT events: remove gluons used for string drawing purposes.
1555 K(IPU3,1)=K(IPU3,1)+10
1556 K(IPU4,1)=K(IPU4,1)+10
1561 DO 660 I=MINT(83)+5,MINT(83)+8