83 SUBROUTINE lu1ent(IP,KF,PE,THE,PHI)
86 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
87 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
88 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
89 SAVE /lujets/,/ludat1/,/ludat2/
93 IF(mstu(12).GE.1)
CALL lulist(0)
95 IF(ipa.GT.mstu(4))
CALL luerrm(21,
96 &
'(LU1ENT:) writing outside LUJETS memory')
98 IF(kc.EQ.0)
CALL luerrm(12,
'(LU1ENT:) unknown flavour code')
102 IF(mstu(10).EQ.1) pm=p(ipa,5)
103 IF(mstu(10).GE.2) pm=ulmass(kf)
112 IF(ip.LT.0) k(ipa,1)=2
116 pa=sqrt(p(ipa,4)**2-p(ipa,5)**2)
117 p(ipa,1)=pa*sin(the)*cos(phi)
118 p(ipa,2)=pa*sin(the)*sin(phi)
123 IF(ip.EQ.0)
CALL luexec
130 SUBROUTINE lu2ent(IP,KF1,KF2,PECM)
134 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
135 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
136 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
137 SAVE /lujets/,/ludat1/,/ludat2/
141 IF(mstu(12).GE.1)
CALL lulist(0)
143 IF(ipa.GT.mstu(4)-1)
CALL luerrm(21,
144 &
'(LU2ENT:) writing outside LUJETS memory')
147 IF(kc1.EQ.0.OR.kc2.EQ.0)
CALL luerrm(12,
148 &
'(LU2ENT:) unknown flavour code')
152 IF(mstu(10).EQ.1) pm1=p(ipa,5)
153 IF(mstu(10).GE.2) pm1=ulmass(kf1)
155 IF(mstu(10).EQ.1) pm2=p(ipa+1,5)
156 IF(mstu(10).GE.2) pm2=ulmass(kf2)
166 kq1=kchg(kc1,2)*isign(1,kf1)
167 kq2=kchg(kc2,2)*isign(1,kf2)
168 IF(mstu(19).EQ.1)
THEN 171 IF(kq1+kq2.NE.0.AND.kq1+kq2.NE.4)
CALL luerrm(2,
172 &
'(LU2ENT:) unphysical flavour combination')
180 IF(kq1.NE.0.AND.kq2.NE.0) k(ipa,1)=2
187 k(ipa,4)=mstu(5)*(ipa+1)
189 k(ipa+1,4)=mstu(5)*ipa
190 k(ipa+1,5)=k(ipa+1,4)
194 IF(pecm.LE.pm1+pm2)
CALL luerrm(13,
195 &
'(LU2ENT:) energy smaller than sum of masses')
196 pa=sqrt(max(0.,(pecm**2-pm1**2-pm2**2)**2-(2.*pm1*pm2)**2))/
199 p(ipa,4)=sqrt(pm1**2+pa**2)
202 p(ipa+1,4)=sqrt(pm2**2+pa**2)
207 IF(ip.EQ.0)
CALL luexec
214 SUBROUTINE lu3ent(IP,KF1,KF2,KF3,PECM,X1,X3)
219 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
220 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
221 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
222 SAVE /lujets/,/ludat1/,/ludat2/
226 IF(mstu(12).GE.1)
CALL lulist(0)
228 IF(ipa.GT.mstu(4)-2)
CALL luerrm(21,
229 &
'(LU3ENT:) writing outside LUJETS memory')
233 IF(kc1.EQ.0.OR.kc2.EQ.0.OR.kc3.EQ.0)
CALL luerrm(12,
234 &
'(LU3ENT:) unknown flavour code')
238 IF(mstu(10).EQ.1) pm1=p(ipa,5)
239 IF(mstu(10).GE.2) pm1=ulmass(kf1)
241 IF(mstu(10).EQ.1) pm2=p(ipa+1,5)
242 IF(mstu(10).GE.2) pm2=ulmass(kf2)
244 IF(mstu(10).EQ.1) pm3=p(ipa+2,5)
245 IF(mstu(10).GE.2) pm3=ulmass(kf3)
255 kq1=kchg(kc1,2)*isign(1,kf1)
256 kq2=kchg(kc2,2)*isign(1,kf2)
257 kq3=kchg(kc3,2)*isign(1,kf3)
258 IF(mstu(19).EQ.1)
THEN 260 ELSEIF(kq1.EQ.0.AND.kq2.EQ.0.AND.kq3.EQ.0)
THEN 261 ELSEIF(kq1.NE.0.AND.kq2.EQ.2.AND.(kq1+kq3.EQ.0.OR.
264 CALL luerrm(2,
'(LU3ENT:) unphysical flavour combination')
273 IF(kq1.NE.0.AND.(kq2.NE.0.OR.kq3.NE.0)) k(ipa,1)=2
275 IF(kq2.NE.0.AND.kq3.NE.0) k(ipa+1,1)=2
285 k(ipa,kcs)=mstu(5)*(ipa+1)
286 k(ipa,9-kcs)=mstu(5)*(ipa+2)
287 k(ipa+1,kcs)=mstu(5)*(ipa+2)
288 k(ipa+1,9-kcs)=mstu(5)*ipa
289 k(ipa+2,kcs)=mstu(5)*ipa
290 k(ipa+2,9-kcs)=mstu(5)*(ipa+1)
295 IF(0.5*x1*pecm.LE.pm1.OR.0.5*(2.-x1-x3)*pecm.LE.pm2.OR.
296 &0.5*x3*pecm.LE.pm3) mkerr=1
297 pa1=sqrt(max(1e-10,(0.5*x1*pecm)**2-pm1**2))
298 pa2=sqrt(max(1e-10,(0.5*(2.-x1-x3)*pecm)**2-pm2**2))
299 pa3=sqrt(max(1e-10,(0.5*x3*pecm)**2-pm3**2))
300 cthe2=(pa3**2-pa1**2-pa2**2)/(2.*pa1*pa2)
301 cthe3=(pa2**2-pa1**2-pa3**2)/(2.*pa1*pa3)
302 IF(abs(cthe2).GE.1.001.OR.abs(cthe3).GE.1.001) mkerr=1
303 cthe3=max(-1.,min(1.,cthe3))
304 IF(mkerr.NE.0)
CALL luerrm(13,
305 &
'(LU3ENT:) unphysical kinematical variable setup')
309 p(ipa,4)=sqrt(pa1**2+pm1**2)
311 p(ipa+2,1)=pa3*sqrt(1.-cthe3**2)
313 p(ipa+2,4)=sqrt(pa3**2+pm3**2)
315 p(ipa+1,1)=-p(ipa+2,1)
316 p(ipa+1,3)=-p(ipa,3)-p(ipa+2,3)
317 p(ipa+1,4)=sqrt(p(ipa+1,1)**2+p(ipa+1,3)**2+pm2**2)
322 IF(ip.EQ.0)
CALL luexec
329 SUBROUTINE lu4ent(IP,KF1,KF2,KF3,KF4,PECM,X1,X2,X4,X12,X14)
334 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
335 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
336 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
337 SAVE /lujets/,/ludat1/,/ludat2/
341 IF(mstu(12).GE.1)
CALL lulist(0)
343 IF(ipa.GT.mstu(4)-3)
CALL luerrm(21,
344 &
'(LU4ENT:) writing outside LUJETS momory')
349 IF(kc1.EQ.0.OR.kc2.EQ.0.OR.kc3.EQ.0.OR.kc4.EQ.0)
CALL luerrm(12,
350 &
'(LU4ENT:) unknown flavour code')
354 IF(mstu(10).EQ.1) pm1=p(ipa,5)
355 IF(mstu(10).GE.2) pm1=ulmass(kf1)
357 IF(mstu(10).EQ.1) pm2=p(ipa+1,5)
358 IF(mstu(10).GE.2) pm2=ulmass(kf2)
360 IF(mstu(10).EQ.1) pm3=p(ipa+2,5)
361 IF(mstu(10).GE.2) pm3=ulmass(kf3)
363 IF(mstu(10).EQ.1) pm4=p(ipa+3,5)
364 IF(mstu(10).GE.2) pm4=ulmass(kf4)
374 kq1=kchg(kc1,2)*isign(1,kf1)
375 kq2=kchg(kc2,2)*isign(1,kf2)
376 kq3=kchg(kc3,2)*isign(1,kf3)
377 kq4=kchg(kc4,2)*isign(1,kf4)
378 IF(mstu(19).EQ.1)
THEN 380 ELSEIF(kq1.EQ.0.AND.kq2.EQ.0.AND.kq3.EQ.0.AND.kq4.EQ.0)
THEN 381 ELSEIF(kq1.NE.0.AND.kq2.EQ.2.AND.kq3.EQ.2.AND.(kq1+kq4.EQ.0.OR.
383 ELSEIF(kq1.NE.0.AND.kq1+kq2.EQ.0.AND.kq3.NE.0.AND.kq3+kq4.EQ.0.)
386 CALL luerrm(2,
'(LU4ENT:) unphysical flavour combination')
396 IF(kq1.NE.0.AND.(kq2.NE.0.OR.kq3.NE.0.OR.kq4.NE.0)) k(ipa,1)=2
398 IF(kq2.NE.0.AND.kq1+kq2.NE.0.AND.(kq3.NE.0.OR.kq4.NE.0))
401 IF(kq3.NE.0.AND.kq4.NE.0) k(ipa+2,1)=2
406 ELSEIF(kq1+kq2.NE.0)
THEN 413 k(ipa,kcs)=mstu(5)*(ipa+1)
414 k(ipa,9-kcs)=mstu(5)*(ipa+3)
415 k(ipa+1,kcs)=mstu(5)*(ipa+2)
416 k(ipa+1,9-kcs)=mstu(5)*ipa
417 k(ipa+2,kcs)=mstu(5)*(ipa+3)
418 k(ipa+2,9-kcs)=mstu(5)*(ipa+1)
419 k(ipa+3,kcs)=mstu(5)*ipa
420 k(ipa+3,9-kcs)=mstu(5)*(ipa+2)
428 k(ipa,4)=mstu(5)*(ipa+1)
430 k(ipa+1,4)=mstu(5)*ipa
431 k(ipa+1,5)=k(ipa+1,4)
432 k(ipa+2,4)=mstu(5)*(ipa+3)
433 k(ipa+2,5)=k(ipa+2,4)
434 k(ipa+3,4)=mstu(5)*(ipa+2)
435 k(ipa+3,5)=k(ipa+3,4)
440 IF(0.5*x1*pecm.LE.pm1.OR.0.5*x2*pecm.LE.pm2.OR.0.5*(2.-x1-x2-x4)*
441 &pecm.LE.pm3.OR.0.5*x4*pecm.LE.pm4) mkerr=1
442 pa1=sqrt(max(1e-10,(0.5*x1*pecm)**2-pm1**2))
443 pa2=sqrt(max(1e-10,(0.5*x2*pecm)**2-pm2**2))
444 pa4=sqrt(max(1e-10,(0.5*x4*pecm)**2-pm4**2))
445 x24=x1+x2+x4-1.-x12-x14+(pm3**2-pm1**2-pm2**2-pm4**2)/pecm**2
446 cthe4=(x1*x4-2.*x14)*pecm**2/(4.*pa1*pa4)
447 IF(abs(cthe4).GE.1.002) mkerr=1
448 cthe4=max(-1.,min(1.,cthe4))
449 sthe4=sqrt(1.-cthe4**2)
450 cthe2=(x1*x2-2.*x12)*pecm**2/(4.*pa1*pa2)
451 IF(abs(cthe2).GE.1.002) mkerr=1
452 cthe2=max(-1.,min(1.,cthe2))
453 sthe2=sqrt(1.-cthe2**2)
454 cphi2=((x2*x4-2.*x24)*pecm**2-4.*pa2*cthe2*pa4*cthe4)/
455 &max(1e-8*pecm**2,4.*pa2*sthe2*pa4*sthe4)
456 IF(abs(cphi2).GE.1.05) mkerr=1
457 cphi2=max(-1.,min(1.,cphi2))
458 IF(mkerr.EQ.1)
CALL luerrm(13,
459 &
'(LU4ENT:) unphysical kinematical variable setup')
463 p(ipa,4)=sqrt(pa1**2+pm1**2)
467 p(ipa+3,4)=sqrt(pa4**2+pm4**2)
469 p(ipa+1,1)=pa2*sthe2*cphi2
470 p(ipa+1,2)=pa2*sthe2*sqrt(1.-cphi2**2)*(-1.)**int(rlu(0)+0.5)
472 p(ipa+1,4)=sqrt(pa2**2+pm2**2)
474 p(ipa+2,1)=-p(ipa+1,1)-p(ipa+3,1)
475 p(ipa+2,2)=-p(ipa+1,2)
476 p(ipa+2,3)=-p(ipa,3)-p(ipa+1,3)-p(ipa+3,3)
477 p(ipa+2,4)=sqrt(p(ipa+2,1)**2+p(ipa+2,2)**2+p(ipa+2,3)**2+pm3**2)
482 IF(ip.EQ.0)
CALL luexec
489 SUBROUTINE lujoin(NJOIN,IJOIN)
493 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
494 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
495 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
496 SAVE /lujets/,/ludat1/,/ludat2/
500 IF(njoin.LT.2)
GOTO 120
504 IF(i.LE.0.OR.i.GT.n)
GOTO 120
505 IF(k(i,1).LT.1.OR.k(i,1).GT.3)
GOTO 120
508 kq=kchg(kc,2)*isign(1,k(i,2))
510 IF(ijn.NE.1.AND.ijn.NE.njoin.AND.kq.NE.2)
GOTO 120
511 IF(kq.NE.2) kqsum=kqsum+kq
514 IF(kqsum.NE.0)
GOTO 120
518 IF(kqs.EQ.2) kcs=int(4.5+rlu(0))
522 IF(ijn.NE.1) ip=ijoin(ijn-1)
523 IF(ijn.EQ.1) ip=ijoin(njoin)
524 IF(ijn.NE.njoin) in=ijoin(ijn+1)
525 IF(ijn.EQ.njoin) in=ijoin(1)
527 k(i,9-kcs)=mstu(5)*ip
528 IF(ijn.EQ.1.AND.kqs.NE.2) k(i,9-kcs)=0
529 IF(ijn.EQ.njoin.AND.kqs.NE.2) k(i,kcs)=0
535 &
'(LUJOIN:) given entries can not be joined by one string')
542 SUBROUTINE lugive(CHIN)
545 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
546 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
547 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
548 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
549 common/ludat4/chaf(500)
551 common/ludatr/mrlu(6),rrlu(100)
552 common/pysubs/msel,msub(200),kfin(2,-40:40),ckin(200)
553 common/pypars/mstp(200),parp(200),msti(200),pari(200)
554 common/pyint1/mint(400),vint(400)
555 common/pyint2/iset(200),kfpr(200,2),coef(200,20),icol(40,4,2)
556 common/pyint3/xsfx(2,-40:40),isig(1000,3),sigh(1000)
557 common/pyint4/widp(21:40,0:40),wide(21:40,0:40),wids(21:40,3)
558 common/pyint5/ngen(0:200,3),xsec(0:200,3)
559 common/pyint6/proc(0:200)
560 common/pyint7/sigt(0:6,0:6,0:5)
562 SAVE /lujets/,/ludat1/,/ludat2/,/ludat3/,/ludat4/,/ludatr/
563 SAVE /pysubs/,/pypars/,/pyint1/,/pyint2/,/pyint3/,/pyint4/,
564 &/pyint5/,/pyint6/,/pyint7/
565 CHARACTER CHIN*(*),CHFIX*104,CHBIT*104,CHOLD*8,CHNEW*8,CHOLD2*28,
566 &CHNEW2*28,CHNAM*4,CHVAR(43)*4,CHALP(2)*26,CHIND*8,CHINI*10,
568 dimension msvar(43,8)
572 DATA chvar/
'N',
'K',
'P',
'V',
'MSTU',
'PARU',
'MSTJ',
'PARJ',
'KCHG',
573 &
'PMAS',
'PARF',
'VCKM',
'MDCY',
'MDME',
'BRAT',
'KFDP',
'CHAF',
'MRLU',
574 &
'RRLU',
'MSEL',
'MSUB',
'KFIN',
'CKIN',
'MSTP',
'PARP',
'MSTI',
'PARI',
575 &
'MINT',
'VINT',
'ISET',
'KFPR',
'COEF',
'ICOL',
'XSFX',
'ISIG',
'SIGH',
576 &
'WIDP',
'WIDE',
'WIDS',
'NGEN',
'XSEC',
'PROC',
'SIGT'/
577 DATA ((msvar(i,j),j=1,8),i=1,43)/ 1,7*0, 1,2,1,4000,1,5,2*0,
578 & 2,2,1,4000,1,5,2*0, 2,2,1,4000,1,5,2*0, 1,1,1,200,4*0,
579 & 2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0,
580 & 1,2,1,500,1,3,2*0, 2,2,1,500,1,4,2*0, 2,1,1,2000,4*0,
581 & 2,2,1,4,1,4,2*0, 1,2,1,500,1,3,2*0, 1,2,1,2000,1,2,2*0,
582 & 2,1,1,2000,4*0, 1,2,1,2000,1,5,2*0, 3,1,1,500,4*0,
583 & 1,1,1,6,4*0, 2,1,1,100,4*0,
584 & 1,7*0, 1,1,1,200,4*0, 1,2,1,2,-40,40,2*0, 2,1,1,200,4*0,
585 & 1,1,1,200,4*0, 2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0,
586 & 1,1,1,400,4*0, 2,1,1,400,4*0, 1,1,1,200,4*0,
587 & 1,2,1,200,1,2,2*0, 2,2,1,200,1,20,2*0, 1,3,1,40,1,4,1,2,
588 & 2,2,1,2,-40,40,2*0, 1,2,1,1000,1,3,2*0, 2,1,1,1000,4*0,
589 & 2,2,21,40,0,40,2*0, 2,2,21,40,0,40,2*0, 2,2,21,40,1,3,2*0,
590 & 1,2,0,200,1,3,2*0, 2,2,0,200,1,3,2*0, 4,1,0,200,4*0,
592 DATA chalp/
'abcdefghijklmnopqrstuvwxyz',
593 &
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
596 IF(mstu(12).GE.1)
CALL lulist(0)
600 IF(chbit(lbit:lbit).EQ.
' ')
GOTO 100
603 IF(chbit(lcom:lcom).EQ.
' ')
GOTO 110
605 chfix(ltot:ltot)=chbit(lcom:lcom)
610 IF(lhig.LE.ltot.AND.chfix(lhig:lhig).NE.
';')
GOTO 130
612 chbit(1:lbit)=chfix(llow+1:lhig-1)
617 IF(chbit(lnam:lnam).NE.
'('.AND.chbit(lnam:lnam).NE.
'='.AND.
619 chnam=chbit(1:lnam-1)//
' ' 622 IF(chnam(lcom:lcom).EQ.chalp(1)(lalp:lalp)) chnam(lcom:lcom)=
628 IF(chnam.EQ.chvar(iv)) ivar=iv
631 CALL luerrm(18,
'(LUGIVE:) do not recognize variable '//chnam)
633 IF(llow.LT.ltot)
GOTO 120
642 IF(chbit(lnam:lnam).EQ.
'(')
THEN 645 IF(chbit(lind:lind).NE.
')'.AND.chbit(lind:lind).NE.
',')
GOTO 180
647 IF((chbit(lnam+1:lnam+1).EQ.
'C'.OR.chbit(lnam+1:lnam+1).EQ.
'c').
649 chind(lnam-lind+11:8)=chbit(lnam+2:lind-1)
650 READ(chind,
'(I8)') kf
652 ELSEIF(chbit(lnam+1:lnam+1).EQ.
'C'.OR.chbit(lnam+1:lnam+1).EQ.
654 CALL luerrm(18,
'(LUGIVE:) not allowed to use C index for '//
657 IF(llow.LT.ltot)
GOTO 120
660 chind(lnam-lind+10:8)=chbit(lnam+1:lind-1)
661 READ(chind,
'(I8)') i1
664 IF(chbit(lnam:lnam).EQ.
')') lnam=lnam+1
667 IF(chbit(lnam:lnam).EQ.
',')
THEN 670 IF(chbit(lind:lind).NE.
')'.AND.chbit(lind:lind).NE.
',')
GOTO 190
672 chind(lnam-lind+10:8)=chbit(lnam+1:lind-1)
673 READ(chind,
'(I8)') i2
675 IF(chbit(lnam:lnam).EQ.
')') lnam=lnam+1
678 IF(chbit(lnam:lnam).EQ.
',')
THEN 681 IF(chbit(lind:lind).NE.
')'.AND.chbit(lind:lind).NE.
',')
GOTO 200
683 chind(lnam-lind+10:8)=chbit(lnam+1:lind-1)
684 READ(chind,
'(I8)') i3
691 IF(nindx.NE.msvar(ivar,2)) ierr=1
692 IF(nindx.GE.1.AND.(i1.LT.msvar(ivar,3).OR.i1.GT.msvar(ivar,4)))
694 IF(nindx.GE.2.AND.(i2.LT.msvar(ivar,5).OR.i2.GT.msvar(ivar,6)))
696 IF(nindx.EQ.3.AND.(i3.LT.msvar(ivar,7).OR.i3.GT.msvar(ivar,8)))
698 IF(chbit(lnam:lnam).NE.
'=') ierr=5
700 CALL luerrm(18,
'(LUGIVE:) unallowed indices for '//
703 IF(llow.LT.ltot)
GOTO 120
710 ELSEIF(ivar.EQ.2)
THEN 712 ELSEIF(ivar.EQ.3)
THEN 714 ELSEIF(ivar.EQ.4)
THEN 716 ELSEIF(ivar.EQ.5)
THEN 718 ELSEIF(ivar.EQ.6)
THEN 720 ELSEIF(ivar.EQ.7)
THEN 722 ELSEIF(ivar.EQ.8)
THEN 724 ELSEIF(ivar.EQ.9)
THEN 726 ELSEIF(ivar.EQ.10)
THEN 728 ELSEIF(ivar.EQ.11)
THEN 730 ELSEIF(ivar.EQ.12)
THEN 732 ELSEIF(ivar.EQ.13)
THEN 734 ELSEIF(ivar.EQ.14)
THEN 736 ELSEIF(ivar.EQ.15)
THEN 738 ELSEIF(ivar.EQ.16)
THEN 740 ELSEIF(ivar.EQ.17)
THEN 742 ELSEIF(ivar.EQ.18)
THEN 744 ELSEIF(ivar.EQ.19)
THEN 746 ELSEIF(ivar.EQ.20)
THEN 748 ELSEIF(ivar.EQ.21)
THEN 750 ELSEIF(ivar.EQ.22)
THEN 752 ELSEIF(ivar.EQ.23)
THEN 754 ELSEIF(ivar.EQ.24)
THEN 756 ELSEIF(ivar.EQ.25)
THEN 758 ELSEIF(ivar.EQ.26)
THEN 760 ELSEIF(ivar.EQ.27)
THEN 762 ELSEIF(ivar.EQ.28)
THEN 764 ELSEIF(ivar.EQ.29)
THEN 766 ELSEIF(ivar.EQ.30)
THEN 768 ELSEIF(ivar.EQ.31)
THEN 770 ELSEIF(ivar.EQ.32)
THEN 772 ELSEIF(ivar.EQ.33)
THEN 774 ELSEIF(ivar.EQ.34)
THEN 776 ELSEIF(ivar.EQ.35)
THEN 778 ELSEIF(ivar.EQ.36)
THEN 780 ELSEIF(ivar.EQ.37)
THEN 782 ELSEIF(ivar.EQ.38)
THEN 784 ELSEIF(ivar.EQ.39)
THEN 786 ELSEIF(ivar.EQ.40)
THEN 788 ELSEIF(ivar.EQ.41)
THEN 790 ELSEIF(ivar.EQ.42)
THEN 792 ELSEIF(ivar.EQ.43)
THEN 797 IF(lnam.GE.lbit)
THEN 799 chbit(15:60)=
' has the value ' 800 IF(msvar(ivar,1).EQ.1)
THEN 801 WRITE(chbit(51:60),
'(I10)') iold
802 ELSEIF(msvar(ivar,1).EQ.2)
THEN 803 WRITE(chbit(47:60),
'(F14.5)') rold
804 ELSEIF(msvar(ivar,1).EQ.3)
THEN 809 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
811 IF(llow.LT.ltot)
GOTO 120
816 IF(msvar(ivar,1).EQ.1)
THEN 818 chini(lnam-lbit+11:10)=chbit(lnam+1:lbit)
819 READ(chini,
'(I10)') inew
820 ELSEIF(msvar(ivar,1).EQ.2)
THEN 822 chinr(lnam-lbit+17:16)=chbit(lnam+1:lbit)
823 READ(chinr,
'(F16.2)') rnew
824 ELSEIF(msvar(ivar,1).EQ.3)
THEN 825 chnew=chbit(lnam+1:lbit)//
' ' 827 chnew2=chbit(lnam+1:lbit)//
' ' 833 ELSEIF(ivar.EQ.2)
THEN 835 ELSEIF(ivar.EQ.3)
THEN 837 ELSEIF(ivar.EQ.4)
THEN 839 ELSEIF(ivar.EQ.5)
THEN 841 ELSEIF(ivar.EQ.6)
THEN 843 ELSEIF(ivar.EQ.7)
THEN 845 ELSEIF(ivar.EQ.8)
THEN 847 ELSEIF(ivar.EQ.9)
THEN 849 ELSEIF(ivar.EQ.10)
THEN 851 ELSEIF(ivar.EQ.11)
THEN 853 ELSEIF(ivar.EQ.12)
THEN 855 ELSEIF(ivar.EQ.13)
THEN 857 ELSEIF(ivar.EQ.14)
THEN 859 ELSEIF(ivar.EQ.15)
THEN 861 ELSEIF(ivar.EQ.16)
THEN 863 ELSEIF(ivar.EQ.17)
THEN 865 ELSEIF(ivar.EQ.18)
THEN 867 ELSEIF(ivar.EQ.19)
THEN 869 ELSEIF(ivar.EQ.20)
THEN 871 ELSEIF(ivar.EQ.21)
THEN 873 ELSEIF(ivar.EQ.22)
THEN 875 ELSEIF(ivar.EQ.23)
THEN 877 ELSEIF(ivar.EQ.24)
THEN 879 ELSEIF(ivar.EQ.25)
THEN 881 ELSEIF(ivar.EQ.26)
THEN 883 ELSEIF(ivar.EQ.27)
THEN 885 ELSEIF(ivar.EQ.28)
THEN 887 ELSEIF(ivar.EQ.29)
THEN 889 ELSEIF(ivar.EQ.30)
THEN 891 ELSEIF(ivar.EQ.31)
THEN 893 ELSEIF(ivar.EQ.32)
THEN 895 ELSEIF(ivar.EQ.33)
THEN 897 ELSEIF(ivar.EQ.34)
THEN 899 ELSEIF(ivar.EQ.35)
THEN 901 ELSEIF(ivar.EQ.36)
THEN 903 ELSEIF(ivar.EQ.37)
THEN 905 ELSEIF(ivar.EQ.38)
THEN 907 ELSEIF(ivar.EQ.39)
THEN 909 ELSEIF(ivar.EQ.40)
THEN 911 ELSEIF(ivar.EQ.41)
THEN 913 ELSEIF(ivar.EQ.42)
THEN 915 ELSEIF(ivar.EQ.43)
THEN 921 chbit(15:60)=
' changed from to ' 922 IF(msvar(ivar,1).EQ.1)
THEN 923 WRITE(chbit(33:42),
'(I10)') iold
924 WRITE(chbit(51:60),
'(I10)') inew
925 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
926 ELSEIF(msvar(ivar,1).EQ.2)
THEN 927 WRITE(chbit(29:42),
'(F14.5)') rold
928 WRITE(chbit(47:60),
'(F14.5)') rnew
929 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
930 ELSEIF(msvar(ivar,1).EQ.3)
THEN 933 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
935 chbit(15:88)=
' changed from '//chold2//
' to '//chnew2
936 IF(mstu(13).GE.1)
WRITE(mstu(11),5100) chbit(1:88)
939 IF(llow.LT.ltot)
GOTO 120
953 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
954 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
955 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
956 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
957 SAVE /lujets/,/ludat1/,/ludat2/,/ludat3/
962 IF(mstu(12).GE.1)
CALL lulist(0)
967 IF(mstu(17).LE.0) mstu(90)=0
978 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 130
980 ps(1,j)=ps(1,j)+p(i,j)
982 ps(1,6)=ps(1,6)+luchge(k(i,2))
995 IF(k(ip,1).GT.0.AND.k(ip,1).LE.10) kc=lucomp(k(ip,2))
1000 ELSEIF(kchg(kc,2).EQ.0)
THEN 1001 IF(mstj(21).GE.1.AND.mdcy(kc,1).GE.1.AND.(mstj(51).LE.0.OR.mbe.
1002 & eq.2.OR.pmas(kc,2).GE.parj(91).OR.iabs(k(ip,2)).EQ.311))
1006 IF(mstj(92).GT.0)
THEN 1008 qmax=sqrt(max(0.,(p(ip1,4)+p(ip1+1,4))**2-(p(ip1,1)+p(ip1+1,
1009 & 1))**2-(p(ip1,2)+p(ip1+1,2))**2-(p(ip1,3)+p(ip1+1,3))**2))
1010 CALL lushow(ip1,ip1+1,qmax)
1013 ELSEIF(mstj(92).LT.0)
THEN 1015 CALL lushow(ip1,-3,p(ip,5))
1021 ELSEIF(k(ip,1).EQ.1.OR.k(ip,1).EQ.2)
THEN 1023 IF(mfrag.GE.1.AND.k(ip,1).EQ.1) mfrag=2
1024 IF(mstj(21).GE.2.AND.k(ip,1).EQ.2.AND.n.GT.ip)
THEN 1025 IF(k(ip+1,1).EQ.1.AND.k(ip+1,3).EQ.k(ip,3).AND.
1026 & k(ip,3).GT.0.AND.k(ip,3).LT.ip)
THEN 1027 IF(kchg(lucomp(k(k(ip,3),2)),2).EQ.0) mfrag=min(1,mfrag)
1030 IF(mfrag.EQ.1)
CALL lustrf(ip)
1031 IF(mfrag.EQ.2)
CALL luindf(ip)
1032 IF(mfrag.EQ.2.AND.k(ip,1).EQ.1) mcons=0
1033 IF(mfrag.EQ.2.AND.(mstj(3).LE.0.OR.mod(mstj(3),5).EQ.0)) mcons=0
1037 IF(mstu(24).NE.0.AND.mstu(21).GE.2)
THEN 1038 ELSEIF(ip.LT.n.AND.n.LT.mstu(4)-20-mstu(32))
THEN 1040 ELSEIF(ip.LT.n)
THEN 1041 CALL luerrm(11,
'(LUEXEC:) no more memory left in LUJETS')
1045 IF(mbe.EQ.1.AND.mstj(51).GE.1)
THEN 1052 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 170
1054 ps(2,j)=ps(2,j)+p(i,j)
1056 ps(2,6)=ps(2,6)+luchge(k(i,2))
1058 pdev=(abs(ps(2,1)-ps(1,1))+abs(ps(2,2)-ps(1,2))+abs(ps(2,3)-
1059 &ps(1,3))+abs(ps(2,4)-ps(1,4)))/(1.+abs(ps(2,4))+abs(ps(1,4)))
1060 IF(mcons.EQ.1.AND.pdev.GT.paru(11))
CALL luerrm(15,
1061 &
'(LUEXEC:) four-momentum was not conserved')
1062 IF(mcons.EQ.1.AND.abs(ps(2,6)-ps(1,6)).GT.0.1)
CALL luerrm(15,
1063 &
'(LUEXEC:) charge was not conserved')
1070 SUBROUTINE luprep(IP)
1074 IMPLICIT DOUBLE PRECISION(d)
1075 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
1076 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
1077 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
1078 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
1079 SAVE /lujets/,/ludat1/,/ludat2/,/ludat3/
1080 dimension dps(5),dpc(5),ue(3)
1085 DO 120 i=max(1,ip),n
1086 IF(k(i,1).NE.3)
GOTO 120
1088 IF(kc.EQ.0)
GOTO 120
1090 IF(kq.EQ.0.OR.(mqgst.EQ.1.AND.kq.EQ.2))
GOTO 120
1094 IF(kq*isign(1,k(i,2)).LT.0) kcs=5
1098 IF(nstp.GT.4*n)
THEN 1099 CALL luerrm(14,
'(LUPREP:) caught in infinite loop')
1104 IF(k(ia,1).EQ.3)
THEN 1105 IF(i1.GE.mstu(4)-mstu(32)-5)
THEN 1106 CALL luerrm(11,
'(LUPREP:) no more memory left in LUJETS')
1111 IF(nstp.GE.2.AND.iabs(k(ia,2)).NE.21) k(i1,1)=1
1121 IF(k(i1,1).EQ.1)
GOTO 120
1126 IF(mod(k(ib,kcs)/mstu(5)**2,2).EQ.0.AND.mod(k(ib,kcs),mstu(5)).
1128 ia=mod(k(ib,kcs),mstu(5))
1129 k(ib,kcs)=k(ib,kcs)+mstu(5)**2
1132 IF(k(ib,kcs).GE.2*mstu(5)**2.OR.mod(k(ib,kcs)/mstu(5),mstu(5)).
1134 ia=mod(k(ib,kcs)/mstu(5),mstu(5))
1135 k(ib,kcs)=k(ib,kcs)+2*mstu(5)**2
1138 IF(ia.LE.0.OR.ia.GT.n)
THEN 1139 CALL luerrm(12,
'(LUPREP:) colour rearrangement failed')
1142 IF(mod(k(ia,4)/mstu(5),mstu(5)).EQ.ib.OR.mod(k(ia,5)/mstu(5),
1143 &mstu(5)).EQ.ib)
THEN 1144 IF(mrev.EQ.1) kcs=9-kcs
1145 IF(mod(k(ia,kcs)/mstu(5),mstu(5)).NE.ib) kcs=9-kcs
1146 k(ia,kcs)=k(ia,kcs)+2*mstu(5)**2
1148 IF(mrev.EQ.0) kcs=9-kcs
1149 IF(mod(k(ia,kcs),mstu(5)).NE.ib) kcs=9-kcs
1150 k(ia,kcs)=k(ia,kcs)+mstu(5)**2
1152 IF(ia.NE.i)
GOTO 100
1157 IF(mstj(14).LT.0)
RETURN 1160 IF(mstj(14).EQ.0)
GOTO 320
1165 DO 190 i=max(1,ip),ns
1166 IF(k(i,1).NE.1.AND.k(i,1).NE.2)
THEN 1167 ELSEIF(k(i,1).EQ.2.AND.ic.EQ.0)
THEN 1174 dps(5)=ulmass(k(i,2))
1175 ELSEIF(k(i,1).EQ.2)
THEN 1177 dps(j)=dps(j)+p(i,j)
1179 ELSEIF(ic.NE.0.AND.kchg(lucomp(k(i,2)),2).NE.0)
THEN 1181 dps(j)=dps(j)+p(i,j)
1184 dps(5)=dps(5)+ulmass(k(i,2))
1185 pd=sqrt(max(0d0,dps(4)**2-dps(1)**2-dps(2)**2-dps(3)**2))-dps(5)
1199 IF(pdm.GE.parj(32))
GOTO 320
1203 pecm=sqrt(max(0d0,dpc(4)**2-dpc(1)**2-dpc(2)**2-dpc(3)**2))
1218 IF(mstu(16).NE.2)
THEN 1229 IF(iabs(k(ic1,2)).NE.21)
THEN 1230 kc1=lucomp(k(ic1,2))
1231 kc2=lucomp(k(ic2,2))
1232 IF(kc1.EQ.0.OR.kc2.EQ.0)
GOTO 320
1233 kq1=kchg(kc1,2)*isign(1,k(ic1,2))
1234 kq2=kchg(kc2,2)*isign(1,k(ic2,2))
1235 IF(kq1+kq2.NE.0)
GOTO 320
1236 200
CALL lukfdi(k(ic1,2),0,kfln,k(n+2,2))
1237 CALL lukfdi(k(ic2,2),-kfln,kfldmp,k(n+3,2))
1238 IF(k(n+2,2).EQ.0.OR.k(n+3,2).EQ.0)
GOTO 200
1240 IF(iabs(k(ic2,2)).NE.21)
GOTO 320
1241 210
CALL lukfdi(1+int((2.+parj(2))*rlu(0)),0,kfln,kfdmp)
1242 CALL lukfdi(kfln,0,kflm,k(n+2,2))
1243 CALL lukfdi(-kfln,-kflm,kfldmp,k(n+3,2))
1244 IF(k(n+2,2).EQ.0.OR.k(n+3,2).EQ.0)
GOTO 210
1246 p(n+2,5)=ulmass(k(n+2,2))
1247 p(n+3,5)=ulmass(k(n+3,2))
1248 IF(p(n+2,5)+p(n+3,5)+parj(64).GE.pecm.AND.nsin.EQ.1)
GOTO 320
1249 IF(p(n+2,5)+p(n+3,5)+parj(64).GE.pecm)
GOTO 260
1252 IF(pecm.GE.0.02*dpc(4))
THEN 1253 pa=sqrt((pecm**2-(p(n+2,5)+p(n+3,5))**2)*(pecm**2-
1254 & (p(n+2,5)-p(n+3,5))**2))/(2.*pecm)
1257 ue(1)=sqrt(1.-ue(3)**2)*cos(phi)
1258 ue(2)=sqrt(1.-ue(3)**2)*sin(phi)
1263 p(n+2,4)=sqrt(pa**2+p(n+2,5)**2)
1264 p(n+3,4)=sqrt(pa**2+p(n+3,5)**2)
1266 CALL ludbrb(n+2,n+3,0.,0.,dpc(1)/dpc(4),dpc(2)/dpc(4),
1271 IF(k(i,1).EQ.1.OR.k(i,1).EQ.2) np=np+1
1273 ha=p(ic1,4)*p(ic2,4)-p(ic1,1)*p(ic2,1)-p(ic1,2)*p(ic2,2)-
1275 IF(np.GE.3.OR.ha.LE.1.25*p(ic1,5)*p(ic2,5))
GOTO 260
1276 hd1=0.5*(p(n+2,5)**2-p(ic1,5)**2)
1277 hd2=0.5*(p(n+3,5)**2-p(ic2,5)**2)
1278 hr=sqrt(max(0.,((ha-hd1-hd2)**2-(p(n+2,5)*p(n+3,5))**2)/
1279 & (ha**2-(p(ic1,5)*p(ic2,5))**2)))-1.
1280 hc=p(ic1,5)**2+2.*ha+p(ic2,5)**2
1281 hk1=((p(ic2,5)**2+ha)*hr+hd1-hd2)/hc
1282 hk2=((p(ic1,5)**2+ha)*hr+hd2-hd1)/hc
1284 p(n+2,j)=(1.+hk1)*p(ic1,j)-hk2*p(ic2,j)
1285 p(n+3,j)=(1.+hk2)*p(ic2,j)-hk1*p(ic1,j)
1301 IF(iabs(k(ic1,2)).GT.100.AND.iabs(k(ic2,2)).GT.100)
THEN 1303 ELSEIF(iabs(k(ic1,2)).NE.21)
THEN 1304 CALL lukfdi(k(ic1,2),k(ic2,2),kfldmp,k(n+2,2))
1306 kfln=1+int((2.+parj(2))*rlu(0))
1307 CALL lukfdi(kfln,-kfln,kfldmp,k(n+2,2))
1309 IF(k(n+2,2).EQ.0)
GOTO 260
1310 p(n+2,5)=ulmass(k(n+2,2))
1317 IF(ir.NE.0)
GOTO 280
1318 DO 270 i=max(1,ip),n
1319 IF(k(i,1).LE.0.OR.k(i,1).GT.10.OR.(i.GE.ic1.AND.i.LE.ic2.
1320 &and.k(i,1).GE.1.AND.k(i,1).LE.2))
GOTO 270
1321 IF(mcomb.EQ.1) kci=lucomp(k(i,2))
1322 IF(mcomb.EQ.1.AND.kci.EQ.0)
GOTO 270
1323 IF(mcomb.EQ.1.AND.kchg(kci,2).EQ.0.AND.i.LE.ns)
GOTO 270
1324 IF(mcomb.EQ.2.AND.iabs(k(i,2)).GT.10.AND.iabs(k(i,2)).LE.100)
1326 hcr=dpc(4)*p(i,4)-dpc(1)*p(i,1)-dpc(2)*p(i,2)-dpc(3)*p(i,3)
1327 hsr=2.*hcr+pecm**2-p(n+2,5)**2-2.*p(n+2,5)*p(i,5)
1341 hk2=0.5*(hb*sqrt(max(0.,((hb+hc)**2-4.*(hb+hd)*p(n+2,5)**2)/
1342 & (ha**2-(pecm*p(ir,5))**2)))-(hb+hc))/(hb+hd)
1343 hk1=(0.5*(p(n+2,5)**2-pecm**2)+hd*hk2)/hb
1345 p(n+2,j)=(1.+hk1)*dpc(j)-hk2*p(ir,j)
1346 p(ir,j)=(1.+hk2)*p(ir,j)-hk1*dpc(j)
1354 CALL luerrm(3,
'(LUPREP:) no match for collapsing cluster')
1359 300
DO 310 i=ic1,ic2
1360 IF((k(i,1).EQ.1.OR.k(i,1).EQ.2).AND.kchg(lucomp(k(i,2)),2).NE.0)
1363 IF(mstu(16).NE.2)
THEN 1372 IF(n.LT.mstu(4)-mstu(32)-5)
GOTO 140
1381 DO 360 i=max(1,ip),n
1382 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 360
1384 IF(kc.EQ.0)
GOTO 360
1385 kq=kchg(kc,2)*isign(1,k(i,2))
1386 IF(kq.EQ.0)
GOTO 360
1392 dps(5)=dps(5)+ulmass(k(i,2))
1395 dps(j)=dps(j)+p(i,j)
1397 IF(k(i,1).EQ.1)
THEN 1398 IF(np.NE.1.AND.(kfn.EQ.1.OR.kfn.GE.3.OR.kqs.NE.0))
CALL 1399 & luerrm(2,
'(LUPREP:) unphysical flavour combination')
1400 IF(np.NE.1.AND.dps(4)**2-dps(1)**2-dps(2)**2-dps(3)**2.LT.
1401 & (0.9*parj(32)+dps(5))**2)
CALL luerrm(3,
1402 &
'(LUPREP:) too small mass in jet system')
1417 SUBROUTINE lustrf(IP)
1420 IMPLICIT DOUBLE PRECISION(d)
1421 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
1422 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
1423 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
1424 SAVE /lujets/,/ludat1/,/ludat2/
1425 dimension dps(5),kfl(3),pmq(3),px(3),py(3),gam(3),ie(2),pr(2),
1426 &in(9),dhm(4),dhg(4),dp(5,5),irank(2),mju(4),iju(3),pju(5,5),
1427 &tju(5),kfjh(2),njs(2),kfjs(2),pjs(4,5),mstu9t(8),paru9t(8)
1430 four(i,j)=p(i,4)*p(j,4)-p(i,1)*p(j,1)-p(i,2)*p(j,2)-p(i,3)*p(j,3)
1431 dfour(i,j)=dp(i,4)*dp(j,4)-dp(i,1)*dp(j,1)-dp(i,2)*dp(j,2)-
1447 IF(i.GT.min(n,mstu(4)-mstu(32)))
THEN 1448 CALL luerrm(12,
'(LUSTRF:) failed to reconstruct jet system')
1449 IF(mstu(21).GE.1)
RETURN 1451 IF(k(i,1).NE.1.AND.k(i,1).NE.2.AND.k(i,1).NE.41)
GOTO 110
1453 IF(kc.EQ.0)
GOTO 110
1454 kq=kchg(kc,2)*isign(1,k(i,2))
1455 IF(kq.EQ.0)
GOTO 110
1456 IF(n+5*np+11.GT.mstu(4)-mstu(32)-5)
THEN 1457 CALL luerrm(11,
'(LUSTRF:) no more memory left in LUJETS')
1458 IF(mstu(21).GE.1)
RETURN 1466 IF(j.NE.4) dps(j)=dps(j)+p(i,j)
1468 dps(4)=dps(4)+sqrt(dble(p(i,1))**2+dble(p(i,2))**2+
1469 &dble(p(i,3))**2+dble(p(i,5))**2)
1471 IF(kq.NE.2) kqsum=kqsum+kq
1472 IF(k(i,1).EQ.41)
THEN 1474 IF(kqsum.EQ.kq) mju(1)=n+np
1475 IF(kqsum.NE.kq) mju(2)=n+np
1477 IF(k(i,1).EQ.2.OR.k(i,1).EQ.41)
GOTO 110
1479 CALL luerrm(12,
'(LUSTRF:) unphysical flavour combination')
1480 IF(mstu(21).GE.1)
RETURN 1484 IF(abs(dps(3)).LT.0.99d0*dps(4))
THEN 1487 CALL ludbrb(n+1,n+np,0.,0.,-dps(1)/dps(4),-dps(2)/dps(4),
1491 hhbz=sqrt(max(1d-6,dps(4)+dps(3))/max(1d-6,dps(4)-dps(3)))
1493 hhpmt=p(i,1)**2+p(i,2)**2+p(i,5)**2
1494 IF(p(i,3).GT.0.)
THEN 1495 hhpez=(p(i,4)+p(i,3))/hhbz
1496 p(i,3)=0.5*(hhpez-hhpmt/hhpez)
1497 p(i,4)=0.5*(hhpez+hhpmt/hhpez)
1499 hhpez=(p(i,4)-p(i,3))*hhbz
1500 p(i,3)=-0.5*(hhpez-hhpmt/hhpez)
1501 p(i,4)=0.5*(hhpez+hhpmt/hhpez)
1513 140
IF(nr.GE.3)
THEN 1516 IF(i.EQ.n+nr.AND.iabs(k(n+1,2)).NE.21)
GOTO 150
1518 IF(i.EQ.n+nr) i1=n+1
1519 IF(k(i,1).EQ.41.OR.k(i1,1).EQ.41)
GOTO 150
1520 IF(mju(1).NE.0.AND.i1.LT.mju(1).AND.iabs(k(i1,2)).NE.21)
1522 IF(mju(2).NE.0.AND.i.GT.mju(2).AND.iabs(k(i,2)).NE.21)
GOTO 150
1523 pap=sqrt((p(i,1)**2+p(i,2)**2+p(i,3)**2)*(p(i1,1)**2+
1524 & p(i1,2)**2+p(i1,3)**2))
1525 pvp=p(i,1)*p(i1,1)+p(i,2)*p(i1,2)+p(i,3)*p(i1,3)
1526 pdr=4.*(pap-pvp)**2/max(1e-6,paru13**2*pap+2.*(pap-pvp))
1527 IF(pdr.LT.pdrmin)
THEN 1534 IF(pdrmin.LT.paru12.AND.ir.EQ.n+nr)
THEN 1536 p(n+1,j)=p(n+1,j)+p(n+nr,j)
1538 p(n+1,5)=sqrt(max(0.,p(n+1,4)**2-p(n+1,1)**2-p(n+1,2)**2-
1542 ELSEIF(pdrmin.LT.paru12)
THEN 1544 p(ir,j)=p(ir,j)+p(ir+1,j)
1546 p(ir,5)=sqrt(max(0.,p(ir,4)**2-p(ir,1)**2-p(ir,2)**2-
1548 DO 190 i=ir+1,n+nr-1
1554 IF(ir.EQ.n+nr-1) k(ir,2)=k(n+nr,2)
1556 IF(mju(1).GT.ir) mju(1)=mju(1)-1
1557 IF(mju(2).GT.ir) mju(2)=mju(2)-1
1568 IF(ntry.GT.100.AND.ntryr.LE.4)
THEN 1572 ELSEIF(ntry.GT.100)
THEN 1573 CALL luerrm(14,
'(LUSTRF:) caught in infinite loop')
1574 IF(mstu(21).GE.1)
RETURN 1578 IF(mju(1).EQ.0.AND.mju(2).EQ.0)
GOTO 580
1581 IF(mju(jt).EQ.0)
GOTO 570
1592 DO 240 i1=n+1+(jt-1)*(nr-1),n+nr+(jt-1)*(1-nr),js
1593 IF(k(i1,2).NE.21.AND.iu.LE.2)
THEN 1598 pju(iu,j)=pju(iu,j)+p(i1,j)
1602 pju(iu,5)=sqrt(pju(iu,1)**2+pju(iu,2)**2+pju(iu,3)**2)
1604 IF(k(iju(3),2)/100.NE.10*k(iju(1),2)+k(iju(2),2).AND.
1605 &k(iju(3),2)/100.NE.10*k(iju(2),2)+k(iju(1),2))
THEN 1606 CALL luerrm(12,
'(LUSTRF:) unphysical flavour combination')
1607 IF(mstu(21).GE.1)
RETURN 1611 t12=(pju(1,1)*pju(2,1)+pju(1,2)*pju(2,2)+pju(1,3)*pju(2,3))/
1612 &(pju(1,5)*pju(2,5))
1613 t13=(pju(1,1)*pju(3,1)+pju(1,2)*pju(3,2)+pju(1,3)*pju(3,3))/
1614 &(pju(1,5)*pju(3,5))
1615 t23=(pju(2,1)*pju(3,1)+pju(2,2)*pju(3,2)+pju(2,3)*pju(3,3))/
1616 &(pju(2,5)*pju(3,5))
1617 t11=sqrt((2./3.)*(1.-t12)*(1.-t13)/(1.-t23))
1618 t22=sqrt((2./3.)*(1.-t12)*(1.-t23)/(1.-t13))
1619 tsq=sqrt((2.*t11*t22+t12-1.)*(1.+t12))
1620 t1f=(tsq-t22*(1.+t12))/(1.-t12**2)
1621 t2f=(tsq-t11*(1.+t12))/(1.-t12**2)
1623 tju(j)=-(t1f*pju(1,j)/pju(1,5)+t2f*pju(2,j)/pju(2,5))
1625 tju(4)=sqrt(1.+tju(1)**2+tju(2)**2+tju(3)**2)
1627 pju(iu,5)=tju(4)*pju(iu,4)-tju(1)*pju(iu,1)-tju(2)*pju(iu,2)-
1632 IF(pju(1,5)+pju(2,5).GT.pju(1,4)+pju(2,4))
THEN 1645 ns=iju(iu+1)-iju(iu)
1652 dp(1,j)=0.5*p(is1,j)
1653 IF(is.EQ.1) dp(1,j)=p(is1,j)
1654 dp(2,j)=0.5*p(is2,j)
1655 IF(is.EQ.ns) dp(2,j)=-pju(iu,j)
1657 IF(is.EQ.ns) dp(2,4)=sqrt(pju(iu,1)**2+pju(iu,2)**2+pju(iu,3)**2)
1658 IF(is.EQ.ns) dp(2,5)=0.
1662 IF(dp(3,5)+2.*dhkc+dp(4,5).LE.0.)
THEN 1663 dp(1,4)=sqrt(dp(1,1)**2+dp(1,2)**2+dp(1,3)**2)
1664 dp(2,4)=sqrt(dp(2,1)**2+dp(2,2)**2+dp(2,3)**2)
1669 dhks=sqrt(dhkc**2-dp(3,5)*dp(4,5))
1670 dhk1=0.5*((dp(4,5)+dhkc)/dhks-1.)
1671 dhk2=0.5*((dp(3,5)+dhkc)/dhks-1.)
1673 p(in1,5)=sqrt(dp(3,5)+2.*dhkc+dp(4,5))
1675 p(in1,j)=(1.+dhk1)*dp(1,j)-dhk2*dp(2,j)
1676 p(in1+1,j)=(1.+dhk2)*dp(2,j)-dhk1*dp(1,j)
1684 IF(ntry.GT.100.AND.ntryr.LE.4)
THEN 1688 ELSEIF(ntry.GT.100)
THEN 1689 CALL luerrm(14,
'(LUSTRF:) caught in infinite loop')
1690 IF(mstu(21).GE.1)
RETURN 1695 ie(1)=k(n+1+(jt/2)*(np-1),3)
1700 DO 330 in1=n+nr+2+jq,n+nr+4*ns-2+jq,4
1717 dp(2,j)=p(in(4)+1,j)
1721 dp(1,4)=sqrt(dp(1,1)**2+dp(1,2)**2+dp(1,3)**2)
1722 dp(2,4)=sqrt(dp(2,1)**2+dp(2,2)**2+dp(2,3)**2)
1723 dp(5,1)=dp(1,1)/dp(1,4)-dp(2,1)/dp(2,4)
1724 dp(5,2)=dp(1,2)/dp(1,4)-dp(2,2)/dp(2,4)
1725 dp(5,3)=dp(1,3)/dp(1,4)-dp(2,3)/dp(2,4)
1726 IF(dp(5,1)**2.LE.dp(5,2)**2+dp(5,3)**2) dp(3,1)=1.
1727 IF(dp(5,1)**2.GT.dp(5,2)**2+dp(5,3)**2) dp(3,3)=1.
1728 IF(dp(5,2)**2.LE.dp(5,1)**2+dp(5,3)**2) dp(4,2)=1.
1729 IF(dp(5,2)**2.GT.dp(5,1)**2+dp(5,3)**2) dp(4,3)=1.
1731 dhcx1=dfour(3,1)/dhc12
1732 dhcx2=dfour(3,2)/dhc12
1733 dhcxx=1d0/sqrt(1d0+2d0*dhcx1*dhcx2*dhc12)
1734 dhcy1=dfour(4,1)/dhc12
1735 dhcy2=dfour(4,2)/dhc12
1736 dhcyx=dhcxx*(dhcx1*dhcy2+dhcx2*dhcy1)*dhc12
1737 dhcyy=1d0/sqrt(1d0+2d0*dhcy1*dhcy2*dhc12-dhcyx**2)
1739 dp(3,j)=dhcxx*(dp(3,j)-dhcx2*dp(1,j)-dhcx1*dp(2,j))
1741 p(in(6)+1,j)=dhcyy*(dp(4,j)-dhcy2*dp(1,j)-dhcy1*dp(2,j)-
1747 IF(2*i-nsav.GE.mstu(4)-mstu(32)-5)
THEN 1748 CALL luerrm(11,
'(LUSTRF:) no more memory left in LUJETS')
1749 IF(mstu(21).GE.1)
RETURN 1758 390
CALL lukfdi(kfl(1),0,kfl(3),k(i,2))
1759 IF(k(i,2).EQ.0)
GOTO 320
1760 IF(mstj(12).GE.3.AND.irankj.EQ.1.AND.iabs(kfl(1)).LE.10.AND.
1761 &iabs(kfl(3)).GT.10)
THEN 1762 IF(rlu(0).GT.parj(19))
GOTO 390
1764 p(i,5)=ulmass(k(i,2))
1765 CALL luptdi(kfl(1),px(3),py(3))
1766 pr(1)=p(i,5)**2+(px(1)+px(3))**2+(py(1)+py(3))**2
1767 CALL luzdis(kfl(1),kfl(3),pr(1),z)
1768 IF(iabs(kfl(1)).GE.4.AND.iabs(kfl(1)).LE.8.AND.
1769 &mstu(90).LT.8)
THEN 1774 gam(3)=(1.-z)*(gam(1)+pr(1)/z)
1780 IF(in(1)+1.EQ.in(2).AND.z*p(in(1)+2,3)*p(in(2)+2,3)*
1781 &p(in(1),5)**2.GE.pr(1))
THEN 1782 p(in(1)+2,4)=z*p(in(1)+2,3)
1783 p(in(2)+2,4)=pr(1)/(p(in(1)+2,4)*p(in(1),5)**2)
1785 p(i,j)=(px(1)+px(3))*p(in(3),j)+(py(1)+py(3))*p(in(3)+1,j)
1788 ELSEIF(in(1)+1.EQ.in(2))
THEN 1789 p(in(2)+2,4)=p(in(2)+2,3)
1792 IF(in(2).GT.n+nr+4*ns)
GOTO 320
1793 IF(four(in(1),in(2)).LE.1e-2)
THEN 1794 p(in(1)+2,4)=p(in(1)+2,3)
1801 420
IF(in(1).GT.n+nr+4*ns.OR.in(2).GT.n+nr+4*ns.OR.
1802 &in(1).GT.in(2))
GOTO 320
1803 IF(in(1).NE.in(4).OR.in(2).NE.in(5))
THEN 1810 dp(1,4)=sqrt(dp(1,1)**2+dp(1,2)**2+dp(1,3)**2)
1811 dp(2,4)=sqrt(dp(2,1)**2+dp(2,2)**2+dp(2,3)**2)
1813 IF(dhc12.LE.1e-2)
THEN 1814 p(in(1)+2,4)=p(in(1)+2,3)
1820 dp(5,1)=dp(1,1)/dp(1,4)-dp(2,1)/dp(2,4)
1821 dp(5,2)=dp(1,2)/dp(1,4)-dp(2,2)/dp(2,4)
1822 dp(5,3)=dp(1,3)/dp(1,4)-dp(2,3)/dp(2,4)
1823 IF(dp(5,1)**2.LE.dp(5,2)**2+dp(5,3)**2) dp(3,1)=1.
1824 IF(dp(5,1)**2.GT.dp(5,2)**2+dp(5,3)**2) dp(3,3)=1.
1825 IF(dp(5,2)**2.LE.dp(5,1)**2+dp(5,3)**2) dp(4,2)=1.
1826 IF(dp(5,2)**2.GT.dp(5,1)**2+dp(5,3)**2) dp(4,3)=1.
1827 dhcx1=dfour(3,1)/dhc12
1828 dhcx2=dfour(3,2)/dhc12
1829 dhcxx=1d0/sqrt(1d0+2d0*dhcx1*dhcx2*dhc12)
1830 dhcy1=dfour(4,1)/dhc12
1831 dhcy2=dfour(4,2)/dhc12
1832 dhcyx=dhcxx*(dhcx1*dhcy2+dhcx2*dhcy1)*dhc12
1833 dhcyy=1d0/sqrt(1d0+2d0*dhcy1*dhcy2*dhc12-dhcyx**2)
1835 dp(3,j)=dhcxx*(dp(3,j)-dhcx2*dp(1,j)-dhcx1*dp(2,j))
1837 p(in(3)+1,j)=dhcyy*(dp(4,j)-dhcy2*dp(1,j)-dhcy1*dp(2,j)-
1841 pxp=-(px(3)*four(in(6),in(3))+py(3)*four(in(6)+1,in(3)))
1842 pyp=-(px(3)*four(in(6),in(3)+1)+py(3)*four(in(6)+1,in(3)+1))
1843 IF(abs(pxp**2+pyp**2-px(3)**2-py(3)**2).LT.0.01)
THEN 1852 p(i,j)=px(1)*p(in(6),j)+py(1)*p(in(6)+1,j)+px(3)*p(in(3),j)+
1854 DO 450 in1=in(4),in(1)-4,4
1855 p(i,j)=p(i,j)+p(in1+2,3)*p(in1,j)
1857 DO 460 in2=in(5),in(2)-4,4
1858 p(i,j)=p(i,j)+p(in2+2,3)*p(in2,j)
1862 dhm(2)=2.*four(i,in(1))
1863 dhm(3)=2.*four(i,in(2))
1864 dhm(4)=2.*four(in(1),in(2))
1867 DO 490 in2=in(1)+1,in(2),4
1868 DO 480 in1=in(1),in2-1,4
1869 dhc=2.*four(in1,in2)
1870 dhg(1)=dhg(1)+p(in1+2,1)*p(in2+2,1)*dhc
1871 IF(in1.EQ.in(1)) dhg(2)=dhg(2)-p(in2+2,1)*dhc
1872 IF(in2.EQ.in(2)) dhg(3)=dhg(3)+p(in1+2,1)*dhc
1873 IF(in1.EQ.in(1).AND.in2.EQ.in(2)) dhg(4)=dhg(4)-dhc
1878 dhs1=dhm(3)*dhg(4)-dhm(4)*dhg(3)
1879 IF(abs(dhs1).LT.1e-4)
GOTO 320
1880 dhs2=dhm(4)*(gam(3)-dhg(1))-dhm(2)*dhg(3)-dhg(4)*
1881 &(p(i,5)**2-dhm(1))+dhg(2)*dhm(3)
1882 dhs3=dhm(2)*(gam(3)-dhg(1))-dhg(2)*(p(i,5)**2-dhm(1))
1883 p(in(2)+2,4)=0.5*(sqrt(max(0d0,dhs2**2-4.*dhs1*dhs3))/abs(dhs1)-
1885 IF(dhm(2)+dhm(4)*p(in(2)+2,4).LE.0.)
GOTO 320
1886 p(in(1)+2,4)=(p(i,5)**2-dhm(1)-dhm(3)*p(in(2)+2,4))/
1887 &(dhm(2)+dhm(4)*p(in(2)+2,4))
1890 IF(p(in(2)+2,4).GT.p(in(2)+2,3))
THEN 1891 p(in(2)+2,4)=p(in(2)+2,3)
1894 IF(in(2).GT.n+nr+4*ns)
GOTO 320
1895 IF(four(in(1),in(2)).LE.1e-2)
THEN 1896 p(in(1)+2,4)=p(in(1)+2,3)
1901 ELSEIF(p(in(1)+2,4).GT.p(in(1)+2,3))
THEN 1902 p(in(1)+2,4)=p(in(1)+2,3)
1910 p(i,j)=p(i,j)+p(in(1)+2,4)*p(in(1),j)+p(in(2)+2,4)*p(in(2),j)
1911 pju(iu+3,j)=pju(iu+3,j)+p(i,j)
1913 IF(p(i,4).LT.p(i,5))
GOTO 320
1914 pju(iu+3,5)=tju(4)*pju(iu+3,4)-tju(1)*pju(iu+3,1)-
1915 &tju(2)*pju(iu+3,2)-tju(3)*pju(iu+3,3)
1916 IF(pju(iu+3,5).LT.pju(iu,5))
THEN 1921 IF(in(3).NE.in(6))
THEN 1923 p(in(6),j)=p(in(3),j)
1924 p(in(6)+1,j)=p(in(3)+1,j)
1929 p(in(jq)+2,3)=p(in(jq)+2,3)-p(in(jq)+2,4)
1930 p(in(jq)+2,1)=p(in(jq)+2,1)-(3-2*jq)*p(in(jq)+2,4)
1936 IF(iabs(kfl(1)).GT.10)
GOTO 320
1940 pju(iu+3,j)=pju(iu+3,j)-p(i+1,j)
1946 kfjs(jt)=k(k(mju(jt+2),3),2)
1947 kfls=2*int(rlu(0)+3.*parj(4)/(1.+3.*parj(4)))+1
1948 IF(kfjh(1).EQ.kfjh(2)) kfls=3
1949 IF(ista.NE.i) kfjs(jt)=isign(1000*max(iabs(kfjh(1)),
1950 &iabs(kfjh(2)))+100*min(iabs(kfjh(1)),iabs(kfjh(2)))+
1953 pjs(jt,j)=pju(1,j)+pju(2,j)+p(mju(jt),j)
1954 pjs(jt+2,j)=pju(4,j)+pju(5,j)
1956 pjs(jt,5)=sqrt(max(0.,pjs(jt,4)**2-pjs(jt,1)**2-pjs(jt,2)**2-
1961 580
IF(mju(1).NE.0.AND.mju(2).NE.0)
THEN 1964 ELSEIF(mju(1).NE.0)
THEN 1967 ELSEIF(mju(2).NE.0)
THEN 1970 ELSEIF(iabs(k(n+1,2)).NE.21)
THEN 1977 p(n+nr+is,1)=0.5*four(n+is,n+is+1-nr*(is/nr))
1978 w2sum=w2sum+p(n+nr+is,1)
1983 w2sum=w2sum-p(n+nr+nb,1)
1984 IF(w2sum.GT.w2ran.AND.nb.LT.nr)
GOTO 600
1989 is1=n+is+nb-1-nr*((is+nb-2)/nr)
1990 is2=n+is+nb-nr*((is+nb-1)/nr)
1993 IF(iabs(k(is1,2)).EQ.21) dp(1,j)=0.5*dp(1,j)
1994 IF(is1.EQ.mju(1)) dp(1,j)=pjs(1,j)-pjs(3,j)
1996 IF(iabs(k(is2,2)).EQ.21) dp(2,j)=0.5*dp(2,j)
1997 IF(is2.EQ.mju(2)) dp(2,j)=pjs(2,j)-pjs(4,j)
2002 IF(dp(3,5)+2.*dhkc+dp(4,5).LE.0.)
THEN 2005 dp(1,4)=sqrt(dp(1,1)**2+dp(1,2)**2+dp(1,3)**2+dp(1,5)**2)
2006 dp(2,4)=sqrt(dp(2,1)**2+dp(2,2)**2+dp(2,3)**2+dp(2,5)**2)
2009 dhks=sqrt(dhkc**2-dp(3,5)*dp(4,5))
2010 dhk1=0.5*((dp(4,5)+dhkc)/dhks-1.)
2011 dhk2=0.5*((dp(3,5)+dhkc)/dhks-1.)
2013 p(in1,5)=sqrt(dp(3,5)+2.*dhkc+dp(4,5))
2015 p(in1,j)=(1.+dhk1)*dp(1,j)-dhk2*dp(2,j)
2016 p(in1+1,j)=(1.+dhk2)*dp(2,j)-dhk1*dp(1,j)
2024 IF(ntry.GT.100.AND.ntryr.LE.4)
THEN 2028 ELSEIF(ntry.GT.100)
THEN 2029 CALL luerrm(14,
'(LUSTRF:) caught in infinite loop')
2030 IF(mstu(21).GE.1)
RETURN 2037 p(n+nrs,j)=p(n+nrs,j)+p(n+is,j)
2042 IF(mju(jt).NE.0) irank(jt)=njs(jt)
2043 IF(ns.GT.nr) irank(jt)=1
2044 ie(jt)=k(n+1+(jt/2)*(np-1),3)
2045 in(3*jt+1)=n+nr+1+4*(jt/2)*(ns-1)
2046 in(3*jt+2)=in(3*jt+1)+1
2047 in(3*jt+3)=n+nr+4*ns+2*jt-1
2048 DO 670 in1=n+nr+2+jt,n+nr+4*ns-2+jt,4
2059 IF(ns.EQ.1.AND.mju(1)+mju(2).EQ.0)
CALL luptdi(0,px(1),py(1))
2064 IF(mju(jt).NE.0) kfl(jt)=kfjs(jt)
2066 pmq(jt)=ulmass(kfl(jt))
2072 kfl(3)=int(1.+(2.+parj(2))*rlu(0))*(-1)**int(rlu(0)+0.5)
2073 CALL lukfdi(kfl(3),0,kfl(1),kdump)
2075 IF(iabs(kfl(1)).GT.10.AND.rlu(0).GT.0.5)
THEN 2076 kfl(2)=-(kfl(1)+isign(10000,kfl(1)))
2077 ELSEIF(iabs(kfl(1)).GT.10)
THEN 2078 kfl(1)=-(kfl(2)+isign(10000,kfl(2)))
2080 CALL luptdi(kfl(1),px(1),py(1))
2083 pr3=min(25.,0.1*p(n+nr+1,5)**2)
2084 700
CALL luzdis(kfl(1),kfl(2),pr3,z)
2085 zr=pr3/(z*p(n+nr+1,5)**2)
2086 IF(zr.GE.1.)
GOTO 700
2089 pmq(jt)=ulmass(kfl(jt))
2090 gam(jt)=pr3*(1.-z)/z
2091 in1=n+nr+3+4*(jt/2)*(ns-1)
2094 p(in1,3)=(2-jt)*(1.-z)+(jt-1)*z
2097 p(in1+1,3)=(2-jt)*(1.-zr)+(jt-1)*zr
2103 IF(jt.EQ.1.OR.ns.EQ.nr-1)
THEN 2112 dp(1,4)=sqrt(dp(1,1)**2+dp(1,2)**2+dp(1,3)**2)
2113 dp(2,4)=sqrt(dp(2,1)**2+dp(2,2)**2+dp(2,3)**2)
2114 dp(5,1)=dp(1,1)/dp(1,4)-dp(2,1)/dp(2,4)
2115 dp(5,2)=dp(1,2)/dp(1,4)-dp(2,2)/dp(2,4)
2116 dp(5,3)=dp(1,3)/dp(1,4)-dp(2,3)/dp(2,4)
2117 IF(dp(5,1)**2.LE.dp(5,2)**2+dp(5,3)**2) dp(3,1)=1.
2118 IF(dp(5,1)**2.GT.dp(5,2)**2+dp(5,3)**2) dp(3,3)=1.
2119 IF(dp(5,2)**2.LE.dp(5,1)**2+dp(5,3)**2) dp(4,2)=1.
2120 IF(dp(5,2)**2.GT.dp(5,1)**2+dp(5,3)**2) dp(4,3)=1.
2122 dhcx1=dfour(3,1)/dhc12
2123 dhcx2=dfour(3,2)/dhc12
2124 dhcxx=1d0/sqrt(1d0+2d0*dhcx1*dhcx2*dhc12)
2125 dhcy1=dfour(4,1)/dhc12
2126 dhcy2=dfour(4,2)/dhc12
2127 dhcyx=dhcxx*(dhcx1*dhcy2+dhcx2*dhcy1)*dhc12
2128 dhcyy=1d0/sqrt(1d0+2d0*dhcy1*dhcy2*dhc12-dhcyx**2)
2130 dp(3,j)=dhcxx*(dp(3,j)-dhcx2*dp(1,j)-dhcx1*dp(2,j))
2132 p(in3+1,j)=dhcyy*(dp(4,j)-dhcy2*dp(1,j)-dhcy1*dp(2,j)-
2138 p(in3+3,j)=p(in3+1,j)
2144 IF(mju(1)+mju(2).GT.0)
THEN 2146 IF(njs(jt).EQ.0)
GOTO 770
2148 p(n+nrs,j)=p(n+nrs,j)-pjs(jt+2,j)
2155 IF(2*i-nsav.GE.mstu(4)-mstu(32)-5)
THEN 2156 CALL luerrm(11,
'(LUSTRF:) no more memory left in LUJETS')
2157 IF(mstu(21).GE.1)
RETURN 2160 IF(iabs(kfl(3-jt)).GT.10) jt=3-jt
2161 IF(iabs(kfl(3-jt)).GE.4.AND.iabs(kfl(3-jt)).LE.8) jt=3-jt
2164 irank(jt)=irank(jt)+1
2171 790
CALL lukfdi(kfl(jt),0,kfl(3),k(i,2))
2172 IF(k(i,2).EQ.0)
GOTO 640
2173 IF(mstj(12).GE.3.AND.irank(jt).EQ.1.AND.iabs(kfl(jt)).LE.10.AND.
2174 &iabs(kfl(3)).GT.10)
THEN 2175 IF(rlu(0).GT.parj(19))
GOTO 790
2177 p(i,5)=ulmass(k(i,2))
2178 CALL luptdi(kfl(jt),px(3),py(3))
2179 pr(jt)=p(i,5)**2+(px(jt)+px(3))**2+(py(jt)+py(3))**2
2183 pmq(3)=ulmass(kfl(3))
2185 IF(mstj(11).EQ.2) parjst=parj(34)
2186 wmin=parjst+pmq(1)+pmq(2)+parj(36)*pmq(3)
2187 IF(iabs(kfl(jt)).GT.10.AND.iabs(kfl(3)).GT.10) wmin=
2188 &wmin-0.5*parj(36)*pmq(3)
2189 wrem2=four(n+nrs,n+nrs)
2190 IF(wrem2.LT.0.10)
GOTO 640
2191 IF(wrem2.LT.max(wmin*(1.+(2.*rlu(0)-1.)*parj(37)),
2192 &parj(32)+pmq(1)+pmq(2))**2)
GOTO 940
2195 CALL luzdis(kfl(jt),kfl(3),pr(jt),z)
2196 IF(iabs(kfl(jt)).GE.4.AND.iabs(kfl(jt)).LE.8.AND.
2197 &mstu(90).LT.8)
THEN 2204 IF(max(mod(kfl1a,10),mod(kfl1a/1000,10),mod(kfl2a,10),
2205 &mod(kfl2a/1000,10)).GE.4)
THEN 2206 pr(jr)=(pmq(jr)+pmq(3))**2+(px(jr)-px(3))**2+(py(jr)-py(3))**2
2207 pw12=sqrt(max(0.,(wrem2-pr(1)-pr(2))**2-4.*pr(1)*pr(2)))
2208 z=(wrem2+pr(jt)-pr(jr)+pw12*(2.*z-1.))/(2.*wrem2)
2209 pr(jr)=(pmq(jr)+parjst)**2+(px(jr)-px(3))**2+(py(jr)-py(3))**2
2210 IF((1.-z)*(wrem2-pr(jt)/z).LT.pr(jr))
GOTO 940
2212 gam(3)=(1.-z)*(gam(jt)+pr(jt)/z)
2218 IF(in(1)+1.EQ.in(2).AND.z*p(in(1)+2,3)*p(in(2)+2,3)*
2219 &p(in(1),5)**2.GE.pr(jt))
THEN 2220 p(in(jt)+2,4)=z*p(in(jt)+2,3)
2221 p(in(jr)+2,4)=pr(jt)/(p(in(jt)+2,4)*p(in(1),5)**2)
2223 p(i,j)=(px(jt)+px(3))*p(in(3),j)+(py(jt)+py(3))*p(in(3)+1,j)
2226 ELSEIF(in(1)+1.EQ.in(2))
THEN 2227 p(in(jr)+2,4)=p(in(jr)+2,3)
2230 IF(js*in(jr).GT.js*in(4*jr))
GOTO 640
2231 IF(four(in(1),in(2)).LE.1e-2)
THEN 2232 p(in(jt)+2,4)=p(in(jt)+2,3)
2239 820
IF(js*in(1).GT.js*in(3*jr+1).OR.js*in(2).GT.js*in(3*jr+2).OR.
2240 &in(1).GT.in(2))
GOTO 640
2241 IF(in(1).NE.in(3*jt+1).OR.in(2).NE.in(3*jt+2))
THEN 2248 dp(1,4)=sqrt(dp(1,1)**2+dp(1,2)**2+dp(1,3)**2)
2249 dp(2,4)=sqrt(dp(2,1)**2+dp(2,2)**2+dp(2,3)**2)
2251 IF(dhc12.LE.1e-2)
THEN 2252 p(in(jt)+2,4)=p(in(jt)+2,3)
2258 dp(5,1)=dp(1,1)/dp(1,4)-dp(2,1)/dp(2,4)
2259 dp(5,2)=dp(1,2)/dp(1,4)-dp(2,2)/dp(2,4)
2260 dp(5,3)=dp(1,3)/dp(1,4)-dp(2,3)/dp(2,4)
2261 IF(dp(5,1)**2.LE.dp(5,2)**2+dp(5,3)**2) dp(3,1)=1.
2262 IF(dp(5,1)**2.GT.dp(5,2)**2+dp(5,3)**2) dp(3,3)=1.
2263 IF(dp(5,2)**2.LE.dp(5,1)**2+dp(5,3)**2) dp(4,2)=1.
2264 IF(dp(5,2)**2.GT.dp(5,1)**2+dp(5,3)**2) dp(4,3)=1.
2265 dhcx1=dfour(3,1)/dhc12
2266 dhcx2=dfour(3,2)/dhc12
2267 dhcxx=1d0/sqrt(1d0+2d0*dhcx1*dhcx2*dhc12)
2268 dhcy1=dfour(4,1)/dhc12
2269 dhcy2=dfour(4,2)/dhc12
2270 dhcyx=dhcxx*(dhcx1*dhcy2+dhcx2*dhcy1)*dhc12
2271 dhcyy=1d0/sqrt(1d0+2d0*dhcy1*dhcy2*dhc12-dhcyx**2)
2273 dp(3,j)=dhcxx*(dp(3,j)-dhcx2*dp(1,j)-dhcx1*dp(2,j))
2275 p(in(3)+1,j)=dhcyy*(dp(4,j)-dhcy2*dp(1,j)-dhcy1*dp(2,j)-
2279 pxp=-(px(3)*four(in(3*jt+3),in(3))+py(3)*
2280 & four(in(3*jt+3)+1,in(3)))
2281 pyp=-(px(3)*four(in(3*jt+3),in(3)+1)+py(3)*
2282 & four(in(3*jt+3)+1,in(3)+1))
2283 IF(abs(pxp**2+pyp**2-px(3)**2-py(3)**2).LT.0.01)
THEN 2292 p(i,j)=px(jt)*p(in(3*jt+3),j)+py(jt)*p(in(3*jt+3)+1,j)+
2293 &px(3)*p(in(3),j)+py(3)*p(in(3)+1,j)
2294 DO 850 in1=in(3*jt+1),in(1)-4*js,4*js
2295 p(i,j)=p(i,j)+p(in1+2,3)*p(in1,j)
2297 DO 860 in2=in(3*jt+2),in(2)-4*js,4*js
2298 p(i,j)=p(i,j)+p(in2+2,3)*p(in2,j)
2302 dhm(2)=2.*four(i,in(1))
2303 dhm(3)=2.*four(i,in(2))
2304 dhm(4)=2.*four(in(1),in(2))
2307 DO 890 in2=in(1)+1,in(2),4
2308 DO 880 in1=in(1),in2-1,4
2309 dhc=2.*four(in1,in2)
2310 dhg(1)=dhg(1)+p(in1+2,jt)*p(in2+2,jt)*dhc
2311 IF(in1.EQ.in(1)) dhg(2)=dhg(2)-js*p(in2+2,jt)*dhc
2312 IF(in2.EQ.in(2)) dhg(3)=dhg(3)+js*p(in1+2,jt)*dhc
2313 IF(in1.EQ.in(1).AND.in2.EQ.in(2)) dhg(4)=dhg(4)-dhc
2318 dhs1=dhm(jr+1)*dhg(4)-dhm(4)*dhg(jr+1)
2319 IF(abs(dhs1).LT.1e-4)
GOTO 640
2320 dhs2=dhm(4)*(gam(3)-dhg(1))-dhm(jt+1)*dhg(jr+1)-dhg(4)*
2321 &(p(i,5)**2-dhm(1))+dhg(jt+1)*dhm(jr+1)
2322 dhs3=dhm(jt+1)*(gam(3)-dhg(1))-dhg(jt+1)*(p(i,5)**2-dhm(1))
2323 p(in(jr)+2,4)=0.5*(sqrt(max(0d0,dhs2**2-4.*dhs1*dhs3))/abs(dhs1)-
2325 IF(dhm(jt+1)+dhm(4)*p(in(jr)+2,4).LE.0.)
GOTO 640
2326 p(in(jt)+2,4)=(p(i,5)**2-dhm(1)-dhm(jr+1)*p(in(jr)+2,4))/
2327 &(dhm(jt+1)+dhm(4)*p(in(jr)+2,4))
2330 IF(p(in(jr)+2,4).GT.p(in(jr)+2,3))
THEN 2331 p(in(jr)+2,4)=p(in(jr)+2,3)
2334 IF(js*in(jr).GT.js*in(4*jr))
GOTO 640
2335 IF(four(in(1),in(2)).LE.1e-2)
THEN 2336 p(in(jt)+2,4)=p(in(jt)+2,3)
2341 ELSEIF(p(in(jt)+2,4).GT.p(in(jt)+2,3))
THEN 2342 p(in(jt)+2,4)=p(in(jt)+2,3)
2350 p(i,j)=p(i,j)+p(in(1)+2,4)*p(in(1),j)+p(in(2)+2,4)*p(in(2),j)
2351 p(n+nrs,j)=p(n+nrs,j)-p(i,j)
2353 IF(p(i,4).LT.p(i,5))
GOTO 640
2359 IF(in(3).NE.in(3*jt+3))
THEN 2361 p(in(3*jt+3),j)=p(in(3),j)
2362 p(in(3*jt+3)+1,j)=p(in(3)+1,j)
2367 p(in(jq)+2,3)=p(in(jq)+2,3)-p(in(jq)+2,4)
2368 p(in(jq)+2,jt)=p(in(jq)+2,jt)-js*(3-2*jq)*p(in(jq)+2,4)
2378 CALL lukfdi(kfl(jr),-kfl(3),kfldmp,k(i,2))
2379 IF(k(i,2).EQ.0)
GOTO 640
2380 p(i,5)=ulmass(k(i,2))
2381 pr(jr)=p(i,5)**2+(px(jr)-px(3))**2+(py(jr)-py(3))**2
2385 IF(p(in(4)+2,3)*p(in(5)+2,3)*four(in(4),in(5)).LT.p(in(7),3)*
2386 &p(in(8),3)*four(in(7),in(8))) jq=2
2387 dhc12=four(in(3*jq+1),in(3*jq+2))
2388 dhr1=four(n+nrs,in(3*jq+2))/dhc12
2389 dhr2=four(n+nrs,in(3*jq+1))/dhc12
2390 IF(in(4).NE.in(7).OR.in(5).NE.in(8))
THEN 2391 px(3-jq)=-four(n+nrs,in(3*jq+3))-px(jq)
2392 py(3-jq)=-four(n+nrs,in(3*jq+3)+1)-py(jq)
2393 pr(3-jq)=p(i+(jt+jq-3)**2-1,5)**2+(px(3-jq)+(2*jq-3)*js*
2394 & px(3))**2+(py(3-jq)+(2*jq-3)*js*py(3))**2
2398 wrem2=wrem2+(px(1)+px(2))**2+(py(1)+py(2))**2
2399 fd=(sqrt(pr(1))+sqrt(pr(2)))/sqrt(wrem2)
2400 IF(mju(1)+mju(2).NE.0.AND.i.EQ.isav+2.AND.fd.GE.1.)
GOTO 200
2401 IF(fd.GE.1.)
GOTO 640
2402 fa=wrem2+pr(jt)-pr(jr)
2403 IF(mstj(11).NE.2) prev=0.5*exp(max(-50.,log(fd)*parj(38)*
2405 IF(mstj(11).EQ.2) prev=0.5*fd**parj(39)
2406 fb=sign(sqrt(max(0.,fa**2-4.*wrem2*pr(jt))),js*(rlu(0)-prev))
2409 IF(max(mod(kfl1a,10),mod(kfl1a/1000,10),mod(kfl2a,10),
2410 &mod(kfl2a/1000,10)).GE.6) fb=sign(sqrt(max(0.,fa**2-
2411 &4.*wrem2*pr(jt))),float(js))
2413 p(i-1,j)=(px(jt)+px(3))*p(in(3*jq+3),j)+(py(jt)+py(3))*
2414 &p(in(3*jq+3)+1,j)+0.5*(dhr1*(fa+fb)*p(in(3*jq+1),j)+
2415 &dhr2*(fa-fb)*p(in(3*jq+2),j))/wrem2
2416 p(i,j)=p(n+nrs,j)-p(i-1,j)
2418 IF(p(i-1,4).LT.p(i-1,5).OR.p(i,4).LT.p(i,5))
GOTO 640
2422 DO 960 i=nsav+1,nsav+np
2425 IF(mstu(16).NE.2)
THEN 2445 p(nsav,5)=sqrt(max(0d0,dps(4)**2-dps(1)**2-dps(2)**2-dps(3)**2))
2455 DO 1000 iz=mstu90+1,mstu91
2456 mstu9t(iz)=mstu(90+iz)-nrs+1-nsav+n
2457 paru9t(iz)=paru(90+iz)
2464 k(i-nsav+n,j)=k(i,j)
2465 p(i-nsav+n,j)=p(i,j)
2469 DO 1050 i=n+1,2*n-nsav
2470 IF(k(i,3).NE.ie(1))
GOTO 1050
2476 IF(mstu(16).NE.2) k(i1,3)=nsav
2477 DO 1040 iz=mstu90+1,mstu91
2478 IF(mstu9t(iz).EQ.i)
THEN 2480 mstu(90+mstu(90))=i1
2481 paru(90+mstu(90))=paru9t(iz)
2485 DO 1080 i=2*n-nsav,n+1,-1
2486 IF(k(i,3).EQ.ie(1))
GOTO 1080
2492 IF(mstu(16).NE.2) k(i1,3)=nsav
2493 DO 1070 iz=mstu90+1,mstu91
2494 IF(mstu9t(iz).EQ.i)
THEN 2496 mstu(90+mstu(90))=i1
2497 paru(90+mstu(90))=paru9t(iz)
2505 CALL ludbrb(nsav+1,n,0.,0.,dps(1)/dps(4),dps(2)/dps(4),
2509 hhpmt=p(i,1)**2+p(i,2)**2+p(i,5)**2
2510 IF(p(i,3).GT.0.)
THEN 2511 hhpez=(p(i,4)+p(i,3))*hhbz
2512 p(i,3)=0.5*(hhpez-hhpmt/hhpez)
2513 p(i,4)=0.5*(hhpez+hhpmt/hhpez)
2515 hhpez=(p(i,4)-p(i,3))/hhbz
2516 p(i,3)=-0.5*(hhpez-hhpmt/hhpez)
2517 p(i,4)=0.5*(hhpez+hhpmt/hhpez)
2532 SUBROUTINE luindf(IP)
2536 IMPLICIT DOUBLE PRECISION(d)
2537 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
2538 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
2539 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
2540 SAVE /lujets/,/ludat1/,/ludat2/
2541 dimension dps(5),psi(4),nfi(3),nfl(3),ifet(3),kflf(3),
2542 &kflo(2),pxo(2),pyo(2),wo(2)
2554 IF(i.GT.min(n,mstu(4)-mstu(32)))
THEN 2555 CALL luerrm(12,
'(LUINDF:) failed to reconstruct jet system')
2556 IF(mstu(21).GE.1)
RETURN 2558 IF(k(i,1).NE.1.AND.k(i,1).NE.2)
GOTO 110
2560 IF(kc.EQ.0)
GOTO 110
2561 kq=kchg(kc,2)*isign(1,k(i,2))
2562 IF(kq.EQ.0)
GOTO 110
2564 IF(kq.NE.2) kqsum=kqsum+kq
2566 k(nsav+njet,j)=k(i,j)
2567 p(nsav+njet,j)=p(i,j)
2568 dps(j)=dps(j)+p(i,j)
2571 IF(k(i,1).EQ.2.OR.(mstj(3).LE.5.AND.n.GT.i.AND.
2572 &k(i+1,1).EQ.2))
GOTO 110
2573 IF(njet.NE.1.AND.kqsum.NE.0)
THEN 2574 CALL luerrm(12,
'(LUINDF:) unphysical flavour combination')
2575 IF(mstu(21).GE.1)
RETURN 2581 CALL ludbrb(nsav+1,nsav+njet,0.,0.,-dps(1)/dps(4),
2582 & -dps(2)/dps(4),-dps(3)/dps(4))
2588 DO 140 i=nsav+1,nsav+njet
2592 nfi(kfa)=nfi(kfa)+isign(1,k(i,2))
2593 ELSEIF(kfa.GT.1000)
THEN 2594 kfla=mod(kfa/1000,10)
2595 kflb=mod(kfa/100,10)
2596 IF(kfla.LE.3) nfi(kfla)=nfi(kfla)+isign(1,k(i,2))
2597 IF(kflb.LE.3) nfi(kflb)=nfi(kflb)+isign(1,k(i,2))
2604 IF(ntry.GT.200)
THEN 2605 CALL luerrm(14,
'(LUINDF:) caught in infinite loop')
2606 IF(mstu(21).GE.1)
RETURN 2617 DO 230 ip1=nsav+1,nsav+njet
2624 IF(kflh.GT.10) kflh=mod(kflh/1000,10)
2626 wf=p(ip1,4)+sqrt(p(ip1,1)**2+p(ip1,2)**2+p(ip1,3)**2)
2629 170
IF(iabs(k(ip1,2)).NE.21)
THEN 2632 CALL luptdi(0,pxo(1),pyo(1))
2636 ELSEIF(mstj(2).LE.2)
THEN 2638 IF(mstj(2).EQ.2) mstj(91)=1
2639 kflo(1)=int(1.+(2.+parj(2))*rlu(0))*(-1)**int(rlu(0)+0.5)
2640 CALL luptdi(0,pxo(1),pyo(1))
2647 IF(mstj(2).EQ.4) mstj(91)=1
2648 kflo(1)=int(1.+(2.+parj(2))*rlu(0))*(-1)**int(rlu(0)+0.5)
2650 CALL luptdi(0,pxo(1),pyo(1))
2653 wo(1)=wf*rlu(0)**(1./3.)
2669 IF(i.GE.mstu(4)-mstu(32)-njet-5)
THEN 2670 CALL luerrm(11,
'(LUINDF:) no more memory left in LUJETS')
2671 IF(mstu(21).GE.1)
RETURN 2678 200
CALL lukfdi(kfl1,0,kfl2,k(i,2))
2679 IF(k(i,2).EQ.0)
GOTO 180
2680 IF(mstj(12).GE.3.AND.irank.EQ.1.AND.iabs(kfl1).LE.10.AND.
2681 &iabs(kfl2).GT.10)
THEN 2682 IF(rlu(0).GT.parj(19))
GOTO 200
2686 p(i,5)=ulmass(k(i,2))
2687 CALL luptdi(kfl1,px2,py2)
2690 pr=p(i,5)**2+p(i,1)**2+p(i,2)**2
2691 CALL luzdis(kfl1,kfl2,pr,z)
2693 IF(iabs(kfl1).GE.4.AND.iabs(kfl1).LE.8.AND.mstu(90).LT.8)
THEN 2699 p(i,3)=0.5*(z*w-pr/(z*w))
2700 p(i,4)=0.5*(z*w+pr/(z*w))
2701 IF(mstj(3).GE.1.AND.irank.EQ.1.AND.kflh.GE.4.AND.
2702 &p(i,3).LE.0.001)
THEN 2703 IF(w.GE.p(i,5)+0.5*parj(32))
GOTO 180
2719 IF(mstj(3).GE.0.AND.p(i,3).LT.0.)
THEN 2721 IF(mzsav.EQ.1) mstu(90)=mstu(90)-1
2723 IF(w.GT.parj(31))
GOTO 190
2726 IF(mod(mstj(3),5).EQ.4.AND.n.EQ.nsav1) wf=wf+0.1*parj(32)
2727 IF(mod(mstj(3),5).EQ.4.AND.n.EQ.nsav1)
GOTO 170
2730 the=ulangl(p(ip1,3),sqrt(p(ip1,1)**2+p(ip1,2)**2))
2731 phi=ulangl(p(ip1,1),p(ip1,2))
2733 CALL ludbrb(nsav1+1,n,the,phi,0d0,0d0,0d0)
2734 k(k(ip1,3),4)=nsav1+1
2739 IF(njet.EQ.1.OR.mstj(3).LE.0)
GOTO 490
2740 IF(mod(mstj(3),5).NE.0.AND.n-nsav-njet.LT.2)
GOTO 150
2743 DO 240 i=nsav+njet+1,n
2745 kfla=mod(kfa/1000,10)
2746 kflb=mod(kfa/100,10)
2749 IF(kflb.LE.3) nfl(kflb)=nfl(kflb)-isign(1,k(i,2))*(-1)**kflb
2750 IF(kflc.LE.3) nfl(kflc)=nfl(kflc)+isign(1,k(i,2))*(-1)**kflb
2752 IF(kfla.LE.3) nfl(kfla)=nfl(kfla)-isign(1,k(i,2))
2753 IF(kflb.LE.3) nfl(kflb)=nfl(kflb)-isign(1,k(i,2))
2754 IF(kflc.LE.3) nfl(kflc)=nfl(kflc)-isign(1,k(i,2))
2757 nreq=(iabs(nfl(1))+iabs(nfl(2))+iabs(nfl(3))-iabs(nfl(1)+
2758 &nfl(2)+nfl(3)))/2+iabs(nfl(1)+nfl(2)+nfl(3))/3
2759 IF(nreq.EQ.0)
GOTO 320
2765 DO 260 i=nsav+njet+1,n
2766 p2=p(i,1)**2+p(i,2)**2+p(i,3)**2
2767 IF(k(i,1).EQ.1.AND.p2.LT.p2min) irem=i
2768 IF(k(i,1).EQ.1.AND.p2.LT.p2min) p2min=p2
2770 IF(irem.EQ.0)
GOTO 150
2773 kfla=mod(kfa/1000,10)
2774 kflb=mod(kfa/100,10)
2776 IF(kfla.GE.4.OR.kflb.GE.4) k(irem,1)=8
2777 IF(k(irem,1).EQ.8)
GOTO 250
2779 isgn=isign(1,k(irem,2))*(-1)**kflb
2780 IF(kflb.LE.3) nfl(kflb)=nfl(kflb)+isgn
2781 IF(kflc.LE.3) nfl(kflc)=nfl(kflc)-isgn
2783 IF(kfla.LE.3) nfl(kfla)=nfl(kfla)+isign(1,k(irem,2))
2784 IF(kflb.LE.3) nfl(kflb)=nfl(kflb)+isign(1,k(irem,2))
2785 IF(kflc.LE.3) nfl(kflc)=nfl(kflc)+isign(1,k(irem,2))
2788 nreq=(iabs(nfl(1))+iabs(nfl(2))+iabs(nfl(3))-iabs(nfl(1)+
2789 &nfl(2)+nfl(3)))/2+iabs(nfl(1)+nfl(2)+nfl(3))/3
2790 IF(nreq.GT.nrem)
GOTO 250
2791 DO 270 i=nsav+njet+1,n
2792 IF(k(i,1).EQ.8) k(i,1)=1
2797 IF(nfl(1)+nfl(2)+nfl(3).NE.0) nfet=3
2798 IF(nreq.LT.nrem) nfet=1
2799 IF(iabs(nfl(1))+iabs(nfl(2))+iabs(nfl(3)).EQ.0) nfet=0
2801 ifet(j)=1+(iabs(nfl(1))+iabs(nfl(2))+iabs(nfl(3)))*rlu(0)
2802 kflf(j)=isign(1,nfl(1))
2803 IF(ifet(j).GT.iabs(nfl(1))) kflf(j)=isign(2,nfl(2))
2804 IF(ifet(j).GT.iabs(nfl(1))+iabs(nfl(2))) kflf(j)=isign(3,nfl(3))
2806 IF(nfet.EQ.2.AND.(ifet(1).EQ.ifet(2).OR.kflf(1)*kflf(2).GT.0))
2808 IF(nfet.EQ.3.AND.(ifet(1).EQ.ifet(2).OR.ifet(1).EQ.ifet(3).OR.
2809 &ifet(2).EQ.ifet(3).OR.kflf(1)*kflf(2).LT.0.OR.kflf(1)*kflf(3).
2810 <.0.OR.kflf(1)*(nfl(1)+nfl(2)+nfl(3)).LT.0))
GOTO 280
2811 IF(nfet.EQ.0) kflf(1)=1+int((2.+parj(2))*rlu(0))
2812 IF(nfet.EQ.0) kflf(2)=-kflf(1)
2813 IF(nfet.EQ.1) kflf(2)=isign(1+int((2.+parj(2))*rlu(0)),-kflf(1))
2814 IF(nfet.LE.2) kflf(3)=0
2815 IF(kflf(3).NE.0)
THEN 2816 kflfc=isign(1000*max(iabs(kflf(1)),iabs(kflf(3)))+
2817 & 100*min(iabs(kflf(1)),iabs(kflf(3)))+1,kflf(1))
2818 IF(kflf(1).EQ.kflf(3).OR.(1.+3.*parj(4))*rlu(0).GT.1.)
2819 & kflfc=kflfc+isign(2,kflfc)
2823 CALL lukfdi(kflfc,kflf(2),kfldmp,kf)
2824 IF(kf.EQ.0)
GOTO 280
2825 DO 300 j=1,max(2,nfet)
2826 nfl(iabs(kflf(j)))=nfl(iabs(kflf(j)))-isign(1,kflf(j))
2830 npos=min(1+int(rlu(0)*nrem),nrem)
2831 DO 310 i=nsav+njet+1,n
2832 IF(k(i,1).EQ.7) npos=npos-1
2833 IF(k(i,1).EQ.1.OR.npos.NE.0)
GOTO 310
2836 p(i,5)=ulmass(k(i,2))
2837 p(i,4)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2+p(i,5)**2)
2840 nreq=(iabs(nfl(1))+iabs(nfl(2))+iabs(nfl(3))-iabs(nfl(1)+
2841 &nfl(2)+nfl(3)))/2+iabs(nfl(1)+nfl(2)+nfl(3))/3
2842 IF(nrem.GT.0)
GOTO 280
2845 320
IF(mod(mstj(3),5).NE.0.AND.mod(mstj(3),5).NE.4)
THEN 2848 DO 330 i=nsav+njet+1,n
2849 psi(j)=psi(j)+p(i,j)
2852 psi(4)=psi(1)**2+psi(2)**2+psi(3)**2
2854 DO 350 i=nsav+njet+1,n
2855 IF(mod(mstj(3),5).EQ.1) pws=pws+p(i,4)
2856 IF(mod(mstj(3),5).EQ.2) pws=pws+sqrt(p(i,5)**2+(psi(1)*p(i,1)+
2857 & psi(2)*p(i,2)+psi(3)*p(i,3))**2/psi(4))
2858 IF(mod(mstj(3),5).EQ.3) pws=pws+1.
2860 DO 370 i=nsav+njet+1,n
2861 IF(mod(mstj(3),5).EQ.1) pw=p(i,4)
2862 IF(mod(mstj(3),5).EQ.2) pw=sqrt(p(i,5)**2+(psi(1)*p(i,1)+
2863 & psi(2)*p(i,2)+psi(3)*p(i,3))**2/psi(4))
2864 IF(mod(mstj(3),5).EQ.3) pw=1.
2866 p(i,j)=p(i,j)-psi(j)*pw/pws
2868 p(i,4)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2+p(i,5)**2)
2872 ELSEIF(mod(mstj(3),5).EQ.4)
THEN 2879 DO 410 i=nsav+njet+1,n
2883 pls=(p(i,1)*p(ir1,1)+p(i,2)*p(ir1,2)+p(i,3)*p(ir1,3))/
2884 & (p(ir1,1)**2+p(ir1,2)**2+p(ir1,3)**2)
2886 p(ir2,j)=p(ir2,j)+p(i,j)-pls*p(ir1,j)
2888 p(ir2,4)=p(ir2,4)+p(i,4)
2889 p(ir2,5)=p(ir2,5)+pls
2893 IF(k(i,1).NE.0) pss=pss+p(i,4)/(pecm*(0.8*p(i,5)+0.2))
2895 DO 440 i=nsav+njet+1,n
2898 pls=(p(i,1)*p(ir1,1)+p(i,2)*p(ir1,2)+p(i,3)*p(ir1,3))/
2899 & (p(ir1,1)**2+p(ir1,2)**2+p(ir1,3)**2)
2901 p(i,j)=p(i,j)-p(ir2,j)/k(ir2,1)+(1./(p(ir2,5)*pss)-1.)*pls*
2904 p(i,4)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2+p(i,5)**2)
2909 IF(mod(mstj(3),5).NE.0)
THEN 2913 DO 450 i=nsav+njet+1,n
2916 pqs=pqs+p(i,5)**2/p(i,4)
2918 IF(pms.GE.pecm)
GOTO 150
2921 pfac=(pecm-pqs)/(pes-pqs)
2924 DO 480 i=nsav+njet+1,n
2928 p(i,4)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2+p(i,5)**2)
2930 pqs=pqs+p(i,5)**2/p(i,4)
2932 IF(neco.LT.10.AND.abs(pecm-pes).GT.2e-6*pecm)
GOTO 460
2936 490
DO 500 i=nsav+njet+1,n
2937 IF(mstu(16).NE.2) k(i,3)=nsav+1
2938 IF(mstu(16).EQ.2) k(i,3)=k(k(i,3),3)
2940 DO 510 i=nsav+1,nsav+njet
2943 IF(mstu(16).NE.2)
THEN 2947 k(i1,4)=k(i1,4)-njet+1
2948 k(i1,5)=k(i1,5)-njet+1
2949 IF(k(i1,5).LT.k(i1,4))
THEN 2967 p(nsav,5)=sqrt(max(0d0,dps(4)**2-dps(1)**2-dps(2)**2-dps(3)**2))
2969 DO 540 i=nsav+njet,n
2971 k(i-njet+1,j)=k(i,j)
2972 p(i-njet+1,j)=p(i,j)
2973 v(i-njet+1,j)=v(i,j)
2977 DO 550 iz=mstu90+1,mstu(90)
2978 mstu(90+iz)=mstu(90+iz)-njet+1
2982 IF(njet.NE.1)
CALL ludbrb(nsav+1,n,0.,0.,dps(1)/dps(4),
2983 &dps(2)/dps(4),dps(3)/dps(4))
2995 SUBROUTINE ludecy(IP)
2998 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
2999 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
3000 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
3001 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
3002 SAVE /lujets/,/ludat1/,/ludat2/,/ludat3/
3003 dimension vdcy(4),kflo(4),kfl1(4),pv(10,5),rord(10),ue(3),be(3),
3005 DATA wtcor/2.,5.,15.,60.,250.,1500.,1.2e4,1.2e5,150.,16./
3009 pawt(a,b,c)=sqrt((a**2-(b+c)**2)*(a**2-(b-c)**2))/(2.*a)
3010 four(i,j)=p(i,4)*p(j,4)-p(i,1)*p(j,1)-p(i,2)*p(j,2)-p(i,3)*p(j,3)
3011 hmeps(ha)=((1.-hrq-ha)**2+3.*ha*(1.+hrq-ha))*
3012 &sqrt((1.-hrq-ha)**2-4.*hrq*ha)
3018 kfs=isign(1,k(ip,2))
3023 IF(k(ip,1).EQ.5)
THEN 3025 ELSEIF(k(ip,1).NE.4)
THEN 3026 v(ip,5)=-pmas(kc,4)*log(rlu(0))
3029 vdcy(j)=v(ip,j)+v(ip,5)*p(ip,j)/p(ip,5)
3034 IF(mstj(22).EQ.2)
THEN 3035 IF(pmas(kc,4).GT.parj(71)) mout=1
3036 ELSEIF(mstj(22).EQ.3)
THEN 3037 IF(vdcy(1)**2+vdcy(2)**2+vdcy(3)**2.GT.parj(72)**2) mout=1
3038 ELSEIF(mstj(22).EQ.4)
THEN 3039 IF(vdcy(1)**2+vdcy(2)**2.GT.parj(73)**2) mout=1
3040 IF(abs(vdcy(3)).GT.parj(74)) mout=1
3042 IF(mout.EQ.1.AND.k(ip,1).NE.5)
THEN 3049 IF((kfa.EQ.511.OR.kfa.EQ.531).AND.mstj(26).GE.1)
THEN 3051 IF(kfa.EQ.531) xbbmix=parj(77)
3052 IF(sin(0.5*xbbmix*v(ip,5)/pmas(kc,4))**2.GT.rlu(0)) mmix=1
3053 IF(mmix.EQ.1) kfs=-kfs
3058 IF(mdcy(kc,2).GT.0)
THEN 3059 mdmdcy=mdme(mdcy(kc,2),2)
3060 IF(mdmdcy.GT.80.AND.mdmdcy.LE.90) kca=mdmdcy
3062 IF(mdcy(kca,2).LE.0.OR.mdcy(kca,3).LE.0)
THEN 3063 CALL luerrm(9,
'(LUDECY:) no decay channel defined')
3066 IF(mod(kfa/1000,10).EQ.0.AND.(kca.EQ.85.OR.kca.EQ.87)) kfs=-kfs
3067 IF(kchg(kc,3).EQ.0)
THEN 3070 IF(rlu(0).GT.0.5) kfs=-kfs
3071 ELSEIF(kfs.GT.0)
THEN 3082 DO 120 idl=mdcy(kca,2),mdcy(kca,2)+mdcy(kca,3)-1
3083 IF(mdme(idl,1).NE.1.AND.kfsp*mdme(idl,1).NE.2.AND.
3084 &kfsn*mdme(idl,1).NE.3)
GOTO 120
3085 IF(mdme(idl,2).GT.100)
GOTO 120
3090 CALL luerrm(2,
'(LUDECY:) all decay channels closed by user')
3098 IF(mdme(idl,1).NE.1.AND.kfsp*mdme(idl,1).NE.2.AND.
3099 &kfsn*mdme(idl,1).NE.3)
THEN 3100 IF(idl.LT.mdcy(kca,2)+mdcy(kca,3)-1)
GOTO 140
3101 ELSEIF(mdme(idl,2).GT.100)
THEN 3102 IF(idl.LT.mdcy(kca,2)+mdcy(kca,3)-1)
GOTO 140
3106 IF(idl.LT.mdcy(kca,2)+mdcy(kca,3)-1.AND.rbr.GT.0.)
GOTO 140
3112 IF(ntry.GT.1000)
THEN 3113 CALL luerrm(14,
'(LUDECY:) caught in infinite loop')
3114 IF(mstu(21).GE.1)
RETURN 3120 IF(mmat.GE.11.AND.mmat.NE.46.AND.p(ip,4).GT.20.*p(ip,5)) mbst=1
3123 IF(mbst.EQ.0) pv(1,j)=p(ip,j)
3125 IF(mbst.EQ.1) pv(1,4)=p(ip,5)
3131 IF(kfa.GT.80) mhaddy=1
3135 IF(mdme(idc+1,2).EQ.101) jtmax=10
3137 IF(jt.LE.5) kp=kfdp(idc,jt)
3138 IF(jt.GE.6) kp=kfdp(idc+1,jt-5)
3139 IF(kp.EQ.0)
GOTO 170
3142 IF(kpa.GT.80) mhaddy=1
3143 IF(kchg(kcp,3).EQ.0.AND.kpa.NE.81.AND.kpa.NE.82)
THEN 3145 ELSEIF(kpa.NE.81.AND.kpa.NE.82)
THEN 3147 ELSEIF(kpa.EQ.81.AND.mod(kfa/1000,10).EQ.0)
THEN 3148 kfp=-kfs*mod(kfa/10,10)
3149 ELSEIF(kpa.EQ.81.AND.mod(kfa/100,10).GE.mod(kfa/10,10))
THEN 3150 kfp=kfs*(100*mod(kfa/10,100)+3)
3151 ELSEIF(kpa.EQ.81)
THEN 3152 kfp=kfs*(1000*mod(kfa/10,10)+100*mod(kfa/100,10)+1)
3153 ELSEIF(kp.EQ.82)
THEN 3154 CALL lukfdi(-kfs*int(1.+(2.+parj(2))*rlu(0)),0,kfp,kdump)
3155 IF(kfp.EQ.0)
GOTO 150
3157 IF(pv(1,5).LT.parj(32)+2.*ulmass(kfp))
GOTO 150
3158 ELSEIF(kp.EQ.-82)
THEN 3160 IF(iabs(kfp).GT.10) kfp=kfp+isign(10000,kfp)
3162 IF(kpa.EQ.81.OR.kpa.EQ.82) kcp=lucomp(kfp)
3167 IF(mmat.GE.11.AND.mmat.LE.30.AND.kqp.NE.0)
THEN 3171 psq=psq+ulmass(kflo(nq))
3172 ELSEIF((mmat.EQ.42.OR.mmat.EQ.43.OR.mmat.EQ.48).AND.np.EQ.3.AND.
3173 &mod(nq,2).EQ.1)
THEN 3178 CALL lukfdi(kfp,kfi,kfldmp,k(i,2))
3179 IF(k(i,2).EQ.0)
GOTO 150
3181 p(i,5)=ulmass(k(i,2))
3186 IF(mmat.NE.33.AND.kqp.NE.0) nq=nq+1
3187 IF(mmat.EQ.33.AND.kqp.NE.0.AND.kqp.NE.2) nq=nq+1
3189 IF(mmat.EQ.4.AND.jt.LE.2.AND.kfp.EQ.21) k(i,1)=2
3190 IF(mmat.EQ.4.AND.jt.EQ.3) k(i,1)=1
3196 IF(mmat.EQ.45.AND.kfpa.EQ.89) p(i,5)=parj(32)
3202 IF(mhaddy.EQ.0)
THEN 3203 IF(ps+parj(64).GT.pv(1,5))
GOTO 130
3207 180
IF(mmat.GE.11.AND.mmat.LE.30)
THEN 3209 cnde=parj(61)*log(max((pv(1,5)-ps-psq)/parj(62),1.1))
3210 IF(mmat.EQ.12) cnde=cnde+parj(63)
3212 IF(ntry.GT.1000)
THEN 3213 CALL luerrm(14,
'(LUDECY:) caught in infinite loop')
3214 IF(mstu(21).GE.1)
RETURN 3217 gauss=sqrt(-2.*cnde*log(max(1e-10,rlu(0))))*
3218 & sin(paru(2)*rlu(0))
3219 nd=0.5+0.5*np+0.25*nq+cnde+gauss
3220 IF(nd.LT.np+nq/2.OR.nd.LT.2.OR.nd.GT.10)
GOTO 190
3221 IF(mmat.EQ.13.AND.nd.EQ.2)
GOTO 190
3222 IF(mmat.EQ.14.AND.nd.LE.3)
GOTO 190
3223 IF(mmat.EQ.15.AND.nd.LE.4)
GOTO 190
3232 IF(nd.EQ.np+nq/2)
GOTO 220
3233 DO 210 i=n+np+1,n+nd-nq/2
3234 jt=1+int((nq-1)*rlu(0))
3235 CALL lukfdi(kfl1(jt),0,kfl2,k(i,2))
3236 IF(k(i,2).EQ.0)
GOTO 190
3242 IF(nq.EQ.4.AND.rlu(0).LT.parj(66)) jt=4
3243 IF(jt.EQ.4.AND.isign(1,kfl1(1)*(10-iabs(kfl1(1))))*
3244 & isign(1,kfl1(jt)*(10-iabs(kfl1(jt)))).GT.0) jt=3
3247 CALL lukfdi(kfl1(1),kfl1(jt),kfldmp,k(n+nd-nq/2+1,2))
3248 IF(k(n+nd-nq/2+1,2).EQ.0)
GOTO 190
3249 IF(nq.EQ.4)
CALL lukfdi(kfl1(jt2),kfl1(jt3),kfldmp,k(n+nd,2))
3250 IF(nq.EQ.4.AND.k(n+nd,2).EQ.0)
GOTO 190
3254 DO 230 i=n+np+1,n+nd
3259 p(i,5)=ulmass(k(i,2))
3262 IF(ps+parj(64).GT.pv(1,5))
GOTO 190
3265 ELSEIF((mmat.EQ.31.OR.mmat.EQ.33.OR.mmat.EQ.44.OR.mmat.EQ.45).
3268 pqt=(p(n+np,5)+parj(65))/pv(1,5)
3270 p(n+np,j)=pqt*pv(1,j)
3271 pv(1,j)=(1.-pqt)*pv(1,j)
3273 IF(ps+parj(64).GT.pv(1,5))
GOTO 150
3278 ELSEIF(mmat.EQ.46)
THEN 3280 psmc=ulmass(k(n+1,2))
3282 psmc=psmc+ulmass(k(n+2,2))
3283 IF(max(ps,psmc)+parj(32).GT.pv(1,5))
GOTO 130
3284 hr1=(p(n+1,5)/pv(1,5))**2
3285 hr2=(p(n+2,5)/pv(1,5))**2
3286 IF((1.-hr1-hr2)*(2.+hr1+hr2)*sqrt((1.-hr1-hr2)**2-4.*hr1*hr2).
3287 & lt.2.*rlu(0))
GOTO 130
3292 IF(np.GE.2.AND.ps+parj(64).GT.pv(1,5))
GOTO 150
3297 IF(mmat.EQ.45.AND.mstj(25).LE.0)
THEN 3298 hlq=(parj(32)/pv(1,5))**2
3299 huq=(1.-(p(n+2,5)+parj(64))/pv(1,5))**2
3300 hrq=(p(n+2,5)/pv(1,5))**2
3301 250 hw=hlq+rlu(0)*(huq-hlq)
3302 IF(hmeps(hw).LT.rlu(0))
GOTO 250
3303 p(n+1,5)=pv(1,5)*sqrt(hw)
3306 ELSEIF(mmat.EQ.45)
THEN 3307 hqw=(pv(1,5)/pmas(24,1))**2
3308 hlw=(parj(32)/pmas(24,1))**2
3309 huw=((pv(1,5)-p(n+2,5)-parj(64))/pmas(24,1))**2
3310 hrq=(p(n+2,5)/pv(1,5))**2
3311 hg=pmas(24,2)/pmas(24,1)
3312 hatl=atan((hlw-1.)/hg)
3313 hm=min(1.,huw-0.001)
3314 hmv1=hmeps(hm/hqw)/((hm-1.)**2+hg**2)
3316 hmv2=hmeps(hm/hqw)/((hm-1.)**2+hg**2)
3317 IF(hmv2.GT.hmv1.AND.hm-hg.GT.hlw)
THEN 3321 hmv=min(2.*hmv1,hmeps(hm/hqw)/hg**2)
3322 hm1=1.-sqrt(1./hmv-hg**2)
3323 IF(hm1.GT.hlw.AND.hm1.LT.hm)
THEN 3325 ELSEIF(hmv2.LE.hmv1)
THEN 3326 hm=max(hlw,hm-min(0.1,1.-hm))
3328 hatm=atan((hm-1.)/hg)
3330 hwt2=hmv*(min(1.,huw)-hm)
3333 hatu=atan((huw-1.)/hg)
3339 270 hreg=rlu(0)*(hwt1+hwt2+hwt3)
3340 IF(hreg.LE.hwt1)
THEN 3341 hw=1.+hg*tan(hatl+rlu(0)*(hatm-hatl))
3343 ELSEIF(hreg.LE.hwt1+hwt2)
THEN 3344 hw=hm+rlu(0)*(min(1.,huw)-hm)
3345 hacc=hmeps(hw/hqw)/((hw-1.)**2+hg**2)/hmv
3347 hw=1.+hg*tan(rlu(0)*hatu)
3348 hacc=hmeps(hw/hqw)/hmp1
3350 IF(hacc.LT.rlu(0))
GOTO 270
3351 p(n+1,5)=pmas(24,1)*sqrt(hw)
3358 IF(mmat.EQ.3.OR.mmat.EQ.46)
THEN 3360 IF(im.LT.0.OR.im.GE.ip) im=0
3361 IF(mmat.EQ.46.AND.mstj(27).EQ.1)
THEN 3363 ELSEIF(mmat.EQ.46.AND.mstj(27).GE.2.AND.im.NE.0)
THEN 3364 IF(k(im,2).EQ.94)
THEN 3366 IF(im.LT.0.OR.im.GE.ip) im=0
3369 IF(im.NE.0) kfam=iabs(k(im,2))
3370 IF(im.NE.0.AND.mmat.EQ.3)
THEN 3371 DO 280 il=max(ip-2,im+1),min(ip+2,n)
3372 IF(k(il,3).EQ.im) nm=nm+1
3373 IF(k(il,3).EQ.im.AND.il.NE.ip) isis=il
3375 IF(nm.NE.2.OR.kfam.LE.100.OR.mod(kfam,10).NE.1.OR.
3376 & mod(kfam/1000,10).NE.0) nm=0
3378 kfas=iabs(k(isis,2))
3379 IF((kfas.LE.100.OR.mod(kfas,10).NE.1.OR.
3380 & mod(kfas/1000,10).NE.0).AND.kfas.NE.22) nm=0
3382 ELSEIF(im.NE.0.AND.mmat.EQ.46)
THEN 3383 msgn=isign(1,k(im,2)*k(ip,2))
3384 IF(kfam.GT.100.AND.mod(kfam/1000,10).EQ.0) msgn=
3385 & msgn*(-1)**mod(kfam/100,10)
3400 wtmax=1./wtcor(nd-2)
3401 pmax=pv(1,5)-ps+p(n+nd,5)
3405 pmin=pmin+p(n+il+1,5)
3406 wtmax=wtmax*pawt(pmax,pmin,p(n+il,5))
3411 310
IF(nd.EQ.2)
THEN 3412 ELSEIF(mmat.EQ.2)
THEN 3413 pmes=4.*pmas(11,1)**2
3414 pmrho2=pmas(131,1)**2
3415 pgrho2=pmas(131,2)**2
3416 320 pmst=pmes*(p(ip,5)**2/pmes)**rlu(0)
3417 wt=(1+0.5*pmes/pmst)*sqrt(max(0.,1.-pmes/pmst))*
3418 & (1.-pmst/p(ip,5)**2)**3*(1.+pgrho2/pmrho2)/
3419 & ((1.-pmst/pmrho2)**2+pgrho2/pmrho2)
3420 IF(wt.LT.rlu(0))
GOTO 320
3421 pv(2,5)=max(2.00001*pmas(11,1),sqrt(pmst))
3428 DO 340 il2=il1-1,1,-1
3429 IF(rsav.LE.rord(il2))
GOTO 350
3430 rord(il2+1)=rord(il2)
3432 350 rord(il2+1)=rsav
3437 pv(il,5)=pv(il+1,5)+p(n+il,5)+(rord(il)-rord(il+1))*(pv(1,5)-ps)
3440 IF(wt.LT.rlu(0)*wtmax)
GOTO 330
3444 380
DO 400 il=1,nd-1
3445 pa=pawt(pv(il,5),pv(il+1,5),p(n+il,5))
3448 ue(1)=sqrt(1.-ue(3)**2)*cos(phi)
3449 ue(2)=sqrt(1.-ue(3)**2)*sin(phi)
3452 pv(il+1,j)=-pa*ue(j)
3454 p(n+il,4)=sqrt(pa**2+p(n+il,5)**2)
3455 pv(il+1,4)=sqrt(pa**2+pv(il+1,5)**2)
3464 be(j)=pv(il,j)/pv(il,4)
3466 ga=pv(il,4)/pv(il,5)
3468 bep=be(1)*p(i,1)+be(2)*p(i,2)+be(3)*p(i,3)
3470 p(i,j)=p(i,j)+ga*(ga*bep/(1.+ga)+p(i,4))*be(j)
3472 p(i,4)=ga*(p(i,4)+bep)
3478 IF(ntry.GT.800)
GOTO 480
3482 wt=(p(n+1,5)*p(n+2,5)*p(n+3,5))**2-(p(n+1,5)*four(n+2,n+3))**2
3483 & -(p(n+2,5)*four(n+1,n+3))**2-(p(n+3,5)*four(n+1,n+2))**2
3484 & +2.*four(n+1,n+2)*four(n+1,n+3)*four(n+2,n+3)
3485 IF(max(wt*wtcor(9)/p(ip,5)**6,0.001).LT.rlu(0))
GOTO 310
3488 ELSEIF(mmat.EQ.2)
THEN 3489 four12=four(n+1,n+2)
3490 four13=four(n+1,n+3)
3491 wt=(pmst-0.5*pmes)*(four12**2+four13**2)+
3492 & pmes*(four12*four13+four12**2+four13**2)
3493 IF(wt.LT.rlu(0)*0.25*pmst*(p(ip,5)**2-pmst)**2)
GOTO 380
3498 ELSEIF(mmat.EQ.3.AND.nm.EQ.2)
THEN 3505 IF(kfas.NE.22) hnum=(four10*four12-pms1*four02)**2
3506 IF(kfas.EQ.22) hnum=pms1*(2.*four10*four12*four02-
3507 & pms1*four02**2-pms0*four12**2-pms2*four10**2+pms1*pms0*pms2)
3508 hnum=max(1e-6*pms1**2*pms0*pms2,hnum)
3509 hden=(four10**2-pms1*pms0)*(four12**2-pms1*pms2)
3510 IF(hnum.LT.rlu(0)*hden)
GOTO 380
3513 ELSEIF(mmat.EQ.4)
THEN 3514 hx1=2.*four(ip,n+1)/p(ip,5)**2
3515 hx2=2.*four(ip,n+2)/p(ip,5)**2
3516 hx3=2.*four(ip,n+3)/p(ip,5)**2
3517 wt=((1.-hx1)/(hx2*hx3))**2+((1.-hx2)/(hx1*hx3))**2+
3518 & ((1.-hx3)/(hx1*hx2))**2
3519 IF(wt.LT.2.*rlu(0))
GOTO 310
3520 IF(k(ip+1,2).EQ.22.AND.(1.-hx1)*p(ip,5)**2.LT.4.*parj(32)**2)
3524 ELSEIF(mmat.EQ.41)
THEN 3525 hx1=2.*four(ip,n+1)/p(ip,5)**2
3526 hxm=min(0.75,2.*(1.-ps/p(ip,5)))
3527 IF(hx1*(3.-2.*hx1).LT.rlu(0)*hxm*(3.-2.*hxm))
GOTO 310
3530 ELSEIF((mmat.EQ.42.OR.mmat.EQ.43.OR.mmat.EQ.44.OR.mmat.EQ.48)
3532 IF(mbst.EQ.0) wt=four(ip,n+1)*four(n+2,n+3)
3533 IF(mbst.EQ.1) wt=p(ip,5)*p(n+1,4)*four(n+2,n+3)
3534 IF(wt.LT.rlu(0)*p(ip,5)*pv(1,5)**3/wtcor(10))
GOTO 310
3535 ELSEIF(mmat.EQ.42.OR.mmat.EQ.43.OR.mmat.EQ.44.OR.mmat.EQ.48)
THEN 3539 p(n+np+1,j)=p(n+np+1,j)+p(is,j)
3542 IF(mbst.EQ.0) wt=four(ip,n+1)*four(n+2,n+np+1)
3543 IF(mbst.EQ.1) wt=p(ip,5)*p(n+1,4)*four(n+2,n+np+1)
3544 IF(wt.LT.rlu(0)*p(ip,5)*pv(1,5)**3/wtcor(10))
GOTO 310
3547 ELSEIF(mmat.EQ.46.AND.msgn.NE.0)
THEN 3548 IF(msgn.GT.0) wt=four(im,n+1)*four(n+2,ip+1)
3549 IF(msgn.LT.0) wt=four(im,n+2)*four(n+1,ip+1)
3550 IF(wt.LT.rlu(0)*p(im,5)**4/wtcor(10))
GOTO 380
3554 480
IF(mrem.EQ.1)
THEN 3556 pv(1,j)=pv(1,j)/(1.-pqt)
3564 IF((mmat.EQ.31.OR.mmat.EQ.45).AND.nd.EQ.3)
THEN 3566 pm2=ulmass(k(n+2,2))
3568 pm3=ulmass(k(n+3,2))
3569 IF(p(n+2,5)**2+p(n+3,5)**2+2.*four(n+2,n+3).GE.
3570 & (parj(32)+pm2+pm3)**2)
GOTO 550
3573 CALL lukfdi(kftemp,k(n+3,2),kfldmp,k(n+2,2))
3574 IF(k(n+2,2).EQ.0)
GOTO 150
3575 p(n+2,5)=ulmass(k(n+2,2))
3576 ps=p(n+1,5)+p(n+2,5)
3581 ELSEIF(mmat.EQ.44)
THEN 3583 pm3=ulmass(k(n+3,2))
3585 pm4=ulmass(k(n+4,2))
3586 IF(p(n+3,5)**2+p(n+4,5)**2+2.*four(n+3,n+4).GE.
3587 & (parj(32)+pm3+pm4)**2)
GOTO 520
3590 CALL lukfdi(kftemp,k(n+4,2),kfldmp,k(n+3,2))
3591 IF(k(n+3,2).EQ.0)
GOTO 150
3592 p(n+3,5)=ulmass(k(n+3,2))
3594 p(n+3,j)=p(n+3,j)+p(n+4,j)
3596 p(n+3,4)=sqrt(p(n+3,1)**2+p(n+3,2)**2+p(n+3,3)**2+p(n+3,5)**2)
3597 ha=p(n+1,4)**2-p(n+2,4)**2
3598 hb=ha-(p(n+1,5)**2-p(n+2,5)**2)
3599 hc=(p(n+1,1)-p(n+2,1))**2+(p(n+1,2)-p(n+2,2))**2+
3600 & (p(n+1,3)-p(n+2,3))**2
3601 hd=(pv(1,4)-p(n+3,4))**2
3602 he=ha**2-2.*hd*(p(n+1,4)**2+p(n+2,4)**2)+hd**2
3605 hh=(sqrt(hg**2+he*hf)-hg)/(2.*hf)
3607 pcor=hh*(p(n+1,j)-p(n+2,j))
3608 p(n+1,j)=p(n+1,j)+pcor
3609 p(n+2,j)=p(n+2,j)-pcor
3611 p(n+1,4)=sqrt(p(n+1,1)**2+p(n+1,2)**2+p(n+1,3)**2+p(n+1,5)**2)
3612 p(n+2,4)=sqrt(p(n+2,1)**2+p(n+2,2)**2+p(n+2,3)**2+p(n+2,5)**2)
3617 520
IF((mmat.EQ.42.OR.mmat.EQ.43.OR.mmat.EQ.44.OR.mmat.EQ.48)
3618 &.AND.iabs(k(n+1,2)).LT.10)
THEN 3619 pmr=sqrt(max(0.,p(n+1,5)**2+p(n+2,5)**2+2.*four(n+1,n+2)))
3621 pm1=ulmass(k(n+1,2))
3623 pm2=ulmass(k(n+2,2))
3624 IF(pmr.GT.parj(32)+pm1+pm2)
GOTO 530
3625 kfldum=int(1.5+rlu(0))
3626 CALL lukfdi(k(n+1,2),-isign(kfldum,k(n+1,2)),kfldmp,kf1)
3627 CALL lukfdi(k(n+2,2),-isign(kfldum,k(n+2,2)),kfldmp,kf2)
3628 IF(kf1.EQ.0.OR.kf2.EQ.0)
GOTO 150
3629 psm=ulmass(kf1)+ulmass(kf2)
3630 IF((mmat.EQ.42.OR.mmat.EQ.48).AND.pmr.GT.parj(64)+psm)
GOTO 530
3631 IF(mmat.GE.43.AND.pmr.GT.0.2*parj(32)+psm)
GOTO 530
3632 IF(mmat.EQ.48)
GOTO 310
3633 IF(nd.EQ.4.OR.kfa.EQ.15)
GOTO 150
3636 CALL lukfdi(kftemp,k(n+2,2),kfldmp,k(n+1,2))
3637 IF(k(n+1,2).EQ.0)
GOTO 150
3638 p(n+1,5)=ulmass(k(n+1,2))
3641 ps=p(n+1,5)+p(n+2,5)
3642 IF(ps+parj(64).GT.pv(1,5))
GOTO 150
3650 530
IF((mmat.EQ.42.OR.mmat.EQ.48).AND.iabs(k(n+1,2)).LT.10)
THEN 3656 pv(1,j)=p(n+1,j)+p(n+2,j)
3667 psq=psq+ulmass(kflo(2))
3676 be(j)=p(ip,j)/p(ip,4)
3680 bep=be(1)*p(i,1)+be(2)*p(i,2)+be(3)*p(i,3)
3682 p(i,j)=p(i,j)+ga*(ga*bep/(1.+ga)+p(i,4))*be(j)
3684 p(i,4)=ga*(p(i,4)+bep)
3697 IF(mstj(23).GE.1.AND.mmat.EQ.4.AND.k(nsav+1,2).EQ.21)
THEN 3701 k(nsav+1,4)=mstu(5)*(nsav+2)
3702 k(nsav+1,5)=mstu(5)*(nsav+3)
3703 k(nsav+2,4)=mstu(5)*(nsav+3)
3704 k(nsav+2,5)=mstu(5)*(nsav+1)
3705 k(nsav+3,4)=mstu(5)*(nsav+1)
3706 k(nsav+3,5)=mstu(5)*(nsav+2)
3708 ELSEIF(mstj(23).GE.1.AND.mmat.EQ.4)
THEN 3711 k(nsav+2,4)=mstu(5)*(nsav+3)
3712 k(nsav+2,5)=mstu(5)*(nsav+3)
3713 k(nsav+3,4)=mstu(5)*(nsav+2)
3714 k(nsav+3,5)=mstu(5)*(nsav+2)
3716 ELSEIF(mstj(23).GE.1.AND.(mmat.EQ.32.OR.mmat.EQ.44.OR.mmat.EQ.46).
3720 k(nsav+1,4)=mstu(5)*(nsav+2)
3721 k(nsav+1,5)=mstu(5)*(nsav+2)
3722 k(nsav+2,4)=mstu(5)*(nsav+1)
3723 k(nsav+2,5)=mstu(5)*(nsav+1)
3725 ELSEIF(mstj(23).GE.1.AND.(mmat.EQ.32.OR.mmat.EQ.44.OR.mmat.EQ.46).
3728 ELSEIF(mstj(23).GE.1.AND.mmat.EQ.33.AND.iabs(k(nsav+2,2)).EQ.21)
3733 kcp=lucomp(k(nsav+1,2))
3734 kqp=kchg(kcp,2)*isign(1,k(nsav+1,2))
3737 k(nsav+1,jcon)=mstu(5)*(nsav+2)
3738 k(nsav+2,9-jcon)=mstu(5)*(nsav+1)
3739 k(nsav+2,jcon)=mstu(5)*(nsav+3)
3740 k(nsav+3,9-jcon)=mstu(5)*(nsav+2)
3742 ELSEIF(mstj(23).GE.1.AND.mmat.EQ.33)
THEN 3745 k(nsav+1,4)=mstu(5)*(nsav+3)
3746 k(nsav+1,5)=mstu(5)*(nsav+3)
3747 k(nsav+3,4)=mstu(5)*(nsav+1)
3748 k(nsav+3,5)=mstu(5)*(nsav+1)
3752 ELSEIF(mstj(27).GE.1.AND.mmat.EQ.45.AND.nd.EQ.3)
THEN 3755 k(nsav+2,4)=mstu(5)*(nsav+3)
3756 k(nsav+2,5)=mstu(5)*(nsav+3)
3757 k(nsav+3,4)=mstu(5)*(nsav+2)
3758 k(nsav+3,5)=mstu(5)*(nsav+2)
3763 IF(k(ip,1).EQ.5) k(ip,1)=15
3764 IF(k(ip,1).LE.10) k(ip,1)=11
3765 IF(mmix.EQ.1.AND.mstj(26).EQ.2.AND.k(ip,1).EQ.11) k(ip,1)=12
3774 SUBROUTINE lukfdi(KFL1,KFL2,KFL3,KF)
3777 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
3778 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
3779 SAVE /ludat1/,/ludat2/
3786 IF(kf1a.EQ.0)
RETURN 3788 IF(kf1a.LE.10.AND.kf2a.LE.10.AND.kfl1*kfl2.GT.0)
RETURN 3789 IF(kf1a.GT.10.AND.kf2a.GT.10)
RETURN 3790 IF((kf1a.GT.10.OR.kf2a.GT.10).AND.kfl1*kfl2.LT.0)
RETURN 3794 IF(mstj(15).EQ.1)
THEN 3796 IF(kf1a.GE.1.AND.kf1a.LE.6) ktab1=kf1a
3797 kfl1a=mod(kf1a/1000,10)
3798 kfl1b=mod(kf1a/100,10)
3800 IF(kfl1a.GE.1.AND.kfl1a.LE.4.AND.kfl1b.GE.1.AND.kfl1b.LE.4)
3801 & ktab1=6+kfl1a*(kfl1a-2)+2*kfl1b+(kfl1s-1)/2
3802 IF(kfl1a.GE.1.AND.kfl1a.LE.4.AND.kfl1a.EQ.kfl1b) ktab1=ktab1-1
3803 IF(kf1a.GE.1.AND.kf1a.LE.6) kfl1a=kf1a
3807 IF(kf2a.GE.1.AND.kf2a.LE.6) ktab2=kf2a
3808 kfl2a=mod(kf2a/1000,10)
3809 kfl2b=mod(kf2a/100,10)
3811 IF(kfl2a.GE.1.AND.kfl2a.LE.4.AND.kfl2b.GE.1.AND.kfl2b.LE.4)
3812 & ktab2=6+kfl2a*(kfl2a-2)+2*kfl2b+(kfl2s-1)/2
3813 IF(kfl2a.GE.1.AND.kfl2a.LE.4.AND.kfl2a.EQ.kfl2b) ktab2=ktab2-1
3815 IF(ktab1.GE.0.AND.ktab2.GE.0)
GOTO 150
3822 IF(mstj(12).GE.2)
THEN 3824 par4m=1./(3.*sqrt(parj(4)))
3825 pardm=parj(7)/(parj(7)+par3m*parj(6))
3826 pars0=parj(5)*(2.+(1.+par2*par3m*parj(7))*(1.+par4m))
3827 pars1=parj(7)*pars0/(2.*par3m)+parj(5)*(parj(6)*(1.+par4m)+
3828 & par2*par3m*parj(6)*parj(7))
3829 pars2=parj(5)*2.*parj(6)*parj(7)*(par2*parj(7)+(1.+par4m)/par3m)
3838 IF(kf2a.EQ.0.AND.mstj(12).GE.1.AND.(1.+parj(1))*rlu(0).GT.1.)
3840 IF(kf2a.GT.10) mbary=2
3841 IF(kf2a.GT.10.AND.kf2a.LE.10000) kfda=kf2a
3844 IF(kf1a.LE.10000) kfda=kf1a
3848 IF(kfda.NE.0.AND.mstj(12).GE.2)
THEN 3849 kflda=mod(kfda/1000,10)
3850 kfldb=mod(kfda/100,10)
3853 IF(max(kflda,kfldb).EQ.3) wtdq=pars1
3854 IF(min(kflda,kfldb).EQ.3) wtdq=pars2
3855 IF(kflds.EQ.1) wtdq=wtdq/(3.*par4m)
3856 IF((1.+wtdq)*rlu(0).GT.1.) mbary=-1
3857 IF(mbary.EQ.-1.AND.kf2a.NE.0)
RETURN 3864 IF(kf2a.EQ.0) kfl3=isign(1+int((2.+par2)*rlu(0)),-kfl1)
3865 kfla=max(kf1a,kf2a+iabs(kfl3))
3866 kflb=min(kf1a,kf2a+iabs(kfl3))
3867 IF(kfla.NE.kf1a) kfs=-kfs
3871 kfl1a=mod(kf1a/1000,10)
3872 kfl1b=mod(kf1a/100,10)
3873 120 kfl1d=kfl1a+int(rlu(0)+0.5)*(kfl1b-kfl1a)
3874 kfl1e=kfl1a+kfl1b-kfl1d
3875 IF((kfl1d.EQ.3.AND.rlu(0).GT.pardm).OR.(kfl1e.EQ.3.AND.
3876 & rlu(0).LT.pardm))
THEN 3877 kfl1d=kfl1a+kfl1b-kfl1d
3878 kfl1e=kfl1a+kfl1b-kfl1e
3880 kfl3a=1+int((2.+par2*par3m*parj(7))*rlu(0))
3881 IF((kfl1e.NE.kfl3a.AND.rlu(0).GT.(1.+par4m)/max(2.,1.+par4m)).
3885 IF(kfl1e.NE.kfl3a) kflds=2*int(rlu(0)+1./(1.+par4m))+1
3886 kfl3=isign(10000+1000*max(kfl1e,kfl3a)+100*min(kfl1e,kfl3a)+
3888 kfla=max(kfl1d,kfl3a)
3889 kflb=min(kfl1d,kfl3a)
3890 IF(kfla.NE.kfl1d) kfs=-kfs
3894 IF(kfla.LE.2) kmul=int(parj(11)+rlu(0))
3895 IF(kfla.EQ.3) kmul=int(parj(12)+rlu(0))
3896 IF(kfla.GE.4) kmul=int(parj(13)+rlu(0))
3897 IF(kmul.EQ.0.AND.parj(14).GT.0.)
THEN 3898 IF(rlu(0).LT.parj(14)) kmul=2
3899 ELSEIF(kmul.EQ.1.AND.parj(15)+parj(16)+parj(17).GT.0.)
THEN 3901 IF(rmul.LT.parj(15)) kmul=3
3902 IF(kmul.EQ.1.AND.rmul.LT.parj(15)+parj(16)) kmul=4
3903 IF(kmul.EQ.1.AND.rmul.LT.parj(15)+parj(16)+parj(17)) kmul=5
3906 IF(kmul.EQ.0.OR.kmul.EQ.3) kfls=1
3907 IF(kmul.EQ.5) kfls=5
3908 IF(kfla.NE.kflb)
THEN 3909 kf=(100*kfla+10*kflb+kfls)*kfs*(-1)**kfla
3913 IF(kfla.LE.3) kf=110*(1+int(rmix+parf(imix-1))+
3914 & int(rmix+parf(imix)))+kfls
3915 IF(kfla.GE.4) kf=110*kfla+kfls
3917 IF(kmul.EQ.2.OR.kmul.EQ.3) kf=kf+isign(10000,kf)
3918 IF(kmul.EQ.4) kf=kf+isign(20000,kf)
3922 IF(rlu(0).GT.parj(25))
GOTO 110
3923 ELSEIF(kf.EQ.331)
THEN 3924 IF(rlu(0).GT.parj(26))
GOTO 110
3929 130
IF(kf1a.LE.10.AND.kf2a.EQ.0)
THEN 3931 140 kflb=1+int((2.+par2*par3)*rlu(0))
3932 kflc=1+int((2.+par2*par3)*rlu(0))
3934 IF(kflb.GE.kflc) kflds=3
3935 IF(kflds.EQ.1.AND.par4*rlu(0).GT.1.)
GOTO 140
3936 IF(kflds.EQ.3.AND.par4.LT.rlu(0))
GOTO 140
3937 kfl3=isign(1000*max(kflb,kflc)+100*min(kflb,kflc)+kflds,kfl1)
3940 ELSEIF(kf1a.LE.10)
THEN 3942 kflb=mod(kf2a/1000,10)
3943 kflc=mod(kf2a/100,10)
3948 IF(kf2a.EQ.0) kfl3=isign(1+int((2.+par2)*rlu(0)),kfl1)
3949 kfla=kf2a+iabs(kfl3)
3950 kflb=mod(kf1a/1000,10)
3951 kflc=mod(kf1a/100,10)
3957 IF(kflds.EQ.3.AND.kflb.NE.kflc) kbary=5
3958 IF(kfla.NE.kflb.AND.kfla.NE.kflc) kbary=kbary+1
3959 wt=parf(60+kbary)+parj(18)*parf(70+kbary)
3960 IF(mbary.EQ.1.AND.mstj(12).GE.2)
THEN 3962 IF(max(kflb,kflc).EQ.3) wtdq=pars1
3963 IF(min(kflb,kflc).EQ.3) wtdq=pars2
3964 IF(kflds.EQ.1) wtdq=wtdq/(3.*par4m)
3965 IF(kflds.EQ.1) wt=wt*(1.+wtdq)/(1.+parsm/(3.*par4m))
3966 IF(kflds.EQ.3) wt=wt*(1.+wtdq)/(1.+parsm)
3968 IF(kf2a.EQ.0.AND.wt.LT.rlu(0))
GOTO 130
3971 kfld=max(kfla,kflb,kflc)
3972 kflf=min(kfla,kflb,kflc)
3973 kfle=kfla+kflb+kflc-kfld-kflf
3975 IF((parf(60+kbary)+parj(18)*parf(70+kbary))*rlu(0).GT.
3976 & parf(60+kbary)) kfls=4
3978 IF(kfls.EQ.2.AND.kfld.GT.kfle.AND.kfle.GT.kflf)
THEN 3979 IF(kflds.EQ.1.AND.kfla.EQ.kfld) kfll=1
3980 IF(kflds.EQ.1.AND.kfla.NE.kfld) kfll=int(0.25+rlu(0))
3981 IF(kflds.EQ.3.AND.kfla.NE.kfld) kfll=int(0.75+rlu(0))
3983 IF(kfll.EQ.0) kf=isign(1000*kfld+100*kfle+10*kflf+kfls,kfl1)
3984 IF(kfll.EQ.1) kf=isign(1000*kfld+100*kflf+10*kfle+kfls,kfl1)
3989 150
IF(ktab2.EQ.0.AND.mstj(12).LE.0)
THEN 3992 ELSEIF(ktab2.EQ.0.AND.ktab1.GE.7.AND.mstj(12).LE.1)
THEN 3995 ELSEIF(ktab2.EQ.0)
THEN 4004 DO 160 kt3=kt3l,kt3u
4005 rfl=rfl+parf(120+80*ktab1+25*kts+kt3)
4011 DO 180 kt3=kt3l,kt3u
4013 rfl=rfl-parf(120+80*ktab1+25*kts+kt3)
4014 IF(rfl.LE.0.)
GOTO 200
4023 kfl3=isign(kfl3a,kfl1*(2*ktab1-13))
4026 IF(ktab3.GE.8) kfl3a=2
4027 IF(ktab3.GE.11) kfl3a=3
4028 IF(ktab3.GE.16) kfl3a=4
4029 kfl3b=(ktab3-6-kfl3a*(kfl3a-2))/2
4030 kfl3=1000*kfl3a+100*kfl3b+1
4031 IF(kfl3a.EQ.kfl3b.OR.ktab3.NE.6+kfl3a*(kfl3a-2)+2*kfl3b) kfl3=
4033 kfl3=isign(kfl3,kfl1*(13-2*ktab1))
4037 IF(kfl3a.EQ.kfl1a.AND.kfl3b.EQ.kfl1b.AND.(kfl3a.LE.3.OR.
4039 rfl=rlu(0)*(parf(143+80*ktab1+25*ktabs)+parf(144+80*ktab1+
4040 & 25*ktabs)+parf(145+80*ktab1+25*ktabs))
4042 IF(rfl.GT.parf(143+80*ktab1+25*ktabs)) kf=220+2*ktabs+1
4043 IF(rfl.GT.parf(143+80*ktab1+25*ktabs)+parf(144+80*ktab1+
4044 & 25*ktabs)) kf=330+2*ktabs+1
4045 ELSEIF(ktab1.LE.6.AND.ktab3.LE.6)
THEN 4046 kfla=max(ktab1,ktab3)
4047 kflb=min(ktab1,ktab3)
4049 IF(kfla.NE.kf1a) kfs=-kfs
4050 kf=(100*kfla+10*kflb+2*ktabs+1)*kfs*(-1)**kfla
4051 ELSEIF(ktab1.GE.7.AND.ktab3.GE.7)
THEN 4053 IF(kfl1a.EQ.kfl3a)
THEN 4054 kfla=max(kfl1b,kfl3b)
4055 kflb=min(kfl1b,kfl3b)
4056 IF(kfla.NE.kfl1b) kfs=-kfs
4057 ELSEIF(kfl1a.EQ.kfl3b)
THEN 4061 ELSEIF(kfl1b.EQ.kfl3a)
THEN 4064 ELSEIF(kfl1b.EQ.kfl3b)
THEN 4065 kfla=max(kfl1a,kfl3a)
4066 kflb=min(kfl1a,kfl3a)
4067 IF(kfla.NE.kfl1a) kfs=-kfs
4069 CALL luerrm(2,
'(LUKFDI:) no matching flavours for qq -> qq')
4072 kf=(100*kfla+10*kflb+2*ktabs+1)*kfs*(-1)**kfla
4085 kfld=max(kfla,kflb,kflc)
4086 kflf=min(kfla,kflb,kflc)
4087 kfle=kfla+kflb+kflc-kfld-kflf
4088 IF(ktabs.EQ.0) kf=isign(1000*kfld+100*kflf+10*kfle+2,kfl1)
4089 IF(ktabs.GE.1) kf=isign(1000*kfld+100*kfle+10*kflf+2*ktabs,kfl1)
4093 IF(kfl2.NE.0) kfl3=0
4096 CALL luerrm(2,
'(LUKFDI:) user-defined flavour probabilities '//
4106 SUBROUTINE luptdi(KFL,PX,PY)
4109 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
4114 pt=parj(21)*sqrt(-log(max(1e-10,rlu(0))))
4115 IF(parj(23).GT.rlu(0)) pt=parj(24)*pt
4116 IF(mstj(91).EQ.1) pt=parj(22)*pt
4117 IF(kfla.EQ.0.AND.mstj(13).LE.0) pt=0.
4127 SUBROUTINE luzdis(KFL1,KFL2,PR,Z)
4130 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
4131 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
4132 SAVE /ludat1/,/ludat2/
4138 IF(kfla.GE.10) kflh=mod(kfla/1000,10)
4141 IF(mstj(11).EQ.1.OR.(mstj(11).EQ.3.AND.kflh.LE.3).OR.
4142 &mstj(11).GE.4)
THEN 4144 IF(mstj(91).EQ.1) fa=parj(43)
4145 IF(kflb.GE.10) fa=fa+parj(45)
4147 IF(mstj(91).EQ.1) fbb=parj(44)
4150 IF(kfla.GE.10) fc=fc-parj(45)
4151 IF(kflb.GE.10) fc=fc+parj(45)
4152 IF(mstj(11).GE.4.AND.kflh.GE.4.AND.kflh.LE.5)
THEN 4154 IF(mstj(11).EQ.5.AND.kflh.EQ.5) fred=parj(47)
4155 fc=fc+fred*fbb*parf(100+kflh)**2
4156 ELSEIF(mstj(11).GE.4.AND.kflh.GE.6.AND.kflh.LE.8)
THEN 4158 IF(mstj(11).EQ.5) fred=parj(48)
4159 fc=fc+fred*fbb*pmas(kflh,1)**2
4162 IF(abs(fc-1.).GT.0.01) mc=2
4168 IF(fc.GT.fb) zmax=fb/fc
4169 ELSEIF(abs(fc-fa).LT.0.01)
THEN 4174 zmax=0.5*(fb+fc-sqrt((fb-fc)**2+4.*fa*fb))/(fc-fa)
4175 IF(zmax.GT.0.9999.AND.fb.GT.100.) zmax=min(zmax,1.-fa/fb)
4180 IF(zmax.LT.0.1)
THEN 4187 fint=1.+(1.-1./zdivc)/(fc-1.)
4189 ELSEIF(zmax.GT.0.85.AND.fb.GT.1.)
THEN 4191 fscb=sqrt(4.+(fc/fb)**2)
4192 zdiv=fscb-1./zmax-(fc/fb)*log(zmax*0.5*(fscb+fc/fb))
4193 IF(ma.GE.2) zdiv=zdiv+(fa/fb)*log(1.-zmax)
4194 zdiv=min(zmax,max(0.,zdiv))
4195 fint=1.+fb*(1.-zdiv)
4202 IF(fint*rlu(0).LE.1.)
THEN 4204 ELSEIF(mc.EQ.1)
THEN 4208 z=1./(zdivc+z*(1.-zdivc))**(1./(1.-fc))
4211 ELSEIF(mmax.EQ.3)
THEN 4212 IF(fint*rlu(0).LE.1.)
THEN 4214 fpre=exp(fb*(z-zdiv))
4221 IF(z.LE.0..OR.z.GE.1.)
GOTO 100
4222 fexp=fc*log(zmax/z)+fb*(1./zmax-1./z)
4223 IF(ma.GE.2) fexp=fexp+fa*log((1.-z)/(1.-zmax))
4224 fval=exp(max(-50.,min(50.,fexp)))
4225 IF(fval.LT.rlu(0)*fpre)
GOTO 100
4229 fc=parj(50+max(1,kflh))
4230 IF(mstj(91).EQ.1) fc=parj(59)
4232 IF(fc.GE.0..AND.fc.LE.1.)
THEN 4233 IF(fc.GT.rlu(0)) z=1.-z**(1./3.)
4234 ELSEIF(fc.GT.-1.AND.fc.LT.0.)
THEN 4235 IF(-4.*fc*z*(1.-z)**2.LT.rlu(0)*((1.-z)**2-fc*z)**2)
GOTO 110
4237 IF(fc.GT.0.) z=1.-z**(1./fc)
4238 IF(fc.LT.0.) z=z**(-1./fc)
4247 SUBROUTINE lushow(IP1,IP2,QMAX)
4250 IMPLICIT DOUBLE PRECISION(d)
4251 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
4252 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
4253 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
4254 SAVE /lujets/,/ludat1/,/ludat2/
4255 dimension pmth(5,40),ps(5),pma(4),pmsd(4),iep(4),ipa(4),
4256 &kfla(4),kfld(4),kfl(4),itry(4),isi(4),isl(4),dp(4),dpt(5,4),
4257 &ksh(0:40),kcii(2),niis(2),iiis(2,2),theiis(2,2),phiiis(2,2),
4261 IF(mstj(41).LE.0.OR.(mstj(41).EQ.1.AND.qmax.LE.parj(82)).OR.
4262 &qmax.LE.min(parj(82),parj(83)))
RETURN 4267 pmth(1,21)=ulmass(21)
4268 pmth(2,21)=sqrt(pmth(1,21)**2+0.25*parj(82)**2)
4269 pmth(3,21)=2.*pmth(2,21)
4270 pmth(4,21)=pmth(3,21)
4271 pmth(5,21)=pmth(3,21)
4272 pmth(1,22)=ulmass(22)
4273 pmth(2,22)=sqrt(pmth(1,22)**2+0.25*parj(83)**2)
4274 pmth(3,22)=2.*pmth(2,22)
4275 pmth(4,22)=pmth(3,22)
4276 pmth(5,22)=pmth(3,22)
4278 IF(mstj(41).GE.2) pmqth1=min(parj(82),parj(83))
4280 IF(mstj(41).GE.2) pmqth2=min(pmth(2,21),pmth(2,22))
4283 pmth(1,if)=ulmass(if)
4284 pmth(2,if)=sqrt(pmth(1,if)**2+0.25*pmqth1**2)
4285 pmth(3,if)=pmth(2,if)+pmqth2
4286 pmth(4,if)=sqrt(pmth(1,if)**2+0.25*parj(82)**2)+pmth(2,21)
4287 pmth(5,if)=sqrt(pmth(1,if)**2+0.25*parj(83)**2)+pmth(2,22)
4290 IF(mstj(41).GE.2) ksh(if)=1
4291 pmth(1,if)=ulmass(if)
4292 pmth(2,if)=sqrt(pmth(1,if)**2+0.25*parj(83)**2)
4293 pmth(3,if)=pmth(2,if)+pmth(2,22)
4294 pmth(4,if)=pmth(3,if)
4295 pmth(5,if)=pmth(3,if)
4297 pt2min=max(0.5*parj(82),1.1*parj(81))**2
4299 alfm=log(pt2min/alams)
4302 IF(ip1.GT.0.AND.ip1.LE.min(n,mstu(4)-mstu(32)).AND.ip2.EQ.0)
THEN 4305 ELSEIF(min(ip1,ip2).GT.0.AND.max(ip1,ip2).LE.min(n,mstu(4)-
4310 ELSEIF(ip1.GT.0.AND.ip1.LE.min(n,mstu(4)-mstu(32)).AND.ip2.LT.0.
4311 &and.ip2.GE.-3)
THEN 4318 &
'(LUSHOW:) failed to reconstruct showering system')
4319 IF(mstu(21).GE.1)
RETURN 4329 kfla(i)=iabs(k(ipa(i),2))
4331 IF(kfla(i).LE.40)
THEN 4332 IF(ksh(kfla(i)).EQ.1) pma(i)=pmth(3,kfla(i))
4335 IF(kfla(i).GT.40)
THEN 4338 IF(ksh(kfla(i)).EQ.0.OR.pma(i).GT.qmax) irej=irej+1
4341 ps(j)=ps(j)+p(ipa(i),j)
4344 IF(irej.EQ.npa)
RETURN 4345 ps(5)=sqrt(max(0.,ps(4)**2-ps(1)**2-ps(2)**2-ps(3)**2))
4346 IF(npa.EQ.1) ps(5)=ps(4)
4347 IF(ps(5).LE.pm+pmqth1)
RETURN 4351 IF(npa.EQ.2.AND.mstj(47).GE.1)
THEN 4352 IF(kfla(1).GE.1.AND.kfla(1).LE.8.AND.kfla(2).GE.1.AND.
4353 & kfla(2).LE.8) m3jc=1
4354 IF((kfla(1).EQ.11.OR.kfla(1).EQ.13.OR.kfla(1).EQ.15.OR.
4355 & kfla(1).EQ.17).AND.kfla(2).EQ.kfla(1)) m3jc=1
4356 IF((kfla(1).EQ.11.OR.kfla(1).EQ.13.OR.kfla(1).EQ.15.OR.
4357 & kfla(1).EQ.17).AND.kfla(2).EQ.kfla(1)+1) m3jc=1
4358 IF((kfla(1).EQ.12.OR.kfla(1).EQ.14.OR.kfla(1).EQ.16.OR.
4359 & kfla(1).EQ.18).AND.kfla(2).EQ.kfla(1)-1) m3jc=1
4360 IF(mstj(47).EQ.2.OR.mstj(47).EQ.4) m3jc=1
4362 IF(m3jc.EQ.1.AND.mstj(47).GE.3.AND.kfla(1).EQ.kfla(2))
THEN 4364 qme=(2.*pmth(kfla(1),1)/ps(5))**2
4370 IF(mstj(50).GE.1.AND.mstj(50).LE.3.AND.npa.EQ.2) miis=mstj(50)
4375 IF(kca.NE.0) kcii(i)=kchg(kca,2)*isign(1,k(ipa(i),2))
4377 IF(kcii(i).NE.0)
THEN 4379 icsi=mod(k(ipa(i),3+j)/mstu(5),mstu(5))
4380 IF(icsi.GT.0.AND.icsi.NE.ipa(1).AND.icsi.NE.ipa(2).AND.
4381 & (kcii(i).EQ.(-1)**(j+1).OR.kcii(i).EQ.2))
THEN 4383 iiis(i,niis(i))=icsi
4388 IF(niis(1)+niis(2).EQ.0) miis=0
4396 k(n+i,j)=k(ipa(i),j)
4397 p(n+i,j)=p(ipa(i),j)
4401 DO 220 i=3,2+niis(1)
4403 k(n+i,j)=k(iiis(1,i-2),j)
4404 p(n+i,j)=p(iiis(1,i-2),j)
4408 DO 240 i=3+niis(1),2+niis(1)+niis(2)
4410 k(n+i,j)=k(iiis(2,i-2-niis(1)),j)
4411 p(n+i,j)=p(iiis(2,i-2-niis(1)),j)
4415 CALL ludbrb(n+1,n+2+niis(1)+niis(2),0.,0.,-dble(ps(1)/ps(4)),
4416 & -dble(ps(2)/ps(4)),-dble(ps(3)/ps(4)))
4417 phi=ulangl(p(n+1,1),p(n+1,2))
4418 CALL ludbrb(n+1,n+2+niis(1)+niis(2),0.,-phi,0d0,0d0,0d0)
4419 the=ulangl(p(n+1,3),p(n+1,1))
4420 CALL ludbrb(n+1,n+2+niis(1)+niis(2),-the,0.,0d0,0d0,0d0)
4421 DO 250 i=3,2+niis(1)
4422 theiis(1,i-2)=ulangl(p(n+i,3),sqrt(p(n+i,1)**2+p(n+i,2)**2))
4423 phiiis(1,i-2)=ulangl(p(n+i,1),p(n+i,2))
4425 DO 260 i=3+niis(1),2+niis(1)+niis(2)
4426 theiis(2,i-2-niis(1))=paru(1)-ulangl(p(n+i,3),
4427 & sqrt(p(n+i,1)**2+p(n+i,2)**2))
4428 phiiis(2,i-2-niis(1))=ulangl(p(n+i,1),p(n+i,2))
4434 IF(n.GT.mstu(4)-mstu(32)-5)
THEN 4435 CALL luerrm(11,
'(LUSHOW:) no more memory left in LUJETS')
4436 IF(mstu(21).GE.1)
RETURN 4456 IF(npa.EQ.1) im=ns-1
4459 IF(im.GT.n)
GOTO 510
4461 IF(kflm.GT.40)
GOTO 270
4462 IF(ksh(kflm).EQ.0)
GOTO 270
4463 IF(p(im,5).LT.pmth(2,kflm))
GOTO 270
4468 IF(n+nep.GT.mstu(4)-mstu(32)-5)
THEN 4469 CALL luerrm(11,
'(LUSHOW:) no more memory left in LUJETS')
4470 IF(mstu(21).GE.1)
RETURN 4477 IF(k(im-1,3).EQ.igm) iau=im-1
4478 IF(n.GE.im+1.AND.k(im+1,3).EQ.igm) iau=im+1
4490 k(n+i,2)=k(ipa(i),2)
4492 ELSEIF(kflm.NE.21)
THEN 4495 ELSEIF(k(im,5).EQ.21)
THEN 4508 kfld(ip)=iabs(k(n+ip,2))
4509 IF(kchg(lucomp(kfld(ip)),2).EQ.0) k(n+ip,1)=1
4513 IF(kfld(ip).LE.40)
THEN 4514 IF(ksh(kfld(ip)).EQ.1) isi(ip)=1
4522 IF(npa.GE.3) p(n+i,4)=(ps(4)*p(ipa(i),4)-ps(1)*p(ipa(i),1)-
4523 & ps(2)*p(ipa(i),2)-ps(3)*p(ipa(i),3))/ps(5)
4524 p(n+i,5)=min(qmax,ps(5))
4525 IF(npa.GE.3) p(n+i,5)=min(p(n+i,5),p(n+i,4))
4526 IF(isi(i).EQ.0) p(n+i,5)=p(ipa(i),5)
4529 IF(mstj(43).LE.2) pem=v(im,2)
4530 IF(mstj(43).GE.3) pem=p(im,4)
4531 p(n+1,5)=min(p(im,5),v(im,1)*pem)
4532 p(n+2,5)=min(p(im,5),(1.-v(im,1))*pem)
4533 IF(k(n+2,2).EQ.22) p(n+2,5)=pmth(1,22)
4537 IF(isi(i).EQ.1)
THEN 4538 IF(p(n+i,5).LE.pmth(3,kfld(i))) p(n+i,5)=pmth(1,kfld(i))
4540 v(n+i,5)=p(n+i,5)**2
4547 IF(inum.EQ.0.AND.isl(i).EQ.1) inum=i
4550 IF(inum.EQ.0.AND.itry(i).EQ.0.AND.isi(i).EQ.1)
THEN 4551 IF(p(n+i,5).GE.pmth(2,kfld(i))) inum=i
4557 IF(isi(i).EQ.1.AND.pmsd(i).GE.pmqth2)
THEN 4558 rpm=p(n+i,5)/pmsd(i)
4559 IF(rpm.GT.rmax.AND.p(n+i,5).GE.pmth(2,kfld(i)))
THEN 4572 IF(iep(i).GT.n+nep) iep(i)=n+1
4575 kfl(i)=iabs(k(iep(i),2))
4577 itry(inum)=itry(inum)+1
4578 IF(itry(inum).GT.200)
THEN 4579 CALL luerrm(14,
'(LUSHOW:) caught in infinite loop')
4580 IF(mstu(21).GE.1)
RETURN 4583 IF(kfl(1).GT.40)
GOTO 430
4584 IF(ksh(kfl(1)).EQ.0)
GOTO 430
4585 IF(p(iep(1),5).LT.pmth(2,kfl(1)))
GOTO 430
4588 IF(miis.GE.1.AND.iep(1).LE.ns+3)
THEN 4591 IF(iabs(kcii(iii)).EQ.1.AND.niis(iii).EQ.1)
THEN 4593 ELSEIF(kcii(iii).EQ.2.AND.niis(iii).EQ.1)
THEN 4594 IF(rlu(0).GT.0.5) isii(iii)=1
4595 ELSEIF(kcii(iii).EQ.2.AND.niis(iii).EQ.2)
THEN 4597 IF(rlu(0).GT.0.5) isii(iii)=2
4604 ELSEIF(igm.EQ.0.OR.mstj(43).LE.2)
THEN 4607 IF(inum.EQ.1) pmed=v(im,1)*pem
4608 IF(inum.EQ.2) pmed=(1.-v(im,1))*pem
4610 IF(mod(mstj(43),2).EQ.1)
THEN 4614 zc=0.5*(1.-sqrt(max(0.,1.-(2.*pmth(2,21)/pmed)**2)))
4615 IF(zc.LT.1e-4) zc=(pmth(2,21)/pmed)**2
4616 zce=0.5*(1.-sqrt(max(0.,1.-(2.*pmth(2,22)/pmed)**2)))
4617 IF(zce.LT.1e-4) zce=(pmth(2,22)/pmed)**2
4621 IF((mstj(41).EQ.1.AND.zc.GT.0.49).OR.(mstj(41).GE.2.AND.
4622 &min(zc,zce).GT.0.49))
THEN 4623 p(iep(1),5)=pmth(1,kfl(1))
4624 v(iep(1),5)=p(iep(1),5)**2
4629 IF(mstj(49).EQ.0.AND.kfl(1).EQ.21)
THEN 4630 fbr=6.*log((1.-zc)/zc)+mstj(45)*(0.5-zc)
4631 ELSEIF(mstj(49).EQ.0)
THEN 4632 fbr=(8./3.)*log((1.-zc)/zc)
4635 ELSEIF(mstj(49).EQ.1.AND.kfl(1).EQ.21)
THEN 4636 fbr=(parj(87)+mstj(45)*parj(88))*(1.-2.*zc)
4637 ELSEIF(mstj(49).EQ.1)
THEN 4639 IF(igm.EQ.0.AND.m3jc.EQ.1) fbr=4.*fbr
4642 ELSEIF(kfl(1).EQ.21)
THEN 4643 fbr=6.*mstj(45)*(0.5-zc)
4645 fbr=2.*log((1.-zc)/zc)
4649 IF(kfl(1).GE.11.AND.kfl(1).LE.18) fbr=0.
4652 IF(mstj(41).GE.2.AND.kfl(1).GE.1.AND.kfl(1).LE.18)
THEN 4653 fbre=(kchg(kfl(1),1)/3.)**2*2.*log((1.-zce)/zce)
4654 IF(mstj(41).EQ.10) fbre=parj(84)*fbre
4663 IF(kfl(i).LE.40)
THEN 4664 IF(ksh(kfl(i)).EQ.1) pm=pmth(2,kfl(i))
4668 pms=min(pms,(p(im,5)-pm2)**2)
4673 DO 410 if=4,mstj(45)
4674 IF(pms.GT.4.*pmth(2,if)**2) b0=(33.-2.*if)/6.
4676 IF(fbr.LT.1e-3)
THEN 4678 ELSEIF(mstj(44).LE.0)
THEN 4679 pmsqcd=pms*exp(max(-50.,log(rlu(0))*paru(2)/(paru(111)*fbr)))
4680 ELSEIF(mstj(44).EQ.1)
THEN 4681 pmsqcd=4.*alams*(0.25*pms/alams)**(rlu(0)**(b0/fbr))
4683 pmsqcd=pms*exp(max(-50.,alfm*b0*log(rlu(0))/fbr))
4685 IF(zc.GT.0.49.OR.pmsqcd.LE.pmth(4,kfl(1))**2) pmsqcd=
4691 IF(mstj(41).GE.2.AND.kfl(1).GE.1.AND.kfl(1).LE.18)
THEN 4692 pmsqed=pms*exp(max(-50.,log(rlu(0))*paru(2)/(paru(101)*fbre)))
4693 IF(zce.GT.0.49.OR.pmsqed.LE.pmth(5,kfl(1))**2) pmsqed=
4695 IF(pmsqed.GT.pmsqcd)
THEN 4702 p(iep(1),5)=sqrt(v(iep(1),5))
4703 IF(p(iep(1),5).LE.pmth(3,kfl(1)))
THEN 4704 p(iep(1),5)=pmth(1,kfl(1))
4705 v(iep(1),5)=p(iep(1),5)**2
4711 z=1.-(1.-zce)*(zce/(1.-zce))**rlu(0)
4712 IF(1.+z**2.LT.2.*rlu(0))
GOTO 390
4716 ELSEIF(mstj(49).NE.1.AND.kfl(1).NE.21)
THEN 4717 z=1.-(1.-zc)*(zc/(1.-zc))**rlu(0)
4718 IF(1.+z**2.LT.2.*rlu(0))
GOTO 390
4720 ELSEIF(mstj(49).EQ.0.AND.mstj(45)*(0.5-zc).LT.rlu(0)*fbr)
THEN 4721 z=(1.-zc)*(zc/(1.-zc))**rlu(0)
4722 IF(rlu(0).GT.0.5) z=1.-z
4723 IF((1.-z*(1.-z))**2.LT.rlu(0))
GOTO 390
4725 ELSEIF(mstj(49).NE.1)
THEN 4726 z=zc+(1.-2.*zc)*rlu(0)
4727 IF(z**2+(1.-z)**2.LT.rlu(0))
GOTO 390
4728 kflb=1+int(mstj(45)*rlu(0))
4729 pmq=4.*pmth(2,kflb)**2/v(iep(1),5)
4730 IF(pmq.GE.1.)
GOTO 390
4731 pmq0=4.*pmth(2,21)**2/v(iep(1),5)
4732 IF(mod(mstj(43),2).EQ.0.AND.(1.+0.5*pmq)*sqrt(1.-pmq).LT.
4733 & rlu(0)*(1.+0.5*pmq0)*sqrt(1.-pmq0))
GOTO 390
4737 ELSEIF(kfl(1).NE.21)
THEN 4738 z=1.-sqrt(zc**2+rlu(0)*(1.-2.*zc))
4740 ELSEIF(rlu(0)*(parj(87)+mstj(45)*parj(88)).LE.parj(87))
THEN 4741 z=zc+(1.-2.*zc)*rlu(0)
4744 z=zc+(1.-2.*zc)*rlu(0)
4745 kflb=1+int(mstj(45)*rlu(0))
4746 pmq=4.*pmth(2,kflb)**2/v(iep(1),5)
4747 IF(pmq.GE.1.)
GOTO 390
4750 IF(mce.EQ.1.AND.mstj(44).GE.2)
THEN 4751 IF(z*(1.-z)*v(iep(1),5).LT.pt2min)
GOTO 390
4752 IF(alfm/log(v(iep(1),5)*z*(1.-z)/alams).LT.rlu(0))
GOTO 390
4756 IF(kfl(1).EQ.21)
THEN 4757 kflgd1=iabs(k(iep(1),5))
4761 kflgd2=iabs(k(iep(1),5))
4765 ELSEIF(nep.GE.3)
THEN 4767 ELSEIF(igm.EQ.0.OR.mstj(43).LE.2)
THEN 4768 ped=0.5*(v(im,5)+v(iep(1),5)-pm2**2)/p(im,5)
4770 IF(iep(1).EQ.n+1) ped=v(im,1)*pem
4771 IF(iep(1).EQ.n+2) ped=(1.-v(im,1))*pem
4773 IF(mod(mstj(43),2).EQ.1)
THEN 4775 IF(kflgd2.EQ.22) pmqth3=0.5*parj(83)
4776 pmq1=(pmth(1,kflgd1)**2+pmqth3**2)/v(iep(1),5)
4777 pmq2=(pmth(1,kflgd2)**2+pmqth3**2)/v(iep(1),5)
4778 zd=sqrt(max(0.,(1.-v(iep(1),5)/ped**2)*((1.-pmq1-pmq2)**2-
4782 zd=sqrt(max(0.,1.-v(iep(1),5)/ped**2))
4787 IF(z.LT.zl.OR.z.GT.zu)
GOTO 390
4788 IF(kfl(1).EQ.21) v(iep(1),3)=log(zu*(1.-zl)/max(1e-20,zl*
4790 IF(kfl(1).NE.21) v(iep(1),3)=log((1.-zl)/max(1e-10,1.-zu))
4793 IF(igm.EQ.0.AND.m3jc.EQ.1)
THEN 4794 x1=z*(1.+v(iep(1),5)/v(ns+1,5))
4795 x2=1.-v(iep(1),5)/v(ns+1,5)
4799 ki2=k(ipa(3-inum),2)
4800 qf1=kchg(iabs(ki1),1)*isign(1,ki1)/3.
4801 qf2=kchg(iabs(ki2),1)*isign(1,ki2)/3.
4802 wshow=qf1**2*(1.-x1)/x3*(1.+(x1/(2.-x2))**2)+
4803 & qf2**2*(1.-x2)/x3*(1.+(x2/(2.-x1))**2)
4804 wme=(qf1*(1.-x1)/x3-qf2*(1.-x2)/x3)**2*(x1**2+x2**2)
4805 ELSEIF(mstj(49).NE.1)
THEN 4806 wshow=1.+(1.-x1)/x3*(x1/(2.-x2))**2+
4807 & (1.-x2)/x3*(x2/(2.-x1))**2
4809 IF(m3jcm.EQ.1) wme=wme-qme*x3-0.5*qme**2-
4810 & (0.5*qme+0.25*qme**2)*((1.-x2)/(1.-x1)+(1.-x1)/(1.-x2))
4812 wshow=4.*x3*((1.-x1)/(2.-x2)**2+(1.-x2)/(2.-x1)**2)
4814 IF(mstj(102).GE.2) wme=x3**2-2.*(1.+x3)*(1.-x1)*(1.-x2)*
4817 IF(wme.LT.rlu(0)*wshow)
GOTO 390
4820 ELSEIF(mce.EQ.1.AND.igm.GT.0.AND.mstj(42).GE.2)
THEN 4823 IF(iep(1).EQ.n+2) zm=1.-v(im,1)
4824 the2id=z*(1.-z)*(zm*p(im,4))**2/v(iep(1),5)
4826 420
IF(k(iaom,5).EQ.22)
THEN 4828 IF(k(iaom,3).LE.ns) maom=0
4829 IF(maom.EQ.1)
GOTO 420
4832 the2im=v(iaom,1)*(1.-v(iaom,1))*p(iaom,4)**2/v(iaom,5)
4833 IF(the2id.LT.the2im)
GOTO 390
4838 IF(mstj(48).EQ.1)
THEN 4839 IF(nep.EQ.1.AND.im.EQ.ns)
THEN 4840 the2id=z*(1.-z)*ps(4)**2/v(iep(1),5)
4841 IF(the2id.LT.1./parj(85)**2)
GOTO 390
4842 ELSEIF(nep.EQ.2.AND.iep(1).EQ.ns+2)
THEN 4843 the2id=z*(1.-z)*(0.5*p(im,4))**2/v(iep(1),5)
4844 IF(the2id.LT.1./parj(85)**2)
GOTO 390
4845 ELSEIF(nep.EQ.2.AND.iep(1).EQ.ns+3)
THEN 4846 the2id=z*(1.-z)*(0.5*p(im,4))**2/v(iep(1),5)
4847 IF(the2id.LT.1./parj(86)**2)
GOTO 390
4853 IF(miis.GE.2.AND.iep(1).LE.ns+3)
THEN 4854 the2d=max((1.-z)/z,z/(1.-z))*v(iep(1),5)/(0.5*p(im,4))**2
4855 IF(iep(1).EQ.ns+2.AND.isii(1).GE.1)
THEN 4856 IF(the2d.GT.theiis(1,isii(1))**2)
GOTO 390
4857 ELSEIF(iep(1).EQ.ns+3.AND.isii(2).GE.1)
THEN 4858 IF(the2d.GT.theiis(2,isii(2))**2)
GOTO 390
4866 IF(nep.EQ.1)
GOTO 460
4867 IF(nep.EQ.2.AND.p(iep(1),5)+p(iep(2),5).GE.p(im,5))
GOTO 330
4869 IF(itry(i).EQ.0.AND.kfld(i).LE.40)
THEN 4870 IF(ksh(kfld(i)).EQ.1)
THEN 4871 IF(p(n+i,5).GE.pmth(2,kfld(i)))
GOTO 330
4878 pa1s=(p(n+1,4)+p(n+1,5))*(p(n+1,4)-p(n+1,5))
4879 pa2s=(p(n+2,4)+p(n+2,5))*(p(n+2,4)-p(n+2,5))
4880 pa3s=(p(n+3,4)+p(n+3,5))*(p(n+3,4)-p(n+3,5))
4881 pts=0.25*(2.*pa1s*pa2s+2.*pa1s*pa3s+2.*pa2s*pa3s-
4882 & pa1s**2-pa2s**2-pa3s**2)/pa1s
4883 IF(pts.LE.0.)
GOTO 330
4884 ELSEIF(igm.EQ.0.OR.mstj(43).LE.2.OR.mod(mstj(43),2).EQ.0)
THEN 4887 IF(kflda.GT.40)
GOTO 450
4888 IF(ksh(kflda).EQ.0)
GOTO 450
4889 IF(p(i1,5).LT.pmth(2,kflda))
GOTO 450
4890 IF(kflda.EQ.21)
THEN 4891 kflgd1=iabs(k(i1,5))
4895 kflgd2=iabs(k(i1,5))
4898 IF(igm.EQ.0.OR.mstj(43).LE.2)
THEN 4899 ped=0.5*(v(im,5)+v(i1,5)-v(i2,5))/p(im,5)
4901 IF(i1.EQ.n+1) zm=v(im,1)
4902 IF(i1.EQ.n+2) zm=1.-v(im,1)
4903 pml=sqrt((v(im,5)-v(n+1,5)-v(n+2,5))**2-
4904 & 4.*v(n+1,5)*v(n+2,5))
4905 ped=pem*(0.5*(v(im,5)-pml+v(i1,5)-v(i2,5))+pml*zm)/v(im,5)
4907 IF(mod(mstj(43),2).EQ.1)
THEN 4909 IF(kflgd2.EQ.22) pmqth3=0.5*parj(83)
4910 pmq1=(pmth(1,kflgd1)**2+pmqth3**2)/v(i1,5)
4911 pmq2=(pmth(1,kflgd2)**2+pmqth3**2)/v(i1,5)
4912 zd=sqrt(max(0.,(1.-v(i1,5)/ped**2)*((1.-pmq1-pmq2)**2-
4916 zd=sqrt(max(0.,1.-v(i1,5)/ped**2))
4921 IF(i1.EQ.n+1.AND.(v(i1,1).LT.zl.OR.v(i1,1).GT.zu)) isl(1)=1
4922 IF(i1.EQ.n+2.AND.(v(i1,1).LT.zl.OR.v(i1,1).GT.zu)) isl(2)=1
4923 IF(kflda.EQ.21) v(i1,4)=log(zu*(1.-zl)/max(1e-20,zl*(1.-zu)))
4924 IF(kflda.NE.21) v(i1,4)=log((1.-zl)/max(1e-10,1.-zu))
4926 IF(isl(1).EQ.1.AND.isl(2).EQ.1.AND.islm.NE.0)
THEN 4929 ELSEIF(isl(1).EQ.1.AND.isl(2).EQ.1)
THEN 4930 zdr1=max(0.,v(n+1,3)/max(1e-6,v(n+1,4))-1.)
4931 zdr2=max(0.,v(n+2,3)/max(1e-6,v(n+2,4))-1.)
4932 IF(zdr2.GT.rlu(0)*(zdr1+zdr2)) isl(1)=0
4933 IF(isl(1).EQ.1) isl(2)=0
4934 IF(isl(1).EQ.0) islm=1
4935 IF(isl(2).EQ.0) islm=2
4937 IF(isl(1).EQ.1.OR.isl(2).EQ.1)
GOTO 330
4939 IF(igm.GT.0.AND.mod(mstj(43),2).EQ.1.AND.(p(n+1,5).GE.
4940 &pmth(2,kfld(1)).OR.p(n+2,5).GE.pmth(2,kfld(2))))
THEN 4941 pmq1=v(n+1,5)/v(im,5)
4942 pmq2=v(n+2,5)/v(im,5)
4943 zd=sqrt(max(0.,(1.-v(im,5)/pem**2)*((1.-pmq1-pmq2)**2-
4948 IF(v(im,1).LT.zl.OR.v(im,1).GT.zu)
GOTO 330
4957 p(n+1,3)=sqrt(max(0.,(p(ipa(1),4)+p(n+1,5))*(p(ipa(1),4)-
4959 p(n+1,4)=p(ipa(1),4)
4961 ELSEIF(igm.EQ.0.AND.nep.EQ.2)
THEN 4962 ped1=0.5*(v(im,5)+v(n+1,5)-v(n+2,5))/p(im,5)
4965 p(n+1,3)=sqrt(max(0.,(ped1+p(n+1,5))*(ped1-p(n+1,5))))
4970 p(n+2,4)=p(im,5)-ped1
4973 ELSEIF(nep.EQ.3)
THEN 4976 p(n+1,3)=sqrt(max(0.,pa1s))
4979 p(n+2,3)=0.5*(pa3s-pa2s-pa1s)/p(n+1,3)
4982 p(n+3,3)=-(p(n+1,3)+p(n+2,3))
4990 pzm=sqrt(max(0.,(pem+p(im,5))*(pem-p(im,5))))
4991 pmls=(v(im,5)-v(n+1,5)-v(n+2,5))**2-4.*v(n+1,5)*v(n+2,5)
4994 ELSEIF(mod(mstj(43),2).EQ.1)
THEN 4995 pts=(pem**2*(zm*(1.-zm)*v(im,5)-(1.-zm)*v(n+1,5)-
4996 & zm*v(n+2,5))-0.25*pmls)/pzm**2
4998 pts=pmls*(zm*(1.-zm)*pem**2/v(im,5)-0.25)/pzm**2
5000 pt=sqrt(max(0.,pts))
5004 IF(mstj(49).NE.1.AND.mod(mstj(46),2).EQ.1.AND.k(im,2).EQ.21.
5005 & and.iau.NE.0)
THEN 5006 IF(k(igm,3).NE.0) mazip=1
5008 IF(iau.EQ.im+1) zau=1.-v(igm,1)
5009 IF(mazip.EQ.0) zau=0.
5010 IF(k(igm,2).NE.21)
THEN 5011 hazip=2.*zau/(1.+zau**2)
5013 hazip=(zau/(1.-zau*(1.-zau)))**2
5015 IF(k(n+1,2).NE.21)
THEN 5016 hazip=hazip*(-2.*zm*(1.-zm))/(1.-2.*zm*(1.-zm))
5018 hazip=hazip*(zm*(1.-zm)/(1.-zm*(1.-zm)))**2
5025 IF(mstj(49).NE.2.AND.mstj(46).GE.2.AND.(k(n+1,2).EQ.21.OR.
5026 & k(n+2,2).EQ.21).AND.iau.NE.0)
THEN 5027 IF(k(igm,3).NE.0) mazic=n+1
5028 IF(k(igm,3).NE.0.AND.k(n+1,2).NE.21) mazic=n+2
5029 IF(k(igm,3).NE.0.AND.k(n+1,2).EQ.21.AND.k(n+2,2).EQ.21.AND.
5030 & zm.GT.0.5) mazic=n+2
5031 IF(k(iau,2).EQ.22) mazic=0
5033 IF(mazic.EQ.n+2) zs=1.-zm
5035 IF(iau.EQ.im-1) zgm=1.-v(igm,1)
5036 IF(mazic.EQ.0) zgm=1.
5037 hazic=(p(im,5)/p(igm,5))*sqrt((1.-zs)*(1.-zgm)/(zs*zgm))
5038 hazic=min(0.95,hazic)
5043 470
IF(nep.EQ.2.AND.igm.GT.0)
THEN 5044 IF(mod(mstj(43),2).EQ.1)
THEN 5045 p(n+1,4)=pem*v(im,1)
5047 p(n+1,4)=pem*(0.5*(v(im,5)-sqrt(pmls)+v(n+1,5)-v(n+2,5))+
5048 & sqrt(pmls)*zm)/v(im,5)
5051 p(n+1,1)=pt*cos(phi)
5052 p(n+1,2)=pt*sin(phi)
5054 p(n+1,3)=0.5*(v(n+2,5)-v(n+1,5)-v(im,5)+2.*pem*p(n+1,4))/pzm
5060 p(n+2,3)=pzm-p(n+1,3)
5061 p(n+2,4)=pem-p(n+1,4)
5062 IF(mstj(43).LE.2)
THEN 5063 v(n+1,2)=(pem*p(n+1,4)-pzm*p(n+1,3))/p(im,5)
5064 v(n+2,2)=(pem*p(n+2,4)-pzm*p(n+2,3))/p(im,5)
5070 IF(mstj(43).LE.2)
THEN 5071 bex=p(igm,1)/p(igm,4)
5072 bey=p(igm,2)/p(igm,4)
5073 bez=p(igm,3)/p(igm,4)
5074 ga=p(igm,4)/p(igm,5)
5075 gabep=ga*(ga*(bex*p(im,1)+bey*p(im,2)+bez*p(im,3))/(1.+ga)-
5084 the=ulangl(p(im,3)+gabep*bez,sqrt((p(im,1)+gabep*bex)**2+
5085 & (p(im,2)+gabep*bey)**2))
5086 phi=ulangl(p(im,1)+gabep*bex,p(im,2)+gabep*bey)
5088 dp(1)=cos(the)*cos(phi)*p(i,1)-sin(phi)*p(i,2)+
5089 & sin(the)*cos(phi)*p(i,3)
5090 dp(2)=cos(the)*sin(phi)*p(i,1)+cos(phi)*p(i,2)+
5091 & sin(the)*sin(phi)*p(i,3)
5092 dp(3)=-sin(the)*p(i,1)+cos(the)*p(i,3)
5094 dbp=bex*dp(1)+bey*dp(2)+bez*dp(3)
5095 dgabp=ga*(ga*dbp/(1d0+ga)+dp(4))
5096 p(i,1)=dp(1)+dgabp*bex
5097 p(i,2)=dp(2)+dgabp*bey
5098 p(i,3)=dp(3)+dgabp*bez
5099 p(i,4)=ga*(dp(4)+dbp)
5104 IF(mazip.NE.0.OR.mazic.NE.0)
THEN 5110 dpma=dpt(1,1)*dpt(2,1)+dpt(1,2)*dpt(2,2)+dpt(1,3)*dpt(2,3)
5111 dpmd=dpt(1,1)*dpt(3,1)+dpt(1,2)*dpt(3,2)+dpt(1,3)*dpt(3,3)
5112 dpmm=dpt(1,1)**2+dpt(1,2)**2+dpt(1,3)**2
5114 dpt(4,j)=dpt(2,j)-dpma*dpt(1,j)/dpmm
5115 dpt(5,j)=dpt(3,j)-dpmd*dpt(1,j)/dpmm
5117 dpt(4,4)=sqrt(dpt(4,1)**2+dpt(4,2)**2+dpt(4,3)**2)
5118 dpt(5,4)=sqrt(dpt(5,1)**2+dpt(5,2)**2+dpt(5,3)**2)
5119 IF(min(dpt(4,4),dpt(5,4)).GT.0.1*parj(82))
THEN 5120 cad=(dpt(4,1)*dpt(5,1)+dpt(4,2)*dpt(5,2)+
5121 & dpt(4,3)*dpt(5,3))/(dpt(4,4)*dpt(5,4))
5123 IF(1.+hazip*(2.*cad**2-1.).LT.rlu(0)*(1.+abs(hazip)))
5127 IF(mazic.EQ.n+2) cad=-cad
5128 IF((1.-hazic)*(1.-hazic*cad)/(1.+hazic**2-2.*hazic*cad).
5129 & lt.rlu(0))
GOTO 470
5135 IF(mod(miis,2).EQ.1.AND.igm.EQ.ns+1.AND.(k(n+1,2).EQ.21.OR.
5136 &k(n+2,2).EQ.21))
THEN 5138 IF(isii(iii).GE.1)
THEN 5140 IF(k(n+1,2).NE.21) iaziid=n+2
5141 IF(k(n+1,2).EQ.21.AND.k(n+2,2).EQ.21.AND.
5142 & p(n+1,4).GT.p(n+2,4)) iaziid=n+2
5143 theiid=ulangl(p(iaziid,3),sqrt(p(iaziid,1)**2+p(iaziid,2)**2))
5144 IF(iii.EQ.2) theiid=paru(1)-theiid
5145 phiiid=ulangl(p(iaziid,1),p(iaziid,2))
5146 hazii=min(0.95,theiid/theiis(iii,isii(iii)))
5147 cad=cos(phiiid-phiiis(iii,isii(iii)))
5148 phirel=abs(phiiid-phiiis(iii,isii(iii)))
5149 IF(phirel.GT.paru(1)) phirel=paru(2)-phirel
5150 IF((1.-hazii)*(1.-hazii*cad)/(1.+hazii**2-2.*hazii*cad).
5151 & lt.rlu(0))
GOTO 470
5156 IF(igm.GE.0) k(im,1)=14
5159 IF(n.GT.mstu(4)-mstu(32)-5)
THEN 5160 CALL luerrm(11,
'(LUSHOW:) no more memory left in LUJETS')
5161 IF(mstu(21).GE.1) n=ns
5162 IF(mstu(21).GE.1)
RETURN 5167 510
IF(npa.GE.2)
THEN 5171 IF(ip2.GT.0.AND.ip2.LT.ip1) k(ns+1,3)=ip2
5181 IF(k(i,1).LE.10.AND.k(i,2).EQ.22)
THEN 5183 ELSEIF(k(i,1).LE.10.AND.iabs(k(i,2)).GE.11.AND.
5184 &iabs(k(i,2)).LE.18)
THEN 5186 ELSEIF(k(i,1).LE.10)
THEN 5187 k(i,4)=mstu(5)*(k(i,4)/mstu(5))
5188 k(i,5)=mstu(5)*(k(i,5)/mstu(5))
5189 ELSEIF(k(mod(k(i,4),mstu(5))+1,2).NE.22)
THEN 5190 id1=mod(k(i,4),mstu(5))
5191 IF(k(i,2).GE.1.AND.k(i,2).LE.8) id1=mod(k(i,4),mstu(5))+1
5192 id2=2*mod(k(i,4),mstu(5))+1-id1
5193 k(i,4)=mstu(5)*(k(i,4)/mstu(5))+id1
5194 k(i,5)=mstu(5)*(k(i,5)/mstu(5))+id2
5195 k(id1,4)=k(id1,4)+mstu(5)*i
5196 k(id1,5)=k(id1,5)+mstu(5)*id2
5197 k(id2,4)=k(id2,4)+mstu(5)*id1
5198 k(id2,5)=k(id2,5)+mstu(5)*i
5200 id1=mod(k(i,4),mstu(5))
5202 k(i,4)=mstu(5)*(k(i,4)/mstu(5))+id1
5203 k(i,5)=mstu(5)*(k(i,5)/mstu(5))+id1
5204 IF(iabs(k(i,2)).LE.10.OR.k(id1,1).GE.11)
THEN 5205 k(id1,4)=k(id1,4)+mstu(5)*i
5206 k(id1,5)=k(id1,5)+mstu(5)*i
5222 gabep=ga*(ga*(bex*p(ipa(1),1)+bey*p(ipa(1),2)+bez*p(ipa(1),3))
5223 & /(1.+ga)-p(ipa(1),4))
5230 the=ulangl(p(ipa(1),3)+gabep*bez,sqrt((p(ipa(1),1)
5231 &+gabep*bex)**2+(p(ipa(1),2)+gabep*bey)**2))
5232 phi=ulangl(p(ipa(1),1)+gabep*bex,p(ipa(1),2)+gabep*bey)
5234 chi=ulangl(cos(the)*cos(phi)*(p(ipa(2),1)+gabep*bex)+cos(the)*
5235 & sin(phi)*(p(ipa(2),2)+gabep*bey)-sin(the)*(p(ipa(2),3)+gabep*
5236 & bez),-sin(phi)*(p(ipa(2),1)+gabep*bex)+cos(phi)*(p(ipa(2),2)+
5239 CALL ludbrb(ns+1,n,0.,chi,0d0,0d0,0d0)
5245 CALL ludbrb(ns+1,n,the,phi,dbex,dbey,dbez)
5255 IF(n.EQ.ns+npa+iim)
THEN 5260 k(ipa(ip),4)=k(ipa(ip),4)+ns+iim+ip
5261 k(ipa(ip),5)=k(ipa(ip),5)+ns+iim+ip
5262 k(ns+iim+ip,3)=ipa(ip)
5263 IF(iim.EQ.1.AND.mstu(16).NE.2) k(ns+iim+ip,3)=ns+1
5264 IF(k(ns+iim+ip,1).NE.1)
THEN 5265 k(ns+iim+ip,4)=mstu(5)*ipa(ip)+k(ns+iim+ip,4)
5266 k(ns+iim+ip,5)=mstu(5)*ipa(ip)+k(ns+iim+ip,5)
5276 SUBROUTINE luboei(NSAV)
5281 IMPLICIT DOUBLE PRECISION(d)
5282 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
5283 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5284 SAVE /lujets/,/ludat1/
5285 dimension dps(4),kfbe(9),nbe(0:9),bei(100)
5286 DATA kfbe/211,-211,111,321,-321,130,310,221,331/
5289 IF((mstj(51).NE.1.AND.mstj(51).NE.2).OR.n-nsav.LE.1)
RETURN 5294 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 120
5296 dps(j)=dps(j)+p(i,j)
5299 CALL ludbrb(0,0,0.,0.,-dps(1)/dps(4),-dps(2)/dps(4),
5303 IF(k(i,1).GE.1.AND.k(i,1).LE.10) pecm=pecm+p(i,4)
5308 DO 160 ibe=1,min(9,mstj(52))
5311 IF(k(i,2).NE.kfbe(ibe))
GOTO 150
5312 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 150
5313 IF(nbe(ibe).GE.mstu(4)-mstu(32)-5)
THEN 5314 CALL luerrm(11,
'(LUBOEI:) no more memory left in LUJETS')
5326 DO 220 ibe=1,min(9,mstj(52))
5327 IF(ibe.NE.1.AND.ibe.NE.4.AND.ibe.LE.7)
GOTO 180
5328 IF(ibe.EQ.1.AND.max(nbe(1)-nbe(0),nbe(2)-nbe(1),nbe(3)-nbe(2)).
5330 IF(ibe.EQ.4.AND.max(nbe(4)-nbe(3),nbe(5)-nbe(4),nbe(6)-nbe(5),
5331 &nbe(7)-nbe(6)).LE.1)
GOTO 180
5332 IF(ibe.GE.8.AND.nbe(ibe)-nbe(ibe-1).LE.1)
GOTO 180
5333 IF(ibe.EQ.1) pmhq=2.*ulmass(211)
5334 IF(ibe.EQ.4) pmhq=2.*ulmass(321)
5335 IF(ibe.EQ.8) pmhq=2.*ulmass(221)
5336 IF(ibe.EQ.9) pmhq=2.*ulmass(331)
5337 qdel=0.1*min(pmhq,parj(93))
5338 IF(mstj(51).EQ.1)
THEN 5339 nbin=min(100,nint(9.*parj(93)/qdel))
5340 beex=exp(0.5*qdel/parj(93))
5341 bert=exp(-qdel/parj(93))
5343 nbin=min(100,nint(3.*parj(93)/qdel))
5346 qbin=qdel*(ibin-0.5)
5347 bei(ibin)=qdel*(qbin**2+qdel**2/12.)/sqrt(qbin**2+pmhq**2)
5348 IF(mstj(51).EQ.1)
THEN 5350 bei(ibin)=bei(ibin)*beex
5352 bei(ibin)=bei(ibin)*exp(-(qbin/parj(93))**2)
5354 IF(ibin.GE.2) bei(ibin)=bei(ibin)+bei(ibin-1)
5358 180
DO 210 i1m=nbe(ibe-1)+1,nbe(ibe)-1
5360 DO 200 i2m=i1m+1,nbe(ibe)
5362 q2old=max(0.,(p(i1,4)+p(i2,4))**2-(p(i1,1)+p(i2,1))**2-(p(i1,2)+
5363 &p(i2,2))**2-(p(i1,3)+p(i2,3))**2-(p(i1,5)+p(i2,5))**2)
5367 IF(qold.LT.1e-3*qdel)
THEN 5369 ELSEIF(qold.LT.0.5*qdel)
THEN 5371 ELSEIF(qold.LT.(nbin-0.1)*qdel)
THEN 5374 rinp=(rbin**3-ibin**3)/(3*ibin*(ibin+1)+1)
5375 qmov=(bei(ibin)+rinp*(bei(ibin+1)-bei(ibin)))*
5376 & sqrt(q2old+pmhq**2)/q2old
5378 qmov=bei(nbin)*sqrt(q2old+pmhq**2)/q2old
5380 q2new=q2old*(qold/(qold+3.*parj(92)*qmov))**(2./3.)
5383 hc1=(p(i1,4)+p(i2,4))**2-(q2old-q2new)
5384 hc2=(q2old-q2new)*(p(i1,4)-p(i2,4))**2
5385 ha=0.5*(1.-sqrt(hc1*q2new/(hc1*q2old-hc2)))
5387 pd=ha*(p(i2,j)-p(i1,j))
5388 p(i1m,j)=p(i1m,j)+pd
5389 p(i2m,j)=p(i2m,j)-pd
5396 DO 240 im=nbe(0)+1,nbe(min(9,mstj(52)))
5399 p(i,j)=p(i,j)+p(im,j)
5401 p(i,4)=sqrt(p(i,5)**2+p(i,1)**2+p(i,2)**2+p(i,3)**2)
5408 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 250
5410 pqs=pqs+p(i,5)**2/p(i,4)
5412 fac=(pecm-pqs)/(pes-pqs)
5414 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 270
5418 p(i,4)=sqrt(p(i,5)**2+p(i,1)**2+p(i,2)**2+p(i,3)**2)
5422 CALL ludbrb(0,0,0.,0.,dps(1)/dps(4),dps(2)/dps(4),dps(3)/dps(4))
5432 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5433 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
5434 SAVE /ludat1/,/ludat2/
5446 IF((mstj(93).EQ.1.OR.mstj(93).EQ.2).AND.kfa.LE.10)
THEN 5447 ulmass=parf(100+kfa)
5448 IF(mstj(93).EQ.2) ulmass=max(0.,ulmass-parf(121))
5451 ELSEIF(kfa.LE.100.OR.kc.LE.80.OR.kc.GT.100)
THEN 5456 kfla=mod(kfa/1000,10)
5457 kflb=mod(kfa/100,10)
5460 kflr=mod(kfa/10000,10)
5466 IF(kfla.EQ.0.AND.kflr.EQ.0.AND.kfls.LE.3)
THEN 5467 IF(kfls.EQ.1) pmspl=-3./(pmb*pmc)
5468 IF(kfls.GE.3) pmspl=1./(pmb*pmc)
5469 ulmass=parf(111)+pmb+pmc+parf(113)*parf(101)**2*pmspl
5470 ELSEIF(kfla.EQ.0)
THEN 5472 IF(kfls.EQ.1) kmul=3
5473 IF(kflr.EQ.2) kmul=4
5474 IF(kfls.EQ.5) kmul=5
5475 ulmass=parf(113+kmul)+pmb+pmc
5476 ELSEIF(kflc.EQ.0)
THEN 5477 IF(kfls.EQ.1) pmspl=-3./(pma*pmb)
5478 IF(kfls.EQ.3) pmspl=1./(pma*pmb)
5479 ulmass=2.*parf(112)/3.+pma+pmb+parf(114)*parf(101)**2*pmspl
5480 IF(mstj(93).EQ.1) ulmass=pma+pmb
5481 IF(mstj(93).EQ.2) ulmass=max(0.,ulmass-parf(122)-
5484 IF(kfls.EQ.2.AND.kfla.EQ.kflb)
THEN 5485 pmspl=1./(pma*pmb)-2./(pma*pmc)-2./(pmb*pmc)
5486 ELSEIF(kfls.EQ.2.AND.kflb.GE.kflc)
THEN 5487 pmspl=-2./(pma*pmb)-2./(pma*pmc)+1./(pmb*pmc)
5488 ELSEIF(kfls.EQ.2)
THEN 5491 pmspl=1./(pma*pmb)+1./(pma*pmc)+1./(pmb*pmc)
5493 ulmass=parf(112)+pma+pmb+pmc+parf(114)*parf(101)**2*pmspl
5499 IF(mstj(24).GE.1.AND.pmas(kc,2).GT.1e-4)
THEN 5500 IF(mstj(24).EQ.1.OR.(mstj(24).EQ.2.AND.kfa.GT.100))
THEN 5501 ulmass=ulmass+0.5*pmas(kc,2)*tan((2.*rlu(0)-1.)*
5502 & atan(2.*pmas(kc,3)/pmas(kc,2)))
5505 pmlow=atan((max(0.,pm0-pmas(kc,3))**2-pm0**2)/
5507 pmupp=atan(((pm0+pmas(kc,3))**2-pm0**2)/(pm0*pmas(kc,2)))
5508 ulmass=sqrt(max(0.,pm0**2+pm0*pmas(kc,2)*tan(pmlow+
5509 & (pmupp-pmlow)*rlu(0))))
5519 SUBROUTINE luname(KF,CHAU)
5522 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5523 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
5524 common/ludat4/chaf(500)
5526 SAVE /ludat1/,/ludat2/,/ludat4/
5535 kfla=mod(kfa/1000,10)
5536 kflb=mod(kfa/100,10)
5539 kflr=mod(kfa/10000,10)
5542 IF(kfa.LE.100.OR.(kfa.GT.100.AND.kc.GT.100))
THEN 5546 IF(chau(lem:lem).NE.
' ') len=lem
5550 ELSEIF(kflc.EQ.0)
THEN 5551 chau(1:2)=chaf(kfla)(1:1)//chaf(kflb)(1:1)
5552 IF(kfls.EQ.1) chau(3:4)=
'_0' 5553 IF(kfls.EQ.3) chau(3:4)=
'_1' 5557 ELSEIF(kfla.EQ.0)
THEN 5558 IF(kflb.EQ.5) chau(1:1)=
'B' 5559 IF(kflb.EQ.6) chau(1:1)=
'T' 5560 IF(kflb.EQ.7) chau(1:1)=
'L' 5561 IF(kflb.EQ.8) chau(1:1)=
'H' 5563 IF(kflr.EQ.0.AND.kfls.EQ.1)
THEN 5564 ELSEIF(kflr.EQ.0.AND.kfls.EQ.3)
THEN 5567 ELSEIF(kflr.EQ.1.AND.kfls.EQ.3)
THEN 5570 ELSEIF(kflr.EQ.1.AND.kfls.EQ.1)
THEN 5573 ELSEIF(kflr.EQ.2)
THEN 5576 ELSEIF(kfls.EQ.5)
THEN 5580 IF(kflc.GE.3.AND.kflr.EQ.0.AND.kfls.LE.3)
THEN 5581 chau(len+1:len+2)=
'_'//chaf(kflc)(1:1)
5583 ELSEIF(kflc.GE.3)
THEN 5584 chau(len+1:len+1)=chaf(kflc)(1:1)
5590 IF(kflb.LE.2.AND.kflc.LE.2)
THEN 5592 IF(kflc.GT.kflb) chau=
'Lambda' 5593 IF(kfls.EQ.4) chau=
'Sigma*' 5595 IF(chau(6:6).NE.
' ') len=6
5596 ELSEIF(kflb.LE.2.OR.kflc.LE.2)
THEN 5598 IF(kfla.GT.kflb.AND.kflb.GT.kflc) chau=
'Xi''' 5599 IF(kfls.EQ.4) chau=
'Xi*' 5601 IF(chau(3:3).NE.
' ') len=3
5604 IF(kfla.GT.kflb.AND.kflb.GT.kflc) chau=
'Omega''' 5605 IF(kfls.EQ.4) chau=
'Omega*' 5607 IF(chau(6:6).NE.
' ') len=6
5611 chau(len+1:len+2)=
'_'//chaf(kfla)(1:1)
5613 IF(kflb.GE.kflc.AND.kflc.GE.4)
THEN 5614 chau(len+1:len+2)=chaf(kflb)(1:1)//chaf(kflc)(1:1)
5616 ELSEIF(kflb.GE.kflc.AND.kflb.GE.4)
THEN 5617 chau(len+1:len+1)=chaf(kflb)(1:1)
5619 ELSEIF(kflc.GT.kflb.AND.kflb.GE.4)
THEN 5620 chau(len+1:len+2)=chaf(kflc)(1:1)//chaf(kflb)(1:1)
5622 ELSEIF(kflc.GT.kflb.AND.kflc.GE.4)
THEN 5623 chau(len+1:len+1)=chaf(kflc)(1:1)
5629 IF(kf.GT.0.OR.len.EQ.0)
THEN 5630 ELSEIF(kfa.GT.10.AND.kfa.LE.40.AND.kq.NE.0.AND.mod(kq,3).EQ.0)
5632 ELSEIF(kfa.EQ.89.OR.(kfa.GE.91.AND.kfa.LE.99))
THEN 5633 ELSEIF(kfa.GT.100.AND.kfla.EQ.0.AND.kq.NE.0)
THEN 5634 ELSEIF(mstu(15).LE.1)
THEN 5635 chau(len+1:len+1)=
'~' 5638 chau(len+1:len+3)=
'bar' 5643 IF(kq.EQ.6) chau(len+1:len+2)=
'++' 5644 IF(kq.EQ.-6) chau(len+1:len+2)=
'--' 5645 IF(kq.EQ.3) chau(len+1:len+1)=
'+' 5646 IF(kq.EQ.-3) chau(len+1:len+1)=
'-' 5647 IF(kq.EQ.0.AND.(kfa.LE.22.OR.len.EQ.0))
THEN 5648 ELSEIF(kq.EQ.0.AND.(kfa.GE.81.AND.kfa.LE.100))
THEN 5649 ELSEIF(kfa.EQ.28.OR.kfa.EQ.29)
THEN 5650 ELSEIF(kfa.GT.100.AND.kfla.EQ.0.AND.kflb.EQ.kflc.AND.
5652 ELSEIF(kq.EQ.0)
THEN 5653 chau(len+1:len+1)=
'0' 5664 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
5672 ELSEIF(kfa.LE.100.OR.kc.LE.80.OR.kc.GT.100)
THEN 5676 ELSEIF(mod(kfa/1000,10).EQ.0)
THEN 5677 luchge=(kchg(mod(kfa/100,10),1)-kchg(mod(kfa/10,10),1))*
5678 & (-1)**mod(kfa/100,10)
5679 ELSEIF(mod(kfa/10,10).EQ.0)
THEN 5680 luchge=kchg(mod(kfa/1000,10),1)+kchg(mod(kfa/100,10),1)
5682 luchge=kchg(mod(kfa/1000,10),1)+kchg(mod(kfa/100,10),1)+
5683 & kchg(mod(kfa/10,10),1)
5687 luchge=luchge*isign(1,kf)
5698 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
5700 dimension kftab(25),kctab(25)
5701 DATA kftab/211,111,221,311,321,130,310,213,113,223,
5702 &313,323,2112,2212,210,2110,2210,110,220,330,440,30443,30553,0,0/
5703 DATA kctab/101,111,112,102,103,221,222,121,131,132,
5704 &122,123,332,333,281,282,283,284,285,286,287,231,235,0,0/
5711 IF(kfa.EQ.0.OR.kfa.GE.100000)
THEN 5713 ELSEIF(kfa.LE.100)
THEN 5715 IF(kf.LT.0.AND.kchg(kfa,3).EQ.0) lucomp=0
5719 IF(kfa.EQ.kftab(ikf))
THEN 5721 IF(kf.LT.0.AND.kchg(lucomp,3).EQ.0) lucomp=0
5728 kfla=mod(kfa/1000,10)
5729 kflb=mod(kfa/100,10)
5732 kflr=mod(kfa/10000,10)
5735 IF(kfa-10000*kflr.LT.1000)
THEN 5736 IF(kflb.EQ.0.OR.kflb.EQ.9.OR.kflc.EQ.0.OR.kflc.EQ.9)
THEN 5737 ELSEIF(kflb.LT.kflc)
THEN 5738 ELSEIF(kf.LT.0.AND.kflb.EQ.kflc)
THEN 5739 ELSEIF(kflb.EQ.kflc)
THEN 5740 IF(kflr.EQ.0.AND.kfls.EQ.1)
THEN 5742 ELSEIF(kflr.EQ.0.AND.kfls.EQ.3)
THEN 5744 ELSEIF(kflr.EQ.1.AND.kfls.EQ.3)
THEN 5746 ELSEIF(kflr.EQ.1.AND.kfls.EQ.1)
THEN 5748 ELSEIF(kflr.EQ.2.AND.kfls.EQ.3)
THEN 5750 ELSEIF(kflr.EQ.0.AND.kfls.EQ.5)
THEN 5753 ELSEIF(kflb.LE.5)
THEN 5754 IF(kflr.EQ.0.AND.kfls.EQ.1)
THEN 5755 lucomp=100+((kflb-1)*(kflb-2))/2+kflc
5756 ELSEIF(kflr.EQ.0.AND.kfls.EQ.3)
THEN 5757 lucomp=120+((kflb-1)*(kflb-2))/2+kflc
5758 ELSEIF(kflr.EQ.1.AND.kfls.EQ.3)
THEN 5759 lucomp=140+((kflb-1)*(kflb-2))/2+kflc
5760 ELSEIF(kflr.EQ.1.AND.kfls.EQ.1)
THEN 5761 lucomp=160+((kflb-1)*(kflb-2))/2+kflc
5762 ELSEIF(kflr.EQ.2.AND.kfls.EQ.3)
THEN 5763 lucomp=180+((kflb-1)*(kflb-2))/2+kflc
5764 ELSEIF(kflr.EQ.0.AND.kfls.EQ.5)
THEN 5765 lucomp=200+((kflb-1)*(kflb-2))/2+kflc
5767 ELSEIF((kfls.EQ.1.AND.kflr.LE.1).OR.(kfls.EQ.3.AND.kflr.LE.2).
5768 & or.(kfls.EQ.5.AND.kflr.EQ.0))
THEN 5773 ELSEIF((kflr.EQ.0.OR.kflr.EQ.1).AND.kflc.EQ.0)
THEN 5774 IF(kfls.NE.1.AND.kfls.NE.3)
THEN 5775 ELSEIF(kfla.EQ.9.OR.kflb.EQ.0.OR.kflb.EQ.9)
THEN 5776 ELSEIF(kfla.LT.kflb)
THEN 5777 ELSEIF(kfls.EQ.1.AND.kfla.EQ.kflb)
THEN 5783 ELSEIF(kflr.EQ.0.AND.kfls.EQ.2)
THEN 5784 IF(kfla.EQ.9.OR.kflb.EQ.0.OR.kflb.EQ.9.OR.kflc.EQ.9)
THEN 5785 ELSEIF(kfla.LE.kflc.OR.kfla.LT.kflb)
THEN 5786 ELSEIF(kfla.GE.6.OR.kflb.GE.4.OR.kflc.GE.4)
THEN 5788 ELSEIF(kflb.LT.kflc)
THEN 5789 lucomp=300+((kfla+1)*kfla*(kfla-1))/6+(kflc*(kflc-1))/2+kflb
5791 lucomp=330+((kfla+1)*kfla*(kfla-1))/6+(kflb*(kflb-1))/2+kflc
5795 ELSEIF(kflr.EQ.0.AND.kfls.EQ.4)
THEN 5796 IF(kfla.EQ.9.OR.kflb.EQ.0.OR.kflb.EQ.9.OR.kflc.EQ.9)
THEN 5797 ELSEIF(kfla.LT.kflb.OR.kflb.LT.kflc)
THEN 5798 ELSEIF(kfla.GE.6.OR.kflb.GE.4)
THEN 5801 lucomp=360+((kfla+1)*kfla*(kfla-1))/6+(kflb*(kflb-1))/2+kflc
5810 SUBROUTINE luerrm(MERR,CHMESS)
5813 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
5814 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5815 SAVE /lujets/,/ludat1/
5816 CHARACTER CHMESS*(*)
5822 IF(mstu(25).EQ.1.AND.mstu(27).LE.mstu(26))
WRITE(mstu(11),5000)
5823 & merr,mstu(31),chmess
5826 ELSEIF(merr.LE.20)
THEN 5829 IF(mstu(21).GE.1.AND.mstu(23).LE.mstu(22))
WRITE(mstu(11),5100)
5830 & merr-10,mstu(31),chmess
5831 IF(mstu(21).GE.2.AND.mstu(23).GT.mstu(22))
THEN 5832 WRITE(mstu(11),5100) merr-10,mstu(31),chmess
5833 WRITE(mstu(11),5200)
5834 IF(merr.NE.17)
CALL lulist(2)
5840 WRITE(mstu(11),5300) merr-20,mstu(31),chmess
5845 5000
FORMAT(/5x,
'Advisory warning type',i2,
' given after',i6,
5846 &
' LUEXEC calls:'/5x,a)
5847 5100
FORMAT(/5x,
'Error type',i2,
' has occured after',i6,
5848 &
' LUEXEC calls:'/5x,a)
5849 5200
FORMAT(5x,
'Execution will be stopped after listing of last ',
5851 5300
FORMAT(/5x,
'Fatal error type',i2,
' has occured after',i6,
5852 &
' LUEXEC calls:'/5x,a/5x,
'Execution will now be stopped!')
5862 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5869 aempi=paru(101)/(3.*paru(1))
5870 IF(mstu(101).LE.0.OR.q2.LT.2e-6)
THEN 5872 ELSEIF(q2.LT.0.09)
THEN 5873 rpigg=aempi*(13.4916+log(q2))+0.00835*log(1.+q2)
5874 ELSEIF(q2.LT.9.)
THEN 5875 rpigg=aempi*(16.3200+2.*log(q2))+0.00238*log(1.+3.927*q2)
5876 ELSEIF(q2.LT.1e4)
THEN 5877 rpigg=aempi*(13.4955+3.*log(q2))+0.00165+0.00299*log(1.+q2)
5879 rpigg=aempi*(13.4955+3.*log(q2))+0.00221+0.00293*log(1.+q2)
5883 ulalem=paru(101)/(1.-rpigg)
5894 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5895 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
5896 SAVE /ludat1/,/ludat2/
5899 IF(mstu(111).LE.0)
THEN 5909 IF(mstu(115).GE.2) q2eff=max(q2,paru(114))
5912 100
IF(nf.GT.max(2,mstu(113)))
THEN 5913 q2thr=paru(113)*pmas(nf,1)**2
5914 IF(q2eff.LT.q2thr)
THEN 5916 alam2=alam2*(q2thr/alam2)**(2./(33.-2.*nf))
5920 110
IF(nf.LT.min(8,mstu(114)))
THEN 5921 q2thr=paru(113)*pmas(nf+1,1)**2
5922 IF(q2eff.GT.q2thr)
THEN 5924 alam2=alam2*(alam2/q2thr)**(2./(33.-2.*nf))
5928 IF(mstu(115).EQ.1) q2eff=q2eff+alam2
5929 paru(117)=sqrt(alam2)
5933 algq=log(max(1.0001,q2eff/alam2))
5934 IF(mstu(111).EQ.1)
THEN 5935 ulalps=min(paru(115),paru(2)/(b0*algq))
5938 ulalps=min(paru(115),paru(2)/(b0*algq)*(1.-b1*log(algq)/
5949 FUNCTION ulangl(X,Y)
5952 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5957 IF(r.LT.1e-20)
RETURN 5958 IF(abs(x)/r.LT.0.8)
THEN 5959 ulangl=sign(acos(x/r),y)
5962 IF(x.LT.0..AND.ulangl.GE.0.)
THEN 5963 ulangl=paru(1)-ulangl
5964 ELSEIF(x.LT.0.)
THEN 5965 ulangl=-paru(1)-ulangl
5974 FUNCTION rlu(IDUMMY)
5978 common/ludatr/mrlu(6),rrlu(100)
5980 equivalence(mrlu1,mrlu(1)),(mrlu2,mrlu(2)),(mrlu3,mrlu(3)),
5981 &(mrlu4,mrlu(4)),(mrlu5,mrlu(5)),(mrlu6,mrlu(6)),
5982 &(rrlu98,rrlu(98)),(rrlu99,rrlu(99)),(rrlu00,rrlu(100))
5986 ij=mod(mrlu1/30082,31329)
5996 m=mod(mod(i*j,179)*k,179)
6001 IF(mod(l*m,64).GE.32) s=s+t
6010 rrlu98=362436.*twom24
6011 rrlu99=7654321.*twom24
6012 rrlu00=16777213.*twom24
6020 130 runi=rrlu(mrlu4)-rrlu(mrlu5)
6021 IF(runi.LT.0.) runi=runi+1.
6024 IF(mrlu4.EQ.0) mrlu4=97
6026 IF(mrlu5.EQ.0) mrlu5=97
6027 rrlu98=rrlu98-rrlu99
6028 IF(rrlu98.LT.0.) rrlu98=rrlu98+rrlu00
6030 IF(runi.LT.0.) runi=runi+1.
6031 IF(runi.LE.0.OR.runi.GE.1.)
GOTO 130
6035 IF(mrlu3.EQ.1000000000)
THEN 6046 SUBROUTINE rluget(LFN,MOVE)
6050 common/ludatr/mrlu(6),rrlu(100)
6056 nbck=min(mrlu(6),-move)
6058 backspace(lfn,err=110,iostat=ierr)
6060 mrlu(6)=mrlu(6)-nbck
6064 WRITE(lfn,err=110,iostat=ierr) (mrlu(i1),i1=1,5),
6065 &(rrlu(i2),i2=1,100)
6070 110
WRITE(cherr,
'(I8)') ierr
6071 CALL luerrm(18,
'(RLUGET:) error when accessing file, IOSTAT ='//
6079 SUBROUTINE rluset(LFN,MOVE)
6083 common/ludatr/mrlu(6),rrlu(100)
6089 nbck=min(mrlu(6),-move)
6091 backspace(lfn,err=120,iostat=ierr)
6093 mrlu(6)=mrlu(6)-nbck
6099 READ(lfn,err=120,iostat=ierr) (mrlu(i1),i1=1,5),
6100 &(rrlu(i2),i2=1,100)
6102 mrlu(6)=mrlu(6)+nfor
6106 120
WRITE(cherr,
'(I8)') ierr
6107 CALL luerrm(18,
'(RLUSET:) error when accessing file, IOSTAT ='//
6115 SUBROUTINE lurobo(THE,PHI,BEX,BEY,BEZ)
6118 IMPLICIT DOUBLE PRECISION(d)
6119 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
6120 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
6121 SAVE /lujets/,/ludat1/
6122 dimension rot(3,3),pr(3),vr(3),dp(4),dv(4)
6126 IF(mstu(1).GT.0) imin=mstu(1)
6128 IF(mstu(2).GT.0) imax=mstu(2)
6135 entry ludbrb(imi,ima,the,phi,dbex,dbey,dbez)
6137 IF(imin.LE.0) imin=1
6139 IF(imax.LE.0) imax=n
6145 IF(mstu(33).NE.0)
THEN 6146 DO 110 i=min(imin,mstu(4)),min(imax,mstu(4))
6155 120
IF(imin.GT.mstu(4).OR.imax.GT.mstu(4))
THEN 6156 CALL luerrm(11,
'(LUROBO:) range outside LUJETS memory')
6161 IF(the**2+phi**2.GT.1e-20)
THEN 6162 rot(1,1)=cos(the)*cos(phi)
6164 rot(1,3)=sin(the)*cos(phi)
6165 rot(2,1)=cos(the)*sin(phi)
6167 rot(2,3)=sin(the)*sin(phi)
6172 IF(k(i,1).LE.0)
GOTO 150
6178 p(i,j)=rot(j,1)*pr(1)+rot(j,2)*pr(2)+rot(j,3)*pr(3)
6179 v(i,j)=rot(j,1)*vr(1)+rot(j,2)*vr(2)+rot(j,3)*vr(3)
6185 IF(dbx**2+dby**2+dbz**2.GT.1e-20)
THEN 6186 db=sqrt(dbx**2+dby**2+dbz**2)
6187 IF(db.GT.0.99999999d0)
THEN 6189 CALL luerrm(3,
'(LUROBO:) boost vector too large')
6190 dbx=dbx*(0.99999999d0/db)
6191 dby=dby*(0.99999999d0/db)
6192 dbz=dbz*(0.99999999d0/db)
6195 dga=1d0/sqrt(1d0-db**2)
6197 IF(k(i,1).LE.0)
GOTO 170
6202 dbp=dbx*dp(1)+dby*dp(2)+dbz*dp(3)
6203 dgabp=dga*(dga*dbp/(1d0+dga)+dp(4))
6204 p(i,1)=dp(1)+dgabp*dbx
6205 p(i,2)=dp(2)+dgabp*dby
6206 p(i,3)=dp(3)+dgabp*dbz
6207 p(i,4)=dga*(dp(4)+dbp)
6208 dbv=dbx*dv(1)+dby*dv(2)+dbz*dv(3)
6209 dgabv=dga*(dga*dbv/(1d0+dga)+dv(4))
6210 v(i,1)=dv(1)+dgabv*dbx
6211 v(i,2)=dv(2)+dgabv*dby
6212 v(i,3)=dv(3)+dgabv*dbz
6213 v(i,4)=dga*(dv(4)+dbv)
6222 SUBROUTINE luedit(MEDIT)
6226 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
6227 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
6228 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
6229 SAVE /lujets/,/ludat1/,/ludat2/
6230 dimension ns(2),pts(2),pls(2)
6233 IF((medit.GE.0.AND.medit.LE.3).OR.medit.EQ.5)
THEN 6235 IF(mstu(2).GT.0) imax=mstu(2)
6237 DO 110 i=max(1,mstu(1)),imax
6238 IF(k(i,1).EQ.0.OR.k(i,1).GT.20)
GOTO 110
6240 IF(k(i,1).GT.10)
GOTO 110
6241 ELSEIF(medit.EQ.2)
THEN 6242 IF(k(i,1).GT.10)
GOTO 110
6244 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.kc.EQ.18)
6246 ELSEIF(medit.EQ.3)
THEN 6247 IF(k(i,1).GT.10)
GOTO 110
6249 IF(kc.EQ.0)
GOTO 110
6250 IF(kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
GOTO 110
6251 ELSEIF(medit.EQ.5)
THEN 6252 IF(k(i,1).EQ.13.OR.k(i,1).EQ.14)
GOTO 110
6254 IF(kc.EQ.0)
GOTO 110
6255 IF(k(i,1).GE.11.AND.kchg(kc,2).EQ.0)
GOTO 110
6267 IF(i1.LT.n) mstu(3)=0
6268 IF(i1.LT.n) mstu(70)=0
6272 ELSEIF(medit.GE.11.AND.medit.LE.15)
THEN 6275 k(i,3)=mod(k(i,3),mstu(5))
6276 IF(medit.EQ.11.AND.k(i,1).LT.0)
GOTO 120
6277 IF(medit.EQ.12.AND.k(i,1).EQ.0)
GOTO 120
6278 IF(medit.EQ.13.AND.(k(i,1).EQ.11.OR.k(i,1).EQ.12.OR.
6279 & k(i,1).EQ.15).AND.k(i,2).NE.94)
GOTO 120
6280 IF(medit.EQ.14.AND.(k(i,1).EQ.13.OR.k(i,1).EQ.14.OR.
6281 & k(i,2).EQ.94))
GOTO 120
6282 IF(medit.EQ.15.AND.k(i,1).GE.21)
GOTO 120
6284 k(i,3)=k(i,3)+mstu(5)*i1
6289 IF(k(i,1).LE.0.OR.k(i,1).GT.20.OR.k(i,3)/mstu(5).EQ.0)
GOTO 140
6291 130 im=mod(k(id,3),mstu(5))
6292 IF(medit.EQ.13.AND.im.GT.0.AND.im.LE.n)
THEN 6293 IF((k(im,1).EQ.11.OR.k(im,1).EQ.12.OR.k(im,1).EQ.15).AND.
6294 & k(im,2).NE.94)
THEN 6298 ELSEIF(medit.EQ.14.AND.im.GT.0.AND.im.LE.n)
THEN 6299 IF(k(im,1).EQ.13.OR.k(im,1).EQ.14.OR.k(im,2).EQ.94)
THEN 6304 k(i,3)=mstu(5)*(k(i,3)/mstu(5))
6305 IF(im.NE.0) k(i,3)=k(i,3)+k(im,3)/mstu(5)
6306 IF(k(i,1).NE.3.AND.k(i,1).NE.13.AND.k(i,1).NE.14)
THEN 6307 IF(k(i,4).GT.0.AND.k(i,4).LE.mstu(4)) k(i,4)=
6308 & k(k(i,4),3)/mstu(5)
6309 IF(k(i,5).GT.0.AND.k(i,5).LE.mstu(4)) k(i,5)=
6310 & k(k(i,5),3)/mstu(5)
6312 kcm=mod(k(i,4)/mstu(5),mstu(5))
6313 IF(kcm.GT.0.AND.kcm.LE.mstu(4)) kcm=k(kcm,3)/mstu(5)
6314 kcd=mod(k(i,4),mstu(5))
6315 IF(kcd.GT.0.AND.kcd.LE.mstu(4)) kcd=k(kcd,3)/mstu(5)
6316 k(i,4)=mstu(5)**2*(k(i,4)/mstu(5)**2)+mstu(5)*kcm+kcd
6317 kcm=mod(k(i,5)/mstu(5),mstu(5))
6318 IF(kcm.GT.0.AND.kcm.LE.mstu(4)) kcm=k(kcm,3)/mstu(5)
6319 kcd=mod(k(i,5),mstu(5))
6320 IF(kcd.GT.0.AND.kcd.LE.mstu(4)) kcd=k(kcd,3)/mstu(5)
6321 k(i,5)=mstu(5)**2*(k(i,5)/mstu(5)**2)+mstu(5)*kcm+kcd
6330 IF(k(i,3)/mstu(5).EQ.0)
GOTO 170
6337 k(i1,3)=mod(k(i1,3),mstu(5))
6339 IF(i.EQ.mstu(90+iz))
THEN 6341 mstu(90+mstu(90))=i1
6342 paru(90+mstu(90))=paru(90+iz)
6346 IF(i1.LT.n) mstu(3)=0
6347 IF(i1.LT.n) mstu(70)=0
6351 ELSEIF(medit.EQ.16)
THEN 6353 IF(k(i,1).LE.10.OR.k(i,1).GT.20)
GOTO 190
6354 IF(k(i,4).NE.0.OR.k(i,5).NE.0)
GOTO 190
6356 IF(k(i1,3).NE.i)
THEN 6357 ELSEIF(k(i,4).EQ.0)
THEN 6363 IF(k(i,5).EQ.0) k(i,5)=k(i,4)
6367 ELSEIF(medit.EQ.21)
THEN 6368 IF(2*n.GE.mstu(4))
THEN 6369 CALL luerrm(11,
'(LUEDIT:) no more memory left in LUJETS')
6374 k(mstu(4)-i,j)=k(i,j)
6375 p(mstu(4)-i,j)=p(i,j)
6376 v(mstu(4)-i,j)=v(i,j)
6382 ELSEIF(medit.EQ.22)
THEN 6385 k(i,j)=k(mstu(4)-i,j)
6386 p(i,j)=p(mstu(4)-i,j)
6387 v(i,j)=v(mstu(4)-i,j)
6393 ELSEIF(medit.EQ.23)
THEN 6398 IF(k(kh,1).GT.20) kh=0
6400 IF(kh.NE.0)
GOTO 250
6402 IF(k(i,1).GT.10.AND.k(i,1).LE.20) k(i,1)=k(i,1)-10
6407 ELSEIF(medit.EQ.31.OR.medit.EQ.32)
THEN 6408 CALL ludbrb(1,n+mstu(3),0.,-ulangl(p(mstu(61),1),
6409 & p(mstu(61),2)),0d0,0d0,0d0)
6410 CALL ludbrb(1,n+mstu(3),-ulangl(p(mstu(61),3),
6411 & p(mstu(61),1)),0.,0d0,0d0,0d0)
6412 CALL ludbrb(1,n+mstu(3),0.,-ulangl(p(mstu(61)+1,1),
6413 & p(mstu(61)+1,2)),0d0,0d0,0d0)
6414 IF(medit.EQ.31)
RETURN 6423 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 270
6424 IF(mstu(41).GE.2)
THEN 6426 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
6427 & kc.EQ.18)
GOTO 270
6428 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
6431 is=2.-sign(0.5,p(i,3))
6433 pts(is)=pts(is)+sqrt(p(i,1)**2+p(i,2)**2)
6435 IF(ns(1)*pts(2)**2.LT.ns(2)*pts(1)**2)
6436 &
CALL ludbrb(1,n+mstu(3),paru(1),0.,0d0,0d0,0d0)
6440 IF(p(i,3).GE.0.)
GOTO 280
6441 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 280
6442 IF(mstu(41).GE.2)
THEN 6444 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
6445 & kc.EQ.18)
GOTO 280
6446 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
6449 is=2.-sign(0.5,p(i,1))
6450 pls(is)=pls(is)-p(i,3)
6452 IF(pls(2).GT.pls(1))
CALL ludbrb(1,n+mstu(3),0.,paru(1),
6461 SUBROUTINE lulist(MLIST)
6465 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
6466 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
6467 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
6468 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
6469 SAVE /lujets/,/ludat1/,/ludat2/,/ludat3/
6470 CHARACTER CHAP*16,CHAC*16,CHAN*16,CHAD(5)*16,CHDL(7)*4
6472 DATA chdl/
'(())',
' ',
'()',
'!!',
'<>',
'==',
'(==)'/
6475 IF(mlist.EQ.0.OR.mstu(12).EQ.1)
THEN 6478 IF(mlist.EQ.0)
RETURN 6482 IF(mlist.GE.1.AND.mlist.LE.3)
THEN 6483 IF(mlist.EQ.1)
WRITE(mstu(11),5100)
6484 IF(mlist.EQ.2)
WRITE(mstu(11),5200)
6485 IF(mlist.EQ.3)
WRITE(mstu(11),5300)
6487 IF(mlist.GE.2) lmx=16
6490 IF(mstu(2).GT.0) imax=mstu(2)
6491 DO 120 i=max(1,mstu(1)),max(imax,n+max(0,mstu(3)))
6492 IF((i.GT.imax.AND.i.LE.n).OR.k(i,1).LT.0)
GOTO 120
6495 CALL luname(k(i,2),chap)
6498 IF(chap(lem:lem).NE.
' ') len=lem
6502 IF(mdl.EQ.2.OR.mdl.GE.8)
THEN 6504 IF(len.GT.lmx) chac(lmx:lmx)=
'?' 6507 IF(mdl.EQ.1.OR.mdl.EQ.7) ldl=2
6509 chac=chdl(mdl)(1:2*ldl)//
' ' 6511 chac=chdl(mdl)(1:ldl)//chap(1:min(len,lmx-2*ldl))//
6512 & chdl(mdl)(ldl+1:2*ldl)//
' ' 6513 IF(len+2*ldl.GT.lmx) chac(lmx:lmx)=
'?' 6518 IF(k(i,1).EQ.1.OR.k(i,1).EQ.2.OR.k(i,1).EQ.11.OR.k(i,1).EQ.12)
6522 IF(kc.NE.0) kcc=kchg(kc,2)
6523 IF(iabs(k(i,2)).EQ.39)
THEN 6524 IF(len+2*ldl+3.LE.lmx) chac(lmx-1:lmx-1)=
'X' 6525 ELSEIF(kcc.NE.0.AND.istr.EQ.0)
THEN 6527 IF(len+2*ldl+3.LE.lmx) chac(lmx-1:lmx-1)=
'A' 6528 ELSEIF(kcc.NE.0.AND.(k(i,1).EQ.2.OR.k(i,1).EQ.12))
THEN 6529 IF(len+2*ldl+3.LE.lmx) chac(lmx-1:lmx-1)=
'I' 6530 ELSEIF(kcc.NE.0)
THEN 6532 IF(len+2*ldl+3.LE.lmx) chac(lmx-1:lmx-1)=
'V' 6537 IF(mlist.EQ.1.AND.abs(p(i,4)).LT.9999.)
THEN 6538 WRITE(mstu(11),5400) i,chac(1:12),(k(i,j1),j1=1,3),
6540 ELSEIF(mlist.EQ.1.AND.abs(p(i,4)).LT.99999.)
THEN 6541 WRITE(mstu(11),5500) i,chac(1:12),(k(i,j1),j1=1,3),
6543 ELSEIF(mlist.EQ.1)
THEN 6544 WRITE(mstu(11),5600) i,chac(1:12),(k(i,j1),j1=1,3),
6546 ELSEIF(mstu(5).EQ.10000.AND.(k(i,1).EQ.3.OR.k(i,1).EQ.13.OR.
6547 & k(i,1).EQ.14))
THEN 6548 WRITE(mstu(11),5700) i,chac,(k(i,j1),j1=1,3),
6549 & k(i,4)/100000000,mod(k(i,4)/10000,10000),mod(k(i,4),10000),
6550 & k(i,5)/100000000,mod(k(i,5)/10000,10000),mod(k(i,5),10000),
6553 WRITE(mstu(11),5800) i,chac,(k(i,j1),j1=1,5),(p(i,j2),j2=1,5)
6555 IF(mlist.EQ.3)
WRITE(mstu(11),5900) (v(i,j),j=1,5)
6558 IF(mstu(70).GE.1)
THEN 6560 DO 110 j=1,min(10,mstu(70))
6561 IF(i.EQ.mstu(70+j)) isep=1
6563 IF(isep.EQ.1.AND.mlist.EQ.1)
WRITE(mstu(11),6000)
6564 IF(isep.EQ.1.AND.mlist.GE.2)
WRITE(mstu(11),6100)
6572 IF(mlist.EQ.1.AND.abs(ps(4)).LT.9999.)
THEN 6573 WRITE(mstu(11),6200) ps(6),(ps(j),j=1,5)
6574 ELSEIF(mlist.EQ.1.AND.abs(ps(4)).LT.99999.)
THEN 6575 WRITE(mstu(11),6300) ps(6),(ps(j),j=1,5)
6576 ELSEIF(mlist.EQ.1)
THEN 6577 WRITE(mstu(11),6400) ps(6),(ps(j),j=1,5)
6579 WRITE(mstu(11),6500) ps(6),(ps(j),j=1,5)
6583 ELSEIF(mlist.EQ.11)
THEN 6584 WRITE(mstu(11),6600)
6586 CALL luname(kf,chap)
6587 CALL luname(-kf,chan)
6588 IF(chap.NE.
' '.AND.chan.EQ.
' ')
WRITE(mstu(11),6700) kf,chap
6589 IF(chan.NE.
' ')
WRITE(mstu(11),6700) kf,chap,-kf,chan
6593 DO 150 kflb=1,kfla-(3-kfls)/2
6594 kf=1000*kfla+100*kflb+kfls
6595 CALL luname(kf,chap)
6596 CALL luname(-kf,chan)
6597 WRITE(mstu(11),6700) kf,chap,-kf,chan
6602 CALL luname(kf,chap)
6603 WRITE(mstu(11),6700) kf,chap
6605 CALL luname(kf,chap)
6606 WRITE(mstu(11),6700) kf,chap
6609 IF(kmul.EQ.0.OR.kmul.EQ.3) kfls=1
6610 IF(kmul.EQ.5) kfls=5
6612 IF(kmul.EQ.2.OR.kmul.EQ.3) kflr=1
6613 IF(kmul.EQ.4) kflr=2
6615 DO 180 kflc=1,kflb-1
6616 kf=10000*kflr+100*kflb+10*kflc+kfls
6617 CALL luname(kf,chap)
6618 CALL luname(-kf,chan)
6619 WRITE(mstu(11),6700) kf,chap,-kf,chan
6621 kf=10000*kflr+110*kflb+kfls
6622 CALL luname(kf,chap)
6623 WRITE(mstu(11),6700) kf,chap
6627 CALL luname(kf,chap)
6628 WRITE(mstu(11),6700) kf,chap
6630 CALL luname(kf,chap)
6631 WRITE(mstu(11),6700) kf,chap
6637 IF(kflsp.EQ.1.AND.(kfla.EQ.kflb.OR.kflb.EQ.kflc))
GOTO 210
6638 IF(kflsp.EQ.2.AND.kfla.EQ.kflc)
GOTO 210
6639 IF(kflsp.EQ.1) kf=1000*kfla+100*kflc+10*kflb+kfls
6640 IF(kflsp.GE.2) kf=1000*kfla+100*kflb+10*kflc+kfls
6641 CALL luname(kf,chap)
6642 CALL luname(-kf,chan)
6643 WRITE(mstu(11),6700) kf,chap,-kf,chan
6650 ELSEIF(mlist.EQ.12)
THEN 6651 WRITE(mstu(11),6800)
6655 IF(mstu(2).NE.0) kfmax=mstu(2)
6656 DO 270 kf=max(1,mstu(1)),kfmax
6658 IF(kc.EQ.0)
GOTO 270
6659 IF(mstu(14).EQ.0.AND.kf.GT.100.AND.kc.LE.100)
GOTO 270
6660 IF(mstu(14).GT.0.AND.kf.GT.100.AND.max(mod(kf/1000,10),
6661 & mod(kf/100,10)).GT.mstu(14))
GOTO 270
6662 IF(mstu(14).GT.0.AND.kf.GT.100.AND.kc.EQ.90)
GOTO 270
6665 CALL luname(kf,chap)
6666 IF(kf.LE.100.AND.chap.EQ.
' '.AND.mdcy(kc,2).EQ.0)
GOTO 270
6667 CALL luname(-kf,chan)
6669 WRITE(mstu(11),6900) kf,kc,chap,chan,kchg(kc,1),kchg(kc,2),
6670 & kchg(kc,3),pm,pmas(kc,2),pmas(kc,3),pmas(kc,4),mdcy(kc,1)
6674 IF(kf.GT.100.AND.kc.LE.100)
GOTO 270
6675 DO 260 idc=mdcy(kc,2),mdcy(kc,2)+mdcy(kc,3)-1
6677 CALL luname(kfdp(idc,j),chad(j))
6679 WRITE(mstu(11),7000) idc,mdme(idc,1),mdme(idc,2),brat(idc),
6686 ELSEIF(mlist.EQ.13)
THEN 6687 WRITE(mstu(11),7100)
6689 WRITE(mstu(11),7200) i,mstu(i),paru(i),mstj(i),parj(i),parf(i)
6694 5100
FORMAT(///28x,
'Event listing (summary)'//4x,
'I particle/jet KS',
6695 &5x,
'KF orig p_x p_y p_z E m'/)
6696 5200
FORMAT(///28x,
'Event listing (standard)'//4x,
'I particle/jet',
6697 &
' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
6698 &
' P(I,2) P(I,3) P(I,4) P(I,5)'/)
6699 5300
FORMAT(///28x,
'Event listing (with vertices)'//4x,
'I particle/j',
6700 'et K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
6701 &
' P(I,2) P(I,3) P(I,4) P(I,5)'/73x,
6702 &
'V(I,1) V(I,2) V(I,3) V(I,4) V(I,5)'/)
6703 5400
FORMAT(1x,i4,2x,a12,1x,i2,1x,i6,1x,i4,5f9.3)
6704 5500
FORMAT(1x,i4,2x,a12,1x,i2,1x,i6,1x,i4,5f9.2)
6705 5600
FORMAT(1x,i4,2x,a12,1x,i2,1x,i6,1x,i4,5f9.1)
6706 5700
FORMAT(1x,i4,2x,a16,1x,i3,1x,i8,2x,i4,2(3x,i1,2i4),5f13.5)
6707 5800
FORMAT(1x,i4,2x,a16,1x,i3,1x,i8,2x,i4,2(3x,i9),5f13.5)
6708 5900
FORMAT(66x,5(1x,f12.3))
6709 6000
FORMAT(1x,78(
'='))
6710 6100
FORMAT(1x,130(
'='))
6711 6200
FORMAT(19x,
'sum:',f6.2,5x,5f9.3)
6712 6300
FORMAT(19x,
'sum:',f6.2,5x,5f9.2)
6713 6400
FORMAT(19x,
'sum:',f6.2,5x,5f9.1)
6714 6500
FORMAT(19x,
'sum charge:',f6.2,3x,
'sum momentum and inv. mass:',
6716 6600
FORMAT(///20x,
'List of KF codes in program'/)
6717 6700
FORMAT(4x,i6,4x,a16,6x,i6,4x,a16)
6718 6800
FORMAT(///30x,
'Particle/parton data table'//5x,
'KF',5x,
'KC',4x,
6719 &
'particle',8x,
'antiparticle',6x,
'chg col anti',8x,
'mass',7x,
6720 &
'width',7x,
'w-cut',5x,
'lifetime',1x,
'decay'/11x,
'IDC',1x,
'on/off',
6721 'ME',3x,
'Br.rat.',4x,
'decay products')
6722 6900
FORMAT(/1x,i6,3x,i4,4x,a16,a16,3i5,1x,f12.5,2(1x,f11.5),
6724 7000
FORMAT(10x,i4,2x,i3,2x,i3,2x,f8.5,4x,5a16)
6725 7100
FORMAT(///20x,
'Parameter value table'//4x,
'I',3x,
'MSTU(I)',
6726 &8x,
'PARU(I)',3x,
'MSTJ(I)',8x,
'PARJ(I)',8x,
'PARF(I)')
6727 7200
FORMAT(1x,i4,1x,i9,1x,f14.5,1x,i9,1x,f14.5,1x,f14.5)
6737 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
6738 common/pypars/mstp(200),parp(200),msti(200),pari(200)
6741 CHARACTER MONTH(12)*3, LOGO(48)*32, REFER(22)*36, LINE*79,
6742 &VERS*1, SUBV*3, DATE*2, YEAR*4
6745 DATA month/
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
6747 DATA (logo(j),j=1,10)/
6748 &
'PPP Y Y TTTTT H H III A ',
6749 &
'P P Y Y T H H I A A ',
6750 &
'PPP Y T HHHHH I AAAAA',
6752 &
'P Y T H H III A A',
6753 &
'JJJJ EEEE TTTTT SSS EEEE TTTTT',
6755 &
' J EEE T SSS EEE T ',
6757 &
' JJ EEEE T SSS EEEE T '/
6758 DATA (logo(j),j=11,29)/
6760 &
' *:::!!:::::::::::* ',
6761 &
' *::::::!!::::::::::::::* ',
6762 &
' *::::::::!!::::::::::::::::* ',
6763 &
' *:::::::::!!:::::::::::::::::* ',
6764 &
' *:::::::::!!:::::::::::::::::* ',
6765 &
' *::::::::!!::::::::::::::::*! ',
6766 &
' *::::::!!::::::::::::::* !! ',
6767 &
' !! *:::!!:::::::::::* !! ',
6768 &
' !! !* -><- * !! ',
6778 DATA (logo(j),j=30,48)/
6779 &
'Welcome to the Lund Monte Carlo!',
6781 &
' This is PYTHIA version x.xxx ',
6782 &
'Last date of change: xx xxx 199x',
6784 &
' This is JETSET version x.xxx ',
6785 &
'Last date of change: xx xxx 199x',
6789 &
' Torbjorn Sjostrand ',
6790 &
' Theory Division, CERN, ',
6791 &
' CH-1211 Geneva 23, ',
6793 &
' phone +41 - 22 - 767 28 20 ',
6794 &
' E-mail TORSJO@CERNVM.CERN.CH ',
6796 &
' Copyright Torbjorn Sjostrand ',
6797 &
' and CERN, Geneva 1993 '/
6798 DATA (refer(j),j=1,16)/
6799 &
'When you cite these programs, priori',
6800 &
'ty should always be given to the ',
6801 &
'latest published description. ',
6803 &
'Currently this is, for JETSET ',
6805 &
'T. Sjostrand and M. Bengtsson, Compu',
6806 &
'ter Physics Commun. 43 (1987) 367, ',
6809 &
'H.-U. Bengtsson and T. Sjostrand, Co',
6810 &
'mputer Physics Commun. 46 (1987) 43.',
6811 &
'The most recent long description (un',
6813 &
'T. Sjostrand, CERN-TH.7112/93 (1993)',
6815 DATA (refer(j),j=17,22)/
6816 &
'Also remember that the programs, to ',
6817 &
'a large extent, represent original ',
6818 &
'physics research. Other publications',
6819 &
' of special relevance to your ',
6820 &
'studies may therefore deserve separa',
6824 IF(mstp(183)/10.NE.199)
THEN 6825 logo(32)=
' Warning: PYTHIA is not loaded! ' 6826 logo(33)=
'Did you remember to link PYDATA?' 6828 WRITE(vers,
'(I1)') mstp(181)
6829 logo(32)(26:26)=vers
6830 WRITE(subv,
'(I3)') mstp(182)
6831 logo(32)(28:30)=subv
6832 WRITE(date,
'(I2)') mstp(185)
6833 logo(33)(22:23)=date
6834 logo(33)(25:27)=month(mstp(184))
6835 WRITE(year,
'(I4)') mstp(183)
6836 logo(33)(29:32)=year
6840 IF(mstu(183)/10.NE.199)
THEN 6841 logo(35)=
' Error: JETSET is not loaded! ' 6842 logo(36)=
'Did you remember to link LUDATA?' 6844 WRITE(vers,
'(I1)') mstu(181)
6845 logo(35)(26:26)=vers
6846 WRITE(subv,
'(I3)') mstu(182)
6847 logo(35)(28:30)=subv
6848 WRITE(date,
'(I2)') mstu(185)
6849 logo(36)(22:23)=date
6850 logo(36)(25:27)=month(mstu(184))
6851 WRITE(year,
'(I4)') mstu(183)
6852 logo(36)(29:32)=year
6866 IF(ilin.EQ.2.OR.ilin.EQ.3.OR.ilin.EQ.47.OR.ilin.EQ.48)
THEN 6867 line(4:77)=
'***********************************************'//
6868 &
'***************************' 6869 ELSEIF(ilin.GE.6.AND.ilin.LE.10)
THEN 6870 line(6:37)=logo(ilin-5)
6871 line(44:75)=logo(ilin)
6872 ELSEIF(ilin.GE.13.AND.ilin.LE.31)
THEN 6873 line(6:37)=logo(ilin-2)
6874 line(44:75)=logo(ilin+17)
6875 ELSEIF(ilin.GE.34.AND.ilin.LE.44)
THEN 6876 line(5:40)=refer(2*ilin-67)
6877 line(41:76)=refer(2*ilin-66)
6881 IF(mstu(183)/10.EQ.199)
THEN 6882 WRITE(mstu(11),
'(A79)') line
6884 WRITE(*,
'(A79)') line
6889 IF(mstu(183)/10.EQ.199.AND.mstp(183)/10.EQ.199)
THEN 6890 IF(mstu(182).LT.mstp(186))
WRITE(mstu(11),
6891 &
'(/'' Warning: JETSET subversion too old for PYTHIA''/)')
6892 IF(mstp(182).LT.mstu(186))
WRITE(mstu(11),
6893 &
'(/'' Warning: PYTHIA subversion too old for JETSET''/)')
6901 SUBROUTINE luupda(MUPDA,LFN)
6904 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
6905 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
6906 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
6907 common/ludat4/chaf(500)
6909 SAVE /ludat1/,/ludat2/,/ludat3/,/ludat4/
6910 CHARACTER CHINL*80,CHKC*4,CHVAR(19)*9,CHLIN*72,
6911 &CHBLK(20)*72,CHOLD*12,CHTMP*12,CHNEW*12,CHCOM*12
6912 DATA chvar/
'KCHG(I,1)',
'KCHG(I,2)',
'KCHG(I,3)',
'PMAS(I,1)',
6913 &
'PMAS(I,2)',
'PMAS(I,3)',
'PMAS(I,4)',
'MDCY(I,1)',
'MDCY(I,2)',
6914 &
'MDCY(I,3)',
'MDME(I,1)',
'MDME(I,2)',
'BRAT(I) ',
'KFDP(I,1)',
6915 &
'KFDP(I,2)',
'KFDP(I,3)',
'KFDP(I,4)',
'KFDP(I,5)',
'CHAF(I) '/
6918 IF(mstu(12).GE.1)
CALL lulist(0)
6921 WRITE(lfn,5000) kc,chaf(kc),(kchg(kc,j1),j1=1,3),
6922 & (pmas(kc,j2),j2=1,4),mdcy(kc,1)
6923 DO 100 idc=mdcy(kc,2),mdcy(kc,2)+mdcy(kc,3)-1
6924 WRITE(lfn,5100) mdme(idc,1),mdme(idc,2),brat(idc),
6925 & (kfdp(idc,j),j=1,5)
6930 ELSEIF(mupda.EQ.2)
THEN 6942 140
READ(lfn,5200,end=150) chinl
6943 IF(chinl(2:5).NE.
' ')
THEN 6947 IF(ndc.NE.0) mdcy(kc,2)=idc+1-ndc
6951 IF(kc.LE.0.OR.kc.GT.mstu(6))
CALL luerrm(27,
6952 &
'(LUUPDA:) Read KC code illegal, KC ='//chkc)
6953 READ(chinl,5000) kcr,chaf(kc),(kchg(kc,j1),j1=1,3),
6954 & (pmas(kc,j2),j2=1,4),mdcy(kc,1)
6959 IF(idc.GE.mstu(7))
CALL luerrm(27,
6960 &
'(LUUPDA:) Decay data arrays full by KC ='//chkc)
6961 READ(chinl,5100) mdme(idc,1),mdme(idc,2),brat(idc),
6962 & (kfdp(idc,j),j=1,5)
6966 IF(ndc.NE.0) mdcy(kc,2)=idc+1-ndc
6974 IF(min(pmas(kc,1),pmas(kc,2),pmas(kc,3),pmas(kc,1)-pmas(kc,3),
6975 & pmas(kc,4)).LT.0..OR.mdcy(kc,3).LT.0)
CALL luerrm(17,
6976 &
'(LUUPDA:) Mass/width/life/(# channels) wrong for KC ='//chkc)
6978 DO 170 idc=mdcy(kc,2),mdcy(kc,2)+mdcy(kc,3)-1
6979 IF(mdme(idc,2).GT.80)
GOTO 170
6981 pms=pmas(kc,1)-pmas(kc,3)-parj(64)
6985 IF(kp.EQ.0.OR.kp.EQ.81.OR.iabs(kp).EQ.82)
THEN 6986 ELSEIF(lucomp(kp).EQ.0)
THEN 6993 IF(kq.NE.0) merr=max(2,merr)
6994 IF(kfdp(idc,2).NE.0.AND.(kc.LE.20.OR.kc.GT.40).AND.
6995 & (kc.LE.80.OR.kc.GT.100).AND.mdme(idc,2).NE.34.AND.
6996 & mdme(idc,2).NE.61.AND.pms.LT.0.) merr=max(1,merr)
6997 IF(merr.EQ.3)
CALL luerrm(17,
6998 &
'(LUUPDA:) Unknown particle code in decay of KC ='//chkc)
6999 IF(merr.EQ.2)
CALL luerrm(17,
7000 &
'(LUUPDA:) Charge not conserved in decay of KC ='//chkc)
7001 IF(merr.EQ.1)
CALL luerrm(7,
7002 &
'(LUUPDA:) Kinematically unallowed decay of KC ='//chkc)
7003 brsum=brsum+brat(idc)
7005 WRITE(chtmp,5500) brsum
7006 IF(abs(brsum).GT.0.0005.AND.abs(brsum-1.).GT.0.0005)
CALL 7007 & luerrm(7,
'(LUUPDA:) Sum of branching ratios is '//chtmp(5:12)//
7008 &
' for KC ='//chkc)
7013 ELSEIF(mupda.EQ.3)
THEN 7016 IF(ivar.GE.11.AND.ivar.LE.18) ndim=mstu(7)
7019 chlin(7:35)=
'DATA ('//chvar(ivar)//
',I= 1, )/' 7025 IF(ivar.EQ.1)
WRITE(chtmp,5400) kchg(idim,1)
7026 IF(ivar.EQ.2)
WRITE(chtmp,5400) kchg(idim,2)
7027 IF(ivar.EQ.3)
WRITE(chtmp,5400) kchg(idim,3)
7028 IF(ivar.EQ.4)
WRITE(chtmp,5500) pmas(idim,1)
7029 IF(ivar.EQ.5)
WRITE(chtmp,5500) pmas(idim,2)
7030 IF(ivar.EQ.6)
WRITE(chtmp,5500) pmas(idim,3)
7031 IF(ivar.EQ.7)
WRITE(chtmp,5500) pmas(idim,4)
7032 IF(ivar.EQ.8)
WRITE(chtmp,5400) mdcy(idim,1)
7033 IF(ivar.EQ.9)
WRITE(chtmp,5400) mdcy(idim,2)
7034 IF(ivar.EQ.10)
WRITE(chtmp,5400) mdcy(idim,3)
7035 IF(ivar.EQ.11)
WRITE(chtmp,5400) mdme(idim,1)
7036 IF(ivar.EQ.12)
WRITE(chtmp,5400) mdme(idim,2)
7037 IF(ivar.EQ.13)
WRITE(chtmp,5500) brat(idim)
7038 IF(ivar.EQ.14)
WRITE(chtmp,5400) kfdp(idim,1)
7039 IF(ivar.EQ.15)
WRITE(chtmp,5400) kfdp(idim,2)
7040 IF(ivar.EQ.16)
WRITE(chtmp,5400) kfdp(idim,3)
7041 IF(ivar.EQ.17)
WRITE(chtmp,5400) kfdp(idim,4)
7042 IF(ivar.EQ.18)
WRITE(chtmp,5400) kfdp(idim,5)
7043 IF(ivar.EQ.19) chtmp=chaf(idim)
7049 IF(chtmp(13-ll:13-ll).NE.
' ') llow=13-ll
7050 IF(chtmp(ll:ll).NE.
' ') lhig=ll
7052 chnew=chtmp(llow:lhig)//
' ' 7054 IF((ivar.GE.4.AND.ivar.LE.7).OR.ivar.EQ.13)
THEN 7057 IF(chnew(lnew:lnew).EQ.
'0')
GOTO 200
7058 IF(lnew.EQ.1) chnew(1:2)=
'0.' 7059 IF(lnew.EQ.1) lnew=2
7060 ELSEIF(ivar.EQ.19)
THEN 7062 IF(chnew(ll:ll).EQ.
'''')
THEN 7064 chnew=chtmp(1:ll)//
''''//chtmp(ll+1:11)
7069 chnew(1:lnew+2)=
''''//chtmp(1:lnew)//
'''' 7074 IF(chnew.NE.chold)
THEN 7081 IF(nrpt.GE.2) lrpt=lnew+3
7082 IF(nrpt.GE.10) lrpt=lnew+4
7083 IF(nrpt.GE.100) lrpt=lnew+5
7084 IF(nrpt.GE.1000) lrpt=lnew+6
7087 WRITE(chtmp,5400) nrpt
7089 IF(nrpt.GE.10) lrpt=2
7090 IF(nrpt.GE.100) lrpt=3
7091 IF(nrpt.GE.1000) lrpt=4
7092 chcom(1:lrpt+1+lnew)=chtmp(13-lrpt:12)//
'*'//chnew(1:lnew)
7098 IF(llin+lcom.LE.70)
THEN 7099 chlin(llin+1:llin+lcom+1)=chcom(1:lcom)//
',' 7101 ELSEIF(nlin.LE.19)
THEN 7102 chlin(llin+1:72)=
' ' 7105 chlin(6:6+lcom+1)=
'&'//chcom(1:lcom)//
',' 7108 chlin(llin:72)=
'/'//
' ' 7110 WRITE(chtmp,5400) idim-nrpt
7111 chblk(1)(30:33)=chtmp(9:12)
7113 WRITE(lfn,5600) chblk(ilin)
7117 chlin(7:35+lcom+1)=
'DATA ('//chvar(ivar)//
',I= , )/'//
7118 & chcom(1:lcom)//
',' 7119 WRITE(chtmp,5400) idim-nrpt+1
7120 chlin(25:28)=chtmp(9:12)
7126 chlin(llin:72)=
'/'//
' ' 7128 WRITE(chtmp,5400) ndim
7129 chblk(1)(30:33)=chtmp(9:12)
7131 WRITE(lfn,5600) chblk(ilin)
7137 5000
FORMAT(1x,i4,2x,a8,3i3,3f12.5,2x,f12.5,i3)
7138 5100
FORMAT(5x,2i5,f12.5,5i8)
7153 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
7154 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
7155 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
7156 SAVE /lujets/,/ludat1/,/ludat2/
7161 IF(i.LT.0.OR.i.GT.mstu(4).OR.j.LE.0)
THEN 7162 ELSEIF(i.EQ.0.AND.j.EQ.1)
THEN 7164 ELSEIF(i.EQ.0.AND.(j.EQ.2.OR.j.EQ.6))
THEN 7166 IF(j.EQ.2.AND.k(i1,1).GE.1.AND.k(i1,1).LE.10) klu=klu+1
7167 IF(j.EQ.6.AND.k(i1,1).GE.1.AND.k(i1,1).LE.10) klu=klu+
7180 IF(k(i,1).GE.1.AND.k(i,1).LE.10) klu=1
7181 IF(j.EQ.8) klu=klu*k(i,2)
7182 ELSEIF(j.LE.12)
THEN 7186 IF(kc.NE.0) kq=kchg(kc,2)
7187 IF(j.EQ.9.AND.kc.NE.0.AND.kq.NE.0) klu=k(i,2)
7188 IF(j.EQ.10.AND.kc.NE.0.AND.kq.EQ.0) klu=k(i,2)
7190 IF(j.EQ.12) klu=kq*isign(1,k(i,2))
7193 ELSEIF(j.EQ.13)
THEN 7195 klu=mod(kfa/100,10)*(-1)**mod(kfa/100,10)
7196 IF(kfa.LT.10) klu=kfa
7197 IF(mod(kfa/1000,10).NE.0) klu=mod(kfa/1000,10)
7198 klu=klu*isign(1,k(i,2))
7201 ELSEIF(j.LE.16)
THEN 7208 IF(i1.GT.0.AND.k(i1,1).GT.0.AND.k(i1,1).LE.20)
GOTO 110
7213 IF(k(i1,3).EQ.i2.AND.k(i1,1).GT.0.AND.k(i1,1).LE.20) klu=klu+1
7218 ELSEIF(j.EQ.17)
THEN 7225 IF(i1.EQ.0.OR.k(i0,1).LE.0.OR.k(i0,1).GT.20.OR.kc.EQ.0)
THEN 7230 IF(kchg(kc,2).EQ.0)
GOTO 130
7231 IF(k(i1,1).NE.12) klu=0
7232 IF(k(i1,1).NE.12)
RETURN 7235 IF(i2.LT.n.AND.k(i2,1).NE.11)
GOTO 140
7237 IF(k3m.GE.i1.AND.k3m.LE.i2) klu=0
7239 IF(i3.LT.n.AND.k3p.GE.i1.AND.k3p.LE.i2) klu=0
7242 ELSEIF(j.EQ.18)
THEN 7243 IF(k(i,1).EQ.11.OR.k(i,1).EQ.12) klu=max(0,k(i,5)-k(i,4)+1)
7244 IF(k(i,4).EQ.0.OR.k(i,5).EQ.0) klu=0
7245 ELSEIF(j.LE.22)
THEN 7246 IF(k(i,1).NE.3.AND.k(i,1).NE.13.AND.k(i,1).NE.14)
RETURN 7247 IF(j.EQ.19) klu=mod(k(i,4)/mstu(5),mstu(5))
7248 IF(j.EQ.20) klu=mod(k(i,5)/mstu(5),mstu(5))
7249 IF(j.EQ.21) klu=mod(k(i,4),mstu(5))
7250 IF(j.EQ.22) klu=mod(k(i,5),mstu(5))
7262 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
7263 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
7264 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
7265 SAVE /lujets/,/ludat1/,/ludat2/
7271 IF(i.LT.0.OR.i.GT.mstu(4).OR.j.LE.0)
THEN 7272 ELSEIF(i.EQ.0.AND.j.LE.4)
THEN 7274 IF(k(i1,1).GT.0.AND.k(i1,1).LE.10) plu=plu+p(i1,j)
7276 ELSEIF(i.EQ.0.AND.j.EQ.5)
THEN 7280 IF(k(i1,1).GT.0.AND.k(i1,1).LE.10) psum(j1)=psum(j1)+p(i1,j1)
7283 plu=sqrt(max(0.,psum(4)**2-psum(1)**2-psum(2)**2-psum(3)**2))
7284 ELSEIF(i.EQ.0.AND.j.EQ.6)
THEN 7286 IF(k(i1,1).GT.0.AND.k(i1,1).LE.10) plu=plu+luchge(k(i1,2))/3.
7295 ELSEIF(j.LE.12)
THEN 7296 IF(j.EQ.6) plu=luchge(k(i,2))/3.
7297 IF(j.EQ.7.OR.j.EQ.8) plu=p(i,1)**2+p(i,2)**2+p(i,3)**2
7298 IF(j.EQ.9.OR.j.EQ.10) plu=p(i,1)**2+p(i,2)**2
7299 IF(j.EQ.11.OR.j.EQ.12) plu=p(i,5)**2+p(i,1)**2+p(i,2)**2
7300 IF(j.EQ.8.OR.j.EQ.10.OR.j.EQ.12) plu=sqrt(plu)
7303 ELSEIF(j.LE.16)
THEN 7304 IF(j.LE.14) plu=ulangl(p(i,3),sqrt(p(i,1)**2+p(i,2)**2))
7305 IF(j.GE.15) plu=ulangl(p(i,1),p(i,2))
7306 IF(j.EQ.14.OR.j.EQ.16) plu=plu*180./paru(1)
7309 ELSEIF(j.LE.19)
THEN 7311 IF(j.EQ.17) pmr=p(i,5)
7312 IF(j.EQ.18) pmr=ulmass(211)
7313 pr=max(1e-20,pmr**2+p(i,1)**2+p(i,2)**2)
7314 plu=sign(log(min((sqrt(pr+p(i,3)**2)+abs(p(i,3)))/sqrt(pr),
7318 ELSEIF(j.LE.25)
THEN 7319 IF(j.EQ.20) plu=2.*sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)/paru(21)
7320 IF(j.EQ.21) plu=2.*p(i,3)/paru(21)
7321 IF(j.EQ.22) plu=2.*sqrt(p(i,1)**2+p(i,2)**2)/paru(21)
7322 IF(j.EQ.23) plu=2.*p(i,4)/paru(21)
7323 IF(j.EQ.24) plu=(p(i,4)+p(i,3))/paru(21)
7324 IF(j.EQ.25) plu=(p(i,4)-p(i,3))/paru(21)
7332 SUBROUTINE lusphe(SPH,APL)
7336 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
7337 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
7338 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
7339 SAVE /lujets/,/ludat1/,/ludat2/
7340 dimension sm(3,3),sv(3,3)
7351 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 140
7352 IF(mstu(41).GE.2)
THEN 7354 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
7355 & kc.EQ.18)
GOTO 140
7356 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
7360 pa=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)
7362 IF(abs(paru(41)-2.).GT.0.001) pwt=max(1e-10,pa)**(paru(41)-2.)
7365 sm(j1,j2)=sm(j1,j2)+pwt*p(i,j1)*p(i,j2)
7373 CALL luerrm(8,
'(LUSPHE:) too few particles for analysis')
7380 sm(j1,j2)=sm(j1,j2)/ps
7385 sq=(sm(1,1)*sm(2,2)+sm(1,1)*sm(3,3)+sm(2,2)*sm(3,3)-sm(1,2)**2-
7386 &sm(1,3)**2-sm(2,3)**2)/3.-1./9.
7387 sr=-0.5*(sq+1./9.+sm(1,1)*sm(2,3)**2+sm(2,2)*sm(1,3)**2+sm(3,3)*
7388 &sm(1,2)**2-sm(1,1)*sm(2,2)*sm(3,3))+sm(1,2)*sm(1,3)*sm(2,3)+1./27.
7393 IF(p(n+2,4).LT.1e-5)
THEN 7394 CALL luerrm(8,
'(LUSPHE:) all particles back-to-back')
7403 sv(j1,j1)=sm(j1,j1)-p(n+i,4)
7412 IF(abs(sv(j1,j2)).LE.smax)
GOTO 190
7421 rl=sv(j1,jb)/sv(ja,jb)
7423 sv(j1,j2)=sv(j1,j2)-rl*sv(ja,j2)
7424 IF(abs(sv(j1,j2)).LE.smax)
GOTO 210
7430 jb2=jb+2-3*((jb+1)/3)
7431 p(n+i,jb1)=-sv(jc,jb2)
7432 p(n+i,jb2)=sv(jc,jb1)
7433 p(n+i,jb)=-(sv(ja,jb1)*p(n+i,jb1)+sv(ja,jb2)*p(n+i,jb2))/
7435 pa=sqrt(p(n+i,1)**2+p(n+i,2)**2+p(n+i,3)**2)
7436 sgn=(-1.)**int(rlu(0)+0.5)
7438 p(n+i,j)=sgn*p(n+i,j)/pa
7443 sgn=(-1.)**int(rlu(0)+0.5)
7444 p(n+2,1)=sgn*(p(n+1,2)*p(n+3,3)-p(n+1,3)*p(n+3,2))
7445 p(n+2,2)=sgn*(p(n+1,3)*p(n+3,1)-p(n+1,1)*p(n+3,3))
7446 p(n+2,3)=sgn*(p(n+1,1)*p(n+3,2)-p(n+1,2)*p(n+3,1))
7460 sph=1.5*(p(n+2,4)+p(n+3,4))
7464 IF(mstu(43).LE.1) mstu(3)=3
7465 IF(mstu(43).GE.2) n=n+3
7472 SUBROUTINE luthru(THR,OBL)
7476 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
7477 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
7478 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
7479 SAVE /lujets/,/ludat1/,/ludat2/
7480 dimension tdi(3),tpr(3)
7486 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 100
7487 IF(mstu(41).GE.2)
THEN 7489 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
7490 & kc.EQ.18)
GOTO 100
7491 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
7494 IF(n+np+mstu(44)+15.GE.mstu(4)-mstu(32)-5)
THEN 7495 CALL luerrm(11,
'(LUTHRU:) no more memory left in LUJETS')
7505 p(n+np,4)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)
7507 IF(abs(paru(42)-1.).GT.0.001) p(n+np,5)=p(n+np,4)**(paru(42)-1.)
7508 ps=ps+p(n+np,4)*p(n+np,5)
7513 CALL luerrm(8,
'(LUTHRU:) too few particles for analysis')
7523 phi=ulangl(p(n+np+1,1),p(n+np+1,2))
7525 CALL ludbrb(n+1,n+np+1,0.,-phi,0d0,0d0,0d0)
7526 the=ulangl(p(n+np+1,3),p(n+np+1,1))
7527 CALL ludbrb(n+1,n+np+1,-the,0.,0d0,0d0,0d0)
7531 DO 110 ilf=n+np+4,n+np+mstu(44)+4
7535 IF(ild.EQ.2) p(i,4)=sqrt(p(i,1)**2+p(i,2)**2)
7536 DO 130 ilf=n+np+mstu(44)+3,n+np+4,-1
7537 IF(p(i,4).LE.p(ilf,4))
GOTO 140
7549 DO 170 ilg=n+np+mstu(44)+5,n+np+mstu(44)+15
7552 nc=2**(min(mstu(44),np)-1)
7557 DO 200 ilf=1,min(mstu(44),np)
7559 IF(2**ilf*((ilc+2**(ilf-1)-1)/2**ilf).GE.ilc) sgn=-sgn
7561 tdi(j)=tdi(j)+sgn*p(n+np+ilf+3,j)
7564 tds=tdi(1)**2+tdi(2)**2+tdi(3)**2
7565 DO 220 ilg=n+np+mstu(44)+min(ilc,10)+4,n+np+mstu(44)+5,-1
7566 IF(tds.LE.p(ilg,4))
GOTO 230
7585 IF(thp.LE.1e-10) tdi(j)=p(n+np+mstu(44)+4+ilg,j)
7586 IF(thp.GT.1e-10) tdi(j)=tpr(j)
7590 sgn=sign(p(i,5),tdi(1)*p(i,1)+tdi(2)*p(i,2)+tdi(3)*p(i,3))
7592 tpr(j)=tpr(j)+sgn*p(i,j)
7595 thp=sqrt(tpr(1)**2+tpr(2)**2+tpr(3)**2)/ps
7596 IF(thp.GE.thps+paru(48))
GOTO 270
7599 IF(thp.LT.p(n+np+ild,4)-paru(48).AND.ilg.LT.min(10,nc))
GOTO 260
7600 IF(thp.GT.p(n+np+ild,4)+paru(48))
THEN 7602 sgn=(-1.)**int(rlu(0)+0.5)
7604 p(n+np+ild,j)=sgn*tpr(j)/(ps*thp)
7610 IF(iagr.LT.mstu(45).AND.ilg.LT.min(10,nc))
GOTO 260
7614 sgn=(-1.)**int(rlu(0)+0.5)
7615 p(n+np+3,1)=-sgn*p(n+np+2,2)
7616 p(n+np+3,2)=sgn*p(n+np+2,1)
7620 thp=thp+p(i,5)*abs(p(n+np+3,1)*p(i,1)+p(n+np+3,2)*p(i,2))
7633 p(n+ild,j)=p(n+np+ild,j)
7637 CALL ludbrb(n+1,n+3,the,phi,0d0,0d0,0d0)
7641 obl=p(n+2,4)-p(n+3,4)
7644 IF(mstu(43).LE.1) mstu(3)=3
7645 IF(mstu(43).GE.2) n=n+3
7652 SUBROUTINE luclus(NJET)
7656 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
7657 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
7658 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
7659 SAVE /lujets/,/ludat1/,/ludat2/
7661 SAVE nsav,np,ps,pss,rinit,npre,nrem
7664 r2t(i1,i2)=(p(i1,5)*p(i2,5)-p(i1,1)*p(i2,1)-p(i1,2)*p(i2,2)-
7665 &p(i1,3)*p(i2,3))*2.*p(i1,5)*p(i2,5)/(0.0001+p(i1,5)+p(i2,5))**2
7666 r2m(i1,i2)=2.*p(i1,4)*p(i2,4)*(1.-(p(i1,1)*p(i2,1)+p(i1,2)*
7667 &p(i2,2)+p(i1,3)*p(i2,3))/(p(i1,5)*p(i2,5)))
7670 IF(mstu(48).LE.0)
THEN 7678 IF(mstu(43).GE.2) n=n-njet
7680 p(i,5)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)
7682 IF(mstu(46).LE.3) r2acc=paru(44)**2
7683 IF(mstu(46).GE.4) r2acc=paru(45)*ps(5)**2
7690 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 140
7691 IF(mstu(41).GE.2)
THEN 7693 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
7694 & kc.EQ.18)
GOTO 140
7695 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
7698 IF(n+2*np.GE.mstu(4)-mstu(32)-5)
THEN 7699 CALL luerrm(11,
'(LUCLUS:) no more memory left in LUJETS')
7710 IF(mstu(42).EQ.0) p(n+np,5)=0.
7711 IF(mstu(42).EQ.1.AND.k(i,2).NE.22) p(n+np,5)=pmas(101,1)
7712 p(n+np,4)=sqrt(p(n+np,5)**2+p(i,1)**2+p(i,2)**2+p(i,3)**2)
7713 p(n+np,5)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)
7715 ps(j)=ps(j)+p(n+np,j)
7725 ps(5)=sqrt(max(0.,ps(4)**2-ps(1)**2-ps(2)**2-ps(3)**2))
7728 IF(np.LT.mstu(47))
THEN 7729 CALL luerrm(8,
'(LUCLUS:) too few particles for analysis')
7736 IF(mstu(46).LE.3) r2acc=paru(44)**2
7737 IF(mstu(46).GE.4) r2acc=paru(45)*ps(5)**2
7739 IF(np.LE.mstu(47)+2) rinit=0.
7743 DO 180 i=n+np+1,n+2*np
7748 IF(mstu(46).LE.2)
THEN 7752 DO 210 i=n+np+1,n+2*np
7753 IF(p(i,5).GT.2.*rinit)
GOTO 210
7757 p(n+1,j)=p(n+1,j)+p(i,j)
7760 p(n+1,5)=sqrt(p(n+1,1)**2+p(n+1,2)**2+p(n+1,3)**2)
7761 IF(p(n+1,5).GT.2.*rinit) npre=1
7762 IF(rinit.GE.0.2*paru(43).AND.npre+nrem.LT.mstu(47))
GOTO 170
7763 IF(nrem.EQ.0)
GOTO 170
7769 DO 230 i=n+np+1,n+2*np
7770 IF(k(i,4).NE.0.OR.p(i,5).LE.pmax)
GOTO 230
7775 p(n+npre,j)=p(imax,j)
7781 IF(mstu(46).LE.2)
THEN 7782 DO 260 i=n+np+1,n+2*np
7783 IF(k(i,4).NE.0)
GOTO 260
7785 IF(r2.GT.rinit**2)
GOTO 260
7789 p(n+npre,j)=p(n+npre,j)+p(i,j)
7792 p(n+npre,5)=sqrt(p(n+npre,1)**2+p(n+npre,2)**2+p(n+npre,3)**2)
7798 DO 280 i=n+np+1,n+2*np
7799 IF(k(i,4).NE.0)
GOTO 280
7801 IF(r2.GE.r2min)
GOTO 280
7807 p(n+npre,j)=p(n+npre,j)+p(imin,j)
7809 p(n+npre,5)=sqrt(p(n+npre,1)**2+p(n+npre,2)**2+p(n+npre,3)**2)
7817 IF(rinit.GE.0.2*paru(43).AND.npre+nrem.LT.mstu(47))
GOTO 170
7818 IF(nrem.GT.0)
GOTO 220
7824 310
IF(mstu(46).LE.1)
THEN 7830 DO 360 i=n+np+1,n+2*np
7832 DO 340 ijet=n+1,n+njet
7833 IF(p(ijet,5).LT.rinit)
GOTO 340
7835 IF(r2.GE.r2min)
GOTO 340
7841 v(imin,j)=v(imin,j)+p(i,j)
7849 p(i,5)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)
7855 r2min=2.*max(r2acc,ps(5)**2)
7856 DO 400 itry1=n+1,n+njet-1
7857 DO 390 itry2=itry1+1,n+njet
7858 IF(mstu(46).LE.2) r2=r2t(itry1,itry2)
7859 IF(mstu(46).GE.3) r2=r2m(itry1,itry2)
7860 IF(r2.GE.r2min)
GOTO 390
7868 IF(njet.GT.mstu(47).AND.r2min.LT.r2acc)
THEN 7869 irec=min(imin1,imin2)
7870 idel=max(imin1,imin2)
7872 p(irec,j)=p(imin1,j)+p(imin2,j)
7874 p(irec,5)=sqrt(p(irec,1)**2+p(irec,2)**2+p(irec,3)**2)
7875 DO 430 i=idel+1,n+njet
7880 IF(mstu(46).GE.2)
THEN 7881 DO 440 i=n+np+1,n+2*np
7883 IF(iori.EQ.idel) k(i,4)=irec-n
7884 IF(iori.GT.idel) k(i,4)=k(i,4)-1
7891 ELSEIF(njet.EQ.mstu(47).AND.mstu(46).LE.1.AND.nloop.LE.2)
THEN 7895 DO 460 i=n+np+1,n+2*np
7896 k(n+k(i,4),5)=k(n+k(i,4),5)+1
7900 IF(k(i,5).EQ.0) iemp=i
7906 DO 480 i=n+np+1,n+2*np
7907 IF(k(n+k(i,4),5).LE.1.OR.p(i,5).LT.rinit)
GOTO 480
7910 IF(r2.LE.r2max)
GOTO 480
7918 p(ijet,j)=p(ijet,j)-p(ispl,j)
7921 p(ijet,5)=sqrt(p(ijet,1)**2+p(ijet,2)**2+p(ijet,3)**2)
7922 IF(nloop.LE.2)
GOTO 300
7928 IF(mstu(46).LE.1.AND.nloop.LE.2.AND.psjt/pss.GT.tsav+paru(48))
7940 DO 540 inew=n+1,n+njet
7942 DO 520 itry=n+1,n+njet
7943 IF(v(itry,4).LE.pemax)
GOTO 520
7959 DO 550 i=n+np+1,n+2*np
7962 IF(k(k(i,3),1).NE.3) k(k(i,3),4)=iori-n
7963 k(iori,4)=k(iori,4)+1
7970 p(i,5)=sqrt(max(p(i,4)**2-p(i,5)**2,0.))
7974 IF(k(i,4).EQ.0) iemp=i
7983 paru(63)=sqrt(r2min)
7984 IF(njet.LE.1) paru(63)=0.
7986 CALL luerrm(8,
'(LUCLUS:) failed to reconstruct as requested')
7989 IF(mstu(43).LE.1) mstu(3)=njet
7990 IF(mstu(43).GE.2) n=n+njet
7998 SUBROUTINE lucell(NJET)
8002 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
8003 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
8004 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
8005 SAVE /lujets/,/ludat1/,/ludat2/
8008 ptlrat=1./sinh(paru(51))**2
8012 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 110
8013 IF(p(i,1)**2+p(i,2)**2.LE.ptlrat*p(i,3)**2)
GOTO 110
8014 IF(mstu(41).GE.2)
THEN 8016 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
8017 & kc.EQ.18)
GOTO 110
8018 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
8022 pt=sqrt(p(i,1)**2+p(i,2)**2)
8023 eta=sign(log((sqrt(pt**2+p(i,3)**2)+abs(p(i,3)))/pt),p(i,3))
8024 ieta=max(1,min(mstu(51),1+int(mstu(51)*0.5*(eta/paru(51)+1.))))
8025 phi=ulangl(p(i,1),p(i,2))
8026 iphi=max(1,min(mstu(52),1+int(mstu(52)*0.5*(phi/paru(1)+1.))))
8027 ietph=mstu(52)*ieta+iphi
8031 IF(ietph.EQ.k(ic,3))
THEN 8037 IF(nc.GE.mstu(4)-mstu(32)-5)
THEN 8038 CALL luerrm(11,
'(LUCELL:) no more memory left in LUJETS')
8046 p(nc,1)=(paru(51)/mstu(51))*(2*ieta-1-mstu(51))
8047 p(nc,2)=(paru(1)/mstu(52))*(2*iphi-1-mstu(52))
8052 IF(mstu(53).GE.1)
THEN 8055 IF(mstu(53).EQ.2) pei=p(ic,5)/cosh(p(ic,1))
8056 120 pef=pei+paru(55)*sqrt(-2.*log(max(1e-10,rlu(0)))*pei)*
8057 & cos(paru(2)*rlu(0))
8058 IF(pef.LT.0..OR.pef.GT.paru(56)*pei)
GOTO 120
8060 IF(mstu(53).EQ.2) p(ic,5)=pef*cosh(p(ic,1))
8065 IF(paru(58).GT.0.)
THEN 8069 IF(p(ic,5).GT.paru(58))
THEN 8085 IF(k(ic,5).NE.2)
GOTO 160
8086 IF(p(ic,5).LE.etmax)
GOTO 160
8092 IF(etmax.LT.paru(52))
GOTO 220
8093 IF(nj.GE.mstu(4)-mstu(32)-5)
THEN 8094 CALL luerrm(11,
'(LUCELL:) no more memory left in LUJETS')
8110 IF(k(ic,5).EQ.0)
GOTO 170
8111 IF(abs(p(ic,1)-eta).GT.paru(54))
GOTO 170
8112 dphia=abs(p(ic,2)-phi)
8113 IF(dphia.GT.paru(54).AND.dphia.LT.paru(2)-paru(54))
GOTO 170
8115 IF(dphia.GT.paru(1)) phic=phic+sign(paru(2),phi)
8116 IF((p(ic,1)-eta)**2+(phic-phi)**2.GT.paru(54)**2)
GOTO 170
8118 k(nj,4)=k(nj,4)+k(ic,4)
8119 p(nj,3)=p(nj,3)+p(ic,5)*p(ic,1)
8120 p(nj,4)=p(nj,4)+p(ic,5)*phic
8121 p(nj,5)=p(nj,5)+p(ic,5)
8125 IF(p(nj,5).LT.paru(53))
THEN 8128 IF(k(ic,5).LT.0) k(ic,5)=-k(ic,5)
8130 ELSEIF(mstu(54).LE.2)
THEN 8131 p(nj,3)=p(nj,3)/p(nj,5)
8132 p(nj,4)=p(nj,4)/p(nj,5)
8133 IF(abs(p(nj,4)).GT.paru(1)) p(nj,4)=p(nj,4)-sign(paru(2),
8136 IF(k(ic,5).LT.0) k(ic,5)=0
8143 IF(k(ic,5).GE.0)
GOTO 210
8144 p(nj,1)=p(nj,1)+p(ic,5)*cos(p(ic,2))
8145 p(nj,2)=p(nj,2)+p(ic,5)*sin(p(ic,2))
8146 p(nj,3)=p(nj,3)+p(ic,5)*sinh(p(ic,1))
8147 p(nj,4)=p(nj,4)+p(ic,5)*cosh(p(ic,1))
8154 220
DO 250 i=1,nj-nc
8157 IF(k(ij,5).EQ.0)
GOTO 230
8158 IF(p(ij,5).LT.etmax)
GOTO 230
8176 IF(mstu(54).EQ.2)
THEN 8179 p(i,1)=p(i,5)*cos(p(i,4))
8180 p(i,2)=p(i,5)*sin(p(i,4))
8181 p(i,3)=p(i,5)*sinh(eta)
8182 p(i,4)=p(i,5)*cosh(eta)
8185 ELSEIF(mstu(54).GE.3)
THEN 8187 p(i,5)=sqrt(max(0.,p(i,4)**2-p(i,1)**2-p(i,2)**2-p(i,3)**2))
8195 IF(mstu(43).LE.1) mstu(3)=njet
8196 IF(mstu(43).GE.2) n=n+njet
8203 SUBROUTINE lujmas(PMH,PML)
8207 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
8208 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
8209 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
8210 SAVE /lujets/,/ludat1/,/ludat2/
8211 dimension sm(3,3),sax(3),ps(3,5)
8227 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 170
8228 IF(mstu(41).GE.2)
THEN 8230 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
8231 & kc.EQ.18)
GOTO 170
8232 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
8235 IF(n+np+1.GE.mstu(4)-mstu(32)-5)
THEN 8236 CALL luerrm(11,
'(LUJMAS:) no more memory left in LUJETS')
8245 IF(mstu(42).EQ.0) p(n+np,5)=0.
8246 IF(mstu(42).EQ.1.AND.k(i,2).NE.22) p(n+np,5)=pmas(101,1)
8247 p(n+np,4)=sqrt(p(n+np,5)**2+p(i,1)**2+p(i,2)**2+p(i,3)**2)
8252 sm(j1,j2)=sm(j1,j2)+p(i,j1)*p(i,j2)
8255 pss=pss+(p(i,1)**2+p(i,2)**2+p(i,3)**2)
8257 ps(3,j)=ps(3,j)+p(n+np,j)
8263 CALL luerrm(8,
'(LUJMAS:) too few particles for analysis')
8268 paru(61)=sqrt(max(0.,ps(3,4)**2-ps(3,1)**2-ps(3,2)**2-ps(3,3)**2))
8273 sm(j1,j2)=sm(j1,j2)/pss
8276 sq=(sm(1,1)*sm(2,2)+sm(1,1)*sm(3,3)+sm(2,2)*sm(3,3)-sm(1,2)**2-
8277 &sm(1,3)**2-sm(2,3)**2)/3.-1./9.
8278 sr=-0.5*(sq+1./9.+sm(1,1)*sm(2,3)**2+sm(2,2)*sm(1,3)**2+sm(3,3)*
8279 &sm(1,2)**2-sm(1,1)*sm(2,2)*sm(3,3))+sm(1,2)*sm(1,3)*sm(2,3)+1./27.
8285 sm(j1,j1)=sm(j1,j1)-sma
8293 IF(abs(sm(j1,j2)).LE.smax)
GOTO 220
8302 rl=sm(j1,jb)/sm(ja,jb)
8304 sm(j1,j2)=sm(j1,j2)-rl*sm(ja,j2)
8305 IF(abs(sm(j1,j2)).LE.smax)
GOTO 240
8311 jb2=jb+2-3*((jb+1)/3)
8312 sax(jb1)=-sm(jc,jb2)
8314 sax(jb)=-(sm(ja,jb1)*sax(jb1)+sm(ja,jb2)*sax(jb2))/sm(ja,jb)
8318 psax=p(i,1)*sax(1)+p(i,2)*sax(2)+p(i,3)*sax(3)
8323 ps(is,j)=ps(is,j)+p(i,j)
8326 pms=max(1e-10,ps(1,4)**2-ps(1,1)**2-ps(1,2)**2-ps(1,3)**2)+
8327 &max(1e-10,ps(2,4)**2-ps(2,1)**2-ps(2,2)**2-ps(2,3)**2)
8333 ps(3,j)=ps(1,j)-ps(2,j)
8336 pps=p(i,4)*ps(3,4)-p(i,1)*ps(3,1)-p(i,2)*ps(3,2)-p(i,3)*ps(3,3)
8337 IF(k(i,3).EQ.1) pmdi=2.*(p(i,5)**2-pps)
8338 IF(k(i,3).EQ.2) pmdi=2.*(p(i,5)**2+pps)
8339 IF(pmdi.LT.pmd)
THEN 8346 IF(pmd.LT.-paru(48)*pms)
THEN 8350 ps(is,j)=ps(is,j)-p(im,j)
8351 ps(3-is,j)=ps(3-is,j)+p(im,j)
8360 ps(1,5)=sqrt(max(0.,ps(1,4)**2-ps(1,1)**2-ps(1,2)**2-ps(1,3)**2))
8361 ps(2,5)=sqrt(max(0.,ps(2,4)**2-ps(2,1)**2-ps(2,2)**2-ps(2,3)**2))
8362 pmh=max(ps(1,5),ps(2,5))
8363 pml=min(ps(1,5),ps(2,5))
8370 SUBROUTINE lufowo(H10,H20,H30,H40)
8373 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
8374 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
8375 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
8376 SAVE /lujets/,/ludat1/,/ludat2/
8383 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 110
8384 IF(mstu(41).GE.2)
THEN 8386 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
8387 & kc.EQ.18)
GOTO 110
8388 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
8391 IF(n+np.GE.mstu(4)-mstu(32)-5)
THEN 8392 CALL luerrm(11,
'(LUFOWO:) no more memory left in LUJETS')
8403 p(n+np,4)=sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2)
8411 CALL luerrm(8,
'(LUFOWO:) too few particles for analysis')
8426 cthe=(p(i1,1)*p(i2,1)+p(i1,2)*p(i2,2)+p(i1,3)*p(i2,3))/
8428 h10=h10+p(i1,4)*p(i2,4)*cthe
8429 h20=h20+p(i1,4)*p(i2,4)*(1.5*cthe**2-0.5)
8430 h30=h30+p(i1,4)*p(i2,4)*(2.5*cthe**3-1.5*cthe)
8431 h40=h40+p(i1,4)*p(i2,4)*(4.375*cthe**4-3.75*cthe**2+0.375)
8448 SUBROUTINE lutabu(MTABU)
8453 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
8454 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
8455 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
8456 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
8457 SAVE /lujets/,/ludat1/,/ludat2/,/ludat3/
8458 dimension kfis(100,2),npis(100,0:10),kffs(400),npfs(400,4),
8459 &fevfm(10,4),fm1fm(3,10,4),fm2fm(3,10,4),fmoma(4),fmoms(4),
8460 &fevee(50),fe1ec(50),fe2ec(50),fe1ea(25),fe2ea(25),
8461 &kfdm(8),kfdc(200,0:8),npdc(200)
8462 SAVE nevis,nkfis,kfis,npis,nevfs,nprfs,nfifs,nchfs,nkffs,
8463 &kffs,npfs,nevfm,nmufm,fm1fm,fm2fm,nevee,fe1ec,fe2ec,fe1ea,
8464 &fe2ea,nevdc,nkfdc,nredc,kfdc,npdc
8465 CHARACTER CHAU*16,CHIS(2)*12,CHDC(8)*12
8466 DATA nevis/0/,nkfis/0/,nevfs/0/,nprfs/0/,nfifs/0/,nchfs/0/,
8467 &nkffs/0/,nevfm/0/,nmufm/0/,fm1fm/120*0./,fm2fm/120*0./,
8468 &nevee/0/,fe1ec/50*0./,fe2ec/50*0./,fe1ea/25*0./,fe2ea/25*0./,
8469 &nevdc/0/,nkfdc/0/,nredc/0/
8472 IF(mtabu.EQ.10)
THEN 8477 ELSEIF(mtabu.EQ.11)
THEN 8479 kfm1=2*iabs(mstu(161))
8480 IF(mstu(161).GT.0) kfm1=kfm1-1
8481 kfm2=2*iabs(mstu(162))
8482 IF(mstu(162).GT.0) kfm2=kfm2-1
8486 IF(kfmn.EQ.kfis(i,1).AND.kfmx.EQ.kfis(i,2))
THEN 8489 ELSEIF(kfmn.LT.kfis(i,1).OR.(kfmn.EQ.kfis(i,1).AND.
8490 & kfmx.LT.kfis(i,2)))
THEN 8496 110
IF(ikfis.LT.0)
THEN 8499 IF(nkfis.GE.100)
RETURN 8500 DO 130 i=nkfis,ikfis,-1
8501 kfis(i+1,1)=kfis(i,1)
8502 kfis(i+1,2)=kfis(i,2)
8504 npis(i+1,j)=npis(i,j)
8514 npis(ikfis,0)=npis(ikfis,0)+1
8519 IF(k(i,1).LE.0.OR.k(i,1).GT.12)
THEN 8520 ELSEIF(iabs(k(i,2)).GT.80.AND.iabs(k(i,2)).LE.100)
THEN 8521 ELSEIF(iabs(k(i,2)).GT.100.AND.mod(iabs(k(i,2))/10,10).NE.0)
8526 IF(im.LE.0.OR.im.GT.n)
THEN 8528 ELSEIF(k(im,1).LE.0.OR.k(im,1).GT.20)
THEN 8530 ELSEIF(iabs(k(im,2)).GT.80.AND.iabs(k(im,2)).LE.100)
THEN 8531 ELSEIF(iabs(k(im,2)).GT.100.AND.mod(iabs(k(im,2))/10,10).NE.0)
8543 IF(np.GE.26) npco=10
8544 npis(ikfis,npco)=npis(ikfis,npco)+1
8548 ELSEIF(mtabu.EQ.12)
THEN 8550 WRITE(mstu(11),5000) nevis
8553 IF(kfmn.EQ.0) kfmn=kfis(i,2)
8555 IF(2*kfm1.EQ.kfmn) kfm1=-kfm1
8556 CALL luname(kfm1,chau)
8558 IF(chau(13:13).NE.
' ') chis(1)(12:12)=
'?' 8560 IF(kfis(i,1).EQ.0) kfmx=0
8562 IF(2*kfm2.EQ.kfmx) kfm2=-kfm2
8563 CALL luname(kfm2,chau)
8565 IF(chau(13:13).NE.
' ') chis(2)(12:12)=
'?' 8566 WRITE(mstu(11),5100) chis(1),chis(2),fac*npis(i,0),
8567 & (npis(i,j)/float(npis(i,0)),j=1,10)
8571 ELSEIF(mtabu.EQ.13)
THEN 8575 IF(kfmn.EQ.0) kfmn=kfis(i,2)
8577 IF(2*kfm1.EQ.kfmn) kfm1=-kfm1
8579 IF(kfis(i,1).EQ.0) kfmx=0
8581 IF(2*kfm2.EQ.kfmx) kfm2=-kfm2
8588 p(i,j)=fac*npis(i,j)
8589 v(i,j)=fac*npis(i,j+5)
8604 ELSEIF(mtabu.EQ.20)
THEN 8612 ELSEIF(mtabu.EQ.21)
THEN 8616 IF(k(i,1).LE.0.OR.k(i,1).GT.20.OR.k(i,1).EQ.13)
GOTO 260
8620 IF(k(i,3).LE.0.OR.k(i,3).GT.n)
THEN 8622 ELSEIF(k(k(i,3),1).LE.0.OR.k(k(i,3),1).GT.20)
THEN 8624 ELSEIF(k(k(i,3),2).GE.91.AND.k(k(i,3),2).LE.93)
THEN 8626 ELSEIF(kc.EQ.0)
THEN 8627 ELSEIF(k(k(i,3),1).EQ.13)
THEN 8629 IF(im.LE.0.OR.im.GT.n)
THEN 8631 ELSEIF(k(im,1).LE.0.OR.k(im,1).GT.20)
THEN 8634 ELSEIF(kchg(kc,2).EQ.0)
THEN 8635 kcm=lucomp(k(k(i,3),2))
8637 IF(kchg(kcm,2).NE.0) mpri=1
8640 IF(kc.NE.0.AND.mpri.EQ.1)
THEN 8641 IF(kchg(kc,2).EQ.0) nprfs=nprfs+1
8643 IF(k(i,1).LE.10)
THEN 8645 IF(luchge(k(i,2)).NE.0) nchfs=nchfs+1
8650 kfs=3-isign(1,k(i,2))-mpri
8652 IF(kfa.EQ.kffs(ip))
THEN 8655 ELSEIF(kfa.LT.kffs(ip))
THEN 8661 220
IF(ikffs.LT.0)
THEN 8664 IF(nkffs.GE.400)
RETURN 8665 DO 240 ip=nkffs,ikffs,-1
8668 npfs(ip+1,j)=npfs(ip,j)
8677 npfs(ikffs,kfs)=npfs(ikffs,kfs)+1
8681 ELSEIF(mtabu.EQ.22)
THEN 8683 WRITE(mstu(11),5200) nevfs,fac*nprfs,fac*nfifs,fac*nchfs
8685 CALL luname(kffs(i),chau)
8688 IF(kc.NE.0) mdcyf=mdcy(kc,1)
8689 WRITE(mstu(11),5300) kffs(i),chau,mdcyf,(fac*npfs(i,j),j=1,4),
8690 & fac*(npfs(i,1)+npfs(i,2)+npfs(i,3)+npfs(i,4))
8694 ELSEIF(mtabu.EQ.23)
THEN 8701 k(i,5)=npfs(i,1)+npfs(i,2)+npfs(i,3)+npfs(i,4)
8703 p(i,j)=fac*npfs(i,j)
8724 ELSEIF(mtabu.EQ.30)
THEN 8737 ELSEIF(mtabu.EQ.31)
THEN 8742 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 410
8743 IF(mstu(41).GE.2)
THEN 8745 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
8746 & kc.EQ.18)
GOTO 410
8747 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
8751 IF(mstu(42).EQ.1.AND.k(i,2).NE.22) pmr=ulmass(211)
8752 IF(mstu(42).GE.2) pmr=p(i,5)
8753 pr=max(1e-20,pmr**2+p(i,1)**2+p(i,2)**2)
8754 yeta=sign(log(min((sqrt(pr+p(i,3)**2)+abs(p(i,3)))/sqrt(pr),
8756 IF(abs(yeta).GT.paru(57))
GOTO 410
8757 phi=ulangl(p(i,1),p(i,2))
8758 iyeta=512.*(yeta+paru(57))/(2.*paru(57))
8759 iyeta=max(0,min(511,iyeta))
8760 iphi=512.*(phi+paru(1))/paru(2)
8761 iphi=max(0,min(511,iphi))
8764 iyep=iyep+4**ib*(2*mod(iyeta/2**ib,2)+mod(iphi/2**ib,2))
8768 IF(nupp.GT.mstu(4)-5-mstu(32))
THEN 8769 CALL luerrm(11,
'(LUTABU:) no more memory left in LUJETS')
8773 IF(nupp.EQ.nlow+1)
THEN 8778 DO 350 i1=nupp-1,nlow+1,-1
8779 IF(iyeta.GE.k(i1,1))
GOTO 360
8783 DO 370 i1=nupp-1,nlow+1,-1
8784 IF(iphi.GE.k(i1,2))
GOTO 380
8788 DO 390 i1=nupp-1,nlow+1,-1
8789 IF(iyep.GE.k(i1,3))
GOTO 400
8807 IF(im.LE.2) ibin=2**(10-ib)
8808 IF(im.EQ.3) ibin=4**(10-ib)
8809 iagr=k(nlow+1,im)/ibin
8811 DO 440 i=nlow+2,nupp+1
8813 IF(icut.EQ.iagr)
THEN 8817 ELSEIF(nagr.EQ.2)
THEN 8818 fevfm(ib,1)=fevfm(ib,1)+2.
8819 ELSEIF(nagr.EQ.3)
THEN 8820 fevfm(ib,1)=fevfm(ib,1)+6.
8821 fevfm(ib,2)=fevfm(ib,2)+6.
8822 ELSEIF(nagr.EQ.4)
THEN 8823 fevfm(ib,1)=fevfm(ib,1)+12.
8824 fevfm(ib,2)=fevfm(ib,2)+24.
8825 fevfm(ib,3)=fevfm(ib,3)+24.
8827 fevfm(ib,1)=fevfm(ib,1)+nagr*(nagr-1.)
8828 fevfm(ib,2)=fevfm(ib,2)+nagr*(nagr-1.)*(nagr-2.)
8829 fevfm(ib,3)=fevfm(ib,3)+nagr*(nagr-1.)*(nagr-2.)*(nagr-3.)
8830 fevfm(ib,4)=fevfm(ib,4)+nagr*(nagr-1.)*(nagr-2.)*(nagr-3.)*
8842 IF(fevfm(1,ip).LT.0.5)
THEN 8844 ELSEIF(im.LE.2)
THEN 8845 fevfm(ib,ip)=2.**((ib-1)*ip)*fevfm(ib,ip)/fevfm(1,ip)
8847 fevfm(ib,ip)=4.**((ib-1)*ip)*fevfm(ib,ip)/fevfm(1,ip)
8849 fm1fm(im,ib,ip)=fm1fm(im,ib,ip)+fevfm(ib,ip)
8850 fm2fm(im,ib,ip)=fm2fm(im,ib,ip)+fevfm(ib,ip)**2
8854 nmufm=nmufm+(nupp-nlow)
8858 ELSEIF(mtabu.EQ.32)
THEN 8860 IF(mstu(42).LE.0)
WRITE(mstu(11),5400) nevfm,
'eta' 8861 IF(mstu(42).EQ.1)
WRITE(mstu(11),5400) nevfm,
'ypi' 8862 IF(mstu(42).GE.2)
WRITE(mstu(11),5400) nevfm,
'y ' 8864 WRITE(mstu(11),5500)
8867 IF(im.NE.2) byeta=byeta/2**(ib-1)
8869 IF(im.NE.1) bphi=bphi/2**(ib-1)
8870 IF(im.LE.2) bnave=fac*nmufm/float(2**(ib-1))
8871 IF(im.EQ.3) bnave=fac*nmufm/float(4**(ib-1))
8873 fmoma(ip)=fac*fm1fm(im,ib,ip)
8874 fmoms(ip)=sqrt(max(0.,fac*(fac*fm2fm(im,ib,ip)-fmoma(ip)**2)))
8876 WRITE(mstu(11),5600) byeta,bphi,bnave,(fmoma(ip),fmoms(ip),
8882 ELSEIF(mtabu.EQ.33)
THEN 8890 IF(im.NE.2) k(i,3)=2**(ib-1)
8892 IF(im.NE.1) k(i,4)=2**(ib-1)
8894 p(i,1)=2.*paru(57)/k(i,3)
8895 v(i,1)=paru(2)/k(i,4)
8897 p(i,ip+1)=fac*fm1fm(im,ib,ip)
8898 v(i,ip+1)=sqrt(max(0.,fac*(fac*fm2fm(im,ib,ip)-p(i,ip+1)**2)))
8914 ELSEIF(mtabu.EQ.40)
THEN 8926 ELSEIF(mtabu.EQ.41)
THEN 8932 IF(k(i,1).LE.0.OR.k(i,1).GT.10)
GOTO 570
8933 IF(mstu(41).GE.2)
THEN 8935 IF(kc.EQ.0.OR.kc.EQ.12.OR.kc.EQ.14.OR.kc.EQ.16.OR.
8936 & kc.EQ.18)
GOTO 570
8937 IF(mstu(41).GE.3.AND.kchg(kc,2).EQ.0.AND.luchge(k(i,2)).EQ.0)
8941 IF(mstu(42).EQ.1.AND.k(i,2).NE.22) pmr=ulmass(211)
8942 IF(mstu(42).GE.2) pmr=p(i,5)
8943 IF(nupp.GT.mstu(4)-5-mstu(32))
THEN 8944 CALL luerrm(11,
'(LUTABU:) no more memory left in LUJETS')
8951 p(nupp,4)=sqrt(pmr**2+p(i,1)**2+p(i,2)**2+p(i,3)**2)
8952 p(nupp,5)=max(1e-10,sqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2))
8955 IF(nupp.EQ.nlow)
RETURN 8958 fac=(2./ecm**2)*50./paru(1)
8962 DO 600 i1=nlow+2,nupp
8963 DO 590 i2=nlow+1,i1-1
8964 cthe=(p(i1,1)*p(i2,1)+p(i1,2)*p(i2,2)+p(i1,3)*p(i2,3))/
8966 the=acos(max(-1.,min(1.,cthe)))
8967 ithe=max(1,min(50,1+int(50.*the/paru(1))))
8968 fevee(ithe)=fevee(ithe)+fac*p(i1,4)*p(i2,4)
8972 fe1ec(j)=fe1ec(j)+fevee(j)
8973 fe2ec(j)=fe2ec(j)+fevee(j)**2
8974 fe1ec(51-j)=fe1ec(51-j)+fevee(51-j)
8975 fe2ec(51-j)=fe2ec(51-j)+fevee(51-j)**2
8976 fe1ea(j)=fe1ea(j)+(fevee(51-j)-fevee(j))
8977 fe2ea(j)=fe2ea(j)+(fevee(51-j)-fevee(j))**2
8982 ELSEIF(mtabu.EQ.42)
THEN 8984 WRITE(mstu(11),5700) nevee
8987 fees1=sqrt(max(0.,fac*(fac*fe2ec(j)-feec1**2)))
8988 feec2=fac*fe1ec(51-j)
8989 fees2=sqrt(max(0.,fac*(fac*fe2ec(51-j)-feec2**2)))
8991 feesa=sqrt(max(0.,fac*(fac*fe2ea(j)-feeca**2)))
8992 WRITE(mstu(11),5800) 3.6*(j-1),3.6*j,feec1,fees1,feec2,fees2,
8997 ELSEIF(mtabu.EQ.43)
THEN 9006 v(i,1)=sqrt(max(0.,fac*(fac*fe2ec(i)-p(i,1)**2)))
9007 p(i,2)=fac*fe1ec(51-i)
9008 v(i,2)=sqrt(max(0.,fac*(fac*fe2ec(51-i)-p(i,2)**2)))
9010 v(i,3)=sqrt(max(0.,fac*(fac*fe2ea(i)-p(i,3)**2)))
9011 p(i,4)=paru(1)*(i-1)/50.
9012 p(i,5)=paru(1)*i/50.
9028 ELSEIF(mtabu.EQ.50)
THEN 9034 ELSEIF(mtabu.EQ.51)
THEN 9038 IF(k(i,1).LE.0.OR.k(i,1).GE.6)
GOTO 670
9045 IF(k(i,2).LT.0) kfm=kfm-1
9046 DO 650 ids=nds-1,1,-1
9048 IF(kfm.LT.kfdm(ids))
GOTO 660
9049 kfdm(ids+1)=kfdm(ids)
9057 IF(nds.LT.kfdc(idc,0))
THEN 9060 ELSEIF(nds.EQ.kfdc(idc,0))
THEN 9062 IF(kfdm(i).LT.kfdc(idc,i))
THEN 9065 ELSEIF(kfdm(i).GT.kfdc(idc,i))
THEN 9074 700
IF(ikfdc.LT.0)
THEN 9076 ELSEIF(nkfdc.GE.200)
THEN 9080 DO 720 idc=nkfdc,ikfdc,-1
9081 npdc(idc+1)=npdc(idc)
9083 kfdc(idc+1,i)=kfdc(idc,i)
9089 kfdc(ikfdc,i)=kfdm(i)
9093 npdc(ikfdc)=npdc(ikfdc)+1
9096 ELSEIF(mtabu.EQ.52)
THEN 9098 WRITE(mstu(11),5900) nevdc
9100 DO 740 i=1,kfdc(idc,0)
9103 IF(2*kf.NE.kfm) kf=-kf
9104 CALL luname(kf,chau)
9106 IF(chau(13:13).NE.
' ') chdc(i)(12:12)=
'?' 9108 WRITE(mstu(11),6000) fac*npdc(idc),(chdc(i),i=1,kfdc(idc,0))
9110 IF(nredc.NE.0)
WRITE(mstu(11),6100) fac*nredc
9113 ELSEIF(mtabu.EQ.53)
THEN 9120 k(idc,5)=kfdc(idc,0)
9125 DO 770 i=1,kfdc(idc,0)
9128 IF(2*kf.NE.kfm) kf=-kf
9129 IF(i.LE.5) p(idc,i)=kf
9130 IF(i.GE.6) v(idc,i-5)=kf
9132 v(idc,5)=fac*npdc(idc)
9148 5000
FORMAT(///20x,
'Event statistics - initial state'/
9149 &20x,
'based on an analysis of ',i6,
' events'//
9150 &3x,
'Main flavours after',8x,
'Fraction',4x,
'Subfractions ',
9151 &
'according to fragmenting system multiplicity'/
9152 &4x,
'hard interaction',24x,
'1',7x,
'2',7x,
'3',7x,
'4',7x,
'5',
9153 &6x,
'6-7',5x,
'8-10',3x,
'11-15',3x,
'16-25',4x,
'>25'/)
9154 5100
FORMAT(3x,a12,1x,a12,f10.5,1x,10f8.4)
9155 5200
FORMAT(///20x,
'Event statistics - final state'/
9156 &20x,
'based on an analysis of ',i7,
' events'//
9157 &5x,
'Mean primary multiplicity =',f10.4/
9158 &5x,
'Mean final multiplicity =',f10.4/
9159 &5x,
'Mean charged multiplicity =',f10.4//
9160 &5x,
'Number of particles produced per event (directly and via ',
9161 &
'decays/branchings)'/
9162 &5x,
'KF Particle/jet MDCY',10x,
'Particles',13x,
'Antiparticles',
9163 'Total'/35x,
'prim seco prim seco'/)
9164 5300
FORMAT(1x,i6,4x,a16,i2,5(1x,f11.6))
9165 5400
FORMAT(///20x,
'Factorial moments analysis of multiplicity'/
9166 &20x,
'based on an analysis of ',i6,
' events'//
9167 &3x,
'delta-',a3,
' delta-phi <n>/bin',10x,
'<F2>',18x,
'<F3>',
9168 &18x,
'<F4>',18x,
'<F5>'/35x,4(
' value error '))
9170 5600
FORMAT(2x,2f10.4,f12.4,4(f12.4,f10.4))
9171 5700
FORMAT(///20x,
'Energy-Energy Correlation and Asymmetry'/
9172 &20x,
'based on an analysis of ',i6,
' events'//
9173 &2x,
'theta range',8x,
'EEC(theta)',8x,
'EEC(180-theta)',7x,
9174 &
'EECA(theta)'/2x,
'in degrees ',3(
' value error')/)
9175 5800
FORMAT(2x,f4.1,
' - ',f4.1,3(f11.4,f9.4))
9176 5900
FORMAT(///20x,
'Decay channel analysis - final state'/
9177 &20x,
'based on an analysis of ',i6,
' events'//
9178 &2x,
'Probability',10x,
'Complete final state'/)
9179 6000
FORMAT(2x,f9.5,5x,8(a12,1x))
9180 6100
FORMAT(2x,f9.5,5x,
'into other channels (more than 8 particles ',
9181 &
'or table overflow)')
9188 SUBROUTINE lueevt(KFL,ECM)
9191 IMPLICIT DOUBLE PRECISION(d)
9192 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
9193 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9194 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
9195 SAVE /lujets/,/ludat1/,/ludat2/
9198 IF(mstu(12).GE.1)
CALL lulist(0)
9199 IF(kfl.LT.0.OR.kfl.GT.8)
THEN 9200 CALL luerrm(16,
'(LUEEVT:) called with unknown flavour code')
9201 IF(mstu(21).GE.1)
RETURN 9203 IF(kfl.LE.5) ecmmin=parj(127)+2.02*parf(100+max(1,kfl))
9204 IF(kfl.GE.6) ecmmin=parj(127)+2.02*pmas(kfl,1)
9205 IF(ecm.LT.ecmmin)
THEN 9206 CALL luerrm(16,
'(LUEEVT:) called with too small CM energy')
9207 IF(mstu(21).GE.1)
RETURN 9211 IF(mstj(109).EQ.2.AND.mstj(110).NE.1)
THEN 9213 &
'(LUEEVT:) MSTJ(109) value requires MSTJ(110) = 1')
9216 IF(mstj(109).EQ.2.AND.mstj(111).NE.0)
THEN 9218 &
'(LUEEVT:) MSTJ(109) value requires MSTJ(111) = 0')
9224 IF(mstj(108).EQ.2.AND.(mstj(101).EQ.0.OR.mstj(101).EQ.1))
9227 IF(mstu(111).EQ.2) paru(112)=parj(122)
9228 IF(mstj(116).GT.0.AND.(mstj(116).GE.2.OR.abs(ecm-parj(151)).GE.
9229 &parj(139).OR.10*mstj(102)+kfl.NE.mstj(119)))
CALL luxtot(kfl,ecm,
9231 IF(mstj(116).GE.3) mstj(116)=1
9237 IF(ntry.GT.100)
THEN 9238 CALL luerrm(14,
'(LUEEVT:) caught in an infinite loop')
9243 IF(mstj(115).GE.2)
THEN 9245 CALL lu1ent(nc-1,11,0.5*ecm,0.,0.)
9247 CALL lu1ent(nc,-11,0.5*ecm,paru(1),0.)
9254 IF(mstj(107).GE.1.AND.mstj(116).GE.1)
CALL luradk(ecm,mk,pak,
9256 IF(mk.EQ.1) ecmc=sqrt(ecm*(ecm-2.*pak))
9257 IF(mstj(115).GE.1.AND.mk.EQ.1)
THEN 9259 CALL lu1ent(nc,22,pak,thek,phik)
9260 k(nc,3)=min(mstj(115)/2,1)
9264 IF(mstj(115).GE.3)
THEN 9267 IF(mstj(102).EQ.2) kf=23
9271 CALL lu1ent(nc,kf,ecmc,0.,0.)
9278 CALL luxkfl(kfl,ecm,ecmc,kflc)
9279 IF(kflc.EQ.0)
GOTO 100
9280 CALL luxjet(ecmc,njet,cut)
9282 IF(njet.EQ.4)
CALL lux4jt(njet,cut,kflc,ecmc,kfln,x1,x2,x4,
9284 IF(njet.EQ.3)
CALL lux3jt(njet,cut,kflc,ecmc,x1,x3)
9285 IF(njet.EQ.2) mstj(120)=1
9288 IF(njet.EQ.2.AND.mstj(101).NE.5)
CALL lu2ent(nc+1,kflc,-kflc,ecmc)
9289 IF(njet.EQ.2.AND.mstj(101).EQ.5)
CALL lu2ent(-(nc+1),kflc,-kflc,
9291 IF(njet.EQ.3)
CALL lu3ent(nc+1,kflc,21,-kflc,ecmc,x1,x3)
9292 IF(njet.EQ.4.AND.kfln.EQ.21)
CALL lu4ent(nc+1,kflc,kfln,kfln,
9293 &-kflc,ecmc,x1,x2,x4,x12,x14)
9294 IF(njet.EQ.4.AND.kfln.NE.21)
CALL lu4ent(nc+1,kflc,-kfln,kfln,
9295 &-kflc,ecmc,x1,x2,x4,x12,x14)
9296 IF(mstu(24).NE.0)
GOTO 100
9298 k(ip,3)=k(ip,3)+min(mstj(115)/2,1)+(mstj(115)/3)*(nc-1)
9302 IF(mstj(106).EQ.1)
THEN 9303 CALL luxdif(nc,njet,kflc,ecmc,chi,the,phi)
9304 CALL ludbrb(nc+1,n,0.,chi,0d0,0d0,0d0)
9305 CALL ludbrb(nc+1,n,the,phi,0d0,0d0,0d0)
9311 nmin=nc+1-mstj(115)/3
9312 CALL ludbrb(nmin,n,0.,-phik,0d0,0d0,0d0)
9313 CALL ludbrb(nmin,n,alpk,0.,dbek*sin(thek),0d0,dbek*cos(thek))
9314 CALL ludbrb(nmin,n,0.,phik,0d0,0d0,0d0)
9318 IF(mstj(101).EQ.5)
THEN 9319 CALL lushow(n-1,n,ecmc)
9321 IF(mstj(105).EQ.-1) mstj(14)=-1
9322 IF(mstj(105).GE.0) mstu(28)=0
9325 IF(mstj(105).GE.0.AND.mstu(28).NE.0)
GOTO 100
9329 IF(mstj(105).EQ.1)
CALL luexec
9338 SUBROUTINE luxtot(KFL,ECM,XTOT)
9342 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9343 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
9344 SAVE /ludat1/,/ludat2/
9348 mstj(119)=10*mstj(102)+kfl
9349 IF(mstj(111).EQ.0)
THEN 9351 ELSEIF(mstu(111).EQ.0)
THEN 9352 parj(168)=min(1.,max(parj(128),exp(-12.*paru(1)/
9353 & ((33.-2.*mstu(112))*paru(111)))))
9354 q2r=parj(168)*ecm**2
9356 parj(168)=min(1.,max(parj(128),paru(112)/ecm,
9357 & (2.*paru(112)/ecm)**2))
9358 q2r=parj(168)*ecm**2
9360 alspi=ulalps(q2r)/paru(1)
9363 IF(mstj(101).EQ.0.OR.mstj(109).EQ.1)
THEN 9365 ELSEIF(iabs(mstj(101)).EQ.1.AND.mstj(109).EQ.0)
THEN 9367 ELSEIF(mstj(109).EQ.0)
THEN 9368 rqcd=1.+alspi+(1.986-0.115*mstu(118))*alspi**2
9369 IF(mstj(111).EQ.1) rqcd=max(1.,rqcd+(33.-2.*mstu(112))/12.*
9370 & log(parj(168))*alspi**2)
9371 ELSEIF(iabs(mstj(101)).EQ.1)
THEN 9372 rqcd=1.+(3./4.)*alspi
9374 rqcd=1.+(3./4.)*alspi-(3./32.+0.519*mstu(118))*alspi**2
9378 IF(mstj(102).GE.3)
THEN 9379 rva=3.*(3.+(4.*paru(102)-1.)**2)+6.*rqcd*(2.+(1.-8.*paru(102)/
9380 & 3.)**2+(4.*paru(102)/3.-1.)**2)
9383 IF(mod(mstj(103),2).EQ.1) vq=sqrt(max(0.,1.-(2.*ulmass(kflc)/
9385 IF(kflc.EQ.5) vf=4.*paru(102)/3.-1.
9386 IF(kflc.EQ.6) vf=1.-8.*paru(102)/3.
9387 rva=rva+3.*rqcd*(0.5*vq*(3.-vq**2)*vf**2+vq**3)
9389 parj(124)=paru(101)*parj(123)*rva/(48.*paru(102)*(1.-paru(102)))
9393 poll=1.-parj(131)*parj(132)
9394 IF(mstj(102).GE.2)
THEN 9395 sff=1./(16.*paru(102)*(1.-paru(102)))
9396 sfw=ecm**4/((ecm**2-parj(123)**2)**2+(parj(123)*parj(124))**2)
9397 sfi=sfw*(1.-(parj(123)/ecm)**2)
9399 sf1i=sff*(ve*poll+parj(132)-parj(131))
9400 sf1w=sff**2*((ve**2+1.)*poll+2.*ve*(parj(132)-parj(131)))
9410 DO 110 kflc=1,max(mstj(104),kfl)
9411 IF(kfl.GT.0.AND.kflc.NE.kfl)
GOTO 110
9414 IF(ecm.LT.2.*pmq+parj(127))
GOTO 110
9417 IF(mod(mstj(103),2).EQ.1) vq=sqrt(1.-(2.*pmq/ecm)**2)
9420 rqq=rqq+3.*qf**2*poll
9421 IF(mstj(102).LE.1)
THEN 9422 rtot=rtot+3.*0.5*vq*(3.-vq**2)*qf**2*poll
9424 vf=sign(1.,qf)-4.*qf*paru(102)
9425 rqv=rqv-6.*qf*vf*sf1i
9426 rva=rva+3.*(vf**2+1.)*sf1w
9427 rtot=rtot+3.*(0.5*vq*(3.-vq**2)*(qf**2*poll-2.*qf*vf*hf1i+
9428 & vf**2*hf1w)+vq**3*hf1w)
9432 IF(mstj(102).GE.2) rsum=rqq+sfi*rqv+sfw*rva
9439 parj(145)=parj(141)*86.8/ecm**2
9440 parj(146)=parj(142)*86.8/ecm**2
9441 parj(147)=parj(143)*86.8/ecm**2
9447 IF(mstj(107).LE.0)
RETURN 9451 xku=min(parj(136),1.-(2.*parj(127)/ecm)**2)
9452 ale=2.*log(ecm/ulmass(11))-1.
9453 sigv=ale/3.+2.*log(ecm**2/(ulmass(13)*ulmass(15)))/3.-4./3.+
9454 &1.526*log(ecm**2/0.932)
9457 IF(mstj(102).LE.1)
THEN 9458 sigv=1.5*ale-0.5+paru(1)**2/3.+2.*sigv
9459 sigs=ale*(2.*log(xkl)-log(1.-xkl)-xkl)
9460 sigh=ale*(2.*log(xku/xkl)-log((1.-xku)/(1.-xkl))-(xku-xkl))
9464 szm=1.-(parj(123)/ecm)**2
9465 szw=parj(123)*parj(124)/ecm**2
9467 parj(162)=-(rqq+rqv+rva)/rsum
9468 parj(163)=(rqv*(1.-0.5*szm-sfi)+rva*(1.5-szm-sfw))/rsum
9469 parj(164)=(rqv*szw**2*(1.-2.*sfw)+rva*(2.*sfi+szw**2-4.+3.*szm-
9470 & szm**2))/(szw*rsum)
9471 sigv=1.5*ale-0.5+paru(1)**2/3.+((2.*rqq+sfi*rqv)/rsum)*sigv+
9472 & (szw*sfw*rqv/rsum)*paru(1)*20./9.
9473 sigs=ale*(2.*log(xkl)+parj(161)*log(1.-xkl)+parj(162)*xkl+
9474 & parj(163)*log(((xkl-szm)**2+szw**2)/(szm**2+szw**2))+
9475 & parj(164)*(atan((xkl-szm)/szw)-atan(-szm/szw)))
9476 sigh=ale*(2.*log(xku/xkl)+parj(161)*log((1.-xku)/(1.-xkl))+
9477 & parj(162)*(xku-xkl)+parj(163)*log(((xku-szm)**2+szw**2)/
9478 & ((xkl-szm)**2+szw**2))+parj(164)*(atan((xku-szm)/szw)-
9479 & atan((xkl-szm)/szw)))
9483 parj(160)=sigh/(paru(1)/paru(101)+sigv+sigs+sigh)
9484 parj(157)=rsum*(1.+(paru(101)/paru(1))*(sigv+sigs+sigh))*rqcd
9486 parj(148)=parj(144)*86.8/ecm**2
9494 SUBROUTINE luradk(ECM,MK,PAK,THEK,PHIK,ALPK)
9497 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9501 fxk(xx)=2.*log(xx)+parj(161)*log(1.-xx)+parj(162)*xx+
9502 &parj(163)*log((xx-szm)**2+szw**2)+parj(164)*atan((xx-szm)/szw)
9507 IF(parj(160).LT.rlu(0))
RETURN 9512 xku=min(parj(136),1.-(2.*parj(127)/ecm)**2)
9513 IF(mstj(102).LE.1)
THEN 9514 100 xk=1./(1.+(1./xkl-1.)*((1./xku-1.)/(1./xkl-1.))**rlu(0))
9515 IF(1.+(1.-xk)**2.LT.2.*rlu(0))
GOTO 100
9519 szm=1.-(parj(123)/ecm)**2
9520 szw=parj(123)*parj(124)/ecm**2
9523 fxkd=1e-4*(fxku-fxkl)
9524 fxkr=fxkl+rlu(0)*(fxku-fxkl)
9529 IF(fxkv.GT.fxkr)
THEN 9536 IF(nxk.LT.15.AND.fxku-fxkl.GT.fxkd)
GOTO 110
9537 xk=xkl+(xku-xkl)*(fxkr-fxkl)/(fxku-fxkl)
9542 pme=2.*(ulmass(11)/ecm)**2
9543 120 cthm=pme*(2./pme)**rlu(0)
9544 IF(1.-(xk**2*cthm*(1.-0.5*cthm)+2.*(1.-xk)*pme/max(pme,
9545 &cthm*(1.-0.5*cthm)))/(1.+(1.-xk)**2).LT.rlu(0))
GOTO 120
9547 IF(rlu(0).GT.0.5) cthe=-cthe
9548 sthe=sqrt(max(0.,(cthm-pme)*(2.-cthm)))
9549 thek=ulangl(cthe,sthe)
9554 IF(0.5*(2.-xk*(1.-cthe))**2/((2.-xk)**2+(xk*cthe)**2).GT.
9556 alpk=asin(sgn*sthe*(xk-sgn*(2.*sqrt(1.-xk)-2.+xk)*cthe)/
9557 &(2.-xk*(1.-sgn*cthe)))
9564 SUBROUTINE luxkfl(KFL,ECM,ECMC,KFLC)
9567 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9568 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
9569 SAVE /ludat1/,/ludat2/
9572 IF(mstj(102).LE.1)
THEN 9575 poll=1.-parj(131)*parj(132)
9576 sff=1./(16.*paru(102)*(1.-paru(102)))
9577 sfw=ecmc**4/((ecmc**2-parj(123)**2)**2+(parj(123)*parj(124))**2)
9590 IF(ntry.GT.100)
THEN 9591 CALL luerrm(14,
'(LUXKFL:) caught in an infinite loop')
9596 IF(kfl.LE.0) kflc=1+int(mstj(104)*rlu(0))
9599 IF(ecm.LT.2.*pmq+parj(127))
GOTO 100
9602 IF(mod(mstj(103),2).EQ.1) vq=sqrt(max(0.,1.-(2.*pmq/ecmc)**2))
9605 IF(mstj(102).LE.1)
THEN 9607 rfv=0.5*vq*(3.-vq**2)*qf**2
9609 vf=sign(1.,qf)-4.*qf*paru(102)
9610 rf=qf**2*poll-2.*qf*vf*hf1i+(vf**2+1.)*hf1w
9611 rfv=0.5*vq*(3.-vq**2)*(qf**2*poll-2.*qf*vf*hf1i+vf**2*hf1w)+
9613 IF(rfv.GT.0.) parj(171)=min(1.,vq**3*hf1w/rfv)
9617 IF(kfl.LE.0.AND.rf.LT.rlu(0)*rfmax)
GOTO 100
9618 parj(158)=parj(158)+1.
9619 IF(ecmc.LT.2.*pmq+parj(127).OR.rfv.LT.rlu(0)*rf) kflc=0
9620 IF(mstj(107).LE.0.AND.kflc.EQ.0)
GOTO 100
9621 IF(kflc.NE.0) parj(159)=parj(159)+1.
9622 parj(144)=parj(157)*parj(159)/parj(158)
9623 parj(148)=parj(144)*86.8/ecm**2
9630 SUBROUTINE luxjet(ECM,NJET,CUT)
9633 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9638 DATA zhut/3.0922, 6.2291, 7.4782, 7.8440, 8.2560/
9641 IF(mstj(101).EQ.0.OR.mstj(101).EQ.5)
THEN 9645 ELSEIF(mstj(109).EQ.0.OR.mstj(109).EQ.2)
THEN 9647 IF(mstj(109).EQ.2) cf=1.
9648 IF(mstj(111).EQ.0)
THEN 9651 ELSEIF(mstu(111).EQ.0)
THEN 9652 parj(169)=min(1.,parj(129))
9654 parj(168)=min(1.,max(parj(128),exp(-12.*paru(1)/
9655 & ((33.-2.*mstu(112))*paru(111)))))
9656 q2r=parj(168)*ecm**2
9658 parj(169)=min(1.,max(parj(129),(2.*paru(112)/ecm)**2))
9660 parj(168)=min(1.,max(parj(128),paru(112)/ecm,
9661 & (2.*paru(112)/ecm)**2))
9662 q2r=parj(168)*ecm**2
9666 alspi=(3./4.)*cf*ulalps(q2r)/paru(1)
9667 IF(iabs(mstj(101)).EQ.1)
THEN 9669 ELSEIF(mstj(109).EQ.0)
THEN 9670 rqcd=1.+alspi+(1.986-0.115*mstu(118))*alspi**2
9671 IF(mstj(111).EQ.1) rqcd=max(1.,rqcd+(33.-2.*mstu(112))/12.*
9672 & log(parj(168))*alspi**2)
9674 rqcd=1.+alspi-(3./32.+0.519*mstu(118))*(4.*alspi/3.)**2
9678 alspi=(3./4.)*cf*ulalps(q2)/paru(1)
9679 cut=max(0.001,parj(125),(parj(126)/ecm)**2)
9680 IF(iabs(mstj(101)).LE.1.OR.(mstj(109).EQ.0.AND.mstj(111).EQ.0))
9681 & cut=max(cut,exp(-sqrt(0.75/alspi))/2.)
9682 IF(mstj(110).EQ.2) cut=max(0.01,min(0.05,cut))
9685 100
IF(mstj(101).EQ.0.OR.cut.GE.0.25)
THEN 9688 parj(152)=(2.*alspi/3.)*((3.-6.*cut+2.*log(cut))*
9689 & log(cut/(1.-2.*cut))+(2.5+1.5*cut-6.571)*(1.-3.*cut)+
9690 & 5.833*(1.-3.*cut)**2-3.894*(1.-3.*cut)**3+
9691 & 1.342*(1.-3.*cut)**4)/rqcd
9692 IF(mstj(109).EQ.2.AND.(mstj(101).EQ.2.OR.mstj(101).LE.-2))
9697 IF(iabs(mstj(101)).LE.1.OR.mstj(101).EQ.3.OR.mstj(109).EQ.2.OR.
9700 ELSEIF(mstj(110).LE.1)
THEN 9702 parj(153)=alspi**2*ct**2*(2.419+0.5989*ct+0.6782*ct**2-
9703 & 0.2661*ct**3+0.01159*ct**4)/rqcd
9706 ELSEIF(mstj(110).EQ.2)
THEN 9709 IF(abs(cut-0.01*iy).LT.0.0001) iza=iy
9715 zhurat=zhut(iz)+(100.*cut-iz)*(zhut(iz+1)-zhut(iz))
9717 parj(153)=alspi*parj(152)*zhurat
9721 IF(mstj(111).EQ.1.AND.iabs(mstj(101)).GE.2.AND.mstj(101).NE.3.
9722 & and.cut.LT.0.25) parj(153)=parj(153)+(33.-2.*mstu(112))/12.*
9723 & log(parj(169))*alspi*parj(152)
9726 IF(iabs(mstj(101)).LE.1.OR.cut.GE.0.125)
THEN 9730 IF(cut.LE.0.018)
THEN 9731 xqqgg=6.349-4.330*ct+0.8304*ct**2
9732 IF(mstj(109).EQ.2) xqqgg=(4./3.)**2*(3.035-2.091*ct+
9734 xqqqq=1.25*(-0.1080+0.01486*ct+0.009364*ct**2)
9735 IF(mstj(109).EQ.2) xqqqq=8.*xqqqq
9737 xqqgg=-0.09773+0.2959*ct-0.2764*ct**2+0.08832*ct**3
9738 IF(mstj(109).EQ.2) xqqgg=(4./3.)**2*(-0.04079+0.1340*ct-
9739 & 0.1326*ct**2+0.04365*ct**3)
9740 xqqqq=1.25*(0.003661-0.004888*ct-0.001081*ct**2+0.002093*
9742 IF(mstj(109).EQ.2) xqqqq=8.*xqqqq
9744 parj(154)=alspi**2*ct**2*(xqqgg+xqqqq)/rqcd
9745 parj(155)=xqqqq/(xqqgg+xqqqq)
9749 IF(mstj(111).EQ.1.AND.parj(152)+parj(153).LT.0..AND.
9750 & parj(169).LT.0.99)
THEN 9751 parj(169)=min(1.,1.2*parj(169))
9753 alspi=(3./4.)*cf*ulalps(q2)/paru(1)
9758 IF(parj(152)+parj(153)+parj(154).GE.1)
THEN 9759 IF(mstj(110).EQ.2.AND.cut.GT.0.0499.AND.mstj(111).EQ.1.AND.
9760 & parj(169).LT.0.99)
THEN 9761 parj(169)=min(1.,1.2*parj(169))
9763 alspi=(3./4.)*cf*ulalps(q2)/paru(1)
9765 ELSEIF(mstj(110).EQ.2.AND.cut.GT.0.0499)
THEN 9767 &
'(LUXJET:) no allowed y cut value for Zhu parametrization')
9769 cut=0.26*(4.*cut)**(parj(152)+parj(153)+parj(154))**(-1./3.)
9770 IF(mstj(110).EQ.2) cut=max(0.01,min(0.05,cut))
9776 alspi=ulalps(ecm**2)/paru(1)
9777 cut=max(0.001,parj(125),(parj(126)/ecm)**2,exp(-3./alspi))
9779 IF(cut.LT.0.25) parj(152)=(alspi/3.)*((1.-2.*cut)*
9780 & log((1.-2.*cut)/cut)+0.5*(9.*cut**2-1.))
9787 IF(mstj(101).EQ.0.OR.mstj(101).EQ.5)
THEN 9789 ELSEIF(mstj(101).LE.0)
THEN 9790 njet=min(4,2-mstj(101))
9794 IF(parj(152)+parj(153)+parj(154).GT.rnj) njet=3
9795 IF(parj(154).GT.rnj) njet=4
9803 SUBROUTINE lux3jt(NJET,CUT,KFL,ECM,X1,X2)
9806 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9808 dimension zhup(5,12)
9811 DATA ((zhup(ic1,ic2),ic2=1,12),ic1=1,5)/
9812 & 18.29, 89.56, 4.541, -52.09, -109.8, 24.90,
9813 & 11.63, 3.683, 17.50, 0.002440, -1.362, -0.3537,
9814 & 11.42, 6.299, -22.55, -8.915, 59.25, -5.855,
9815 & -32.85, -1.054, -16.90, 0.006489, -0.8156, 0.01095,
9816 & 7.847, -3.964, -35.83, 1.178, 29.39, 0.2806,
9817 & 47.82, -12.36, -56.72, 0.04054, -0.4365, 0.6062,
9818 & 5.441, -56.89, -50.27, 15.13, 114.3, -18.19,
9819 & 97.05, -1.890, -139.9, 0.08153, -0.4984, 0.9439,
9820 & -17.65, 51.44, -58.32, 70.95, -255.7, -78.99,
9821 & 476.9, 29.65, -239.3, 0.4745, -1.174, 6.081/
9824 dilog(x)=x+x**2/4.+x**3/9.+x**4/16.+x**5/25.+x**6/36.+x**7/49.
9831 IF(mstj(109).NE.1)
THEN 9834 IF(mstj(109).EQ.0)
THEN 9838 wtmx=min(20.,37.-6.*cutd)
9839 IF(mstj(110).EQ.2) wtmx=2.*(7.5+80.*cut)
9848 als2pi=paru(118)/paru(2)
9850 IF(mstj(111).EQ.1) wtopt=(33.-2.*mstu(112))/6.*log(parj(169))*
9852 wtmax=max(0.,1.+wtopt+als2pi*wtmx)
9856 110 y13l=cutl+cutd*rlu(0)
9857 y23l=cutl+cutd*rlu(0)
9861 IF(y12.LE.cut)
GOTO 110
9862 IF(y13**2+y23**2+2.*y12.LE.2.*rlu(0))
GOTO 110
9865 IF(mstj(101).EQ.2.AND.mstj(110).LE.1)
THEN 9870 IF(y13.LE.0.5) y13i=dilog(y13)
9871 IF(y13.GE.0.5) y13i=1.644934-y13l*y13m-dilog(1.-y13)
9872 IF(y23.LE.0.5) y23i=dilog(y23)
9873 IF(y23.GE.0.5) y23i=1.644934-y23l*y23m-dilog(1.-y23)
9874 IF(y12.LE.0.5) y12i=dilog(y12)
9875 IF(y12.GE.0.5) y12i=1.644934-y12l*y12m-dilog(1.-y12)
9876 wt1=(y13**2+y23**2+2.*y12)/(y13*y23)
9877 wt2=cf*(-2.*(cutl-y12l)**2-3.*cutl-1.+3.289868+
9878 & 2.*(2.*cutl-y12l)*cut/y12)+
9879 & cn*((cutl-y12l)**2-(cutl-y13l)**2-(cutl-y23l)**2-11.*cutl/6.+
9880 & 67./18.+1.644934-(2.*cutl-y12l)*cut/y12+(2.*cutl-y13l)*
9881 & cut/y13+(2.*cutl-y23l)*cut/y23)+
9882 & tr*(2.*cutl/3.-10./9.)+
9883 & cf*(y12/(y12+y13)+y12/(y12+y23)+(y12+y23)/y13+(y12+y13)/y23+
9884 & y13l*(4.*y12**2+2.*y12*y13+4.*y12*y23+y13*y23)/(y12+y23)**2+
9885 & y23l*(4.*y12**2+2.*y12*y23+4.*y12*y13+y13*y23)/(y12+y13)**2)/
9887 & cn*(y13l*y13/(y12+y23)+y23l*y23/(y12+y13))/wt1+
9888 & (cn-2.*cf)*((y12**2+(y12+y13)**2)*(y12l*y23l-y12l*y12m-y23l*
9889 & y23m+1.644934-y12i-y23i)/(y13*y23)+(y12**2+(y12+y23)**2)*
9890 & (y12l*y13l-y12l*y12m-y13l*y13m+1.644934-y12i-y13i)/
9891 & (y13*y23)+(y13**2+y23**2)/(y13*y23*(y13+y23))-
9892 & 2.*y12l*y12**2/(y13+y23)**2-4.*y12l*y12/(y13+y23))/wt1-
9893 & cn*(y13l*y23l-y13l*y13m-y23l*y23m+1.644934-y13i-y23i)
9894 IF(1.+wtopt+als2pi*wt2.LE.0.) mstj(121)=1
9895 IF(1.+wtopt+als2pi*wt2.LE.wtmax*rlu(0))
GOTO 110
9896 parj(156)=(wtopt+als2pi*wt2)/(1.+wtopt+als2pi*wt2)
9898 ELSEIF(mstj(101).EQ.2.AND.mstj(110).EQ.2)
THEN 9904 IF(abs(cut-0.01*iy).LT.0.0001) iza=iy
9908 wt2=zhup(iz,1)+zhup(iz,2)*zx+zhup(iz,3)*zx**2+(zhup(iz,4)+
9909 & zhup(iz,5)*zx)*zy+(zhup(iz,6)+zhup(iz,7)*zx)*zy**2+
9910 & (zhup(iz,8)+zhup(iz,9)*zx)*zy**3+zhup(iz,10)/(zx-zy**2)+
9911 & zhup(iz,11)/(1.-zy)+zhup(iz,12)/zy
9914 wtl=zhup(iz,1)+zhup(iz,2)*zx+zhup(iz,3)*zx**2+(zhup(iz,4)+
9915 & zhup(iz,5)*zx)*zy+(zhup(iz,6)+zhup(iz,7)*zx)*zy**2+
9916 & (zhup(iz,8)+zhup(iz,9)*zx)*zy**3+zhup(iz,10)/(zx-zy**2)+
9917 & zhup(iz,11)/(1.-zy)+zhup(iz,12)/zy
9919 wtu=zhup(iz,1)+zhup(iz,2)*zx+zhup(iz,3)*zx**2+(zhup(iz,4)+
9920 & zhup(iz,5)*zx)*zy+(zhup(iz,6)+zhup(iz,7)*zx)*zy**2+
9921 & (zhup(iz,8)+zhup(iz,9)*zx)*zy**3+zhup(iz,10)/(zx-zy**2)+
9922 & zhup(iz,11)/(1.-zy)+zhup(iz,12)/zy
9923 wt2=wtl+(wtu-wtl)*(100.*cut+1.-iz)
9925 IF(1.+wtopt+2.*als2pi*wt2.LE.0.) mstj(121)=1
9926 IF(1.+wtopt+2.*als2pi*wt2.LE.wtmax*rlu(0))
GOTO 110
9927 parj(156)=(wtopt+2.*als2pi*wt2)/(1.+wtopt+2.*als2pi*wt2)
9934 IF(4.*y23*y13*y12/x3**2.LE.qme) njet=2
9935 IF(mod(mstj(103),4).GE.2.AND.iabs(mstj(101)).LE.1.AND.qme*x3+
9936 & 0.5*qme**2+(0.5*qme+0.25*qme**2)*((1.-x2)/(1.-x1)+
9937 & (1.-x1)/(1.-x2)).GT.(x1**2+x2**2)*rlu(0)) njet=2
9938 IF(mstj(101).EQ.-1.AND.njet.EQ.2)
GOTO 100
9943 140 x3=sqrt(4.*cut**2+rlu(0)*((1.-cut)**2-4.*cut**2))
9944 IF(log((x3-cut)/cut).LE.rlu(0)*log((1.-2.*cut)/cut))
GOTO 140
9945 yd=sign(2.*cut*((x3-cut)/cut)**rlu(0)-x3,rlu(0)-0.5)
9948 IF(4.*(1.-x1)*(1.-x2)*(1.-x3)/x3**2.LE.qme) njet=2
9949 IF(mstj(102).GE.2)
THEN 9950 IF(x3**2-2.*(1.+x3)*(1.-x1)*(1.-x2)*parj(171).LT.
9951 & x3**2*rlu(0)) njet=2
9953 IF(mstj(101).EQ.-1.AND.njet.EQ.2)
GOTO 130
9961 SUBROUTINE lux4jt(NJET,CUT,KFL,ECM,KFLN,X1,X2,X4,X12,X14)
9964 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9966 dimension wta(4),wtb(4),wtc(4),wtd(4),wte(4)
9972 IF(mstj(109).EQ.0)
THEN 9985 IF(parj(155).GT.rlu(0)) it=2
9986 IF(mstj(101).LE.-3) it=-mstj(101)-2
9987 IF(it.EQ.1) wtmx=0.7/cut**2
9988 IF(it.EQ.1.AND.mstj(109).EQ.2) wtmx=0.6/cut**2
9989 IF(it.EQ.2) wtmx=0.1125*cf*tr/cut**2
9993 110 y134=3.*cut+(1.-6.*cut)*rlu(0)
9994 y234=3.*cut+(1.-6.*cut)*rlu(0)
9995 IF(it.EQ.1) y34=(1.-5.*cut)*exp(-ct*rlu(0))
9996 IF(it.EQ.2) y34=cut+(1.-6.*cut)*rlu(0)
9997 IF(y34.LE.y134+y234-1..OR.y34.GE.y134*y234)
GOTO 110
9999 cp=cos(paru(1)*rlu(0))
10002 vb=y34*(1.-y134-y234+y34)/((y134-y34)*(y234-y34))
10003 y24=0.5*(y234-y34)*(1.-4.*sqrt(max(0.,vt*(1.-vt)*vb*(1.-vb)))*
10004 &cp-(1.-2.*vt)*(1.-2.*vb))
10006 y12=1.-y134-y23-y24
10007 IF(min(y12,y13,y14,y23,y24).LE.cut)
GOTO 110
10016 wta(ic)=(y12*y34**2-y13*y24*y34+y14*y23*y34+3.*y12*y23*y34+
10017 & 3.*y12*y14*y34+4.*y12**2*y34-y13*y23*y24+2.*y12*y23*y24-
10018 & y13*y14*y24-2.*y12*y13*y24+2.*y12**2*y24+y14*y23**2+2.*y12*
10019 & y23**2+y14**2*y23+4.*y12*y14*y23+4.*y12**2*y23+2.*y12*y14**2+
10020 & 2.*y12*y13*y14+4.*y12**2*y14+2.*y12**2*y13+2.*y12**3)/(2.*y13*
10021 & y134*y234*y24)+(y24*y34+y12*y34+y13*y24-y14*y23+y12*y13)/(y13*
10022 & y134**2)+2.*y23*(1.-y13)/(y13*y134*y24)+y34/(2.*y13*y24)
10023 wtb(ic)=(y12*y24*y34+y12*y14*y34-y13*y24**2+y13*y14*y24+2.*y12*
10024 & y14*y24)/(y13*y134*y23*y14)+y12*(1.+y34)*y124/(y134*y234*y14*
10025 & y24)-(2.*y13*y24+y14**2+y13*y23+2.*y12*y13)/(y13*y134*y14)+
10026 & y12*y123*y124/(2.*y13*y14*y23*y24)
10027 wtc(ic)=-(5.*y12*y34**2+2.*y12*y24*y34+2.*y12*y23*y34+2.*y12*
10028 & y14*y34+2.*y12*y13*y34+4.*y12**2*y34-y13*y24**2+y14*y23*y24+
10029 & y13*y23*y24+y13*y14*y24-y12*y14*y24-y13**2*y24-3.*y12*y13*y24-
10030 & y14*y23**2-y14**2*y23+y13*y14*y23-3.*y12*y14*y23-y12*y13*y23)/
10031 & (4.*y134*y234*y34**2)+(3.*y12*y34**2-3.*y13*y24*y34+3.*y12*y24*
10032 & y34+3.*y14*y23*y34-y13*y24**2-y12*y23*y34+6.*y12*y14*y34+2.*y12*
10053 wtd(ic)=(y13*y23*y34+y12*y23*y34-y12**2*y34+y13*y23*y24+2.*y12*
10054 & y23*y24-y14*y23**2+y12*y13*y24+y12*y14*y23+y12*y13*y14)/(y13**2*
10074 130
IF(ic.EQ.1.OR.ic.EQ.3.OR.id.EQ.2.OR.id.EQ.3)
THEN 10085 IF(ic.EQ.2.OR.ic.EQ.4.OR.id.EQ.3.OR.id.EQ.4)
THEN 10096 IF(ic.LE.3)
GOTO 120
10097 IF(id.EQ.1.AND.wttot.LT.rlu(0)*wtmx)
GOTO 110
10102 IF(mstj(109).EQ.0.AND.id.EQ.1)
THEN 10103 parj(156)=y34*(2.*(wta(1)+wta(2)+wta(3)+wta(4))+4.*(wtc(1)+
10104 & wtc(2)+wtc(3)+wtc(4)))/(9.*wttot)
10105 IF(wta(2)+wta(4)+2.*(wtc(2)+wtc(4)).GT.rlu(0)*(wta(1)+wta(2)+
10106 & wta(3)+wta(4)+2.*(wtc(1)+wtc(2)+wtc(3)+wtc(4)))) id=2
10107 IF(id.EQ.2)
GOTO 130
10108 ELSEIF(mstj(109).EQ.2.AND.id.EQ.1)
THEN 10109 parj(156)=y34*(wta(1)+wta(2)+wta(3)+wta(4))/(8.*wttot)
10110 IF(wta(2)+wta(4).GT.rlu(0)*(wta(1)+wta(2)+wta(3)+wta(4))) id=2
10111 IF(id.EQ.2)
GOTO 130
10114 IF(mstj(109).EQ.0.AND.0.5*y34*(wtc(1)+wtc(2)+wtc(3)+wtc(4)).GT.
10115 & rlu(0)*wttot) mstj(120)=4
10119 IF(y12.LE.cut+qme) njet=2
10120 IF(njet.EQ.2)
GOTO 150
10121 q12=0.5*(1.-sqrt(1.-qme/y12))
10122 x1=1.-(1.-q12)*y234-q12*y134
10123 x4=1.-(1.-q12)*y134-q12*y234
10125 x12=(1.-q12)*y13+q12*y23
10127 IF(y134*y234/((1.-x1)*(1.-x4)).LE.rlu(0)) njet=2
10132 wtr=rlu(0)*(wtd(1)+wtd(2)+wtd(3)+wtd(4))
10133 IF(wtr.LT.wtd(2)+wtd(3)+wtd(4)) id=2
10134 IF(wtr.LT.wtd(3)+wtd(4)) id=3
10135 IF(wtr.LT.wtd(4)) id=4
10136 IF(id.GE.2)
GOTO 130
10139 parj(156)=cf*tr*(wtd(1)+wtd(2)+wtd(3)+wtd(4))/(16.*wttot)
10140 140 kfln=1+int(5.*rlu(0))
10141 IF(kfln.NE.kfl.AND.0.2*parj(156).LE.rlu(0))
GOTO 140
10142 IF(kfln.EQ.kfl.AND.1.-0.8*parj(156).LE.rlu(0))
GOTO 140
10143 IF(kfln.GT.mstj(104)) njet=2
10145 qmen=(2.*pmqn/ecm)**2
10148 IF(y24.LE.cut+qme.OR.y13.LE.1.1*qmen) njet=2
10149 IF(njet.EQ.2)
GOTO 150
10150 q24=0.5*(1.-sqrt(1.-qme/y24))
10151 q13=0.5*(1.-sqrt(1.-qmen/y13))
10152 x1=1.-(1.-q24)*y123-q24*y134
10153 x4=1.-(1.-q24)*y134-q24*y123
10154 x2=1.-(1.-q13)*y234-q13*y124
10155 x12=(1.-q24)*((1.-q13)*y14+q13*y34)+q24*((1.-q13)*y12+q13*y23)
10157 x34=(1.-q24)*((1.-q13)*y23+q13*y12)+q24*((1.-q13)*y34+q13*y14)
10158 IF(pmq**2+pmqn**2+min(x12,x34)*ecm**2.LE.
10159 & (parj(127)+pmq+pmqn)**2) njet=2
10160 IF(y123*y134/((1.-x1)*(1.-x4)).LE.rlu(0)) njet=2
10162 150
IF(mstj(101).LE.-2.AND.njet.EQ.2)
GOTO 100
10169 SUBROUTINE luxdif(NC,NJET,KFL,ECM,CHI,THE,PHI)
10172 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
10173 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10174 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
10175 SAVE /lujets/,/ludat1/,/ludat2/
10179 poll=1.-parj(131)*parj(132)
10180 pold=parj(132)-parj(131)
10181 IF(mstj(102).LE.1.OR.mstj(109).EQ.1)
THEN 10189 sff=1./(16.*paru(102)*(1.-paru(102)))
10190 sfw=ecm**4/((ecm**2-parj(123)**2)**2+(parj(123)*parj(124))**2)
10191 sfi=sfw*(1.-(parj(123)/ecm)**2)
10195 vf=af-4.*qf*paru(102)
10196 hf1=qf**2*poll-2.*qf*vf*sfi*sff*(ve*poll-ae*pold)+
10197 & (vf**2+af**2)*sfw*sff**2*((ve**2+ae**2)*poll-2.*ve*ae*pold)
10198 hf2=-2.*qf*af*sfi*sff*(ae*poll-ve*pold)+2.*vf*af*sfw*sff**2*
10199 & (2.*ve*ae*poll-(ve**2+ae**2)*pold)
10200 hf3=parj(133)**2*(qf**2-2.*qf*vf*sfi*sff*ve+(vf**2+af**2)*
10201 & sfw*sff**2*(ve**2-ae**2))
10202 hf4=-parj(133)**2*2.*qf*vf*sfw*(parj(123)*parj(124)/ecm**2)*
10209 IF(mstj(103).GE.4.AND.iabs(mstj(101)).LE.1.AND.mstj(102).LE.1.AND.
10212 sigu=4.*sqrt(1.-qme)
10213 sigl=2.*qme*sqrt(1.-qme)
10222 x1=2.*p(nc+1,4)/ecm
10223 x2=2.*p(nc+3,4)/ecm
10225 ecmr=p(nc+1,4)+p(nc+4,4)+sqrt((p(nc+2,1)+p(nc+3,1))**2+
10226 & (p(nc+2,2)+p(nc+3,2))**2+(p(nc+2,3)+p(nc+3,3))**2)
10227 x1=2.*p(nc+1,4)/ecmr
10228 x2=2.*p(nc+4,4)/ecmr
10233 ct12=(x1*x2-2.*x1-2.*x2+2.+qme)/sqrt((x1**2-qme)*(x2**2-qme))
10234 st12=sqrt(1.-ct12**2)
10235 IF(mstj(109).NE.1)
THEN 10236 sigu=2.*x1**2+x2**2*(1.+ct12**2)-qme*(3.+ct12**2-x1-x2)-
10237 & qme*x1/xq+0.5*qme*((x2**2-qme)*st12**2-2.*x2)*xq
10238 sigl=(x2*st12)**2-qme*(3.-ct12**2-2.5*(x1+x2)+x1*x2+qme)+
10239 & 0.5*qme*(x1**2-x1-qme)/xq+0.5*qme*((x2**2-qme)*ct12**2-x2)*xq
10240 sigt=0.5*(x2**2-qme-0.5*qme*(x2**2-qme)/xq)*st12**2
10241 sigi=((1.-0.5*qme*xq)*(x2**2-qme)*st12*ct12+qme*(1.-x1-x2+
10242 & 0.5*x1*x2+0.5*qme)*st12/ct12)/sq2
10243 siga=x2**2*st12/sq2
10244 sigp=2.*(x1**2-x2**2*ct12)
10250 ct13=sqrt(max(0.,1.-(xt/x3)**2))
10251 sigu=(1.-parj(171))*(x3**2-0.5*xt**2)+
10252 & parj(171)*(x3**2-0.5*xt**2-4.*(1.-x1)*(1.-x2)**2/x1)
10253 sigl=(1.-parj(171))*0.5*xt**2+
10254 & parj(171)*0.5*(1.-x1)**2*xt**2
10255 sigt=(1.-parj(171))*0.25*xt**2+
10256 & parj(171)*0.25*xt**2*(1.-2.*x1)
10257 sigi=-(0.5/sq2)*((1.-parj(171))*xt*x3*ct13+
10258 & parj(171)*xt*((1.-2.*x1)*x3*ct13-x1*(x1-x2)))
10259 siga=(0.25/sq2)*xt*(2.*(1.-x1)-x1*x3)
10260 sigp=x3**2-2.*(1.-x1)*(1.-x2)/x1
10269 sigmax=(2.*hf1a+hf3a+hf4a)*abs(sigu)+2.*(hf1a+hf3a+hf4a)*
10270 &abs(sigl)+2.*(hf1a+2.*hf3a+2.*hf4a)*abs(sigt)+2.*sq2*
10271 &(hf1a+2.*hf3a+2.*hf4a)*abs(sigi)+4.*sq2*hf2a*abs(siga)+
10275 100 chi=paru(2)*rlu(0)
10284 c2phi=cos(2.*(phi-parj(134)))
10285 s2phi=sin(2.*(phi-parj(134)))
10286 sig=((1.+cthe**2)*hf1+sthe**2*(c2phi*hf3-s2phi*hf4))*sigu+
10287 &2.*(sthe**2*hf1-sthe**2*(c2phi*hf3-s2phi*hf4))*sigl+
10288 &2.*(sthe**2*c2chi*hf1+((1.+cthe**2)*c2chi*c2phi-2.*cthe*s2chi*
10289 &s2phi)*hf3-((1.+cthe**2)*c2chi*s2phi+2.*cthe*s2chi*c2phi)*hf4)*
10290 &sigt-2.*sq2*(2.*sthe*cthe*cchi*hf1-2.*sthe*(cthe*cchi*c2phi-
10291 &schi*s2phi)*hf3+2.*sthe*(cthe*cchi*s2phi+schi*c2phi)*hf4)*sigi+
10292 &4.*sq2*sthe*cchi*hf2*siga+2.*cthe*hf2*sigp
10293 IF(sig.LT.sigmax*rlu(0))
GOTO 100
10300 SUBROUTINE luonia(KFL,ECM)
10304 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
10305 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10306 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
10307 SAVE /lujets/,/ludat1/,/ludat2/
10310 IF(mstu(12).GE.1)
CALL lulist(0)
10311 IF(kfl.LT.0.OR.kfl.GT.8)
THEN 10312 CALL luerrm(16,
'(LUONIA:) called with unknown flavour code')
10313 IF(mstu(21).GE.1)
RETURN 10315 IF(ecm.LT.parj(127)+2.02*parf(101))
THEN 10316 CALL luerrm(16,
'(LUONIA:) called with too small CM energy')
10317 IF(mstu(21).GE.1)
RETURN 10322 IF(mstj(115).GE.2)
THEN 10324 CALL lu1ent(nc-1,11,0.5*ecm,0.,0.)
10326 CALL lu1ent(nc,-11,0.5*ecm,paru(1),0.)
10330 IF(mstj(115).GE.3.AND.kflc.GE.5)
THEN 10336 CALL lu1ent(nc,kf,ecm,0.,0.)
10347 IF(x3.GE.1..OR.((1.-x1)/(x2*x3))**2+((1.-x2)/(x1*x3))**2+
10348 &((1.-x3)/(x1*x2))**2.LE.2.*rlu(0))
GOTO 100
10351 IF(mstj(101).LE.4)
CALL lu3ent(nc+1,21,21,21,ecm,x1,x3)
10352 IF(mstj(101).GE.5)
CALL lu3ent(-(nc+1),21,21,21,ecm,x1,x3)
10355 mstu(111)=mstj(108)
10356 IF(mstj(108).EQ.2.AND.(mstj(101).EQ.0.OR.mstj(101).EQ.1))
10358 paru(112)=parj(121)
10359 IF(mstu(111).EQ.2) paru(112)=parj(122)
10361 IF(kflc.NE.0) qf=kchg(kflc,1)/3.
10362 rgam=7.2*qf**2*paru(101)/ulalps(ecm**2)
10365 IF(rlu(0).GT.rgam/(1.+rgam))
THEN 10366 IF(1.-max(x1,x2,x3).LE.max((parj(126)/ecm)**2,parj(125)))
10368 IF(njet.EQ.2.AND.mstj(101).LE.4)
CALL lu2ent(nc+1,21,21,ecm)
10369 IF(njet.EQ.2.AND.mstj(101).GE.5)
CALL lu2ent(-(nc+1),21,21,ecm)
10372 ecmc=sqrt(1.-x1)*ecm
10373 IF(ecmc.LT.2.*parj(127))
GOTO 100
10378 IF(mstj(101).GE.5) k(nc+2,4)=mstu(5)*(nc+3)
10379 IF(mstj(101).GE.5) k(nc+2,5)=mstu(5)*(nc+3)
10380 IF(mstj(101).GE.5) k(nc+3,4)=mstu(5)*(nc+2)
10381 IF(mstj(101).GE.5) k(nc+3,5)=mstu(5)*(nc+2)
10383 IF(ecmc.LT.4.*parj(127))
THEN 10387 CALL lu1ent(nc+2,83,0.5*(x2+x3)*ecm,paru(1),0.)
10393 k(ip,3)=k(ip,3)+(mstj(115)/2)+(kflc/5)*(mstj(115)/3)*(nc-1)
10397 IF(mstj(106).EQ.1)
THEN 10399 hf1=1.-parj(131)*parj(132)
10401 ct13=(x1*x3-2.*x1-2.*x3+2.)/(x1*x3)
10402 st13=sqrt(1.-ct13**2)
10403 sigl=0.5*x3**2*((1.-x2)**2+(1.-x3)**2)*st13**2
10404 sigu=(x1*(1.-x1))**2+(x2*(1.-x2))**2+(x3*(1.-x3))**2-sigl
10406 sigi=(sigl*ct13/st13+0.5*x1*x3*(1.-x2)**2*st13)/sq2
10407 sigmax=(2.*hf1+hf3)*abs(sigu)+2.*(hf1+hf3)*abs(sigl)+2.*(hf1+
10408 & 2.*hf3)*abs(sigt)+2.*sq2*(hf1+2.*hf3)*abs(sigi)
10411 120 chi=paru(2)*rlu(0)
10420 c2phi=cos(2.*(phi-parj(134)))
10421 s2phi=sin(2.*(phi-parj(134)))
10422 sig=((1.+cthe**2)*hf1+sthe**2*c2phi*hf3)*sigu+2.*(sthe**2*hf1-
10423 & sthe**2*c2phi*hf3)*sigl+2.*(sthe**2*c2chi*hf1+((1.+cthe**2)*
10424 & c2chi*c2phi-2.*cthe*s2chi*s2phi)*hf3)*sigt-2.*sq2*(2.*sthe*cthe*
10426 IF(sig.LT.sigmax*rlu(0))
GOTO 120
10427 CALL ludbrb(nc+1,n,0.,chi,0d0,0d0,0d0)
10428 CALL ludbrb(nc+1,n,the,phi,0d0,0d0,0d0)
10432 IF(mstj(101).GE.5.AND.njet.GE.2)
THEN 10433 CALL lushow(nc+mk+1,-njet,ecmc)
10435 IF(mstj(105).EQ.-1) mstj(14)=-1
10436 IF(mstj(105).GE.0) mstu(28)=0
10439 IF(mstj(105).GE.0.AND.mstu(28).NE.0)
GOTO 100
10443 IF(mstj(105).EQ.1)
CALL luexec
10444 mstu(161)=110*kflc+3
10452 SUBROUTINE luhepc(MCONV)
10456 include
'../include/HEPEVT.h' 10460 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
10461 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10462 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
10464 SAVE /lujets/,/ludat1/,/ludat2/
10467 IF(mconv.EQ.1)
THEN 10469 IF(n.GT.nmxhep)
CALL luerrm(8,
10470 &
'(LUHEPC:) no more space in /HEPEVT/')
10474 IF(k(i,1).GE.1.AND.k(i,1).LE.10) isthep(i)=1
10475 IF(k(i,1).GE.11.AND.k(i,1).LE.20) isthep(i)=2
10476 IF(k(i,1).GE.21.AND.k(i,1).LE.30) isthep(i)=3
10477 IF(k(i,1).GE.31.AND.k(i,1).LE.100) isthep(i)=k(i,1)
10481 IF(k(i,1).NE.3.AND.k(i,1).NE.13.AND.k(i,1).NE.14)
THEN 10499 IF(k(i,1).EQ.21.AND.k(i-1,1).NE.21) inew=i
10503 IF(i.GE.inew+2.AND.k(i,1).EQ.21.AND.k(i,3).EQ.0)
THEN 10505 IF(i.GE.inew+3.AND.k(i-1,1).EQ.21.AND.k(i-1,3).EQ.0)
10509 ELSEIF(k(i,2).GE.91.AND.k(i,2).LE.93)
THEN 10512 IF(i1.GE.i)
CALL luerrm(8,
10513 &
'(LUHEPC:) translation of inconsistent event history')
10514 IF(i1.LT.i.AND.k(i1,1).NE.1.AND.k(i1,1).NE.11)
GOTO 120
10516 IF(i1.LT.i.AND.kc.EQ.0)
GOTO 120
10517 IF(i1.LT.i.AND.kchg(kc,2).EQ.0)
GOTO 120
10519 ELSEIF(k(i,2).EQ.94)
THEN 10521 IF(nhep.GE.i+3.AND.k(i+3,3).LE.i) njet=3
10522 IF(nhep.GE.i+4.AND.k(i+4,3).LE.i) njet=4
10523 jmohep(2,i)=mod(k(i+njet,4)/mstu(5),mstu(5))
10524 IF(jmohep(2,i).EQ.jmohep(1,i)) jmohep(2,i)=
10525 & mod(k(i+1,4)/mstu(5),mstu(5))
10529 IF(k(i,2).EQ.94.AND.mstu(16).NE.2)
THEN 10530 DO 130 i1=jdahep(1,i),jdahep(2,i)
10531 i2=mod(k(i1,4)/mstu(5),mstu(5))
10535 IF(k(i,2).GE.91.AND.k(i,2).LE.94)
GOTO 140
10537 IF(i1.LE.0.OR.i1.GT.nhep)
GOTO 140
10538 IF(k(i1,1).NE.13.AND.k(i1,1).NE.14)
GOTO 140
10539 IF(jdahep(1,i1).EQ.0)
THEN 10546 IF(k(i,1).NE.13.AND.k(i,1).NE.14)
GOTO 150
10547 IF(jdahep(2,i).EQ.0) jdahep(2,i)=jdahep(1,i)
10552 IF(nhep.GT.mstu(4))
CALL luerrm(8,
10553 &
'(LUHEPC:) no more space in /LUJETS/')
10554 n=min(nhep,mstu(4))
10559 IF(isthep(i).EQ.1) k(i,1)=1
10560 IF(isthep(i).EQ.2) k(i,1)=11
10561 IF(isthep(i).EQ.3) k(i,1)=21
10573 IF(isthep(i).EQ.2.AND.phep(4,i).GT.phep(5,i))
THEN 10575 IF(i1.GT.0.AND.i1.LE.nhep) v(i,5)=(vhep(4,i1)-vhep(4,i))*
10576 & phep(5,i)/phep(4,i)
10580 IF(isthep(i).EQ.1)
THEN 10583 IF(kc.NE.0) kq=kchg(kc,2)*isign(1,k(i,2))
10584 IF(kq.NE.0) nkq=nkq+1
10585 IF(kq.NE.2) kqsum=kqsum+kq
10586 IF(kq.NE.0.AND.kqsum.NE.0)
THEN 10588 ELSEIF(kq.EQ.2.AND.i.LT.n)
THEN 10589 IF(k(i+1,2).EQ.21) k(i,1)=2
10593 IF(nkq.EQ.1.OR.kqsum.NE.0)
CALL luerrm(8,
10594 &
'(LUHEPC:) input parton configuration not colour singlet')
10601 SUBROUTINE lutest(MTEST)
10605 common/lujets/n,k(4000,5),p(4000,5),v(4000,5)
10606 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10607 SAVE /lujets/,/ludat1/
10608 dimension psum(5),pini(6),pfin(6)
10611 IF(mtest.GE.1)
CALL lutabu(20)
10630 IF(iev.EQ.301.OR.iev.EQ.351.OR.iev.EQ.401) mstj(116)=3
10636 IF(ity.EQ.3.OR.ity.EQ.4) mstj(11)=2
10637 IF(ity.EQ.1)
CALL lu1ent(1,1,15.,0.,0.)
10638 IF(ity.EQ.2)
CALL lu1ent(1,3101,15.,0.,0.)
10639 IF(ity.EQ.3)
CALL lu1ent(1,-2203,15.,0.,0.)
10640 IF(ity.EQ.4)
CALL lu1ent(1,-4,30.,0.,0.)
10641 IF(ity.EQ.5)
CALL lu1ent(1,21,15.,0.,0.)
10644 ELSEIF(iev.LE.130)
THEN 10646 IF(ity.EQ.1)
CALL lu2ent(1,1,-1,40.)
10647 IF(ity.EQ.2)
CALL lu2ent(1,4,-4,30.)
10648 IF(ity.EQ.3)
CALL lu2ent(1,2,2103,100.)
10649 IF(ity.EQ.4)
CALL lu2ent(1,21,21,40.)
10650 IF(ity.EQ.5)
CALL lu3ent(1,2101,21,-3203,30.,0.6,0.8)
10651 IF(ity.EQ.6)
CALL lu3ent(1,5,21,-5,40.,0.9,0.8)
10652 IF(ity.EQ.7)
CALL lu3ent(1,21,21,21,60.,0.7,0.5)
10653 IF(ity.EQ.8)
CALL lu4ent(1,2,21,21,-2,40.,0.4,0.64,0.6,0.12,0.2)
10656 ELSEIF(iev.LE.200)
THEN 10658 mstj(2)=1+mod(iev-131,4)
10659 mstj(3)=1+mod((iev-131)/4,4)
10660 IF(ity.EQ.1)
CALL lu2ent(1,4,-5,40.)
10661 IF(ity.EQ.2)
CALL lu3ent(1,3,21,-3,40.,0.9,0.4)
10662 IF(ity.EQ.3)
CALL lu4ent(1,2,21,21,-2,40.,0.4,0.64,0.6,0.12,0.2)
10663 IF(ity.GE.4)
CALL lu4ent(1,2,-3,3,-2,40.,0.4,0.64,0.6,0.12,0.2)
10666 ELSEIF(iev.LE.300)
THEN 10673 IF(i.EQ.1) kfl=int(1.+4.*rlu(0))
10674 IF(i.EQ.njet) kfl=-int(1.+4.*rlu(0))
10676 theta=acos(2.*rlu(0)-1.)
10678 IF(i.LT.njet)
CALL lu1ent(-i,kfl,ejet,theta,phi)
10679 IF(i.EQ.njet)
CALL lu1ent(i,kfl,ejet,theta,phi)
10680 IF(i.EQ.1.OR.i.EQ.njet) mstj(93)=1
10681 IF(i.EQ.1.OR.i.EQ.njet) psum(5)=psum(5)+ulmass(kfl)
10683 psum(j)=psum(j)+p(i,j)
10686 IF(psum(4)**2-psum(1)**2-psum(2)**2-psum(3)**2.LT.
10687 & (psum(5)+parj(32))**2)
GOTO 100
10690 ELSEIF(iev.LE.350)
THEN 10695 ELSEIF(iev.LE.400)
THEN 10696 mstj(42)=1+mod(iev,2)
10697 mstj(43)=1+mod(iev/2,4)
10698 mstj(44)=mod(iev/8,3)
10702 ELSEIF(iev.LE.450)
THEN 10704 CALL lueevt(0,500.)
10707 ELSEIF(iev.LE.500)
THEN 10708 CALL luonia(5,9.46)
10711 ELSEIF(iev.LE.560)
THEN 10714 kflb=8-mod(ity/5,4)
10715 kflc=kflb-mod(ity,5)
10716 CALL lu1ent(1,100*kflb+10*kflc+kfls,0.,0.,0.)
10719 ELSEIF(iev.LE.600)
THEN 10722 kfla=8-mod(ity/5,4)
10723 kflb=kfla-mod(ity,5)
10725 CALL lu1ent(1,1000*kfla+100*kflb+10*kflc+kfls,0.,0.,0.)
10743 IF((pfin(1)-pini(1))**2+(pfin(2)-pini(2))**2.GE.4.) merr=merr+1
10744 epzrem=pini(4)+pini(3)-pfin(4)-pfin(3)
10745 IF(epzrem.LT.0..OR.epzrem.GT.2.*parj(31)) merr=merr+1
10746 IF(abs(pfin(6)-pini(6)).GT.2.1) merr=merr+1
10749 IF(abs(pfin(j)-pini(j)).GT.0001*pini(4)) merr=merr+1
10751 IF(abs(pfin(6)-pini(6)).GT.0.1) merr=merr+1
10753 IF(merr.NE.0)
WRITE(mstu(11),5000) (pini(j),j=1,4),pini(6),
10754 &(pfin(j),j=1,4),pfin(6)
10759 IF(k(i,1).GT.20)
GOTO 170
10760 IF(lucomp(k(i,2)).EQ.0)
THEN 10761 WRITE(mstu(11),5100) i
10764 pd=p(i,4)**2-p(i,1)**2-p(i,2)**2-p(i,3)**2-p(i,5)**2
10765 IF(abs(pd).GT.max(0.1,0.001*p(i,4)**2).OR.p(i,4).LT.0.)
THEN 10766 WRITE(mstu(11),5200) i
10770 IF(mtest.GE.1)
CALL lutabu(21)
10773 IF(merr.NE.0.OR.mstu(24).NE.0.OR.mstu(28).NE.0)
THEN 10775 ELSEIF(mtest.GE.1.AND.mod(iev-5,100).EQ.0)
THEN 10780 IF(merr.NE.0) nerr=nerr+1
10781 IF(nerr.GE.10)
THEN 10782 WRITE(mstu(11),5300) iev
10788 IF(mtest.GE.1)
CALL lutabu(22)
10789 IF(nerr.EQ.0)
WRITE(mstu(11),5400)
10790 IF(nerr.GT.0)
WRITE(mstu(11),5500) nerr
10802 5000
FORMAT(/
' Momentum, energy and/or charge were not conserved ',
10803 &
'in following event'/
' sum of',9x,
'px',11x,
'py',11x,
'pz',11x,
10804 &
'E',8x,
'charge'/
' before',2x,4(1x,f12.5),1x,f8.2/
' after',3x,
10805 &4(1x,f12.5),1x,f8.2)
10806 5100
FORMAT(/5x,
'Entry no.',i4,
' in following event not known code')
10807 5200
FORMAT(/5x,
'Entry no.',i4,
' in following event has faulty ',
10809 5300
FORMAT(/5x,
'Ten errors experienced by event ',i3/
10810 &5x,
'Something is seriously wrong! Execution stopped now!')
10811 5400
FORMAT(//5x,
'End result of LUTEST: no errors detected.')
10812 5500
FORMAT(//5x,
'End result of LUTEST:',i2,
' errors detected.'/
10813 &5x,
'This should not have happened!')
10824 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10825 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
10826 common/ludat3/mdcy(500,3),mdme(2000,2),brat(2000),kfdp(2000,5)
10827 common/ludat4/chaf(500)
10829 common/ludatr/mrlu(6),rrlu(100)
10830 SAVE /ludat1/,/ludat2/,/ludat3/,/ludat4/,/ludatr/
10834 & 0, 0, 0, 4000,10000, 500, 2000, 0, 0, 2,
10835 1 6, 1, 1, 0, 1, 1, 0, 0, 0, 0,
10836 2 2, 10, 0, 0, 1, 10, 0, 0, 0, 0,
10837 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10838 4 2, 2, 1, 4, 2, 1, 1, 0, 0, 0,
10839 5 25, 24, 0, 1, 0, 0, 0, 0, 0, 0,
10840 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10842 & 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10843 1 1, 5, 3, 5, 0, 0, 0, 0, 0, 0,
10845 8 7, 401, 1994, 02, 11, 700, 0, 0, 0, 0,
10846 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/
10848 & 3.1415927, 6.2831854, 0.1973, 5.068, 0.3894, 2.568, 4*0.,
10849 1 0.001, 0.09, 0.01, 0., 0., 0., 0., 0., 0., 0.,
10850 2 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
10851 3 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
10852 4 2.0, 1.0, 0.25, 2.5, 0.05, 0., 0., 0.0001, 0., 0.,
10853 5 2.5, 1.5, 7.0, 1.0, 0.5, 2.0, 3.2, 0., 0., 0.,
10855 & 0.00729735, 0.232, 0., 0., 0., 0., 0., 0., 0., 0.,
10856 1 0.20, 0.25, 1.0, 4.0, 10., 0., 0., 0., 0., 0.,
10857 2 -0.693, -1.0, 0.387, 1.0, -0.08, -1.0, 1.0, 1.0, 1.0, 0.,
10858 3 1.0, -1.0, 1.0, -1.0, 1.0, 0., 0., 0., 0., 0.,
10859 4 5.0, 1.0, 1.0, 0., 1.0, 1.0, 0., 0., 0., 0.,
10860 5 1.0, 0., 0., 0., 1000., 1.0, 1.0, 1.0, 1.0, 0.,
10861 6 1.0, 1.0, 1.0, 1.0, 1.0, 0., 0., 0., 0., 0.,
10862 7 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0., 0., 0.,
10863 8 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.,
10864 9 0., 0., 0., 0., 1.0, 0., 0., 0., 0., 0./
10866 & 1, 3, 0, 0, 0, 0, 0, 0, 0, 0,
10867 1 4, 2, 0, 1, 0, 0, 0, 0, 0, 0,
10868 2 2, 1, 1, 2, 1, 2, 2, 0, 0, 0,
10869 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10870 4 2, 2, 4, 2, 5, 3, 3, 0, 0, 0,
10871 5 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
10873 & 5, 2, 7, 5, 1, 1, 0, 2, 0, 2,
10874 1 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
10877 & 0.10, 0.30, 0.40, 0.05, 0.50, 0.50, 0.50, 0., 0., 0.,
10878 1 0.50, 0.60, 0.75, 0., 0., 0., 0., 1.0, 1.0, 0.,
10879 2 0.36, 1.0, 0.01, 2.0, 1.0, 0.4, 0., 0., 0., 0.,
10880 3 0.10, 1.0, 0.8, 1.5, 0., 2.0, 0.2, 2.5, 0.6, 0.,
10881 4 0.3, 0.58, 0.5, 0.9, 0.5, 1.0, 1.0, 1.0, 0., 0.,
10882 5 0.77,0.77,0.77,-0.05,-0.005,-0.00001,-0.00001,-0.00001,1.0,0.,
10883 6 4.5, 0.7, 0., 0.003, 0.5, 0.5, 0., 0., 0., 0.,
10884 7 10., 1000., 100., 1000., 0., 0.7, 10., 0., 0., 0.,
10885 8 0.29, 1.0, 1.0, 0., 10., 10., 0., 0., 0., 0.,
10886 9 0.02, 1.0, 0.2, 0., 0., 0., 0., 0., 0., 0.,
10887 & 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
10888 1 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
10889 2 1.0, 0.25,91.187,2.489, 0.01, 2.0, 1.0, 0.25,0.002, 0.,
10890 3 0., 0., 0., 0., 0.01, 0.99, 0., 0., 0.2, 0.,
10894 DATA (kchg(i,1),i= 1, 500)/-1,2,-1,2,-1,2,-1,2,2*0,-3,0,-3,0,
10895 &-3,0,-3,6*0,3,9*0,3,2*0,3,0,-1,44*0,2,-1,2,-1,2,3,11*0,3,0,2*3,0,
10896 &3,0,3,0,3,10*0,3,0,2*3,0,3,0,3,0,3,10*0,3,0,2*3,0,3,0,3,0,3,10*0,
10897 &3,0,2*3,0,3,0,3,0,3,10*0,3,0,2*3,0,3,0,3,0,3,10*0,3,0,2*3,0,3,0,
10898 &3,0,3,70*0,3,0,3,28*0,3,2*0,3,8*0,-3,8*0,3,0,-3,0,3,-3,3*0,3,6,0,
10899 &3,5*0,-3,0,3,-3,0,-3,4*0,-3,0,3,6,-3,0,3,-3,0,-3,0,3,6,0,3,5*0,
10900 &-3,0,3,-3,0,-3,114*0/
10901 DATA (kchg(i,2),i= 1, 500)/8*1,12*0,2,16*0,2,1,50*0,-1,410*0/
10902 DATA (kchg(i,3),i= 1, 500)/8*1,2*0,8*1,5*0,1,9*0,1,2*0,1,0,2*1,
10903 &41*0,1,0,7*1,10*0,10*1,10*0,10*1,10*0,10*1,10*0,10*1,10*0,10*1,
10904 &10*0,10*1,70*0,3*1,22*0,1,5*0,1,0,2*1,6*0,1,0,2*1,6*0,2*1,0,5*1,
10905 &0,6*1,4*0,6*1,4*0,16*1,4*0,6*1,114*0/
10906 DATA (pmas(i,1),i= 1, 500)/0.0099,0.0056,0.199,1.35,5.,160.,
10907 &2*250.,2*0.,0.00051,0.,0.1057,0.,1.777,0.,250.,5*0.,91.187,80.25,
10908 &80.,6*0.,500.,900.,500.,3*300.,350.,200.,5000.,60*0.,0.1396,
10909 &0.4977,0.4936,1.8693,1.8645,1.9688,5.2787,5.2786,5.47972,6.594,
10910 &0.135,0.5475,0.9578,2.9788,9.4,320.,2*500.,2*0.,0.7669,0.8961,
10911 &0.8916,2.0101,2.0071,2.11,2*5.325,5.5068,6.602,0.7683,0.782,
10912 &1.0194,3.0969,9.4603,320.,2*500.,2*0.,1.232,2*1.29,2*2.424,2.536,
10913 &2*5.73,5.97,7.3,1.232,1.17,1.4,3.46,9.875,320.,2*500.,2*0.,0.983,
10914 &2*1.429,2*2.272,2.5,2*5.68,5.92,7.25,0.9827,1.,1.4,3.4151,9.8598,
10915 &320.,2*500.,2*0.,1.26,2*1.402,2*2.372,2.56,2*5.78,6.02,7.3,1.26,
10916 &1.282,1.42,3.5106,9.8919,320.,2*500.,2*0.,1.318,1.432,1.425,
10917 &2*2.46,2.61,2*5.83,6.07,7.35,1.318,1.275,1.525,3.5562,9.9132,
10918 &320.,2*500.,2*0.,2*0.4977,8*0.,3.686,3*0.,10.0233,70*0.,1.1156,
10919 &5*0.,2.2849,0.,2.473,2.466,6*0.,5.641,0.,2*5.84,6*0.,0.9396,
10920 &0.9383,0.,1.1974,1.1926,1.1894,1.3213,1.3149,0.,2.4525,2.4529,
10921 &2.4527,2*2.55,2.73,4*0.,3*5.8,2*5.96,6.12,4*0.,1.234,1.233,1.232,
10922 &1.231,1.3872,1.3837,1.3828,1.535,1.5318,1.6724,3*2.5,2*2.63,2.8,
10923 &4*0.,3*5.81,2*5.97,6.13,114*0./
10924 DATA (pmas(i,2),i= 1, 500)/22*0.,2.489,2.066,88*0.,0.0002,
10925 &0.001,6*0.,0.149,0.0505,0.0498,7*0.,0.151,0.00843,0.0044,7*0.,
10926 &0.155,2*0.09,2*0.02,0.,4*0.05,0.155,0.36,0.08,2*0.01,5*0.,0.057,
10927 &2*0.287,7*0.05,0.057,0.,0.25,0.014,6*0.,0.4,2*0.174,7*0.05,0.4,
10928 &0.024,0.06,0.0009,6*0.,0.11,0.109,0.098,2*0.019,5*0.02,0.11,
10929 &0.185,0.076,0.002,146*0.,4*0.12,0.0394,0.036,0.0358,0.0099,
10931 DATA (pmas(i,3),i= 1, 500)/22*0.,2*20.,88*0.,0.002,0.005,6*0.,
10932 &0.4,2*0.2,7*0.,0.4,0.1,0.015,7*0.,0.25,0.005,0.01,2*0.08,0.,
10933 &4*0.1,0.25,0.2,0.001,2*0.02,5*0.,0.05,2*0.4,6*0.1,2*0.05,0.,0.35,
10934 &0.05,6*0.,3*0.3,2*0.1,0.03,4*0.1,0.3,0.05,0.02,0.001,6*0.,0.25,
10935 &4*0.12,5*0.05,0.25,0.17,0.2,0.01,146*0.,4*0.14,0.04,2*0.035,
10937 DATA (pmas(i,4),i= 1, 500)/12*0.,658650.,0.,0.0914,68*0.,0.1,
10938 &0.387,15*0.,7804.,0.,3709.,0.32,0.1259,0.135,3*0.387,0.15,110*0.,
10939 &15500.,26.75,83*0.,78.88,5*0.,0.057,0.,0.025,0.09,6*0.,0.387,0.,
10940 &2*0.387,9*0.,44.3,0.,23.95,49.1,86.9,6*0.,0.13,9*0.,0.387,13*0.,
10943 & 0.5, 0.25, 0.5, 0.25, 1., 0.5, 0., 0., 0., 0.,
10944 1 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0.,
10945 2 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0.,
10946 3 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0.,
10947 4 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0.,
10948 5 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0.,
10949 6 0.75, 0.5, 0., 0.1667, 0.0833, 0.1667, 0., 0., 0., 0.,
10950 7 0., 0., 1., 0.3333, 0.6667, 0.3333, 0., 0., 0., 0.,
10951 8 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
10952 9 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
10953 & 0.325, 0.325, 0.5, 1.6, 5.0, 0., 0., 0., 0., 0.,
10954 1 0., 0.11, 0.16, 0.048, 0.50, 0.45, 0.55, 0.60, 0., 0.,
10955 2 0.2, 0.1, 0., 0., 0., 0., 0., 0., 0., 0.,
10957 DATA ((vckm(i,j),j=1,4),i=1,4)/
10958 1 0.95113, 0.04884, 0.00003, 0.00000,
10959 2 0.04884, 0.94940, 0.00176, 0.00000,
10960 3 0.00003, 0.00176, 0.99821, 0.00000,
10961 4 0.00000, 0.00000, 0.00000, 1.00000/
10964 DATA (mdcy(i,1),i= 1, 500)/5*0,3*1,6*0,1,0,1,5*0,3*1,6*0,1,0,1,
10965 &2*0,4*1,42*0,7*1,12*0,1,0,15*1,2*0,18*1,2*0,18*1,2*0,18*1,2*0,
10966 &18*1,2*0,18*1,3*0,1,8*0,1,3*0,1,70*0,1,5*0,1,0,2*1,6*0,1,0,2*1,
10967 &9*0,5*1,0,6*1,4*0,6*1,4*0,16*1,4*0,6*1,114*0/
10968 DATA (mdcy(i,2),i= 1, 500)/1,9,17,25,33,41,50,60,2*0,70,74,76,
10969 &81,83,124,126,132,2*0,135,144,156,172,192,6*0,209,0,231,254,274,
10970 &292,301,304,305,42*0,314,315,319,328,331,336,338,11*0,358,359,
10971 &361,367,430,491,524,560,596,635,666,668,675,681,682,683,684,685,
10972 &2*0,686,688,691,694,697,699,700,701,702,703,704,708,713,721,724,
10973 &733,734,735,2*0,736,737,742,747,749,751,753,755,757,759,761,762,
10974 &765,769,770,771,772,773,2*0,774,775,777,779,781,783,785,787,789,
10975 &791,793,794,799,804,806,808,809,810,2*0,811,813,815,817,819,821,
10976 &823,825,827,829,831,833,846,850,852,854,855,856,2*0,857,863,873,
10977 &884,892,900,904,912,920,924,928,936,945,951,953,955,956,957,2*0,
10978 &958,966,8*0,968,3*0,979,70*0,993,5*0,997,0,1073,1074,6*0,1075,0,
10979 &1092,1093,9*0,1094,1096,1097,1100,1101,0,1103,1104,1105,1106,
10980 &1107,1108,4*0,1109,1110,1111,1112,1113,1114,4*0,1115,1116,1119,
10981 &1122,1123,1126,1129,1132,1134,1136,1140,1141,1142,1143,1145,1147,
10982 &4*0,1148,1149,1150,1151,1152,1153,114*0/
10983 DATA (mdcy(i,3),i= 1, 500)/5*8,9,2*10,2*0,4,2,5,2,41,2,6,3,2*0,
10984 &9,12,16,20,17,6*0,22,0,23,20,18,9,3,1,9,42*0,1,4,9,3,5,2,20,11*0,
10985 &1,2,6,63,61,33,2*36,39,31,2,7,6,5*1,2*0,2,3*3,2,5*1,4,5,8,3,9,
10986 &3*1,2*0,1,2*5,7*2,1,3,4,5*1,2*0,1,9*2,1,2*5,2*2,3*1,2*0,11*2,13,
10987 &4,2*2,3*1,2*0,6,10,11,2*8,4,2*8,2*4,8,9,6,2*2,3*1,2*0,8,2,8*0,11,
10988 &3*0,14,70*0,4,5*0,76,0,2*1,6*0,17,0,2*1,9*0,2,1,3,1,2,0,6*1,4*0,
10989 &6*1,4*0,1,2*3,1,3*3,2*2,4,3*1,2*2,1,4*0,6*1,114*0/
10990 DATA (mdme(i,1),i= 1,2000)/6*1,-1,7*1,-1,7*1,-1,7*1,-1,7*1,-1,
10991 &7*1,-1,1,-1,8*1,2*-1,8*1,2*-1,61*1,-1,2*1,-1,6*1,2*-1,7*1,2*-1,
10992 &3*1,-1,6*1,2*-1,6*1,2*-1,3*1,-1,3*1,-1,3*1,5*-1,3*1,-1,6*1,2*-1,
10993 &3*1,-1,11*1,2*-1,6*1,8*-1,3*1,-1,3*1,-1,3*1,5*-1,3*1,4*-1,6*1,
10994 &2*-1,3*1,-1,5*1,-1,8*1,2*-1,3*1,-1,9*1,-1,3*1,-1,9*1,2*-1,2*1,-1,
10995 &16*1,-1,2*1,3*-1,1665*1/
10996 DATA (mdme(i,2),i= 1,2000)/75*102,42,6*102,2*42,2*0,7*41,2*0,
10997 &24*41,6*102,45,29*102,8*32,8*0,16*32,4*0,8*32,4*0,32,4*0,8*32,
10998 &14*0,16*32,7*0,8*32,4*0,32,7*0,8*32,4*0,32,5*0,4*32,5*0,3*32,0,
10999 &6*32,3*0,12,2*42,2*11,9*42,2*45,31,2*45,2*33,31,2*45,20*46,7*0,
11000 &24*42,41*0,16*42,46*0,10*42,20*0,2*13,14*42,16*0,48,3*13,16*42,
11001 &16*0,48,3*13,16*42,19*0,48,3*13,2*42,0,2*11,28*42,0,2,4*0,2,8*0,
11002 &12,32,86,87,88,3,0,2*3,0,2*3,0,2*3,0,3,6*0,3,3*0,1,0,3,2*0,2*3,
11003 &3*0,1,4*0,12,3*0,4*32,2*4,86,87,88,33*0,12,32,86,87,88,31*0,12,0,
11004 &32,86,87,88,40*0,12,0,32,86,87,88,95*0,12,0,32,86,87,88,2*0,4*42,
11005 &6*0,12,11*0,4*32,2*4,9*0,14*42,52*0,10*13,2*84,3*42,8*0,48,3*13,
11006 &2*42,2*85,14*0,84,5*0,85,886*0/
11007 DATA (brat(i) ,i= 1, 439)/75*0.,1.,6*0.,0.179,0.178,0.116,
11008 &0.235,0.005,0.056,0.018,0.023,0.011,2*0.004,0.0067,0.014,2*0.002,
11009 &2*0.001,0.0022,0.054,0.002,0.016,0.005,0.011,0.0101,5*0.006,
11010 &0.002,2*0.001,5*0.002,6*0.,1.,29*0.,0.15394,0.11936,0.15394,
11011 &0.11926,0.15254,3*0.,0.03368,0.06664,0.03368,0.06664,0.03368,
11012 &0.06664,2*0.,0.3214,0.0165,2*0.,0.0165,0.3207,2*0.,0.00001,
11013 &0.00059,6*0.,3*0.1081,3*0.,0.0003,0.048,0.8705,4*0.,0.0002,
11014 &0.0603,0.,0.0199,0.0008,3*0.,0.143,0.111,0.143,0.111,0.143,0.085,
11015 &2*0.,0.03,0.058,0.03,0.058,0.03,0.058,8*0.,0.25,0.01,2*0.,0.01,
11016 &0.25,4*0.,0.24,5*0.,3*0.08,6*0.,0.01,0.08,0.82,5*0.,0.09,11*0.,
11017 &0.01,0.08,0.82,5*0.,0.09,9*0.,1.,6*0.,0.01,0.98,0.01,1.,4*0.215,
11018 &2*0.,2*0.07,0.,1.,2*0.08,0.76,0.08,2*0.105,0.04,0.5,0.08,0.14,
11019 &0.01,0.015,0.005,1.,3*0.,1.,4*0.,1.,0.25,0.01,2*0.,0.01,0.25,
11020 &4*0.,0.24,5*0.,3*0.08,0.,1.,2*0.5,0.635,0.212,0.056,0.017,0.048,
11021 &0.032,0.07,0.065,2*0.005,2*0.011,5*0.001,0.07,0.065,2*0.005,
11022 &2*0.011,5*0.001,0.026,0.019,0.066,0.041,0.045,0.076,0.0073,
11023 &2*0.0047,0.026,0.001,0.0006,0.0066,0.005,2*0.003,2*0.0006,
11024 &2*0.001,0.006,0.005,0.012,0.0057,0.067,0.008,0.0022,0.027,0.004,
11025 &0.019,0.012,0.002,0.009,0.0218,0.001,0.022,0.087,0.001,0.0019,
11026 &0.0015,0.0028,0.034,0.027,2*0.002,2*0.004,2*0.002,0.034,0.027/
11027 DATA (brat(i) ,i= 440, 655)/2*0.002,2*0.004,2*0.002,0.0365,
11028 &0.045,0.073,0.062,3*0.021,0.0061,0.015,0.025,0.0088,0.074,0.0109,
11029 &0.0041,0.002,0.0035,0.0011,0.001,0.0027,2*0.0016,0.0018,0.011,
11030 &0.0063,0.0052,0.018,0.016,0.0034,0.0036,0.0009,0.0006,0.015,
11031 &0.0923,0.018,0.022,0.0077,0.009,0.0075,0.024,0.0085,0.067,0.0511,
11032 &0.017,0.0004,0.0028,0.01,2*0.02,0.03,2*0.005,2*0.02,0.03,2*0.005,
11033 &0.015,0.037,0.028,0.079,0.095,0.052,0.0078,4*0.001,0.028,0.033,
11034 &0.026,0.05,0.01,4*0.005,0.25,0.0952,0.02,0.055,2*0.005,0.008,
11035 &0.012,0.02,0.055,2*0.005,0.008,0.012,0.01,0.03,0.0035,0.011,
11036 &0.0055,0.0042,0.009,0.018,0.015,0.0185,0.0135,0.025,0.0004,
11037 &0.0007,0.0008,0.0014,0.0019,0.0025,0.4291,0.08,0.07,0.02,0.015,
11038 &0.005,0.02,0.055,2*0.005,0.008,0.012,0.02,0.055,2*0.005,0.008,
11039 &0.012,0.01,0.03,0.0035,0.011,0.0055,0.0042,0.009,0.018,0.015,
11040 &0.0185,0.0135,0.025,0.0004,0.0007,0.0008,0.0014,0.0019,0.0025,
11041 &0.4291,0.08,0.07,0.02,0.015,0.005,0.02,0.055,2*0.005,0.008,0.012,
11042 &0.02,0.055,2*0.005,0.008,0.012,0.01,0.03,0.0035,0.011,0.0055,
11043 &0.0042,0.009,0.018,0.015,0.0185,0.0135,0.025,2*0.0002,0.0007,
11044 &2*0.0004,0.0014,0.001,0.0009,0.0025,0.4291,0.08,0.07,0.02,0.015,
11045 &0.005,0.047,0.122,0.006,0.012,0.035,0.012,0.035,0.003,0.007,0.15,
11046 &0.037,0.008,0.002,0.05,0.015,0.003,0.001,0.014,0.042,0.014,0.042/
11047 DATA (brat(i) ,i= 656, 931)/0.24,0.065,0.012,0.003,0.001,0.002,
11048 &0.001,0.002,0.014,0.003,0.988,0.012,0.389,0.319,0.2367,0.049,
11049 &0.005,0.001,0.0003,0.441,0.206,0.3,0.03,0.022,0.001,5*1.,0.99955,
11050 &0.00045,0.665,0.333,0.002,0.666,0.333,0.001,0.65,0.3,0.05,0.56,
11051 &0.44,5*1.,0.99912,0.00079,0.00005,0.00004,0.888,0.085,0.021,
11052 &2*0.003,0.49,0.344,3*0.043,0.023,0.013,0.001,0.0627,0.0597,
11053 &0.8776,3*0.027,0.015,0.045,0.015,0.045,0.77,0.029,4*1.,0.28,0.14,
11054 &0.313,0.157,0.11,0.28,0.14,0.313,0.157,0.11,0.667,0.333,0.667,
11055 &0.333,2*0.5,0.667,0.333,0.667,0.333,4*0.5,1.,0.333,0.334,0.333,
11056 &4*0.25,6*1.,0.667,0.333,0.667,0.333,0.667,0.333,0.667,0.333,
11057 &2*0.5,0.667,0.333,0.667,0.333,4*0.5,1.,0.52,0.26,0.11,2*0.055,
11058 &0.62,0.31,0.035,2*0.0175,0.007,0.993,0.02,0.98,3*1.,2*0.5,0.667,
11059 &0.333,0.667,0.333,0.667,0.333,0.667,0.333,2*0.5,0.667,0.333,
11060 &0.667,0.333,6*0.5,3*0.12,0.097,0.043,4*0.095,4*0.03,4*0.25,0.273,
11061 &0.727,0.35,0.65,3*1.,2*0.35,0.144,0.105,0.048,0.003,0.333,0.166,
11062 &0.168,0.084,0.087,0.043,0.059,2*0.029,0.002,0.332,0.166,0.168,
11063 &0.084,0.086,0.043,0.059,2*0.029,2*0.002,0.3,0.15,0.16,0.08,0.13,
11064 &0.06,0.08,0.04,0.3,0.15,0.16,0.08,0.13,0.06,0.08,0.04,2*0.3,
11065 &2*0.2,0.3,0.15,0.16,0.08,0.13,0.06,0.08,0.04,0.3,0.15,0.16,0.08,
11066 &0.13,0.06,0.08,0.04,2*0.3,2*0.2,2*0.3,2*0.2,2*0.35,0.144,0.105/
11067 DATA (brat(i) ,i= 932,2000)/0.024,2*0.012,0.003,0.566,0.283,
11068 &0.069,0.028,0.023,2*0.0115,0.005,0.003,0.356,2*0.178,0.28,
11069 &2*0.004,0.135,0.865,0.22,0.78,3*1.,0.217,0.124,2*0.193,2*0.135,
11070 &0.002,0.001,0.686,0.314,2*0.0083,0.1866,0.324,0.184,0.027,0.001,
11071 &0.093,0.087,0.078,0.0028,3*0.014,0.008,0.024,0.008,0.024,0.425,
11072 &0.02,0.185,0.088,0.043,0.067,0.066,0.641,0.357,2*0.001,0.018,
11073 &2*0.005,0.003,0.002,2*0.006,0.018,2*0.005,0.003,0.002,2*0.006,
11074 &0.0066,0.025,0.016,0.0088,2*0.005,0.0058,0.005,0.0055,4*0.004,
11075 &2*0.002,2*0.004,0.003,0.002,2*0.003,3*0.002,2*0.001,0.002,
11076 &2*0.001,2*0.002,0.0013,0.0018,5*0.001,4*0.003,2*0.005,2*0.002,
11077 &2*0.001,2*0.002,2*0.001,0.2432,0.057,2*0.035,0.15,2*0.075,0.03,
11078 &2*0.015,2*1.,2*0.105,0.04,0.0077,0.02,0.0235,0.0285,0.0435,
11079 &0.0011,0.0022,0.0044,0.4291,0.08,0.07,0.02,0.015,0.005,2*1.,
11080 &0.999,0.001,1.,0.516,0.483,0.001,1.,0.995,0.005,13*1.,0.331,
11081 &0.663,0.006,0.663,0.331,0.006,1.,0.88,2*0.06,0.88,2*0.06,0.88,
11082 &2*0.06,0.667,2*0.333,0.667,0.676,0.234,0.085,0.005,3*1.,4*0.5,
11084 DATA (kfdp(i,1),i= 1, 507)/21,22,23,4*-24,25,21,22,23,4*24,25,
11085 &21,22,23,4*-24,25,21,22,23,4*24,25,21,22,23,4*-24,25,21,22,23,
11086 &4*24,25,37,21,22,23,4*-24,25,2*-37,21,22,23,4*24,25,2*37,22,23,
11087 &-24,25,23,24,-12,22,23,-24,25,23,24,-12,-14,35*16,22,23,-24,25,
11088 &23,24,-89,22,23,-24,25,-37,23,24,37,1,2,3,4,5,6,7,8,21,1,2,3,4,5,
11089 &6,7,8,11,13,15,17,1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,4*-1,
11090 &4*-3,4*-5,4*-7,-11,-13,-15,-17,1,2,3,4,5,6,7,8,11,13,15,17,21,
11091 &2*22,23,24,1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,24,37,2*23,25,
11092 &35,4*-1,4*-3,4*-5,4*-7,-11,-13,-15,-17,3*24,1,2,3,4,5,6,7,8,11,
11093 &13,15,17,21,2*22,23,24,23,25,36,1,2,3,4,5,6,7,8,11,13,15,17,21,
11094 &2*22,23,24,23,-1,-3,-5,-7,-11,-13,-15,-17,24,5,6,21,2,1,2,3,4,5,
11095 &6,11,13,15,82,-11,-13,2*2,-12,-14,-16,2*-2,2*-4,-2,-4,2*89,37,
11096 &2*-89,2*5,-37,2*89,4*-1,4*-3,4*-5,4*-7,-11,-13,-15,-17,-13,130,
11097 &310,-13,3*211,12,14,11*-11,11*-13,-311,-313,-311,-313,-20313,
11098 &2*-311,-313,-311,-313,2*111,2*221,2*331,2*113,2*223,2*333,-311,
11099 &-313,2*-321,211,-311,-321,333,-311,-313,-321,211,2*-321,2*-311,
11100 &-321,211,113,8*-11,8*-13,-321,-323,-321,-323,-311,2*-313,-311,
11101 &-313,2*-311,-321,-10323,-321,-323,-321,-311,2*-313,211,111,333,
11102 &3*-321,-311,-313,-321,-313,310,333,211,2*-321,-311,-313,-311,211,
11103 &-321,3*-311,211,113,321,-15,5*-11,5*-13,221,331,333,221,331,333/
11104 DATA (kfdp(i,1),i= 508, 924)/10221,211,213,211,213,321,323,321,
11105 &323,2212,221,331,333,221,2*2,6*12,6*14,2*16,3*-411,3*-413,2*-411,
11106 &2*-413,2*441,2*443,2*20443,2*2,2*4,2,4,6*12,6*14,2*16,3*-421,
11107 &3*-423,2*-421,2*-423,2*441,2*443,2*20443,2*2,2*4,2,4,6*12,6*14,
11108 &2*16,3*-431,3*-433,2*-431,2*-433,3*441,3*443,3*20443,2*2,2*4,2,4,
11109 &16,2*4,2*12,2*14,2*16,4*2,4*4,2*-11,2*-13,2*-1,2*-3,2*-11,2*-13,
11110 &2*-1,3*22,111,211,2*22,211,22,211,111,3*22,111,82,21,3*0,2*211,
11111 &321,3*311,2*321,421,2*411,2*421,431,511,521,531,541,211,111,13,
11112 &11,211,22,211,2*111,321,130,-213,113,213,211,22,111,11,13,82,11,
11113 &13,15,1,2,3,4,21,22,3*0,223,321,311,323,313,2*311,321,313,323,
11114 &321,423,2*413,2*423,413,523,2*513,2*523,2*513,523,223,213,113,
11115 &-213,313,-313,323,-323,82,21,3*0,221,321,2*311,321,421,2*411,421,
11116 &411,421,521,2*511,2*521,2*511,521,221,211,111,321,130,310,211,
11117 &111,321,130,310,443,82,553,21,3*0,113,213,323,2*313,323,423,
11118 &2*413,2*423,413,523,2*513,2*523,2*513,523,213,-213,10211,10111,
11119 &-10211,2*221,213,2*113,-213,2*321,2*311,313,-313,323,-323,443,82,
11120 &553,21,3*0,213,113,221,223,321,211,321,311,323,313,323,313,321,
11121 &4*311,321,313,323,313,323,311,4*321,421,411,423,413,423,413,421,
11122 &2*411,421,413,423,413,423,411,2*421,411,423,413,521,511,523,513,
11123 &523,513,521,2*511,521,513,523,513,523,511,2*521,511,523,513,511/
11124 DATA (kfdp(i,1),i= 925,2000)/521,513,523,213,-213,221,223,321,
11125 &130,310,111,211,111,2*211,321,130,310,221,111,321,130,310,221,
11126 &211,111,443,82,553,21,3*0,111,211,-12,12,-14,14,211,111,211,111,
11127 &11,13,82,4*443,10441,20443,445,441,11,13,15,1,2,3,4,21,22,2*553,
11128 &10551,20553,555,2212,2*2112,-12,7*-11,7*-13,2*2224,2*2212,2*2214,
11129 &2*3122,2*3212,2*3214,5*3222,4*3224,2*3322,3324,2*2224,7*2212,
11130 &5*2214,2*2112,2*2114,2*3122,2*3212,2*3214,2*3222,2*3224,4*2,3,
11131 &2*2,1,2*2,2*0,-12,-14,-16,5*4122,441,443,20443,2*-2,2*-4,-2,-4,
11132 &2*0,2112,-12,3122,2212,2112,2212,3*3122,3*4122,4132,4232,0,
11133 &3*5122,5132,5232,0,2112,2212,2*2112,2212,2112,2*2212,3122,3212,
11134 &3112,3122,3222,3112,3122,3222,3212,3322,3312,3322,3312,3122,3322,
11135 &3312,-12,3*4122,2*4132,2*4232,4332,3*5122,5132,5232,5332,847*0/
11136 DATA (kfdp(i,2),i= 1, 476)/3*1,2,4,6,8,1,3*2,1,3,5,7,2,3*3,2,4,
11137 &6,8,3,3*4,1,3,5,7,4,3*5,2,4,6,8,5,3*6,1,3,5,7,6,5,3*7,2,4,6,8,7,
11138 &4,6,3*8,1,3,5,7,8,5,7,2*11,12,11,12,2*11,2*13,14,13,14,13,11,13,
11139 &-211,-213,-211,-213,-211,-213,3*-211,-321,-323,-321,-323,3*-321,
11140 &4*-211,-213,-211,-213,-211,-213,-211,-213,-211,-213,6*-211,2*15,
11141 &16,15,16,15,18,2*17,18,17,2*18,2*17,-1,-2,-3,-4,-5,-6,-7,-8,21,
11142 &-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,-1,-2,-3,-4,-5,-6,-7,-8,
11143 &-11,-12,-13,-14,-15,-16,-17,-18,2,4,6,8,2,4,6,8,2,4,6,8,2,4,6,8,
11144 &12,14,16,18,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23,
11145 &-24,-1,-2,-3,-4,-5,-6,-7,-8,-11,-12,-13,-14,-15,-16,-17,-18,-24,
11146 &-37,22,25,2*36,2,4,6,8,2,4,6,8,2,4,6,8,2,4,6,8,12,14,16,18,23,22,
11147 &25,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23,-24,2*25,
11148 &36,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23,-24,25,2,4,
11149 &6,8,12,14,16,18,25,-5,-6,21,11,-3,-4,-5,-6,-7,-8,-13,-15,-17,-82,
11150 &12,14,-1,-3,11,13,15,1,4,3,4,1,3,5,3,5,6,4,21,22,4,7,5,2,4,6,8,2,
11151 &4,6,8,2,4,6,8,2,4,6,8,12,14,16,18,14,2*0,14,111,211,111,-11,-13,
11152 &11*12,11*14,2*211,2*213,211,20213,2*321,2*323,211,213,211,213,
11153 &211,213,211,213,211,213,211,213,3*211,213,211,2*321,8*211,2*113,
11154 &2*211,8*12,8*14,2*211,2*213,2*111,221,2*113,223,333,20213,211,
11155 &2*321,323,2*311,313,-211,111,113,2*211,321,2*211,311,321,310,211/
11156 DATA (kfdp(i,2),i= 477, 857)/-211,4*211,321,4*211,113,2*211,-321,
11157 &16,5*12,5*14,3*211,3*213,211,2*111,2*113,2*-311,2*-313,-2112,
11158 &3*321,323,2*-1,6*-11,6*-13,2*-15,211,213,20213,211,213,20213,431,
11159 &433,431,433,311,313,311,313,311,313,-1,-4,-3,-4,-1,-3,6*-11,
11160 &6*-13,2*-15,211,213,20213,211,213,20213,431,433,431,433,321,323,
11161 &321,323,321,323,-1,-4,-3,-4,-1,-3,6*-11,6*-13,2*-15,211,213,
11162 &20213,211,213,20213,431,433,431,433,221,331,333,221,331,333,221,
11163 &331,333,-1,-4,-3,-4,-1,-3,-15,-3,-1,2*-11,2*-13,2*-15,-1,-4,-3,
11164 &-4,-3,-4,-1,-4,2*12,2*14,2,3,2,3,2*12,2*14,2,1,22,11,22,111,-211,
11165 &211,11,-211,13,-211,111,113,223,22,111,-82,21,3*0,111,22,-211,
11166 &111,22,211,111,22,211,111,22,111,6*22,-211,22,-13,-11,-211,111,
11167 &-211,2*111,-321,310,211,111,2*-211,221,22,-11,-13,-82,-11,-13,
11168 &-15,-1,-2,-3,-4,2*21,3*0,211,-213,113,-211,111,223,213,113,211,
11169 &111,223,211,111,-211,111,321,311,-211,111,211,111,-321,-311,411,
11170 &421,111,-211,111,211,-311,311,-321,321,-82,21,3*0,211,-211,111,
11171 &211,111,211,111,-211,111,311,321,-211,111,211,111,-321,-311,411,
11172 &421,111,-211,111,-321,130,310,-211,111,-321,130,310,22,-82,22,21,
11173 &3*0,211,111,-211,111,211,111,211,111,-211,111,321,311,-211,111,
11174 &211,111,-321,-311,411,421,-211,211,-211,111,2*211,111,-211,211,
11175 &111,211,-321,2*-311,-321,-311,311,-321,321,22,-82,22,21,3*0,111/
11176 DATA (kfdp(i,2),i= 858,2000)/3*211,-311,22,-211,111,-211,111,
11177 &-211,211,-213,113,223,221,211,111,211,111,2*211,213,113,223,221,
11178 &22,211,111,211,111,4*211,-211,111,-211,111,-211,211,-211,211,321,
11179 &311,321,311,-211,111,-211,111,-211,211,-211,2*211,111,211,111,
11180 &4*211,-321,-311,-321,-311,411,421,411,421,-211,211,111,211,-321,
11181 &130,310,22,-211,111,2*-211,-321,130,310,221,111,-321,130,310,221,
11182 &-211,111,22,-82,22,21,3*0,111,-211,11,-11,13,-13,-211,111,-211,
11183 &111,-11,-13,-82,211,111,221,111,4*22,-11,-13,-15,-1,-2,-3,-4,
11184 &2*21,211,111,3*22,-211,111,22,11,7*12,7*14,-321,-323,-311,-313,
11185 &-311,-313,211,213,211,213,211,213,111,221,331,113,223,111,221,
11186 &113,223,321,323,321,-211,-213,111,221,331,113,223,333,10221,111,
11187 &221,331,113,223,211,213,211,213,321,323,321,323,321,323,311,313,
11188 &311,313,2*-1,-3,-1,2203,3201,3203,2203,2101,2103,2*0,11,13,15,
11189 &-211,-213,-20213,-431,-433,3*3122,1,4,3,4,1,3,2*0,-211,11,22,111,
11190 &211,22,-211,111,22,-211,111,211,2*22,0,-211,111,211,2*22,0,
11191 &2*-211,111,22,111,211,22,211,2*-211,2*111,-211,2*211,111,211,
11192 &-211,2*111,211,-321,-211,111,11,-211,111,211,111,22,111,2*22,
11193 &-211,111,211,3*22,847*0/
11194 DATA (kfdp(i,3),i= 1, 944)/75*0,14,6*0,2*16,2*0,5*111,310,130,
11195 &2*0,2*111,310,130,321,113,211,223,221,2*113,2*211,2*223,2*221,
11196 &2*113,221,113,2*213,-213,195*0,4*3,4*4,1,4,3,2*2,10*81,25*0,-211,
11197 &3*111,-311,-313,-311,-321,-313,-323,111,221,331,113,223,-311,
11198 &-313,-311,-321,-313,-323,111,221,331,113,223,22*0,111,113,2*211,
11199 &-211,-311,211,111,3*211,-211,7*211,-321,-323,-311,-321,-313,-323,
11200 &-211,-213,-321,-323,-311,-321,-313,-323,-211,-213,22*0,111,113,
11201 &-311,2*-211,211,-211,310,-211,2*111,211,2*-211,-321,-211,2*211,
11202 &-211,111,-211,2*211,0,221,331,333,321,311,221,331,333,321,311,
11203 &20*0,3,0,-411,-413,-10413,-10411,-20413,-415,-411,-413,-10413,
11204 &-10411,-20413,-415,-411,-413,16*0,-4,-1,-4,-3,2*-2,-421,-423,
11205 &-10423,-10421,-20423,-425,-421,-423,-10423,-10421,-20423,-425,
11206 &-421,-423,16*0,-4,-1,-4,-3,2*-2,-431,-433,-10433,-10431,-20433,
11207 &-435,-431,-433,-10433,-10431,-20433,-435,-431,-433,19*0,-4,-1,-4,
11208 &-3,2*-2,3*0,441,443,441,443,441,443,-4,-1,-4,-3,-4,-3,-4,-1,531,
11209 &533,531,533,3,2,3,2,511,513,511,513,1,2,0,-11,0,2*111,-211,-11,
11210 &11,-13,2*221,3*0,111,27*0,111,2*0,22,111,5*0,111,12*0,2*21,103*0,
11211 &-211,2*111,-211,3*111,-211,111,211,14*0,111,6*0,111,-211,8*0,111,
11212 &-211,9*0,111,-211,111,-211,4*0,111,-211,111,-211,8*0,111,-211,
11213 &111,-211,4*0,111,-211,111,-211,11*0,-211,6*0,111,211,4*0,111/
11214 DATA (kfdp(i,3),i= 945,2000)/13*0,2*111,211,-211,211,-211,7*0,
11215 &-211,111,13*0,2*21,-211,111,6*0,2212,3122,3212,3214,2112,2114,
11216 &2212,2112,3122,3212,3214,2112,2114,2212,2112,52*0,3*3,1,8*0,
11217 &3*4122,8*0,4,1,4,3,2*2,3*0,2112,43*0,3322,861*0/
11218 DATA (kfdp(i,4),i= 1,2000)/88*0,3*111,8*0,-211,0,-211,3*0,111,
11219 &2*-211,0,111,0,2*111,113,221,111,-213,-211,211,195*0,13*81,41*0,
11220 &111,211,111,211,7*0,111,211,111,211,35*0,2*-211,2*111,211,111,
11221 &-211,2*211,2*-211,2*0,-211,111,-211,111,4*0,-211,111,-211,111,
11222 &34*0,111,-211,3*111,3*-211,2*111,3*-211,4*0,-321,-311,3*0,-321,
11223 &-311,20*0,-3,31*0,6*1,30*0,6*2,33*0,6*3,9*0,8*4,4*0,4*-5,4*0,
11224 &2*-5,7*0,-11,264*0,111,-211,4*0,111,57*0,-211,111,5*0,-211,111,
11225 &52*0,2101,2103,2*2101,19*0,6*2101,909*0/
11226 DATA (kfdp(i,5),i= 1,2000)/90*0,111,16*0,111,7*0,111,0,2*111,
11227 &303*0,-211,2*111,-211,111,-211,111,54*0,111,-211,3*111,-211,111,
11231 DATA (chaf(i) ,i= 1, 281)/
'd',
'u',
's',
'c',
'b',
't',
'l',
'h',
11232 &2*
' ',
'e',
'nu_e',
'mu',
'nu_mu',
'tau',
'nu_tau',
'chi',
'nu_chi',
11233 &2*
' ',
'g',
'gamma',
'Z',
'W',
'H',2*
' ',
'reggeon',
'pomeron',2*
' ',
11234 &
'Z''',
'Z"',
'W''',
'H''',
'A',
'H',
'eta_tech',
'LQ_ue',
'R',40*
' ',
11235 &
'specflav',
'rndmflav',
'phasespa',
'c-hadron',
'b-hadron',
11236 &
't-hadron',
'l-hadron',
'h-hadron',
'Wvirt',
'diquark',
'cluster',
11237 &
'string',
'indep.',
'CMshower',
'SPHEaxis',
'THRUaxis',
'CLUSjet',
11238 &
'CELLjet',
'table',
' ',
'pi',2*
'K',2*
'D',
'D_s',2*
'B',
'B_s',
'B_c',
11239 &
'pi',
'eta',
'eta''',
'eta_c',
'eta_b',
'eta_t',
'eta_l',
'eta_h',2*
' ',
11240 &
'rho',2*
'K*',2*
'D*',
'D*_s',2*
'B*',
'B*_s',
'B*_c',
'rho',
'omega',
11241 &
'phi',
'J/psi',
'Upsilon',
'Theta',
'Theta_l',
'Theta_h',2*
' ',
'b_1',
11242 &2*
'K_1',2*
'D_1',
'D_1s',2*
'B_1',
'B_1s',
'B_1c',
'b_1',
'h_1',
'h''_1',
11243 &
'h_1c',
'h_1b',
'h_1t',
'h_1l',
'h_1h',2*
' ',
'a_0',2*
'K*_0',2*
'D*_0',
11244 &
'D*_0s',2*
'B*_0',
'B*_0s',
'B*_0c',
'a_0',
'f_0',
'f''_0',
'chi_0c',
11245 &
'chi_0b',
'chi_0t',
'chi_0l',
'chi_0h',2*
' ',
'a_1',2*
'K*_1',
11246 &2*
'D*_1',
'D*_1s',2*
'B*_1',
'B*_1s',
'B*_1c',
'a_1',
'f_1',
'f''_1',
11247 &
'chi_1c',
'chi_1b',
'chi_1t',
'chi_1l',
'chi_1h',2*
' ',
'a_2',
11248 &2*
'K*_2',2*
'D*_2',
'D*_2s',2*
'B*_2',
'B*_2s',
'B*_2c',
'a_2',
'f_2',
11249 &
'f''_2',
'chi_2c',
'chi_2b',
'chi_2t',
'chi_2l',
'chi_2h',2*
' ',
'K_L',
11250 &
'K_S',8*
' ',
'psi''',3*
' ',
'Upsilon''',45*
' ',
'pi_diffr'/
11251 DATA (chaf(i) ,i= 282, 500)/
'n_diffr',
'p_diffr',
'rho_diff',
11252 &
'omega_di',
'phi_diff',
'J/psi_di',18*
' ',
'Lambda',5*
' ',
11253 &
'Lambda_c',
' ',2*
'Xi_c',6*
' ',
'Lambda_b',
' ',2*
'Xi_b',6*
' ',
'n',
11254 &
'p',
' ',3*
'Sigma',2*
'Xi',
' ',3*
'Sigma_c',2*
'Xi''_c',
'Omega_c',
11255 &4*
' ',3*
'Sigma_b',2*
'Xi''_b',
'Omega_b',4*
' ',4*
'Delta',
11256 &3*
'Sigma*',2*
'Xi*',
'Omega',3*
'Sigma*_c',2*
'Xi*_c',
'Omega*_c',
11257 &4*
' ',3*
'Sigma*_b',2*
'Xi*_b',
'Omega*_b',114*
' '/
11260 DATA mrlu/19780503,0,0,97,33,0/