21 SUBROUTINE inietc(ITAUXPAR,xpar)
29 COMMON / taurad / xk0dec,itdkrc
30 DOUBLE PRECISION XK0DEC
31 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
44 idff = xpar(itauxpar+3)
46 xk0dec = xpar(itauxpar+5)
48 itdkrc = xpar(itauxpar+4)
50 jak1 = xpar(itauxpar+1)
51 jak2 = xpar(itauxpar+2)
55 keya1 = xpar(itauxpar+6)
58 WRITE(iout,bxtxt)
' Parameters passed from KK to Tauola: '
59 WRITE(iout,bxl1i) jak1,
'dec. type 1-st tau ',
'Jak1 ',
't01'
60 WRITE(iout,bxl1i) jak2,
'dec. type 2-nd tau ',
'Jak2 ',
't02'
61 WRITE(iout,bxl1i) keya1,
'current type a1 dec.',
'KeyA1 ',
't03'
62 WRITE(iout,bxl1i) idff,
'PDG id 1-st tau ',
'idff ',
't04'
63 WRITE(iout,bxl1i) itdkrc,
'R.c. switch lept dec',
'itdkRC',
't05'
64 WRITE(iout,bxl1g) xk0dec,
'IR-cut for lept r.c.',
'xk0dec',
't06'
69 SUBROUTINE initdk(ITAUXPAR,xpar)
82 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
83 real*4 gfermi,gv,ga,ccabib,scabib,gamel
84 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
85 * ,ampiz,ampi,amro,gamro,ama1,gama1
86 * ,amk,amkz,amkst,gamkst
88 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
89 * ,ampiz,ampi,amro,gamro,ama1,gama1
90 * ,amk,amkz,amkst,gamkst
91 COMMON / taubra / gamprt(30),jlist(30),nchan
92 COMMON / taukle / bra1,brk0,brk0b,brks
93 real*4 bra1,brk0,brk0b,brks
95 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
96 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
98 CHARACTER NAMES(NMODE)*31
100 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
101 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
103 CHARACTER NAMES(NMODE)*31
105 CHARACTER OLDNAMES(7)*31
108 $ bxinit =
'(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
179 dimension nopik(6,nmode),npik(nmode)
190 DATA nopik / -1,-1, 2, 1, 0, 0, 2, 2, 2,-1, 0, 0,
191 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
192 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
193 3 -3,-1, 3, 0, 0, 0, 4,-1,-4, 0, 0, 0,
194 4 -3, 2, 4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
195 5 -3,-1, 1, 0, 0, 0, -1,-4, 2, 0, 0, 0,
196 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
198 DATA nopik / -1,-1, 1, 2, 0, 0, 2, 2, 2,-1, 0, 0,
199 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
200 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
201 3 -3,-1, 3, 0, 0, 0, -4,-1, 4, 0, 0, 0,
202 4 -3, 2,-4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
203 5 -3,-1, 1, 0, 0, 0, -1, 4, 2, 0, 0, 0,
204 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
208 7 -3,-4, 0, 0, 0, 0 /
210 7 -3, 4, 0, 0, 0, 0 /
218 IF(i.EQ. 1) gamprt(i) = 1.0000
219 IF(i.EQ. 2) gamprt(i) = 1.0000
220 IF(i.EQ. 3) gamprt(i) = 1.0000
221 IF(i.EQ. 4) gamprt(i) = 1.0000
222 IF(i.EQ. 5) gamprt(i) = 1.0000
223 IF(i.EQ. 6) gamprt(i) = 1.0000
224 IF(i.EQ. 7) gamprt(i) = 1.0000
225 IF(i.EQ. 8) gamprt(i) = 1.0000
226 IF(i.EQ. 9) gamprt(i) = 1.0000
227 IF(i.EQ.10) gamprt(i) = 1.0000
228 IF(i.EQ.11) gamprt(i) = 1.0000
229 IF(i.EQ.12) gamprt(i) = 1.0000
230 IF(i.EQ.13) gamprt(i) = 1.0000
231 IF(i.EQ.14) gamprt(i) = 1.0000
232 IF(i.EQ.15) gamprt(i) = 1.0000
233 IF(i.EQ.16) gamprt(i) = 1.0000
234 IF(i.EQ.17) gamprt(i) = 1.0000
235 IF(i.EQ.18) gamprt(i) = 1.0000
236 IF(i.EQ.19) gamprt(i) = 1.0000
237 IF(i.EQ.20) gamprt(i) = 1.0000
238 IF(i.EQ.21) gamprt(i) = 1.0000
239 IF(i.EQ.22) gamprt(i) = 1.0000
241 IF(i.EQ. 1) gamprt(i) =0.1800
242 IF(i.EQ. 2) gamprt(i) =0.1751
243 IF(i.EQ. 3) gamprt(i) =0.1110
244 IF(i.EQ. 4) gamprt(i) =0.2515
245 IF(i.EQ. 5) gamprt(i) =0.1790
246 IF(i.EQ. 6) gamprt(i) =0.0071
247 IF(i.EQ. 7) gamprt(i) =0.0134
248 IF(i.EQ. 8) gamprt(i) =0.0450
249 IF(i.EQ. 9) gamprt(i) =0.0100
250 IF(i.EQ.10) gamprt(i) =0.0009
251 IF(i.EQ.11) gamprt(i) =0.0004
252 IF(i.EQ.12) gamprt(i) =0.0003
253 IF(i.EQ.13) gamprt(i) =0.0005
254 IF(i.EQ.14) gamprt(i) =0.0015
255 IF(i.EQ.15) gamprt(i) =0.0015
256 IF(i.EQ.16) gamprt(i) =0.0015
257 IF(i.EQ.17) gamprt(i) =0.0005
258 IF(i.EQ.18) gamprt(i) =0.0050
259 IF(i.EQ.19) gamprt(i) =0.0055
260 IF(i.EQ.20) gamprt(i) =0.0017
261 IF(i.EQ.21) gamprt(i) =0.0013
262 IF(i.EQ.22) gamprt(i) =0.0010
263 #elif defined (ALEPH)
264 IF(i.EQ. 1) gamprt(i) = 1.0000
265 IF(i.EQ. 2) gamprt(i) = .9732
266 IF(i.EQ. 3) gamprt(i) = .6217
267 IF(i.EQ. 4) gamprt(i) = 1.4221
268 IF(i.EQ. 5) gamprt(i) = 1.0180
269 IF(i.EQ. 6) gamprt(i) = .0405
270 IF(i.EQ. 7) gamprt(i) = .0781
271 IF(i.EQ. 8) gamprt(i) = .2414
272 IF(i.EQ. 9) gamprt(i) = .0601
273 IF(i.EQ.10) gamprt(i) = .0281
274 IF(i.EQ.11) gamprt(i) = .0045
275 IF(i.EQ.12) gamprt(i) = .0010
276 IF(i.EQ.13) gamprt(i) = .0062
277 IF(i.EQ.14) gamprt(i) = .0096
278 IF(i.EQ.15) gamprt(i) = .0169
279 IF(i.EQ.16) gamprt(i) = .0056
280 IF(i.EQ.17) gamprt(i) = .0045
281 IF(i.EQ.18) gamprt(i) = .0219
282 IF(i.EQ.19) gamprt(i) = .0180
283 IF(i.EQ.20) gamprt(i) = .0096
284 IF(i.EQ.21) gamprt(i) = .0088
285 IF(i.EQ.22) gamprt(i) = .0146
288 IF(i.EQ. 1) oldnames(i)=
' TAU- --> E- '
289 IF(i.EQ. 2) oldnames(i)=
' TAU- --> MU- '
290 IF(i.EQ. 3) oldnames(i)=
' TAU- --> PI- '
291 IF(i.EQ. 4) oldnames(i)=
' TAU- --> PI-, PI0 '
292 IF(i.EQ. 5) oldnames(i)=
' TAU- --> A1- (two subch) '
293 IF(i.EQ. 6) oldnames(i)=
' TAU- --> K- '
294 IF(i.EQ. 7) oldnames(i)=
' TAU- --> K*- (two subch) '
295 IF(i.EQ. 8) names(i-7)=
' TAU- --> 2PI-, PI0, PI+ '
296 IF(i.EQ. 9) names(i-7)=
' TAU- --> 3PI0, PI- '
297 IF(i.EQ.10) names(i-7)=
' TAU- --> 2PI-, PI+, 2PI0 '
298 IF(i.EQ.11) names(i-7)=
' TAU- --> 3PI-, 2PI+, '
299 IF(i.EQ.12) names(i-7)=
' TAU- --> 3PI-, 2PI+, PI0 '
300 IF(i.EQ.13) names(i-7)=
' TAU- --> 2PI-, PI+, 3PI0 '
301 IF(i.EQ.14) names(i-7)=
' TAU- --> K-, PI-, K+ '
302 IF(i.EQ.15) names(i-7)=
' TAU- --> K0, PI-, K0B '
304 IF(i.EQ.16) names(i-7)=
' TAU- --> K- PI0 K0 '
306 IF(i.EQ.16) names(i-7)=
' TAU- --> K-, K0, PI0 '
308 IF(i.EQ.17) names(i-7)=
' TAU- --> PI0 PI0 K- '
309 IF(i.EQ.18) names(i-7)=
' TAU- --> K- PI- PI+ '
310 IF(i.EQ.19) names(i-7)=
' TAU- --> PI- K0B PI0 '
311 IF(i.EQ.20) names(i-7)=
' TAU- --> ETA PI- PI0 '
312 IF(i.EQ.21) names(i-7)=
' TAU- --> PI- PI0 GAM '
313 IF(i.EQ.22) names(i-7)=
' TAU- --> K- K0 '
322 idffin(j,i)=nopik(j,i)
349 IF (xpar(itauxpar+100+1).GT.-1d0)
THEN
351 ccabib = xpar(itauxpar+7)
352 gv = xpar(itauxpar+8)
353 ga = xpar(itauxpar+9)
355 bra1 = xpar(itauxpar+10)
356 brks = xpar(itauxpar+11)
357 brk0 = xpar(itauxpar+12)
358 brk0b = xpar(itauxpar+13)
360 gamprt(k)=xpar(itauxpar+100+k)
364 scabib = sqrt(1.-ccabib**2)
366 gamel = gfermi**2*amtau**5/(192*pi**3)
379 WRITE(iout,bxtxt)
' TAUOLA Initialization SUBROUTINE INITDK: '
380 WRITE(iout,bxtxt)
' Adopted to read from KK '
381 WRITE(iout,bxtxt)
' '
382 WRITE(iout,bxtxt)
' Choice Probability -- Decay Channel'
384 WRITE(iout,bxinit) gamprt(k)/sum, oldnames(k),
'****',
'***'
387 WRITE(iout,bxinit) gamprt(k)/sum, names(k-7),
'****',
'***'
389 WRITE(iout,bxtxt)
' In addition:'
390 WRITE(iout,bxinit) gv,
'Vector W-tau-nu coupl. ',
'****',
'***'
391 WRITE(iout,bxinit) ga,
'Axial W-tau-nu coupl. ',
'****',
'***'
392 WRITE(iout,bxinit) gfermi,
'Fermi Coupling ',
'****',
'***'
393 WRITE(iout,bxinit) ccabib,
'cabibo angle ',
'****',
'***'
394 WRITE(iout,bxinit) bra1,
'a1 br ratio (massless) ',
'****',
'***'
395 WRITE(iout,bxinit) brks,
'K* br ratio (massless) ',
'****',
'***'
401 SUBROUTINE iniphy(XK00)
406 COMMON / qedprm /alfinv,alfpi,xk0
407 real*8 alfinv,alfpi,xk0
410 pi8 = 4.d0*datan(1.d0)
412 alfpi = 1d0/(alfinv*pi8)
416 SUBROUTINE inimas(ITAUXPAR,xpar)
428 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
429 * ,ampiz,ampi,amro,gamro,ama1,gama1
430 * ,amk,amkz,amkst,gamkst
432 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
433 * ,ampiz,ampi,amro,gamro,ama1,gama1
434 * ,amk,amkz,amkst,gamkst
437 $ bxinit =
'(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
492 #elif defined (ALEPH)
501 print *,
'INIMAS a1 mass= ',ama1,gama1
510 WRITE(iout,bxtxt)
' TAUOLA Initialization SUBROUTINE INIMAS: '
511 WRITE(iout,bxtxt)
' Adopted to read from KK '
512 WRITE(iout,bxinit) amtau,
'AMTAU tau-mass ',
'****',
'***'
513 WRITE(iout,bxinit) amel ,
'AMEL electron-mass ',
'****',
'***'
514 WRITE(iout,bxinit) ammu ,
'AMMU muon-mass ',
'****',
'***'
518 SUBROUTINE choice(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
519 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
520 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
521 * ,ampiz,ampi,amro,gamro,ama1,gama1
522 * ,amk,amkz,amkst,gamkst
524 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
525 * ,ampiz,ampi,amro,gamro,ama1,gama1
526 * ,amk,amkz,amkst,gamkst
542 ELSEIF(mnum.EQ.1)
THEN
551 ELSEIF(mnum.EQ.2)
THEN
560 ELSEIF(mnum.EQ.3)
THEN
569 ELSEIF(mnum.EQ.4)
THEN
578 ELSEIF(mnum.EQ.5)
THEN
587 ELSEIF(mnum.EQ.6)
THEN
596 ELSEIF(mnum.EQ.7)
THEN
605 ELSEIF(mnum.EQ.8)
THEN
614 ELSEIF(mnum.EQ.101)
THEN
623 ELSEIF(mnum.EQ.102)
THEN
643 IF (rr.LE.prob1)
THEN
645 ELSEIF(rr.LE.(prob1+prob2))
THEN
660 prob3=1.0-prob1-prob2
662 FUNCTION dcdmas(IDENT)
663 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
664 * ,ampiz,ampi,amro,gamro,ama1,gama1
665 * ,amk,amkz,amkst,gamkst
667 real*4 amtau,amnuta,amel,amnue,ammu,amnumu
668 * ,ampiz,ampi,amro,gamro,ama1,gama1
669 * ,amk,amkz,amkst,gamkst
670 IF (ident.EQ. 1)
THEN
672 ELSEIF (ident.EQ.-1)
THEN
674 ELSEIF (ident.EQ. 2)
THEN
676 ELSEIF (ident.EQ.-2)
THEN
678 ELSEIF (ident.EQ. 3)
THEN
680 ELSEIF (ident.EQ.-3)
THEN
682 ELSEIF (ident.EQ. 4)
THEN
684 ELSEIF (ident.EQ.-4)
THEN
686 ELSEIF (ident.EQ. 8)
THEN
688 ELSEIF (ident.EQ.-8)
THEN
690 ELSEIF (ident.EQ. 9)
THEN
692 ELSEIF (ident.EQ.-9)
THEN
695 print *,
'STOP IN APKMAS, WRONG IDENT=',ident
700 FUNCTION lunpik(ID,ISGN)
701 COMMON / taukle / bra1,brk0,brk0b,brks
702 real*4 bra1,brk0,brk0b,brks
706 IF (ident.EQ. 1)
THEN
708 ELSEIF (ident.EQ.-1)
THEN
710 ELSEIF (ident.EQ. 2)
THEN
712 ELSEIF (ident.EQ.-2)
THEN
714 ELSEIF (ident.EQ. 3)
THEN
716 ELSEIF (ident.EQ.-3)
THEN
719 IF (ident.EQ. 1)
THEN
721 ELSEIF (ident.EQ.-1)
THEN
723 ELSEIF (ident.EQ. 2)
THEN
725 ELSEIF (ident.EQ.-2)
THEN
727 ELSEIF (ident.EQ. 3)
THEN
729 ELSEIF (ident.EQ.-3)
THEN
732 ELSEIF (ident.EQ. 4)
THEN
736 IF (xio(1).GT.brk0)
THEN
741 ELSEIF (ident.EQ.-4)
THEN
745 IF (xio(1).GT.brk0b)
THEN
750 ELSEIF (ident.EQ. 8)
THEN
752 ELSEIF (ident.EQ.-8)
THEN
754 ELSEIF (ident.EQ. 9)
THEN
756 ELSEIF (ident.EQ.-9)
THEN
759 print *,
'STOP IN IPKDEF, WRONG IDENT=',ident
768 SUBROUTINE taurdf(KTO)
772 COMMON / taukle / bra1,brk0,brk0b,brks
773 real*4 bra1,brk0,brk0b,brks
774 COMMON / taubra / gamprt(30),jlist(30),nchan
794 SUBROUTINE taurdf(KTO)
798 COMMON / taukle / bra1,brk0,brk0b,brks
799 real*4 bra1,brk0,brk0b,brks
800 COMMON / taubra / gamprt(30),jlist(30),nchan
808 IF(i.EQ. 1) gamprt(i) = .0000
809 IF(i.EQ. 2) gamprt(i) = .0000
810 IF(i.EQ. 3) gamprt(i) = .0000
811 IF(i.EQ. 4) gamprt(i) = .0000
812 IF(i.EQ. 5) gamprt(i) = .0000
813 IF(i.EQ. 6) gamprt(i) = .0000
814 IF(i.EQ. 7) gamprt(i) = .0000
815 IF(i.EQ. 8) gamprt(i) = 1.0000
816 IF(i.EQ. 9) gamprt(i) = 1.0000
817 IF(i.EQ.10) gamprt(i) = 1.0000
818 IF(i.EQ.11) gamprt(i) = 1.0000
819 IF(i.EQ.12) gamprt(i) = 1.0000
820 IF(i.EQ.13) gamprt(i) = 1.0000
821 IF(i.EQ.14) gamprt(i) = 1.0000
822 IF(i.EQ.15) gamprt(i) = 1.0000
823 IF(i.EQ.16) gamprt(i) = 1.0000
824 IF(i.EQ.17) gamprt(i) = 1.0000
825 IF(i.EQ.18) gamprt(i) = 1.0000
826 IF(i.EQ.19) gamprt(i) = 1.0000
851 IF(i.EQ. 1) gamprt(i) = .0000
852 IF(i.EQ. 2) gamprt(i) = .0000
853 IF(i.EQ. 3) gamprt(i) = .0000
854 IF(i.EQ. 4) gamprt(i) = .0000
855 IF(i.EQ. 5) gamprt(i) = .0000
856 IF(i.EQ. 6) gamprt(i) = .0000
857 IF(i.EQ. 7) gamprt(i) = .0000
858 IF(i.EQ. 8) gamprt(i) = 1.0000
859 IF(i.EQ. 9) gamprt(i) = 1.0000
860 IF(i.EQ.10) gamprt(i) = 1.0000
861 IF(i.EQ.11) gamprt(i) = 1.0000
862 IF(i.EQ.12) gamprt(i) = 1.0000
863 IF(i.EQ.13) gamprt(i) = 1.0000
864 IF(i.EQ.14) gamprt(i) = 1.0000
865 IF(i.EQ.15) gamprt(i) = 1.0000
866 IF(i.EQ.16) gamprt(i) = 1.0000
867 IF(i.EQ.17) gamprt(i) = 1.0000
868 IF(i.EQ.18) gamprt(i) = 1.0000
869 IF(i.EQ.19) gamprt(i) = 1.0000