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