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