13 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
17 parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
18 &kexcit=4000000,kdimen=5000000)
23 INTEGER idbmup,pdfgup,pdfsup,idwtup,nprup,lprup
24 DOUBLE PRECISION ebmup,xsecup,xerrup,xmaxup
25 common/heprup/idbmup(2),ebmup(2),pdfgup(2),pdfsup(2),
26 &idwtup,nprup,xsecup(maxpup),xerrup(maxpup),xmaxup(maxpup),
30 INTEGER nup,idprup,idup,istup,mothup,icolup
31 DOUBLE PRECISION xwgtup,scalup,aqedup,aqcdup,pup,vtimup,spinup
32 common/hepeup/nup,idprup,xwgtup,scalup,aqedup,aqcdup,idup(maxnup),
33 &istup(maxnup),mothup(2,maxnup),icolup(2,maxnup),pup(5,maxnup),
34 &vtimup(maxnup),spinup(maxnup)
35 SAVE /heprup/,/hepeup/
38 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
39 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
40 common/
pydat3/mdcy(500,3),mdme(8000,2),brat(8000),kfdp(8000,5)
41 common/
pysubs/msel,mselpd,msub(500),kfin(2,-40:40),ckin(200)
44 common/
pyint2/iset(500),kfpr(500,2),coef(500,20),icol(40,4,2)
45 common/
pyint3/xsfx(2,-40:40),isig(1000,3),sigh(1000)
46 common/
pyint4/mwid(500),wids(500,5)
48 common/
pyint7/sigt(0:6,0:6,0:5)
49 common/
pymssm/imss(0:99),rmss(0:99)
53 dimension xpq(-25:25),pmm(2),pdif(4),bhad(4),pmmn(2)
56 DATA eps/0.0808d0/, alp/0.25d0/, cres/2d0/, pmrc/1.062d0/,
57 &smp/0.880d0/, bhad/2.3d0,1.4d0,1.4d0,0.23d0/
68 IF(
mstp(171).EQ.1.AND.
mstp(172).EQ.2) mfail=1
78 IF(
mint(11).EQ.22)
THEN
82 IF(
mint(12).EQ.22)
THEN
91 IF(
mint(82).EQ.1.AND.isub.GE.91.AND.isub.LE.96)
THEN
92 ELSEIF(
mint(82).EQ.1)
THEN
100 IF(
mint(11).EQ.22.AND.
mint(12).EQ.22.AND.
mint(123).GE.4.AND.
101 &
mstp(14).LE.10.AND.
pyr(0).GT.0.5d0)
THEN
116 IF(
mint(111).GE.11.AND.iabs(idwtup).EQ.2.AND.loop.GE.2)
THEN
119 ELSEIF(
mint(111).GE.11.AND.iabs(idwtup).GE.3)
THEN
124 IF((iset(isub).NE.11.OR.kfpr(isub,2).NE.idprup).AND.
125 & isub.LT.500) goto 110
129 IF(msub(
i).NE.1.OR.
i.EQ.96) goto 120
132 IF(rsub.LE.0d0) goto 130
134 130
IF(isub.EQ.95) isub=96
135 IF(isub.EQ.96) inmult=1
136 IF(iset(isub).EQ.11)
THEN
144 ELSEIF(
mint(82).GE.2.AND.isub.EQ.0)
THEN
147 IF(rsub.GT.sigt(0,0,5)) isub=94
148 IF(rsub.GT.sigt(0,0,5)+sigt(0,0,4)) isub=93
149 IF(rsub.GT.sigt(0,0,5)+sigt(0,0,4)+sigt(0,0,3)) isub=92
150 IF(rsub.GT.sigt(0,0,5)+sigt(0,0,4)+sigt(0,0,3)+sigt(0,0,2))
152 IF(isub.EQ.96) inmult=1
156 IF(
mint(141).NE.0.OR.
mint(142).NE.0)
THEN
157 IF (
mstp(199).EQ.1)
THEN
162 IF(isub.GE.131.AND.isub.LE.140)
THEN
167 ELSEIF(
mint(15).EQ.22.OR.
mint(16).EQ.22)
THEN
174 IF(
mstp(18).EQ.3.AND.isub.GE.131.AND.isub.LE.136)
THEN
175 IF(
mint(15).EQ.22)
THEN
194 IF(isub.EQ.96.AND.loop2.EQ.1.AND.
mint(82).EQ.1)
200 IF(isub.GE.201.AND.isub.LE.301)
THEN
203 kfpr(isub,1)=ksusy1+11+2*int(0.5d0+
pyr(0))
204 kfpr(isub,2)=kfpr(isub,1)+1
206 ELSEIF(isub.EQ.213)
THEN
207 kfpr(isub,1)=ksusy1+12+2*int(0.5d0+
pyr(0))
208 kfpr(isub,2)=kfpr(isub,1)
210 ELSEIF(isub.GE.246.AND.isub.LE.259.AND.isub.NE.255.AND.
217 IF(mod(isub,2).EQ.0)
THEN
218 kfpr(isub,1)=ksusy1+1+int(rkf*
pyr(0))
220 kfpr(isub,1)=ksusy2+1+int(rkf*
pyr(0))
223 ELSEIF(isub.GE.271.AND.isub.LE.276)
THEN
224 IF(isub.EQ.271.OR.isub.EQ.274)
THEN
227 ELSEIF(isub.EQ.272.OR.isub.EQ.275)
THEN
230 ELSEIF(
pyr(0).LT.0.5d0)
THEN
237 kfpr(isub,1)=ksu1+1+int(4d0*
pyr(0))
238 kfpr(isub,2)=ksu2+1+int(4d0*
pyr(0))
240 ELSEIF(isub.EQ.277.OR.isub.EQ.279)
THEN
241 kfpr(isub,1)=ksusy1+1+int(4d0*
pyr(0))
242 kfpr(isub,2)=kfpr(isub,1)
243 ELSEIF(isub.EQ.278.OR.isub.EQ.280)
THEN
244 kfpr(isub,1)=ksusy2+1+int(4d0*
pyr(0))
245 kfpr(isub,2)=kfpr(isub,1)
247 ELSEIF(isub.GE.281.AND.isub.LE.286)
THEN
248 IF(isub.EQ.281.OR.isub.EQ.284)
THEN
251 ELSEIF(isub.EQ.282.OR.isub.EQ.285)
THEN
254 ELSEIF(
pyr(0).LT.0.5d0)
THEN
261 IF(isub.EQ.281.OR.isub.LE.283)
THEN
266 kfpr(isub,2)=ksu2+1+int(rkf*
pyr(0))
273 IF(istsb.EQ.1.OR.istsb.EQ.3.OR.istsb.EQ.5)
THEN
275 ELSEIF(isub.EQ.24.OR.isub.EQ.25.OR.isub.EQ.110.OR.isub.EQ.165.OR.
276 & isub.EQ.171.OR.isub.EQ.176)
THEN
278 ELSEIF(isub.EQ.23.OR.isub.EQ.26.OR.isub.EQ.166.OR.isub.EQ.172.OR.
281 ELSEIF(isub.GE.71.AND.isub.LE.77)
THEN
283 IF(
mstp(46).EQ.5)
THEN
286 pmas(89,2)=
parp(45)**3/(96d0*paru(1)*
parp(47)**2)
288 ELSEIF(isub.EQ.194)
THEN
290 ELSEIF(isub.EQ.195)
THEN
292 ELSEIF(isub.GE.361.AND.isub.LE.368)
THEN
294 ELSEIF(isub.GE.370.AND.isub.LE.377)
THEN
298 IF(ckmx.LE.0d0) ckmx=
vint(1)
301 IF(ckin(1).GT.pmas(kcr1,1)+20d0*pmas(kcr1,2).OR.
302 & ckmx.LT.pmas(kcr1,1)-20d0*pmas(kcr1,2)) kfr1=0
305 taur1=pmas(kcr1,1)**2/
vint(2)
306 IF(kfr1.EQ.ktechn+113)
THEN
310 gamr1=pmas(kcr1,1)*pmas(kcr1,2)/
vint(2)
316 IF(isub.EQ.141.OR.isub.EQ.194.OR.(isub.GE.364.AND.isub.LE.368))
321 ELSEIF(isub.GE.364.AND.isub.LE.368)
THEN
325 taur2=pmas(kcr2,1)**2/
vint(2)
326 IF(kfr2.EQ.ktechn+223)
THEN
330 gamr2=pmas(kcr2,1)*pmas(kcr2,2)/
vint(2)
331 IF(ckin(1).GT.pmas(kcr2,1)+20d0*pmas(kcr2,2).OR.
332 & ckmx.LT.pmas(kcr2,1)-20d0*pmas(kcr2,2)) kfr2=0
333 IF(kfr2.NE.0.AND.kfr1.NE.0)
THEN
338 ELSEIF(kfr2.NE.0)
THEN
357 IF(istsb.EQ.2.OR.istsb.EQ.4)
THEN
361 IF(kfpr(isub,
i).EQ.0)
THEN
362 ELSEIF(
mstp(42).LE.0.OR.pmas(
pycomp(kfpr(isub,
i)),2).LT.
369 IF(kflw/ksusy1.EQ.1.OR.kflw/ksusy1.EQ.2)
THEN
372 DO 150 idc=mdcy(kcw,2),mdcy(kcw,2)+mdcy(kcw,3)-1
373 IF(mdme(idc,1).GT.0.AND.brat(idc).GT.1
e-4)
THEN
374 pmsum=pmas(
pycomp(kfdp(idc,1)),1)+
375 & pmas(
pycomp(kfdp(idc,2)),1)
376 IF(kfdp(idc,3).NE.0) pmsum=pmsum+
377 & pmas(
pycomp(kfdp(idc,3)),1)
378 pmmn(
i)=min(pmmn(
i),pmsum)
381 ELSEIF(kflw.EQ.6)
THEN
382 pmmn(
i)=pmas(24,1)+pmas(5,1)
389 ckin(41)=
max(pmmn(1),ckin(41))
390 ckin(43)=
max(pmmn(2),ckin(43))
391 CALL
pyofsh(4,0,kfpr(isub,1),kfpr(isub,2),0d0,pqm3,pqm4)
394 IF(
mint(51).EQ.1)
THEN
412 IF(kfpr(isub,2).GT.0)
vint(201)=pmas(
pycomp(kfpr(isub,2)),1)
414 IF(isub.EQ.401.OR.isub.EQ.402)
vint(206)=pmas(5,1)
416 IF(isub.EQ.124.OR.isub.EQ.174.OR.isub.EQ.179.OR.isub.EQ.351)
417 &
vint(204)=pmas(24,1)
418 IF(isub.EQ.352)
vint(204)=pmas(
pycomp(9900024),1)
419 IF(isub.EQ.121.OR.isub.EQ.122.OR.isub.EQ.181.OR.isub.EQ.182.OR.
420 & isub.EQ.186.OR.isub.EQ.187.OR.isub.EQ.401.OR.isub.EQ.402)
423 IF(isub.EQ.401.OR.isub.EQ.402)
vint(209)=
vint(206)
427 IF(istsb.NE.0.AND.(
mint(101).GE.2.OR.
mint(102).GE.2).AND.
428 &(
mint(123).EQ.2.OR.
mint(123).EQ.3.OR.
mint(123).EQ.7))
THEN
429 vrn=
pyr(0)*sigt(0,0,5)
430 IF(
mint(101).LE.1)
THEN
437 IF(
mint(102).LE.1)
THEN
448 vrn=vrn-sigt(
i1,
i2,5)
449 IF(vrn.LE.0d0) goto 190
452 190
IF(
mint(101).GE.2)
mint(103)=kfv1
464 IF(
mint(101).GE.2.OR.
mint(102).GE.2)
THEN
466 vrn=
pyr(0)*sigt(0,0,jj)
467 IF(
mint(101).LE.1)
THEN
474 IF(
mint(102).LE.1)
THEN
485 vrn=vrn-sigt(
i1,
i2,jj)
486 IF(vrn.LE.0d0) goto 220
489 220
IF(
mint(101).GE.2)
THEN
493 IF(
mint(102).GE.2)
THEN
507 IF(
mint(106+jt).EQ.3)
THEN
509 pmm(jt)=(q0s+
ps)*(q1s+
ps)/
511 IF(
mint(102+jt).GE.333) pmm(jt)=pmm(jt)-
515 IF(pmm(1)+pmm(2)+
parp(104).GE.
vint(1))
THEN
516 IF(loop3.LT.100.AND.(
mint(107).EQ.3.OR.
mint(108).EQ.3))
524 IF(isub.EQ.92.OR.isub.EQ.94)
mint(17)=1
525 IF(isub.EQ.93.OR.isub.EQ.94)
mint(18)=1
531 IF(
mint(16+jt).EQ.1) pdif(jt)=pdif(jt)+
parp(102)
534 if (
mint(11).eq.22)
then
535 sqm1 = -1.*(
vint(3)**2)
542 smres1=(pmm(1)+pmrc)**2
543 smres2=(pmm(2)+pmrc)**2
552 pmvirt=pmas(
pycomp(113),1)
553 bmn=5.84/(1+(
parp(165))*(
vint(307)/(pmvirt**2))**
parp(166))
555 ELSEIF(iha.eq.3)
then
556 pmvirt=pmas(
pycomp(333),1)
557 bmn=5.84/(1+(
parp(165))*(
vint(307)/(pmvirt**2))**
parp(166))
559 elseif(iha.eq.4)
then
560 pmvirt=pmas(
pycomp(443),1)
563 bmn=2d0*bhad(iha)+2d0*bhad(ihb)+4d0*sh**
eps-4.2d0
565 ELSEIF(isub.EQ.92)
THEN
566 bmn=
max(2d0,2d0*bhad(ihb))
567 ELSEIF(isub.EQ.93)
THEN
568 bmn=
max(2d0,2d0*bhad(iha))
569 ELSEIF(isub.EQ.94)
THEN
574 sqla12=(sh-sqm1-sqm2)**2-4d0*sqm1*sqm2
575 sqla34=(sh-sqm3-sqm4)**2-4d0*sqm3*sqm4
576 tha=sh-(sqm1+sqm2+sqm3+sqm4)+(sqm1-sqm2)*(sqm3-sqm4)/sh
577 thb=sqrt(
max(0d0,sqla12))*sqrt(
max(0d0,sqla34))/sh
578 thc=(sqm3-sqm1)*(sqm4-sqm2)+(sqm1+sqm4-sqm2-sqm3)*
579 & (sqm1*sqm4-sqm2*sqm3)/sh
582 thrnd=exp(
max(-50d0,bmn*(thl-thu)))-1d0
588 IF(
mint(16+jt).EQ.0)
THEN
593 pdif(2+jt)=pmmin*(pmmax/pmmin)**
pyr(0)
600 IF(pdif(3)+pdif(4).GE.
vint(1))
THEN
601 IF(loop3.LT.100) goto 260
605 fsd=(1d0-sqm3/sh)*(1d0+cres*smres1/(smres1+sqm3))
606 IF(fsd.LT.
pyr(0)*(1d0+cres)) goto 260
607 ELSEIF(isub.EQ.93)
THEN
608 fsd=(1d0-sqm4/sh)*(1d0+cres*smres2/(smres2+sqm4))
609 IF(fsd.LT.
pyr(0)*(1d0+cres)) goto 260
610 ELSEIF(isub.EQ.94)
THEN
611 fdd=(1d0-(pdif(3)+pdif(4))**2/sh)*(sh*smp/
612 & (sh*smp+sqm3*sqm4))*(1d0+cres*smres1/(smres1+sqm3))*
613 & (1d0+cres*smres2/(smres2+sqm4))
614 IF(fdd.LT.
pyr(0)*(1d0+cres)**2) goto 260
618 th=thu+
log(1d0+thrnd*
pyr(0))/bmn
628 badd=2d0*alp*
log(sh/sqm3)
629 IF(bhad(ihb).LT.1d0) badd=
max(0d0,badd+2d0*bhad(ihb)-2d0)
630 ELSEIF(isub.EQ.93)
THEN
631 badd=2d0*alp*
log(sh/sqm4)
632 IF(bhad(iha).LT.1d0) badd=
max(0d0,badd+2d0*bhad(iha)-2d0)
633 ELSEIF(isub.EQ.94)
THEN
634 badd=2d0*alp*(
log(exp(4d0)+sh/(alp*sqm3*sqm4))-4d0)
636 IF(exp(
max(-50d0,badd*(th-thu))).LT.
pyr(0)) goto 260
640 sqla34=(sh-sqm3-sqm4)**2-4d0*sqm3*sqm4
641 tha=sh-(sqm1+sqm2+sqm3+sqm4)+(sqm1-sqm2)*(sqm3-sqm4)/sh
642 thb=sqrt(
max(0d0,sqla12))*sqrt(
max(0d0,sqla34))/sh
643 IF(thb.LE.1d-8) goto 260
644 thc=(sqm3-sqm1)*(sqm4-sqm2)+(sqm1+sqm4-sqm2-sqm3)*
645 & (sqm1*sqm4-sqm2*sqm3)/sh
646 thlm=-0.5d0*(tha+thb)
648 IF(th.LT.thlm.OR.th.GT.thum) goto 260
653 vint(23)=min(1d0,
max(-1d0,(tha+2d0*th)/thb))
655 vint(59)=2d0*sqrt(
max(0d0,-(thc+tha*th+th**2)))/thb
658 vint(283)=pmm(1)**2/4d0
659 vint(284)=pmm(2)**2/4d0
670 ELSEIF(istsb.GE.1.AND.istsb.LE.5)
THEN
672 IF(
mint(51).NE.0)
THEN
682 IF(rtau.GT.coef(isub,1)) mtau=2
683 IF(rtau.GT.coef(isub,1)+coef(isub,2)) mtau=3
684 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)) mtau=4
685 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)+coef(isub,4))
687 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)+coef(isub,4)+
688 & coef(isub,5)) mtau=6
689 IF(rtau.GT.coef(isub,1)+coef(isub,2)+coef(isub,3)+coef(isub,4)+
690 & coef(isub,5)+coef(isub,6)) mtau=7
697 IF(istsb.GE.3.AND.istsb.LE.5)
THEN
699 IF(
mint(51).NE.0)
THEN
709 IF(rtaup.GT.coef(isub,18)) mtaup=2
710 IF(rtaup.GT.coef(isub,18)+coef(isub,19)) mtaup=3
720 IF(
mint(51).NE.0)
THEN
730 IF(ryst.GT.coef(isub,8)) myst=2
731 IF(ryst.GT.coef(isub,8)+coef(isub,9)) myst=3
732 IF(ryst.GT.coef(isub,8)+coef(isub,9)+coef(isub,10)) myst=4
733 IF(ryst.GT.coef(isub,8)+coef(isub,9)+coef(isub,10)+
734 & coef(isub,11)) myst=5
744 IF(
mint(51).NE.0)
THEN
752 IF(istsb.EQ.2.OR.istsb.EQ.4)
THEN
755 IF(rcth.GT.coef(isub,13)) mcth=2
756 IF(rcth.GT.coef(isub,13)+coef(isub,14)) mcth=3
757 IF(rcth.GT.coef(isub,13)+coef(isub,14)+coef(isub,15)) mcth=4
758 IF(rcth.GT.coef(isub,13)+coef(isub,14)+coef(isub,15)+
759 & coef(isub,16)) mcth=5
766 IF(
mint(51).NE.0)
THEN
777 ELSEIF(istsb.EQ.8)
THEN
785 ELSEIF(istsb.EQ.9)
THEN
791 ELSEIF(istsb.EQ.11)
THEN
792 IF(idwtup.GT.0.AND.xwgtup.LT.0d0) CALL
793 &
pyerrm(26,
'(PYRAND:) Negative XWGTUP for user process')
798 IF(
mint(82).EQ.1)
THEN
807 IF(iabs(idwtup).EQ.1.OR.iabs(idwtup).EQ.4)
THEN
810 sigs=1d-9*xsecup(kfpr(isub,1))
812 IF(iabs(idwtup).GE.1.AND.iabs(idwtup).LE.3)
THEN
821 vint(41)=pup(4,1)/ebmup(1)
822 vint(42)=pup(4,2)/ebmup(2)
846 IF(istup(1).NE.-1.OR.istup(2).NE.-1) CALL
pyerrm(26,
847 &
'(PYRAND:) unacceptable ISTUP code for incoming particles')
849 IF(istup(iup).LT.1.OR.istup(iup).GT.3) CALL
pyerrm(26,
850 &
'(PYRAND:) unacceptable ISTUP code for particles')
851 IF(istup(iup).EQ.1)
vint(25)=
vint(25)+2d0*(pup(5,iup)**2+
852 & pup(1,iup)**2+pup(2,iup)**2)/
vint(2)
853 IF(istup(iup).EQ.1)
vint(48)=
vint(48)+0.5d0*(pup(1,iup)**2+
861 IF(istsb.NE.11)
vint(24)=paru(2)*
pyr(0)
865 IF((isub.LE.90.OR.isub.GT.100).AND.istsb.LE.10) CALL
pyklim(0)
866 IF(
mint(51).NE.0)
THEN
874 IF(
mint(82).EQ.1.AND.
mstp(141).GE.1.AND.istsb.LE.10)
THEN
876 IF(msub(91)+msub(92)+msub(93)+msub(94)+msub(95).EQ.0)
889 IF(istsb.LE.10) CALL
pysigh(nchn,sigs)
891 siglpt=sigt(0,0,5)*
vint(315)*
vint(316)
894 IF(
mint(141).NE.0.OR.
mint(142).NE.0)
THEN
897 sigh(ichn)=wtgaga*sigh(ichn)
903 IF(
mstp(173).EQ.1)
THEN
906 sigh(ichn)=
parp(173)*sigh(ichn)
908 siglpt=
parp(173)*siglpt
914 IF(
mint(82).EQ.1.AND.
mstp(142).GE.1)
THEN
915 IF(isub.NE.96.AND.msub(91)+msub(92)+msub(93)+msub(94)+
916 & msub(95).EQ.0) CALL
pyevwt(wtxs)
919 IF(
mstp(142).EQ.1)
vint(100)=1d0/wtxs
923 IF(
mint(82).EQ.1.AND.isub.LE.90.OR.isub.GE.96)
THEN
924 IF(
mstp(142).LE.1)
THEN
929 ELSEIF(
mint(82).EQ.1)
THEN
932 IF((isub.EQ.95.OR.isub.EQ.96).AND.loop2.EQ.1.AND.
936 IF(
mint(50).EQ.1.AND.
mstp(82).GE.3)
THEN
944 viol=sigswt/
xsec(isub,1)
945 IF(isub.EQ.96.AND.
mstp(173).EQ.1) viol=viol/
parp(174)
946 ELSEIF(idwtup.EQ.1.OR.idwtup.EQ.2)
THEN
947 viol=xwgtup/xmaxup(kfpr(isub,1))
948 ELSEIF(idwtup.EQ.-1.OR.idwtup.EQ.-2)
THEN
949 viol=abs(xwgtup)/abs(xmaxup(kfpr(isub,1)))
955 IF(
mstp(123).LE.0)
THEN
956 IF(viol.LT.-1d-3)
THEN
957 WRITE(mstu(11),5000) viol,
ngen(0,3)+1
958 IF(
mstp(122).GE.1)
WRITE(mstu(11),5100) isub,
vint(21),
963 IF(viol.LT.min(-1d-3,
vint(109)))
THEN
965 IF(
mstp(123).LE.2)
WRITE(mstu(11),5200) viol,
ngen(0,3)+1
966 IF(
mstp(122).GE.1)
WRITE(mstu(11),5100) isub,
vint(21),
973 IF(mfail.EQ.0.AND.isub.NE.95.AND.isub.NE.96)
THEN
974 IF(viol.LT.
pyr(0))
THEN
976 IF(isub.GE.91.AND.isub.LE.94) isub=0
979 ELSEIF(mfail.EQ.0)
THEN
980 ratnd=siglpt/
xsec(95,1)
982 IF(loop2.EQ.1.AND.ratnd.LT.
pyr(0))
THEN
983 IF(viol.GT.
pyr(0).AND.
mint(82).EQ.1.AND.msub(95).EQ.1.AND.
984 & (isub.LE.90.OR.isub.GE.95))
ngen(95,1)=
ngen(95,1)+
mint(143)
989 IF(viol.LT.
pyr(0))
THEN
992 ELSEIF(isub.NE.95.AND.isub.NE.96)
THEN
993 IF(viol.LT.
pyr(0))
THEN
999 ratnd=siglpt/
xsec(95,1)
1000 IF(loop.EQ.1.AND.ratnd.LT.
pyr(0))
THEN
1006 IF(viol.LT.
pyr(0))
THEN
1014 IF(
mstp(123).LE.0)
THEN
1015 IF(viol.GT.1d0)
THEN
1016 WRITE(mstu(11),5300) viol,
ngen(0,3)+1
1017 IF(
mstp(122).GE.2)
WRITE(mstu(11),5100) isub,
vint(21),
1021 ELSEIF(
mstp(123).EQ.1)
THEN
1022 IF(viol.GT.
vint(108))
THEN
1024 IF(viol.GT.1.0001d0)
THEN
1026 WRITE(mstu(11),5400) viol,
ngen(0,3)+1
1027 IF(
mstp(122).GE.2)
WRITE(mstu(11),5100) isub,
vint(21),
1031 ELSEIF(viol.GT.
vint(108))
THEN
1033 IF(viol.GT.1d0)
THEN
1035 IF(
mstp(123).EQ.2)
WRITE(mstu(11),5400) viol,
ngen(0,3)+1
1036 IF(istsb.EQ.11.AND.(iabs(idwtup).EQ.1.OR.iabs(idwtup).EQ.2))
1038 xmaxup(kfpr(isub,1))=viol*xmaxup(kfpr(isub,1))
1039 IF(kfpr(isub,1).LE.9)
THEN
1040 IF(
mstp(123).EQ.2)
WRITE(mstu(11),5800) kfpr(isub,1),
1041 & xmaxup(kfpr(isub,1))
1042 ELSEIF(kfpr(isub,1).LE.99)
THEN
1043 IF(
mstp(123).EQ.2)
WRITE(mstu(11),5900) kfpr(isub,1),
1044 & xmaxup(kfpr(isub,1))
1046 IF(
mstp(123).EQ.2)
WRITE(mstu(11),6000) kfpr(isub,1),
1047 & xmaxup(kfpr(isub,1))
1050 IF(istsb.NE.11.OR.iabs(idwtup).EQ.1)
THEN
1051 xdif=
xsec(isub,1)*(viol-1d0)
1053 IF(msub(isub).EQ.1.AND.(isub.LE.90.OR.isub.GT.96))
1055 IF(
mstp(122).GE.2)
WRITE(mstu(11),5100) isub,
vint(21),
1058 IF(
mstp(123).EQ.2)
WRITE(mstu(11),5500) isub,
xsec(isub,1)
1059 ELSEIF(isub.LE.99)
THEN
1060 IF(
mstp(123).EQ.2)
WRITE(mstu(11),5600) isub,
xsec(isub,1)
1062 IF(
mstp(123).EQ.2)
WRITE(mstu(11),5700) isub,
xsec(isub,1)
1071 IF(
mint(50).EQ.1.AND.(isub.LE.90.OR.isub.GE.96).AND.
1072 &
mstp(82).GE.3)
THEN
1085 IF(
mint(82).EQ.1.AND.msub(95).EQ.1)
THEN
1086 IF(isub.LE.90.OR.isub.GE.95)
ngen(95,1)=
ngen(95,1)+
mint(143)
1087 IF(isub.LE.90.OR.isub.GE.96)
ngen(96,2)=
ngen(96,2)+1
1089 IF(isub.LE.90.OR.isub.GE.96)
mint(31)=
mint(31)+1
1092 IF(istsb.GE.11) goto 320
1097 IF(isub.NE.95.AND.(isub.NE.96.OR.
mstp(82).LE.1.OR.
1098 &
pyr(0).GT.rqqbar))
THEN
1102 mint(2)=isig(ichn,3)
1103 rsigs=rsigs-sigh(ichn)
1104 IF(rsigs.LE.0d0) goto 320
1108 ELSEIF(isub.EQ.96)
THEN
1117 IF(kfl1.EQ.kfl2.AND.
pyr(0).LT.0.5d0)
mint(2)=2
1125 IF(rsigs.GT.1d0)
mint(2)=2
1126 IF(rsigs.GT.2d0)
mint(2)=3
1130 320
IF(
mint(2).GT.10)
THEN
1150 IF(jt.EQ.1.AND.
mint(43).LE.2) mspli=1
1151 IF(jt.EQ.2.AND.mod(
mint(43),2).EQ.1) mspli=1
1152 IF(iabs(
mint(14+jt)).LE.8.OR.
mint(14+jt).EQ.21) mspli=mspli+1
1160 IF(
mstp(57).LE.1)
THEN
1161 CALL
pypdfu(22,xhrd,q2hrd,xpq)
1163 CALL
pypdfl(22,xhrd,q2hrd,xpq)
1166 IF(
mstp(13).EQ.2)
THEN
1167 q2pms=q2hrd/pmas(11,1)**2
1168 wtmx=wtmx*
log(
max(2d0,q2pms*(1d0-xhrd)/xhrd**2))
1171 xg=min(1d0-1d-10,xhrd/xe)
1172 IF(
mstp(57).LE.1)
THEN
1173 CALL
pypdfu(22,xg,q2hrd,xpq)
1175 CALL
pypdfl(22,xg,q2hrd,xpq)
1177 wt=(1d0+(1d0-xe)**2)*xpq(kflh)
1178 IF(
mstp(13).EQ.2) wt=wt*
log(
max(2d0,q2pms*(1d0-xe)/xe**2))
1179 IF(wt.LT.
pyr(0)*wtmx) goto 330
1183 xsfx(jt,kfls)=xpq(kfls)
1192 IF(
mint(107).EQ.3)
THEN
1193 IF(
mstp(66).EQ.1)
THEN
1195 ELSEIF(
mstp(66).EQ.2)
THEN
1199 q2int=sqrt(q0s*q2eff)
1201 ELSEIF(
mstp(66).EQ.3)
THEN
1202 vint(283)=q0s*(q1s/q0s)**
pyr(0)
1203 ELSEIF(
mstp(66).GE.4)
THEN
1206 & (q0s+
pyr(0)*(q1s-q0s)+
ps)-
ps
1210 IF(
mint(108).EQ.3)
THEN
1211 IF(
mstp(66).EQ.1)
THEN
1213 ELSEIF(
mstp(66).EQ.2)
THEN
1217 q2int=sqrt(q0s*q2eff)
1219 ELSEIF(
mstp(66).EQ.3)
THEN
1220 vint(284)=q0s*(q1s/q0s)**
pyr(0)
1221 ELSEIF(
mstp(66).GE.4)
THEN
1224 & (q0s+
pyr(0)*(q1s-q0s)+
ps)-
ps
1230 5000
FORMAT(/1
x,
'Error: negative cross-section fraction',1
p,d11.3,1
x,
1231 &
'in event',1
x,i7,
'D0'/1
x,
'Execution stopped!')
1232 5100
FORMAT(1
x,
'ISUB = ',
i3,
'; Point of violation:'/1
x,
'tau =',1
p,
1233 &d11.3,
', y* =',d11.3,
', cthe = ',0
p,f11.7,
', tau'' =',1
p,d11.3)
1234 5200
FORMAT(/1
x,
'Warning: negative cross-section fraction',1
p,d11.3,1
x,
1236 5300
FORMAT(/1
x,
'Error: maximum violated by',1
p,d11.3,1
x,
1237 &
'in event',1
x,i7,
'D0'/1
x,
'Execution stopped!')
1238 5400
FORMAT(/1
x,
'Advisory warning: maximum violated by',1
p,d11.3,1
x,
1240 5500
FORMAT(1
x,
'XSEC(',
i1,
',1) increased to',1
p,d11.3)
1241 5600
FORMAT(1
x,
'XSEC(',
i2,
',1) increased to',1
p,d11.3)
1242 5700
FORMAT(1
x,
'XSEC(',
i3,
',1) increased to',1
p,d11.3)
1243 5800
FORMAT(1
x,
'XMAXUP(',
i1,
') increased to',1
p,d11.3)
1244 5900
FORMAT(1
x,
'XMAXUP(',
i2,
') increased to',1
p,d11.3)
1245 6000
FORMAT(1
x,
'XMAXUP(',
i3,
') increased to',1
p,d11.3)