10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
14 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
18 DATA zhut/3.0922d0, 6.2291d0, 7.4782d0, 7.8440d0, 8.2560d0/
21 IF(mstj(101).EQ.0.OR.mstj(101).EQ.5)
THEN
25 ELSEIF(mstj(109).EQ.0.OR.mstj(109).EQ.2)
THEN
27 IF(mstj(109).EQ.2) cf=1d0
28 IF(mstj(111).EQ.0)
THEN
31 ELSEIF(mstu(111).EQ.0)
THEN
32 parj(169)=min(1d0,parj(129))
34 parj(168)=min(1d0,
max(parj(128),exp(-12d0*paru(1)/
35 & ((33d0-2d0*mstu(112))*paru(111)))))
38 parj(169)=min(1d0,
max(parj(129),(2d0*paru(112)/ecm)**2))
40 parj(168)=min(1d0,
max(parj(128),paru(112)/ecm,
41 & (2d0*paru(112)/ecm)**2))
46 alspi=(3d0/4d0)*cf*
pyalps(q2r)/paru(1)
47 IF(iabs(mstj(101)).EQ.1)
THEN
49 ELSEIF(mstj(109).EQ.0)
THEN
50 rqcd=1d0+alspi+(1.986d0-0.115d0*mstu(118))*alspi**2
51 IF(mstj(111).EQ.1) rqcd=
max(1d0,rqcd+
52 & (33d0-2d0*mstu(112))/12d0*
log(parj(168))*alspi**2)
54 rqcd=1d0+alspi-(3d0/32d0+0.519d0*mstu(118))*(4d0*alspi/3d0)**2
58 alspi=(3d0/4d0)*cf*
pyalps(q2)/paru(1)
59 cut=
max(0.001d0,parj(125),(parj(126)/ecm)**2)
60 IF(iabs(mstj(101)).LE.1.OR.(mstj(109).EQ.0.AND.mstj(111).EQ.0))
61 & cut=
max(cut,exp(-sqrt(0.75d0/alspi))/2d0)
62 IF(mstj(110).EQ.2) cut=
max(0.01d0,min(0.05d0,cut))
65 100
IF(mstj(101).EQ.0.OR.cut.GE.0.25d0)
THEN
68 parj(152)=(2d0*alspi/3d0)*((3d0-6d0*cut+2d0*
log(cut))*
69 &
log(cut/(1d0-2d0*cut))+(2.5d0+1.5d0*cut-6.571d0)*
70 & (1d0-3d0*cut)+5.833d0*(1d0-3d0*cut)**2-3.894d0*
71 & (1d0-3d0*cut)**3+1.342d0*(1d0-3d0*cut)**4)/rqcd
72 IF(mstj(109).EQ.2.AND.(mstj(101).EQ.2.OR.mstj(101).LE.-2))
77 IF(iabs(mstj(101)).LE.1.OR.mstj(101).EQ.3.OR.mstj(109).EQ.2.OR.
80 ELSEIF(mstj(110).LE.1)
THEN
82 parj(153)=alspi**2*ct**2*(2.419d0+0.5989d0*ct+0.6782d0*ct**2-
83 & 0.2661d0*ct**3+0.01159d0*ct**4)/rqcd
86 ELSEIF(mstj(110).EQ.2)
THEN
89 IF(abs(cut-0.01d0*iy).LT.0.0001d0) iza=iy
95 zhurat=zhut(iz)+(100d0*cut-iz)*(zhut(iz+1)-zhut(iz))
97 parj(153)=alspi*parj(152)*zhurat
101 IF(mstj(111).EQ.1.AND.iabs(mstj(101)).GE.2.AND.mstj(101).NE.3
102 & .AND.cut.LT.0.25d0) parj(153)=parj(153)+
103 & (33d0-2d0*mstu(112))/12d0*
log(parj(169))*alspi*parj(152)
106 IF(iabs(mstj(101)).LE.1.OR.cut.GE.0.125d0)
THEN
110 IF(cut.LE.0.018d0)
THEN
111 xqqgg=6.349d0-4.330d0*ct+0.8304d0*ct**2
112 IF(mstj(109).EQ.2) xqqgg=(4d0/3d0)**2*(3.035d0-2.091d0*ct+
114 xqqqq=1.25d0*(-0.1080d0+0.01486d0*ct+0.009364d0*ct**2)
115 IF(mstj(109).EQ.2) xqqqq=8d0*xqqqq
117 xqqgg=-0.09773d0+0.2959d0*ct-0.2764d0*ct**2+0.08832d0*ct**3
118 IF(mstj(109).EQ.2) xqqgg=(4d0/3d0)**2*(-0.04079d0+
119 & 0.1340d0*ct-0.1326d0*ct**2+0.04365d0*ct**3)
120 xqqqq=1.25d0*(0.003661d0-0.004888d0*ct-0.001081d0*ct**2+
122 IF(mstj(109).EQ.2) xqqqq=8d0*xqqqq
124 parj(154)=alspi**2*ct**2*(xqqgg+xqqqq)/rqcd
125 parj(155)=xqqqq/(xqqgg+xqqqq)
129 IF(mstj(111).EQ.1.AND.parj(152)+parj(153).LT.0d0.AND.
130 & parj(169).LT.0.99d0)
THEN
131 parj(169)=min(1d0,1.2d0*parj(169))
133 alspi=(3d0/4d0)*cf*
pyalps(q2)/paru(1)
138 IF(parj(152)+parj(153)+parj(154).GE.1)
THEN
139 IF(mstj(110).EQ.2.AND.cut.GT.0.0499d0.AND.mstj(111).EQ.1.AND.
140 & parj(169).LT.0.99d0)
THEN
141 parj(169)=min(1d0,1.2d0*parj(169))
143 alspi=(3d0/4d0)*cf*
pyalps(q2)/paru(1)
145 ELSEIF(mstj(110).EQ.2.AND.cut.GT.0.0499d0)
THEN
147 &
'(PYXJET:) no allowed y cut value for Zhu parametrization')
149 cut=0.26d0*(4d0*cut)**(parj(152)+parj(153)+
150 & parj(154))**(-1d0/3d0)
151 IF(mstj(110).EQ.2) cut=
max(0.01d0,min(0.05d0,cut))
157 alspi=
pyalps(ecm**2)/paru(1)
158 cut=
max(0.001d0,parj(125),(parj(126)/ecm)**2,exp(-3d0/alspi))
160 IF(cut.LT.0.25d0) parj(152)=(alspi/3d0)*((1d0-2d0*cut)*
161 &
log((1d0-2d0*cut)/cut)+0.5d0*(9d0*cut**2-1d0))
168 IF(mstj(101).EQ.0.OR.mstj(101).EQ.5)
THEN
170 ELSEIF(mstj(101).LE.0)
THEN
171 njet=min(4,2-mstj(101))
175 IF(parj(152)+parj(153)+parj(154).GT.rnj) njet=3
176 IF(parj(154).GT.rnj) njet=4