00001
00002
00003 PROGRAM TAUDEM
00004
00005
00006
00007
00008
00009
00010
00011
00012 COMMON / / BLAN(10000)
00013 CHARACTER*7 DNAME
00014 COMMON / INOUT / INUT,IOUT
00015 DNAME='KKPI'
00016
00017
00018 INUT=5
00019 IOUT=6
00020 OPEN(IOUT,FILE="./tauola.output")
00021 OPEN(INUT,FILE="./dane.dat")
00022 KTORY=1
00023 CALL DECTES(KTORY)
00024 KTORY=2
00025 CALL DECTES(KTORY)
00026 END
00027 SUBROUTINE DECTES(KTORY)
00028
00029 REAL POL(4)
00030 DOUBLE PRECISION HH(4)
00031
00032 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00033 COMMON / IDFC / IDFF
00034
00035 COMMON / INOUT / INUT,IOUT
00036
00037 COMMON / IDPART / IA1
00038
00039 COMMON /PTAU/ PTAU
00040 COMMON / TAURAD / XK0DEC,ITDKRC
00041 REAL*8 XK0DEC
00042 COMMON /TESTA1/ KEYA1
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 NINP=INUT
00057 NOUT=IOUT
00058 3000 FORMAT(A80)
00059 3001 FORMAT(8I2)
00060 3002 FORMAT(I10)
00061 3003 FORMAT(F10.0)
00062 IF (KTORY.EQ.1) THEN
00063 READ( NINP,3000) TESTIT
00064 WRITE(NOUT,3000) TESTIT
00065 READ( NINP,3001) KAT1,KAT2,KAT3,KAT4,KAT5,KAT6
00066 READ( NINP,3002) NEVT,JAK1,JAK2,ITDKRC
00067 READ( NINP,3003) PTAU,XK0DEC
00068 ENDIF
00069
00070
00071 WRITE(NOUT,'(6A6/6I6)')
00072 $ 'KAT1','KAT2','KAT3','KAT4','KAT5','KAT6',
00073 $ KAT1 , KAT2 , KAT3 , KAT4 , KAT5 , KAT6
00074 WRITE(NOUT,'(4A12/4I12)')
00075 $ 'NEVT','JAK1','JAK2','ITDKRC',
00076 $ NEVT, JAK1 , JAK2 , ITDKRC
00077 WRITE(NOUT,'(2A12/2F12.6)')
00078 $ 'PTAU','XK0DEC',
00079 $ PTAU , XK0DEC
00080
00081 JAK=0
00082
00083
00084
00085 IF (KTORY.EQ.1) THEN
00086 IDFF=-15
00087 ELSE
00088 IDFF= 15
00089 ENDIF
00090
00091
00092 KTO=2
00093 IF (KTO.NE.2) THEN
00094 PRINT *, 'for the sake of these tests KTO has to be 2'
00095 PRINT *, 'to change tau- to tau+ change IDFF from -15 to 15'
00096 STOP
00097 ENDIF
00098
00099 POL(1)=0.
00100 POL(2)=0.
00101 POL(3)=.9
00102
00103
00104
00105 NEVTES=10
00106 NEVTES=NEVT
00107 PRINT *, 'NEVTES= ',NEVTES
00108 WRITE(IOUT,7011) KEYA1
00109
00110 IF (KTORY.EQ.1) THEN
00111 WRITE(IOUT,7001) JAK,IDFF,POL(3),PTAU
00112 ELSE
00113 WRITE(IOUT,7004) JAK,IDFF,POL(3),PTAU
00114 ENDIF
00115
00116
00117 CALL INIMAS
00118 CALL INITDK
00119
00120
00121 CALL INIPHY(0.1D0)
00122 IF (KTORY.EQ.1) THEN
00123 CALL DEXAY(-1,POL)
00124 ELSE
00125 CALL DEKAY(-1,HH)
00126 ENDIF
00127
00128
00129
00130 NEV=0
00131 DO 300 IEV=1,NEVTES
00132 NEV=NEV+1
00133
00134
00135
00136
00137
00138 CALL TAUFIL
00139
00140 IF (KTORY.EQ.1) THEN
00141 CALL DEXAY(KTO,POL)
00142 ELSE
00143 CALL DEKAY(KTO,HH)
00144 CALL DEKAY(KTO+10,HH)
00145 ENDIF
00146 CALL LUHEPC(2)
00147 IF(IEV.LE.44) THEN
00148 WRITE(IOUT,7002) IEV
00149 IF (KTORY.NE.1) THEN
00150 WRITE(IOUT,7003) HH
00151 ENDIF
00152
00153 CALL LULIST(2)
00154 ENDIF
00155 IPRI=MOD(NEV,1000)
00156 IF(IPRI.EQ.1) PRINT *, ' event no: ',NEV,' NEVTES: ',NEVTES
00157 300 CONTINUE
00158 301 CONTINUE
00159
00160
00161
00162 IF (KTORY.EQ.1) THEN
00163 CALL DEXAY(100,POL)
00164 ELSE
00165 CALL DEKAY(100,HH)
00166 ENDIF
00167 RETURN
00168 7001 FORMAT(//4(/1X,15(5H=====))
00169 $ /,' ', 19X,' TEST OF RAD. CORR IN ELECTRON DECAY ',9X,1H ,
00170 $ /,' ', 19X,' TESTS OF TAU DECAY ROUTINES ',9X,1H ,
00171 $ /,' ', 19X,' INTERFACE OF THE KORAL-Z TYPE ',9X,1H ,
00172 $ 2(/,1X,15(5H=====)),
00173 $ /,5X ,'JAK =',I7 ,' KEY DEFINING DECAY TYPE ',9X,1H ,
00174 $ /,5X ,'IDFF =',I7 ,' LUND IDENTIFIER FOR FIRST TAU ',9X,1H ,
00175 $ /,5X ,'POL(3)=',F7.2,' THIRD COMPONENT OF TAU POLARIZ. ',9X,1H ,
00176 $ /,5X ,'PTAU =',F7.2,' THIRD COMPONENT OF TAU MOM. GEV ',9X,1H ,
00177 $ 2(/,1X,15(5H=====))/)
00178 7002 FORMAT(///1X, '===== EVENT NO.',I4,1X,5H=====)
00179 7003 FORMAT(5X,'POLARIMETRIC VECTOR: ',
00180 $ 7X,'HH(1)',7X,'HH(2)',7X,'HH(3)',7X,'HH(4)',
00181 $ /, 5X,' ', 4(1X,F11.8) )
00182 7004 FORMAT(//4(/1X,15(5H=====))
00183 $ /,' ', 19X,' TEST OF RAD. CORR IN ELECTRON DECAY ',9X,1H ,
00184 $ /,' ', 19X,' TESTS OF TAU DECAY ROUTINES ',9X,1H ,
00185 $ /,' ', 19X,' INTERFACE OF THE KORAL-B TYPE ',9X,1H ,
00186 $ 2(/,1X,15(5H=====)),
00187 $ /,5X ,'JAK =',I7 ,' KEY DEFINING DECAY TYPE ',9X,1H ,
00188 $ /,5X ,'IDFF =',I7 ,' LUND IDENTIFIER FOR FIRST TAU ',9X,1H ,
00189 $ /,5X ,'POL(3)=',F7.2,' THIRD COMPONENT OF TAU POLARIZ. ',9X,1H ,
00190 $ /,5X ,'PTAU =',F7.2,' THIRD COMPONENT OF TAU MOM. GEV ',9X,1H ,
00191 $ 2(/,1X,15(5H=====))/)
00192 7011 FORMAT(///1X, '===== TYPE OF CURRENT',I4,1X,5H=====)
00193 END
00194 SUBROUTINE CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
00195 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
00196 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00197 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00198 * ,AMK,AMKZ,AMKST,GAMKST
00199
00200 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00201 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00202 * ,AMK,AMKZ,AMKST,GAMKST
00203
00204 AMROP=1.1
00205 GAMROP=0.36
00206 AMOM=.782
00207 GAMOM=0.0084
00208
00209 IF(MNUM.EQ.0) THEN
00210 PROB1=0.5
00211 PROB2=0.5
00212 AMRX =AMA1
00213 GAMRX=GAMA1
00214 AMRA =AMRO
00215 GAMRA=GAMRO
00216 AMRB =AMRO
00217 GAMRB=GAMRO
00218 ELSEIF(MNUM.EQ.1) THEN
00219 PROB1=0.5
00220 PROB2=0.5
00221 AMRX =1.57
00222 GAMRX=0.9
00223 AMRB =AMKST
00224 GAMRB=GAMKST
00225 AMRA =AMRO
00226 GAMRA=GAMRO
00227 ELSEIF(MNUM.EQ.2) THEN
00228 PROB1=0.5
00229 PROB2=0.5
00230 AMRX =1.57
00231 GAMRX=0.9
00232 AMRB =AMKST
00233 GAMRB=GAMKST
00234 AMRA =AMRO
00235 GAMRA=GAMRO
00236 ELSEIF(MNUM.EQ.3) THEN
00237 PROB1=0.5
00238 PROB2=0.5
00239 AMRX =1.27
00240 GAMRX=0.3
00241 AMRA =AMKST
00242 GAMRA=GAMKST
00243 AMRB =AMKST
00244 GAMRB=GAMKST
00245 ELSEIF(MNUM.EQ.4) THEN
00246 PROB1=0.5
00247 PROB2=0.5
00248 AMRX =1.27
00249 GAMRX=0.3
00250 AMRA =AMKST
00251 GAMRA=GAMKST
00252 AMRB =AMKST
00253 GAMRB=GAMKST
00254 ELSEIF(MNUM.EQ.5) THEN
00255 PROB1=0.5
00256 PROB2=0.5
00257 AMRX =1.27
00258 GAMRX=0.3
00259 AMRA =AMKST
00260 GAMRA=GAMKST
00261 AMRB =AMRO
00262 GAMRB=GAMRO
00263 ELSEIF(MNUM.EQ.6) THEN
00264 PROB1=0.4
00265 PROB2=0.4
00266 AMRX =1.27
00267 GAMRX=0.3
00268 AMRA =AMRO
00269 GAMRA=GAMRO
00270 AMRB =AMKST
00271 GAMRB=GAMKST
00272 ELSEIF(MNUM.EQ.7) THEN
00273 PROB1=0.0
00274 PROB2=1.0
00275 AMRX =1.27
00276 GAMRX=0.9
00277 AMRA =AMRO
00278 GAMRA=GAMRO
00279 AMRB =AMRO
00280 GAMRB=GAMRO
00281 ELSEIF(MNUM.EQ.8) THEN
00282 PROB1=0.0
00283 PROB2=1.0
00284 AMRX =AMROP
00285 GAMRX=GAMROP
00286 AMRB =AMOM
00287 GAMRB=GAMOM
00288 AMRA =AMRO
00289 GAMRA=GAMRO
00290 ELSEIF(MNUM.EQ.101) THEN
00291 PROB1=.35
00292 PROB2=.35
00293 AMRX =1.2
00294 GAMRX=.46
00295 AMRB =AMOM
00296 GAMRB=GAMOM
00297 AMRA =AMOM
00298 GAMRA=GAMOM
00299 ELSEIF(MNUM.EQ.102) THEN
00300 PROB1=0.0
00301 PROB2=0.0
00302 AMRX =1.4
00303 GAMRX=.6
00304 AMRB =AMOM
00305 GAMRB=GAMOM
00306 AMRA =AMOM
00307 GAMRA=GAMOM
00308 ELSE
00309 PROB1=0.0
00310 PROB2=0.0
00311 AMRX =AMA1
00312 GAMRX=GAMA1
00313 AMRA =AMRO
00314 GAMRA=GAMRO
00315 AMRB =AMRO
00316 GAMRB=GAMRO
00317 ENDIF
00318
00319 IF (RR.LE.PROB1) THEN
00320 ICHAN=1
00321 ELSEIF(RR.LE.(PROB1+PROB2)) THEN
00322 ICHAN=2
00323 AX =AMRA
00324 GX =GAMRA
00325 AMRA =AMRB
00326 GAMRA=GAMRB
00327 AMRB =AX
00328 GAMRB=GX
00329 PX =PROB1
00330 PROB1=PROB2
00331 PROB2=PX
00332 ELSE
00333 ICHAN=3
00334 ENDIF
00335
00336 PROB3=1.0-PROB1-PROB2
00337 END
00338 SUBROUTINE INITDK
00339
00340
00341
00342
00343
00344
00345 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00346 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00347 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00348 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00349 * ,AMK,AMKZ,AMKST,GAMKST
00350
00351 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00352 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00353 * ,AMK,AMKZ,AMKST,GAMKST
00354 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00355 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00356 REAL*4 BRA1,BRK0,BRK0B,BRKS
00357
00358
00359
00360
00361
00362
00363 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00364 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00365 & ,NAMES
00366 CHARACTER NAMES(NMODE)*31
00367
00368 CHARACTER OLDNAMES(7)*31
00369 CHARACTER*80 bxINIT
00370 PARAMETER (
00371 $ bxINIT ='(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
00372 $ )
00373 REAL*4 PI,POL1(4)
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393 DIMENSION NOPIK(6,NMODE),NPIK(NMODE)
00394
00395 DATA NPIK / 4, 4,
00396 1 5, 5,
00397 2 6, 6,
00398 3 3, 3,
00399 4 3, 3,
00400 5 3, 3,
00401 6 3, 3,
00402 7 2 /
00403 DATA NOPIK / -1,-1, 1, 2, 0, 0, 2, 2, 2,-1, 0, 0,
00404 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
00405 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
00406 3 -3,-1, 3, 0, 0, 0, -4,-1, 4, 0, 0, 0,
00407 4 -3, 2,-4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
00408 5 -3,-1, 1, 0, 0, 0, -1, 4, 2, 0, 0, 0,
00409 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
00410
00411 7 -3,-4, 0, 0, 0, 0 /
00412
00413 NCHAN = NMODE + 7
00414 DO 1 I = 1,30
00415 IF (I.LE.NCHAN) THEN
00416 JLIST(I) = I
00417 IF(I.EQ. 1) GAMPRT(I) =0.1800
00418 IF(I.EQ. 2) GAMPRT(I) =0.1751
00419 IF(I.EQ. 3) GAMPRT(I) =0.1110
00420 IF(I.EQ. 4) GAMPRT(I) =0.2515
00421 IF(I.EQ. 5) GAMPRT(I) =0.1790
00422 IF(I.EQ. 6) GAMPRT(I) =0.0071
00423 IF(I.EQ. 7) GAMPRT(I) =0.0134
00424 IF(I.EQ. 8) GAMPRT(I) =0.0450
00425 IF(I.EQ. 9) GAMPRT(I) =0.0100
00426 IF(I.EQ.10) GAMPRT(I) =0.0009
00427 IF(I.EQ.11) GAMPRT(I) =0.0004
00428 IF(I.EQ.12) GAMPRT(I) =0.0003
00429 IF(I.EQ.13) GAMPRT(I) =0.0005
00430 IF(I.EQ.14) GAMPRT(I) =0.0015
00431 IF(I.EQ.15) GAMPRT(I) =0.0015
00432 IF(I.EQ.16) GAMPRT(I) =0.0015
00433 IF(I.EQ.17) GAMPRT(I) =0.0005
00434 IF(I.EQ.18) GAMPRT(I) =0.0050
00435 IF(I.EQ.19) GAMPRT(I) =0.0055
00436 IF(I.EQ.20) GAMPRT(I) =0.0017
00437 IF(I.EQ.21) GAMPRT(I) =0.0013
00438 IF(I.EQ.22) GAMPRT(I) =0.0010
00439 IF(I.EQ. 1) OLDNAMES(I)=' TAU- --> E- '
00440 IF(I.EQ. 2) OLDNAMES(I)=' TAU- --> MU- '
00441 IF(I.EQ. 3) OLDNAMES(I)=' TAU- --> PI- '
00442 IF(I.EQ. 4) OLDNAMES(I)=' TAU- --> PI-, PI0 '
00443 IF(I.EQ. 5) OLDNAMES(I)=' TAU- --> A1- (two subch) '
00444 IF(I.EQ. 6) OLDNAMES(I)=' TAU- --> K- '
00445 IF(I.EQ. 7) OLDNAMES(I)=' TAU- --> K*- (two subch) '
00446 IF(I.EQ. 8) NAMES(I-7)=' TAU- --> 2PI-, PI0, PI+ '
00447 IF(I.EQ. 9) NAMES(I-7)=' TAU- --> 3PI0, PI- '
00448 IF(I.EQ.10) NAMES(I-7)=' TAU- --> 2PI-, PI+, 2PI0 '
00449 IF(I.EQ.11) NAMES(I-7)=' TAU- --> 3PI-, 2PI+, '
00450 IF(I.EQ.12) NAMES(I-7)=' TAU- --> 3PI-, 2PI+, PI0 '
00451 IF(I.EQ.13) NAMES(I-7)=' TAU- --> 2PI-, PI+, 3PI0 '
00452 IF(I.EQ.14) NAMES(I-7)=' TAU- --> K-, PI-, K+ '
00453 IF(I.EQ.15) NAMES(I-7)=' TAU- --> K0, PI-, K0B '
00454 IF(I.EQ.16) NAMES(I-7)=' TAU- --> K-, K0, PI0 '
00455 IF(I.EQ.17) NAMES(I-7)=' TAU- --> PI0 PI0 K- '
00456 IF(I.EQ.18) NAMES(I-7)=' TAU- --> K- PI- PI+ '
00457 IF(I.EQ.19) NAMES(I-7)=' TAU- --> PI- K0B PI0 '
00458 IF(I.EQ.20) NAMES(I-7)=' TAU- --> ETA PI- PI0 '
00459 IF(I.EQ.21) NAMES(I-7)=' TAU- --> PI- PI0 GAM '
00460 IF(I.EQ.22) NAMES(I-7)=' TAU- --> K- K0 '
00461 ELSE
00462 JLIST(I) = 0
00463 GAMPRT(I) = 0.
00464 ENDIF
00465 1 CONTINUE
00466 DO I=1,NMODE
00467 MULPIK(I)=NPIK(I)
00468 DO J=1,MULPIK(I)
00469 IDFFIN(J,I)=NOPIK(J,I)
00470 ENDDO
00471 ENDDO
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482 BRA1=0.5
00483 BRK0=0.5
00484 BRK0B=0.5
00485 BRKS=0.6667
00486
00487
00488 GFERMI = 1.16637E-5
00489 CCABIB = 0.975
00490 GV = 1.0
00491 GA =-1.0
00492
00493
00494
00495
00496 SCABIB = SQRT(1.-CCABIB**2)
00497 PI =4.*ATAN(1.)
00498 GAMEL = GFERMI**2*AMTAU**5/(192*PI**3)
00499
00500
00501
00502 RETURN
00503 END
00504 FUNCTION DCDMAS(IDENT)
00505 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00506 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00507 * ,AMK,AMKZ,AMKST,GAMKST
00508
00509 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00510 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00511 * ,AMK,AMKZ,AMKST,GAMKST
00512 IF (IDENT.EQ. 1) THEN
00513 APKMAS=AMPI
00514 ELSEIF (IDENT.EQ.-1) THEN
00515 APKMAS=AMPI
00516 ELSEIF (IDENT.EQ. 2) THEN
00517 APKMAS=AMPIZ
00518 ELSEIF (IDENT.EQ.-2) THEN
00519 APKMAS=AMPIZ
00520 ELSEIF (IDENT.EQ. 3) THEN
00521 APKMAS=AMK
00522 ELSEIF (IDENT.EQ.-3) THEN
00523 APKMAS=AMK
00524 ELSEIF (IDENT.EQ. 4) THEN
00525 APKMAS=AMKZ
00526 ELSEIF (IDENT.EQ.-4) THEN
00527 APKMAS=AMKZ
00528 ELSEIF (IDENT.EQ. 8) THEN
00529 APKMAS=0.0001
00530 ELSEIF (IDENT.EQ.-8) THEN
00531 APKMAS=0.0001
00532 ELSEIF (IDENT.EQ. 9) THEN
00533 APKMAS=0.5488
00534 ELSEIF (IDENT.EQ.-9) THEN
00535 APKMAS=0.5488
00536 ELSE
00537 PRINT *, 'STOP IN APKMAS, WRONG IDENT=',IDENT
00538 STOP
00539 ENDIF
00540 DCDMAS=APKMAS
00541 END
00542 FUNCTION LUNPIK(ID,ISGN)
00543 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00544 REAL*4 BRA1,BRK0,BRK0B,BRKS
00545 REAL*4 XIO(1)
00546 IDENT=ID*ISGN
00547 IF (IDENT.EQ. 1) THEN
00548 IPKDEF=-211
00549 ELSEIF (IDENT.EQ.-1) THEN
00550 IPKDEF= 211
00551 ELSEIF (IDENT.EQ. 2) THEN
00552 IPKDEF=111
00553 ELSEIF (IDENT.EQ.-2) THEN
00554 IPKDEF=111
00555 ELSEIF (IDENT.EQ. 3) THEN
00556 IPKDEF=-321
00557 ELSEIF (IDENT.EQ.-3) THEN
00558 IPKDEF= 321
00559 ELSEIF (IDENT.EQ. 4) THEN
00560
00561
00562 CALL RANMAR(XIO,1)
00563 IF (XIO(1).GT.BRK0) THEN
00564 IPKDEF= 130
00565 ELSE
00566 IPKDEF= 310
00567 ENDIF
00568 ELSEIF (IDENT.EQ.-4) THEN
00569
00570
00571 CALL RANMAR(XIO,1)
00572 IF (XIO(1).GT.BRK0B) THEN
00573 IPKDEF= 130
00574 ELSE
00575 IPKDEF= 310
00576 ENDIF
00577 ELSEIF (IDENT.EQ. 8) THEN
00578 IPKDEF= 22
00579 ELSEIF (IDENT.EQ.-8) THEN
00580 IPKDEF= 22
00581 ELSEIF (IDENT.EQ. 9) THEN
00582 IPKDEF= 221
00583 ELSEIF (IDENT.EQ.-9) THEN
00584 IPKDEF= 221
00585 ELSE
00586 PRINT *, 'STOP IN IPKDEF, WRONG IDENT=',IDENT
00587 STOP
00588 ENDIF
00589 LUNPIK=IPKDEF
00590 END
00591
00592
00593
00594 SUBROUTINE TAURDF(KTO)
00595
00596
00597
00598 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00599 REAL*4 BRA1,BRK0,BRK0B,BRKS
00600 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00601 IF (KTO.EQ.1) THEN
00602
00603
00604 BRA1 = PKORB(4,1)
00605 BRKS = PKORB(4,3)
00606 BRK0 = PKORB(4,5)
00607 BRK0B = PKORB(4,6)
00608 ELSE
00609
00610
00611 BRA1 = PKORB(4,2)
00612 BRKS = PKORB(4,4)
00613 BRK0 = PKORB(4,5)
00614 BRK0B = PKORB(4,6)
00615 ENDIF
00616
00617 END
00618
00619 SUBROUTINE INIPHY(XK00)
00620
00621
00622
00623
00624 COMMON / QEDPRM /ALFINV,ALFPI,XK0
00625 REAL*8 ALFINV,ALFPI,XK0
00626 REAL*8 PI8,XK00
00627
00628 PI8 = 4.D0*DATAN(1.D0)
00629 ALFINV = 137.03604D0
00630 ALFPI = 1D0/(ALFINV*PI8)
00631 XK0=XK00
00632 END
00633
00634 SUBROUTINE INIMAS
00635
00636
00637
00638
00639
00640 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00641 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00642 * ,AMK,AMKZ,AMKST,GAMKST
00643
00644 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00645 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00646 * ,AMK,AMKZ,AMKST,GAMKST
00647
00648
00649 AMTAU = 1.7842
00650
00651 AMTAU = 1.777
00652 AMNUTA = 0.010
00653 AMEL = 0.0005111
00654 AMNUE = 0.0
00655 AMMU = 0.105659
00656 AMNUMU = 0.0
00657
00658
00659 AMPIZ = 0.134964
00660 AMPI = 0.139568
00661 AMRO = 0.773
00662 GAMRO = 0.145
00663
00664 AMA1 = 1.251
00665 GAMA1 = 0.599
00666 AMK = 0.493667
00667 AMKZ = 0.49772
00668 AMKST = 0.8921
00669 GAMKST = 0.0513
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682 AMA1 = 1.275
00683 GAMA1 = 0.615
00684
00685
00686
00687
00688
00689
00690 RETURN
00691 END
00692 SUBROUTINE TAUFIL
00693
00694
00695
00696 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00697 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00698 * ,AMK,AMKZ,AMKST,GAMKST
00699
00700 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00701 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00702 * ,AMK,AMKZ,AMKST,GAMKST
00703 COMMON / IDFC / IDFF
00704
00705
00706 COMMON /TAUPOS / NPA,NPB
00707 DIMENSION XPB1(4),XPB2(4),AQF1(4),AQF2(4)
00708
00709
00710 DO 4 K=1,3
00711 XPB1(K)=0.0
00712 XPB2(K)=0.0
00713 AQF1(K)=0.0
00714 AQF2(K)=0.0
00715 4 CONTINUE
00716 AQF1(4)=AMTAU
00717 AQF2(4)=AMTAU
00718
00719 CALL TRALO4(1,AQF1,AQF1,AM)
00720 CALL TRALO4(2,AQF2,AQF2,AM)
00721
00722 KFB1= 11*IDFF/IABS(IDFF)
00723 KFB2=-11*IDFF/IABS(IDFF)
00724 XPB1(4)= AQF1(4)
00725 XPB1(3)= AQF1(4)
00726 IF(AQF1(3).NE.0.0)
00727 $ XPB1(3)= AQF1(4)*AQF1(3)/ABS(AQF1(3))
00728 XPB2(4)= AQF2(4)
00729 XPB2(3)=-AQF2(4)
00730 IF(AQF2(3).NE.0.0)
00731 $ XPB2(3)= AQF2(4)*AQF2(3)/ABS(AQF2(3))
00732
00733 NPA=3
00734 NPB=4
00735
00736 CALL FILHEP( 1,3, KFB1,0,0,0,0,XPB1, AMEL,.TRUE.)
00737 CALL FILHEP( 2,3, KFB2,0,0,0,0,XPB2, AMEL,.TRUE.)
00738 CALL FILHEP(NPA,1, IDFF,1,2,0,0,AQF1,AMTAU,.TRUE.)
00739 CALL FILHEP(NPB,1,-IDFF,1,2,0,0,AQF2,AMTAU,.TRUE.)
00740 END
00741 SUBROUTINE TRALO4(KTO,P,Q,AM)
00742
00743
00744 REAL P(4),Q(4)
00745
00746 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00747 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00748 * ,AMK,AMKZ,AMKST,GAMKST
00749
00750 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00751 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00752 * ,AMK,AMKZ,AMKST,GAMKST
00753 COMMON /PTAU/ PTAU
00754 AM=AMAS4(P)
00755 ETAU=SQRT(PTAU**2+AMTAU**2)
00756 EXE=(ETAU+PTAU)/AMTAU
00757 IF(KTO.EQ.2) EXE=(ETAU-PTAU)/AMTAU
00758 CALL BOSTR3(EXE,P,Q)
00759
00760
00761
00762 END
00763 SUBROUTINE FILHEP(N,IST,ID,JMO1,JMO2,JDA1,JDA2,P4,PINV,PHFLAG)
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774 INTEGER NMXHEP
00775 PARAMETER (NMXHEP=10000)
00776 REAL*8 phep, vhep
00777 INTEGER nevhep,nhep,isthep,idhep,jmohep,
00778 $ jdahep
00779 COMMON /hepevt/
00780 $ nevhep,
00781 $ nhep,
00782 $ isthep(nmxhep),
00783 $ idhep(nmxhep),
00784 $ jmohep(2,nmxhep),
00785 $ jdahep(2,nmxhep),
00786 $ phep(5,nmxhep),
00787 $ vhep(4,nmxhep)
00788
00789 LOGICAL qedrad
00790 COMMON /phoqed/
00791 $ qedrad(nmxhep)
00792
00793 SAVE hepevt,phoqed
00794
00795
00796
00797
00798
00799
00800
00801 LOGICAL PHFLAG
00802
00803 REAL*4 P4(4)
00804
00805
00806 IF (N.EQ.0) THEN
00807
00808
00809 IHEP=NHEP+1
00810 ELSE IF (N.GT.0) THEN
00811
00812
00813 IHEP=N
00814 ELSE
00815
00816
00817 IHEP=NHEP+N
00818 END IF
00819
00820
00821 IF ((IHEP.LE.0).OR.(IHEP.GT.NMXHEP)) RETURN
00822
00823
00824 NHEP=IHEP
00825 ISTHEP(IHEP)=IST
00826 IDHEP(IHEP)=ID
00827 JMOHEP(1,IHEP)=JMO1
00828 IF(JMO1.LT.0)JMOHEP(1,IHEP)=JMOHEP(1,IHEP)+IHEP
00829 JMOHEP(2,IHEP)=JMO2
00830 IF(JMO2.LT.0)JMOHEP(2,IHEP)=JMOHEP(2,IHEP)+IHEP
00831 JDAHEP(1,IHEP)=JDA1
00832 JDAHEP(2,IHEP)=JDA2
00833
00834 DO I=1,4
00835 PHEP(I,IHEP)=P4(I)
00836
00837
00838 VHEP(I,IHEP)=0.0
00839 END DO
00840 PHEP(5,IHEP)=PINV
00841
00842 QEDRAD(IHEP)=PHFLAG
00843
00844
00845 DO IP=JMOHEP(1,IHEP),JMOHEP(2,IHEP)
00846 IF(IP.GT.0)THEN
00847
00848
00849 IF(ISTHEP(IP).EQ.1)ISTHEP(IP)=2
00850
00851
00852 IF(JDAHEP(1,IP).EQ.0)THEN
00853 JDAHEP(1,IP)=IHEP
00854 JDAHEP(2,IP)=IHEP
00855 ELSE
00856 JDAHEP(2,IP)=MAX(IHEP,JDAHEP(2,IP))
00857 END IF
00858 END IF
00859 END DO
00860
00861 RETURN
00862 END