8 SUBROUTINE py6frm(P12,P13,P21,P23,P31,P32,PTOP,IRAD,ITAU,ICOM)
11 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
16 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
19 dimension ijoin(2),intau(6),
beta(3),betao(3),betan(3)
35 IF(
k(
i,1).LE.0.OR.
k(
i,1).GT.10) goto 100
37 IF((kfa.GE.1.AND.kfa.LE.6).OR.(kfa.GE.11.AND.kfa.LE.16))
THEN
46 CALL
pyerrm(16,
'(PY6FRM:) more than three fermions')
56 CALL
pyerrm(16,
'(PY6FRM:) more than three antifermions')
63 IF(
i5.EQ.0.OR.i6.EQ.0)
THEN
64 CALL
pyerrm(16,
'(PY6FRM:) event contains too few fermions')
67 CALL
pyerrm(6,
'(PY6FRM:) fermions arranged in wrong order')
71 IF(iabs(
k(
i1,2)).LT.10.AND.iabs(
k(
i2,2)).LT.10)
THEN
73 ELSEIF(iabs(
k(
i1,2)).GT.10.AND.iabs(
k(
i2,2)).GT.10)
THEN
76 CALL
pyerrm(16,
'(PY6FRM:) first fermion pair inconsistent')
78 IF(iabs(
k(
i3,2)).LT.10.AND.iabs(
k(
i4,2)).LT.10)
THEN
80 ELSEIF(iabs(
k(
i3,2)).GT.10.AND.iabs(
k(
i4,2)).GT.10)
THEN
83 CALL
pyerrm(16,
'(PY6FRM:) second fermion pair inconsistent')
85 IF(iabs(
k(
i5,2)).LT.10.AND.iabs(
k(i6,2)).LT.10)
THEN
87 ELSEIF(iabs(
k(
i5,2)).GT.10.AND.iabs(
k(i6,2)).GT.10)
THEN
90 CALL
pyerrm(16,
'(PY6FRM:) third fermion pair inconsistent')
95 IF(irad.EQ.0) mstj(41)=1
100 IF(iql34.EQ.iql56) p13d=p13
102 IF(iql12.EQ.iql34) p21d=p21
104 IF(iql12.EQ.iql34.AND.iql12.EQ.iql56) p23d=p23
106 IF(iql12.EQ.iql34.AND.iql12.EQ.iql56) p31d=p31
108 IF(iql12.EQ.iql56) p32d=p32
112 IF(
pyr(0).LT.ptop)
THEN
132 p(itb,5)=sqrt(
max(0d0,
p(itb,4)**2-
p(itb,1)**2-
p(itb,2)**2-
140 pmtts=(
p(
it,4)+
p(itb,4))**2-(
p(
it,1)+
p(itb,1))**2-
141 & (
p(
it,2)+
p(itb,2))**2-(
p(
it,3)+
p(itb,3))**2
148 IF(
k(
i,2).EQ.6) itnew=
i
149 IF(
k(
i,2).EQ.-6) itbnew=
i
167 IF(iabs(
k(ibo,2)).NE.5) CALL
pyerrm(6,
168 &
'(PY6FRM:) not b in t decay')
172 betao(
j)=
p(ito,
j)/
p(ito,4)
173 betan(
j)=
p(itn,
j)/
p(itn,4)
186 CALL
pyrobo(ib,ib,0d0,0d0,-betao(1),-betao(2),-betao(3))
187 CALL
pyrobo(ib,ib,0d0,0d0,betan(1),betan(2),betan(3))
204 IF(iabs(kchw).EQ.3)
THEN
205 k(iw,2)=isign(24,kchw)
207 CALL
pyerrm(16,
'(PY6FRM:) fermion pair inconsistent with W')
215 p(iw,5)=sqrt(
max(0d0,
p(iw,4)**2-
p(iw,1)**2-
p(iw,2)**2-
217 CALL
pyrobo(iw,iw,0d0,0d0,-betao(1),-betao(2),-betao(3))
218 CALL
pyrobo(iw,iw,0d0,0d0,betan(1),betan(2),betan(3))
228 pmts=(
p(ib,4)+
p(iw,4))**2-(
p(ib,1)+
p(iw,1))**2-
229 & (
p(ib,2)+
p(iw,2))**2-(
p(ib,3)+
p(iw,3))**2
232 IF(iabs(
k(
i,2)).EQ.24) iwm=
i
262 CALL
pyrobo(
n-1,
n,0d0,0d0,-betao(1),-betao(2),-betao(3))
263 CALL
pyrobo(
n-1,
n,0d0,0d0,betan(1),betan(2),betan(3))
266 & -
p(iw,2)/
p(iw,4),-
p(iw,3)/
p(iw,4))
268 &
p(iwm,2)/
p(iwm,4),
p(iwm,3)/
p(iwm,4))
278 prn=
pyr(0)*(p12d+p13d+p21d+p23d+p31d+p32d)
279 IF(itop.EQ.1.OR.prn.LT.p12d)
THEN
283 ELSEIF(prn.LT.p12d+p13d)
THEN
287 ELSEIF(prn.LT.p12d+p13d+p21d)
THEN
291 ELSEIF(prn.LT.p12d+p13d+p21d+p23d)
THEN
295 ELSEIF(prn.LT.p12d+p13d+p21d+p23d+p31d)
THEN
313 IF(iql12.EQ.1.OR.irad.EQ.1)
THEN
314 pm12s=(
p(ip1,4)+
p(ip2,4))**2-(
p(ip1,1)+
p(ip2,1))**2-
315 & (
p(ip1,2)+
p(ip2,2))**2-(
p(ip1,3)+
p(ip2,3))**2
316 CALL
pyshow(ip1,ip2,sqrt(
max(0d0,pm12s)))
324 IF(iql34.EQ.1.OR.irad.EQ.1)
THEN
325 pm34s=(
p(ip3,4)+
p(ip4,4))**2-(
p(ip3,1)+
p(ip4,1))**2-
326 & (
p(ip3,2)+
p(ip4,2))**2-(
p(ip3,3)+
p(ip4,3))**2
327 CALL
pyshow(ip3,ip4,sqrt(
max(0d0,pm34s)))
334 IF(iql56.EQ.1.OR.irad.EQ.1)
THEN
335 pm56s=(
p(ip5,4)+
p(ip6,4))**2-(
p(ip5,1)+
p(ip6,1))**2-
336 & (
p(ip5,2)+
p(ip6,2))**2-(
p(ip5,3)+
p(ip6,3))**2
337 CALL
pyshow(ip5,ip6,sqrt(
max(0d0,pm56s)))
344 IF(iabs(
k(
i,2)).EQ.15.AND.
k(
i,1).EQ.1)
THEN