14 COMMON /leptou/ cut(14),lst(40),parl(30),
16 REAL cut,parl,
x,
y,w2,q2,u
20 COMMON /linter/ pari(50),ewqc(2,2,8),qc(8),zl(2,4),zq(2,8),pq(17)
21 REAL pari,ewqc,qc,zl,zq,pq
24 COMMON /lgrid/ nxx,nww,xx(31),ww(21),
pqg(31,21,3),pqqb(31,21,2),
25 &qgmax(31,21,3),qqbmax(31,21,2),ycut(31,21),xtot(31,21),
np
26 REAL xx,ww,
pqg,pqqb,qgmax,qqbmax,ycut,xtot
32 common/debug1/iw,ix,ih
37 INTEGER nout,nabove,nwarn,ih,ix,iw,
ip
39 REAL eps,xpmax,rq,pqsave,rtot,rqqb,rqg,
ulalps
41 REAL qg,qqb,w,xp,wd,xd,x1p,x2p,qgip,pq17,qtot,qqbip,qgqqb
42 REAL p27max,ycmin,ycmax
43 DATA nout,nabove/2*0/,nwarn/10/
48 IF(lst(19).GE.0.OR.lst(19).EQ.-10)
THEN
54 IF(
x.GT.xx(nxx).AND.
x.GT.0.999)
RETURN
55 IF(lst(19).LT.10.AND.sqrt(w2).LT.ww(1).AND.ww(1).LT.6.)
RETURN
60 IF(lst(19).GE.10.OR.lst(19).EQ.-10) w=
y
61 IF(
x.LT.xx(1).OR.
x.GT.xx(nxx).OR.
62 &w.LT.ww(1).OR.w.GT.ww(nww))
THEN
65 IF(lst(3).GE.1.AND.nout.LE.nwarn)
66 &
WRITE(6,1000)
x,w,int(pari(29)),nwarn
67 IF(
x.LT.xx(1)) xp=xx(1)
68 IF(
x.GT.xx(nxx)) xp=xx(nxx)
69 IF(w.LT.ww(1)) w=ww(1)
70 IF(w.GT.ww(nww)) w=ww(nww)
80 IF(xp.GT.xx(ix+1)) goto 100
83 IF(w.GT.ww(iw+1)) goto 200
84 wd=(w-ww(iw))/(ww(iw+1)-ww(iw))
85 xd=(xp-xx(ix))/(xx(ix+1)-xx(ix))
94 pari(15)=
max(qgmax(ix,iw,ih),qgmax(ix+1,iw+1,ih),
95 & qgmax(ix+1,iw,ih),qgmax(ix,iw+1,ih))
97 qg=qg+pari(23+
ip)*qgip
98 pari(14+
ip)=
max(qgmax(ix,iw,
ip),qgmax(ix+1,iw+1,
ip),
99 & qgmax(ix+1,iw,
ip),qgmax(ix,iw+1,
ip))
102 x1p=(pqqb(ix+1,iw,
ip)-pqqb(ix,iw,
ip))*xd+pqqb(ix,iw,
ip)
103 x2p=(pqqb(ix+1,iw+1,
ip)-pqqb(ix,iw+1,
ip))*xd+pqqb(ix,iw+1,
ip)
104 qqbip=(x2p-x1p)*wd+x1p
107 pari(18)=
max(qqbmax(ix,iw,ih),qqbmax(ix+1,iw+1,ih),
108 & qqbmax(ix+1,iw,ih),qqbmax(ix,iw+1,ih))
110 qqb=qqb+pari(23+
ip)*qqbip
111 pari(17+
ip)=
max(qqbmax(ix,iw,
ip),qqbmax(ix+1,iw+1,
ip),
112 & qqbmax(ix+1,iw,
ip),qqbmax(ix,iw+1,
ip))
118 x1p=(xtot(ix+1,iw)-xtot(ix,iw))*xd+xtot(ix,iw)
119 x2p=(xtot(ix+1,iw+1)-xtot(ix,iw+1))*xd+xtot(ix,iw+1)
120 pq17=(x2p-x1p)*wd+x1p
126 x1p=(ycut(ix+1,iw)-ycut(ix,iw))*xd+ycut(ix,iw)
127 x2p=(ycut(ix+1,iw+1)-ycut(ix,iw+1))*xd+ycut(ix,iw+1)
128 parl(27)=(x2p-x1p)*wd+x1p
133 IF(lst(19).GE.0)
THEN
134 IF(lst(33).EQ.-91)
THEN
144 IF(lst(3).GE.1.AND.nabove.LE.nwarn)
145 &
WRITE(6,1100) qg,qqb,
x,w,int(pari(29)),nwarn
151 IF(
max(ycut(ix,iw),ycut(ix+1,iw+1),
152 & ycut(ix+1,iw),ycut(ix,iw+1))-
153 &
min(ycut(ix,iw),ycut(ix+1,iw+1),
154 & ycut(ix+1,iw),ycut(ix,iw+1)).EQ.0.0)
THEN
158 parl(27)=
min(ycut(ix,iw),ycut(ix+1,iw+1),
159 & ycut(ix+1,iw),ycut(ix,iw+1))
167 IF(lst(19).LE.0)
THEN
181 IF(lst(19).GT.-10)
THEN
182 IF(lst(20).LE.1)
THEN
183 parl(27)=
max(parl(9)**2/w2,parl(8))
185 ELSEIF(lst(20).EQ.2)
THEN
186 parl(27)=
max(parl(9)**2/q2,parl(8))
188 ELSEIF(lst(20).GE.3.AND.lst(20).LE.5)
THEN
191 ELSEIF(lst(20).EQ.6)
THEN
196 IF(lst(20).LE.1)
THEN
198 ELSEIF(lst(20).EQ.2)
THEN
200 ELSEIF(lst(20).GE.3.AND.lst(20).LE.5)
THEN
202 ELSEIF(lst(20).EQ.6)
THEN
215 IF(lst(20).LE.1)
THEN
216 xpmin=dble(
x)/(1.d0-2.d0*(1.d0-dble(
x))*dble(parl(27)))
217 xpmax=dble(
x)/(dble(
x)+(1.d0-dble(
x))*dble(parl(27)))
218 ELSEIF(lst(20).EQ.2)
THEN
219 xpmin=dble(
x)/(1.d0-2.d0*dble(
x)*dble(parl(27)))
220 xpmax=1.d0/(1.d0+dble(parl(27)))
221 ELSEIF(lst(20).EQ.3.OR.lst(20).EQ.4)
THEN
223 xpmax=1./(1.+parl(9))
224 ELSEIF(lst(20).EQ.5)
THEN
226 xpmax=q2/(q2+parl(9))
227 ELSEIF(lst(20).EQ.6)
THEN
229 xpmax=q2/(q2+parl(27))
231 WRITE(6,*)
'LQCDPR: No such jet scheme!'
234 IF(xpmin.LT.
x.OR.xpmin.GT.1.) goto 40
235 IF(xpmin.GE.xpmax) goto 40
256 IF(rq.LT.0.AND.iycut.LT.10)
THEN
257 parl(27)=
min(1.1*exp(-2.0*rq)*parl(27),p27max)
260 ELSEIF(rq.LT.0.AND.iycut.GE.10)
THEN
272 ELSEIF(iycut.GE.2.AND.rq.GT.parl(13))
THEN
275 parl(27)=(ycmin+ycmax)/2.
282 IF(rq.LT.0.AND.iycut.LT.40)
THEN
284 parl(27)=(ycmin+ycmax)/2.
285 ELSEIF(rq.GT.parl(13).AND.iycut.LT.40)
THEN
287 parl(27)=(ycmin+ycmax)/2.
289 ELSEIF(iycut.GE.40)
THEN
291 WRITE(6,*)
'LQCDPR: Warning, PARL(27) not found.'
294 rqg=rqg/
max(1.0,rtot)
295 rqqb=rqqb/
max(1.0,rtot)
309 IF(lst(33).EQ.-91)
THEN
327 1000
FORMAT(
' Warning: x=',f7.4,
' or W/y=',f10.4,
' outside QCD grid',
328 &
' in event no.',i8,/,10
x,
329 &
'weight on limit of grid used. Only first',i5,
' warnings printed')
330 1100
FORMAT(
' Warning: Sum of QCD probabilities larger than unity ',
331 &
' QG, QQB =',2f8.4,/10
x,
'occurs at x, W/y =',2f10.4,
332 &
' in event no.',i8,/,10
x,
333 &
'Weights rescaled to unit sum. Only first',i5,
' warnings printed')