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)
81 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
82 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
83 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
84 * ,ampiz,ampi,amro,gamro,ama1,gama1
85 * ,amk,amkz,amkst,gamkst
87 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
88 * ,ampiz,ampi,amro,gamro,ama1,gama1
89 * ,amk,amkz,amkst,gamkst
90 COMMON / taubra / gamprt(30),jlist(30),nchan
91 COMMON / taukle / bra1,brk0,brk0b,brks
92 REAL*4 bra1,brk0,brk0b,brks
94 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
95 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
97 CHARACTER names(nmode)*31
99 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
100 COMMON / decomp /idffin(9,nmode),mulpik(nmode)
102 CHARACTER names(nmode)*31
104 CHARACTER oldnames(7)*31
107 $ bxinit =
'(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
178 dimension nopik(6,nmode),npik(nmode)
189 DATA nopik / -1,-1, 2, 1, 0, 0, 2, 2, 2,-1, 0, 0,
190 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
191 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
192 3 -3,-1, 3, 0, 0, 0, 4,-1,-4, 0, 0, 0,
193 4 -3, 2, 4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
194 5 -3,-1, 1, 0, 0, 0, -1,-4, 2, 0, 0, 0,
195 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
197 DATA nopik / -1,-1, 1, 2, 0, 0, 2, 2, 2,-1, 0, 0,
198 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
199 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
200 3 -3,-1, 3, 0, 0, 0, -4,-1, 4, 0, 0, 0,
201 4 -3, 2,-4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
202 5 -3,-1, 1, 0, 0, 0, -1, 4, 2, 0, 0, 0,
203 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
207 7 -3,-4, 0, 0, 0, 0 /
209 7 -3, 4, 0, 0, 0, 0 /
217 IF(i.EQ. 1) gamprt(i) = 1.0000
218 IF(i.EQ. 2) gamprt(i) = 1.0000
219 IF(i.EQ. 3) gamprt(i) = 1.0000
220 IF(i.EQ. 4) gamprt(i) = 1.0000
221 IF(i.EQ. 5) gamprt(i) = 1.0000
222 IF(i.EQ. 6) gamprt(i) = 1.0000
223 IF(i.EQ. 7) gamprt(i) = 1.0000
224 IF(i.EQ. 8) gamprt(i) = 1.0000
225 IF(i.EQ. 9) gamprt(i) = 1.0000
226 IF(i.EQ.10) gamprt(i) = 1.0000
227 IF(i.EQ.11) gamprt(i) = 1.0000
228 IF(i.EQ.12) gamprt(i) = 1.0000
229 IF(i.EQ.13) gamprt(i) = 1.0000
230 IF(i.EQ.14) gamprt(i) = 1.0000
231 IF(i.EQ.15) gamprt(i) = 1.0000
232 IF(i.EQ.16) gamprt(i) = 1.0000
233 IF(i.EQ.17) gamprt(i) = 1.0000
234 IF(i.EQ.18) gamprt(i) = 1.0000
235 IF(i.EQ.19) gamprt(i) = 1.0000
236 IF(i.EQ.20) gamprt(i) = 1.0000
237 IF(i.EQ.21) gamprt(i) = 1.0000
238 IF(i.EQ.22) gamprt(i) = 1.0000
240 IF(i.EQ. 1) gamprt(i) =0.1800
241 IF(i.EQ. 2) gamprt(i) =0.1751
242 IF(i.EQ. 3) gamprt(i) =0.1110
243 IF(i.EQ. 4) gamprt(i) =0.2515
244 IF(i.EQ. 5) gamprt(i) =0.1790
245 IF(i.EQ. 6) gamprt(i) =0.0071
246 IF(i.EQ. 7) gamprt(i) =0.0134
247 IF(i.EQ. 8) gamprt(i) =0.0450
248 IF(i.EQ. 9) gamprt(i) =0.0100
249 IF(i.EQ.10) gamprt(i) =0.0009
250 IF(i.EQ.11) gamprt(i) =0.0004
251 IF(i.EQ.12) gamprt(i) =0.0003
252 IF(i.EQ.13) gamprt(i) =0.0005
253 IF(i.EQ.14) gamprt(i) =0.0015
254 IF(i.EQ.15) gamprt(i) =0.0015
255 IF(i.EQ.16) gamprt(i) =0.0015
256 IF(i.EQ.17) gamprt(i) =0.0005
257 IF(i.EQ.18) gamprt(i) =0.0050
258 IF(i.EQ.19) gamprt(i) =0.0055
259 IF(i.EQ.20) gamprt(i) =0.0017
260 IF(i.EQ.21) gamprt(i) =0.0013
261 IF(i.EQ.22) gamprt(i) =0.0010
262 #elif defined (ALEPH)
263 IF(i.EQ. 1) gamprt(i) = 1.0000
264 IF(i.EQ. 2) gamprt(i) = .9732
265 IF(i.EQ. 3) gamprt(i) = .6217
266 IF(i.EQ. 4) gamprt(i) = 1.4221
267 IF(i.EQ. 5) gamprt(i) = 1.0180
268 IF(i.EQ. 6) gamprt(i) = .0405
269 IF(i.EQ. 7) gamprt(i) = .0781
270 IF(i.EQ. 8) gamprt(i) = .2414
271 IF(i.EQ. 9) gamprt(i) = .0601
272 IF(i.EQ.10) gamprt(i) = .0281
273 IF(i.EQ.11) gamprt(i) = .0045
274 IF(i.EQ.12) gamprt(i) = .0010
275 IF(i.EQ.13) gamprt(i) = .0062
276 IF(i.EQ.14) gamprt(i) = .0096
277 IF(i.EQ.15) gamprt(i) = .0169
278 IF(i.EQ.16) gamprt(i) = .0056
279 IF(i.EQ.17) gamprt(i) = .0045
280 IF(i.EQ.18) gamprt(i) = .0219
281 IF(i.EQ.19) gamprt(i) = .0180
282 IF(i.EQ.20) gamprt(i) = .0096
283 IF(i.EQ.21) gamprt(i) = .0088
284 IF(i.EQ.22) gamprt(i) = .0146
287 IF(i.EQ. 1) oldnames(i)=
' TAU- --> E- '
288 IF(i.EQ. 2) oldnames(i)=
' TAU- --> MU- '
289 IF(i.EQ. 3) oldnames(i)=
' TAU- --> PI- '
290 IF(i.EQ. 4) oldnames(i)=
' TAU- --> PI-, PI0 '
291 IF(i.EQ. 5) oldnames(i)=
' TAU- --> A1- (two subch) '
292 IF(i.EQ. 6) oldnames(i)=
' TAU- --> K- '
293 IF(i.EQ. 7) oldnames(i)=
' TAU- --> K*- (two subch) '
294 IF(i.EQ. 8) names(i-7)=
' TAU- --> 2PI-, PI0, PI+ '
295 IF(i.EQ. 9) names(i-7)=
' TAU- --> 3PI0, PI- '
296 IF(i.EQ.10) names(i-7)=
' TAU- --> 2PI-, PI+, 2PI0 '
297 IF(i.EQ.11) names(i-7)=
' TAU- --> 3PI-, 2PI+, '
298 IF(i.EQ.12) names(i-7)=
' TAU- --> 3PI-, 2PI+, PI0 '
299 IF(i.EQ.13) names(i-7)=
' TAU- --> 2PI-, PI+, 3PI0 '
300 IF(i.EQ.14) names(i-7)=
' TAU- --> K-, PI-, K+ '
301 IF(i.EQ.15) names(i-7)=
' TAU- --> K0, PI-, K0B '
303 IF(i.EQ.16) names(i-7)=
' TAU- --> K- PI0 K0 '
305 IF(i.EQ.16) names(i-7)=
' TAU- --> K-, K0, PI0 '
307 IF(i.EQ.17) names(i-7)=
' TAU- --> PI0 PI0 K- '
308 IF(i.EQ.18) names(i-7)=
' TAU- --> K- PI- PI+ '
309 IF(i.EQ.19) names(i-7)=
' TAU- --> PI- K0B PI0 '
310 IF(i.EQ.20) names(i-7)=
' TAU- --> ETA PI- PI0 '
311 IF(i.EQ.21) names(i-7)=
' TAU- --> PI- PI0 GAM '
312 IF(i.EQ.22) names(i-7)=
' TAU- --> K- K0 '
321 idffin(j,i)=nopik(j,i)
345 IF (xpar(itauxpar+100+1).GT.-1d0)
THEN
347 ccabib = xpar(itauxpar+7)
348 gv = xpar(itauxpar+8)
349 ga = xpar(itauxpar+9)
351 bra1 = xpar(itauxpar+10)
352 brks = xpar(itauxpar+11)
353 brk0 = xpar(itauxpar+12)
354 brk0b = xpar(itauxpar+13)
356 gamprt(k)=xpar(itauxpar+100+k)
360 scabib = sqrt(1.-ccabib**2)
362 gamel = gfermi**2*amtau**5/(192*pi**3)
375 WRITE(iout,bxtxt)
' TAUOLA Initialization SUBROUTINE INITDK: '
376 WRITE(iout,bxtxt)
' Adopted to read from KK '
377 WRITE(iout,bxtxt)
' '
378 WRITE(iout,bxtxt)
' Choice Probability -- Decay Channel'
380 WRITE(iout,bxinit) gamprt(k)/sum, oldnames(k),
'****',
'***'
383 WRITE(iout,bxinit) gamprt(k)/sum, names(k-7),
'****',
'***'
385 WRITE(iout,bxtxt)
' In addition:'
386 WRITE(iout,bxinit) gv,
'Vector W-tau-nu coupl. ',
'****',
'***'
387 WRITE(iout,bxinit) ga,
'Axial W-tau-nu coupl. ',
'****',
'***'
388 WRITE(iout,bxinit) gfermi,
'Fermi Coupling ',
'****',
'***'
389 WRITE(iout,bxinit) ccabib,
'cabibo angle ',
'****',
'***'
390 WRITE(iout,bxinit) bra1,
'a1 br ratio (massless) ',
'****',
'***'
391 WRITE(iout,bxinit) brks,
'K* br ratio (massless) ',
'****',
'***'
397 SUBROUTINE iniphy(XK00)
402 COMMON / qedprm /alfinv,alfpi,xk0
403 REAL*8 alfinv,alfpi,xk0
406 pi8 = 4.d0*datan(1.d0)
408 alfpi = 1d0/(alfinv*pi8)
412 SUBROUTINE inimas(ITAUXPAR,xpar)
424 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
425 * ,ampiz,ampi,amro,gamro,ama1,gama1
426 * ,amk,amkz,amkst,gamkst
428 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
429 * ,ampiz,ampi,amro,gamro,ama1,gama1
430 * ,amk,amkz,amkst,gamkst
433 $ bxinit =
'(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
488 #elif defined (ALEPH)
497 print *,
'INIMAS a1 mass= ',ama1,gama1
505 WRITE(iout,bxtxt)
' TAUOLA Initialization SUBROUTINE INIMAS: '
506 WRITE(iout,bxtxt)
' Adopted to read from KK '
507 WRITE(iout,bxinit) amtau,
'AMTAU tau-mass ',
'****',
'***'
508 WRITE(iout,bxinit) amel ,
'AMEL electron-mass ',
'****',
'***'
509 WRITE(iout,bxinit) ammu ,
'AMMU muon-mass ',
'****',
'***'
514 SUBROUTINE choice(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
515 $ amrx,gamrx,amra,gamra,amrb,gamrb)
516 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
517 * ,ampiz,ampi,amro,gamro,ama1,gama1
518 * ,amk,amkz,amkst,gamkst
520 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
521 * ,ampiz,ampi,amro,gamro,ama1,gama1
522 * ,amk,amkz,amkst,gamkst
538 ELSEIF(mnum.EQ.1)
THEN
547 ELSEIF(mnum.EQ.2)
THEN
556 ELSEIF(mnum.EQ.3)
THEN
565 ELSEIF(mnum.EQ.4)
THEN
574 ELSEIF(mnum.EQ.5)
THEN
583 ELSEIF(mnum.EQ.6)
THEN
592 ELSEIF(mnum.EQ.7)
THEN
601 ELSEIF(mnum.EQ.8)
THEN
610 ELSEIF(mnum.EQ.101)
THEN
619 ELSEIF(mnum.EQ.102)
THEN
639 IF (rr.LE.prob1)
THEN
641 ELSEIF(rr.LE.(prob1+prob2))
THEN
656 prob3=1.0-prob1-prob2
659 FUNCTION dcdmas(IDENT)
660 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
661 * ,ampiz,ampi,amro,gamro,ama1,gama1
662 * ,amk,amkz,amkst,gamkst
664 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
665 * ,ampiz,ampi,amro,gamro,ama1,gama1
666 * ,amk,amkz,amkst,gamkst
667 IF (ident.EQ. 1)
THEN
669 ELSEIF (ident.EQ.-1)
THEN
671 ELSEIF (ident.EQ. 2)
THEN
673 ELSEIF (ident.EQ.-2)
THEN
675 ELSEIF (ident.EQ. 3)
THEN
677 ELSEIF (ident.EQ.-3)
THEN
679 ELSEIF (ident.EQ. 4)
THEN
681 ELSEIF (ident.EQ.-4)
THEN
683 ELSEIF (ident.EQ. 8)
THEN
685 ELSEIF (ident.EQ.-8)
THEN
687 ELSEIF (ident.EQ. 9)
THEN
689 ELSEIF (ident.EQ.-9)
THEN
692 print *,
'STOP IN APKMAS, WRONG IDENT=',ident
697 FUNCTION lunpik(ID,ISGN)
698 COMMON / taukle / bra1,brk0,brk0b,brks
699 REAL*4 bra1,brk0,brk0b,brks
703 IF (ident.EQ. 1)
THEN
705 ELSEIF (ident.EQ.-1)
THEN
707 ELSEIF (ident.EQ. 2)
THEN
709 ELSEIF (ident.EQ.-2)
THEN
711 ELSEIF (ident.EQ. 3)
THEN
713 ELSEIF (ident.EQ.-3)
THEN
716 IF (ident.EQ. 1)
THEN
718 ELSEIF (ident.EQ.-1)
THEN
720 ELSEIF (ident.EQ. 2)
THEN
722 ELSEIF (ident.EQ.-2)
THEN
724 ELSEIF (ident.EQ. 3)
THEN
726 ELSEIF (ident.EQ.-3)
THEN
729 ELSEIF (ident.EQ. 4)
THEN
733 IF (xio(1).GT.brk0)
THEN
738 ELSEIF (ident.EQ.-4)
THEN
742 IF (xio(1).GT.brk0b)
THEN
747 ELSEIF (ident.EQ. 8)
THEN
749 ELSEIF (ident.EQ.-8)
THEN
751 ELSEIF (ident.EQ. 9)
THEN
753 ELSEIF (ident.EQ.-9)
THEN
756 print *,
'STOP IN IPKDEF, WRONG IDENT=',ident
765 SUBROUTINE taurdf(KTO)
769 COMMON / taukle / bra1,brk0,brk0b,brks
770 REAL*4 bra1,brk0,brk0b,brks
771 COMMON / taubra / gamprt(30),jlist(30),nchan
791 SUBROUTINE taurdf(KTO)
795 COMMON / taukle / bra1,brk0,brk0b,brks
796 REAL*4 bra1,brk0,brk0b,brks
797 COMMON / taubra / gamprt(30),jlist(30),nchan
805 IF(i.EQ. 1) gamprt(i) = .0000
806 IF(i.EQ. 2) gamprt(i) = .0000
807 IF(i.EQ. 3) gamprt(i) = .0000
808 IF(i.EQ. 4) gamprt(i) = .0000
809 IF(i.EQ. 5) gamprt(i) = .0000
810 IF(i.EQ. 6) gamprt(i) = .0000
811 IF(i.EQ. 7) gamprt(i) = .0000
812 IF(i.EQ. 8) gamprt(i) = 1.0000
813 IF(i.EQ. 9) gamprt(i) = 1.0000
814 IF(i.EQ.10) gamprt(i) = 1.0000
815 IF(i.EQ.11) gamprt(i) = 1.0000
816 IF(i.EQ.12) gamprt(i) = 1.0000
817 IF(i.EQ.13) gamprt(i) = 1.0000
818 IF(i.EQ.14) gamprt(i) = 1.0000
819 IF(i.EQ.15) gamprt(i) = 1.0000
820 IF(i.EQ.16) gamprt(i) = 1.0000
821 IF(i.EQ.17) gamprt(i) = 1.0000
822 IF(i.EQ.18) gamprt(i) = 1.0000
823 IF(i.EQ.19) gamprt(i) = 1.0000
848 IF(i.EQ. 1) gamprt(i) = .0000
849 IF(i.EQ. 2) gamprt(i) = .0000
850 IF(i.EQ. 3) gamprt(i) = .0000
851 IF(i.EQ. 4) gamprt(i) = .0000
852 IF(i.EQ. 5) gamprt(i) = .0000
853 IF(i.EQ. 6) gamprt(i) = .0000
854 IF(i.EQ. 7) gamprt(i) = .0000
855 IF(i.EQ. 8) gamprt(i) = 1.0000
856 IF(i.EQ. 9) gamprt(i) = 1.0000
857 IF(i.EQ.10) gamprt(i) = 1.0000
858 IF(i.EQ.11) gamprt(i) = 1.0000
859 IF(i.EQ.12) gamprt(i) = 1.0000
860 IF(i.EQ.13) gamprt(i) = 1.0000
861 IF(i.EQ.14) gamprt(i) = 1.0000
862 IF(i.EQ.15) gamprt(i) = 1.0000
863 IF(i.EQ.16) gamprt(i) = 1.0000
864 IF(i.EQ.17) gamprt(i) = 1.0000
865 IF(i.EQ.18) gamprt(i) = 1.0000
866 IF(i.EQ.19) gamprt(i) = 1.0000