00001
00002
00003
00004
00005
00006 SUBROUTINE JAKER(JAK)
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00048
00049
00050
00051
00052 REAL CUMUL(30),RRR(1)
00053
00054 IF(NCHAN.LE.0.OR.NCHAN.GT.30) GOTO 902
00055 CALL RANMAR(RRR,1)
00056 SUM=0
00057 DO 20 I=1,NCHAN
00058 SUM=SUM+GAMPRT(I)
00059 20 CUMUL(I)=SUM
00060 DO 25 I=NCHAN,1,-1
00061 IF(RRR(1).LT.CUMUL(I)/CUMUL(NCHAN)) JI=I
00062 25 CONTINUE
00063 JAK=JLIST(JI)
00064 RETURN
00065 902 PRINT 9020
00066 9020 FORMAT(' ----- JAKER: WRONG NCHAN')
00067 STOP
00068 END
00069 SUBROUTINE DEKAY(KTO,HX)
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 REAL H(4)
00100 REAL*8 HX(4)
00101 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00102
00103
00104
00105 COMMON / IDFC / IDF
00106
00107 COMMON /TAUPOS/ NP1,NP2
00108 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00109 REAL*4 GAMPMC ,GAMPER
00110 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00111
00112
00113
00114 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00115
00116 & ,NAMES
00117 CHARACTER NAMES(NMODE)*31
00118 COMMON / INOUT / INUT,IOUT
00119 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4),HDUM(4)
00120 REAL PDUMX(4,9)
00121 DATA IWARM/0/
00122 KTOM=KTO
00123
00124
00125
00126 IF(KTO.EQ.-1) THEN
00127
00128
00129
00130 NP1=3
00131 NP2=4
00132 KTOM=1
00133 IF (IWARM.EQ.1) X=5/(IWARM-1)
00134 IWARM=1
00135 WRITE(IOUT,7001) JAK1,JAK2
00136 NEVTOT=0
00137 NEV1=0
00138 NEV2=0
00139 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00140 CALL DADMEL(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00141 CALL DADMMU(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00142 CALL DADMPI(-1,IDUM,PDUM,PDUM1,PDUM2)
00143 CALL DADMRO(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00144 CALL DADMAA(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM)
00145 CALL DADMKK(-1,IDUM,PDUM,PDUM1,PDUM2)
00146 CALL DADMKS(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM)
00147 CALL DADNEW(-1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM)
00148 ENDIF
00149 DO 21 I=1,30
00150 NEVDEC(I)=0
00151 GAMPMC(I)=0
00152 21 GAMPER(I)=0
00153 ELSEIF(KTO.EQ.1) THEN
00154
00155
00156 NEVTOT=NEVTOT+1
00157 IF(IWARM.EQ.0) GOTO 902
00158 ISGN= IDF/IABS(IDF)
00159
00160
00161
00162
00163 CALL TAURDF(KTO)
00164
00165 CALL DEKAY1(0,H,ISGN)
00166 ELSEIF(KTO.EQ.2) THEN
00167
00168
00169 NEVTOT=NEVTOT+1
00170 IF(IWARM.EQ.0) GOTO 902
00171 ISGN=-IDF/IABS(IDF)
00172
00173
00174
00175
00176 CALL TAURDF(KTO)
00177
00178 CALL DEKAY2(0,H,ISGN)
00179 ELSEIF(KTO.EQ.11) THEN
00180
00181
00182 NEV1=NEV1+1
00183 ISGN= IDF/IABS(IDF)
00184 CALL DEKAY1(1,H,ISGN)
00185 ELSEIF(KTO.EQ.12) THEN
00186
00187
00188 NEV2=NEV2+1
00189 ISGN=-IDF/IABS(IDF)
00190 CALL DEKAY2(1,H,ISGN)
00191 ELSEIF(KTO.EQ.100) THEN
00192
00193 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00194 CALL DADMEL( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00195 CALL DADMMU( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00196 CALL DADMPI( 1,IDUM,PDUM,PDUM1,PDUM2)
00197 CALL DADMRO( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00198 CALL DADMAA( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM)
00199 CALL DADMKK( 1,IDUM,PDUM,PDUM1,PDUM2)
00200 CALL DADMKS( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM)
00201 CALL DADNEW( 1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM)
00202 WRITE(IOUT,7010) NEV1,NEV2,NEVTOT
00203 WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7)
00204 WRITE(IOUT,7012)
00205 $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE)
00206 WRITE(IOUT,7013)
00207 ENDIF
00208 ELSE
00209
00210 GOTO 910
00211 ENDIF
00212
00213 DO 78 K=1,4
00214 78 HX(K)=H(K)
00215 RETURN
00216 7001 FORMAT(///1X,15(5H*****)
00217 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*,
00218 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00219 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00220 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00221 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00222 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00223 $ /,' *', 25X,' Physics initialization by CLEO collab ',9X,1H*,
00224 $ /,' *', 25X,' see Alain Weinstein www home page: ',9X,1H*,
00225 $ /,' *', 25X,'http://www.cithep.caltech.edu/~ajw/ ',9X,1H*,
00226 $ /,' *', 25X,'/korb_doc.html#files ',9X,1H*,
00227 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00228 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00229 $ /,' *', 25X,'****DEKAY ROUTINE: INITIALIZATION******',9X,1H*,
00230 $ /,' *',I20 ,5X,'JAK1 = DECAY MODE TAU+ ',9X,1H*,
00231 $ /,' *',I20 ,5X,'JAK2 = DECAY MODE TAU- ',9X,1H*,
00232 $ /,1X,15(5H*****)/)
00233 7010 FORMAT(///1X,15(5H*****)
00234 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*,
00235 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00236 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00237 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00238 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00239 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00240 $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*,
00241 $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*,
00242 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00243 $ /,' *', 25X,'*****DEKAY ROUTINE: FINAL REPORT*******',9X,1H*,
00244 $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H*,
00245 $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H*,
00246 $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H*,
00247 $ /,' *',' NOEVTS ',
00248 $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*)
00249 7011 FORMAT(1X,'*'
00250 $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H*
00251 $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H*
00252 $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H*
00253 $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H*
00254 $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H*
00255 $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H*
00256 $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*)
00257 7012 FORMAT(1X,'*'
00258 $ ,I10,2F12.7,A31 ,8X,1H*)
00259 7013 FORMAT(1X,'*'
00260 $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H*
00261 $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H*
00262 $ /,1X,15(5H*****)/)
00263 902 PRINT 9020
00264 9020 FORMAT(' ----- DEKAY: LACK OF INITIALISATION')
00265 STOP
00266 910 PRINT 9100
00267 9100 FORMAT(' ----- DEKAY: WRONG VALUE OF KTO ')
00268 STOP
00269 END
00270 SUBROUTINE DEKAY1(IMOD,HH,ISGN)
00271
00272
00273 COMMON / DECP4 / PP1(4),PP2(4),KF1,KF2
00274 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00275 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00276 REAL*4 GAMPMC ,GAMPER
00277 REAL HH(4)
00278 REAL HV(4),PNU(4),PPI(4)
00279 REAL PWB(4),PMU(4),PNM(4)
00280 REAL PRHO(4),PIC(4),PIZ(4)
00281 REAL PAA(4),PIM1(4),PIM2(4),PIPL(4)
00282 REAL PKK(4),PKS(4)
00283 REAL PNPI(4,9)
00284 REAL PHOT(4)
00285 REAL PDUM(4)
00286 DATA NEV,NPRIN/0,10/
00287 KTO=1
00288 IF(JAK1.EQ.-1) RETURN
00289 IMD=IMOD
00290 IF(IMD.EQ.0) THEN
00291
00292 JAK=JAK1
00293 IF(JAK1.EQ.0) CALL JAKER(JAK)
00294 IF(JAK.EQ.1) THEN
00295 CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00296 ELSEIF(JAK.EQ.2) THEN
00297 CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00298 ELSEIF(JAK.EQ.3) THEN
00299 CALL DADMPI(0, ISGN,HV,PPI,PNU)
00300 ELSEIF(JAK.EQ.4) THEN
00301 CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ)
00302 ELSEIF(JAK.EQ.5) THEN
00303 CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00304 ELSEIF(JAK.EQ.6) THEN
00305 CALL DADMKK(0, ISGN,HV,PKK,PNU)
00306 ELSEIF(JAK.EQ.7) THEN
00307 CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST)
00308 ELSE
00309 CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7)
00310 ENDIF
00311 DO 33 I=1,3
00312 33 HH(I)=HV(I)
00313 HH(4)=1.0
00314
00315 ELSEIF(IMD.EQ.1) THEN
00316
00317 NEV=NEV+1
00318 IF (JAK.LT.31) THEN
00319 NEVDEC(JAK)=NEVDEC(JAK)+1
00320 ENDIF
00321 DO 34 I=1,4
00322 34 PDUM(I)=.0
00323 IF(JAK.EQ.1) THEN
00324 CALL DWLUEL(1,ISGN,PNU,PWB,PMU,PNM)
00325 CALL DWRPH(KTOM,PHOT)
00326 DO 10 I=1,4
00327 10 PP1(I)=PMU(I)
00328
00329 ELSEIF(JAK.EQ.2) THEN
00330 CALL DWLUMU(1,ISGN,PNU,PWB,PMU,PNM)
00331 CALL DWRPH(KTOM,PHOT)
00332 DO 20 I=1,4
00333 20 PP1(I)=PMU(I)
00334
00335 ELSEIF(JAK.EQ.3) THEN
00336 CALL DWLUPI(1,ISGN,PPI,PNU)
00337 DO 30 I=1,4
00338 30 PP1(I)=PPI(I)
00339
00340 ELSEIF(JAK.EQ.4) THEN
00341 CALL DWLURO(1,ISGN,PNU,PRHO,PIC,PIZ)
00342 DO 40 I=1,4
00343 40 PP1(I)=PRHO(I)
00344
00345 ELSEIF(JAK.EQ.5) THEN
00346 CALL DWLUAA(1,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00347 DO 50 I=1,4
00348 50 PP1(I)=PAA(I)
00349 ELSEIF(JAK.EQ.6) THEN
00350 CALL DWLUKK(1,ISGN,PKK,PNU)
00351 DO 60 I=1,4
00352 60 PP1(I)=PKK(I)
00353 ELSEIF(JAK.EQ.7) THEN
00354 CALL DWLUKS(1,ISGN,PNU,PKS,PKK,PPI,JKST)
00355 DO 70 I=1,4
00356 70 PP1(I)=PKS(I)
00357 ELSE
00358
00359 CALL DWLNEW(1,ISGN,PNU,PWB,PNPI,JAK)
00360 DO 80 I=1,4
00361 80 PP1(I)=PWB(I)
00362 ENDIF
00363
00364 ENDIF
00365
00366 END
00367 SUBROUTINE DEKAY2(IMOD,HH,ISGN)
00368
00369
00370 COMMON / DECP4 / PP1(4),PP2(4),KF1,KF2
00371 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00372 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00373 REAL*4 GAMPMC ,GAMPER
00374 REAL HH(4)
00375 REAL HV(4),PNU(4),PPI(4)
00376 REAL PWB(4),PMU(4),PNM(4)
00377 REAL PRHO(4),PIC(4),PIZ(4)
00378 REAL PAA(4),PIM1(4),PIM2(4),PIPL(4)
00379 REAL PKK(4),PKS(4)
00380 REAL PNPI(4,9)
00381 REAL PHOT(4)
00382 REAL PDUM(4)
00383 DATA NEV,NPRIN/0,10/
00384 KTO=2
00385 IF(JAK2.EQ.-1) RETURN
00386 IMD=IMOD
00387 IF(IMD.EQ.0) THEN
00388
00389 JAK=JAK2
00390 IF(JAK2.EQ.0) CALL JAKER(JAK)
00391 IF(JAK.EQ.1) THEN
00392 CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00393 ELSEIF(JAK.EQ.2) THEN
00394 CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00395 ELSEIF(JAK.EQ.3) THEN
00396 CALL DADMPI(0, ISGN,HV,PPI,PNU)
00397 ELSEIF(JAK.EQ.4) THEN
00398 CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ)
00399 ELSEIF(JAK.EQ.5) THEN
00400 CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00401 ELSEIF(JAK.EQ.6) THEN
00402 CALL DADMKK(0, ISGN,HV,PKK,PNU)
00403 ELSEIF(JAK.EQ.7) THEN
00404 CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST)
00405 ELSE
00406 CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7)
00407 ENDIF
00408 DO 33 I=1,3
00409 33 HH(I)=HV(I)
00410 HH(4)=1.0
00411 ELSEIF(IMD.EQ.1) THEN
00412
00413 NEV=NEV+1
00414 IF (JAK.LT.31) THEN
00415 NEVDEC(JAK)=NEVDEC(JAK)+1
00416 ENDIF
00417 DO 34 I=1,4
00418 34 PDUM(I)=.0
00419 IF(JAK.EQ.1) THEN
00420 CALL DWLUEL(2,ISGN,PNU,PWB,PMU,PNM)
00421 CALL DWRPH(KTOM,PHOT)
00422 DO 10 I=1,4
00423 10 PP2(I)=PMU(I)
00424
00425 ELSEIF(JAK.EQ.2) THEN
00426 CALL DWLUMU(2,ISGN,PNU,PWB,PMU,PNM)
00427 CALL DWRPH(KTOM,PHOT)
00428 DO 20 I=1,4
00429 20 PP2(I)=PMU(I)
00430
00431 ELSEIF(JAK.EQ.3) THEN
00432 CALL DWLUPI(2,ISGN,PPI,PNU)
00433 DO 30 I=1,4
00434 30 PP2(I)=PPI(I)
00435
00436 ELSEIF(JAK.EQ.4) THEN
00437 CALL DWLURO(2,ISGN,PNU,PRHO,PIC,PIZ)
00438 DO 40 I=1,4
00439 40 PP2(I)=PRHO(I)
00440
00441 ELSEIF(JAK.EQ.5) THEN
00442 CALL DWLUAA(2,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00443 DO 50 I=1,4
00444 50 PP2(I)=PAA(I)
00445 ELSEIF(JAK.EQ.6) THEN
00446 CALL DWLUKK(2,ISGN,PKK,PNU)
00447 DO 60 I=1,4
00448 60 PP1(I)=PKK(I)
00449 ELSEIF(JAK.EQ.7) THEN
00450 CALL DWLUKS(2,ISGN,PNU,PKS,PKK,PPI,JKST)
00451 DO 70 I=1,4
00452 70 PP1(I)=PKS(I)
00453 ELSE
00454
00455 CALL DWLNEW(2,ISGN,PNU,PWB,PNPI,JAK)
00456 DO 80 I=1,4
00457 80 PP1(I)=PWB(I)
00458 ENDIF
00459
00460 ENDIF
00461
00462 END
00463 SUBROUTINE DEXAY(KTO,POL)
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00478 REAL*4 GAMPMC ,GAMPER
00479 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00480 COMMON / IDFC / IDFF
00481 COMMON /TAUPOS/ NP1,NP2
00482 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00483 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00484 & ,NAMES
00485 CHARACTER NAMES(NMODE)*31
00486 COMMON / INOUT / INUT,IOUT
00487 REAL POL(4)
00488 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
00489 REAL PDUM(4)
00490 REAL PDUMI(4,9)
00491 DATA IWARM/0/
00492 KTOM=KTO
00493
00494 IF(KTO.EQ.-1) THEN
00495
00496
00497
00498
00499 NP1=3
00500 NP2=4
00501 IWARM=1
00502 WRITE(IOUT, 7001) JAK1,JAK2
00503 NEVTOT=0
00504 NEV1=0
00505 NEV2=0
00506 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00507 CALL DEXEL(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00508 CALL DEXMU(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00509 CALL DEXPI(-1,IDUM,PDUM,PDUM1,PDUM2)
00510 CALL DEXRO(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00511 CALL DEXAA(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM)
00512 CALL DEXKK(-1,IDUM,PDUM,PDUM1,PDUM2)
00513 CALL DEXKS(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM)
00514 CALL DEXNEW(-1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM)
00515 ENDIF
00516 DO 21 I=1,30
00517 NEVDEC(I)=0
00518 GAMPMC(I)=0
00519 21 GAMPER(I)=0
00520 ELSEIF(KTO.EQ.1) THEN
00521
00522
00523 NEVTOT=NEVTOT+1
00524 NEV1=NEV1+1
00525 IF(IWARM.EQ.0) GOTO 902
00526 ISGN=IDFF/IABS(IDFF)
00527
00528 CALL DEXAY1(KTO,JAK1,JAKP,POL,ISGN)
00529 ELSEIF(KTO.EQ.2) THEN
00530
00531
00532 NEVTOT=NEVTOT+1
00533 NEV2=NEV2+1
00534 IF(IWARM.EQ.0) GOTO 902
00535 ISGN=-IDFF/IABS(IDFF)
00536
00537 CALL DEXAY1(KTO,JAK2,JAKM,POL,ISGN)
00538 ELSEIF(KTO.EQ.100) THEN
00539
00540 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00541 CALL DEXEL( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00542 CALL DEXMU( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00543 CALL DEXPI( 1,IDUM,PDUM,PDUM1,PDUM2)
00544 CALL DEXRO( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00545 CALL DEXAA( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM)
00546 CALL DEXKK( 1,IDUM,PDUM,PDUM1,PDUM2)
00547 CALL DEXKS( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM)
00548 CALL DEXNEW( 1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM)
00549 WRITE(IOUT,7010) NEV1,NEV2,NEVTOT
00550 WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7)
00551 WRITE(IOUT,7012)
00552 $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE)
00553 WRITE(IOUT,7013)
00554 ENDIF
00555 ELSE
00556 GOTO 910
00557 ENDIF
00558 RETURN
00559 7001 FORMAT(///1X,15(5H*****)
00560 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*,
00561 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00562 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00563 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00564 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00565 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00566 $ /,' *', 25X,' Physics initialization by CLEO collab ',9X,1H*,
00567 $ /,' *', 25X,' see Alain Weinstein www home page: ',9X,1H*,
00568 $ /,' *', 25X,'http://www.cithep.caltech.edu/~ajw/ ',9X,1H*,
00569 $ /,' *', 25X,'/korb_doc.html#files ',9X,1H*,
00570 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00571 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00572 $ /,' *', 25X,'*******CERN-TH-6793 NOVEMBER 1992*****',9X,1H*,
00573 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00574 $ /,' *', 25X,'******DEXAY ROUTINE: INITIALIZATION****',9X,1H*
00575 $ /,' *',I20 ,5X,'JAK1 = DECAY MODE FERMION1 (TAU+) ',9X,1H*
00576 $ /,' *',I20 ,5X,'JAK2 = DECAY MODE FERMION2 (TAU-) ',9X,1H*
00577 $ /,1X,15(5H*****)/)
00578
00579
00580 7010 FORMAT(///1X,15(5H*****)
00581 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*,
00582 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00583 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00584 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00585 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00586 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00587 $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*,
00588 $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*,
00589 $ /,' *', 25X,'*******CERN-TH-6793 NOVEMBER 1992*****',9X,1H*,
00590 $ /,' *', 25X,'******DEXAY ROUTINE: FINAL REPORT******',9X,1H*
00591 $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H*
00592 $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H*
00593 $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H*
00594 $ /,' *',' NOEVTS ',
00595 $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*)
00596 7011 FORMAT(1X,'*'
00597 $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H*
00598 $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H*
00599 $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H*
00600 $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H*
00601 $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H*
00602 $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H*
00603 $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*)
00604 7012 FORMAT(1X,'*'
00605 $ ,I10,2F12.7,A31 ,8X,1H*)
00606 7013 FORMAT(1X,'*'
00607 $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H*
00608 $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H*
00609 $ /,1X,15(5H*****)/)
00610 902 WRITE(IOUT, 9020)
00611 9020 FORMAT(' ----- DEXAY: LACK OF INITIALISATION')
00612 STOP
00613 910 WRITE(IOUT, 9100)
00614 9100 FORMAT(' ----- DEXAY: WRONG VALUE OF KTO ')
00615 STOP
00616 END
00617 SUBROUTINE DEXAY1(KTO,JAKIN,JAK,POL,ISGN)
00618
00619
00620
00621
00622
00623 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00624 REAL*4 GAMPMC ,GAMPER
00625 COMMON / INOUT / INUT,IOUT
00626 REAL POL(4),POLAR(4)
00627 REAL PNU(4),PPI(4)
00628 REAL PRHO(4),PIC(4),PIZ(4)
00629 REAL PWB(4),PMU(4),PNM(4)
00630 REAL PAA(4),PIM1(4),PIM2(4),PIPL(4)
00631 REAL PKK(4),PKS(4)
00632 REAL PNPI(4,9)
00633 REAL PHOT(4)
00634 REAL PDUM(4)
00635
00636 IF(JAKIN.EQ.-1) RETURN
00637 DO 33 I=1,3
00638 33 POLAR(I)=POL(I)
00639 POLAR(4)=0.
00640 DO 34 I=1,4
00641 34 PDUM(I)=.0
00642 JAK=JAKIN
00643 IF(JAK.EQ.0) CALL JAKER(JAK)
00644
00645 IF(JAK.EQ.1) THEN
00646 CALL DEXEL(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT)
00647 CALL DWLUEL(KTO,ISGN,PNU,PWB,PMU,PNM)
00648 CALL DWRPH(KTO,PHOT )
00649 ELSEIF(JAK.EQ.2) THEN
00650 CALL DEXMU(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT)
00651 CALL DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM)
00652 CALL DWRPH(KTO,PHOT )
00653 ELSEIF(JAK.EQ.3) THEN
00654 CALL DEXPI(0, ISGN,POLAR,PPI,PNU)
00655 CALL DWLUPI(KTO,ISGN,PPI,PNU)
00656 ELSEIF(JAK.EQ.4) THEN
00657 CALL DEXRO(0, ISGN,POLAR,PNU,PRHO,PIC,PIZ)
00658 CALL DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ)
00659 ELSEIF(JAK.EQ.5) THEN
00660 CALL DEXAA(0, ISGN,POLAR,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00661 CALL DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00662 ELSEIF(JAK.EQ.6) THEN
00663 CALL DEXKK(0, ISGN,POLAR,PKK,PNU)
00664 CALL DWLUKK(KTO,ISGN,PKK,PNU)
00665 ELSEIF(JAK.EQ.7) THEN
00666 CALL DEXKS(0, ISGN,POLAR,PNU,PKS,PKK,PPI,JKST)
00667 CALL DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
00668 ELSE
00669 JNPI=JAK-7
00670 CALL DEXNEW(0, ISGN,POLAR,PNU,PWB,PNPI,JNPI)
00671 CALL DWLNEW(KTO,ISGN,PNU,PWB,PNPI,JAK)
00672 ENDIF
00673 NEVDEC(JAK)=NEVDEC(JAK)+1
00674 END
00675 SUBROUTINE DEXEL(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
00676
00677
00678
00679
00680
00681
00682 REAL POL(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4),PH(4),RN(1)
00683 DATA IWARM/0/
00684
00685 IF(MODE.EQ.-1) THEN
00686
00687 IWARM=1
00688 CALL DADMEL( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00689
00690
00691 ELSEIF(MODE.EQ. 0) THEN
00692
00693 300 CONTINUE
00694 IF(IWARM.EQ.0) GOTO 902
00695 CALL DADMEL( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00696 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
00697
00698 CALL RANMAR(RN,1)
00699 IF(RN(1).GT.WT) GOTO 300
00700
00701 ELSEIF(MODE.EQ. 1) THEN
00702
00703 CALL DADMEL( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00704
00705 ENDIF
00706
00707 RETURN
00708 902 PRINT 9020
00709 9020 FORMAT(' ----- DEXEL: LACK OF INITIALISATION')
00710 STOP
00711 END
00712 SUBROUTINE DEXMU(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
00713
00714
00715
00716
00717
00718
00719
00720
00721 COMMON / INOUT / INUT,IOUT
00722 REAL POL(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4),PH(4),RN(1)
00723 DATA IWARM/0/
00724
00725 IF(MODE.EQ.-1) THEN
00726
00727 IWARM=1
00728 CALL DADMMU( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00729
00730
00731 ELSEIF(MODE.EQ. 0) THEN
00732
00733 300 CONTINUE
00734 IF(IWARM.EQ.0) GOTO 902
00735 CALL DADMMU( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00736 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
00737
00738 CALL RANMAR(RN,1)
00739 IF(RN(1).GT.WT) GOTO 300
00740
00741 ELSEIF(MODE.EQ. 1) THEN
00742
00743 CALL DADMMU( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00744
00745 ENDIF
00746
00747 RETURN
00748 902 WRITE(IOUT, 9020)
00749 9020 FORMAT(' ----- DEXMU: LACK OF INITIALISATION')
00750 STOP
00751 END
00752 SUBROUTINE DADMEL(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
00753
00754
00755
00756
00757 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00758 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00759 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00760 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00761 * ,AMK,AMKZ,AMKST,GAMKST
00762
00763 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00764 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00765 * ,AMK,AMKZ,AMKST,GAMKST
00766 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00767 REAL*4 GAMPMC ,GAMPER
00768 REAL*4 PHX(4)
00769 COMMON / INOUT / INUT,IOUT
00770 REAL HHV(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4)
00771 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
00772 REAL*4 RRR(3)
00773 REAL*8 SWT, SSWT
00774 DATA PI /3.141592653589793238462643/
00775 DATA IWARM/0/
00776
00777 IF(MODE.EQ.-1) THEN
00778
00779 IWARM=1
00780 NEVRAW=0
00781 NEVACC=0
00782 NEVOVR=0
00783 SWT=0
00784 SSWT=0
00785 WTMAX=1E-20
00786 DO 15 I=1,500
00787 CALL DPHSEL(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00788 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
00789 15 CONTINUE
00790
00791
00792 ELSEIF(MODE.EQ. 0) THEN
00793
00794 300 CONTINUE
00795 IF(IWARM.EQ.0) GOTO 902
00796 NEVRAW=NEVRAW+1
00797 CALL DPHSEL(WT,HV,PNU,PWB,Q1,Q2,PHX)
00798
00799 SWT=SWT+WT
00800 SSWT=SSWT+WT**2
00801 CALL RANMAR(RRR,3)
00802 RN=RRR(1)
00803 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
00804 IF(RN*WTMAX.GT.WT) GOTO 300
00805
00806 RR2=RRR(2)
00807 COSTHE=-1.+2.*RR2
00808 THET=ACOS(COSTHE)
00809 RR3=RRR(3)
00810 PHI =2*PI*RR3
00811 CALL ROTOR2(THET,PNU,PNU)
00812 CALL ROTOR3( PHI,PNU,PNU)
00813 CALL ROTOR2(THET,PWB,PWB)
00814 CALL ROTOR3( PHI,PWB,PWB)
00815 CALL ROTOR2(THET,Q1,Q1)
00816 CALL ROTOR3( PHI,Q1,Q1)
00817 CALL ROTOR2(THET,Q2,Q2)
00818 CALL ROTOR3( PHI,Q2,Q2)
00819 CALL ROTOR2(THET,HV,HV)
00820 CALL ROTOR3( PHI,HV,HV)
00821 CALL ROTOR2(THET,PHX,PHX)
00822 CALL ROTOR3( PHI,PHX,PHX)
00823 DO 44,I=1,3
00824 44 HHV(I)=-ISGN*HV(I)
00825 NEVACC=NEVACC+1
00826
00827 ELSEIF(MODE.EQ. 1) THEN
00828
00829 IF(NEVRAW.EQ.0) RETURN
00830 PARGAM=SWT/FLOAT(NEVRAW+1)
00831 ERROR=0
00832 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
00833 RAT=PARGAM/GAMEL
00834 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
00835
00836 GAMPMC(1)=RAT
00837 GAMPER(1)=ERROR
00838
00839 ENDIF
00840
00841 RETURN
00842 7010 FORMAT(///1X,15(5H*****)
00843 $ /,' *', 25X,'******** DADMEL FINAL REPORT ******** ',9X,1H*
00844 $ /,' *',I20 ,5X,'NEVRAW = NO. OF EL DECAYS TOTAL ',9X,1H*
00845 $ /,' *',I20 ,5X,'NEVACC = NO. OF EL DECS. ACCEPTED ',9X,1H*
00846 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
00847 $ /,' *',E20.5,5X,'PARTIAL WTDTH ( ELECTRON) IN GEV UNITS ',9X,1H*
00848 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
00849 $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
00850 $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H*
00851 $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H*
00852 $ /,1X,15(5H*****)/)
00853 902 WRITE(IOUT, 9020)
00854 9020 FORMAT(' ----- DADMEL: LACK OF INITIALISATION')
00855 STOP
00856 END
00857 SUBROUTINE DADMMU(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
00858
00859 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00860 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00861 * ,AMK,AMKZ,AMKST,GAMKST
00862
00863 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00864 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00865 * ,AMK,AMKZ,AMKST,GAMKST
00866 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00867 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00868 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00869 REAL*4 GAMPMC ,GAMPER
00870 COMMON / INOUT / INUT,IOUT
00871 REAL*4 PHX(4)
00872 REAL HHV(4),HV(4),PNU(4),PWB(4),Q1(4),Q2(4)
00873 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
00874 REAL*4 RRR(3)
00875 REAL*8 SWT, SSWT
00876 DATA PI /3.141592653589793238462643/
00877 DATA IWARM /0/
00878
00879 IF(MODE.EQ.-1) THEN
00880
00881 IWARM=1
00882 NEVRAW=0
00883 NEVACC=0
00884 NEVOVR=0
00885 SWT=0
00886 SSWT=0
00887 WTMAX=1E-20
00888 DO 15 I=1,500
00889 CALL DPHSMU(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00890 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
00891 15 CONTINUE
00892
00893
00894 ELSEIF(MODE.EQ. 0) THEN
00895
00896 300 CONTINUE
00897 IF(IWARM.EQ.0) GOTO 902
00898 NEVRAW=NEVRAW+1
00899 CALL DPHSMU(WT,HV,PNU,PWB,Q1,Q2,PHX)
00900
00901 SWT=SWT+WT
00902 SSWT=SSWT+WT**2
00903 CALL RANMAR(RRR,3)
00904 RN=RRR(1)
00905 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
00906 IF(RN*WTMAX.GT.WT) GOTO 300
00907
00908 COSTHE=-1.+2.*RRR(2)
00909 THET=ACOS(COSTHE)
00910 PHI =2*PI*RRR(3)
00911 CALL ROTOR2(THET,PNU,PNU)
00912 CALL ROTOR3( PHI,PNU,PNU)
00913 CALL ROTOR2(THET,PWB,PWB)
00914 CALL ROTOR3( PHI,PWB,PWB)
00915 CALL ROTOR2(THET,Q1,Q1)
00916 CALL ROTOR3( PHI,Q1,Q1)
00917 CALL ROTOR2(THET,Q2,Q2)
00918 CALL ROTOR3( PHI,Q2,Q2)
00919 CALL ROTOR2(THET,HV,HV)
00920 CALL ROTOR3( PHI,HV,HV)
00921 CALL ROTOR2(THET,PHX,PHX)
00922 CALL ROTOR3( PHI,PHX,PHX)
00923 DO 44,I=1,3
00924 44 HHV(I)=-ISGN*HV(I)
00925 NEVACC=NEVACC+1
00926
00927 ELSEIF(MODE.EQ. 1) THEN
00928
00929 IF(NEVRAW.EQ.0) RETURN
00930 PARGAM=SWT/FLOAT(NEVRAW+1)
00931 ERROR=0
00932 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
00933 RAT=PARGAM/GAMEL
00934 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
00935
00936 GAMPMC(2)=RAT
00937 GAMPER(2)=ERROR
00938
00939 ENDIF
00940
00941 RETURN
00942 7010 FORMAT(///1X,15(5H*****)
00943 $ /,' *', 25X,'******** DADMMU FINAL REPORT ******** ',9X,1H*
00944 $ /,' *',I20 ,5X,'NEVRAW = NO. OF MU DECAYS TOTAL ',9X,1H*
00945 $ /,' *',I20 ,5X,'NEVACC = NO. OF MU DECS. ACCEPTED ',9X,1H*
00946 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
00947 $ /,' *',E20.5,5X,'PARTIAL WTDTH (MU DECAY) IN GEV UNITS ',9X,1H*
00948 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
00949 $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
00950 $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H*
00951 $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H*
00952 $ /,1X,15(5H*****)/)
00953 902 WRITE(IOUT, 9020)
00954 9020 FORMAT(' ----- DADMMU: LACK OF INITIALISATION')
00955 STOP
00956 END
00957 SUBROUTINE DPHSEL(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
00958
00959
00960
00961
00962 REAL*4 PHX(4)
00963 REAL*4 HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4)
00964 REAL*8 HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4)
00965 REAL*8 DGAMT
00966 IELMU=1
00967 CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
00968 DO 7 K=1,4
00969 HVX(K)=HV(K)
00970 PHX(K)=PH(K)
00971 PAAX(K)=PAA(K)
00972 XAX(K)=XA(K)
00973 QPX(K)=QP(K)
00974 XNX(K)=XN(K)
00975 7 CONTINUE
00976 DGAMX=DGAMT
00977 END
00978 SUBROUTINE DPHSMU(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
00979
00980
00981
00982
00983 REAL*4 PHX(4)
00984 REAL*4 HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4)
00985 REAL*8 HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4)
00986 REAL*8 DGAMT
00987 IELMU=2
00988 CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
00989 DO 7 K=1,4
00990 HVX(K)=HV(K)
00991 PHX(K)=PH(K)
00992 PAAX(K)=PAA(K)
00993 XAX(K)=XA(K)
00994 QPX(K)=QP(K)
00995 XNX(K)=XN(K)
00996 7 CONTINUE
00997 DGAMX=DGAMT
00998 END
00999 SUBROUTINE DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
01000 IMPLICIT REAL*8 (A-H,O-Z)
01001
01002
01003
01004
01005 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01006 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01007 * ,AMK,AMKZ,AMKST,GAMKST
01008
01009 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01010 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01011 * ,AMK,AMKZ,AMKST,GAMKST
01012 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01013 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01014 COMMON / INOUT / INUT,IOUT
01015 COMMON / TAURAD / XK0DEC,ITDKRC
01016 REAL*8 XK0DEC
01017 REAL*8 HV(4),PT(4),PH(4),PAA(4),XA(4),QP(4),XN(4)
01018 REAL*8 PR(4)
01019 REAL*4 RRR(6)
01020 LOGICAL IHARD
01021 DATA PI /3.141592653589793238462643D0/
01022
01023
01024
01025
01026
01027 PHSPAC=1./2**17/PI**8
01028 AMTAX=AMTAU
01029
01030 PT(1)=0.D0
01031 PT(2)=0.D0
01032 PT(3)=0.D0
01033 PT(4)=AMTAX
01034
01035 CALL RANMAR(RRR,6)
01036
01037 IF (IELMU.EQ.1) THEN
01038 AMU=AMEL
01039 ELSE
01040 AMU=AMMU
01041 ENDIF
01042
01043 PRHARD=0.30D0
01044 IF ( ITDKRC.EQ.0) PRHARD=0D0
01045 PRSOFT=1.-PRHARD
01046 IF(PRSOFT.LT.0.1) THEN
01047 PRINT *, 'ERROR IN DRCMU; PRSOFT=',PRSOFT
01048 STOP
01049 ENDIF
01050
01051 RR5=RRR(5)
01052 IHARD=(RR5.GT.PRSOFT)
01053 IF (IHARD) THEN
01054
01055 RR1=RRR(1)
01056 AMS1=(AMU+AMNUTA)**2
01057 AMS2=(AMTAX)**2
01058 XK1=1-AMS1/AMS2
01059 XL1=LOG(XK1/2/XK0DEC)
01060 XL0=LOG(2*XK0DEC)
01061 XK=EXP(XL1*RR1+XL0)
01062 AM3SQ=(1-XK)*AMS2
01063 AM3 =SQRT(AM3SQ)
01064 PHSPAC=PHSPAC*AMS2*XL1*XK
01065 PHSPAC=PHSPAC/PRHARD
01066 ELSE
01067 AM3=AMTAX
01068 PHSPAC=PHSPAC*2**6*PI**3
01069 PHSPAC=PHSPAC/PRSOFT
01070 ENDIF
01071
01072 RR2=RRR(2)
01073 AMS1=(AMNUTA)**2
01074 AMS2=(AM3-AMU)**2
01075
01076
01077
01078 AM2SQ=AMS1+ RR2*(AMS2-AMS1)
01079 AM2 =SQRT(AM2SQ)
01080 PHSPAC=PHSPAC*(AMS2-AMS1)
01081
01082 ENQ1=(AM2SQ+AMNUTA**2)/(2*AM2)
01083 ENQ2=(AM2SQ-AMNUTA**2)/(2*AM2)
01084 PPI= ENQ1**2-AMNUTA**2
01085 PPPI=SQRT(ABS(ENQ1**2-AMNUTA**2))
01086 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2)
01087
01088 CALL SPHERD(PPPI,XN)
01089 XN(4)=ENQ1
01090
01091 DO 30 I=1,3
01092 30 XA(I)=-XN(I)
01093 XA(4)=ENQ2
01094
01095
01096 PR(1)=0
01097 PR(2)=0
01098 PR(4)=1.D0/(2*AM3)*(AM3**2+AM2**2-AMU**2)
01099 PR(3)= SQRT(ABS(PR(4)**2-AM2**2))
01100 PPI = PR(4)**2-AM2**2
01101
01102 QP(1)=0
01103 QP(2)=0
01104 QP(4)=1.D0/(2*AM3)*(AM3**2-AM2**2+AMU**2)
01105 QP(3)=-PR(3)
01106 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AM3)
01107
01108 EXE=(PR(4)+PR(3))/AM2
01109 CALL BOSTD3(EXE,XN,XN)
01110 CALL BOSTD3(EXE,XA,XA)
01111 RR3=RRR(3)
01112 RR4=RRR(4)
01113 IF (IHARD) THEN
01114 EPS=4*(AMU/AMTAX)**2
01115 XL1=LOG((2+EPS)/EPS)
01116 XL0=LOG(EPS)
01117 ETA =EXP(XL1*RR3+XL0)
01118 CTHET=1+EPS-ETA
01119 THET =ACOS(CTHET)
01120 PHSPAC=PHSPAC*XL1/2*ETA
01121 PHI = 2*PI*RR4
01122 CALL ROTPOX(THET,PHI,XN)
01123 CALL ROTPOX(THET,PHI,XA)
01124 CALL ROTPOX(THET,PHI,QP)
01125 CALL ROTPOX(THET,PHI,PR)
01126
01127
01128
01129 PAA(1)=0
01130 PAA(2)=0
01131 PAA(4)=1/(2*AMTAX)*(AMTAX**2+AM3**2)
01132 PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2))
01133 PPI = PAA(4)**2-AM3**2
01134 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAX)
01135
01136 PH(1)=0
01137 PH(2)=0
01138 PH(4)=PAA(3)
01139 PH(3)=-PAA(3)
01140
01141
01142 EXE=(PAA(4)+PAA(3))/AM3
01143 CALL BOSTD3(EXE,XN,XN)
01144 CALL BOSTD3(EXE,XA,XA)
01145 CALL BOSTD3(EXE,QP,QP)
01146 CALL BOSTD3(EXE,PR,PR)
01147 ELSE
01148 THET =ACOS(-1.+2*RR3)
01149 PHI = 2*PI*RR4
01150 CALL ROTPOX(THET,PHI,XN)
01151 CALL ROTPOX(THET,PHI,XA)
01152 CALL ROTPOX(THET,PHI,QP)
01153 CALL ROTPOX(THET,PHI,PR)
01154
01155
01156
01157 PAA(1)=0
01158 PAA(2)=0
01159 PAA(4)=AMTAX
01160 PAA(3)=0
01161
01162 PH(1)=0
01163 PH(2)=0
01164 PH(4)=0
01165 PH(3)=0
01166 ENDIF
01167
01168 CALL DAMPRY(ITDKRC,XK0DEC,PH,XA,QP,XN,AMPLIT,HV)
01169 DGAMT=1/(2.*AMTAX)*AMPLIT*PHSPAC
01170 END
01171 SUBROUTINE DAMPRY(ITDKRC,XK0DEC,XK,XA,QP,XN,AMPLIT,HV)
01172 IMPLICIT REAL*8 (A-H,O-Z)
01173
01174
01175
01176
01177
01178 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01179 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01180 * ,AMK,AMKZ,AMKST,GAMKST
01181
01182 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01183 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01184 * ,AMK,AMKZ,AMKST,GAMKST
01185 REAL*8 HV(4),QP(4),XN(4),XA(4),XK(4)
01186
01187 HV(4)=1.D0
01188 AK0=XK0DEC*AMTAU
01189 IF(XK(4).LT.0.1D0*AK0) THEN
01190 AMPLIT=THB(ITDKRC,QP,XN,XA,AK0,HV)
01191 ELSE
01192 AMPLIT=SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV)
01193 ENDIF
01194 RETURN
01195 END
01196 FUNCTION SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV)
01197
01198
01199
01200
01201
01202
01203
01204
01205
01206
01207
01208
01209 IMPLICIT REAL*8(A-H,O-Z)
01210 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01211 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01212 * ,AMK,AMKZ,AMKST,GAMKST
01213
01214 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01215 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01216 * ,AMK,AMKZ,AMKST,GAMKST
01217 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01218 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01219 COMMON / QEDPRM /ALFINV,ALFPI,XK0
01220 REAL*8 ALFINV,ALFPI,XK0
01221 REAL*8 QP(4),XN(4),XA(4),XK(4)
01222 REAL*8 R(4)
01223 REAL*8 HV(4)
01224 REAL*8 S0(3),RXA(3),RXK(3),RQP(3)
01225 DATA PI /3.141592653589793238462643D0/
01226
01227 TMASS=AMTAU
01228 GF=GFERMI
01229 ALPHAI=ALFINV
01230 TMASS2=TMASS**2
01231 EMASS2=QP(4)**2-QP(1)**2-QP(2)**2-QP(3)**2
01232 R(4)=TMASS
01233
01234 DO 7 I=1,3
01235 R(1)=0.D0
01236 R(2)=0.D0
01237 R(3)=0.D0
01238 R(I)=TMASS
01239 RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3)
01240
01241 RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3)
01242 RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3)
01243 7 CONTINUE
01244 QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3)
01245 QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3)
01246 QPXK=QP(4)*XK(4)-QP(1)*XK(1)-QP(2)*XK(2)-QP(3)*XK(3)
01247
01248 XNXK=XN(4)*XK(4)-XN(1)*XK(1)-XN(2)*XK(2)-XN(3)*XK(3)
01249 XAXK=XA(4)*XK(4)-XA(1)*XK(1)-XA(2)*XK(2)-XA(3)*XK(3)
01250 TXN=TMASS*XN(4)
01251 TXA=TMASS*XA(4)
01252 TQP=TMASS*QP(4)
01253 TXK=TMASS*XK(4)
01254
01255 X= XNXK/QPXN
01256 Z= TXK/TQP
01257 A= 1+X
01258 B= 1+ X*(1+Z)/2+Z/2
01259 S1= QPXN*TXA*( -EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B-
01260 $TMASS2/TXK**2) +
01261 $QPXN/TXK**2* ( TMASS2*XAXK - TXA*TXK+ XAXK*TXK) -
01262 $TXA*TXN/TXK - QPXN/(QPXK*TXK)* (TQP*XAXK-TXK*QPXA)
01263 CONST4=256*PI/ALPHAI*GF**2
01264 IF (ITDKRC.EQ.0) CONST4=0D0
01265 SQM2=S1*CONST4
01266 DO 5 I=1,3
01267 S0(I) = QPXN*RXA(I)*(-EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B-
01268 $ TMASS2/TXK**2) +
01269 $ QPXN/TXK**2* (TMASS2*XAXK - TXA*RXK(I)+ XAXK*RXK(I))-
01270 $ RXA(I)*TXN/TXK - QPXN/(QPXK*TXK)*(RQP(I)*XAXK- RXK(I)*QPXA)
01271 5 HV(I)=S0(I)/S1-1.D0
01272 RETURN
01273 END
01274 FUNCTION THB(ITDKRC,QP,XN,XA,AK0,HV)
01275
01276
01277
01278
01279
01280
01281
01282
01283
01284
01285
01286
01287
01288 IMPLICIT REAL*8(A-H,O-Z)
01289 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01290 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01291 * ,AMK,AMKZ,AMKST,GAMKST
01292
01293 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01294 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01295 * ,AMK,AMKZ,AMKST,GAMKST
01296 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01297 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01298 COMMON / QEDPRM /ALFINV,ALFPI,XK0
01299 REAL*8 ALFINV,ALFPI,XK0
01300 DIMENSION QP(4),XN(4),XA(4)
01301 REAL*8 HV(4)
01302 DIMENSION R(4)
01303 REAL*8 RXA(3),RXN(3),RQP(3)
01304 REAL*8 BORNPL(3),AM3POL(3),XM3POL(3)
01305 DATA PI /3.141592653589793238462643D0/
01306
01307 TMASS=AMTAU
01308 GF=GFERMI
01309 ALPHAI=ALFINV
01310
01311 TMASS2=TMASS**2
01312 R(4)=TMASS
01313 DO 7 I=1,3
01314 R(1)=0.D0
01315 R(2)=0.D0
01316 R(3)=0.D0
01317 R(I)=TMASS
01318 RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3)
01319 RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3)
01320
01321 RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3)
01322 7 CONTINUE
01323
01324 U0=QP(4)/TMASS
01325 U3=SQRT(QP(1)**2+QP(2)**2+QP(3)**2)/TMASS
01326 W3=U3
01327 W0=(XN(4)+XA(4))/TMASS
01328 UP=U0+U3
01329 UM=U0-U3
01330 WP=W0+W3
01331 WM=W0-W3
01332 YU=LOG(UP/UM)/2
01333 YW=LOG(WP/WM)/2
01334 EPS2=U0**2-U3**2
01335 EPS=SQRT(EPS2)
01336 Y=W0**2-W3**2
01337 AL=AK0/TMASS
01338
01339 F0=2*U0/U3*( DILOGT(1-(UM*WM/(UP*WP)))- DILOGT(1-WM/WP) +
01340 $DILOGT(1-UM/UP) -2*YU+ 2*LOG(UP)*(YW+YU) ) +
01341 $1/Y* ( 2*U3*YU + (1-EPS2- 2*Y)*LOG(EPS) ) +
01342 $ 2 - 4*(U0/U3*YU -1)* LOG(2*AL)
01343 FP= YU/(2*U3)*(1 + (1-EPS2)/Y ) + LOG(EPS)/Y
01344 FM= YU/(2*U3)*(1 - (1-EPS2)/Y ) - LOG(EPS)/Y
01345 F3= EPS2*(FP+FM)/2
01346
01347 QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3)
01348 QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3)
01349 XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3)
01350 TXN=TMASS*XN(4)
01351 TXA=TMASS*XA(4)
01352 TQP=TMASS*QP(4)
01353
01354 CONST3=1/(2*ALPHAI*PI)*64*GF**2
01355 IF (ITDKRC.EQ.0) CONST3=0D0
01356 XM3= -( F0* QPXN*TXA + FP*EPS2* TXN*TXA +
01357 $FM* QPXN*QPXA + F3* TMASS2*XNXA )
01358 AM3=XM3*CONST3
01359
01360 BRAK= (GV+GA)**2*TQP*XNXA+(GV-GA)**2*TXA*QPXN
01361 & -(GV**2-GA**2)*TMASS*AMNUTA*QPXA
01362 BORN= 32*(GFERMI**2/2.)*BRAK
01363 DO 5 I=1,3
01364 XM3POL(I)= -( F0* QPXN*RXA(I) + FP*EPS2* TXN*RXA(I) +
01365 $ FM* QPXN* (QPXA + (RXA(I)*TQP-TXA*RQP(I))/TMASS2 ) +
01366 $ F3* (TMASS2*XNXA +TXN*RXA(I) -RXN(I)*TXA) )
01367 AM3POL(I)=XM3POL(I)*CONST3
01368
01369 BORNPL(I)=BORN+(
01370 & (GV+GA)**2*TMASS*XNXA*QP(I)
01371 & -(GV-GA)**2*TMASS*QPXN*XA(I)
01372 & +(GV**2-GA**2)*AMNUTA*TXA*QP(I)
01373 & -(GV**2-GA**2)*AMNUTA*TQP*XA(I) )*
01374 & 32*(GFERMI**2/2.)
01375 5 HV(I)=(BORNPL(I)+AM3POL(I))/(BORN+AM3)-1.D0
01376 THB=BORN+AM3
01377 IF (THB/BORN.LT.0.1D0) THEN
01378 PRINT *, 'ERROR IN THB, THB/BORN=',THB/BORN
01379 THB=0.D0
01380 ENDIF
01381 RETURN
01382 END
01383 SUBROUTINE DEXPI(MODE,ISGN,POL,PPI,PNU)
01384
01385
01386
01387
01388
01389
01390 REAL POL(4),HV(4),PNU(4),PPI(4),RN(1)
01391
01392 IF(MODE.EQ.-1) THEN
01393
01394 CALL DADMPI(-1,ISGN,HV,PPI,PNU)
01395
01396
01397 ELSEIF(MODE.EQ. 0) THEN
01398
01399 300 CONTINUE
01400 CALL DADMPI( 0,ISGN,HV,PPI,PNU)
01401 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01402
01403 CALL RANMAR(RN,1)
01404 IF(RN(1).GT.WT) GOTO 300
01405
01406 ELSEIF(MODE.EQ. 1) THEN
01407
01408 CALL DADMPI( 1,ISGN,HV,PPI,PNU)
01409
01410 ENDIF
01411
01412 RETURN
01413 END
01414 SUBROUTINE DADMPI(MODE,ISGN,HV,PPI,PNU)
01415
01416 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01417 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01418 * ,AMK,AMKZ,AMKST,GAMKST
01419
01420 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01421 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01422 * ,AMK,AMKZ,AMKST,GAMKST
01423 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01424 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01425 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01426 REAL*4 GAMPMC ,GAMPER
01427 COMMON / INOUT / INUT,IOUT
01428 REAL PPI(4),PNU(4),HV(4)
01429 DATA PI /3.141592653589793238462643/
01430
01431 IF(MODE.EQ.-1) THEN
01432
01433 NEVTOT=0
01434 ELSEIF(MODE.EQ. 0) THEN
01435
01436 NEVTOT=NEVTOT+1
01437 EPI= (AMTAU**2+AMPI**2-AMNUTA**2)/(2*AMTAU)
01438 ENU= (AMTAU**2-AMPI**2+AMNUTA**2)/(2*AMTAU)
01439 XPI= SQRT(EPI**2-AMPI**2)
01440
01441 CALL SPHERA(XPI,PPI)
01442 PPI(4)=EPI
01443
01444 DO 30 I=1,3
01445 30 PNU(I)=-PPI(I)
01446 PNU(4)=ENU
01447 PXQ=AMTAU*EPI
01448 PXN=AMTAU*ENU
01449 QXN=PPI(4)*PNU(4)-PPI(1)*PNU(1)-PPI(2)*PNU(2)-PPI(3)*PNU(3)
01450 BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMPI**2*PXN)
01451 & +(GV**2-GA**2)*AMTAU*AMNUTA*AMPI**2
01452 DO 40 I=1,3
01453 40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PPI(I)*QXN-PNU(I)*AMPI**2)/BRAK
01454 HV(4)=1
01455
01456 ELSEIF(MODE.EQ. 1) THEN
01457
01458 IF(NEVTOT.EQ.0) RETURN
01459 FPI=0.1284
01460
01461
01462
01463
01464 GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3*
01465 $ (BRAK/AMTAU**4)*
01466 $ SQRT((AMTAU**2-AMPI**2-AMNUTA**2)**2
01467 $ -4*AMPI**2*AMNUTA**2 )/AMTAU**2
01468 ERROR=0
01469 RAT=GAMM/GAMEL
01470 WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR
01471 GAMPMC(3)=RAT
01472 GAMPER(3)=ERROR
01473
01474 ENDIF
01475
01476 RETURN
01477 7010 FORMAT(///1X,15(5H*****)
01478 $ /,' *', 25X,'******** DADMPI FINAL REPORT ******** ',9X,1H*
01479 $ /,' *',I20 ,5X,'NEVTOT = NO. OF PI DECAYS TOTAL ',9X,1H*
01480 $ /,' *',E20.5,5X,'PARTIAL WTDTH ( PI DECAY) IN GEV UNITS ',9X,1H*
01481 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01482 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H*
01483 $ /,1X,15(5H*****)/)
01484 END
01485 SUBROUTINE DEXRO(MODE,ISGN,POL,PNU,PRO,PIC,PIZ)
01486
01487
01488
01489
01490
01491
01492
01493
01494 COMMON / INOUT / INUT,IOUT
01495 REAL POL(4),HV(4),PRO(4),PNU(4),PIC(4),PIZ(4),RN(1)
01496 DATA IWARM/0/
01497
01498 IF(MODE.EQ.-1) THEN
01499
01500 IWARM=1
01501 CALL DADMRO( -1,ISGN,HV,PNU,PRO,PIC,PIZ)
01502
01503
01504
01505 ELSEIF(MODE.EQ. 0) THEN
01506
01507 300 CONTINUE
01508 IF(IWARM.EQ.0) GOTO 902
01509 CALL DADMRO( 0,ISGN,HV,PNU,PRO,PIC,PIZ)
01510 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01511
01512
01513
01514 CALL RANMAR(RN,1)
01515 IF(RN(1).GT.WT) GOTO 300
01516
01517 ELSEIF(MODE.EQ. 1) THEN
01518
01519 CALL DADMRO( 1,ISGN,HV,PNU,PRO,PIC,PIZ)
01520
01521
01522 ENDIF
01523
01524 RETURN
01525 902 WRITE(IOUT, 9020)
01526 9020 FORMAT(' ----- DEXRO: LACK OF INITIALISATION')
01527 STOP
01528 END
01529 SUBROUTINE DADMRO(MODE,ISGN,HHV,PNU,PRO,PIC,PIZ)
01530
01531 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01532 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01533 * ,AMK,AMKZ,AMKST,GAMKST
01534
01535 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01536 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01537 * ,AMK,AMKZ,AMKST,GAMKST
01538 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01539 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01540 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01541 REAL*4 GAMPMC ,GAMPER
01542 COMMON / INOUT / INUT,IOUT
01543 REAL HHV(4)
01544 REAL HV(4),PRO(4),PNU(4),PIC(4),PIZ(4)
01545 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4)
01546 REAL*4 RRR(3)
01547 REAL*8 SWT, SSWT
01548 DATA PI /3.141592653589793238462643/
01549 DATA IWARM/0/
01550
01551 IF(MODE.EQ.-1) THEN
01552
01553 IWARM=1
01554 NEVRAW=0
01555 NEVACC=0
01556 NEVOVR=0
01557 SWT=0
01558 SSWT=0
01559 WTMAX=1E-20
01560 DO 15 I=1,500
01561 CALL DPHSRO(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4)
01562 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
01563 15 CONTINUE
01564
01565
01566
01567 ELSEIF(MODE.EQ. 0) THEN
01568
01569 300 CONTINUE
01570 IF(IWARM.EQ.0) GOTO 902
01571 CALL DPHSRO(WT,HV,PNU,PRO,PIC,PIZ)
01572
01573 NEVRAW=NEVRAW+1
01574 SWT=SWT+WT
01575 SSWT=SSWT+WT**2
01576 CALL RANMAR(RRR,3)
01577 RN=RRR(1)
01578 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
01579 IF(RN*WTMAX.GT.WT) GOTO 300
01580
01581 COSTHE=-1.+2.*RRR(2)
01582 THET=ACOS(COSTHE)
01583 PHI =2*PI*RRR(3)
01584 CALL ROTOR2(THET,PNU,PNU)
01585 CALL ROTOR3( PHI,PNU,PNU)
01586 CALL ROTOR2(THET,PRO,PRO)
01587 CALL ROTOR3( PHI,PRO,PRO)
01588 CALL ROTOR2(THET,PIC,PIC)
01589 CALL ROTOR3( PHI,PIC,PIC)
01590 CALL ROTOR2(THET,PIZ,PIZ)
01591 CALL ROTOR3( PHI,PIZ,PIZ)
01592 CALL ROTOR2(THET,HV,HV)
01593 CALL ROTOR3( PHI,HV,HV)
01594 DO 44 I=1,3
01595 44 HHV(I)=-ISGN*HV(I)
01596 NEVACC=NEVACC+1
01597
01598 ELSEIF(MODE.EQ. 1) THEN
01599
01600 IF(NEVRAW.EQ.0) RETURN
01601 PARGAM=SWT/FLOAT(NEVRAW+1)
01602 ERROR=0
01603 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
01604 RAT=PARGAM/GAMEL
01605 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
01606
01607 GAMPMC(4)=RAT
01608 GAMPER(4)=ERROR
01609
01610 ENDIF
01611
01612 RETURN
01613 7003 FORMAT(///1X,15(5H*****)
01614 $ /,' *', 25X,'******** DADMRO INITIALISATION ********',9X,1H*
01615 $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*
01616 $ /,1X,15(5H*****)/)
01617 7010 FORMAT(///1X,15(5H*****)
01618 $ /,' *', 25X,'******** DADMRO FINAL REPORT ******** ',9X,1H*
01619 $ /,' *',I20 ,5X,'NEVRAW = NO. OF RHO DECAYS TOTAL ',9X,1H*
01620 $ /,' *',I20 ,5X,'NEVACC = NO. OF RHO DECS. ACCEPTED ',9X,1H*
01621 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
01622 $ /,' *',E20.5,5X,'PARTIAL WTDTH (RHO DECAY) IN GEV UNITS ',9X,1H*
01623 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01624 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
01625 $ /,1X,15(5H*****)/)
01626 902 WRITE(IOUT, 9020)
01627 9020 FORMAT(' ----- DADMRO: LACK OF INITIALISATION')
01628 STOP
01629 END
01630 SUBROUTINE DPHSRO(DGAMT,HV,PN,PR,PIC,PIZ)
01631
01632
01633
01634
01635 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01636 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01637 * ,AMK,AMKZ,AMKST,GAMKST
01638
01639 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01640 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01641 * ,AMK,AMKZ,AMKST,GAMKST
01642 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01643 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01644 REAL HV(4),PT(4),PN(4),PR(4),PIC(4),PIZ(4),QQ(4),RR1(1)
01645 DATA PI /3.141592653589793238462643/
01646 DATA ICONT /0/
01647
01648
01649 PHSPAC=1./2**11/PI**5
01650
01651 PT(1)=0.
01652 PT(2)=0.
01653 PT(3)=0.
01654 PT(4)=AMTAU
01655
01656 AMS1=(AMPI+AMPIZ)**2
01657 AMS2=(AMTAU-AMNUTA)**2
01658
01659
01660
01661
01662
01663 ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO)
01664 ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO)
01665
01666 100 CONTINUE
01667 CALL RANMAR(RR1,1)
01668 ALP=ALP1+RR1(1)*(ALP2-ALP1)
01669 AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP)
01670 AMX=SQRT(AMX2)
01671 IF(AMX.LT.2.*AMPI) GO TO 100
01672
01673 PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO)
01674 PHSPAC=PHSPAC*(ALP2-ALP1)
01675
01676
01677 PN(1)=0
01678 PN(2)=0
01679 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
01680 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
01681
01682 PR(1)=0
01683 PR(2)=0
01684 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
01685 PR(3)=-PN(3)
01686 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU)
01687
01688
01689 ENQ1=(AMX2+AMPI**2-AMPIZ**2)/(2.*AMX)
01690 ENQ2=(AMX2-AMPI**2+AMPIZ**2)/(2.*AMX)
01691 PPPI=SQRT((ENQ1-AMPI)*(ENQ1+AMPI))
01692 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
01693
01694 CALL SPHERA(PPPI,PIC)
01695 PIC(4)=ENQ1
01696
01697 DO 20 I=1,3
01698 20 PIZ(I)=-PIC(I)
01699 PIZ(4)=ENQ2
01700 EXE=(PR(4)+PR(3))/AMX
01701
01702 CALL BOSTR3(EXE,PIC,PIC)
01703 CALL BOSTR3(EXE,PIZ,PIZ)
01704 DO 30 I=1,4
01705 30 QQ(I)=PIC(I)-PIZ(I)
01706
01707 PRODPQ=PT(4)*QQ(4)
01708 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
01709 PRODPN=PT(4)*PN(4)
01710 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
01711 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
01712 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
01713 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRHO(AMX)
01714 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
01715 DO 40 I=1,3
01716 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
01717 RETURN
01718 END
01719 SUBROUTINE DEXAA(MODE,ISGN,POL,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01720
01721
01722
01723
01724
01725
01726
01727
01728
01729
01730 COMMON / INOUT / INUT,IOUT
01731 REAL POL(4),HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4),RN(1)
01732 DATA IWARM/0/
01733
01734 IF(MODE.EQ.-1) THEN
01735
01736 IWARM=1
01737 CALL DADMAA( -1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01738
01739
01740 ELSEIF(MODE.EQ. 0) THEN
01741
01742 300 CONTINUE
01743 IF(IWARM.EQ.0) GOTO 902
01744 CALL DADMAA( 0,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01745 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01746
01747 CALL RANMAR(RN,1)
01748 IF(RN(1).GT.WT) GOTO 300
01749
01750 ELSEIF(MODE.EQ. 1) THEN
01751
01752 CALL DADMAA( 1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01753
01754 ENDIF
01755
01756 RETURN
01757 902 WRITE(IOUT, 9020)
01758 9020 FORMAT(' ----- DEXAA: LACK OF INITIALISATION')
01759 STOP
01760 END
01761 SUBROUTINE DADMAA(MODE,ISGN,HHV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01762
01763
01764
01765 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01766 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01767 * ,AMK,AMKZ,AMKST,GAMKST
01768
01769 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01770 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01771 * ,AMK,AMKZ,AMKST,GAMKST
01772 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01773 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01774 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01775 REAL*4 GAMPMC ,GAMPER
01776 COMMON / INOUT / INUT,IOUT
01777 REAL HHV(4)
01778 REAL HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4)
01779 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
01780 REAL*4 RRR(3)
01781 REAL*8 SWT, SSWT
01782 DATA PI /3.141592653589793238462643/
01783 DATA IWARM/0/
01784
01785 IF(MODE.EQ.-1) THEN
01786
01787 IWARM=1
01788 NEVRAW=0
01789 NEVACC=0
01790 NEVOVR=0
01791 SWT=0
01792 SSWT=0
01793 WTMAX=1E-20
01794 DO 15 I=1,500
01795 CALL DPHSAA(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JAA)
01796 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
01797 15 CONTINUE
01798
01799
01800 ELSEIF(MODE.EQ. 0) THEN
01801
01802 300 CONTINUE
01803 IF(IWARM.EQ.0) GOTO 902
01804 CALL DPHSAA(WT,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01805
01806 NEVRAW=NEVRAW+1
01807 SWT=SWT+WT
01808
01809
01810 SSWT=SSWT+dble(WT)**2
01811
01812 CALL RANMAR(RRR,3)
01813 RN=RRR(1)
01814 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
01815 IF(RN*WTMAX.GT.WT) GOTO 300
01816
01817 COSTHE=-1.+2.*RRR(2)
01818 THET=ACOS(COSTHE)
01819 PHI =2*PI*RRR(3)
01820 CALL ROTPOL(THET,PHI,PNU)
01821 CALL ROTPOL(THET,PHI,PAA)
01822 CALL ROTPOL(THET,PHI,PIM1)
01823 CALL ROTPOL(THET,PHI,PIM2)
01824 CALL ROTPOL(THET,PHI,PIPL)
01825 CALL ROTPOL(THET,PHI,HV)
01826 DO 44 I=1,3
01827 44 HHV(I)=-ISGN*HV(I)
01828 NEVACC=NEVACC+1
01829
01830 ELSEIF(MODE.EQ. 1) THEN
01831
01832 IF(NEVRAW.EQ.0) RETURN
01833 PARGAM=SWT/FLOAT(NEVRAW+1)
01834 ERROR=0
01835 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
01836 RAT=PARGAM/GAMEL
01837 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
01838
01839 GAMPMC(5)=RAT
01840 GAMPER(5)=ERROR
01841
01842 ENDIF
01843
01844 RETURN
01845 7003 FORMAT(///1X,15(5H*****)
01846 $ /,' *', 25X,'******** DADMAA INITIALISATION ********',9X,1H*
01847 $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*
01848 $ /,1X,15(5H*****)/)
01849 7010 FORMAT(///1X,15(5H*****)
01850 $ /,' *', 25X,'******** DADMAA FINAL REPORT ******** ',9X,1H*
01851 $ /,' *',I20 ,5X,'NEVRAW = NO. OF A1 DECAYS TOTAL ',9X,1H*
01852 $ /,' *',I20 ,5X,'NEVACC = NO. OF A1 DECS. ACCEPTED ',9X,1H*
01853 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
01854 $ /,' *',E20.5,5X,'PARTIAL WTDTH (A1 DECAY) IN GEV UNITS ',9X,1H*
01855 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01856 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
01857 $ /,1X,15(5H*****)/)
01858 902 WRITE(IOUT, 9020)
01859 9020 FORMAT(' ----- DADMAA: LACK OF INITIALISATION')
01860 STOP
01861 END
01862 SUBROUTINE DPHSAA(DGAMT,HV,PN,PAA,PIM1,PIM2,PIPL,JAA)
01863
01864
01865
01866
01867 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01868 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01869 * ,AMK,AMKZ,AMKST,GAMKST
01870
01871 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01872 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01873 * ,AMK,AMKZ,AMKST,GAMKST
01874 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
01875 REAL*4 BRA1,BRK0,BRK0B,BRKS
01876 REAL HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
01877
01878
01879 REAL*4 RRR(1)
01880
01881 MNUM=0
01882
01883 KEYT=1
01884 CALL RANMAR(RRR,1)
01885 RMOD=RRR(1)
01886 IF (RMOD.LT.BRA1) THEN
01887 JAA=1
01888 AMP1=AMPI
01889 AMP2=AMPI
01890 AMP3=AMPI
01891 ELSE
01892 JAA=2
01893 AMP1=AMPIZ
01894 AMP2=AMPIZ
01895 AMP3=AMPI
01896 ENDIF
01897 CALL
01898 $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM)
01899 END
01900 SUBROUTINE DEXKK(MODE,ISGN,POL,PKK,PNU)
01901
01902
01903
01904
01905
01906
01907 REAL POL(4),HV(4),PNU(4),PKK(4),RN(1)
01908
01909 IF(MODE.EQ.-1) THEN
01910
01911 CALL DADMKK(-1,ISGN,HV,PKK,PNU)
01912
01913
01914 ELSEIF(MODE.EQ. 0) THEN
01915
01916 300 CONTINUE
01917 CALL DADMKK( 0,ISGN,HV,PKK,PNU)
01918 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01919
01920 CALL RANMAR(RN,1)
01921 IF(RN(1).GT.WT) GOTO 300
01922
01923 ELSEIF(MODE.EQ. 1) THEN
01924
01925 CALL DADMKK( 1,ISGN,HV,PKK,PNU)
01926
01927 ENDIF
01928
01929 RETURN
01930 END
01931 SUBROUTINE DADMKK(MODE,ISGN,HV,PKK,PNU)
01932
01933
01934 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01935 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01936 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01937 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01938 * ,AMK,AMKZ,AMKST,GAMKST
01939
01940 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01941 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01942 * ,AMK,AMKZ,AMKST,GAMKST
01943 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01944 REAL*4 GAMPMC ,GAMPER
01945 COMMON / INOUT / INUT,IOUT
01946 REAL PKK(4),PNU(4),HV(4)
01947 DATA PI /3.141592653589793238462643/
01948
01949 IF(MODE.EQ.-1) THEN
01950
01951 NEVTOT=0
01952 ELSEIF(MODE.EQ. 0) THEN
01953
01954 NEVTOT=NEVTOT+1
01955 EKK= (AMTAU**2+AMK**2-AMNUTA**2)/(2*AMTAU)
01956 ENU= (AMTAU**2-AMK**2+AMNUTA**2)/(2*AMTAU)
01957 XKK= SQRT(EKK**2-AMK**2)
01958
01959 CALL SPHERA(XKK,PKK)
01960 PKK(4)=EKK
01961
01962 DO 30 I=1,3
01963 30 PNU(I)=-PKK(I)
01964 PNU(4)=ENU
01965 PXQ=AMTAU*EKK
01966 PXN=AMTAU*ENU
01967 QXN=PKK(4)*PNU(4)-PKK(1)*PNU(1)-PKK(2)*PNU(2)-PKK(3)*PNU(3)
01968 BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMK**2*PXN)
01969 & +(GV**2-GA**2)*AMTAU*AMNUTA*AMK**2
01970 DO 40 I=1,3
01971 40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PKK(I)*QXN-PNU(I)*AMK**2)/BRAK
01972 HV(4)=1
01973
01974 ELSEIF(MODE.EQ. 1) THEN
01975
01976 IF(NEVTOT.EQ.0) RETURN
01977 FKK=0.0354
01978
01979
01980
01981
01982
01983 GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3*
01984 $ (BRAK/AMTAU**4)*
01985 $ SQRT((AMTAU**2-AMK**2-AMNUTA**2)**2
01986 $ -4*AMK**2*AMNUTA**2 )/AMTAU**2
01987 ERROR=0
01988
01989 ERROR=0
01990 RAT=GAMM/GAMEL
01991 WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR
01992 GAMPMC(6)=RAT
01993 GAMPER(6)=ERROR
01994
01995 ENDIF
01996
01997 RETURN
01998 7010 FORMAT(///1X,15(5H*****)
01999 $ /,' *', 25X,'******** DADMKK FINAL REPORT ********',9X,1H*
02000 $ /,' *',I20 ,5X,'NEVTOT = NO. OF K DECAYS TOTAL ',9X,1H*,
02001 $ /,' *',E20.5,5X,'PARTIAL WTDTH ( K DECAY) IN GEV UNITS ',9X,1H*,
02002 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
02003 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H*
02004 $ /,1X,15(5H*****)/)
02005 END
02006 SUBROUTINE DEXKS(MODE,ISGN,POL,PNU,PKS,PKK,PPI,JKST)
02007
02008
02009
02010
02011
02012
02013
02014
02015
02016
02017
02018 COMMON / INOUT / INUT,IOUT
02019 REAL POL(4),HV(4),PKS(4),PNU(4),PKK(4),PPI(4),RN(1)
02020 DATA IWARM/0/
02021
02022 IF(MODE.EQ.-1) THEN
02023
02024 IWARM=1
02025
02026 CALL DADMKS( -1,ISGN,HV,PNU,PKS,PKK,PPI,JKST)
02027
02028
02029
02030 ELSEIF(MODE.EQ. 0) THEN
02031
02032 300 CONTINUE
02033 IF(IWARM.EQ.0) GOTO 902
02034 CALL DADMKS( 0,ISGN,HV,PNU,PKS,PKK,PPI,JKST)
02035 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
02036
02037
02038
02039 CALL RANMAR(RN,1)
02040 IF(RN(1).GT.WT) GOTO 300
02041
02042 ELSEIF(MODE.EQ. 1) THEN
02043
02044 CALL DADMKS( 1,ISGN,HV,PNU,PKS,PKK,PPI,JKST)
02045
02046
02047 ENDIF
02048
02049 RETURN
02050 902 WRITE(IOUT, 9020)
02051 9020 FORMAT(' ----- DEXKS: LACK OF INITIALISATION')
02052 STOP
02053 END
02054 SUBROUTINE DADMKS(MODE,ISGN,HHV,PNU,PKS,PKK,PPI,JKST)
02055
02056 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02057 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02058 * ,AMK,AMKZ,AMKST,GAMKST
02059
02060 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02061 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02062 * ,AMK,AMKZ,AMKST,GAMKST
02063 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02064 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02065 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
02066 REAL*4 GAMPMC ,GAMPER
02067 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
02068 REAL*4 BRA1,BRK0,BRK0B,BRKS
02069 COMMON / INOUT / INUT,IOUT
02070 REAL HHV(4)
02071 REAL HV(4),PKS(4),PNU(4),PKK(4),PPI(4)
02072 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4)
02073 REAL*4 RRR(3),RMOD(1)
02074 REAL*8 SWT, SSWT
02075 DATA PI /3.141592653589793238462643/
02076 DATA IWARM/0/
02077
02078 IF(MODE.EQ.-1) THEN
02079
02080 IWARM=1
02081 NEVRAW=0
02082 NEVACC=0
02083 NEVOVR=0
02084 SWT=0
02085 SSWT=0
02086 WTMAX=1E-20
02087 DO 15 I=1,500
02088
02089 JKST=10
02090 CALL DPHSKS(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,JKST)
02091 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
02092 15 CONTINUE
02093
02094
02095
02096 ELSEIF(MODE.EQ. 0) THEN
02097
02098 IF(IWARM.EQ.0) GOTO 902
02099
02100
02101 DEC1=BRKS
02102 400 CONTINUE
02103 CALL RANMAR(RMOD,1)
02104 IF(RMOD(1).LT.DEC1) THEN
02105 JKST=10
02106 ELSE
02107 JKST=20
02108 ENDIF
02109 CALL DPHSKS(WT,HV,PNU,PKS,PKK,PPI,JKST)
02110 CALL RANMAR(RRR,3)
02111 RN=RRR(1)
02112 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
02113 NEVRAW=NEVRAW+1
02114 SWT=SWT+WT
02115 SSWT=SSWT+WT**2
02116 IF(RN*WTMAX.GT.WT) GOTO 400
02117
02118 COSTHE=-1.+2.*RRR(2)
02119 THET=ACOS(COSTHE)
02120 PHI =2*PI*RRR(3)
02121 CALL ROTOR2(THET,PNU,PNU)
02122 CALL ROTOR3( PHI,PNU,PNU)
02123 CALL ROTOR2(THET,PKS,PKS)
02124 CALL ROTOR3( PHI,PKS,PKS)
02125 CALL ROTOR2(THET,PKK,PKK)
02126 CALL ROTOR3(PHI,PKK,PKK)
02127 CALL ROTOR2(THET,PPI,PPI)
02128 CALL ROTOR3( PHI,PPI,PPI)
02129 CALL ROTOR2(THET,HV,HV)
02130 CALL ROTOR3( PHI,HV,HV)
02131 DO 44 I=1,3
02132 44 HHV(I)=-ISGN*HV(I)
02133 NEVACC=NEVACC+1
02134
02135 ELSEIF(MODE.EQ. 1) THEN
02136
02137 IF(NEVRAW.EQ.0) RETURN
02138 PARGAM=SWT/FLOAT(NEVRAW+1)
02139 ERROR=0
02140 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
02141 RAT=PARGAM/GAMEL
02142 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
02143
02144 GAMPMC(7)=RAT
02145 GAMPER(7)=ERROR
02146
02147 ENDIF
02148
02149 RETURN
02150 7003 FORMAT(///1X,15(5H*****)
02151 $ /,' *', 25X,'******** DADMKS INITIALISATION ********',9X,1H*
02152 $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*
02153 $ /,1X,15(5H*****)/)
02154 7010 FORMAT(///1X,15(5H*****)
02155 $ /,' *', 25X,'******** DADMKS FINAL REPORT ********',9X,1H*
02156 $ /,' *',I20 ,5X,'NEVRAW = NO. OF K* DECAYS TOTAL ',9X,1H*,
02157 $ /,' *',I20 ,5X,'NEVACC = NO. OF K* DECS. ACCEPTED ',9X,1H*,
02158 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
02159 $ /,' *',E20.5,5X,'PARTIAL WTDTH (K* DECAY) IN GEV UNITS ',9X,1H*,
02160 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
02161 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
02162 $ /,1X,15(5H*****)/)
02163 902 WRITE(IOUT, 9020)
02164 9020 FORMAT(' ----- DADMKS: LACK OF INITIALISATION')
02165 STOP
02166 END
02167 SUBROUTINE DPHSKS(DGAMT,HV,PN,PKS,PKK,PPI,JKST)
02168
02169
02170
02171
02172
02173
02174 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02175 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02176 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02177 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02178 * ,AMK,AMKZ,AMKST,GAMKST
02179
02180 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02181 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02182 * ,AMK,AMKZ,AMKST,GAMKST
02183 REAL HV(4),PT(4),PN(4),PKS(4),PKK(4),PPI(4),QQ(4),RR1(1)
02184 COMPLEX BWIGS
02185 DATA PI /3.141592653589793238462643/
02186
02187 DATA ICONT /0/
02188
02189 PHSPAC=1./2**11/PI**5
02190
02191 PT(1)=0.
02192 PT(2)=0.
02193 PT(3)=0.
02194 PT(4)=AMTAU
02195 CALL RANMAR(RR1,1)
02196
02197 IF(JKST.EQ.10)THEN
02198
02199
02200 AMS1=(AMPI+AMKZ)**2
02201 AMS2=(AMTAU-AMNUTA)**2
02202
02203
02204
02205
02206
02207 ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST)
02208 ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST)
02209 ALP=ALP1+RR1(1)*(ALP2-ALP1)
02210 AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP)
02211 AMX=SQRT(AMX2)
02212 PHSPAC=PHSPAC*((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2)
02213 & /(AMKST*GAMKST)
02214 PHSPAC=PHSPAC*(ALP2-ALP1)
02215
02216
02217 PN(1)=0
02218 PN(2)=0
02219 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
02220 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
02221
02222
02223 PKS(1)=0
02224 PKS(2)=0
02225 PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
02226 PKS(3)=-PN(3)
02227 PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU)
02228
02229
02230 ENPI=( AMX**2+AMPI**2-AMKZ**2 ) / ( 2*AMX )
02231 PPPI=SQRT((ENPI-AMPI)*(ENPI+AMPI))
02232 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
02233
02234 CALL SPHERA(PPPI,PPI)
02235 PPI(4)=ENPI
02236
02237 DO 20 I=1,3
02238 20 PKK(I)=-PPI(I)
02239 PKK(4)=( AMX**2+AMKZ**2-AMPI**2 ) / ( 2*AMX )
02240 EXE=(PKS(4)+PKS(3))/AMX
02241
02242 CALL BOSTR3(EXE,PPI,PPI)
02243 CALL BOSTR3(EXE,PKK,PKK)
02244 DO 30 I=1,4
02245 30 QQ(I)=PPI(I)-PKK(I)
02246
02247 PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1)
02248 QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1)
02249 DO 31 I=1,4
02250 31 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD
02251
02252 PRODPQ=PT(4)*QQ(4)
02253 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
02254 PRODPN=PT(4)*PN(4)
02255 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
02256 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
02257 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
02258
02259 FKS=CABS(BWIGS(AMX2,AMKST,GAMKST))**2
02260 AMPLIT=(GFERMI*SCABIB)**2*BRAK*2*FKS
02261 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
02262 DO 40 I=1,3
02263 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
02264
02265
02266 ELSEIF(JKST.EQ.20)THEN
02267
02268
02269 AMS1=(AMPIZ+AMK)**2
02270 AMS2=(AMTAU-AMNUTA)**2
02271
02272
02273
02274
02275
02276 ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST)
02277 ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST)
02278 ALP=ALP1+RR1(1)*(ALP2-ALP1)
02279 AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP)
02280 AMX=SQRT(AMX2)
02281 PHSPAC=PHSPAC*((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2)
02282 & /(AMKST*GAMKST)
02283 PHSPAC=PHSPAC*(ALP2-ALP1)
02284
02285
02286 PN(1)=0
02287 PN(2)=0
02288 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
02289 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
02290
02291 PKS(1)=0
02292 PKS(2)=0
02293 PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
02294 PKS(3)=-PN(3)
02295 PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU)
02296
02297
02298 ENPI=( AMX**2+AMPIZ**2-AMK**2 ) / ( 2*AMX )
02299 PPPI=SQRT((ENPI-AMPIZ)*(ENPI+AMPIZ))
02300 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
02301
02302 CALL SPHERA(PPPI,PPI)
02303 PPI(4)=ENPI
02304
02305 DO 50 I=1,3
02306 50 PKK(I)=-PPI(I)
02307 PKK(4)=( AMX**2+AMK**2-AMPIZ**2 ) / ( 2*AMX )
02308 EXE=(PKS(4)+PKS(3))/AMX
02309
02310 CALL BOSTR3(EXE,PPI,PPI)
02311 CALL BOSTR3(EXE,PKK,PKK)
02312 DO 60 I=1,4
02313 60 QQ(I)=PKK(I)-PPI(I)
02314
02315 PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1)
02316 QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1)
02317 DO 61 I=1,4
02318 61 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD
02319
02320 PRODPQ=PT(4)*QQ(4)
02321 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
02322 PRODPN=PT(4)*PN(4)
02323 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
02324 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
02325 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
02326
02327 FKS=CABS(BWIGS(AMX2,AMKST,GAMKST))**2
02328 AMPLIT=(GFERMI*SCABIB)**2*BRAK*2*FKS
02329 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
02330 DO 70 I=1,3
02331 70 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
02332 ENDIF
02333 RETURN
02334 END
02335
02336
02337
02338 SUBROUTINE DPHNPI(DGAMT,HVX,PNX,PRX,PPIX,JNPI)
02339
02340
02341
02342
02343 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02344 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02345 * ,AMK,AMKZ,AMKST,GAMKST
02346
02347 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02348 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02349 * ,AMK,AMKZ,AMKST,GAMKST
02350 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02351 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02352 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
02353 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
02354 & ,NAMES
02355 CHARACTER NAMES(NMODE)*31
02356 REAL*8 WETMAX(20)
02357
02358 REAL*8 PN(4),PR(4),PPI(4,9),HV(4)
02359 REAL*4 PNX(4),PRX(4),PPIX(4,9),HVX(4)
02360 REAL*8 PV(5,9),PT(4),UE(3),BE(3)
02361 REAL*8 PAWT,AMX,AMS1,AMS2,PA,PHS,PHSMAX,PMIN,PMAX
02362
02363 REAL*8 PHSPAC
02364
02365 REAL*8 GAM,BEP,PHI,A,B,C
02366 REAL*8 AMPIK
02367 REAL*4 RRR(9),RRX(2),RN(1),RR2(1)
02368
02369 DATA PI /3.141592653589793238462643/
02370 DATA WETMAX /20*1D-15/
02371
02372
02373
02374 PAWT(A,B,C)=
02375 $ SQRT(MAX(0.D0,(A**2-(B+C)**2)*(A**2-(B-C)**2)))/(2.D0*A)
02376
02377 AMPIK(I,J)=DCDMAS(IDFFIN(I,J))
02378
02379
02380 IF ((JNPI.LE.0).OR.JNPI.GT.20) THEN
02381 WRITE(6,*) 'JNPI OUTSIDE RANGE DEFINED BY WETMAX; JNPI=',JNPI
02382 STOP
02383 ENDIF
02384
02385
02386 PT(1)=0.
02387 PT(2)=0.
02388 PT(3)=0.
02389 PT(4)=AMTAU
02390
02391 500 CONTINUE
02392
02393 ND=MULPIK(JNPI)
02394 PS=0.
02395 PHSPAC = 1./2.**5 /PI**2
02396 DO 4 I=1,ND
02397 4 PS =PS+AMPIK(I,JNPI)
02398 CALL RANMAR(RR2,1)
02399 AMS1=PS**2
02400 AMS2=(AMTAU-AMNUTA)**2
02401
02402
02403 AMX2=AMS1+ RR2(1)*(AMS2-AMS1)
02404 AMX =SQRT(AMX2)
02405 AMW =AMX
02406 PHSPAC=PHSPAC * (AMS2-AMS1)
02407
02408
02409 PN(1)=0
02410 PN(2)=0
02411 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX2)
02412 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
02413
02414 PR(1)=0
02415 PR(2)=0
02416 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX2)
02417 PR(3)=-PN(3)
02418 PHSPAC=PHSPAC * (4.*PI) * (2.*PR(3)/AMTAU)
02419
02420
02421
02422
02423 PXQ=AMTAU*PR(4)
02424 PXN=AMTAU*PN(4)
02425 QXN=PR(4)*PN(4)-PR(1)*PN(1)-PR(2)*PN(2)-PR(3)*PN(3)
02426
02427
02428 BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AMX2*PXN)
02429 & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AMX2
02430
02431
02432 AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,JNPI)
02433 DGAMT=1./(2.*AMTAU)*AMPLIT*PHSPAC
02434
02435
02436 PHSMAX = 1.
02437 DO 200 I=1,4
02438 200 PV(I,1)=PR(I)
02439 PV(5,1)=AMW
02440 PV(5,ND)=AMPIK(ND,JNPI)
02441
02442 PMAX=AMW-PS+AMPIK(ND,JNPI)
02443 PMIN=.0
02444 DO 220 IL=ND-1,1,-1
02445 PMAX=PMAX+AMPIK(IL,JNPI)
02446 PMIN=PMIN+AMPIK(IL+1,JNPI)
02447 220 PHSMAX=PHSMAX*PAWT(PMAX,PMIN,AMPIK(IL,JNPI))/PMAX
02448
02449
02450 AMX=AMW
02451 DO 222 IL=1,ND-2
02452 AMS1=.0
02453 DO 223 JL=IL+1,ND
02454 223 AMS1=AMS1+AMPIK(JL,JNPI)
02455 AMS1=AMS1**2
02456 AMX =(AMX-AMPIK(IL,JNPI))
02457 AMS2=(AMX)**2
02458 PHSMAX=PHSMAX * (AMS2-AMS1)
02459 222 CONTINUE
02460 NCONT=0
02461 100 CONTINUE
02462 NCONT=NCONT+1
02463
02464 PHS=1.D0
02465 PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4)
02466 AMX=AMW
02467 CALL RANMAR(RRR,ND-2)
02468 DO 230 IL=1,ND-2
02469 AMS1=.0D0
02470 DO 231 JL=IL+1,ND
02471 231 AMS1=AMS1+AMPIK(JL,JNPI)
02472 AMS1=AMS1**2
02473 AMS2=(AMX-AMPIK(IL,JNPI))**2
02474 RR1=RRR(IL)
02475 AMX2=AMS1+ RR1*(AMS2-AMS1)
02476 AMX=SQRT(AMX2)
02477 PV(5,IL+1)=AMX
02478 PHSPAC=PHSPAC * (AMS2-AMS1)
02479
02480 PHS=PHS* (AMS2-AMS1)
02481 PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI))
02482 PHS =PHS *PA/PV(5,IL)
02483 230 CONTINUE
02484 PA=PAWT(PV(5,ND-1),AMPIK(ND-1,JNPI),AMPIK(ND,JNPI))
02485 PHS =PHS *PA/PV(5,ND-1)
02486 CALL RANMAR(RN,1)
02487 WETMAX(JNPI)=1.2D0*MAX(WETMAX(JNPI)/1.2D0,PHS/PHSMAX)
02488 IF (NCONT.EQ.500 000) THEN
02489 XNPI=0.0
02490 DO KK=1,ND
02491 XNPI=XNPI+AMPIK(KK,JNPI)
02492 ENDDO
02493 WRITE(6,*) 'ROUNDING INSTABILITY IN DPHNPI ?'
02494 WRITE(6,*) 'AMW=',AMW,'XNPI=',XNPI
02495 WRITE(6,*) 'IF =AMW= IS NEARLY EQUAL =XNPI= THAT IS IT'
02496 WRITE(6,*) 'PHS=',PHS,'PHSMAX=',PHSMAX
02497 GOTO 500
02498 ENDIF
02499 IF(RN(1)*PHSMAX*WETMAX(JNPI).GT.PHS) GO TO 100
02500
02501 280 DO 300 IL=1,ND-1
02502 PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI))
02503 CALL RANMAR(RRX,2)
02504 UE(3)=2.*RRX(1)-1.
02505 PHI=2.*PI*RRX(2)
02506 UE(1)=SQRT(1.D0-UE(3)**2)*COS(PHI)
02507 UE(2)=SQRT(1.D0-UE(3)**2)*SIN(PHI)
02508 DO 290 J=1,3
02509 PPI(J,IL)=PA*UE(J)
02510 290 PV(J,IL+1)=-PA*UE(J)
02511 PPI(4,IL)=SQRT(PA**2+AMPIK(IL,JNPI)**2)
02512 PV(4,IL+1)=SQRT(PA**2+PV(5,IL+1)**2)
02513 PHSPAC=PHSPAC *(4.*PI)*(2.*PA/PV(5,IL))
02514 300 CONTINUE
02515
02516 DO 310 J=1,4
02517 310 PPI(J,ND)=PV(J,ND)
02518 DO 340 IL=ND-1,1,-1
02519 DO 320 J=1,3
02520 320 BE(J)=PV(J,IL)/PV(4,IL)
02521 GAM=PV(4,IL)/PV(5,IL)
02522 DO 340 I=IL,ND
02523 BEP=BE(1)*PPI(1,I)+BE(2)*PPI(2,I)+BE(3)*PPI(3,I)
02524 DO 330 J=1,3
02525 330 PPI(J,I)=PPI(J,I)+GAM*(GAM*BEP/(1.D0+GAM)+PPI(4,I))*BE(J)
02526 PPI(4,I)=GAM*(PPI(4,I)+BEP)
02527 340 CONTINUE
02528
02529 HV(4)=1.
02530 HV(3)=0.
02531 HV(2)=0.
02532 HV(1)=0.
02533 DO K=1,4
02534 PNX(K)=PN(K)
02535 PRX(K)=PR(K)
02536 HVX(K)=HV(K)
02537 DO L=1,ND
02538 PPIX(K,L)=PPI(K,L)
02539 ENDDO
02540 ENDDO
02541 RETURN
02542 END
02543 FUNCTION SIGEE(Q2,JNP)
02544
02545
02546
02547
02548
02549
02550
02551
02552
02553
02554
02555
02556
02557
02558
02559
02560
02561
02562 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02563 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02564 * ,AMK,AMKZ,AMKST,GAMKST
02565
02566 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02567 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02568 * ,AMK,AMKZ,AMKST,GAMKST
02569 REAL*4 DATSIG(17,6)
02570
02571 DATA DATSIG/
02572 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
02573 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
02574 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
02575 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
02576 5 17*.0,
02577 6 17*.0,
02578 7 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25,
02579 8 17*.0/
02580 DATA SIG0 / 86.8 /
02581 DATA PI /3.141592653589793238462643/
02582 DATA INIT / 0 /
02583
02584 JNPI=JNP
02585 IF(JNP.EQ.4) JNPI=3
02586 IF(JNP.EQ.3) JNPI=4
02587 IF(INIT.EQ.0) THEN
02588 INIT=1
02589
02590 IF (AMPI.LT.0.139) AMPI = 0.1395675
02591 AMPI2=AMPI**2
02592 FPI = .943*AMPI
02593 DO 100 I=1,17
02594 DATSIG(I,2) = DATSIG(I,2)/2.
02595 DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2)
02596 S = 1.025+(I-1)*.05
02597 FACT=0.
02598 S2=S**2
02599 DO 200 J=1,17
02600 T= 1.025+(J-1)*.05
02601 IF(T . GT. S-AMPI ) GO TO 201
02602 T2=T**2
02603 FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05
02604 FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1))
02605 200 DATSIG(I,3) = DATSIG(I,3) + FACT
02606 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2
02607 DATSIG(I,4) = DATSIG(I,3)
02608 DATSIG(I,6) = DATSIG(I,5)
02609 100 CONTINUE
02610
02611 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/
02612 % (17F7.2/))
02613 ENDIF
02614 Q=SQRT(Q2)
02615 QMIN=1.
02616 IF(Q.LT.QMIN) THEN
02617 SIGEE=DATSIG(1,JNPI)+
02618 & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05
02619 ELSEIF(Q.LT.1.8) THEN
02620 DO 1 I=1,16
02621 QMAX = QMIN + .05
02622 IF(Q.LT.QMAX) GO TO 2
02623 QMIN = QMIN + .05
02624 1 CONTINUE
02625 2 SIGEE=DATSIG(I,JNPI)+
02626 & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05
02627 ELSEIF(Q.GT.1.8) THEN
02628 SIGEE=DATSIG(17,JNPI)+
02629 & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05
02630 ENDIF
02631 IF(SIGEE.LT..0) SIGEE=0.
02632
02633 SIGEE = SIGEE/(6.*PI**2*SIG0)
02634
02635 RETURN
02636 END
02637
02638 FUNCTION SIGOLD(Q2,JNPI)
02639
02640
02641
02642
02643
02644
02645
02646
02647
02648
02649
02650
02651
02652
02653
02654
02655
02656
02657 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02658 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02659 * ,AMK,AMKZ,AMKST,GAMKST
02660
02661 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02662 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02663 * ,AMK,AMKZ,AMKST,GAMKST
02664 REAL*4 DATSIG(17,4)
02665
02666 DATA DATSIG/
02667 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
02668 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
02669 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
02670 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
02671 5 17*.0,
02672 6 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25/
02673 DATA SIG0 / 86.8 /
02674 DATA PI /3.141592653589793238462643/
02675 DATA INIT / 0 /
02676
02677 IF(INIT.EQ.0) THEN
02678 INIT=1
02679 AMPI2=AMPI**2
02680 FPI = .943*AMPI
02681 DO 100 I=1,17
02682 DATSIG(I,2) = DATSIG(I,2)/2.
02683 DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2)
02684 S = 1.025+(I-1)*.05
02685 FACT=0.
02686 S2=S**2
02687 DO 200 J=1,17
02688 T= 1.025+(J-1)*.05
02689 IF(T . GT. S-AMPI ) GO TO 201
02690 T2=T**2
02691 FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05
02692 FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1))
02693 200 DATSIG(I,3) = DATSIG(I,3) + FACT
02694 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2
02695 100 CONTINUE
02696
02697 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/
02698 % (17F7.2/))
02699 ENDIF
02700 Q=SQRT(Q2)
02701 QMIN=1.
02702 IF(Q.LT.QMIN) THEN
02703 SIGEE=DATSIG(1,JNPI)+
02704 & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05
02705 ELSEIF(Q.LT.1.8) THEN
02706 DO 1 I=1,16
02707 QMAX = QMIN + .05
02708 IF(Q.LT.QMAX) GO TO 2
02709 QMIN = QMIN + .05
02710 1 CONTINUE
02711 2 SIGEE=DATSIG(I,JNPI)+
02712 & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05
02713 ELSEIF(Q.GT.1.8) THEN
02714 SIGEE=DATSIG(17,JNPI)+
02715 & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05
02716 ENDIF
02717 IF(SIGEE.LT..0) SIGEE=0.
02718
02719 SIGEE = SIGEE/(6.*PI**2*SIG0)
02720 SIGOLD=SIGEE
02721
02722 RETURN
02723 END
02724 SUBROUTINE DPHSPK(DGAMT,HV,PN,PAA,PNPI,JAA)
02725
02726
02727
02728
02729 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
02730 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
02731 & ,NAMES
02732 CHARACTER NAMES(NMODE)*31
02733
02734 REAL HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4),PNPI(4,9)
02735
02736 MNUM=JAA
02737
02738 KEYT=4
02739 IF(JAA.EQ.7) KEYT=3
02740
02741 AMP1=DCDMAS(IDFFIN(1,JAA+NM4+NM5+NM6))
02742 AMP2=DCDMAS(IDFFIN(2,JAA+NM4+NM5+NM6))
02743 AMP3=DCDMAS(IDFFIN(3,JAA+NM4+NM5+NM6))
02744 CALL
02745 $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM)
02746 DO I=1,4
02747 PNPI(I,1)=PIM1(I)
02748 PNPI(I,2)=PIM2(I)
02749 PNPI(I,3)=PIPL(I)
02750 ENDDO
02751 END
02752
02753
02754
02755
02756 SUBROUTINE
02757 $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMPA,PIM2,AMPB,PIPL,AMP3,KEYT,MNUM)
02758
02759
02760
02761
02762
02763
02764
02765
02766
02767
02768
02769
02770
02771
02772
02773
02774 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02775 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02776 * ,AMK,AMKZ,AMKST,GAMKST
02777
02778 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02779 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02780 * ,AMK,AMKZ,AMKST,GAMKST
02781 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02782 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02783 REAL HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
02784 REAL PR(4)
02785 REAL*4 RRR(5)
02786 DATA PI /3.141592653589793238462643/
02787 DATA ICONT /0/
02788 XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z))
02789
02790
02791
02792
02793 PHSPAC=1./2**17/PI**8
02794
02795 PT(1)=0.
02796 PT(2)=0.
02797 PT(3)=0.
02798 PT(4)=AMTAU
02799
02800 CALL RANMAR(RRR,5)
02801 RR=RRR(5)
02802
02803 CALL CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
02804 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
02805 IF (ICHAN.EQ.1) THEN
02806 AMP1=AMPB
02807 AMP2=AMPA
02808 ELSEIF (ICHAN.EQ.2) THEN
02809 AMP1=AMPA
02810 AMP2=AMPB
02811 ELSE
02812 AMP1=AMPB
02813 AMP2=AMPA
02814 ENDIF
02815
02816 RR1=RRR(1)
02817 AMS1=(AMP1+AMP2+AMP3)**2
02818 AMS2=(AMTAU-AMNUTA)**2
02819
02820 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
02821 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
02822 ALP=ALP1+RR1*(ALP2-ALP1)
02823 AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP)
02824 AM3 =SQRT(AM3SQ)
02825 PHSPAC=PHSPAC*((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
02826 PHSPAC=PHSPAC*(ALP2-ALP1)
02827
02828 RR2=RRR(2)
02829 AMS1=(AMP2+AMP3)**2
02830 AMS2=(AM3-AMP1)**2
02831 IF (ICHAN.LE.2) THEN
02832
02833 ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA)
02834 ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA)
02835 ALP=ALP1+RR2*(ALP2-ALP1)
02836 AM2SQ =AMRA**2+AMRA*GAMRA*TAN(ALP)
02837 AM2 =SQRT(AM2SQ)
02838
02839
02840
02841
02842 ELSE
02843
02844 AM2SQ=AMS1+ RR2*(AMS2-AMS1)
02845 AM2 =SQRT(AM2SQ)
02846 PHF0=(AMS2-AMS1)
02847 ENDIF
02848
02849 ENQ1=(AM2SQ-AMP2**2+AMP3**2)/(2*AM2)
02850 ENQ2=(AM2SQ+AMP2**2-AMP3**2)/(2*AM2)
02851 PPI= ENQ1**2-AMP3**2
02852 PPPI=SQRT(ABS(ENQ1**2-AMP3**2))
02853
02854 PHF1=(4*PI)*(2*PPPI/AM2)
02855
02856 CALL SPHERA(PPPI,PIPL)
02857 PIPL(4)=ENQ1
02858
02859 DO 30 I=1,3
02860 30 PIM1(I)=-PIPL(I)
02861 PIM1(4)=ENQ2
02862
02863
02864 PR(1)=0
02865 PR(2)=0
02866 PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP1**2)
02867 PR(3)= SQRT(ABS(PR(4)**2-AM2**2))
02868 PPI = PR(4)**2-AM2**2
02869
02870 PIM2(1)=0
02871 PIM2(2)=0
02872 PIM2(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP1**2)
02873 PIM2(3)=-PR(3)
02874 PHF2=(4*PI)*(2*PR(3)/AM3)
02875
02876 EXE=(PR(4)+PR(3))/AM2
02877 CALL BOSTR3(EXE,PIPL,PIPL)
02878 CALL BOSTR3(EXE,PIM1,PIM1)
02879 RR3=RRR(3)
02880 RR4=RRR(4)
02881
02882 THET =ACOS(-1.+2*RR3)
02883 PHI = 2*PI*RR4
02884 CALL ROTPOL(THET,PHI,PIPL)
02885 CALL ROTPOL(THET,PHI,PIM1)
02886 CALL ROTPOL(THET,PHI,PIM2)
02887 CALL ROTPOL(THET,PHI,PR)
02888
02889
02890
02891 PAA(1)=0
02892 PAA(2)=0
02893 PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM3**2)
02894 PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2))
02895 PPI = PAA(4)**2-AM3**2
02896 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU)
02897
02898 PN(1)=0
02899 PN(2)=0
02900 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM3**2)
02901 PN(3)=-PAA(3)
02902
02903
02904 AMS1=(AMP2+AMP3)**2
02905 AMS2=(AM3-AMP1)**2
02906 ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA)
02907 ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA)
02908 XPRO = (PIM1(3)+PIPL(3))**2
02909 $ +(PIM1(2)+PIPL(2))**2+(PIM1(1)+PIPL(1))**2
02910 AM2SQ=-XPRO+(PIM1(4)+PIPL(4))**2
02911
02912 FF1 = ((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA)
02913 FF1 =FF1 *(ALP2-ALP1)
02914
02915 GG1 = (4*PI)*(XLAM(AM2SQ,AMP2**2,AMP3**2)/AM2SQ)
02916
02917 GG1 =GG1 *(4*PI)*SQRT(4*XPRO/AM3SQ)
02918 XJAJE=GG1*(AMS2-AMS1)
02919
02920 AMS1=(AMP1+AMP3)**2
02921 AMS2=(AM3-AMP2)**2
02922 ALP1=ATAN((AMS1-AMRB**2)/AMRB/GAMRB)
02923 ALP2=ATAN((AMS2-AMRB**2)/AMRB/GAMRB)
02924 XPRO = (PIM2(3)+PIPL(3))**2
02925 $ +(PIM2(2)+PIPL(2))**2+(PIM2(1)+PIPL(1))**2
02926 AM2SQ=-XPRO+(PIM2(4)+PIPL(4))**2
02927 FF2 = ((AM2SQ-AMRB**2)**2+(AMRB*GAMRB)**2)/(AMRB*GAMRB)
02928 FF2 =FF2 *(ALP2-ALP1)
02929 GG2 = (4*PI)*(XLAM(AM2SQ,AMP1**2,AMP3**2)/AM2SQ)
02930 GG2 =GG2 *(4*PI)*SQRT(4*XPRO/AM3SQ)
02931 XJADW=GG2*(AMS2-AMS1)
02932
02933 A1=0.0
02934 A2=0.0
02935 A3=0.0
02936 XJAC1=FF1*GG1
02937 XJAC2=FF2*GG2
02938 IF (ICHAN.EQ.2) THEN
02939 XJAC3=XJADW
02940 ELSE
02941 XJAC3=XJAJE
02942 ENDIF
02943 IF (XJAC1.NE.0.0) A1=PROB1/XJAC1
02944 IF (XJAC2.NE.0.0) A2=PROB2/XJAC2
02945 IF (XJAC3.NE.0.0) A3=PROB3/XJAC3
02946
02947 IF (A1+A2+A3.NE.0.0) THEN
02948 PHSPAC=PHSPAC/(A1+A2+A3)
02949 ELSE
02950 PHSPAC=0.0
02951 ENDIF
02952 IF(ICHAN.EQ.2) THEN
02953 DO 70 I=1,4
02954 X=PIM1(I)
02955 PIM1(I)=PIM2(I)
02956 70 PIM2(I)=X
02957 ENDIF
02958
02959
02960 EXE=(PAA(4)+PAA(3))/AM3
02961 CALL BOSTR3(EXE,PIPL,PIPL)
02962 CALL BOSTR3(EXE,PIM1,PIM1)
02963 CALL BOSTR3(EXE,PIM2,PIM2)
02964 CALL BOSTR3(EXE,PR,PR)
02965
02966 IF (MNUM.EQ.8) THEN
02967 CALL DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
02968
02969
02970 ELSE
02971 CALL DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
02972 ENDIF
02973 IF (KEYT.EQ.1.OR.KEYT.EQ.2) THEN
02974
02975
02976 PHSPAC=PHSPAC*2.0
02977 PHSPAC=PHSPAC/2.
02978 ENDIF
02979 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
02980 END
02981 SUBROUTINE DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
02982
02983
02984
02985
02986
02987
02988
02989
02990
02991 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02992 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02993 * ,AMK,AMKZ,AMKST,GAMKST
02994
02995 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02996 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02997 * ,AMK,AMKZ,AMKST,GAMKST
02998 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02999 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03000 COMMON /TESTA1/ KEYA1
03001 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4)
03002 REAL PAA(4),VEC1(4),VEC2(4)
03003 REAL PIVEC(4),PIAKS(4),HVM(4)
03004 COMPLEX BWIGN,HADCUR(4),FPIK
03005 DATA ICONT /1/
03006
03007
03008
03009 DATA FPI /93.3E-3/
03010
03011 BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM)
03012
03013
03014 DO 10 I=1,4
03015 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I)
03016
03017 XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2))
03018 XMRO1 =SQRT(ABS((PIPL(4)+PIM1(4))**2-(PIPL(1)+PIM1(1))**2
03019 $ -(PIPL(2)+PIM1(2))**2-(PIPL(3)+PIM1(3))**2))
03020 XMRO2 =SQRT(ABS((PIPL(4)+PIM2(4))**2-(PIPL(1)+PIM2(1))**2
03021 $ -(PIPL(2)+PIM2(2))**2-(PIPL(3)+PIM2(3))**2))
03022
03023 PROD1 =PAA(4)*(PIM1(4)-PIPL(4))-PAA(1)*(PIM1(1)-PIPL(1))
03024 $ -PAA(2)*(PIM1(2)-PIPL(2))-PAA(3)*(PIM1(3)-PIPL(3))
03025 PROD2 =PAA(4)*(PIM2(4)-PIPL(4))-PAA(1)*(PIM2(1)-PIPL(1))
03026 $ -PAA(2)*(PIM2(2)-PIPL(2))-PAA(3)*(PIM2(3)-PIPL(3))
03027 DO 40 I=1,4
03028 VEC1(I)= PIM1(I)-PIPL(I) -PAA(I)*PROD1/XMAA**2
03029 40 VEC2(I)= PIM2(I)-PIPL(I) -PAA(I)*PROD2/XMAA**2
03030
03031 IF (KEYA1.EQ.1) THEN
03032 FA1=9.87
03033 FAROPI=1.0
03034 FRO2PI=1.0
03035 FNORM=FA1/SQRT(2.)*FAROPI*FRO2PI
03036 DO 45 I=1,4
03037 HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMA1)
03038 $ *(CMPLX(VEC1(I))*AMRO**2*BWIGN(XMRO1,AMRO,GAMRO)
03039 $ +CMPLX(VEC2(I))*AMRO**2*BWIGN(XMRO2,AMRO,GAMRO))
03040 45 CONTINUE
03041 ELSE
03042 FNORM=2.0*SQRT(2.)/3.0/FPI
03043 GAMAX=GAMA1*GFUN(XMAA**2)/GFUN(AMA1**2)
03044 DO 46 I=1,4
03045 HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMAX)
03046 $ *(CMPLX(VEC1(I))*FPIK(XMRO1)
03047 $ +CMPLX(VEC2(I))*FPIK(XMRO2))
03048 46 CONTINUE
03049 ENDIF
03050
03051
03052 CALL CLVEC(HADCUR,PN,PIVEC)
03053 CALL CLAXI(HADCUR,PN,PIAKS)
03054 CALL CLNUT(HADCUR,BRAKM,HVM)
03055
03056 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
03057 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
03058 AMPLIT=(GFERMI*CCABIB)**2*BRAK/2.
03059
03060
03061
03062 DO 90 I=1,3
03063 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
03064 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
03065
03066 HV(I)=-HV(I)/BRAK
03067 90 CONTINUE
03068 END
03069
03070 FUNCTION GFUN(QKWA)
03071
03072
03073
03074 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03075 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03076 * ,AMK,AMKZ,AMKST,GAMKST
03077
03078 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03079 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03080 * ,AMK,AMKZ,AMKST,GAMKST
03081
03082 IF (QKWA.LT.(AMRO+AMPI)**2) THEN
03083 GFUN=4.1*(QKWA-9*AMPIZ**2)**3
03084 $ *(1.-3.3*(QKWA-9*AMPIZ**2)+5.8*(QKWA-9*AMPIZ**2)**2)
03085 ELSE
03086 GFUN=QKWA*(1.623+10.38/QKWA-9.32/QKWA**2+0.65/QKWA**3)
03087 ENDIF
03088 END
03089 COMPLEX FUNCTION BWIGS(S,M,G)
03090
03091
03092
03093 REAL S,M,G
03094 REAL PI,PIM,QS,QM,W,GS,MK
03095
03096 REAL PM, PG, PBETA
03097 COMPLEX BW,BWP
03098 DATA INIT /0/
03099 P(A,B,C)=SQRT(ABS(ABS(((A+B-C)**2-4.*A*B)/4./A)
03100 $ +(((A+B-C)**2-4.*A*B)/4./A))/2.0)
03101
03102 IF (INIT.EQ.0) THEN
03103 INIT=1
03104 PI=3.141592654
03105 PIM=.139
03106 MK=.493667
03107
03108 PM = PKORB(1,16)
03109 PG = PKORB(2,16)
03110 PBETA = PKORB(3,16)
03111
03112 ENDIF
03113 QS=P(S,PIM**2,MK**2)
03114 QM=P(M**2,PIM**2,MK**2)
03115 W=SQRT(S)
03116 GS=G*(M/W)*(QS/QM)**3
03117 BW=M**2/CMPLX(M**2-S,-M*GS)
03118 QPM=P(PM**2,PIM**2,MK**2)
03119 G1=PG*(PM/W)*(QS/QPM)**3
03120 BWP=PM**2/CMPLX(PM**2-S,-PM*G1)
03121 BWIGS= (BW+PBETA*BWP)/(1+PBETA)
03122 RETURN
03123 END
03124 COMPLEX FUNCTION BWIG(S,M,G)
03125
03126
03127
03128 REAL S,M,G
03129 REAL PI,PIM,QS,QM,W,GS
03130 DATA INIT /0/
03131
03132 IF (INIT.EQ.0) THEN
03133 INIT=1
03134 PI=3.141592654
03135 PIM=.139
03136
03137 ENDIF
03138 IF (S.GT.4.*PIM**2) THEN
03139 QS=SQRT(ABS(ABS(S/4.-PIM**2)+(S/4.-PIM**2))/2.0)
03140 QM=SQRT(M**2/4.-PIM**2)
03141 W=SQRT(S)
03142 GS=G*(M/W)*(QS/QM)**3
03143 ELSE
03144 GS=0.0
03145 ENDIF
03146 BWIG=M**2/CMPLX(M**2-S,-M*GS)
03147 RETURN
03148 END
03149 COMPLEX FUNCTION FPIK(W)
03150
03151
03152
03153 COMPLEX BWIG
03154 REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W
03155 EXTERNAL BWIG
03156 DATA INIT /0/
03157
03158
03159 IF (INIT.EQ.0 ) THEN
03160 INIT=1
03161 PI=3.141592654
03162 PIM=.140
03163 ROM=PKORB(1,9)
03164 ROG=PKORB(2,9)
03165 ROM1=PKORB(1,15)
03166 ROG1=PKORB(2,15)
03167 BETA1=PKORB(3,15)
03168 ENDIF
03169
03170 S=W**2
03171 FPIK= (BWIG(S,ROM,ROG)+BETA1*BWIG(S,ROM1,ROG1))
03172 & /(1+BETA1)
03173 RETURN
03174 END
03175 FUNCTION FPIRHO(W)
03176
03177
03178
03179 COMPLEX FPIK
03180 FPIRHO=CABS(FPIK(W))**2
03181 END
03182 SUBROUTINE CLVEC(HJ,PN,PIV)
03183
03184
03185
03186
03187
03188
03189 REAL PIV(4),PN(4)
03190 COMPLEX HJ(4),HN
03191
03192 HN= HJ(4)*CMPLX(PN(4))-HJ(3)*CMPLX(PN(3))
03193 HH= REAL(HJ(4)*CONJG(HJ(4))-HJ(3)*CONJG(HJ(3))
03194 $ -HJ(2)*CONJG(HJ(2))-HJ(1)*CONJG(HJ(1)))
03195 DO 10 I=1,4
03196 10 PIV(I)=4.*REAL(HN*CONJG(HJ(I)))-2.*HH*PN(I)
03197 RETURN
03198 END
03199 SUBROUTINE CLAXI(HJ,PN,PIA)
03200
03201
03202
03203
03204
03205
03206 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
03207 COMMON / IDFC / IDFF
03208 REAL PIA(4),PN(4)
03209 COMPLEX HJ(4),HJC(4)
03210
03211
03212 DET2(I,J)=AIMAG(HJC(I)*HJ(J)-HJC(J)*HJ(I))
03213
03214
03215
03216
03217 IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN
03218 SIGN= IDFF/ABS(IDFF)
03219 ELSEIF (KTOM.EQ.2) THEN
03220 SIGN=-IDFF/ABS(IDFF)
03221 ELSE
03222 PRINT *, 'STOP IN CLAXI: KTOM=',KTOM
03223 STOP
03224 ENDIF
03225
03226 DO 10 I=1,4
03227 10 HJC(I)=CONJG(HJ(I))
03228 PIA(1)= -2.*PN(3)*DET2(2,4)+2.*PN(4)*DET2(2,3)
03229 PIA(2)= -2.*PN(4)*DET2(1,3)+2.*PN(3)*DET2(1,4)
03230 PIA(3)= 2.*PN(4)*DET2(1,2)
03231 PIA(4)= 2.*PN(3)*DET2(1,2)
03232
03233 DO 20 I=1,4
03234 20 PIA(I)=PIA(I)*SIGN
03235 END
03236 SUBROUTINE CLNUT(HJ,B,HV)
03237
03238
03239
03240
03241
03242
03243 COMPLEX HJ(4)
03244 REAL HV(4),P(4)
03245 DATA P /3*0.,1.0/
03246
03247 CALL CLAXI(HJ,P,HV)
03248 B=REAL( HJ(4)*AIMAG(HJ(4)) - HJ(3)*AIMAG(HJ(3))
03249 & - HJ(2)*AIMAG(HJ(2)) - HJ(1)*AIMAG(HJ(1)) )
03250 RETURN
03251 END
03252 SUBROUTINE DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
03253
03254
03255
03256
03257
03258
03259
03260
03261
03262 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03263 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03264 * ,AMK,AMKZ,AMKST,GAMKST
03265
03266 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03267 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03268 * ,AMK,AMKZ,AMKST,GAMKST
03269 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03270 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03271 COMMON /TESTA1/ KEYA1
03272 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4)
03273 REAL PAA(4),VEC1(4),VEC2(4)
03274 REAL PIVEC(4),PIAKS(4),HVM(4)
03275 COMPLEX BWIGN,HADCUR(4),FNORM,FORMOM
03276 DATA ICONT /1/
03277
03278
03279
03280
03281 DO 10 I=1,4
03282 VEC1(I)=0.0
03283 VEC2(I)=0.0
03284 HV(I) =0.0
03285 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I)
03286 VEC1(1)=1.0
03287
03288 XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2))
03289 XMOM =SQRT(ABS( (PIM2(4)+PIPL(4))**2-(PIM2(3)+PIPL(3))**2
03290 $ -(PIM2(2)+PIPL(2))**2-(PIM2(1)+PIPL(1))**2 ))
03291 XMRO2 =(PIPL(1))**2 +(PIPL(2))**2 +(PIPL(3))**2
03292
03293 PROD1 =VEC1(1)*PIPL(1)
03294 PROD2 =VEC2(2)*PIPL(2)
03295 P12 =PIM1(4)*PIM2(4)-PIM1(1)*PIM2(1)
03296 $ -PIM1(2)*PIM2(2)-PIM1(3)*PIM2(3)
03297 P1PL =PIM1(4)*PIPL(4)-PIM1(1)*PIPL(1)
03298 $ -PIM1(2)*PIPL(2)-PIM1(3)*PIPL(3)
03299 P2PL =PIPL(4)*PIM2(4)-PIPL(1)*PIM2(1)
03300 $ -PIPL(2)*PIM2(2)-PIPL(3)*PIM2(3)
03301 DO 40 I=1,3
03302 VEC1(I)= (VEC1(I)-PROD1/XMRO2*PIPL(I))
03303 40 CONTINUE
03304 GNORM=SQRT(VEC1(1)**2+VEC1(2)**2+VEC1(3)**2)
03305 DO 41 I=1,3
03306 VEC1(I)= VEC1(I)/GNORM
03307 41 CONTINUE
03308 VEC2(1)=(VEC1(2)*PIPL(3)-VEC1(3)*PIPL(2))/SQRT(XMRO2)
03309 VEC2(2)=(VEC1(3)*PIPL(1)-VEC1(1)*PIPL(3))/SQRT(XMRO2)
03310 VEC2(3)=(VEC1(1)*PIPL(2)-VEC1(2)*PIPL(1))/SQRT(XMRO2)
03311 P1VEC1 =PIM1(4)*VEC1(4)-PIM1(1)*VEC1(1)
03312 $ -PIM1(2)*VEC1(2)-PIM1(3)*VEC1(3)
03313 P2VEC1 =VEC1(4)*PIM2(4)-VEC1(1)*PIM2(1)
03314 $ -VEC1(2)*PIM2(2)-VEC1(3)*PIM2(3)
03315 P1VEC2 =PIM1(4)*VEC2(4)-PIM1(1)*VEC2(1)
03316 $ -PIM1(2)*VEC2(2)-PIM1(3)*VEC2(3)
03317 P2VEC2 =VEC2(4)*PIM2(4)-VEC2(1)*PIM2(1)
03318 $ -VEC2(2)*PIM2(2)-VEC2(3)*PIM2(3)
03319
03320 FNORM=FORMOM(XMAA,XMOM)
03321 BRAK=0.0
03322 DO 120 JJ=1,2
03323 DO 45 I=1,4
03324 IF (JJ.EQ.1) THEN
03325 HADCUR(I) = FNORM *(
03326 $ VEC1(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL))
03327 $ -PIM2(I)*(P2VEC1*P1PL-P1VEC1*P2PL)
03328 $ +PIPL(I)*(P2VEC1*P12 -P1VEC1*(AMPI**2+P2PL)) )
03329 ELSE
03330 HADCUR(I) = FNORM *(
03331 $ VEC2(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL))
03332 $ -PIM2(I)*(P2VEC2*P1PL-P1VEC2*P2PL)
03333 $ +PIPL(I)*(P2VEC2*P12 -P1VEC2*(AMPI**2+P2PL)) )
03334 ENDIF
03335 45 CONTINUE
03336
03337
03338 CALL CLVEC(HADCUR,PN,PIVEC)
03339 CALL CLAXI(HADCUR,PN,PIAKS)
03340 CALL CLNUT(HADCUR,BRAKM,HVM)
03341
03342 BRAK=BRAK+(GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
03343 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
03344 DO 90 I=1,3
03345 HV(I)=HV(I)-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
03346 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
03347 90 CONTINUE
03348
03349 120 CONTINUE
03350 AMPLIT=(GFERMI*CCABIB)**2*BRAK/2.
03351
03352
03353
03354 DO 91 I=1,3
03355 HV(I)=-HV(I)/BRAK
03356 91 CONTINUE
03357
03358 END
03359 SUBROUTINE DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIM3,AMPLIT,HV)
03360
03361
03362
03363
03364
03365
03366
03367
03368
03369 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03370 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03371 * ,AMK,AMKZ,AMKST,GAMKST
03372
03373 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03374 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03375 * ,AMK,AMKZ,AMKST,GAMKST
03376 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03377 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03378 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4)
03379 REAL PAA(4),VEC1(4),VEC2(4),VEC3(4),VEC4(4),VEC5(4)
03380 REAL PIVEC(4),PIAKS(4),HVM(4)
03381 REAL FNORM(0:7),COEF(1:5,0:7)
03382 COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5,UROJ
03383 COMPLEX F1,F2,F3,F4,F5
03384 EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5
03385 DATA PI /3.141592653589793238462643/
03386 DATA ICONT /0/
03387
03388 DATA FPI /93.3E-3/
03389 IF (ICONT.EQ.0) THEN
03390 ICONT=1
03391 UROJ=CMPLX(0.0,1.0)
03392 DWAPI0=SQRT(2.0)
03393 FNORM(0)=CCABIB/FPI
03394 FNORM(1)=CCABIB/FPI
03395 FNORM(2)=CCABIB/FPI
03396 FNORM(3)=CCABIB/FPI
03397 FNORM(4)=SCABIB/FPI/DWAPI0
03398 FNORM(5)=SCABIB/FPI
03399 FNORM(6)=SCABIB/FPI
03400 FNORM(7)=CCABIB/FPI
03401
03402 COEF(1,0)= 2.0*SQRT(2.)/3.0
03403 COEF(2,0)=-2.0*SQRT(2.)/3.0
03404
03405 COEF(3,0)= 2.0*SQRT(2.)/3.0
03406 COEF(4,0)= FPI
03407 COEF(5,0)= 0.0
03408
03409 COEF(1,1)=-SQRT(2.)/3.0
03410 COEF(2,1)= SQRT(2.)/3.0
03411 COEF(3,1)= 0.0
03412 COEF(4,1)= FPI
03413 COEF(5,1)= SQRT(2.)
03414
03415 COEF(1,2)=-SQRT(2.)/3.0
03416 COEF(2,2)= SQRT(2.)/3.0
03417 COEF(3,2)= 0.0
03418 COEF(4,2)= 0.0
03419 COEF(5,2)=-SQRT(2.)
03420
03421
03422 COEF(1,3)= 1./3.
03423 COEF(2,3)=-2./3.
03424 COEF(3,3)= 2./3.
03425 COEF(4,3)= 0.0
03426 COEF(5,3)= 0.0
03427
03428 COEF(1,4)= 1.0/SQRT(2.)/3.0
03429 COEF(2,4)=-1.0/SQRT(2.)/3.0
03430 COEF(3,4)= 0.0
03431 COEF(4,4)= 0.0
03432 COEF(5,4)= 0.0
03433
03434 COEF(1,5)=-SQRT(2.)/3.0
03435 COEF(2,5)= SQRT(2.)/3.0
03436 COEF(3,5)= 0.0
03437 COEF(4,5)= 0.0
03438 COEF(5,5)=-SQRT(2.)
03439
03440
03441 COEF(1,6)= 1./3.
03442 COEF(2,6)=-2./3.
03443 COEF(3,6)= 2./3.
03444 COEF(4,6)= 0.0
03445 COEF(5,6)=-2.0
03446
03447 COEF(1,7)= 0.0
03448 COEF(2,7)= 0.0
03449 COEF(3,7)= 0.0
03450 COEF(4,7)= 0.0
03451 COEF(5,7)=-SQRT(2.0/3.0)
03452
03453 ENDIF
03454
03455 DO 10 I=1,4
03456 10 PAA(I)=PIM1(I)+PIM2(I)+PIM3(I)
03457 XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2))
03458 XMRO1 =SQRT(ABS((PIM3(4)+PIM2(4))**2-(PIM3(1)+PIM2(1))**2
03459 $ -(PIM3(2)+PIM2(2))**2-(PIM3(3)+PIM2(3))**2))
03460 XMRO2 =SQRT(ABS((PIM3(4)+PIM1(4))**2-(PIM3(1)+PIM1(1))**2
03461 $ -(PIM3(2)+PIM1(2))**2-(PIM3(3)+PIM1(3))**2))
03462 XMRO3 =SQRT(ABS((PIM1(4)+PIM2(4))**2-(PIM1(1)+PIM2(1))**2
03463 $ -(PIM1(2)+PIM2(2))**2-(PIM1(3)+PIM2(3))**2))
03464
03465 PROD1 =PAA(4)*(PIM2(4)-PIM3(4))-PAA(1)*(PIM2(1)-PIM3(1))
03466 $ -PAA(2)*(PIM2(2)-PIM3(2))-PAA(3)*(PIM2(3)-PIM3(3))
03467 PROD2 =PAA(4)*(PIM3(4)-PIM1(4))-PAA(1)*(PIM3(1)-PIM1(1))
03468 $ -PAA(2)*(PIM3(2)-PIM1(2))-PAA(3)*(PIM3(3)-PIM1(3))
03469 PROD3 =PAA(4)*(PIM1(4)-PIM2(4))-PAA(1)*(PIM1(1)-PIM2(1))
03470 $ -PAA(2)*(PIM1(2)-PIM2(2))-PAA(3)*(PIM1(3)-PIM2(3))
03471 DO 40 I=1,4
03472 VEC1(I)= PIM2(I)-PIM3(I) -PAA(I)*PROD1/XMAA**2
03473 VEC2(I)= PIM3(I)-PIM1(I) -PAA(I)*PROD2/XMAA**2
03474 VEC3(I)= PIM1(I)-PIM2(I) -PAA(I)*PROD3/XMAA**2
03475 40 VEC4(I)= PIM1(I)+PIM2(I)+PIM3(I)
03476 CALL PROD5(PIM1,PIM2,PIM3,VEC5)
03477
03478
03479
03480 F1 = CMPLX(COEF(1,MNUM))*FORM1(MNUM,XMAA**2,XMRO1**2,XMRO2**2)
03481 F2 = CMPLX(COEF(2,MNUM))*FORM2(MNUM,XMAA**2,XMRO2**2,XMRO1**2)
03482 F3 = CMPLX(COEF(3,MNUM))*FORM3(MNUM,XMAA**2,XMRO3**2,XMRO1**2)
03483 F4 = (-1.0*UROJ)*
03484 $CMPLX(COEF(4,MNUM))*FORM4(MNUM,XMAA**2,XMRO1**2,XMRO2**2,XMRO3**2)
03485 F5 = (-1.0)*UROJ/4.0/PI**2/FPI**2*
03486 $ CMPLX(COEF(5,MNUM))*FORM5(MNUM,XMAA**2,XMRO1**2,XMRO2**2)
03487
03488 DO 45 I=1,4
03489 HADCUR(I)= CMPLX(FNORM(MNUM)) * (
03490 $ CMPLX(VEC1(I))*F1+CMPLX(VEC2(I))*F2+CMPLX(VEC3(I))*F3+
03491 $ CMPLX(VEC4(I))*F4+CMPLX(VEC5(I))*F5)
03492 45 CONTINUE
03493
03494
03495 CALL CLVEC(HADCUR,PN,PIVEC)
03496 CALL CLAXI(HADCUR,PN,PIAKS)
03497 CALL CLNUT(HADCUR,BRAKM,HVM)
03498
03499 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
03500 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
03501 AMPLIT=(GFERMI)**2*BRAK/2.
03502 IF (MNUM.GE.9) THEN
03503 PRINT *, 'MNUM=',MNUM
03504 ZNAK=-1.0
03505 XM1=0.0
03506 XM2=0.0
03507 XM3=0.0
03508 DO 77 K=1,4
03509 IF (K.EQ.4) ZNAK=1.0
03510 XM1=ZNAK*PIM1(K)**2+XM1
03511 XM2=ZNAK*PIM2(K)**2+XM2
03512 XM3=ZNAK*PIM3(K)**2+XM3
03513 77 PRINT *, 'PIM1=',PIM1(K),'PIM2=',PIM2(K),'PIM3=',PIM3(K)
03514 PRINT *, 'XM1=',SQRT(XM1),'XM2=',SQRT(XM2),'XM3=',SQRT(XM3)
03515 PRINT *, '************************************************'
03516 ENDIF
03517
03518 DO 90 I=1,3
03519 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
03520 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
03521
03522 HV(I)=-HV(I)/BRAK
03523 90 CONTINUE
03524 END
03525 SUBROUTINE PROD5(P1,P2,P3,PIA)
03526
03527
03528
03529
03530
03531 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
03532 COMMON / IDFC / IDFF
03533 REAL PIA(4),P1(4),P2(4),P3(4)
03534 DET2(I,J)=P1(I)*P2(J)-P2(I)*P1(J)
03535
03536 IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN
03537 SIGN= IDFF/ABS(IDFF)
03538 ELSEIF (KTOM.EQ.2) THEN
03539 SIGN=-IDFF/ABS(IDFF)
03540 ELSE
03541 PRINT *, 'STOP IN PROD5: KTOM=',KTOM
03542 STOP
03543 ENDIF
03544
03545
03546
03547 PIA(1)= -P3(3)*DET2(2,4)+P3(4)*DET2(2,3)+P3(2)*DET2(3,4)
03548 PIA(2)= -P3(4)*DET2(1,3)+P3(3)*DET2(1,4)-P3(1)*DET2(3,4)
03549 PIA(3)= P3(4)*DET2(1,2)-P3(2)*DET2(1,4)+P3(1)*DET2(2,4)
03550 PIA(4)= P3(3)*DET2(1,2)-P3(2)*DET2(1,3)+P3(1)*DET2(2,3)
03551
03552 DO 20 I=1,4
03553 20 PIA(I)=PIA(I)*SIGN
03554 END
03555
03556 SUBROUTINE DEXNEW(MODE,ISGN,POL,PNU,PAA,PNPI,JNPI)
03557
03558
03559
03560
03561
03562
03563
03564
03565
03566
03567 COMMON / INOUT / INUT,IOUT
03568 REAL POL(4),HV(4),PAA(4),PNU(4),PNPI(4,9),RN(1)
03569 DATA IWARM/0/
03570
03571 IF(MODE.EQ.-1) THEN
03572
03573 IWARM=1
03574 CALL DADNEW( -1,ISGN,HV,PNU,PAA,PNPI,JDUMM)
03575
03576
03577 ELSEIF(MODE.EQ. 0) THEN
03578
03579 300 CONTINUE
03580 IF(IWARM.EQ.0) GOTO 902
03581 CALL DADNEW( 0,ISGN,HV,PNU,PAA,PNPI,JNPI)
03582 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
03583
03584 CALL RANMAR(RN,1)
03585 IF(RN(1).GT.WT) GOTO 300
03586
03587 ELSEIF(MODE.EQ. 1) THEN
03588
03589 CALL DADNEW( 1,ISGN,HV,PNU,PAA,PNPI,JDUMM)
03590
03591 ENDIF
03592
03593 RETURN
03594 902 WRITE(IOUT, 9020)
03595 9020 FORMAT(' ----- DEXNEW: LACK OF INITIALISATION')
03596 STOP
03597 END
03598 SUBROUTINE DADNEW(MODE,ISGN,HV,PNU,PWB,PNPI,JNPI)
03599
03600 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03601 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03602 * ,AMK,AMKZ,AMKST,GAMKST
03603
03604 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03605 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03606 * ,AMK,AMKZ,AMKST,GAMKST
03607 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03608 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03609 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
03610 REAL*4 GAMPMC ,GAMPER
03611 COMMON / INOUT / INUT,IOUT
03612 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
03613 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
03614 & ,NAMES
03615 CHARACTER NAMES(NMODE)*31
03616
03617 REAL*4 PNU(4),PWB(4),PNPI(4,9),HV(4),HHV(4)
03618 REAL*4 PDUM1(4),PDUM2(4),PDUMI(4,9)
03619 REAL*4 RRR(3)
03620 REAL*4 WTMAX(NMODE)
03621 REAL*8 SWT(NMODE),SSWT(NMODE)
03622 DIMENSION NEVRAW(NMODE),NEVOVR(NMODE),NEVACC(NMODE)
03623
03624 DATA PI /3.141592653589793238462643/
03625 DATA IWARM/0/
03626
03627 IF(MODE.EQ.-1) THEN
03628
03629
03630 NMOD=NMODE
03631 IWARM=1
03632
03633 DO 1 JNPI=1,NMOD
03634 NEVRAW(JNPI)=0
03635 NEVACC(JNPI)=0
03636 NEVOVR(JNPI)=0
03637 SWT(JNPI)=0
03638 SSWT(JNPI)=0
03639 WTMAX(JNPI)=-1.
03640
03641
03642 NTRIALS = 500
03643 IF (JNPI.LE.NM4) THEN
03644 A = PKORB(3,37+JNPI)
03645 IF (A.LT.0.) THEN
03646 NTRIALS = 10000
03647 ELSE
03648 NTRIALS = 0
03649 WTMAX(JNPI)=A
03650 END IF
03651 END IF
03652 DO I=1,NTRIALS
03653 IF (JNPI.LE.0) THEN
03654 GOTO 903
03655 ELSEIF(JNPI.LE.NM4) THEN
03656 CALL DPH4PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI)
03657 ELSEIF(JNPI.LE.NM4+NM5) THEN
03658 CALL DPH5PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI)
03659 ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN
03660 CALL DPHNPI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI)
03661 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN
03662 INUM=JNPI-NM4-NM5-NM6
03663 CALL DPHSPK(WT,HV,PDUM1,PDUM2,PDUMI,INUM)
03664 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN
03665 INUM=JNPI-NM4-NM5-NM6-NM3
03666 CALL DPHSRK(WT,HV,PDUM1,PDUM2,PDUMI,INUM)
03667 ELSE
03668 GOTO 903
03669 ENDIF
03670 IF(WT.GT.WTMAX(JNPI)/1.2) WTMAX(JNPI)=WT*1.2
03671 ENDDO
03672
03673
03674
03675 1 CONTINUE
03676 WRITE(IOUT,7005)
03677
03678 ELSEIF(MODE.EQ. 0) THEN
03679
03680 IF(IWARM.EQ.0) GOTO 902
03681
03682 300 CONTINUE
03683 IF (JNPI.LE.0) THEN
03684 GOTO 903
03685 ELSEIF(JNPI.LE.NM4) THEN
03686 CALL DPH4PI(WT,HHV,PNU,PWB,PNPI,JNPI)
03687 ELSEIF(JNPI.LE.NM4+NM5) THEN
03688 CALL DPH5PI(WT,HHV,PNU,PWB,PNPI,JNPI)
03689 ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN
03690 CALL DPHNPI(WT,HHV,PNU,PWB,PNPI,JNPI)
03691 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN
03692 INUM=JNPI-NM4-NM5-NM6
03693 CALL DPHSPK(WT,HHV,PNU,PWB,PNPI,INUM)
03694 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN
03695 INUM=JNPI-NM4-NM5-NM6-NM3
03696 CALL DPHSRK(WT,HHV,PNU,PWB,PNPI,INUM)
03697 ELSE
03698 GOTO 903
03699 ENDIF
03700 DO I=1,4
03701 HV(I)=-ISGN*HHV(I)
03702 ENDDO
03703
03704 NEVRAW(JNPI)=NEVRAW(JNPI)+1
03705 SWT(JNPI)=SWT(JNPI)+WT
03706
03707
03708 SSWT(JNPI)=SSWT(JNPI)+dble(WT)**2
03709
03710 CALL RANMAR(RRR,3)
03711 RN=RRR(1)
03712 IF(WT.GT.WTMAX(JNPI)) NEVOVR(JNPI)=NEVOVR(JNPI)+1
03713 IF(RN*WTMAX(JNPI).GT.WT) GOTO 300
03714
03715 COSTHE=-1.+2.*RRR(2)
03716 THET=ACOS(COSTHE)
03717 PHI =2*PI*RRR(3)
03718 CALL ROTOR2(THET,PNU,PNU)
03719 CALL ROTOR3( PHI,PNU,PNU)
03720 CALL ROTOR2(THET,PWB,PWB)
03721 CALL ROTOR3( PHI,PWB,PWB)
03722 CALL ROTOR2(THET,HV,HV)
03723 CALL ROTOR3( PHI,HV,HV)
03724 ND=MULPIK(JNPI)
03725 DO 301 I=1,ND
03726 CALL ROTOR2(THET,PNPI(1,I),PNPI(1,I))
03727 CALL ROTOR3( PHI,PNPI(1,I),PNPI(1,I))
03728 301 CONTINUE
03729 NEVACC(JNPI)=NEVACC(JNPI)+1
03730
03731 ELSEIF(MODE.EQ. 1) THEN
03732
03733 DO 500 JNPI=1,NMOD
03734 IF(NEVRAW(JNPI).EQ.0) GOTO 500
03735 PARGAM=SWT(JNPI)/FLOAT(NEVRAW(JNPI)+1)
03736 ERROR=0
03737 IF(NEVRAW(JNPI).NE.0)
03738 & ERROR=SQRT(SSWT(JNPI)/SWT(JNPI)**2-1./FLOAT(NEVRAW(JNPI)))
03739 RAT=PARGAM/GAMEL
03740 WRITE(IOUT, 7010) NAMES(JNPI),
03741 & NEVRAW(JNPI),NEVACC(JNPI),NEVOVR(JNPI),PARGAM,RAT,ERROR
03742
03743 GAMPMC(8+JNPI-1)=RAT
03744 GAMPER(8+JNPI-1)=ERROR
03745
03746 500 CONTINUE
03747 ENDIF
03748
03749 RETURN
03750 7003 FORMAT(///1X,15(5H*****)
03751 $ /,' *', 25X,'******** DADNEW INITIALISATION ********',9X,1H*
03752 $ )
03753 7004 FORMAT(' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*/)
03754 7005 FORMAT(
03755 $ /,1X,15(5H*****)/)
03756 7010 FORMAT(///1X,15(5H*****)
03757 $ /,' *', 25X,'******** DADNEW FINAL REPORT ******** ',9X,1H*
03758 $ /,' *', 25X,'CHANNEL:',A31 ,9X,1H*
03759 $ /,' *',I20 ,5X,'NEVRAW = NO. OF DECAYS TOTAL ',9X,1H*
03760 $ /,' *',I20 ,5X,'NEVACC = NO. OF DECAYS ACCEPTED ',9X,1H*
03761 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
03762 $ /,' *',E20.5,5X,'PARTIAL WTDTH IN GEV UNITS ',9X,1H*
03763 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
03764 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
03765 $ /,1X,15(5H*****)/)
03766 902 WRITE(IOUT, 9020)
03767 9020 FORMAT(' ----- DADNEW: LACK OF INITIALISATION')
03768 STOP
03769 903 WRITE(IOUT, 9030) JNPI,MODE
03770 9030 FORMAT(' ----- DADNEW: WRONG JNPI',2I5)
03771 STOP
03772 END
03773
03774
03775 SUBROUTINE DPH4PI(DGAMT,HV,PN,PAA,PMULT,JNPI)
03776
03777
03778
03779
03780 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03781 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03782 * ,AMK,AMKZ,AMKST,GAMKST
03783
03784 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03785 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03786 * ,AMK,AMKZ,AMKST,GAMKST
03787 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03788 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03789 REAL HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4),PMULT(4,9)
03790 REAL PR(4),PIZ(4)
03791 REAL*4 RRR(9)
03792 REAL*8 UU,FF,FF1,FF2,FF3,FF4,GG1,GG2,GG3,GG4,RR
03793 DATA PI /3.141592653589793238462643/
03794 DATA ICONT /0/
03795 XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z))
03796
03797
03798
03799
03800 PHSPAC=1./2**23/PI**11
03801 PHSP=1./2**5/PI**2
03802 IF (JNPI.EQ.1) THEN
03803 PREZ=0.7
03804 AMP1=AMPI
03805 AMP2=AMPI
03806 AMP3=AMPI
03807 AMP4=AMPIZ
03808 AMRX=PKORB(1,14)
03809 GAMRX=PKORB(2,14)
03810
03811
03812
03813
03814 AMROP =1.2
03815 GAMROP=.46
03816 ELSE
03817 PREZ=0.0
03818 AMP1=AMPIZ
03819 AMP2=AMPIZ
03820 AMP3=AMPIZ
03821 AMP4=AMPI
03822 AMRX=1.4
03823 GAMRX=.6
03824 AMROP =AMRX
03825 GAMROP=GAMRX
03826
03827 ENDIF
03828 RRB=0.3
03829 CALL CHOICE(100+JNPI,RRB,ICHAN,PROB1,PROB2,PROB3,
03830 $ AMROP,GAMROP,AMRX,GAMRX,AMRB,GAMRB)
03831 PREZ=PROB1+PROB2
03832
03833 PT(1)=0.
03834 PT(2)=0.
03835 PT(3)=0.
03836 PT(4)=AMTAU
03837
03838 CALL RANMAR(RRR,9)
03839
03840
03841
03842
03843 RR1=RRR(6)
03844 AMS1=(AMP1+AMP2+AMP3+AMP4)**2
03845 AMS2=(AMTAU-AMNUTA)**2
03846 ALP1=ATAN((AMS1-AMROP**2)/AMROP/GAMROP)
03847 ALP2=ATAN((AMS2-AMROP**2)/AMROP/GAMROP)
03848 ALP=ALP1+RR1*(ALP2-ALP1)
03849 AM4SQ =AMROP**2+AMROP*GAMROP*TAN(ALP)
03850 AM4 =SQRT(AM4SQ)
03851 PHSPAC=PHSPAC*
03852 $ ((AM4SQ-AMROP**2)**2+(AMROP*GAMROP)**2)/(AMROP*GAMROP)
03853 PHSPAC=PHSPAC*(ALP2-ALP1)
03854
03855
03856 RR1=RRR(1)
03857 AMS1=(AMP2+AMP3+AMP4)**2
03858 AMS2=(AM4-AMP1)**2
03859 IF (RRR(9).GT.PREZ) THEN
03860 AM3SQ=AMS1+ RR1*(AMS2-AMS1)
03861 AM3 =SQRT(AM3SQ)
03862
03863 FF1=AMS2-AMS1
03864 ELSE
03865
03866 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
03867 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
03868 ALP=ALP1+RR1*(ALP2-ALP1)
03869 AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP)
03870 AM3 =SQRT(AM3SQ)
03871
03872 FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
03873 FF1=FF1*(ALP2-ALP1)
03874 ENDIF
03875
03876 RR2=RRR(2)
03877 AMS1=(AMP3+AMP4)**2
03878 AMS2=(AM3-AMP2)**2
03879
03880 AM2SQ=AMS1+ RR2*(AMS2-AMS1)
03881 AM2 =SQRT(AM2SQ)
03882
03883 FF2=(AMS2-AMS1)
03884
03885 ENQ1=(AM2SQ-AMP3**2+AMP4**2)/(2*AM2)
03886 ENQ2=(AM2SQ+AMP3**2-AMP4**2)/(2*AM2)
03887 PPI= ENQ1**2-AMP4**2
03888 PPPI=SQRT(ABS(ENQ1**2-AMP4**2))
03889 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2)
03890
03891 CALL SPHERA(PPPI,PIZ)
03892 PIZ(4)=ENQ1
03893
03894 DO 30 I=1,3
03895 30 PIPL(I)=-PIZ(I)
03896 PIPL(4)=ENQ2
03897
03898
03899 PR(1)=0
03900 PR(2)=0
03901 PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP2**2)
03902 PR(3)= SQRT(ABS(PR(4)**2-AM2**2))
03903 PPI = PR(4)**2-AM2**2
03904
03905 PIM1(1)=0
03906 PIM1(2)=0
03907 PIM1(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP2**2)
03908 PIM1(3)=-PR(3)
03909
03910 FF3=(4*PI)*(2*PR(3)/AM3)
03911
03912 EXE=(PR(4)+PR(3))/AM2
03913 CALL BOSTR3(EXE,PIZ,PIZ)
03914 CALL BOSTR3(EXE,PIPL,PIPL)
03915 RR3=RRR(3)
03916 RR4=RRR(4)
03917 THET =ACOS(-1.+2*RR3)
03918 PHI = 2*PI*RR4
03919 CALL ROTPOL(THET,PHI,PIPL)
03920 CALL ROTPOL(THET,PHI,PIM1)
03921 CALL ROTPOL(THET,PHI,PIZ)
03922 CALL ROTPOL(THET,PHI,PR)
03923
03924
03925 PR(1)=0
03926 PR(2)=0
03927 PR(4)=1./(2*AM4)*(AM4**2+AM3**2-AMP1**2)
03928 PR(3)= SQRT(ABS(PR(4)**2-AM3**2))
03929 PPI = PR(4)**2-AM3**2
03930
03931 PIM2(1)=0
03932 PIM2(2)=0
03933 PIM2(4)=1./(2*AM4)*(AM4**2-AM3**2+AMP1**2)
03934 PIM2(3)=-PR(3)
03935
03936 FF4=(4*PI)*(2*PR(3)/AM4)
03937
03938 EXE=(PR(4)+PR(3))/AM3
03939 CALL BOSTR3(EXE,PIZ,PIZ)
03940 CALL BOSTR3(EXE,PIPL,PIPL)
03941 CALL BOSTR3(EXE,PIM1,PIM1)
03942 RR3=RRR(7)
03943 RR4=RRR(8)
03944 THET =ACOS(-1.+2*RR3)
03945 PHI = 2*PI*RR4
03946 CALL ROTPOL(THET,PHI,PIPL)
03947 CALL ROTPOL(THET,PHI,PIM1)
03948 CALL ROTPOL(THET,PHI,PIM2)
03949 CALL ROTPOL(THET,PHI,PIZ)
03950 CALL ROTPOL(THET,PHI,PR)
03951
03952
03953
03954 PAA(1)=0
03955 PAA(2)=0
03956 PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM4**2)
03957 PAA(3)= SQRT(ABS(PAA(4)**2-AM4**2))
03958 PPI = PAA(4)**2-AM4**2
03959 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU)
03960 PHSP=PHSP*(4*PI)*(2*PAA(3)/AMTAU)
03961
03962 PN(1)=0
03963 PN(2)=0
03964 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM4**2)
03965 PN(3)=-PAA(3)
03966
03967 IF(RRR(9).LE.0.5*PREZ) THEN
03968 DO 72 I=1,4
03969 X=PIM1(I)
03970 PIM1(I)=PIM2(I)
03971 72 PIM2(I)=X
03972 ENDIF
03973
03974
03975
03976 AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2
03977 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2
03978 AMS2=(AM4-AMP2)**2
03979 AMS1=(AMP1+AMP3+AMP4)**2
03980 FF1=(AMS2-AMS1)
03981 AMS1=(AMP3+AMP4)**2
03982 AMS2=(SQRT(AM3SQ)-AMP1)**2
03983 FF2=AMS2-AMS1
03984 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ)
03985 FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2)
03986 UU=FF1*FF2*FF3*FF4
03987
03988 AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2
03989 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2
03990 AMS2=(AM4-AMP2)**2
03991 AMS1=(AMP1+AMP3+AMP4)**2
03992 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
03993 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
03994 FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
03995 FF1=FF1*(ALP2-ALP1)
03996 AMS1=(AMP3+AMP4)**2
03997 AMS2=(SQRT(AM3SQ)-AMP1)**2
03998 FF2=AMS2-AMS1
03999 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ)
04000 FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2)
04001 FF=FF1*FF2*FF3*FF4
04002
04003 AM3SQ=(PIM2(4)+PIZ(4)+PIPL(4))**2-(PIM2(3)+PIZ(3)+PIPL(3))**2
04004 $ -(PIM2(2)+PIZ(2)+PIPL(2))**2-(PIM2(1)+PIZ(1)+PIPL(1))**2
04005 AMS2=(AM4-AMP1)**2
04006 AMS1=(AMP2+AMP3+AMP4)**2
04007 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
04008 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
04009 GG1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
04010 GG1=GG1*(ALP2-ALP1)
04011 AMS1=(AMP3+AMP4)**2
04012 AMS2=(SQRT(AM3SQ)-AMP2)**2
04013 GG2=AMS2-AMS1
04014 GG3=(4*PI)*(XLAM(AM2**2,AMP2**2,AM3SQ)/AM3SQ)
04015 GG4=(4*PI)*(XLAM(AM3SQ,AMP1**2,AM4**2)/AM4**2)
04016 GG=GG1*GG2*GG3*GG4
04017
04018 IF ( ( (FF+GG)*UU+FF*GG ).GT.0.0D0) THEN
04019 RR=FF*GG*UU/(0.5*PREZ*(FF+GG)*UU+(1.0-PREZ)*FF*GG)
04020 PHSPAC=PHSPAC*RR
04021 ELSE
04022 PHSPAC=0.0
04023 ENDIF
04024
04025 IF (JNPI.EQ.1) THEN
04026 RR5= RRR(5)
04027 IF(RR5.LE.0.5) THEN
04028 DO 70 I=1,4
04029 X=PIM1(I)
04030 PIM1(I)=PIM2(I)
04031 70 PIM2(I)=X
04032 ENDIF
04033 PHSPAC=PHSPAC/2.
04034 ELSE
04035
04036 RR5= RRR(5)
04037 IF(RR5.LE.0.5) THEN
04038 DO 71 I=1,4
04039 X=PIM1(I)
04040 PIM1(I)=PIM2(I)
04041 71 PIM2(I)=X
04042 ENDIF
04043 PHSPAC=PHSPAC/6.
04044 ENDIF
04045
04046
04047 EXE=(PAA(4)+PAA(3))/AM4
04048 CALL BOSTR3(EXE,PIZ,PIZ)
04049 CALL BOSTR3(EXE,PIPL,PIPL)
04050 CALL BOSTR3(EXE,PIM1,PIM1)
04051 CALL BOSTR3(EXE,PIM2,PIM2)
04052 CALL BOSTR3(EXE,PR,PR)
04053
04054
04055
04056
04057
04058
04059
04060 IF (JNPI.EQ.1) THEN
04061 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV)
04062 ELSEIF (JNPI.EQ.2) THEN
04063 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIPL,PIZ,AMPLIT,HV)
04064 ENDIF
04065 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04066
04067
04068 DO 77 K=1,4
04069 PMULT(K,1)=PIM1(K)
04070 PMULT(K,2)=PIM2(K)
04071 PMULT(K,3)=PIPL(K)
04072 PMULT(K,4)=PIZ (K)
04073 77 CONTINUE
04074 END
04075 SUBROUTINE DAM4PI(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV)
04076
04077
04078
04079
04080
04081
04082
04083
04084
04085 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04086 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04087 * ,AMK,AMKZ,AMKST,GAMKST
04088
04089 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04090 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04091 * ,AMK,AMKZ,AMKST,GAMKST
04092 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04093 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04094 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4),PIM4(4)
04095 REAL PIVEC(4),PIAKS(4),HVM(4)
04096 COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5
04097 EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5
04098 DATA PI /3.141592653589793238462643/
04099 DATA ICONT /0/
04100
04101 CALL CURR_CLEO(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR)
04102
04103
04104 CALL CLVEC(HADCUR,PN,PIVEC)
04105 CALL CLAXI(HADCUR,PN,PIAKS)
04106 CALL CLNUT(HADCUR,BRAKM,HVM)
04107
04108 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
04109 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
04110 AMPLIT=(CCABIB*GFERMI)**2*BRAK/2.
04111
04112 DO 90 I=1,3
04113 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
04114 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
04115
04116 IF (BRAK.NE.0.0)
04117 &HV(I)=-HV(I)/BRAK
04118 90 CONTINUE
04119 END
04120 SUBROUTINE DPH5PI(DGAMT,HV,PN,PAA,PMULT,JNPI)
04121
04122
04123
04124
04125 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04126 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04127 * ,AMK,AMKZ,AMKST,GAMKST
04128
04129 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04130 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04131
04132
04133 * ,AMK,AMKZ,AMKST,GAMKST
04134 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04135 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04136 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
04137 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04138 & ,NAMES
04139 CHARACTER NAMES(NMODE)*31
04140 REAL HV(4),PT(4),PN(4),PAA(4),PMULT(4,9)
04141 REAL*4 PR(4),PI1(4),PI2(4),PI3(4),PI4(4),PI5(4)
04142 REAL*8 AMP1,AMP2,AMP3,AMP4,AMP5,ams1,ams2,amom,gamom
04143 REAL*8 AM5SQ,AM4SQ,AM3SQ,AM2SQ,AM5,AM4,AM3
04144 REAL*4 RRR(10)
04145 REAL*8 gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2
04146 REAL*8 XM,AM,GAMMA
04147
04148 real*8 phspac
04149
04150 DATA PI /3.141592653589793238462643/
04151 DATA ICONT /0/
04152 data fpi /93.3e-3/
04153
04154 COMPLEX BWIGN
04155
04156 BWIGN(XM,AM,GAMMA)=XM**2/CMPLX(XM**2-AM**2,GAMMA*AM)
04157
04158
04159 AMOM=.782
04160 GAMOM=0.0085
04161
04162
04163
04164 PHSPAC=1./2**29/PI**14
04165
04166
04167 AMP1=DCDMAS(IDFFIN(1,JNPI))
04168 AMP2=DCDMAS(IDFFIN(2,JNPI))
04169 AMP3=DCDMAS(IDFFIN(3,JNPI))
04170 AMP4=DCDMAS(IDFFIN(4,JNPI))
04171 AMP5=DCDMAS(IDFFIN(5,JNPI))
04172
04173
04174 PT(1)=0.
04175 PT(2)=0.
04176 PT(3)=0.
04177 PT(4)=AMTAU
04178
04179 CALL RANMAR(RRR,10)
04180
04181
04182
04183
04184
04185 rr1=rrr(10)
04186 ams1=(amp1+amp2+amp3+amp4+amp5)**2
04187 ams2=(amtau-amnuta)**2
04188 am5sq=ams1+ rr1*(ams2-ams1)
04189 am5 =sqrt(am5sq)
04190 phspac=phspac*(ams2-ams1)
04191
04192
04193
04194 rr1=rrr(9)
04195 ams1=(amp2+amp3+amp4+amp5)**2
04196 ams2=(am5-amp1)**2
04197 am4sq=ams1+ rr1*(ams2-ams1)
04198 am4 =sqrt(am4sq)
04199 gg1=ams2-ams1
04200
04201
04202
04203 rr1=rrr(1)
04204 ams1=(amp2+amp3+amp4)**2
04205 ams2=(am4-amp5)**2
04206 alp1=atan((ams1-amom**2)/amom/gamom)
04207 alp2=atan((ams2-amom**2)/amom/gamom)
04208 alp=alp1+rr1*(alp2-alp1)
04209 am3sq =amom**2+amom*gamom*tan(alp)
04210 am3 =sqrt(am3sq)
04211
04212 gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom)
04213 gg2=gg2*(alp2-alp1)
04214
04215
04216
04217
04218
04219
04220
04221 rr2=rrr(2)
04222 ams1=(amp3+amp4)**2
04223 ams2=(am3-amp2)**2
04224
04225 am2sq=ams1+ rr2*(ams2-ams1)
04226 am2 =sqrt(am2sq)
04227
04228 gg3=ams2-ams1
04229
04230
04231 enq1=(am2sq+amp3**2-amp4**2)/(2*am2)
04232 enq2=(am2sq-amp3**2+amp4**2)/(2*am2)
04233 ppi= enq1**2-amp3**2
04234 pppi=sqrt(abs(enq1**2-amp3**2))
04235 ff1=(4*pi)*(2*pppi/am2)
04236
04237 call sphera(pppi,pi3)
04238 pi3(4)=enq1
04239
04240 do 30 i=1,3
04241 30 pi4(i)=-pi3(i)
04242 pi4(4)=enq2
04243
04244
04245
04246 pr(1)=0
04247 pr(2)=0
04248 pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)
04249 pr(3)= sqrt(abs(pr(4)**2-am2**2))
04250 ppi = pr(4)**2-am2**2
04251
04252 pi2(1)=0
04253 pi2(2)=0
04254 pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)
04255 pi2(3)=-pr(3)
04256
04257 ff2=(4*pi)*(2*pr(3)/am3)
04258
04259 exe=(pr(4)+pr(3))/am2
04260 call bostr3(exe,pi3,pi3)
04261 call bostr3(exe,pi4,pi4)
04262 rr3=rrr(3)
04263 rr4=rrr(4)
04264 thet =acos(-1.+2*rr3)
04265 phi = 2*pi*rr4
04266 call rotpol(thet,phi,pi2)
04267 call rotpol(thet,phi,pi3)
04268 call rotpol(thet,phi,pi4)
04269
04270
04271
04272 pr(1)=0
04273 pr(2)=0
04274 pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2)
04275 pr(3)= sqrt(abs(pr(4)**2-am3**2))
04276 ppi = pr(4)**2-am3**2
04277
04278 pi5(1)=0
04279 pi5(2)=0
04280 pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2)
04281 pi5(3)=-pr(3)
04282
04283 ff3=(4*pi)*(2*pr(3)/am4)
04284
04285 exe=(pr(4)+pr(3))/am3
04286 call bostr3(exe,pi2,pi2)
04287 call bostr3(exe,pi3,pi3)
04288 call bostr3(exe,pi4,pi4)
04289 rr3=rrr(5)
04290 rr4=rrr(6)
04291 thet =acos(-1.+2*rr3)
04292 phi = 2*pi*rr4
04293 call rotpol(thet,phi,pi2)
04294 call rotpol(thet,phi,pi3)
04295 call rotpol(thet,phi,pi4)
04296 call rotpol(thet,phi,pi5)
04297
04298
04299
04300 pr(1)=0
04301 pr(2)=0
04302 pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2)
04303 pr(3)= sqrt(abs(pr(4)**2-am4**2))
04304 ppi = pr(4)**2-am4**2
04305
04306 pi1(1)=0
04307 pi1(2)=0
04308 pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2)
04309 pi1(3)=-pr(3)
04310
04311 ff4=(4*pi)*(2*pr(3)/am5)
04312
04313 exe=(pr(4)+pr(3))/am4
04314 call bostr3(exe,pi2,pi2)
04315 call bostr3(exe,pi3,pi3)
04316 call bostr3(exe,pi4,pi4)
04317 call bostr3(exe,pi5,pi5)
04318 rr3=rrr(7)
04319 rr4=rrr(8)
04320 thet =acos(-1.+2*rr3)
04321 phi = 2*pi*rr4
04322 call rotpol(thet,phi,pi1)
04323 call rotpol(thet,phi,pi2)
04324 call rotpol(thet,phi,pi3)
04325 call rotpol(thet,phi,pi4)
04326 call rotpol(thet,phi,pi5)
04327
04328
04329
04330 paa(1)=0
04331 paa(2)=0
04332
04333
04334
04335 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq)
04336 paa(3)= sqrt(abs(paa(4)**2-am5sq))
04337 ppi = paa(4)**2-am5sq
04338 phspac=phspac*(4*pi)*(2*paa(3)/amtau)
04339
04340 pn(1)=0
04341 pn(2)=0
04342 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2)
04343 pn(3)=-paa(3)
04344
04345 phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4
04346
04347
04348
04349 exe=(paa(4)+paa(3))/am5
04350 call bostr3(exe,pi1,pi1)
04351 call bostr3(exe,pi2,pi2)
04352 call bostr3(exe,pi3,pi3)
04353 call bostr3(exe,pi4,pi4)
04354 call bostr3(exe,pi5,pi5)
04355
04356
04357
04358
04359
04360 PXQ=AMTAU*PAA(4)
04361 PXN=AMTAU*PN(4)
04362 QXN=PAA(4)*PN(4)-PAA(1)*PN(1)-PAA(2)*PN(2)-PAA(3)*PN(3)
04363 BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AM5SQ*PXN)
04364 & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AM5SQ
04365 fompp = cabs(bwign(am3,amom,gamom))**2
04366
04367
04368 fnorm = 1/fpi**6
04369
04370 AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK
04371 amplit = amplit * fompp * fnorm
04372
04373
04374 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04375
04376 DO 40 I=1,3
04377 40 HV(I)=0.
04378
04379 do 77 k=1,4
04380 pmult(k,1)=pi1(k)
04381 pmult(k,2)=pi2(k)
04382 pmult(k,3)=pi3(k)
04383 pmult(k,4)=pi4(k)
04384 pmult(k,5)=pi5(k)
04385 77 continue
04386 return
04387
04388
04389
04390
04391 end
04392 SUBROUTINE DPHSRK(DGAMT,HV,PN,PR,PMULT,INUM)
04393
04394
04395
04396
04397
04398 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04399 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04400 * ,AMK,AMKZ,AMKST,GAMKST
04401
04402 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04403 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04404 * ,AMK,AMKZ,AMKST,GAMKST
04405 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04406 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04407 REAL HV(4),PT(4),PN(4),PR(4),PKC(4),PKZ(4),QQ(4),PMULT(4,9)
04408 REAL RR1(1)
04409 DATA PI /3.141592653589793238462643/
04410 DATA ICONT /0/
04411
04412
04413 PHSPAC=1./2**11/PI**5
04414
04415 PT(1)=0.
04416 PT(2)=0.
04417 PT(3)=0.
04418 PT(4)=AMTAU
04419
04420 AMS1=(AMK+AMKZ)**2
04421 AMS2=(AMTAU-AMNUTA)**2
04422
04423 CALL RANMAR(RR1,1)
04424 AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
04425 AMX=SQRT(AMX2)
04426 PHSPAC=PHSPAC*(AMS2-AMS1)
04427
04428
04429
04430
04431 100 CONTINUE
04432
04433
04434
04435
04436
04437
04438
04439
04440
04441
04442 PN(1)=0
04443 PN(2)=0
04444 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
04445 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
04446
04447 PR(1)=0
04448 PR(2)=0
04449 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
04450 PR(3)=-PN(3)
04451 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU)
04452
04453
04454 ENQ1=(AMX2+AMK**2-AMKZ**2)/(2.*AMX)
04455 ENQ2=(AMX2-AMK**2+AMKZ**2)/(2.*AMX)
04456 PPPI=SQRT((ENQ1-AMK)*(ENQ1+AMK))
04457 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
04458
04459 CALL SPHERA(PPPI,PKC)
04460 PKC(4)=ENQ1
04461
04462 DO 20 I=1,3
04463 20 PKZ(I)=-PKC(I)
04464 PKZ(4)=ENQ2
04465 EXE=(PR(4)+PR(3))/AMX
04466
04467 CALL BOSTR3(EXE,PKC,PKC)
04468 CALL BOSTR3(EXE,PKZ,PKZ)
04469 DO 30 I=1,4
04470 30 QQ(I)=PKC(I)-PKZ(I)
04471
04472 PKSD =PR(4)*PR(4)-PR(3)*PR(3)-PR(2)*PR(2)-PR(1)*PR(1)
04473 QQPKS=PR(4)* QQ(4)-PR(3)* QQ(3)-PR(2)* QQ(2)-PR(1)* QQ(1)
04474 DO 31 I=1,4
04475 31 QQ(I)=QQ(I)-PR(I)*QQPKS/PKSD
04476
04477 PRODPQ=PT(4)*QQ(4)
04478 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
04479 PRODPN=PT(4)*PN(4)
04480 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
04481 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
04482 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
04483 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRK(AMX)
04484 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04485 DO 40 I=1,3
04486 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
04487 do 77 k=1,4
04488 pmult(k,1)=pkc(k)
04489 pmult(k,2)=pkz(k)
04490 77 continue
04491 RETURN
04492 END
04493 FUNCTION FPIRK(W)
04494
04495
04496
04497 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04498 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04499 * ,AMK,AMKZ,AMKST,GAMKST
04500
04501 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04502 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04503 * ,AMK,AMKZ,AMKST,GAMKST
04504
04505 COMPLEX FPIKM
04506 FPIRK=CABS(FPIKM(W,AMK,AMKZ))**2
04507
04508 END
04509 COMPLEX FUNCTION FPIKMK(W,XM1,XM2)
04510
04511
04512
04513 COMPLEX BWIGM
04514 REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W
04515 EXTERNAL BWIG
04516 DATA INIT /0/
04517
04518
04519 IF (INIT.EQ.0 ) THEN
04520 INIT=1
04521 PI=3.141592654
04522 PIM=.140
04523 ROM=0.773
04524 ROG=0.145
04525 ROM1=1.570
04526 ROG1=0.510
04527
04528 BETA1=-0.221
04529 ENDIF
04530
04531 S=W**2
04532 FPIKMK=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2))
04533 & /(1+BETA1)
04534 RETURN
04535 END
04536 SUBROUTINE RESLUX
04537
04538
04539 NHEP=0
04540 END
04541 SUBROUTINE DWRPH(KTO,PHX)
04542
04543
04544
04545 IMPLICIT REAL*8 (A-H,O-Z)
04546 REAL*4 PHX(4)
04547 REAL*4 QHOT(4)
04548
04549 DO 9 K=1,4
04550 QHOT(K) =0.0
04551 9 CONTINUE
04552
04553
04554 DO 1002 I=1,4
04555 1002 QHOT(I)=PHX(I)
04556 IF (QHOT(4).GT.1.E-5) CALL DWLUPH(KTO,QHOT)
04557 RETURN
04558 END
04559 SUBROUTINE DWLUPH(KTO,PHOT)
04560
04561
04562
04563
04564
04565
04566
04567
04568
04569 REAL PHOT(4)
04570 COMMON /TAUPOS/ NP1,NP2
04571
04572
04573 IF (PHOT(4).LE.0.0) RETURN
04574
04575
04576 IF((KTO.EQ. 1).OR.(KTO.EQ.11)) THEN
04577 NPS=NP1
04578 ELSE
04579 NPS=NP2
04580 ENDIF
04581
04582 KTOS=KTO
04583 IF(KTOS.GT.10) KTOS=KTOS-10
04584
04585 CALL TRALO4(KTOS,PHOT,PHOT,AM)
04586 CALL FILHEP(0,1,22,NPS,NPS,0,0,PHOT,0.0,.TRUE.)
04587
04588 RETURN
04589 END
04590
04591 SUBROUTINE DWLUEL(KTO,ISGN,PNU,PWB,PEL,PNE)
04592
04593
04594
04595
04596
04597
04598
04599
04600
04601 REAL PNU(4),PWB(4),PEL(4),PNE(4)
04602 COMMON /TAUPOS/ NP1,NP2
04603
04604
04605 IF(KTO.EQ. 1) THEN
04606 NPS=NP1
04607 ELSE
04608 NPS=NP2
04609 ENDIF
04610
04611
04612 CALL TRALO4(KTO,PNU,PNU,AM)
04613 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04614
04615
04616 CALL TRALO4(KTO,PWB,PWB,AM)
04617
04618
04619
04620 CALL TRALO4(KTO,PEL,PEL,AM)
04621 CALL FILHEP(0,1,11*ISGN,NPS,NPS,0,0,PEL,AM,.FALSE.)
04622
04623
04624 CALL TRALO4(KTO,PNE,PNE,AM)
04625 CALL FILHEP(0,1,-12*ISGN,NPS,NPS,0,0,PNE,AM,.TRUE.)
04626
04627 RETURN
04628 END
04629 SUBROUTINE DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM)
04630
04631
04632
04633
04634
04635
04636
04637
04638
04639 REAL PNU(4),PWB(4),PMU(4),PNM(4)
04640 COMMON /TAUPOS/ NP1,NP2
04641
04642
04643 IF(KTO.EQ. 1) THEN
04644 NPS=NP1
04645 ELSE
04646 NPS=NP2
04647 ENDIF
04648
04649
04650 CALL TRALO4(KTO,PNU,PNU,AM)
04651 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04652
04653
04654 CALL TRALO4(KTO,PWB,PWB,AM)
04655
04656
04657
04658 CALL TRALO4(KTO,PMU,PMU,AM)
04659 CALL FILHEP(0,1,13*ISGN,NPS,NPS,0,0,PMU,AM,.FALSE.)
04660
04661
04662 CALL TRALO4(KTO,PNM,PNM,AM)
04663 CALL FILHEP(0,1,-14*ISGN,NPS,NPS,0,0,PNM,AM,.TRUE.)
04664
04665 RETURN
04666 END
04667 SUBROUTINE DWLUPI(KTO,ISGN,PPI,PNU)
04668
04669
04670
04671
04672
04673
04674
04675
04676
04677 REAL PNU(4),PPI(4)
04678 COMMON /TAUPOS/ NP1,NP2
04679
04680
04681 IF(KTO.EQ. 1) THEN
04682 NPS=NP1
04683 ELSE
04684 NPS=NP2
04685 ENDIF
04686
04687
04688 CALL TRALO4(KTO,PNU,PNU,AM)
04689 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04690
04691
04692 CALL TRALO4(KTO,PPI,PPI,AM)
04693 CALL FILHEP(0,1,-211*ISGN,NPS,NPS,0,0,PPI,AM,.TRUE.)
04694
04695 RETURN
04696 END
04697 SUBROUTINE DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ)
04698
04699
04700
04701
04702
04703
04704
04705
04706
04707 REAL PNU(4),PRHO(4),PIC(4),PIZ(4)
04708 COMMON /TAUPOS/ NP1,NP2
04709
04710
04711 IF(KTO.EQ. 1) THEN
04712 NPS=NP1
04713 ELSE
04714 NPS=NP2
04715 ENDIF
04716
04717
04718 CALL TRALO4(KTO,PNU,PNU,AM)
04719 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04720
04721
04722 CALL TRALO4(KTO,PRHO,PRHO,AM)
04723 CALL FILHEP(0,2,-213*ISGN,NPS,NPS,0,0,PRHO,AM,.TRUE.)
04724
04725
04726 CALL TRALO4(KTO,PIC,PIC,AM)
04727 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIC,AM,.TRUE.)
04728
04729
04730 CALL TRALO4(KTO,PIZ,PIZ,AM)
04731 CALL FILHEP(0,1,111,-2,-2,0,0,PIZ,AM,.TRUE.)
04732
04733 RETURN
04734 END
04735 SUBROUTINE DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
04736
04737
04738
04739
04740
04741
04742
04743
04744
04745
04746 REAL PNU(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
04747 COMMON /TAUPOS/ NP1,NP2
04748
04749
04750 IF(KTO.EQ. 1) THEN
04751 NPS=NP1
04752 ELSE
04753 NPS=NP2
04754 ENDIF
04755
04756
04757 CALL TRALO4(KTO,PNU,PNU,AM)
04758 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04759
04760
04761 CALL TRALO4(KTO,PAA,PAA,AM)
04762 CALL FILHEP(0,1,-20213*ISGN,NPS,NPS,0,0,PAA,AM,.TRUE.)
04763
04764
04765 IF(JAA.EQ.1) THEN
04766
04767
04768
04769
04770 CALL TRALO4(KTO,PIM2,PIM2,AM)
04771 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIM2,AM,.TRUE.)
04772
04773
04774 CALL TRALO4(KTO,PIM1,PIM1,AM)
04775 CALL FILHEP(0,1,-211*ISGN,-2,-2,0,0,PIM1,AM,.TRUE.)
04776
04777
04778 CALL TRALO4(KTO,PIPL,PIPL,AM)
04779 CALL FILHEP(0,1, 211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.)
04780
04781 ELSE IF (JAA.EQ.2) THEN
04782
04783
04784
04785
04786 CALL TRALO4(KTO,PIM2,PIM2,AM)
04787 CALL FILHEP(0,1,111,-1,-1,0,0,PIM2,AM,.TRUE.)
04788
04789
04790 CALL TRALO4(KTO,PIM1,PIM1,AM)
04791 CALL FILHEP(0,1,111,-2,-2,0,0,PIM1,AM,.TRUE.)
04792
04793
04794 CALL TRALO4(KTO,PIPL,PIPL,AM)
04795 CALL FILHEP(0,1,-211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.)
04796
04797 ENDIF
04798
04799 RETURN
04800 END
04801 SUBROUTINE DWLUKK (KTO,ISGN,PKK,PNU)
04802
04803
04804
04805
04806
04807
04808
04809
04810 REAL PKK(4),PNU(4)
04811 COMMON /TAUPOS/ NP1,NP2
04812
04813
04814 IF (KTO.EQ.1) THEN
04815 NPS=NP1
04816 ELSE
04817 NPS=NP2
04818 ENDIF
04819
04820
04821 CALL TRALO4 (KTO,PNU,PNU,AM)
04822 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04823
04824
04825 CALL TRALO4 (KTO,PKK,PKK,AM)
04826 CALL FILHEP(0,1,-321*ISGN,NPS,NPS,0,0,PKK,AM,.TRUE.)
04827
04828 RETURN
04829 END
04830 SUBROUTINE DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
04831 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
04832 REAL*4 BRA1,BRK0,BRK0B,BRKS
04833
04834
04835
04836
04837
04838
04839
04840
04841
04842 REAL PNU(4),PKS(4),PKK(4),PPI(4),XIO(1)
04843 COMMON /TAUPOS/ NP1,NP2
04844
04845
04846 IF(KTO.EQ. 1) THEN
04847 NPS=NP1
04848 ELSE
04849 NPS=NP2
04850 ENDIF
04851
04852
04853 CALL TRALO4(KTO,PNU,PNU,AM)
04854 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04855
04856
04857 CALL TRALO4(KTO,PKS,PKS,AM)
04858 CALL FILHEP(0,1,-323*ISGN,NPS,NPS,0,0,PKS,AM,.TRUE.)
04859
04860
04861 IF(JKST.EQ.10) THEN
04862
04863
04864
04865
04866 CALL TRALO4(KTO,PPI,PPI,AM)
04867 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PPI,AM,.TRUE.)
04868
04869 BRAN=BRK0B
04870 IF (ISGN.EQ.-1) BRAN=BRK0
04871
04872 CALL RANMAR(XIO,1)
04873 IF(XIO(1).GT.BRAN) THEN
04874 K0TYPE = 130
04875 ELSE
04876 K0TYPE = 310
04877 ENDIF
04878
04879 CALL TRALO4(KTO,PKK,PKK,AM)
04880 CALL FILHEP(0,1,K0TYPE,-2,-2,0,0,PKK,AM,.TRUE.)
04881
04882 ELSE IF(JKST.EQ.20) THEN
04883
04884
04885
04886
04887 CALL TRALO4(KTO,PPI,PPI,AM)
04888 CALL FILHEP(0,1,111,-1,-1,0,0,PPI,AM,.TRUE.)
04889
04890
04891 CALL TRALO4(KTO,PKK,PKK,AM)
04892 CALL FILHEP(0,1,-321*ISGN,-2,-2,0,0,PKK,AM,.TRUE.)
04893
04894 ENDIF
04895
04896 RETURN
04897 END
04898 SUBROUTINE DWLNEW(KTO,ISGN,PNU,PWB,PNPI,MODE)
04899
04900
04901
04902
04903
04904
04905
04906
04907
04908 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
04909 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04910 & ,NAMES
04911 COMMON /TAUPOS/ NP1,NP2
04912 CHARACTER NAMES(NMODE)*31
04913 REAL PNU(4),PWB(4),PNPI(4,9)
04914 REAL PPI(4)
04915
04916 JNPI=MODE-7
04917
04918 IF(KTO.EQ. 1) THEN
04919 NPS=NP1
04920 ELSE
04921 NPS=NP2
04922 ENDIF
04923
04924
04925 CALL TRALO4(KTO,PNU,PNU,AM)
04926 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
04927
04928
04929 CALL TRALO4(KTO,PWB,PWB,AM)
04930 CALL FILHEP(0,1,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
04931
04932
04933
04934
04935 ND=MULPIK(JNPI)
04936 DO I=1,ND
04937 KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN)
04938
04939
04940 DO J=1,4
04941 PPI(J)=PNPI(J,I)
04942 END DO
04943 CALL TRALO4(KTO,PPI,PPI,AM)
04944 CALL FILHEP(0,1,KFPI,-I,-I,0,0,PPI,AM,.TRUE.)
04945 END DO
04946
04947 RETURN
04948 END
04949 FUNCTION AMAST(PP)
04950
04951
04952
04953
04954
04955 IMPLICIT REAL*8 (A-H,O-Z)
04956 REAL*8 PP(4)
04957 AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2
04958
04959 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA))
04960 AMAST=AAA
04961 RETURN
04962 END
04963 FUNCTION AMAS4(PP)
04964
04965
04966
04967
04968
04969
04970 REAL PP(4)
04971 AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2
04972 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA))
04973 AMAS4=AAA
04974 RETURN
04975 END
04976 FUNCTION ANGXY(X,Y)
04977
04978
04979
04980
04981 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
04982 DATA PI /3.141592653589793238462643D0/
04983
04984 IF(ABS(Y).LT.ABS(X)) THEN
04985 THE=ATAN(ABS(Y/X))
04986 IF(X.LE.0D0) THE=PI-THE
04987 ELSE
04988 THE=ACOS(X/SQRT(X**2+Y**2))
04989 ENDIF
04990 ANGXY=THE
04991 RETURN
04992 END
04993 FUNCTION ANGFI(X,Y)
04994
04995
04996
04997
04998
04999 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05000 DATA PI /3.141592653589793238462643D0/
05001
05002 IF(ABS(Y).LT.ABS(X)) THEN
05003 THE=ATAN(ABS(Y/X))
05004 IF(X.LE.0D0) THE=PI-THE
05005 ELSE
05006 THE=ACOS(X/SQRT(X**2+Y**2))
05007 ENDIF
05008 IF(Y.LT.0D0) THE=2D0*PI-THE
05009 ANGFI=THE
05010 END
05011 SUBROUTINE ROTOD1(PH1,PVEC,QVEC)
05012
05013
05014
05015
05016 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05017 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05018
05019 PHI=PH1
05020 CS=COS(PHI)
05021 SN=SIN(PHI)
05022 DO 10 I=1,4
05023 10 RVEC(I)=PVEC(I)
05024 QVEC(1)=RVEC(1)
05025 QVEC(2)= CS*RVEC(2)-SN*RVEC(3)
05026 QVEC(3)= SN*RVEC(2)+CS*RVEC(3)
05027 QVEC(4)=RVEC(4)
05028 RETURN
05029 END
05030 SUBROUTINE ROTOD2(PH1,PVEC,QVEC)
05031
05032
05033
05034
05035 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05036 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05037
05038 PHI=PH1
05039 CS=COS(PHI)
05040 SN=SIN(PHI)
05041 DO 10 I=1,4
05042 10 RVEC(I)=PVEC(I)
05043 QVEC(1)= CS*RVEC(1)+SN*RVEC(3)
05044 QVEC(2)=RVEC(2)
05045 QVEC(3)=-SN*RVEC(1)+CS*RVEC(3)
05046 QVEC(4)=RVEC(4)
05047 RETURN
05048 END
05049 SUBROUTINE ROTOD3(PH1,PVEC,QVEC)
05050
05051
05052
05053
05054 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05055
05056 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05057 PHI=PH1
05058 CS=COS(PHI)
05059 SN=SIN(PHI)
05060 DO 10 I=1,4
05061 10 RVEC(I)=PVEC(I)
05062 QVEC(1)= CS*RVEC(1)-SN*RVEC(2)
05063 QVEC(2)= SN*RVEC(1)+CS*RVEC(2)
05064 QVEC(3)=RVEC(3)
05065 QVEC(4)=RVEC(4)
05066 END
05067 SUBROUTINE BOSTR3(EXE,PVEC,QVEC)
05068
05069
05070
05071
05072
05073 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05074
05075 DO 10 I=1,4
05076 10 RVEC(I)=PVEC(I)
05077 RPL=RVEC(4)+RVEC(3)
05078 RMI=RVEC(4)-RVEC(3)
05079 QPL=RPL*EXE
05080 QMI=RMI/EXE
05081 QVEC(1)=RVEC(1)
05082 QVEC(2)=RVEC(2)
05083 QVEC(3)=(QPL-QMI)/2
05084 QVEC(4)=(QPL+QMI)/2
05085 END
05086 SUBROUTINE BOSTD3(EXE,PVEC,QVEC)
05087
05088
05089
05090
05091
05092 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05093 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05094
05095 DO 10 I=1,4
05096 10 RVEC(I)=PVEC(I)
05097 RPL=RVEC(4)+RVEC(3)
05098 RMI=RVEC(4)-RVEC(3)
05099 QPL=RPL*EXE
05100 QMI=RMI/EXE
05101 QVEC(1)=RVEC(1)
05102 QVEC(2)=RVEC(2)
05103 QVEC(3)=(QPL-QMI)/2
05104 QVEC(4)=(QPL+QMI)/2
05105 RETURN
05106 END
05107 SUBROUTINE ROTOR1(PH1,PVEC,QVEC)
05108
05109
05110
05111
05112 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05113
05114 PHI=PH1
05115 CS=COS(PHI)
05116 SN=SIN(PHI)
05117 DO 10 I=1,4
05118 10 RVEC(I)=PVEC(I)
05119 QVEC(1)=RVEC(1)
05120 QVEC(2)= CS*RVEC(2)-SN*RVEC(3)
05121 QVEC(3)= SN*RVEC(2)+CS*RVEC(3)
05122 QVEC(4)=RVEC(4)
05123 END
05124 SUBROUTINE ROTOR2(PH1,PVEC,QVEC)
05125
05126
05127
05128
05129 IMPLICIT REAL*4(A-H,O-Z)
05130 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05131
05132 PHI=PH1
05133 CS=COS(PHI)
05134 SN=SIN(PHI)
05135 DO 10 I=1,4
05136 10 RVEC(I)=PVEC(I)
05137 QVEC(1)= CS*RVEC(1)+SN*RVEC(3)
05138 QVEC(2)=RVEC(2)
05139 QVEC(3)=-SN*RVEC(1)+CS*RVEC(3)
05140 QVEC(4)=RVEC(4)
05141 END
05142 SUBROUTINE ROTOR3(PHI,PVEC,QVEC)
05143
05144
05145
05146
05147 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05148
05149 CS=COS(PHI)
05150 SN=SIN(PHI)
05151 DO 10 I=1,4
05152 10 RVEC(I)=PVEC(I)
05153 QVEC(1)= CS*RVEC(1)-SN*RVEC(2)
05154 QVEC(2)= SN*RVEC(1)+CS*RVEC(2)
05155 QVEC(3)=RVEC(3)
05156 QVEC(4)=RVEC(4)
05157 END
05158 SUBROUTINE SPHERD(R,X)
05159
05160
05161
05162
05163 REAL*8 R,X(4),PI,COSTH,SINTH
05164 REAL*4 RRR(2)
05165 DATA PI /3.141592653589793238462643D0/
05166
05167 CALL RANMAR(RRR,2)
05168 COSTH=-1+2*RRR(1)
05169 SINTH=SQRT(1 -COSTH**2)
05170 X(1)=R*SINTH*COS(2*PI*RRR(2))
05171 X(2)=R*SINTH*SIN(2*PI*RRR(2))
05172 X(3)=R*COSTH
05173 RETURN
05174 END
05175 SUBROUTINE ROTPOX(THET,PHI,PP)
05176 IMPLICIT REAL*8 (A-H,O-Z)
05177
05178
05179
05180 DIMENSION PP(4)
05181
05182 CALL ROTOD2(THET,PP,PP)
05183 CALL ROTOD3( PHI,PP,PP)
05184 RETURN
05185 END
05186 SUBROUTINE SPHERA(R,X)
05187
05188
05189
05190
05191
05192 REAL X(4)
05193 REAL*4 RRR(2)
05194 DATA PI /3.141592653589793238462643/
05195
05196 CALL RANMAR(RRR,2)
05197 COSTH=-1.+2.*RRR(1)
05198 SINTH=SQRT(1.-COSTH**2)
05199 X(1)=R*SINTH*COS(2*PI*RRR(2))
05200 X(2)=R*SINTH*SIN(2*PI*RRR(2))
05201 X(3)=R*COSTH
05202 RETURN
05203 END
05204 SUBROUTINE ROTPOL(THET,PHI,PP)
05205
05206
05207
05208
05209 REAL PP(4)
05210
05211 CALL ROTOR2(THET,PP,PP)
05212 CALL ROTOR3( PHI,PP,PP)
05213 RETURN
05214 END
05215 SUBROUTINE RANMAR(RVEC,LENV)
05216
05217
05218
05219
05220
05221
05222
05223
05224
05225
05226
05227
05228
05229
05230
05231 COMMON / INOUT / INUT,IOUT
05232 DIMENSION RVEC(*)
05233 COMMON/RASET1/U(97),C,I97,J97
05234 PARAMETER (MODCNS=1000000000)
05235 DATA NTOT,NTOT2,IJKL/-1,0,0/
05236
05237 IF (NTOT .GE. 0) GO TO 50
05238
05239
05240 IJKL = 54217137
05241 NTOT = 0
05242 NTOT2 = 0
05243 KALLED = 0
05244 GO TO 1
05245
05246 ENTRY RMARIN(IJKLIN, NTOTIN,NTOT2N)
05247
05248
05249
05250
05251
05252
05253
05254 IJKL = IJKLIN
05255 NTOT = MAX(NTOTIN,0)
05256 NTOT2= MAX(NTOT2N,0)
05257 KALLED = 1
05258
05259 1 CONTINUE
05260 IJ = IJKL/30082
05261 KL = IJKL - 30082*IJ
05262 I = MOD(IJ/177, 177) + 2
05263 J = MOD(IJ, 177) + 2
05264 K = MOD(KL/169, 178) + 1
05265 L = MOD(KL, 169)
05266 WRITE(IOUT,201) IJKL,NTOT,NTOT2
05267 201 FORMAT(1X,' RANMAR INITIALIZED: ',I10,2X,2I10)
05268 DO 2 II= 1, 97
05269 S = 0.
05270 T = .5
05271 DO 3 JJ= 1, 24
05272 M = MOD(MOD(I*J,179)*K, 179)
05273 I = J
05274 J = K
05275 K = M
05276 L = MOD(53*L+1, 169)
05277 IF (MOD(L*M,64) .GE. 32) S = S+T
05278 3 T = 0.5*T
05279 2 U(II) = S
05280 TWOM24 = 1.0
05281 DO 4 I24= 1, 24
05282 4 TWOM24 = 0.5*TWOM24
05283 C = 362436.*TWOM24
05284 CD = 7654321.*TWOM24
05285 CM = 16777213.*TWOM24
05286 I97 = 97
05287 J97 = 33
05288
05289
05290 DO 45 LOOP2= 1, NTOT2+1
05291 NOW = MODCNS
05292 IF (LOOP2 .EQ. NTOT2+1) NOW=NTOT
05293 IF (NOW .GT. 0) THEN
05294 WRITE (IOUT,'(A,I15)') ' RMARIN SKIPPING OVER ',NOW
05295 DO 40 IDUM = 1, NTOT
05296 UNI = U(I97)-U(J97)
05297 IF (UNI .LT. 0.) UNI=UNI+1.
05298 U(I97) = UNI
05299 I97 = I97-1
05300 IF (I97 .EQ. 0) I97=97
05301 J97 = J97-1
05302 IF (J97 .EQ. 0) J97=97
05303 C = C - CD
05304 IF (C .LT. 0.) C=C+CM
05305 40 CONTINUE
05306 ENDIF
05307 45 CONTINUE
05308 IF (KALLED .EQ. 1) RETURN
05309
05310
05311 50 CONTINUE
05312 DO 100 IVEC= 1, LENV
05313 UNI = U(I97)-U(J97)
05314 IF (UNI .LT. 0.) UNI=UNI+1.
05315 U(I97) = UNI
05316 I97 = I97-1
05317 IF (I97 .EQ. 0) I97=97
05318 J97 = J97-1
05319 IF (J97 .EQ. 0) J97=97
05320 C = C - CD
05321 IF (C .LT. 0.) C=C+CM
05322 UNI = UNI-C
05323 IF (UNI .LT. 0.) UNI=UNI+1.
05324
05325 IF (UNI .EQ. 0.) THEN
05326 UNI = TWOM24*U(2)
05327
05328 IF (UNI .EQ. 0.) UNI= TWOM24*TWOM24
05329 ENDIF
05330 RVEC(IVEC) = UNI
05331 100 CONTINUE
05332 NTOT = NTOT + LENV
05333 IF (NTOT .GE. MODCNS) THEN
05334 NTOT2 = NTOT2 + 1
05335 NTOT = NTOT - MODCNS
05336 ENDIF
05337 RETURN
05338
05339 ENTRY RMARUT(IJKLUT,NTOTUT,NTOT2T)
05340 IJKLUT = IJKL
05341 NTOTUT = NTOT
05342 NTOT2T = NTOT2
05343 RETURN
05344 END
05345 FUNCTION DILOGT(X)
05346
05347 IMPLICIT REAL*8(A-H,O-Z)
05348
05349 Z=-1.64493406684822
05350 IF(X .LT.-1.0) GO TO 1
05351 IF(X .LE. 0.5) GO TO 2
05352 IF(X .EQ. 1.0) GO TO 3
05353 IF(X .LE. 2.0) GO TO 4
05354 Z=3.2898681336964
05355 1 T=1.0/X
05356 S=-0.5
05357 Z=Z-0.5* LOG(ABS(X))**2
05358 GO TO 5
05359 2 T=X
05360 S=0.5
05361 Z=0.
05362 GO TO 5
05363 3 DILOGT=1.64493406684822
05364 RETURN
05365 4 T=1.0-X
05366 S=-0.5
05367 Z=1.64493406684822 - LOG(X)* LOG(ABS(T))
05368 5 Y=2.66666666666666 *T+0.66666666666666
05369 B= 0.00000 00000 00001
05370 A=Y*B +0.00000 00000 00004
05371 B=Y*A-B+0.00000 00000 00011
05372 A=Y*B-A+0.00000 00000 00037
05373 B=Y*A-B+0.00000 00000 00121
05374 A=Y*B-A+0.00000 00000 00398
05375 B=Y*A-B+0.00000 00000 01312
05376 A=Y*B-A+0.00000 00000 04342
05377 B=Y*A-B+0.00000 00000 14437
05378 A=Y*B-A+0.00000 00000 48274
05379 B=Y*A-B+0.00000 00001 62421
05380 A=Y*B-A+0.00000 00005 50291
05381 B=Y*A-B+0.00000 00018 79117
05382 A=Y*B-A+0.00000 00064 74338
05383 B=Y*A-B+0.00000 00225 36705
05384 A=Y*B-A+0.00000 00793 87055
05385 B=Y*A-B+0.00000 02835 75385
05386 A=Y*B-A+0.00000 10299 04264
05387 B=Y*A-B+0.00000 38163 29463
05388 A=Y*B-A+0.00001 44963 00557
05389 B=Y*A-B+0.00005 68178 22718
05390 A=Y*B-A+0.00023 20021 96094
05391 B=Y*A-B+0.00100 16274 96164
05392 A=Y*B-A+0.00468 63619 59447
05393 B=Y*A-B+0.02487 93229 24228
05394 A=Y*B-A+0.16607 30329 27855
05395 A=Y*A-B+1.93506 43008 6996
05396 DILOGT=S*T*(A-B)+Z
05397 RETURN
05398
05399
05400
05401 END
05402
05403
05404
05405
05406
05407
05408
05409 SUBROUTINE INIRCHL(FLAG)
05410 INTEGER FLAG
05411
05412 IF(FLAG.NE.0) THEN
05413 WRITE(*,25) FLAG
05414 25 FORMAT(1X, "TAUOLA IniRChL: Fatal error, FLAG=",I2," but RChL currents missing")
05415 WRITE(*,*) " in loaded version of TAUOLA-FORTRAN library."
05416 STOP
05417 ENDIF
05418
05419 RETURN
05420 END