10 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
12 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
14 common/pyhisubs/msel,msub(200),kfin(2,-40:40),ckin(200)
16 common/pyhipars/mstp(200),parp(200),msti(200),pari(200)
18 common/pyhiint1/mint(400),vint(400)
20 common/pyhiint2/iset(200),kfpr(200,2),coef(200,20),icol(40,4,2)
22 common/pyhiint3/xsfx(2,-40:40),isig(1000,3),sigh(1000)
24 common/pyhiint4/widp(21:40,0:40),wide(21:40,0:40),wids(21:40,3)
26 common/pyhiint5/ngen(0:200,3),xsec(0:200,3)
34 IF(msub(95).EQ.1.OR.mint(82).GE.2) CALL
pyhimult(2)
39 IF(mint(82).EQ.1.AND.(isub.LE.90.OR.isub.GT.96))
THEN
42 IF(msub(i).NE.1) goto 110
45 IF(rsub.LE.0.) goto 120
47 120
IF(isub.EQ.95) isub=96
50 ELSEIF(mint(82).GE.2.AND.isub.EQ.0)
THEN
53 IF(rsub.GT.vint(106)) isub=93
54 IF(rsub.GT.vint(106)+vint(104)) isub=92
55 IF(rsub.GT.vint(106)+vint(104)+vint(103)) isub=91
57 IF(mint(82).EQ.1) ngen(0,1)=ngen(0,1)+1
58 IF(mint(82).EQ.1) ngen(isub,1)=ngen(isub,1)+1
64 IF(iset(isub).EQ.1.OR.iset(isub).EQ.3)
THEN
66 ELSEIF(isub.GE.71.AND.isub.LE.77)
THEN
70 taur1=pmas(kfr1,1)**2/vint(2)
71 gamr1=pmas(kfr1,1)*pmas(kfr1,2)/vint(2)
79 taur2=pmas(kfr2,1)**2/vint(2)
80 gamr2=pmas(kfr2,1)*pmas(kfr2,2)/vint(2)
93 IF(mint(82).GE.2) vint(71)=0.
94 IF(iset(isub).EQ.2.OR.iset(isub).EQ.4)
THEN
96 IF(kfpr(isub,i).EQ.0)
THEN
97 ELSEIF(mstp(42).LE.0)
THEN
98 vint(62+i)=pmas(kfpr(isub,i),1)**2
100 vint(62+i)=
ulmass(kfpr(isub,i))**2
103 IF(
min(vint(63),vint(64)).LT.ckin(6)**2) mint(71)=1
104 IF(mint(71).EQ.1) vint(71)=
max(ckin(3),ckin(5))
107 IF(iset(isub).EQ.0)
THEN
113 IF(isub.EQ.92.OR.isub.EQ.93) vint(62+
is)=parp(111)**2
114 IF(isub.EQ.93) vint(65-
is)=parp(111)**2
120 sqla12=(sh-sqm1-sqm2)**2-4.*sqm1*sqm2
121 sqla34=(sh-sqm3-sqm4)**2-4.*sqm3*sqm4
122 thter1=sqm1+sqm2+sqm3+sqm4-(sqm1-sqm2)*(sqm3-sqm4)/sh-sh
124 thl=0.5*(thter1-thter2)
125 thu=0.5*(thter1+thter2)
126 thm=
min(
max(thl,parp(101)),thu)
128 IF(isub.EQ.92.OR.isub.EQ.93) jtmax=isub-91
130 mint(13+3*jt-
is*(2*jt-3))=1
131 sqmmin=vint(59+3*jt-
is*(2*jt-3))
132 sqmi=vint(8-3*jt+
is*(2*jt-3))**2
133 sqmj=vint(3*jt-1-
is*(2*jt-3))**2
134 sqmf=vint(68-3*jt+
is*(2*jt-3))
135 squa=0.5*sh/sqmi*((1.+(sqmi-sqmj)/sh)*thm+sqmi-sqmf-
136 & sqmj**2/sh+(sqmi+sqmj)*sqmf/sh+(sqmi-sqmj)**2/sh**2*sqmf)
137 quar=sh/sqmi*(thm*(thm+sh-sqmi-sqmj-sqmf*(1.-(sqmi-sqmj)/sh))+
138 & sqmi*sqmj-sqmj*sqmf*(1.+(sqmi-sqmj-sqmf)/sh))
139 sqmmax=squa+
sqrt(
max(0.,squa**2-quar))
140 IF(abs(quar/squa**2).LT.1.
e-06) sqmmax=0.5*quar/squa
141 sqmmax=
min(sqmmax,(vint(1)-
sqrt(sqmf))**2)
142 vint(59+3*jt-
is*(2*jt-3))=sqmmin*(sqmmax/sqmmin)**
rlu(0)
147 sqla34=(sh-sqm3-sqm4)**2-4.*sqm3*sqm4
148 thter1=sqm1+sqm2+sqm3+sqm4-(sqm1-sqm2)*(sqm3-sqm4)/sh-sh
150 thl=0.5*(thter1-thter2)
151 thu=0.5*(thter1+thter2)
154 IF(isub.EQ.92.OR.isub.EQ.93)
THEN
158 thm=
min(
max(thl,parp(101)),thu)
161 IF(tharg.GT.-20.) expth=
exp(tharg)
162 150 th=thu+
log(expth+(1.-expth)*
rlu(0))/
b
164 ratlog=
min((
b+
c*(th+thm))*(th-thm),(
b+
c*(th+thu))*(th-thu))
165 IF(ratlog.LT.
log(
rlu(0))) goto 150
168 vint(23)=
min(1.,
max(-1.,(2.*th-thter1)/thter2))
178 ELSEIF(iset(isub).GE.1.AND.iset(isub).LE.4)
THEN
180 IF(mint(51).NE.0) goto 100
183 IF(rtau.GT.coef(isub,1)) mtau=2
184 IF(rtau.GT.coef(isub,1)+coef(isub,2)) mtau=3
185 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)) mtau=4
186 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)+coef(isub,4))
188 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)+coef(isub,4)+
189 & coef(isub,5)) mtau=6
196 IF(iset(isub).EQ.3.OR.iset(isub).EQ.4)
THEN
198 IF(mint(51).NE.0) goto 100
201 IF(rtaup.GT.coef(isub,15)) mtaup=2
209 IF(mint(51).NE.0) goto 100
212 IF(ryst.GT.coef(isub,7)) myst=2
213 IF(ryst.GT.coef(isub,7)+coef(isub,8)) myst=3
223 IF(mint(51).NE.0) goto 100
224 IF(iset(isub).EQ.2.OR.iset(isub).EQ.4)
THEN
227 IF(rcth.GT.coef(isub,10)) mcth=2
228 IF(rcth.GT.coef(isub,10)+coef(isub,11)) mcth=3
229 IF(rcth.GT.coef(isub,10)+coef(isub,11)+coef(isub,12)) mcth=4
230 IF(rcth.GT.coef(isub,10)+coef(isub,11)+coef(isub,12)+
231 & coef(isub,13)) mcth=5
236 ELSEIF(iset(isub).EQ.5)
THEN
242 vint(24)=paru(2)*
rlu(0)
246 IF(isub.LE.90.OR.isub.GT.100) CALL
pyhiklim(0)
247 IF(mint(51).NE.0) goto 100
248 IF(mint(82).EQ.1.AND.mstp(141).GE.1)
THEN
250 IF(msub(91)+msub(92)+msub(93)+msub(94)+msub(95).EQ.0)
252 IF(mcut.NE.0) goto 100
259 IF(mint(82).EQ.1.AND.isub.LE.90.OR.isub.GE.96)
THEN
260 xsec(isub,2)=xsec(isub,2)+sigs
261 ELSEIF(mint(82).EQ.1)
THEN
262 xsec(isub,2)=xsec(isub,2)+xsec(isub,1)
266 IF(mint(43).EQ.4.AND.mstp(82).GE.3)
THEN
272 viol=sigs/xsec(isub,1)
273 IF(viol.LT.
rlu(0)) goto 100
277 IF(mstp(123).LE.0)
THEN
279 WRITE(mstu(11),1000) viol,ngen(0,3)+1
280 WRITE(mstu(11),1100) isub,vint(21),vint(22),vint(23),vint(26)
283 ELSEIF(mstp(123).EQ.1)
THEN
284 IF(viol.GT.vint(108))
THEN
292 ELSEIF(viol.GT.vint(108))
THEN
295 xdif=xsec(isub,1)*(viol-1.)
296 xsec(isub,1)=xsec(isub,1)+xdif
297 IF(msub(isub).EQ.1.AND.(isub.LE.90.OR.isub.GT.96))
298 & xsec(0,1)=xsec(0,1)+xdif
314 IF(mint(43).EQ.4.AND.(isub.LE.90.OR.isub.GE.96).AND.mstp(82).GE.3)
317 IF(vint(150).LT.
rlu(0)) goto 100
319 IF(mint(82).EQ.1.AND.msub(95).EQ.1)
THEN
320 IF(isub.LE.90.OR.isub.GE.95) ngen(95,1)=ngen(95,1)+1
321 IF(isub.LE.90.OR.isub.GE.96) ngen(96,2)=ngen(96,2)+1
323 IF(isub.LE.90.OR.isub.GE.96) mint(31)=mint(31)+1
328 rqqbar=parp(87)*(1.-(qt2/(qt2+(parp(88)*parp(82))**2))**2)
329 IF(isub.NE.95.AND.(isub.NE.96.OR.mstp(82).LE.1.OR.
330 &
rlu(0).GT.rqqbar))
THEN
335 rsigs=rsigs-sigh(ichn)
336 IF(rsigs.LE.0.) goto 210
340 ELSEIF(isub.EQ.96)
THEN
341 CALL
pyhispli(mint(11),21,kfl1,kfldum)
342 CALL
pyhispli(mint(12),21,kfl2,kfldum)
345 IF(kfl1.EQ.kfl2.AND.
rlu(0).LT.0.5) mint(2)=2
353 IF(rsigs.GT.1.) mint(2)=2
354 IF(rsigs.GT.2.) mint(2)=3
358 210
IF(mint(2).GT.10)
THEN
360 mint(2)=
mod(mint(2),10)
370 1000
FORMAT(1
x,
'Error: maximum violated by',1
p,e11.3,1
x,
371 &
'in event',1
x,i7,
'.'/1
x,
'Execution stopped!')
372 1100
FORMAT(1
x,
'ISUB = ',i3,
'; Point of violation:'/1
x,
'tau =',1
p,
373 &e11.3,
', y* =',e11.3,
', cthe = ',0
p,f11.7,
', tau'' =',1
p,e11.3)
374 1200
FORMAT(1
x,
'Warning: maximum violated by',1
p,e11.3,1
x,
376 1300
FORMAT(1
x,
'XSEC(',i1,
',1) increased to',1
p,e11.3)
377 1400
FORMAT(1
x,
'XSEC(',i2,
',1) increased to',1
p,e11.3)
378 1500
FORMAT(1
x,
'XSEC(',i3,
',1) increased to',1
p,e11.3)