15 COMMON /leptou/ cut(14),lst(40),parl(30),
16 & xlp,ylp,w2lp,q2lp,ulp
17 REAL cut,parl,xlp,ylp,w2lp,q2lp,ulp
23 common/lujets/
n,
k(nlupdm,5),
p(nlupdm,nplbuf),
v(nlupdm,5)
28 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
33 COMMON /pypara/ ipy(80),pypar(80),pyvar(80)
42 COMMON /lyproc/ isub,kfl(3,2),
x(2),sh,th,uh,q2,xsec(0:40)
43 REAL x,sh,th,uh,q2,xsec
48 INTEGER ipu1,ipu2,kflch,kflsp,ipu,iq,ilep,
ip,ns,i,j,
49 +jt,ifls,imin,imax,
is,kfi2,ntry
51 REAL chi,pms,robo,pei,pe,pzi,pz,shs,pzh,peh,ptspl,
52 +phispl,shr,pmmin,pw1,pef,pzf,
pt2,shh,phipt,rqp,sinth,
55 dimension kflch(2),kflsp(2),chi(2),pms(6),
is(2),robo(5)
56 DOUBLE PRECISION dbetax,dbetaz,drobo(5)
57 DATA ipu,iq/0,0/,pei,pe,pzi,pz,shs,pzh,peh/7*0./
60 IF(ipu1.EQ.0.AND.ipu2.EQ.0)
RETURN
84 CALL
lprikt(parl(3),ptspl,phispl)
85 p(i,1)=ptspl*
cos(phispl)
86 p(i,2)=ptspl*sin(phispl)
87 pms(i-2)=
p(i,5)**2+
p(i,1)**2+
p(i,2)**2
92 shs=(1.-
x(5-i))*q2/
x(5-i)+pyvar(7-i)**2
97 IF(ilep.EQ.0) shs=pyvar(31)*pyvar(32)*pyvar(2)+
98 &(
p(3,1)+
p(4,1))**2+(
p(3,2)+
p(4,2))**2
101 IF((shs-pms(1)-pms(2))**2-4.*pms(1)*pms(2).LE.0.) goto 100
102 p(3,4)=0.5*(shr+(pms(1)-pms(2))/shr)
103 p(3,3)=sqrt(
max(0.,
p(3,4)**2-pms(1)))
106 ELSEIF(ilep.EQ.1)
THEN
111 ELSEIF(ilep.EQ.2)
THEN
122 drobo(3)=(
p(3,1)+
p(4,1))/shr
123 drobo(4)=(
p(3,2)+
p(4,2))/shr
124 CALL ludbrb(mstu(1),mstu(2),0.,0.,-drobo(3),-drobo(4),0.d0)
126 CALL ludbrb(mstu(1),mstu(2),0.,-robo(2),0.d0,0.d0,0.d0)
128 CALL ludbrb(mstu(1),mstu(2),-robo(1),0.,0.d0,0.d0,0.d0)
129 mstu(2)=
max(ipy(47),ipu1,ipu2)
130 CALL ludbrb(mstu(1),mstu(2),
131 & robo(1),robo(2),drobo(3),drobo(4),0.d0)
132 drobo(5)=
max(-0.999999,
min(0.999999,(pyvar(31)-pyvar(32))/
133 & (pyvar(31)+pyvar(32))))
134 CALL ludbrb(mstu(1),mstu(2),0.,0.,0.d0,0.d0,drobo(5))
142 IF(ipy(12).LE.0.OR.isub.EQ.7) pyvar(33)=0.
143 IF(ipy(12).LE.0.OR.isub.EQ.7) pyvar(34)=0.
144 peh=
p(3,4)+
p(4,4)+0.5*pyvar(1)*(pyvar(33)+pyvar(34))
145 pzh=
p(3,3)+
p(4,3)+0.5*pyvar(1)*(pyvar(33)-pyvar(34))
146 shh=(pyvar(1)-peh)**2-(
p(3,1)+
p(4,1))**2-(
p(3,2)+
p(4,2))**2-
152 pmmin=
p(1,5)+
p(2,5)+amk32+amk42
153 IF(shr.GE.pyvar(1).OR.shh.LE.(pmmin+pypar(12))**2)
THEN
157 shr=sqrt(shh+(
p(3,1)+
p(4,1))**2+(
p(3,2)+
p(4,2))**2)
161 pms(ilep)=
max(0.,pei**2-pzi**2+
p(5-ilep,1)**2+
p(5-ilep,2)**2)
163 pmmin=
p(3-ilep,5)+
ulmass(
k(5-ilep,2))+sqrt(pms(ilep))
164 IF(shr.LE.pmmin+pypar(12))
THEN
184 IF(jt.EQ.ilep) goto 160
187 CALL
lyspli(ipy(40+jt),kfl(1,jt),kflch(jt),kflsp(jt))
198 p(i,5)=
p(i,5)-2.*parl(20)
199 ELSEIF (1.LE.kfi2 .AND. kfi2.LE.6)
THEN
200 p(i,5)=
p(i,5)-parl(20)
207 IF(ipy(34).GE.1)
k(i+1,2)=1000+jt
210 IF(kflsp(jt).EQ.21)
THEN
215 k(i,4)=ipu+ipu*mstu(5)
216 k(i,5)=ipu+ipu*mstu(5)
217 k(ipu,4)=mod(
k(ipu,4),mstu(5))+i*mstu(5)
218 k(ipu,5)=mod(
k(ipu,5),mstu(5))+i*mstu(5)
220 ifls=(3-isign(1,kflsp(jt)*(1102-iabs(kflsp(jt)))))/2
224 k(ipu,6-ifls)=mod(
k(ipu,6-ifls),mstu(5))+i*mstu(5)
226 IF(kflch(jt).EQ.0)
THEN
229 pms(jt)=
p(i,5)**2+
p(i,1)**2+
p(i,2)**2
233 CALL
lprikt(parl(14),ptspl,phispl)
235 CALL
lremh(0,ptspl,kflsp(jt),kflch(jt),chi(jt))
236 p(i,1)=-
p(jt+2,1)*(1.-chi(jt))+ptspl*
cos(phispl)
237 p(i,2)=-
p(jt+2,2)*(1.-chi(jt))+ptspl*sin(phispl)
238 pms(jt+2)=
p(i,5)**2+
p(i,1)**2+
p(i,2)**2
253 p(i,5)=
p(i,5)-2.*parl(20)
254 ELSEIF (1.LE.kfi2 .AND. kfi2.LE.6)
THEN
255 p(i,5)=
p(i,5)-parl(20)
258 p(i,1)=-
p(jt+2,1)*chi(jt)-ptspl*
cos(phispl)
259 p(i,2)=-
p(jt+2,2)*chi(jt)-ptspl*sin(phispl)
260 pms(jt+4)=
p(i,5)**2+
p(i,1)**2+
p(i,2)**2
262 pms(jt)=pms(jt+4)/chi(jt)+pms(jt+2)/(1.-chi(jt))
266 IF(ipy(34).GE.1)
k(i+1,2)=1000+jt
267 IF((iabs(kflch(jt)).GE.1.AND.iabs(kflch(jt)).LE.8).OR.
268 & iabs(kflch(jt)).EQ.21.OR.
lucomp(iabs(kflch(jt))).EQ.90)
THEN
269 ifls=(3-isign(1,kflch(jt)*(1102-iabs(kflch(jt)))))/2
274 k(ipu,6-ifls)=mod(
k(ipu,6-ifls),mstu(5))+i*mstu(5)
276 IF(ipy(34).GE.1)
THEN
283 IF(shr.LE.sqrt(pms(1))+sqrt(pms(2))) goto 130
288 IF(jt.EQ.ilep) goto 170
289 pe=0.5*(shr+(pms(jt)-pms(3-jt))/shr)
290 pz=sqrt(pe**2-pms(jt))
291 IF(kflch(jt).EQ.0)
THEN
293 p(
is(jt),3)=pz*(-1)**(jt-1)
296 p(
is(jt)+2,4)=0.5*(pw1+pms(jt+4)/pw1)
297 p(
is(jt)+2,3)=0.5*(pw1-pms(jt+4)/pw1)*(-1)**(jt-1)
298 p(
is(jt),4)=pe-
p(
is(jt)+2,4)
299 p(
is(jt),3)=pz*(-1)**(jt-1)-
p(
is(jt)+2,3)
307 CALL ludbrb(mstu(1),mstu(2),
308 & 0.,0.,0.d0,0.d0,-dble(pzh)/(dble(pyvar(1))-dble(peh)))
315 pzf=pz*(-1)**(ilep-1)
316 pt2=
p(5-ilep,1)**2+
p(5-ilep,2)**2
317 phipt=
ulangl(
p(5-ilep,1),
p(5-ilep,2))
318 CALL ludbrb(imin,imax,0.,-phipt,0.d0,0.d0,0.d0)
319 rqp=
p(iq,3)*(
pt2+pei**2)-
p(iq,4)*pei*pzi
320 sinth=
p(iq,4)*sqrt(
pt2*(
pt2+pei**2)/(rqp**2+
pt2*
321 &
p(iq,4)**2*pzi**2))*
sign(1.,-rqp)
322 CALL ludbrb(imin,imax,asin(sinth),0.,0.d0,0.d0,0.d0)
323 dbetax=(-dble(pei)*pzi*sinth+
324 & sqrt(dble(
pt2)*(
pt2+pei**2-(pzi*sinth)**2)))/
326 CALL ludbrb(imin,imax,0.,0.,dbetax,0.d0,0.d0)
327 CALL ludbrb(imin,imax,0.,phipt,0.d0,0.d0,0.d0)
330 dbetaz=(-dble(pem)*pzm+
331 & pzf*sqrt(dble(pzf)**2+pem**2-pzm**2))/(dble(pzf)**2+pem**2)
332 CALL ludbrb(imin,imax,0.,0.,0.d0,0.d0,dbetaz)
336 CALL ludbrb(3,4,asin(sinth),0.,dbetax,0.d0,0.d0)
337 CALL ludbrb(3,4,0.,phipt,0.d0,0.d0,dbetaz)