3 C*********************************************************************
5 SUBROUTINE PYSCAT_HIJING
7 C...Finds outgoing flavours and event type; sets up the kinematics
8 C...and colour flow of the hard scattering.
9 #include "lujets_hijing.inc"
10 #include "ludat1_hijing.inc"
11 #include "ludat2_hijing.inc"
12 #include "ludat3_hijing.inc"
13 #include "pysubs_hijing.inc"
14 #include "pypars_hijing.inc"
15 #include "pyint1_hijing.inc"
16 #include "pyint2_hijing.inc"
17 #include "pyint3_hijing.inc"
18 #include "pyint4_hijing.inc"
19 #include "pyint5_hijing.inc"
20 DIMENSION WDTP(0:40),WDTE(0:40,0:5),PMQ(2),Z(2),CTHE(2),PHI(2)
22 C...Choice of subprocess, number of documentation lines.
27 IF(IDOC.GE.9) IDOC=IDOC+2
36 C...Reset K, P and V vectors. Store incoming particles.
37 DO 100 JT=1,MSTP(126)+10
50 P(I,3)=VINT(5)*(-1)**(JT+1)
51 110 P(I,4)=SQRT(P(I,3)**2+P(I,5)**2)
55 C...Store incoming partons in their CM-frame.
61 IF(ISET(ISUB).GE.3) SHUSER=SHPR
67 120 P(I,5)=ULMASS_HIJING(K(I,2))
68 IF(P(IPU1,5)+P(IPU2,5).GE.SHUSER) THEN
72 P(IPU1,4)=0.5*(SHUSER+(P(IPU1,5)**2-P(IPU2,5)**2)/SHUSER)
73 P(IPU1,3)=SQRT(MAX(0.,P(IPU1,4)**2-P(IPU1,5)**2))
74 P(IPU2,4)=SHUSER-P(IPU1,4)
77 C...Copy incoming partons to documentation lines.
87 C...Choose new quark flavour for relevant annihilation graphs.
88 IF(ISUB.EQ.12.OR.ISUB.EQ.53) THEN
89 CALL PYWIDT_HIJING(21,SHR,WDTP,WDTE)
90 RKFL=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))*RLU_HIJING(0)
93 RKFL=RKFL-(WDTE(I,1)+WDTE(I,2)+WDTE(I,4))
94 IF(RKFL.LE.0.) GOTO 150
99 C...Final state flavours and colour flow: default values.
106 KCS=ISIGN(1,MINT(15))
110 C...f + fb -> gamma*/Z0.
113 ELSEIF(ISUB.EQ.2) THEN
114 C...f + fb' -> W+/- .
115 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
116 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
117 KFRES=ISIGN(24,KCH1+KCH2)
119 ELSEIF(ISUB.EQ.3) THEN
123 ELSEIF(ISUB.EQ.4) THEN
124 C...gamma + W+/- -> W+/-.
126 ELSEIF(ISUB.EQ.5) THEN
131 PMQ(1)=ULMASS_HIJING(MINT(21))
132 PMQ(2)=ULMASS_HIJING(MINT(22))
133 240 JT=INT(1.5+RLU_HIJING(0))
135 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
137 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU_HIJING(0)
138 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
139 & (1.-XH)**2/(4.*XH)*RLU_HIJING(0)) GOTO 240
140 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
141 IF(SQC1.LT.1.E-8) GOTO 240
143 C2=1.+2.*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
144 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
145 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
146 Z(3-JT)=1.-XH/(1.-Z(JT))
147 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
148 IF(SQC1.LT.1.E-8) GOTO 240
150 C2=1.+2.*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
151 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
152 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
153 PHIR=PARU(2)*RLU_HIJING(0)
155 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
157 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
158 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
159 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
161 ZMIN=2.*PMQ(3-JT)/SHPR
162 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
164 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 240
168 ELSEIF(ISUB.EQ.6) THEN
169 C...Z0 + W+/- -> W+/-.
171 ELSEIF(ISUB.EQ.7) THEN
174 ELSEIF(ISUB.EQ.8) THEN
181 RVCKM=VINT(180+I)*RLU_HIJING(0)
186 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 270
187 MINT(20+JT)=ISIGN(IB,I)
188 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
189 IF(RVCKM.LE.0.) GOTO 280
192 IB=2*((IA+1)/2)-1+MOD(IA,2)
193 MINT(20+JT)=ISIGN(IB,I)
195 280 PMQ(JT)=ULMASS_HIJING(MINT(20+JT))
196 JT=INT(1.5+RLU_HIJING(0))
198 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
200 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU_HIJING(0)
201 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
202 & (1.-XH)**2/(4.*XH)*RLU_HIJING(0)) GOTO 250
203 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
204 IF(SQC1.LT.1.E-8) GOTO 250
206 C2=1.+2.*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
207 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
208 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
209 Z(3-JT)=1.-XH/(1.-Z(JT))
210 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
211 IF(SQC1.LT.1.E-8) GOTO 250
213 C2=1.+2.*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
214 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
215 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
216 PHIR=PARU(2)*RLU_HIJING(0)
218 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
220 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
221 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
222 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
224 ZMIN=2.*PMQ(3-JT)/SHPR
225 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
227 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 250
232 ELSEIF(ISUB.LE.20) THEN
234 C...f + f' -> f + f'; th = (p(f)-p(f))**2.
236 IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
238 ELSEIF(ISUB.EQ.12) THEN
239 C...f + fb -> f' + fb'; th = (p(f)-p(f'))**2.
240 MINT(21)=ISIGN(KFLQ,MINT(15))
244 ELSEIF(ISUB.EQ.13) THEN
245 C...f + fb -> g + g; th arbitrary.
250 ELSEIF(ISUB.EQ.14) THEN
251 C...f + fb -> g + gam; th arbitrary.
252 IF(RLU_HIJING(0).GT.0.5) JS=2
257 ELSEIF(ISUB.EQ.15) THEN
258 C...f + fb -> g + Z0; th arbitrary.
259 IF(RLU_HIJING(0).GT.0.5) JS=2
264 ELSEIF(ISUB.EQ.16) THEN
265 C...f + fb' -> g + W+/-; th = (p(f)-p(W-))**2 or (p(fb')-p(W+))**2.
266 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
267 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
268 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
270 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
273 ELSEIF(ISUB.EQ.17) THEN
274 C...f + fb -> g + H0; th arbitrary.
275 IF(RLU_HIJING(0).GT.0.5) JS=2
280 ELSEIF(ISUB.EQ.18) THEN
281 C...f + fb -> gamma + gamma; th arbitrary.
285 ELSEIF(ISUB.EQ.19) THEN
286 C...f + fb -> gamma + Z0; th arbitrary.
287 IF(RLU_HIJING(0).GT.0.5) JS=2
291 ELSEIF(ISUB.EQ.20) THEN
292 C...f + fb' -> gamma + W+/-; th = (p(f)-p(W-))**2 or (p(fb')-p(W+))**2.
293 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
294 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
295 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
297 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
300 ELSEIF(ISUB.LE.30) THEN
302 C...f + fb -> gamma + H0; th arbitrary.
303 IF(RLU_HIJING(0).GT.0.5) JS=2
307 ELSEIF(ISUB.EQ.22) THEN
308 C...f + fb -> Z0 + Z0; th arbitrary.
312 ELSEIF(ISUB.EQ.23) THEN
313 C...f + fb' -> Z0 + W+/-; th = (p(f)-p(W-))**2 or (p(fb')-p(W+))**2.
314 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
315 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
316 IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
318 MINT(23-JS)=ISIGN(24,KCH1+KCH2)
320 ELSEIF(ISUB.EQ.24) THEN
321 C...f + fb -> Z0 + H0; th arbitrary.
322 IF(RLU_HIJING(0).GT.0.5) JS=2
326 ELSEIF(ISUB.EQ.25) THEN
327 C...f + fb -> W+ + W-; th = (p(f)-p(W-))**2.
328 MINT(21)=-ISIGN(24,MINT(15))
331 ELSEIF(ISUB.EQ.26) THEN
332 C...f + fb' -> W+/- + H0; th = (p(f)-p(W-))**2 or (p(fb')-p(W+))**2.
333 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
334 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
335 IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
336 MINT(20+JS)=ISIGN(24,KCH1+KCH2)
339 ELSEIF(ISUB.EQ.27) THEN
340 C...f + fb -> H0 + H0.
342 ELSEIF(ISUB.EQ.28) THEN
343 C...f + g -> f + g; th = (p(f)-p(f))**2.
345 IF(MINT(15).EQ.21) KCC=KCC+2
346 IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
347 IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
349 ELSEIF(ISUB.EQ.29) THEN
350 C...f + g -> f + gamma; th = (p(f)-p(f))**2.
351 IF(MINT(15).EQ.21) JS=2
354 KCS=ISIGN(1,MINT(14+JS))
356 ELSEIF(ISUB.EQ.30) THEN
357 C...f + g -> f + Z0; th = (p(f)-p(f))**2.
358 IF(MINT(15).EQ.21) JS=2
361 KCS=ISIGN(1,MINT(14+JS))
364 ELSEIF(ISUB.LE.40) THEN
366 C...f + g -> f' + W+/-; th = (p(f)-p(f'))**2; choose flavour f'.
367 IF(MINT(15).EQ.21) JS=2
370 MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
371 RVCKM=VINT(180+I)*RLU_HIJING(0)
376 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 220
377 MINT(20+JS)=ISIGN(IB,I)
378 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
379 IF(RVCKM.LE.0.) GOTO 230
382 KCS=ISIGN(1,MINT(14+JS))
384 ELSEIF(ISUB.EQ.32) THEN
385 C...f + g -> f + H0; th = (p(f)-p(f))**2.
386 IF(MINT(15).EQ.21) JS=2
389 KCS=ISIGN(1,MINT(14+JS))
391 ELSEIF(ISUB.EQ.33) THEN
392 C...f + gamma -> f + g.
394 ELSEIF(ISUB.EQ.34) THEN
395 C...f + gamma -> f + gamma.
397 ELSEIF(ISUB.EQ.35) THEN
398 C...f + gamma -> f + Z0.
400 ELSEIF(ISUB.EQ.36) THEN
401 C...f + gamma -> f' + W+/-.
403 ELSEIF(ISUB.EQ.37) THEN
404 C...f + gamma -> f + H0.
406 ELSEIF(ISUB.EQ.38) THEN
409 ELSEIF(ISUB.EQ.39) THEN
410 C...f + Z0 -> f + gamma.
412 ELSEIF(ISUB.EQ.40) THEN
413 C...f + Z0 -> f + Z0.
416 ELSEIF(ISUB.LE.50) THEN
418 C...f + Z0 -> f' + W+/-.
420 ELSEIF(ISUB.EQ.42) THEN
421 C...f + Z0 -> f + H0.
423 ELSEIF(ISUB.EQ.43) THEN
424 C...f + W+/- -> f' + g.
426 ELSEIF(ISUB.EQ.44) THEN
427 C...f + W+/- -> f' + gamma.
429 ELSEIF(ISUB.EQ.45) THEN
430 C...f + W+/- -> f' + Z0.
432 ELSEIF(ISUB.EQ.46) THEN
433 C...f + W+/- -> f' + W+/-.
435 ELSEIF(ISUB.EQ.47) THEN
436 C...f + W+/- -> f' + H0.
438 ELSEIF(ISUB.EQ.48) THEN
441 ELSEIF(ISUB.EQ.49) THEN
442 C...f + H0 -> f + gamma.
444 ELSEIF(ISUB.EQ.50) THEN
445 C...f + H0 -> f + Z0.
448 ELSEIF(ISUB.LE.60) THEN
450 C...f + H0 -> f' + W+/-.
452 ELSEIF(ISUB.EQ.52) THEN
453 C...f + H0 -> f + H0.
455 ELSEIF(ISUB.EQ.53) THEN
456 C...g + g -> f + fb; th arbitrary.
457 KCS=(-1)**INT(1.5+RLU_HIJING(0))
458 MINT(21)=ISIGN(KFLQ,KCS)
462 ELSEIF(ISUB.EQ.54) THEN
463 C...g + gamma -> f + fb.
465 ELSEIF(ISUB.EQ.55) THEN
466 C...g + Z0 -> f + fb.
468 ELSEIF(ISUB.EQ.56) THEN
469 C...g + W+/- -> f + fb'.
471 ELSEIF(ISUB.EQ.57) THEN
472 C...g + H0 -> f + fb.
474 ELSEIF(ISUB.EQ.58) THEN
475 C...gamma + gamma -> f + fb.
477 ELSEIF(ISUB.EQ.59) THEN
478 C...gamma + Z0 -> f + fb.
480 ELSEIF(ISUB.EQ.60) THEN
481 C...gamma + W+/- -> f + fb'.
484 ELSEIF(ISUB.LE.70) THEN
486 C...gamma + H0 -> f + fb.
488 ELSEIF(ISUB.EQ.62) THEN
489 C...Z0 + Z0 -> f + fb.
491 ELSEIF(ISUB.EQ.63) THEN
492 C...Z0 + W+/- -> f + fb'.
494 ELSEIF(ISUB.EQ.64) THEN
495 C...Z0 + H0 -> f + fb.
497 ELSEIF(ISUB.EQ.65) THEN
498 C...W+ + W- -> f + fb.
500 ELSEIF(ISUB.EQ.66) THEN
501 C...W+/- + H0 -> f + fb'.
503 ELSEIF(ISUB.EQ.67) THEN
504 C...H0 + H0 -> f + fb.
506 ELSEIF(ISUB.EQ.68) THEN
507 C...g + g -> g + g; th arbitrary.
509 KCS=(-1)**INT(1.5+RLU_HIJING(0))
511 ELSEIF(ISUB.EQ.69) THEN
512 C...gamma + gamma -> W+ + W-.
514 ELSEIF(ISUB.EQ.70) THEN
515 C...gamma + W+/- -> gamma + W+/-
518 ELSEIF(ISUB.LE.80) THEN
519 IF(ISUB.EQ.71.OR.ISUB.EQ.72) THEN
520 C...Z0 + Z0 -> Z0 + Z0; Z0 + Z0 -> W+ + W-.
524 PMQ(1)=ULMASS_HIJING(MINT(21))
525 PMQ(2)=ULMASS_HIJING(MINT(22))
526 290 JT=INT(1.5+RLU_HIJING(0))
528 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
530 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU_HIJING(0)
531 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
532 & (1.-XH)**2/(4.*XH)*RLU_HIJING(0)) GOTO 290
533 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
534 IF(SQC1.LT.1.E-8) GOTO 290
536 C2=1.+2.*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
537 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
538 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
539 Z(3-JT)=1.-XH/(1.-Z(JT))
540 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
541 IF(SQC1.LT.1.E-8) GOTO 290
543 C2=1.+2.*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
544 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
545 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
546 PHIR=PARU(2)*RLU_HIJING(0)
548 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
550 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
551 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
552 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
554 ZMIN=2.*PMQ(3-JT)/SHPR
555 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
557 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 290
560 ELSEIF(ISUB.EQ.73) THEN
561 C...Z0 + W+/- -> Z0 + W+/-.
563 300 JT=INT(1.5+RLU_HIJING(0))
567 RVCKM=VINT(180+I)*RLU_HIJING(0)
572 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 320
573 MINT(20+JT)=ISIGN(IB,I)
574 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
575 IF(RVCKM.LE.0.) GOTO 330
578 IB=2*((IA+1)/2)-1+MOD(IA,2)
579 MINT(20+JT)=ISIGN(IB,I)
581 330 PMQ(JT)=ULMASS_HIJING(MINT(20+JT))
582 MINT(23-JT)=MINT(17-JT)
583 PMQ(3-JT)=ULMASS_HIJING(MINT(23-JT))
584 JT=INT(1.5+RLU_HIJING(0))
586 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
588 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU_HIJING(0)
589 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
590 & (1.-XH)**2/(4.*XH)*RLU_HIJING(0)) GOTO 300
591 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
592 IF(SQC1.LT.1.E-8) GOTO 300
594 C2=1.+2.*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
595 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
596 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
597 Z(3-JT)=1.-XH/(1.-Z(JT))
598 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
599 IF(SQC1.LT.1.E-8) GOTO 300
601 C2=1.+2.*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
602 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
603 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
604 PHIR=PARU(2)*RLU_HIJING(0)
606 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
608 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
609 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
610 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
612 ZMIN=2.*PMQ(3-JT)/SHPR
613 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
615 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 300
618 ELSEIF(ISUB.EQ.74) THEN
619 C...Z0 + H0 -> Z0 + H0.
621 ELSEIF(ISUB.EQ.75) THEN
622 C...W+ + W- -> gamma + gamma.
624 ELSEIF(ISUB.EQ.76.OR.ISUB.EQ.77) THEN
625 C...W+ + W- -> Z0 + Z0; W+ + W- -> W+ + W-.
631 RVCKM=VINT(180+I)*RLU_HIJING(0)
636 IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 360
637 MINT(20+JT)=ISIGN(IB,I)
638 RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
639 IF(RVCKM.LE.0.) GOTO 370
642 IB=2*((IA+1)/2)-1+MOD(IA,2)
643 MINT(20+JT)=ISIGN(IB,I)
645 370 PMQ(JT)=ULMASS_HIJING(MINT(20+JT))
646 JT=INT(1.5+RLU_HIJING(0))
648 ZMAX=1.-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/(SHPR*(SHPR-PMQ(3-JT)))
650 Z(JT)=ZMIN+(ZMAX-ZMIN)*RLU_HIJING(0)
651 IF(-1.+(1.+XH)/(1.-Z(JT))-XH/(1.-Z(JT))**2.LT.
652 & (1.-XH)**2/(4.*XH)*RLU_HIJING(0)) GOTO 340
653 SQC1=1.-4.*PMQ(JT)**2/(Z(JT)**2*SHP)
654 IF(SQC1.LT.1.E-8) GOTO 340
656 C2=1.+2.*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
657 CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
658 CTHE(JT)=MIN(1.,MAX(-1.,CTHE(JT)))
659 Z(3-JT)=1.-XH/(1.-Z(JT))
660 SQC1=1.-4.*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
661 IF(SQC1.LT.1.E-8) GOTO 340
663 C2=1.+2.*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
664 CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2.*RLU_HIJING(0)-1.)*C1))/C1
665 CTHE(3-JT)=MIN(1.,MAX(-1.,CTHE(3-JT)))
666 PHIR=PARU(2)*RLU_HIJING(0)
668 ANG=CTHE(1)*CTHE(2)-SQRT(1.-CTHE(1)**2)*SQRT(1.-CTHE(2)**2)*CPHI
670 Z2=ANG*SQRT(Z(JT)**2-4.*PMQ(JT)**2/SHP)
671 Z3=1.-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
672 Z(3-JT)=2./(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
674 ZMIN=2.*PMQ(3-JT)/SHPR
675 ZMAX=1.-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
677 IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 340
680 ELSEIF(ISUB.EQ.78) THEN
681 C...W+/- + H0 -> W+/- + H0.
683 ELSEIF(ISUB.EQ.79) THEN
684 C...H0 + H0 -> H0 + H0.
687 ELSEIF(ISUB.LE.90) THEN
689 C...q + qb -> Q' + Qb'; th = (p(q)-p(q'))**2.
690 MINT(21)=ISIGN(MINT(46),MINT(15))
694 ELSEIF(ISUB.EQ.82) THEN
695 C...g + g -> Q + Qb; th arbitrary.
696 KCS=(-1)**INT(1.5+RLU_HIJING(0))
697 MINT(21)=ISIGN(MINT(46),KCS)
702 ELSEIF(ISUB.LE.100) THEN
704 C...Low-pT ( = energyless g + g -> g + g).
706 KCS=(-1)**INT(1.5+RLU_HIJING(0))
708 ELSEIF(ISUB.EQ.96) THEN
709 C...Multiple interactions (should be reassigned to QCD process).
712 ELSEIF(ISUB.LE.110) THEN
714 C...g + g -> gamma*/Z0.
718 ELSEIF(ISUB.EQ.102) THEN
724 ELSEIF(ISUB.LE.120) THEN
726 C...f + fb -> g + H0; th arbitrary.
727 IF(RLU_HIJING(0).GT.0.5) JS=2
732 ELSEIF(ISUB.EQ.112) THEN
733 C...f + g -> f + H0; th = (p(f) - p(f))**2.
734 IF(MINT(15).EQ.21) JS=2
737 KCS=ISIGN(1,MINT(14+JS))
739 ELSEIF(ISUB.EQ.113) THEN
740 C...g + g -> g + H0; th arbitrary.
741 IF(RLU_HIJING(0).GT.0.5) JS=2
744 KCS=(-1)**INT(1.5+RLU_HIJING(0))
746 ELSEIF(ISUB.EQ.114) THEN
747 C...g + g -> gamma + gamma; th arbitrary.
748 IF(RLU_HIJING(0).GT.0.5) JS=2
753 ELSEIF(ISUB.EQ.115) THEN
754 C...g + g -> gamma + Z0.
756 ELSEIF(ISUB.EQ.116) THEN
757 C...g + g -> Z0 + Z0.
759 ELSEIF(ISUB.EQ.117) THEN
760 C...g + g -> W+ + W-.
763 ELSEIF(ISUB.LE.140) THEN
765 C...g + g -> f + fb + H0.
768 ELSEIF(ISUB.LE.160) THEN
770 C...f + fb -> gamma*/Z0/Z'0.
773 ELSEIF(ISUB.EQ.142) THEN
775 KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
776 KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
777 KFRES=ISIGN(37,KCH1+KCH2)
779 ELSEIF(ISUB.EQ.143) THEN
781 KFRES=ISIGN(40,MINT(15)+MINT(16))
786 C...g + f -> H+/- + f'; th = (p(f)-p(f))**2.
787 IF(MINT(16).EQ.21) JS=2
789 MINT(20+JS)=ISIGN(37,KCHG(IA,1)*MINT(17-JS))
790 JA=IA+MOD(IA,2)-MOD(IA+1,2)
791 MINT(23-JS)=ISIGN(JA,MINT(17-JS))
793 IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
794 IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
799 C...Resonance not decaying: store colour connection indices.
818 ELSEIF(IDOC.EQ.8) THEN
819 C...2 -> 2 processes: store outgoing partons in their CM-frame.
823 IF(IABS(MINT(20+JT)).LE.10.OR.MINT(20+JT).EQ.21) K(I,1)=3
825 K(I,3)=MINT(83)+IDOC+JT-2
826 IF(IABS(K(I,2)).LE.10.OR.K(I,2).EQ.21) THEN
827 P(I,5)=ULMASS_HIJING(K(I,2))
829 P(I,5)=SQRT(VINT(63+MOD(JS+JT,2)))
832 IF(P(IPU3,5)+P(IPU4,5).GE.SHR) THEN
835 IF((KFA1.GT.3.AND.KFA1.NE.21).OR.(KFA2.GT.3.AND.KFA2.NE.21))
843 P(IPU3,4)=0.5*(SHR+(P(IPU3,5)**2-P(IPU4,5)**2)/SHR)
844 P(IPU3,3)=SQRT(MAX(0.,P(IPU3,4)**2-P(IPU3,5)**2))
845 P(IPU4,4)=SHR-P(IPU3,4)
851 C...Rotate outgoing partons using cos(theta)=(th-uh)/lam(sh,sqm3,sqm4).
852 CALL LUDBRB_HIJING(IPU3,IPU4,ACOS(VINT(23)),VINT(24),0D0,0D0,0D0
855 ELSEIF(IDOC.EQ.9) THEN
856 C'''2 -> 3 processes:
858 ELSEIF(IDOC.EQ.11) THEN
859 C...Z0 + Z0 -> H0, W+ + W- -> H0: store Higgs and outgoing partons.
860 PHI(1)=PARU(2)*RLU_HIJING(0)
865 IF(IABS(MINT(20+JT)).LE.10.OR.MINT(20+JT).EQ.21) K(I,1)=3
867 K(I,3)=MINT(83)+IDOC+JT-2
868 P(I,5)=ULMASS_HIJING(K(I,2))
869 IF(0.5*SHPR*Z(JT).LE.P(I,5)) P(I,5)=0.
870 PABS=SQRT(MAX(0.,(0.5*SHPR*Z(JT))**2-P(I,5)**2))
871 PTABS=PABS*SQRT(MAX(0.,1.-CTHE(JT)**2))
872 P(I,1)=PTABS*COS(PHI(JT))
873 P(I,2)=PTABS*SIN(PHI(JT))
874 P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
875 P(I,4)=0.5*SHPR*Z(JT)
879 IF(ISUB.EQ.8) K(IZW,2)=ISIGN(24,LUCHGE_HIJING(MINT(14+JT)))
883 P(IZW,3)=(0.5*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
884 P(IZW,4)=0.5*SHPR*(1.-Z(JT))
885 400 P(IZW,5)=-SQRT(MAX(0.,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
891 P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
892 P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
893 P(IPU5,3)=-P(IPU3,3)-P(IPU4,3)
894 P(IPU5,4)=SHPR-P(IPU3,4)-P(IPU4,4)
902 ELSEIF(IDOC.EQ.12) THEN
903 C...Z0 and W+/- scattering: store bosons and outgoing partons.
904 PHI(1)=PARU(2)*RLU_HIJING(0)
909 IF(IABS(MINT(20+JT)).LE.10.OR.MINT(20+JT).EQ.21) K(I,1)=3
911 K(I,3)=MINT(83)+IDOC+JT-2
912 P(I,5)=ULMASS_HIJING(K(I,2))
913 IF(0.5*SHPR*Z(JT).LE.P(I,5)) P(I,5)=0.
914 PABS=SQRT(MAX(0.,(0.5*SHPR*Z(JT))**2-P(I,5)**2))
915 PTABS=PABS*SQRT(MAX(0.,1.-CTHE(JT)**2))
916 P(I,1)=PTABS*COS(PHI(JT))
917 P(I,2)=PTABS*SIN(PHI(JT))
918 P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
919 P(I,4)=0.5*SHPR*Z(JT)
922 IF(MINT(14+JT).EQ.MINT(20+JT)) THEN
925 K(IZW,2)=ISIGN(24,LUCHGE_HIJING(MINT(14+JT))
926 $ -LUCHGE_HIJING(MINT(20+JT)))
931 P(IZW,3)=(0.5*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
932 P(IZW,4)=0.5*SHPR*(1.-Z(JT))
933 P(IZW,5)=-SQRT(MAX(0.,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
936 K(IPU,2)=KFPR(ISUB,JT)
937 K(IPU,3)=MINT(83)+8+JT
938 IF(IABS(K(IPU,2)).LE.10.OR.K(IPU,2).EQ.21) THEN
939 P(IPU,5)=ULMASS_HIJING(K(IPU,2))
941 P(IPU,5)=SQRT(VINT(63+MOD(JS+JT,2)))
945 IF(ISUB.EQ.72) K(MINT(84)+4+INT(1.5+RLU_HIJING(0)),2)=-24
946 C...Find rotation and boost for hard scattering subsystem.
949 BEXCM=(P(I1,1)+P(I2,1))/(P(I1,4)+P(I2,4))
950 BEYCM=(P(I1,2)+P(I2,2))/(P(I1,4)+P(I2,4))
951 BEZCM=(P(I1,3)+P(I2,3))/(P(I1,4)+P(I2,4))
952 GAMCM=(P(I1,4)+P(I2,4))/SHR
953 BEPCM=BEXCM*P(I1,1)+BEYCM*P(I1,2)+BEZCM*P(I1,3)
954 PX=P(I1,1)+GAMCM*(GAMCM/(1.+GAMCM)*BEPCM-P(I1,4))*BEXCM
955 PY=P(I1,2)+GAMCM*(GAMCM/(1.+GAMCM)*BEPCM-P(I1,4))*BEYCM
956 PZ=P(I1,3)+GAMCM*(GAMCM/(1.+GAMCM)*BEPCM-P(I1,4))*BEZCM
957 THECM=ULANGL_HIJING(PZ,SQRT(PX**2+PY**2))
958 PHICM=ULANGL_HIJING(PX,PY)
959 C...Store hard scattering subsystem. Rotate and boost it.
960 SQLAM=(SH-P(IPU5,5)**2-P(IPU6,5)**2)**2-4.*P(IPU5,5)**2*
962 PABS=SQRT(MAX(0.,SQLAM/(4.*SH)))
964 STHWZ=SQRT(MAX(0.,1.-CTHWZ**2))
966 P(IPU5,1)=PABS*STHWZ*COS(PHIWZ)
967 P(IPU5,2)=PABS*STHWZ*SIN(PHIWZ)
969 P(IPU5,4)=SQRT(PABS**2+P(IPU5,5)**2)
973 P(IPU6,4)=SQRT(PABS**2+P(IPU6,5)**2)
974 CALL LUDBRB_HIJING(IPU5,IPU6,THECM,PHICM,DBLE(BEXCM),DBLE(BEYCM)
989 C...Store colour connection indices.
993 IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
994 & K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)
995 IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
996 & K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)
997 IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
998 & MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
999 440 IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
1000 & MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
1002 C...Copy outgoing partons to documentation lines.
1004 I1=MINT(83)+IDOC-2+I
1008 IF(IDOC.LE.9) K(I1,3)=0
1009 IF(IDOC.GE.11) K(I1,3)=MINT(83)+2+I
1015 C...Low-pT events: remove gluons used for string drawing purposes.
1017 K(IPU3,1)=K(IPU3,1)+10
1018 K(IPU4,1)=K(IPU4,1)+10
1021 DO 470 I=MINT(83)+5,MINT(83)+8