3 C*********************************************************************
5 SUBROUTINE PYDIFF_HIJING
7 C...Handles diffractive and elastic scattering.
8 #include "lujets_hijing.inc"
9 #include "ludat1_hijing.inc"
10 #include "pypars_hijing.inc"
11 #include "pyint1_hijing.inc"
13 C...Reset K, P and V vectors. Store incoming particles.
14 DO 100 JT=1,MSTP(126)+10
32 P(I,3)=VINT(5)*(-1)**(JT+1)
33 110 P(I,4)=SQRT(P(I,3)**2+P(I,5)**2)
36 C...Subprocess; kinematics.
38 SQLAM=(VINT(2)-VINT(63)-VINT(64))**2-4.*VINT(63)*VINT(64)
39 PZ=SQRT(SQLAM)/(2.*VINT(1))
42 PE=(VINT(2)+VINT(62+JT)-VINT(65-JT))/(2.*VINT(1))
44 C...Elastically scattered particle.
45 IF(MINT(16+JT).LE.0) THEN
50 P(N,3)=PZ*(-1)**(JT+1)
54 C...Diffracted particle: valence quark kicked out.
55 ELSEIF(MSTP(101).EQ.1) THEN
61 CALL PYSPLI_HIJING(K(I,2),21,K(N,2),K(N-1,2))
62 P(N-1,5)=ULMASS_HIJING(K(N-1,2))
63 P(N,5)=ULMASS_HIJING(K(N,2))
64 SQLAM=(VINT(62+JT)-P(N-1,5)**2-P(N,5)**2)**2-
65 & 4.*P(N-1,5)**2*P(N,5)**2
66 P(N-1,3)=(PE*SQRT(SQLAM)+PZ*(VINT(62+JT)+P(N-1,5)**2-
67 & P(N,5)**2))/(2.*VINT(62+JT))*(-1)**(JT+1)
68 P(N-1,4)=SQRT(P(N-1,3)**2+P(N-1,5)**2)
69 P(N,3)=PZ*(-1)**(JT+1)-P(N-1,3)
70 P(N,4)=SQRT(P(N,3)**2+P(N,5)**2)
72 C...Diffracted particle: gluon kicked out.
81 CALL PYSPLI_HIJING(K(I,2),21,K(N,2),K(N-2,2))
83 P(N-2,5)=ULMASS_HIJING(K(N-2,2))
85 P(N,5)=ULMASS_HIJING(K(N,2))
86 C...Energy distribution for particle into two jets.
88 IF(MOD(K(I,2)/1000,10).NE.0) IMB=2
90 IF(MSTP(92).LE.1) THEN
91 IF(IMB.EQ.1) CHI=RLU_HIJING(0)
92 IF(IMB.EQ.2) CHI=1.-SQRT(RLU_HIJING(0))
93 ELSEIF(MSTP(92).EQ.2) THEN
94 CHI=1.-RLU_HIJING(0)**(1./(1.+CHIK))
95 ELSEIF(MSTP(92).EQ.3) THEN
97 130 CHI=RLU_HIJING(0)**2
98 IF((CHI**2/(CHI**2+CUT**2))**0.25*(1.-CHI)**CHIK.LT.
99 & RLU_HIJING(0)) GOTO 130
102 CUTR=(1.+SQRT(1.+CUT**2))/CUT
103 140 CHIR=CUT*CUTR**RLU_HIJING(0)
104 CHI=(CHIR**2-CUT**2)/(2.*CHIR)
105 IF((1.-CHI)**CHIK.LT.RLU_HIJING(0)) GOTO 140
107 IF(CHI.LT.P(N,5)**2/VINT(62+JT).OR.CHI.GT.1.-P(N-2,5)**2/
108 & VINT(62+JT)) GOTO 120
109 SQM=P(N-2,5)**2/(1.-CHI)+P(N,5)**2/CHI
110 IF((SQRT(SQM)+PARJ(32))**2.GE.VINT(62+JT)) GOTO 120
111 PZI=(PE*(VINT(62+JT)-SQM)+PZ*(VINT(62+JT)+SQM))/
114 PQQP=(1.-CHI)*(PEI+PZI)
115 P(N-2,3)=0.5*(PQQP-P(N-2,5)**2/PQQP)*(-1)**(JT+1)
116 P(N-2,4)=SQRT(P(N-2,3)**2+P(N-2,5)**2)
117 P(N-1,3)=(PZ-PZI)*(-1)**(JT+1)
118 P(N-1,4)=ABS(P(N-1,3))
119 P(N,3)=PZI*(-1)**(JT+1)-P(N-2,3)
120 P(N,4)=SQRT(P(N,3)**2+P(N,5)**2)
123 C...Documentation lines.
125 IF(MINT(16+JT).EQ.0) K(I+2,2)=MINT(10+JT)
126 IF(MINT(16+JT).NE.0) K(I+2,2)=10*(MINT(10+JT)/10)
128 P(I+2,3)=PZ*(-1)**(JT+1)
130 P(I+2,5)=SQRT(VINT(62+JT))
133 C...Rotate outgoing partons/particles using cos(theta).
134 CALL LUDBRB_HIJING(MINT(83)+3,N,ACOS(VINT(23)),VINT(24),0D0,0D0