6 SUBROUTINE inietc(jakk1,jakk2,itd,ifpho)
8 COMMON / taurad / xk0dec,itdkrc
9 DOUBLE PRECISION XK0DEC
10 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
11 COMMON /phoact/ ifphot
26 SUBROUTINE tralo4(KTOS,PHOI,PHOF,AM)
30 COMMON / momdec / q1,q2,p1,p2,p3,p4
32 double precision Q1(4),Q2(4),P1(4),P2(4),P3(4),P4(4)
33 double precision PIN(4),POUT(4),PBST(4),PBS1(4),QQ(4),PI
34 double precision THET,PHI
35 real*4 phoi(4),phof(4)
37 DATA pi /3.141592653589793238462643d0/
39 $ (phoi(4)**2-phoi(3)**2-phoi(2)**2-phoi(1)**2))
51 ELSEIF(idtra.EQ.2)
THEN
56 ELSEIF(idtra.EQ.3)
THEN
68 IF(ktos.EQ.1)
CALL rotod2(pi,pin,pin)
70 CALL bostdq(1,qq,pbst,pbst)
72 pbs1(3)=sqrt(pbst(3)**2+pbst(2)**2+pbst(1)**2)
75 CALL bostdq(-1,pbs1,pin,pout)
76 thet=acos(pbst(3)/sqrt(pbst(3)**2+pbst(2)**2+pbst(1)**2))
78 phi=acos(pbst(1)/sqrt(pbst(2)**2+pbst(1)**2))
79 IF(pbst(2).LT.0d0) phi=2*pi-phi
80 CALL rotpox(thet,phi,pout)
81 CALL bostdq(-1,qq,pout,pout)
88 SUBROUTINE choice(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
89 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
90 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
91 * ,ampiz,ampi,amro,gamro,ama1,gama1
92 * ,amk,amkz,amkst,gamkst
94 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
95 * ,ampiz,ampi,amro,gamro,ama1,gama1
96 * ,amk,amkz,amkst,gamkst
112 ELSEIF(mnum.EQ.1)
THEN
121 ELSEIF(mnum.EQ.2)
THEN
130 ELSEIF(mnum.EQ.3)
THEN
139 ELSEIF(mnum.EQ.4)
THEN
148 ELSEIF(mnum.EQ.5)
THEN
157 ELSEIF(mnum.EQ.6)
THEN
166 ELSEIF(mnum.EQ.7)
THEN
175 ELSEIF(mnum.EQ.8)
THEN
184 ELSEIF(mnum.EQ.101)
THEN
193 ELSEIF(mnum.EQ.102)
THEN
213 IF (rr.LE.prob1)
THEN
215 ELSEIF(rr.LE.(prob1+prob2))
THEN
230 prob3=1.0-prob1-prob2
239 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
240 real*4 gfermi,gv,ga,ccabib,scabib,gamel
241 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
242 * ,ampiz,ampi,amro,gamro,ama1,gama1
243 * ,amk,amkz,amkst,gamkst
245 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
246 * ,ampiz,ampi,amro,gamro,ama1,gama1
247 * ,amk,amkz,amkst,gamkst
248 COMMON / taubra / gamprt(30),jlist(30),nchan
249 COMMON / taukle / bra1,brk0,brk0b,brks
250 real*4 bra1,brk0,brk0b,brks
252 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
253 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
255 CHARACTER NAMES(NMODE)*31
257 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
258 COMMON / decomp /idffin(9,nmode),mulpik(nmode)
260 CHARACTER NAMES(NMODE)*31
330 dimension nopik(6,nmode),npik(nmode)
341 DATA nopik / -1,-1, 2, 1, 0, 0, 2, 2, 2,-1, 0, 0,
342 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
343 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
344 3 -3,-1, 3, 0, 0, 0, 4,-1,-4, 0, 0, 0,
345 4 -3, 2, 4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
346 5 -3,-1, 1, 0, 0, 0, -1,-4, 2, 0, 0, 0,
347 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
349 DATA nopik / -1,-1, 1, 2, 0, 0, 2, 2, 2,-1, 0, 0,
350 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
351 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
352 3 -3,-1, 3, 0, 0, 0, -4,-1, 4, 0, 0, 0,
353 4 -3, 2,-4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
354 5 -3,-1, 1, 0, 0, 0, -1, 4, 2, 0, 0, 0,
355 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
359 7 -3,-4, 0, 0, 0, 0 /
361 7 -3, 4, 0, 0, 0, 0 /
368 IF(i.EQ. 1) gamprt(i) = 1.0000
369 IF(i.EQ. 2) gamprt(i) = 1.0000
370 IF(i.EQ. 3) gamprt(i) = 1.0000
371 IF(i.EQ. 4) gamprt(i) = 1.0000
372 IF(i.EQ. 5) gamprt(i) = 1.0000
373 IF(i.EQ. 6) gamprt(i) = 1.0000
374 IF(i.EQ. 7) gamprt(i) = 1.0000
375 IF(i.EQ. 8) gamprt(i) = 1.0000
376 IF(i.EQ. 9) gamprt(i) = 1.0000
377 IF(i.EQ.10) gamprt(i) = 1.0000
378 IF(i.EQ.11) gamprt(i) = 1.0000
379 IF(i.EQ.12) gamprt(i) = 1.0000
380 IF(i.EQ.13) gamprt(i) = 1.0000
381 IF(i.EQ.14) gamprt(i) = 1.0000
382 IF(i.EQ.15) gamprt(i) = 1.0000
383 IF(i.EQ.16) gamprt(i) = 1.0000
384 IF(i.EQ.17) gamprt(i) = 1.0000
385 IF(i.EQ.18) gamprt(i) = 1.0000
386 IF(i.EQ.19) gamprt(i) = 1.0000
387 IF(i.EQ.20) gamprt(i) = 1.0000
388 IF(i.EQ.21) gamprt(i) = 1.0000
389 IF(i.EQ.22) gamprt(i) = 1.0000
391 IF(i.EQ. 1) gamprt(i) = 1.0000
392 IF(i.EQ. 2) gamprt(i) = 1.0000
393 IF(i.EQ. 3) gamprt(i) = 1.0000
394 IF(i.EQ. 4) gamprt(i) = 1.0000
395 IF(i.EQ. 5) gamprt(i) = 1.0000
396 IF(i.EQ. 6) gamprt(i) = 1.0000
397 IF(i.EQ. 7) gamprt(i) = 1.0000
398 IF(i.EQ. 8) gamprt(i) = 1.0000
399 IF(i.EQ. 9) gamprt(i) = 1.0000
400 IF(i.EQ.10) gamprt(i) = 1.0000
401 IF(i.EQ.11) gamprt(i) = 1.0000
402 IF(i.EQ.12) gamprt(i) = 1.0000
403 IF(i.EQ.13) gamprt(i) = 1.0000
404 IF(i.EQ.14) gamprt(i) = 1.0000
405 IF(i.EQ.15) gamprt(i) = 1.0000
406 IF(i.EQ.16) gamprt(i) = 1.0000
407 IF(i.EQ.17) gamprt(i) = 1.0000
408 IF(i.EQ.18) gamprt(i) = 1.0000
409 IF(i.EQ.19) gamprt(i) = 1.0000
410 IF(i.EQ.20) gamprt(i) = 1.0000
411 IF(i.EQ.21) gamprt(i) = 1.0000
412 IF(i.EQ.22) gamprt(i) = 1.0000
414 IF(i.EQ. 1) gamprt(i) =0.1800
415 IF(i.EQ. 2) gamprt(i) =0.1751
416 IF(i.EQ. 3) gamprt(i) =0.1110
417 IF(i.EQ. 4) gamprt(i) =0.2515
418 IF(i.EQ. 5) gamprt(i) =0.1790
419 IF(i.EQ. 6) gamprt(i) =0.0071
420 IF(i.EQ. 7) gamprt(i) =0.0134
421 IF(i.EQ. 8) gamprt(i) =0.0450
422 IF(i.EQ. 9) gamprt(i) =0.0100
423 IF(i.EQ.10) gamprt(i) =0.0009
424 IF(i.EQ.11) gamprt(i) =0.0004
425 IF(i.EQ.12) gamprt(i) =0.0003
426 IF(i.EQ.13) gamprt(i) =0.0005
427 IF(i.EQ.14) gamprt(i) =0.0015
428 IF(i.EQ.15) gamprt(i) =0.0015
429 IF(i.EQ.16) gamprt(i) =0.0015
430 IF(i.EQ.17) gamprt(i) =0.0005
431 IF(i.EQ.18) gamprt(i) =0.0050
432 IF(i.EQ.19) gamprt(i) =0.0055
433 IF(i.EQ.20) gamprt(i) =0.0017
434 IF(i.EQ.21) gamprt(i) =0.0013
435 IF(i.EQ.22) gamprt(i) =0.0010
436 #elif defined (ALEPH)
437 IF(i.EQ. 1) gamprt(i) = 1.0000
438 IF(i.EQ. 2) gamprt(i) = .9732
439 IF(i.EQ. 3) gamprt(i) = .6217
440 IF(i.EQ. 4) gamprt(i) = 1.4221
441 IF(i.EQ. 5) gamprt(i) = 1.0180
442 IF(i.EQ. 6) gamprt(i) = .0405
443 IF(i.EQ. 7) gamprt(i) = .0781
444 IF(i.EQ. 8) gamprt(i) = .2414
445 IF(i.EQ. 9) gamprt(i) = .0601
446 IF(i.EQ.10) gamprt(i) = .0281
447 IF(i.EQ.11) gamprt(i) = .0045
448 IF(i.EQ.12) gamprt(i) = .0010
449 IF(i.EQ.13) gamprt(i) = .0062
450 IF(i.EQ.14) gamprt(i) = .0096
451 IF(i.EQ.15) gamprt(i) = .0169
452 IF(i.EQ.16) gamprt(i) = .0056
453 IF(i.EQ.17) gamprt(i) = .0045
454 IF(i.EQ.18) gamprt(i) = .0219
455 IF(i.EQ.19) gamprt(i) = .0180
456 IF(i.EQ.20) gamprt(i) = .0096
457 IF(i.EQ.21) gamprt(i) = .0088
458 IF(i.EQ.22) gamprt(i) = .0146
461 IF(i.EQ. 8) names(i-7)=
' TAU- --> 2PI-, PI0, PI+ '
462 IF(i.EQ. 9) names(i-7)=
' TAU- --> 3PI0, PI- '
463 IF(i.EQ.10) names(i-7)=
' TAU- --> 2PI-, PI+, 2PI0 '
464 IF(i.EQ.11) names(i-7)=
' TAU- --> 3PI-, 2PI+, '
465 IF(i.EQ.12) names(i-7)=
' TAU- --> 3PI-, 2PI+, PI0 '
466 IF(i.EQ.13) names(i-7)=
' TAU- --> 2PI-, PI+, 3PI0 '
467 IF(i.EQ.14) names(i-7)=
' TAU- --> K-, PI-, K+ '
468 IF(i.EQ.15) names(i-7)=
' TAU- --> K0, PI-, K0B '
470 IF(i.EQ.16) names(i-7)=
' TAU- --> K- PI0 K0 '
472 IF(i.EQ.16) names(i-7)=
' TAU- --> K-, K0, PI0 '
474 IF(i.EQ.17) names(i-7)=
' TAU- --> PI0, PI0, K- '
475 IF(i.EQ.18) names(i-7)=
' TAU- --> K-, PI-, PI+ '
476 IF(i.EQ.19) names(i-7)=
' TAU- --> PI-, K0B, PI0 '
477 IF(i.EQ.20) names(i-7)=
' TAU- --> ETA, PI-, PI0 '
478 IF(i.EQ.21) names(i-7)=
' TAU- --> PI-, PI0, GAM '
479 IF(i.EQ.22) names(i-7)=
' TAU- --> K-, K0 '
488 idffin(j,i)=nopik(j,i)
513 scabib = sqrt(1.-ccabib**2)
514 gamel = gfermi**2*amtau**5/(192*pi**3)
520 FUNCTION dcdmas(IDENT)
521 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
522 * ,ampiz,ampi,amro,gamro,ama1,gama1
523 * ,amk,amkz,amkst,gamkst
525 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
526 * ,ampiz,ampi,amro,gamro,ama1,gama1
527 * ,amk,amkz,amkst,gamkst
528 IF (ident.EQ. 1)
THEN
530 ELSEIF (ident.EQ.-1)
THEN
532 ELSEIF (ident.EQ. 2)
THEN
534 ELSEIF (ident.EQ.-2)
THEN
536 ELSEIF (ident.EQ. 3)
THEN
538 ELSEIF (ident.EQ.-3)
THEN
540 ELSEIF (ident.EQ. 4)
THEN
542 ELSEIF (ident.EQ.-4)
THEN
544 ELSEIF (ident.EQ. 8)
THEN
546 ELSEIF (ident.EQ.-8)
THEN
548 ELSEIF (ident.EQ. 9)
THEN
550 ELSEIF (ident.EQ.-9)
THEN
553 print *,
'STOP IN APKMAS, WRONG IDENT=',ident
559 FUNCTION lunpik(ID,ISGN)
560 COMMON / taukle / bra1,brk0,brk0b,brks
561 real*4 bra1,brk0,brk0b,brks
566 IF (ident.EQ. 1)
THEN
568 ELSEIF (ident.EQ.-1)
THEN
570 ELSEIF (ident.EQ. 2)
THEN
572 ELSEIF (ident.EQ.-2)
THEN
574 ELSEIF (ident.EQ. 3)
THEN
576 ELSEIF (ident.EQ.-3)
THEN
579 IF (ident.EQ. 1)
THEN
581 ELSEIF (ident.EQ.-1)
THEN
583 ELSEIF (ident.EQ. 2)
THEN
585 ELSEIF (ident.EQ.-2)
THEN
587 ELSEIF (ident.EQ. 3)
THEN
589 ELSEIF (ident.EQ.-3)
THEN
592 ELSEIF (ident.EQ. 4)
THEN
596 IF (xio(1).GT.brk0)
THEN
601 ELSEIF (ident.EQ.-4)
THEN
605 IF (xio(1).GT.brk0b)
THEN
610 ELSEIF (ident.EQ. 8)
THEN
612 ELSEIF (ident.EQ.-8)
THEN
614 ELSEIF (ident.EQ. 9)
THEN
616 ELSEIF (ident.EQ.-9)
THEN
619 print *,
'STOP IN IPKDEF, WRONG IDENT=',ident
626 SUBROUTINE taurdf(KTO)
630 COMMON / taukle / bra1,brk0,brk0b,brks
631 real*4 bra1,brk0,brk0b,brks
632 COMMON / taubra / gamprt(30),jlist(30),nchan
652 SUBROUTINE taurdf(KTO)
656 COMMON / taukle / bra1,brk0,brk0b,brks
657 real*4 bra1,brk0,brk0b,brks
658 COMMON / taubra / gamprt(30),jlist(30),nchan
666 IF(i.EQ. 1) gamprt(i) = .0000
667 IF(i.EQ. 2) gamprt(i) = .0000
668 IF(i.EQ. 3) gamprt(i) = .0000
669 IF(i.EQ. 4) gamprt(i) = .0000
670 IF(i.EQ. 5) gamprt(i) = .0000
671 IF(i.EQ. 6) gamprt(i) = .0000
672 IF(i.EQ. 7) gamprt(i) = .0000
673 IF(i.EQ. 8) gamprt(i) = 1.0000
674 IF(i.EQ. 9) gamprt(i) = 1.0000
675 IF(i.EQ.10) gamprt(i) = 1.0000
676 IF(i.EQ.11) gamprt(i) = 1.0000
677 IF(i.EQ.12) gamprt(i) = 1.0000
678 IF(i.EQ.13) gamprt(i) = 1.0000
679 IF(i.EQ.14) gamprt(i) = 1.0000
680 IF(i.EQ.15) gamprt(i) = 1.0000
681 IF(i.EQ.16) gamprt(i) = 1.0000
682 IF(i.EQ.17) gamprt(i) = 1.0000
683 IF(i.EQ.18) gamprt(i) = 1.0000
684 IF(i.EQ.19) gamprt(i) = 1.0000
709 IF(i.EQ. 1) gamprt(i) = .0000
710 IF(i.EQ. 2) gamprt(i) = .0000
711 IF(i.EQ. 3) gamprt(i) = .0000
712 IF(i.EQ. 4) gamprt(i) = .0000
713 IF(i.EQ. 5) gamprt(i) = .0000
714 IF(i.EQ. 6) gamprt(i) = .0000
715 IF(i.EQ. 7) gamprt(i) = .0000
716 IF(i.EQ. 8) gamprt(i) = 1.0000
717 IF(i.EQ. 9) gamprt(i) = 1.0000
718 IF(i.EQ.10) gamprt(i) = 1.0000
719 IF(i.EQ.11) gamprt(i) = 1.0000
720 IF(i.EQ.12) gamprt(i) = 1.0000
721 IF(i.EQ.13) gamprt(i) = 1.0000
722 IF(i.EQ.14) gamprt(i) = 1.0000
723 IF(i.EQ.15) gamprt(i) = 1.0000
724 IF(i.EQ.16) gamprt(i) = 1.0000
725 IF(i.EQ.17) gamprt(i) = 1.0000
726 IF(i.EQ.18) gamprt(i) = 1.0000
727 IF(i.EQ.19) gamprt(i) = 1.0000
749 SUBROUTINE iniphx(XK00)
754 COMMON / qedprm /alfinv,alfpi,xk0
755 real*8 alfinv,alfpi,xk0
758 pi8 = 4.d0*datan(1.d0)
760 alfpi = 1d0/(alfinv*pi8)
769 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
770 * ,ampiz,ampi,amro,gamro,ama1,gama1
771 * ,amk,amkz,amkst,gamkst
773 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
774 * ,ampiz,ampi,amro,gamro,ama1,gama1
775 * ,amk,amkz,amkst,gamkst
842 #elif defined (ALEPH)
851 print *,
'INIMAS a1 mass= ',ama1,gama1
861 subroutine bostdq(idir,vv,pp,q)
873 implicit DOUBLE PRECISION (a-h,o-z)
875 DOUBLE PRECISION v(4),p(4),q(4),pp(4),vv(4)
881 amv=(v(4)**2-v(1)**2-v(2)**2-v(3)**2)
883 write(6,*)
'bosstv: warning amv**2=',amv
887 q(4)=( p(1)*v(1)+p(2)*v(2)+p(3)*v(3)+p(4)*v(4))/amv
888 wsp =(q(4)+p(4))/(v(4)+amv)
889 elseif (idir.eq.1)
then
890 q(4)=(-p(1)*v(1)-p(2)*v(2)-p(3)*v(3)+p(4)*v(4))/amv
891 wsp =-(q(4)+p(4))/(v(4)+amv)
893 write(nout,*)
' >>> boostv: wrong value of idir = ',idir
904 IMPLICIT REAL*8(a-h,o-z)
907 IF(x .LT.-1.0)
GO TO 1
908 IF(x .LE. 0.5)
GO TO 2
909 IF(x .EQ. 1.0)
GO TO 3
910 IF(x .LE. 2.0)
GO TO 4
914 z=z-0.5* log(abs(x))**2
920 3 dilogy=1.64493406684822
924 z=1.64493406684822 - log(x)* log(abs(t))
925 5 y=2.66666666666666 *t+0.66666666666666
926 b= 0.00000 00000 00001
927 a=y*b +0.00000 00000 00004
928 b=y*a-b+0.00000 00000 00011
929 a=y*b-a+0.00000 00000 00037
930 b=y*a-b+0.00000 00000 00121
931 a=y*b-a+0.00000 00000 00398
932 b=y*a-b+0.00000 00000 01312
933 a=y*b-a+0.00000 00000 04342
934 b=y*a-b+0.00000 00000 14437
935 a=y*b-a+0.00000 00000 48274
936 b=y*a-b+0.00000 00001 62421
937 a=y*b-a+0.00000 00005 50291
938 b=y*a-b+0.00000 00018 79117
939 a=y*b-a+0.00000 00064 74338
940 b=y*a-b+0.00000 00225 36705
941 a=y*b-a+0.00000 00793 87055
942 b=y*a-b+0.00000 02835 75385
943 a=y*b-a+0.00000 10299 04264
944 b=y*a-b+0.00000 38163 29463
945 a=y*b-a+0.00001 44963 00557
946 b=y*a-b+0.00005 68178 22718
947 a=y*b-a+0.00023 20021 96094
948 b=y*a-b+0.00100 16274 96164
949 a=y*b-a+0.00468 63619 59447
950 b=y*a-b+0.02487 93229 24228
951 a=y*b-a+0.16607 30329 27855
952 a=y*a-b+1.93506 43008 6996