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