00001
00002
00003
00004
00005
00006
00007 SUBROUTINE INIETC(jakk1,jakk2,itd,ifpho)
00008 COMMON / IDFC / IDFF
00009 COMMON / TAURAD / XK0DEC,ITDKRC
00010 DOUBLE PRECISION XK0DEC
00011 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00012 COMMON /PHOACT/ IFPHOT
00013 SAVE
00014
00015 IDFF=-15
00016
00017 XK0DEC=0.01
00018
00019 ITDKRC=itd
00020
00021 JAK1=jakk1
00022 JAK2=jakk2
00023
00024 IFPHOT=IFPHO
00025 end
00026
00027 SUBROUTINE TRALO4(KTOS,PHOI,PHOF,AM)
00028
00029
00030
00031 COMMON / MOMDEC / Q1,Q2,P1,P2,P3,P4
00032 COMMON /TRALID/ idtra
00033 double precision Q1(4),Q2(4),P1(4),P2(4),P3(4),P4(4),P1QQ(4),P2QQ(4)
00034 double precision PIN(4),POUT(4),PBST(4),PBS1(4),QQ(4),PI
00035 double precision THET,PHI,EXE
00036 REAL*4 PHOI(4),PHOF(4)
00037 SAVE
00038 DATA PI /3.141592653589793238462643D0/
00039 AM=SQRT(ABS
00040 $ (PHOI(4)**2-PHOI(3)**2-PHOI(2)**2-PHOI(1)**2))
00041 idtra=KTOS
00042 DO K=1,4
00043 PIN(K)=PHOI(K)
00044 PHOF(K)=PHOI(K)
00045 ENDDO
00046
00047 IF (idtra.EQ.1) THEN
00048 DO K=1,4
00049 PBST(K)=P1(K)
00050 QQ(K)=Q1(K)
00051 ENDDO
00052 ELSEIF(idtra.EQ.2) THEN
00053 DO K=1,4
00054 PBST(K)=P2(K)
00055 QQ(K)=Q1(K)
00056 ENDDO
00057 ELSEIF(idtra.EQ.3) THEN
00058 DO K=1,4
00059 PBST(K)=P3(K)
00060 QQ(K)=Q2(K)
00061 ENDDO
00062 ELSE
00063 DO K=1,4
00064 PBST(K)=P4(K)
00065 QQ(K)=Q2(K)
00066 ENDDO
00067 ENDIF
00068
00069
00070
00071 CALL BOSTDQ(1,QQ,PBST,PBST)
00072 CALL BOSTDQ(1,QQ,P1,P1QQ)
00073 CALL BOSTDQ(1,QQ,P2,P2QQ)
00074 PBS1(4)=PBST(4)
00075 PBS1(3)=SQRT(PBST(3)**2+PBST(2)**2+PBST(1)**2)
00076 PBS1(2)=0D0
00077 PBS1(1)=0D0
00078 EXE=(PBS1(4)+PBS1(3))/DSQRT(PBS1(4)**2-PBS1(3)**2)
00079
00080
00081
00082 IF(KTOS.EQ.1) EXE=(PBS1(4)-PBS1(3))/DSQRT(PBS1(4)**2-PBS1(3)**2)
00083 CALL BOSTD3(EXE,PIN,POUT)
00084
00085
00086 THET=ACOS(P2QQ(3)/SQRT(P2QQ(3)**2+P2QQ(2)**2+P2QQ(1)**2))
00087 PHI=0D0
00088 PHI=ACOS(P2QQ(1)/SQRT(P2QQ(2)**2+P2QQ(1)**2))
00089 IF(P2QQ(2).LT.0D0) PHI=2*PI-PHI
00090
00091 CALL ROTPOX(THET,PHI,POUT)
00092 CALL BOSTDQ(-1,QQ,POUT,POUT)
00093 DO K=1,4
00094 PHOF(K)=POUT(K)
00095 ENDDO
00096 END
00097
00098
00099 SUBROUTINE CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
00100 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
00101 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00102 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00103 * ,AMK,AMKZ,AMKST,GAMKST
00104
00105 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00106 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00107 * ,AMK,AMKZ,AMKST,GAMKST
00108
00109 AMROP=1.1
00110 GAMROP=0.36
00111 AMOM=.782
00112 GAMOM=0.0084
00113
00114 IF(MNUM.EQ.0) THEN
00115 PROB1=0.5
00116 PROB2=0.5
00117 AMRX =AMA1
00118 GAMRX=GAMA1
00119 AMRA =AMRO
00120 GAMRA=GAMRO
00121 AMRB =AMRO
00122 GAMRB=GAMRO
00123 ELSEIF(MNUM.EQ.1) THEN
00124 PROB1=0.5
00125 PROB2=0.5
00126 AMRX =1.57
00127 GAMRX=0.9
00128 AMRB =AMKST
00129 GAMRB=GAMKST
00130 AMRA =AMRO
00131 GAMRA=GAMRO
00132 ELSEIF(MNUM.EQ.2) THEN
00133 PROB1=0.5
00134 PROB2=0.5
00135 AMRX =1.57
00136 GAMRX=0.9
00137 AMRB =AMKST
00138 GAMRB=GAMKST
00139 AMRA =AMRO
00140 GAMRA=GAMRO
00141 ELSEIF(MNUM.EQ.3) THEN
00142 PROB1=0.5
00143 PROB2=0.5
00144 AMRX =1.27
00145 GAMRX=0.3
00146 AMRA =AMKST
00147 GAMRA=GAMKST
00148 AMRB =AMKST
00149 GAMRB=GAMKST
00150 ELSEIF(MNUM.EQ.4) THEN
00151 PROB1=0.5
00152 PROB2=0.5
00153 AMRX =1.27
00154 GAMRX=0.3
00155 AMRA =AMKST
00156 GAMRA=GAMKST
00157 AMRB =AMKST
00158 GAMRB=GAMKST
00159 ELSEIF(MNUM.EQ.5) THEN
00160 PROB1=0.5
00161 PROB2=0.5
00162 AMRX =1.27
00163 GAMRX=0.3
00164 AMRA =AMKST
00165 GAMRA=GAMKST
00166 AMRB =AMRO
00167 GAMRB=GAMRO
00168 ELSEIF(MNUM.EQ.6) THEN
00169 PROB1=0.4
00170 PROB2=0.4
00171 AMRX =1.27
00172 GAMRX=0.3
00173 AMRA =AMRO
00174 GAMRA=GAMRO
00175 AMRB =AMKST
00176 GAMRB=GAMKST
00177 ELSEIF(MNUM.EQ.7) THEN
00178 PROB1=0.0
00179 PROB2=1.0
00180 AMRX =1.27
00181 GAMRX=0.9
00182 AMRA =AMRO
00183 GAMRA=GAMRO
00184 AMRB =AMRO
00185 GAMRB=GAMRO
00186 ELSEIF(MNUM.EQ.8) THEN
00187 PROB1=0.0
00188 PROB2=1.0
00189 AMRX =AMROP
00190 GAMRX=GAMROP
00191 AMRB =AMOM
00192 GAMRB=GAMOM
00193 AMRA =AMRO
00194 GAMRA=GAMRO
00195 ELSEIF(MNUM.EQ.101) THEN
00196 PROB1=.35
00197 PROB2=.35
00198 AMRX =1.2
00199 GAMRX=.46
00200 AMRB =AMOM
00201 GAMRB=GAMOM
00202 AMRA =AMOM
00203 GAMRA=GAMOM
00204 ELSEIF(MNUM.EQ.102) THEN
00205 PROB1=0.0
00206 PROB2=0.0
00207 AMRX =1.4
00208 GAMRX=.6
00209 AMRB =AMOM
00210 GAMRB=GAMOM
00211 AMRA =AMOM
00212 GAMRA=GAMOM
00213 ELSE
00214 PROB1=0.0
00215 PROB2=0.0
00216 AMRX =AMA1
00217 GAMRX=GAMA1
00218 AMRA =AMRO
00219 GAMRA=GAMRO
00220 AMRB =AMRO
00221 GAMRB=GAMRO
00222 ENDIF
00223
00224 IF (RR.LE.PROB1) THEN
00225 ICHAN=1
00226 ELSEIF(RR.LE.(PROB1+PROB2)) THEN
00227 ICHAN=2
00228 AX =AMRA
00229 GX =GAMRA
00230 AMRA =AMRB
00231 GAMRA=GAMRB
00232 AMRB =AX
00233 GAMRB=GX
00234 PX =PROB1
00235 PROB1=PROB2
00236 PROB2=PX
00237 ELSE
00238 ICHAN=3
00239 ENDIF
00240
00241 PROB3=1.0-PROB1-PROB2
00242 END
00243 SUBROUTINE INITDK
00244
00245
00246
00247
00248
00249
00250 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00251 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00252 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00253 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00254 * ,AMK,AMKZ,AMKST,GAMKST
00255
00256 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00257 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00258 * ,AMK,AMKZ,AMKST,GAMKST
00259 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00260 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00261 REAL*4 BRA1,BRK0,BRK0B,BRKS
00262 #if defined (ALEPH)
00263 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00264 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00265 & ,NAMES
00266 CHARACTER NAMES(NMODE)*31
00267 #else
00268 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00269 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00270 & ,NAMES
00271 CHARACTER NAMES(NMODE)*31
00272 #endif
00273 CHARACTER OLDNAMES(7)*31
00274 CHARACTER*80 bxINIT
00275 PARAMETER (
00276 $ bxINIT ='(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
00277 $ )
00278 REAL*4 PI,POL1(4)
00279
00280
00281
00282
00283
00284
00285 #if defined (ALEPH)
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332 #else
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345 #endif
00346
00347 DIMENSION NOPIK(6,NMODE),NPIK(NMODE)
00348
00349 DATA NPIK / 4, 4,
00350 1 5, 5,
00351 2 6, 6,
00352 3 3, 3,
00353 4 3, 3,
00354 5 3, 3,
00355 6 3, 3,
00356 7 2 /
00357 #if defined (ALEPH)
00358 DATA NOPIK / -1,-1, 2, 1, 0, 0, 2, 2, 2,-1, 0, 0,
00359 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
00360 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
00361 3 -3,-1, 3, 0, 0, 0, 4,-1,-4, 0, 0, 0,
00362 4 -3, 2, 4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
00363 5 -3,-1, 1, 0, 0, 0, -1,-4, 2, 0, 0, 0,
00364 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
00365 #else
00366 DATA NOPIK / -1,-1, 1, 2, 0, 0, 2, 2, 2,-1, 0, 0,
00367 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
00368 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
00369 3 -3,-1, 3, 0, 0, 0, -4,-1, 4, 0, 0, 0,
00370 4 -3, 2,-4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
00371 5 -3,-1, 1, 0, 0, 0, -1, 4, 2, 0, 0, 0,
00372 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
00373 #endif
00374 #if defined (CLEO)
00375
00376 7 -3,-4, 0, 0, 0, 0 /
00377 #else
00378 7 -3, 4, 0, 0, 0, 0 /
00379 #endif
00380
00381 NCHAN = NMODE + 7
00382 DO 1 I = 1,30
00383 IF (I.LE.NCHAN) THEN
00384 JLIST(I) = I
00385 #if defined (CePeCe)
00386 IF(I.EQ. 1) GAMPRT(I) = 1.0000
00387 IF(I.EQ. 2) GAMPRT(I) = 1.0000
00388 IF(I.EQ. 3) GAMPRT(I) = 1.0000
00389 IF(I.EQ. 4) GAMPRT(I) = 1.0000
00390 IF(I.EQ. 5) GAMPRT(I) = 1.0000
00391 IF(I.EQ. 6) GAMPRT(I) = 1.0000
00392 IF(I.EQ. 7) GAMPRT(I) = 1.0000
00393 IF(I.EQ. 8) GAMPRT(I) = 1.0000
00394 IF(I.EQ. 9) GAMPRT(I) = 1.0000
00395 IF(I.EQ.10) GAMPRT(I) = 1.0000
00396 IF(I.EQ.11) GAMPRT(I) = 1.0000
00397 IF(I.EQ.12) GAMPRT(I) = 1.0000
00398 IF(I.EQ.13) GAMPRT(I) = 1.0000
00399 IF(I.EQ.14) GAMPRT(I) = 1.0000
00400 IF(I.EQ.15) GAMPRT(I) = 1.0000
00401 IF(I.EQ.16) GAMPRT(I) = 1.0000
00402 IF(I.EQ.17) GAMPRT(I) = 1.0000
00403 IF(I.EQ.18) GAMPRT(I) = 1.0000
00404 IF(I.EQ.19) GAMPRT(I) = 1.0000
00405 IF(I.EQ.20) GAMPRT(I) = 1.0000
00406 IF(I.EQ.21) GAMPRT(I) = 1.0000
00407 IF(I.EQ.22) GAMPRT(I) = 1.0000
00408 #elif defined (CLEO)
00409 IF(I.EQ. 1) GAMPRT(I) =0.1800
00410 IF(I.EQ. 2) GAMPRT(I) =0.1751
00411 IF(I.EQ. 3) GAMPRT(I) =0.1110
00412 IF(I.EQ. 4) GAMPRT(I) =0.2515
00413 IF(I.EQ. 5) GAMPRT(I) =0.1790
00414 IF(I.EQ. 6) GAMPRT(I) =0.0071
00415 IF(I.EQ. 7) GAMPRT(I) =0.0134
00416 IF(I.EQ. 8) GAMPRT(I) =0.0450
00417 IF(I.EQ. 9) GAMPRT(I) =0.0100
00418 IF(I.EQ.10) GAMPRT(I) =0.0009
00419 IF(I.EQ.11) GAMPRT(I) =0.0004
00420 IF(I.EQ.12) GAMPRT(I) =0.0003
00421 IF(I.EQ.13) GAMPRT(I) =0.0005
00422 IF(I.EQ.14) GAMPRT(I) =0.0015
00423 IF(I.EQ.15) GAMPRT(I) =0.0015
00424 IF(I.EQ.16) GAMPRT(I) =0.0015
00425 IF(I.EQ.17) GAMPRT(I) =0.0005
00426 IF(I.EQ.18) GAMPRT(I) =0.0050
00427 IF(I.EQ.19) GAMPRT(I) =0.0055
00428 IF(I.EQ.20) GAMPRT(I) =0.0017
00429 IF(I.EQ.21) GAMPRT(I) =0.0013
00430 IF(I.EQ.22) GAMPRT(I) =0.0010
00431 #elif defined (ALEPH)
00432 IF(I.EQ. 1) GAMPRT(I) = 1.0000
00433 IF(I.EQ. 2) GAMPRT(I) = .9732
00434 IF(I.EQ. 3) GAMPRT(I) = .6217
00435 IF(I.EQ. 4) GAMPRT(I) = 1.4221
00436 IF(I.EQ. 5) GAMPRT(I) = 1.0180
00437 IF(I.EQ. 6) GAMPRT(I) = .0405
00438 IF(I.EQ. 7) GAMPRT(I) = .0781
00439 IF(I.EQ. 8) GAMPRT(I) = .2414
00440 IF(I.EQ. 9) GAMPRT(I) = .0601
00441 IF(I.EQ.10) GAMPRT(I) = .0281
00442 IF(I.EQ.11) GAMPRT(I) = .0045
00443 IF(I.EQ.12) GAMPRT(I) = .0010
00444 IF(I.EQ.13) GAMPRT(I) = .0062
00445 IF(I.EQ.14) GAMPRT(I) = .0096
00446 IF(I.EQ.15) GAMPRT(I) = .0169
00447 IF(I.EQ.16) GAMPRT(I) = .0056
00448 IF(I.EQ.17) GAMPRT(I) = .0045
00449 IF(I.EQ.18) GAMPRT(I) = .0219
00450 IF(I.EQ.19) GAMPRT(I) = .0180
00451 IF(I.EQ.20) GAMPRT(I) = .0096
00452 IF(I.EQ.21) GAMPRT(I) = .0088
00453 IF(I.EQ.22) GAMPRT(I) = .0146
00454 #else
00455 #endif
00456 IF(I.EQ. 1) OLDNAMES(I)=' TAU- --> E- '
00457 IF(I.EQ. 2) OLDNAMES(I)=' TAU- --> MU- '
00458 IF(I.EQ. 3) OLDNAMES(I)=' TAU- --> PI- '
00459 IF(I.EQ. 4) OLDNAMES(I)=' TAU- --> PI-, PI0 '
00460 IF(I.EQ. 5) OLDNAMES(I)=' TAU- --> A1- (two subch) '
00461 IF(I.EQ. 6) OLDNAMES(I)=' TAU- --> K- '
00462 IF(I.EQ. 7) OLDNAMES(I)=' TAU- --> K*- (two subch) '
00463 IF(I.EQ. 8) NAMES(I-7)=' TAU- --> 2PI-, PI0, PI+ '
00464 IF(I.EQ. 9) NAMES(I-7)=' TAU- --> 3PI0, PI- '
00465 IF(I.EQ.10) NAMES(I-7)=' TAU- --> 2PI-, PI+, 2PI0 '
00466 IF(I.EQ.11) NAMES(I-7)=' TAU- --> 3PI-, 2PI+, '
00467 IF(I.EQ.12) NAMES(I-7)=' TAU- --> 3PI-, 2PI+, PI0 '
00468 IF(I.EQ.13) NAMES(I-7)=' TAU- --> 2PI-, PI+, 3PI0 '
00469 IF(I.EQ.14) NAMES(I-7)=' TAU- --> K-, PI-, K+ '
00470 IF(I.EQ.15) NAMES(I-7)=' TAU- --> K0, PI-, K0B '
00471 #if defined (ALEPH)
00472 IF(I.EQ.16) NAMES(I-7)=' TAU- --> K- PI0 K0 '
00473 #else
00474 IF(I.EQ.16) NAMES(I-7)=' TAU- --> K-, K0, PI0 '
00475 #endif
00476 IF(I.EQ.17) NAMES(I-7)=' TAU- --> PI0 PI0 K- '
00477 IF(I.EQ.18) NAMES(I-7)=' TAU- --> K- PI- PI+ '
00478 IF(I.EQ.19) NAMES(I-7)=' TAU- --> PI- K0B PI0 '
00479 IF(I.EQ.20) NAMES(I-7)=' TAU- --> ETA PI- PI0 '
00480 IF(I.EQ.21) NAMES(I-7)=' TAU- --> PI- PI0 GAM '
00481 IF(I.EQ.22) NAMES(I-7)=' TAU- --> K- K0 '
00482 ELSE
00483 JLIST(I) = 0
00484 GAMPRT(I) = 0.
00485 ENDIF
00486 1 CONTINUE
00487 DO I=1,NMODE
00488 MULPIK(I)=NPIK(I)
00489 DO J=1,MULPIK(I)
00490 IDFFIN(J,I)=NOPIK(J,I)
00491 ENDDO
00492 ENDDO
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503 BRA1=0.5
00504 BRK0=0.5
00505 BRK0B=0.5
00506 BRKS=0.6667
00507
00508
00509 GFERMI = 1.16637E-5
00510 CCABIB = 0.975
00511 GV = 1.0
00512 GA =-1.0
00513
00514
00515
00516
00517 SCABIB = SQRT(1.-CCABIB**2)
00518 PI =4.*ATAN(1.)
00519 GAMEL = GFERMI**2*AMTAU**5/(192*PI**3)
00520
00521 CALL DEXAY(-1,POL1)
00522
00523 RETURN
00524 END
00525 FUNCTION DCDMAS(IDENT)
00526 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00527 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00528 * ,AMK,AMKZ,AMKST,GAMKST
00529
00530 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00531 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00532 * ,AMK,AMKZ,AMKST,GAMKST
00533 IF (IDENT.EQ. 1) THEN
00534 APKMAS=AMPI
00535 ELSEIF (IDENT.EQ.-1) THEN
00536 APKMAS=AMPI
00537 ELSEIF (IDENT.EQ. 2) THEN
00538 APKMAS=AMPIZ
00539 ELSEIF (IDENT.EQ.-2) THEN
00540 APKMAS=AMPIZ
00541 ELSEIF (IDENT.EQ. 3) THEN
00542 APKMAS=AMK
00543 ELSEIF (IDENT.EQ.-3) THEN
00544 APKMAS=AMK
00545 ELSEIF (IDENT.EQ. 4) THEN
00546 APKMAS=AMKZ
00547 ELSEIF (IDENT.EQ.-4) THEN
00548 APKMAS=AMKZ
00549 ELSEIF (IDENT.EQ. 8) THEN
00550 APKMAS=0.0001
00551 ELSEIF (IDENT.EQ.-8) THEN
00552 APKMAS=0.0001
00553 ELSEIF (IDENT.EQ. 9) THEN
00554 APKMAS=0.5488
00555 ELSEIF (IDENT.EQ.-9) THEN
00556 APKMAS=0.5488
00557 ELSE
00558 PRINT *, 'STOP IN APKMAS, WRONG IDENT=',IDENT
00559 STOP
00560 ENDIF
00561 DCDMAS=APKMAS
00562 END
00563 FUNCTION LUNPIK(ID,ISGN)
00564 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00565 REAL*4 BRA1,BRK0,BRK0B,BRKS
00566 REAL*4 XIO(1)
00567 IDENT=ID*ISGN
00568 #if defined (ALEPH)
00569 IF (IDENT.EQ. 1) THEN
00570 IPKDEF= 211
00571 ELSEIF (IDENT.EQ.-1) THEN
00572 IPKDEF=-211
00573 ELSEIF (IDENT.EQ. 2) THEN
00574 IPKDEF= 111
00575 ELSEIF (IDENT.EQ.-2) THEN
00576 IPKDEF= 111
00577 ELSEIF (IDENT.EQ. 3) THEN
00578 IPKDEF= 321
00579 ELSEIF (IDENT.EQ.-3) THEN
00580 IPKDEF=-321
00581 #else
00582 IF (IDENT.EQ. 1) THEN
00583 IPKDEF=-211
00584 ELSEIF (IDENT.EQ.-1) THEN
00585 IPKDEF= 211
00586 ELSEIF (IDENT.EQ. 2) THEN
00587 IPKDEF=111
00588 ELSEIF (IDENT.EQ.-2) THEN
00589 IPKDEF=111
00590 ELSEIF (IDENT.EQ. 3) THEN
00591 IPKDEF=-321
00592 ELSEIF (IDENT.EQ.-3) THEN
00593 IPKDEF= 321
00594 #endif
00595 ELSEIF (IDENT.EQ. 4) THEN
00596
00597
00598 CALL RANMAR(XIO,1)
00599 IF (XIO(1).GT.BRK0) THEN
00600 IPKDEF= 130
00601 ELSE
00602 IPKDEF= 310
00603 ENDIF
00604 ELSEIF (IDENT.EQ.-4) THEN
00605
00606
00607 CALL RANMAR(XIO,1)
00608 IF (XIO(1).GT.BRK0B) THEN
00609 IPKDEF= 130
00610 ELSE
00611 IPKDEF= 310
00612 ENDIF
00613 ELSEIF (IDENT.EQ. 8) THEN
00614 IPKDEF= 22
00615 ELSEIF (IDENT.EQ.-8) THEN
00616 IPKDEF= 22
00617 ELSEIF (IDENT.EQ. 9) THEN
00618 IPKDEF= 221
00619 ELSEIF (IDENT.EQ.-9) THEN
00620 IPKDEF= 221
00621 ELSE
00622 PRINT *, 'STOP IN IPKDEF, WRONG IDENT=',IDENT
00623 STOP
00624 ENDIF
00625 LUNPIK=IPKDEF
00626 END
00627
00628
00629 #if defined (CLEO)
00630
00631 SUBROUTINE TAURDF(KTO)
00632
00633
00634
00635 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00636 REAL*4 BRA1,BRK0,BRK0B,BRKS
00637 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00638 IF (KTO.EQ.1) THEN
00639
00640
00641 BRA1 = PKORB(4,1)
00642 BRKS = PKORB(4,3)
00643 BRK0 = PKORB(4,5)
00644 BRK0B = PKORB(4,6)
00645 ELSE
00646
00647
00648 BRA1 = PKORB(4,2)
00649 BRKS = PKORB(4,4)
00650 BRK0 = PKORB(4,5)
00651 BRK0B = PKORB(4,6)
00652 ENDIF
00653
00654 END
00655 #else
00656
00657 SUBROUTINE TAURDF(KTO)
00658
00659
00660
00661 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00662 REAL*4 BRA1,BRK0,BRK0B,BRKS
00663 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00664 IF (KTO.EQ.1) THEN
00665
00666
00667 NCHAN = 19
00668 DO 1 I = 1,30
00669 IF (I.LE.NCHAN) THEN
00670 JLIST(I) = I
00671 IF(I.EQ. 1) GAMPRT(I) = .0000
00672 IF(I.EQ. 2) GAMPRT(I) = .0000
00673 IF(I.EQ. 3) GAMPRT(I) = .0000
00674 IF(I.EQ. 4) GAMPRT(I) = .0000
00675 IF(I.EQ. 5) GAMPRT(I) = .0000
00676 IF(I.EQ. 6) GAMPRT(I) = .0000
00677 IF(I.EQ. 7) GAMPRT(I) = .0000
00678 IF(I.EQ. 8) GAMPRT(I) = 1.0000
00679 IF(I.EQ. 9) GAMPRT(I) = 1.0000
00680 IF(I.EQ.10) GAMPRT(I) = 1.0000
00681 IF(I.EQ.11) GAMPRT(I) = 1.0000
00682 IF(I.EQ.12) GAMPRT(I) = 1.0000
00683 IF(I.EQ.13) GAMPRT(I) = 1.0000
00684 IF(I.EQ.14) GAMPRT(I) = 1.0000
00685 IF(I.EQ.15) GAMPRT(I) = 1.0000
00686 IF(I.EQ.16) GAMPRT(I) = 1.0000
00687 IF(I.EQ.17) GAMPRT(I) = 1.0000
00688 IF(I.EQ.18) GAMPRT(I) = 1.0000
00689 IF(I.EQ.19) GAMPRT(I) = 1.0000
00690 ELSE
00691 JLIST(I) = 0
00692 GAMPRT(I) = 0.
00693 ENDIF
00694 1 CONTINUE
00695
00696
00697
00698
00699
00700
00701
00702
00703 BRA1=0.5
00704 BRK0=0.5
00705 BRK0B=0.5
00706 BRKS=0.6667
00707 ELSE
00708
00709
00710 NCHAN = 19
00711 DO 2 I = 1,30
00712 IF (I.LE.NCHAN) THEN
00713 JLIST(I) = I
00714 IF(I.EQ. 1) GAMPRT(I) = .0000
00715 IF(I.EQ. 2) GAMPRT(I) = .0000
00716 IF(I.EQ. 3) GAMPRT(I) = .0000
00717 IF(I.EQ. 4) GAMPRT(I) = .0000
00718 IF(I.EQ. 5) GAMPRT(I) = .0000
00719 IF(I.EQ. 6) GAMPRT(I) = .0000
00720 IF(I.EQ. 7) GAMPRT(I) = .0000
00721 IF(I.EQ. 8) GAMPRT(I) = 1.0000
00722 IF(I.EQ. 9) GAMPRT(I) = 1.0000
00723 IF(I.EQ.10) GAMPRT(I) = 1.0000
00724 IF(I.EQ.11) GAMPRT(I) = 1.0000
00725 IF(I.EQ.12) GAMPRT(I) = 1.0000
00726 IF(I.EQ.13) GAMPRT(I) = 1.0000
00727 IF(I.EQ.14) GAMPRT(I) = 1.0000
00728 IF(I.EQ.15) GAMPRT(I) = 1.0000
00729 IF(I.EQ.16) GAMPRT(I) = 1.0000
00730 IF(I.EQ.17) GAMPRT(I) = 1.0000
00731 IF(I.EQ.18) GAMPRT(I) = 1.0000
00732 IF(I.EQ.19) GAMPRT(I) = 1.0000
00733 ELSE
00734 JLIST(I) = 0
00735 GAMPRT(I) = 0.
00736 ENDIF
00737 2 CONTINUE
00738
00739
00740
00741
00742
00743
00744
00745
00746 BRA1=0.5
00747 BRK0=0.5
00748 BRK0B=0.5
00749 BRKS=0.6667
00750 ENDIF
00751
00752 END
00753 #endif
00754
00755 SUBROUTINE INIPHX(XK00)
00756
00757
00758
00759
00760 COMMON / QEDPRM /ALFINV,ALFPI,XK0
00761 REAL*8 ALFINV,ALFPI,XK0
00762 REAL*8 PI8,XK00
00763
00764 PI8 = 4.D0*DATAN(1.D0)
00765 ALFINV = 137.03604D0
00766 ALFPI = 1D0/(ALFINV*PI8)
00767 XK0=XK00
00768 END
00769
00770 SUBROUTINE INIMAS
00771
00772
00773
00774
00775
00776 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00777 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00778 * ,AMK,AMKZ,AMKST,GAMKST
00779
00780 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00781 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00782 * ,AMK,AMKZ,AMKST,GAMKST
00783
00784
00785 AMTAU = 1.7842
00786
00787 AMTAU = 1.777
00788 AMNUTA = 0.010
00789 AMEL = 0.0005111
00790 AMNUE = 0.0
00791 AMMU = 0.105659
00792 AMNUMU = 0.0
00793
00794
00795 #if defined (CePeCe)
00796 AMPIZ = 0.134964
00797 AMPI = 0.139568
00798 AMRO = 0.773
00799 GAMRO = 0.145
00800
00801 AMA1 = 1.251
00802 GAMA1 = 0.599
00803 AMK = 0.493667
00804 AMKZ = 0.49772
00805 AMKST = 0.8921
00806 GAMKST = 0.0513
00807 #elif defined (CLEO)
00808 AMPIZ = 0.134964
00809 AMPI = 0.139568
00810 AMRO = 0.773
00811 GAMRO = 0.145
00812
00813 AMA1 = 1.251
00814 GAMA1 = 0.599
00815 AMK = 0.493667
00816 AMKZ = 0.49772
00817 AMKST = 0.8921
00818 GAMKST = 0.0513
00819
00820
00821
00822
00823
00824
00825
00826
00827
00828
00829
00830
00831 AMA1 = 1.275
00832 GAMA1 = 0.615
00833
00834
00835
00836
00837
00838 #elif defined (ALEPH)
00839 AMPIZ = 0.134964
00840 AMPI = 0.139568
00841 AMRO = 0.7714
00842 GAMRO = 0.153
00843
00844
00845 AMA1 = 1.251
00846 GAMA1 = 0.599
00847 print *,'INIMAS a1 mass= ',ama1,gama1
00848 AMK = 0.493667
00849 AMKZ = 0.49772
00850 AMKST = 0.8921
00851 GAMKST = 0.0513
00852 #else
00853 #endif
00854
00855 RETURN
00856 END
00857 subroutine bostdq(idir,vv,pp,q)
00858
00859
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869 implicit DOUBLE PRECISION (a-h,o-z)
00870 parameter (nout=6)
00871 DOUBLE PRECISION v(4),p(4),q(4),pp(4),vv(4)
00872 save
00873
00874 do 1 i=1,4
00875 v(i)=vv(i)
00876 1 p(i)=pp(i)
00877 amv=(v(4)**2-v(1)**2-v(2)**2-v(3)**2)
00878 if (amv.le.0d0) then
00879 write(6,*) 'bosstv: warning amv**2=',amv
00880 endif
00881 amv=sqrt(abs(amv))
00882 if (idir.eq.-1) then
00883 q(4)=( p(1)*v(1)+p(2)*v(2)+p(3)*v(3)+p(4)*v(4))/amv
00884 wsp =(q(4)+p(4))/(v(4)+amv)
00885 elseif (idir.eq.1) then
00886 q(4)=(-p(1)*v(1)-p(2)*v(2)-p(3)*v(3)+p(4)*v(4))/amv
00887 wsp =-(q(4)+p(4))/(v(4)+amv)
00888 else
00889 write(nout,*)' >>> boostv: wrong value of idir = ',idir
00890 endif
00891 q(1)=p(1)+wsp*v(1)
00892 q(2)=p(2)+wsp*v(2)
00893 q(3)=p(3)+wsp*v(3)
00894 end
00895
00896
00897
00898
00899
00900
00901
00902
00903
00904 #if defined (ALEPH)
00905 FUNCTION DILOGY(X)
00906
00907 IMPLICIT REAL*8(A-H,O-Z)
00908
00909 Z=-1.64493406684822
00910 IF(X .LT.-1.0) GO TO 1
00911 IF(X .LE. 0.5) GO TO 2
00912 IF(X .EQ. 1.0) GO TO 3
00913 IF(X .LE. 2.0) GO TO 4
00914 Z=3.2898681336964
00915 1 T=1.0/X
00916 S=-0.5
00917 Z=Z-0.5* LOG(ABS(X))**2
00918 GO TO 5
00919 2 T=X
00920 S=0.5
00921 Z=0.
00922 GO TO 5
00923 3 DILOGY=1.64493406684822
00924 RETURN
00925 4 T=1.0-X
00926 S=-0.5
00927 Z=1.64493406684822 - LOG(X)* LOG(ABS(T))
00928 5 Y=2.66666666666666 *T+0.66666666666666
00929 B= 0.00000 00000 00001
00930 A=Y*B +0.00000 00000 00004
00931 B=Y*A-B+0.00000 00000 00011
00932 A=Y*B-A+0.00000 00000 00037
00933 B=Y*A-B+0.00000 00000 00121
00934 A=Y*B-A+0.00000 00000 00398
00935 B=Y*A-B+0.00000 00000 01312
00936 A=Y*B-A+0.00000 00000 04342
00937 B=Y*A-B+0.00000 00000 14437
00938 A=Y*B-A+0.00000 00000 48274
00939 B=Y*A-B+0.00000 00001 62421
00940 A=Y*B-A+0.00000 00005 50291
00941 B=Y*A-B+0.00000 00018 79117
00942 A=Y*B-A+0.00000 00064 74338
00943 B=Y*A-B+0.00000 00225 36705
00944 A=Y*B-A+0.00000 00793 87055
00945 B=Y*A-B+0.00000 02835 75385
00946 A=Y*B-A+0.00000 10299 04264
00947 B=Y*A-B+0.00000 38163 29463
00948 A=Y*B-A+0.00001 44963 00557
00949 B=Y*A-B+0.00005 68178 22718
00950 A=Y*B-A+0.00023 20021 96094
00951 B=Y*A-B+0.00100 16274 96164
00952 A=Y*B-A+0.00468 63619 59447
00953 B=Y*A-B+0.02487 93229 24228
00954 A=Y*B-A+0.16607 30329 27855
00955 A=Y*A-B+1.93506 43008 6996
00956 DILOGY=S*T*(A-B)+Z
00957 RETURN
00958
00959
00960
00961 END
00962 #endif