10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
15 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
16 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
20 IF(mstu(12).NE.12345) CALL
pylist(0)
21 IF(kfl.LT.0.OR.kfl.GT.8)
THEN
22 CALL
pyerrm(16,
'(PYEEVT:) called with unknown flavour code')
23 IF(mstu(21).GE.1)
RETURN
25 IF(kfl.LE.5) ecmmin=parj(127)+2.02d0*parf(100+
max(1,kfl))
26 IF(kfl.GE.6) ecmmin=parj(127)+2.02d0*pmas(kfl,1)
27 IF(ecm.LT.ecmmin)
THEN
28 CALL
pyerrm(16,
'(PYEEVT:) called with too small CM energy')
29 IF(mstu(21).GE.1)
RETURN
33 IF(mstj(109).EQ.2.AND.mstj(110).NE.1)
THEN
35 &
'(PYEEVT:) MSTJ(109) value requires MSTJ(110) = 1')
38 IF(mstj(109).EQ.2.AND.mstj(111).NE.0)
THEN
40 &
'(PYEEVT:) MSTJ(109) value requires MSTJ(111) = 0')
46 IF(mstj(108).EQ.2.AND.(mstj(101).EQ.0.OR.mstj(101).EQ.1))
49 IF(mstu(111).EQ.2) paru(112)=parj(122)
50 IF(mstj(116).GT.0.AND.(mstj(116).GE.2.OR.abs(ecm-parj(151)).GE.
51 &parj(139).OR.10*mstj(102)+kfl.NE.mstj(119))) CALL
pyxtee(kfl,ecm,
53 IF(mstj(116).GE.3) mstj(116)=1
60 CALL
pyerrm(14,
'(PYEEVT:) caught in an infinite loop')
65 IF(mstj(115).GE.2)
THEN
67 CALL
py1ent(nc-1,11,0.5d0*ecm,0d0,0d0)
69 CALL
py1ent(nc,-11,0.5d0*ecm,paru(1),0d0)
76 IF(mstj(107).GE.1.AND.mstj(116).GE.1) CALL
pyradk(ecm,mk,pak,
78 IF(mk.EQ.1) ecmc=sqrt(ecm*(ecm-2d0*pak))
79 IF(mstj(115).GE.1.AND.mk.EQ.1)
THEN
81 CALL
py1ent(nc,22,pak,thek,phik)
82 k(nc,3)=min(mstj(115)/2,1)
86 IF(mstj(115).GE.3)
THEN
89 IF(mstj(102).EQ.2) kf=23
93 CALL
py1ent(nc,kf,ecmc,0d0,0d0)
100 CALL
pyxkfl(kfl,ecm,ecmc,kflc)
101 IF(kflc.EQ.0) goto 100
102 CALL
pyxjet(ecmc,njet,cut)
104 IF(njet.EQ.4) CALL
pyx4jt(njet,cut,kflc,ecmc,kfln,x1,x2,x4,
106 IF(njet.EQ.3) CALL
pyx3jt(njet,cut,kflc,ecmc,x1,x3)
107 IF(njet.EQ.2) mstj(120)=1
110 IF(njet.EQ.2.AND.mstj(101).NE.5) CALL
py2ent(nc+1,kflc,-kflc,ecmc)
111 IF(njet.EQ.2.AND.mstj(101).EQ.5) CALL
py2ent(-(nc+1),kflc,-kflc,
113 IF(njet.EQ.3) CALL
py3ent(nc+1,kflc,21,-kflc,ecmc,x1,x3)
114 IF(njet.EQ.4.AND.kfln.EQ.21) CALL
py4ent(nc+1,kflc,kfln,kfln,
115 &-kflc,ecmc,x1,x2,x4,x12,x14)
116 IF(njet.EQ.4.AND.kfln.NE.21) CALL
py4ent(nc+1,kflc,-kfln,kfln,
117 &-kflc,ecmc,x1,x2,x4,x12,x14)
118 IF(mstu(24).NE.0) goto 100
120 k(ip,3)=
k(ip,3)+min(mstj(115)/2,1)+(mstj(115)/3)*(nc-1)
124 IF(mstj(106).EQ.1)
THEN
125 CALL
pyxdif(nc,njet,kflc,ecmc,chi,the,
phi)
126 CALL
pyrobo(nc+1,
n,0d0,chi,0d0,0d0,0d0)
133 nmin=nc+1-mstj(115)/3
134 CALL
pyrobo(nmin,
n,0d0,-phik,0d0,0d0,0d0)
135 CALL
pyrobo(nmin,
n,alpk,0d0,dbek*sin(thek),0d0,dbek*cos(thek))
136 CALL
pyrobo(nmin,
n,0d0,phik,0d0,0d0,0d0)
140 IF(mstj(101).EQ.5)
THEN
143 IF(mstj(105).EQ.-1) mstj(14)=-1
144 IF(mstj(105).GE.0) mstu(28)=0
147 IF(mstj(105).GE.0.AND.mstu(28).NE.0) goto 100
151 IF(mstj(105).EQ.1) CALL
pyexec