00001
00002 SUBROUTINE CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
00003 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
00004 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00005 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00006 * ,AMK,AMKZ,AMKST,GAMKST
00007
00008 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00009 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00010 * ,AMK,AMKZ,AMKST,GAMKST
00011
00012 AMROP=1.1
00013 GAMROP=0.36
00014 AMOM=.782
00015 GAMOM=0.0084
00016
00017 IF(MNUM.EQ.0) THEN
00018 PROB1=0.5
00019 PROB2=0.5
00020 AMRX =AMA1
00021 GAMRX=GAMA1
00022 AMRA =AMRO
00023 GAMRA=GAMRO
00024 AMRB =AMRO
00025 GAMRB=GAMRO
00026 ELSEIF(MNUM.EQ.1) THEN
00027 PROB1=0.5
00028 PROB2=0.5
00029 AMRX =1.57
00030 GAMRX=0.9
00031 AMRB =AMKST
00032 GAMRB=GAMKST
00033 AMRA =AMRO
00034 GAMRA=GAMRO
00035 ELSEIF(MNUM.EQ.2) THEN
00036 PROB1=0.5
00037 PROB2=0.5
00038 AMRX =1.57
00039 GAMRX=0.9
00040 AMRB =AMKST
00041 GAMRB=GAMKST
00042 AMRA =AMRO
00043 GAMRA=GAMRO
00044 ELSEIF(MNUM.EQ.3) THEN
00045 PROB1=0.5
00046 PROB2=0.5
00047 AMRX =1.27
00048 GAMRX=0.3
00049 AMRA =AMKST
00050 GAMRA=GAMKST
00051 AMRB =AMKST
00052 GAMRB=GAMKST
00053 ELSEIF(MNUM.EQ.4) THEN
00054 PROB1=0.5
00055 PROB2=0.5
00056 AMRX =1.27
00057 GAMRX=0.3
00058 AMRA =AMKST
00059 GAMRA=GAMKST
00060 AMRB =AMKST
00061 GAMRB=GAMKST
00062 ELSEIF(MNUM.EQ.5) THEN
00063 PROB1=0.5
00064 PROB2=0.5
00065 AMRX =1.27
00066 GAMRX=0.3
00067 AMRA =AMKST
00068 GAMRA=GAMKST
00069 AMRB =AMRO
00070 GAMRB=GAMRO
00071 ELSEIF(MNUM.EQ.6) THEN
00072 PROB1=0.4
00073 PROB2=0.4
00074 AMRX =1.27
00075 GAMRX=0.3
00076 AMRA =AMRO
00077 GAMRA=GAMRO
00078 AMRB =AMKST
00079 GAMRB=GAMKST
00080 ELSEIF(MNUM.EQ.7) THEN
00081 PROB1=0.0
00082 PROB2=1.0
00083 AMRX =1.27
00084 GAMRX=0.9
00085 AMRA =AMRO
00086 GAMRA=GAMRO
00087 AMRB =AMRO
00088 GAMRB=GAMRO
00089 ELSEIF(MNUM.EQ.8) THEN
00090 PROB1=0.0
00091 PROB2=1.0
00092 AMRX =AMROP
00093 GAMRX=GAMROP
00094 AMRB =AMOM
00095 GAMRB=GAMOM
00096 AMRA =AMRO
00097 GAMRA=GAMRO
00098 ELSEIF(MNUM.EQ.101) THEN
00099 PROB1=.35
00100 PROB2=.35
00101 AMRX =1.2
00102 GAMRX=.46
00103 AMRB =AMOM
00104 GAMRB=GAMOM
00105 AMRA =AMOM
00106 GAMRA=GAMOM
00107 ELSEIF(MNUM.EQ.102) THEN
00108 PROB1=0.0
00109 PROB2=0.0
00110 AMRX =1.4
00111 GAMRX=.6
00112 AMRB =AMOM
00113 GAMRB=GAMOM
00114 AMRA =AMOM
00115 GAMRA=GAMOM
00116 ELSE
00117 PROB1=0.0
00118 PROB2=0.0
00119 AMRX =AMA1
00120 GAMRX=GAMA1
00121 AMRA =AMRO
00122 GAMRA=GAMRO
00123 AMRB =AMRO
00124 GAMRB=GAMRO
00125 ENDIF
00126
00127 IF (RR.LE.PROB1) THEN
00128 ICHAN=1
00129 ELSEIF(RR.LE.(PROB1+PROB2)) THEN
00130 ICHAN=2
00131 AX =AMRA
00132 GX =GAMRA
00133 AMRA =AMRB
00134 GAMRA=GAMRB
00135 AMRB =AX
00136 GAMRB=GX
00137 PX =PROB1
00138 PROB1=PROB2
00139 PROB2=PX
00140 ELSE
00141 ICHAN=3
00142 ENDIF
00143
00144 PROB3=1.0-PROB1-PROB2
00145 END
00146 SUBROUTINE INITDK
00147
00148
00149
00150
00151
00152
00153 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00154 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00155 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00156 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00157 * ,AMK,AMKZ,AMKST,GAMKST
00158
00159 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00160 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00161 * ,AMK,AMKZ,AMKST,GAMKST
00162 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00163 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00164 REAL*4 BRA1,BRK0,BRK0B,BRKS
00165
00166
00167
00168
00169
00170
00171 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00172 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00173 & ,NAMES
00174 CHARACTER NAMES(NMODE)*31
00175
00176 CHARACTER OLDNAMES(7)*31
00177 CHARACTER*80 bxINIT
00178 PARAMETER (
00179 $ bxINIT ='(1x,1h*,g17.8, 16x, a31,a4,a4, 1x,1h*)'
00180 $ )
00181 REAL*4 PI
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201 DIMENSION NOPIK(6,NMODE),NPIK(NMODE)
00202
00203 DATA NPIK / 4, 4,
00204 1 5, 5,
00205 2 6, 6,
00206 3 3, 3,
00207 4 3, 3,
00208 5 3, 3,
00209 6 3, 3,
00210 7 2 /
00211 DATA NOPIK / -1,-1, 1, 2, 0, 0, 2, 2, 2,-1, 0, 0,
00212 1 -1,-1, 1, 2, 2, 0, -1,-1,-1, 1, 1, 0,
00213 2 -1,-1,-1, 1, 1, 2, -1,-1, 1, 2, 2, 2,
00214 3 -3,-1, 3, 0, 0, 0, -4,-1, 4, 0, 0, 0,
00215 4 -3, 2,-4, 0, 0, 0, 2, 2,-3, 0, 0, 0,
00216 5 -3,-1, 1, 0, 0, 0, -1, 4, 2, 0, 0, 0,
00217 6 9,-1, 2, 0, 0, 0, -1, 2, 8, 0, 0, 0,
00218
00219 7 -3,-4, 0, 0, 0, 0 /
00220
00221 NCHAN = NMODE + 7
00222 DO 1 I = 1,30
00223 IF (I.LE.NCHAN) THEN
00224 JLIST(I) = I
00225 IF(I.EQ. 1) GAMPRT(I) =0.1800
00226 IF(I.EQ. 2) GAMPRT(I) =0.1751
00227 IF(I.EQ. 3) GAMPRT(I) =0.1110
00228 IF(I.EQ. 4) GAMPRT(I) =0.2515
00229 IF(I.EQ. 5) GAMPRT(I) =0.1790
00230 IF(I.EQ. 6) GAMPRT(I) =0.0071
00231 IF(I.EQ. 7) GAMPRT(I) =0.0134
00232 IF(I.EQ. 8) GAMPRT(I) =0.0450
00233 IF(I.EQ. 9) GAMPRT(I) =0.0100
00234 IF(I.EQ.10) GAMPRT(I) =0.0009
00235 IF(I.EQ.11) GAMPRT(I) =0.0004
00236 IF(I.EQ.12) GAMPRT(I) =0.0003
00237 IF(I.EQ.13) GAMPRT(I) =0.0005
00238 IF(I.EQ.14) GAMPRT(I) =0.0015
00239 IF(I.EQ.15) GAMPRT(I) =0.0015
00240 IF(I.EQ.16) GAMPRT(I) =0.0015
00241 IF(I.EQ.17) GAMPRT(I) =0.0005
00242 IF(I.EQ.18) GAMPRT(I) =0.0050
00243 IF(I.EQ.19) GAMPRT(I) =0.0055
00244 IF(I.EQ.20) GAMPRT(I) =0.0017
00245 IF(I.EQ.21) GAMPRT(I) =0.0013
00246 IF(I.EQ.22) GAMPRT(I) =0.0010
00247 IF(I.EQ. 1) OLDNAMES(I)=' TAU- --> E- '
00248 IF(I.EQ. 2) OLDNAMES(I)=' TAU- --> MU- '
00249 IF(I.EQ. 3) OLDNAMES(I)=' TAU- --> PI- '
00250 IF(I.EQ. 4) OLDNAMES(I)=' TAU- --> PI-, PI0 '
00251 IF(I.EQ. 5) OLDNAMES(I)=' TAU- --> A1- (two subch) '
00252 IF(I.EQ. 6) OLDNAMES(I)=' TAU- --> K- '
00253 IF(I.EQ. 7) OLDNAMES(I)=' TAU- --> K*- (two subch) '
00254 IF(I.EQ. 8) NAMES(I-7)=' TAU- --> 2PI-, PI0, PI+ '
00255 IF(I.EQ. 9) NAMES(I-7)=' TAU- --> 3PI0, PI- '
00256 IF(I.EQ.10) NAMES(I-7)=' TAU- --> 2PI-, PI+, 2PI0 '
00257 IF(I.EQ.11) NAMES(I-7)=' TAU- --> 3PI-, 2PI+, '
00258 IF(I.EQ.12) NAMES(I-7)=' TAU- --> 3PI-, 2PI+, PI0 '
00259 IF(I.EQ.13) NAMES(I-7)=' TAU- --> 2PI-, PI+, 3PI0 '
00260 IF(I.EQ.14) NAMES(I-7)=' TAU- --> K-, PI-, K+ '
00261 IF(I.EQ.15) NAMES(I-7)=' TAU- --> K0, PI-, K0B '
00262 IF(I.EQ.16) NAMES(I-7)=' TAU- --> K-, K0, PI0 '
00263 IF(I.EQ.17) NAMES(I-7)=' TAU- --> PI0 PI0 K- '
00264 IF(I.EQ.18) NAMES(I-7)=' TAU- --> K- PI- PI+ '
00265 IF(I.EQ.19) NAMES(I-7)=' TAU- --> PI- K0B PI0 '
00266 IF(I.EQ.20) NAMES(I-7)=' TAU- --> ETA PI- PI0 '
00267 IF(I.EQ.21) NAMES(I-7)=' TAU- --> PI- PI0 GAM '
00268 IF(I.EQ.22) NAMES(I-7)=' TAU- --> K- K0 '
00269 ELSE
00270 JLIST(I) = 0
00271 GAMPRT(I) = 0.
00272 ENDIF
00273 1 CONTINUE
00274 DO I=1,NMODE
00275 MULPIK(I)=NPIK(I)
00276 DO J=1,MULPIK(I)
00277 IDFFIN(J,I)=NOPIK(J,I)
00278 ENDDO
00279 ENDDO
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290 BRA1=0.5
00291 BRK0=0.5
00292 BRK0B=0.5
00293 BRKS=0.6667
00294
00295
00296 GFERMI = 1.16637E-5
00297 CCABIB = 0.975
00298 GV = 1.0
00299 GA =-1.0
00300
00301
00302
00303
00304 SCABIB = SQRT(1.-CCABIB**2)
00305 PI =4.*ATAN(1.)
00306 GAMEL = GFERMI**2*AMTAU**5/(192*PI**3)
00307
00308
00309
00310 RETURN
00311 END
00312 FUNCTION DCDMAS(IDENT)
00313 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00314 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00315 * ,AMK,AMKZ,AMKST,GAMKST
00316
00317 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00318 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00319 * ,AMK,AMKZ,AMKST,GAMKST
00320 IF (IDENT.EQ. 1) THEN
00321 APKMAS=AMPI
00322 ELSEIF (IDENT.EQ.-1) THEN
00323 APKMAS=AMPI
00324 ELSEIF (IDENT.EQ. 2) THEN
00325 APKMAS=AMPIZ
00326 ELSEIF (IDENT.EQ.-2) THEN
00327 APKMAS=AMPIZ
00328 ELSEIF (IDENT.EQ. 3) THEN
00329 APKMAS=AMK
00330 ELSEIF (IDENT.EQ.-3) THEN
00331 APKMAS=AMK
00332 ELSEIF (IDENT.EQ. 4) THEN
00333 APKMAS=AMKZ
00334 ELSEIF (IDENT.EQ.-4) THEN
00335 APKMAS=AMKZ
00336 ELSEIF (IDENT.EQ. 8) THEN
00337 APKMAS=0.0001
00338 ELSEIF (IDENT.EQ.-8) THEN
00339 APKMAS=0.0001
00340 ELSEIF (IDENT.EQ. 9) THEN
00341 APKMAS=0.5488
00342 ELSEIF (IDENT.EQ.-9) THEN
00343 APKMAS=0.5488
00344 ELSE
00345 PRINT *, 'STOP IN APKMAS, WRONG IDENT=',IDENT
00346 STOP
00347 ENDIF
00348 DCDMAS=APKMAS
00349 END
00350 FUNCTION LUNPIK(ID,ISGN)
00351 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00352 REAL*4 BRA1,BRK0,BRK0B,BRKS
00353 REAL*4 XIO(1)
00354 IDENT=ID*ISGN
00355 IF (IDENT.EQ. 1) THEN
00356 IPKDEF=-211
00357 ELSEIF (IDENT.EQ.-1) THEN
00358 IPKDEF= 211
00359 ELSEIF (IDENT.EQ. 2) THEN
00360 IPKDEF=111
00361 ELSEIF (IDENT.EQ.-2) THEN
00362 IPKDEF=111
00363 ELSEIF (IDENT.EQ. 3) THEN
00364 IPKDEF=-321
00365 ELSEIF (IDENT.EQ.-3) THEN
00366 IPKDEF= 321
00367 ELSEIF (IDENT.EQ. 4) THEN
00368
00369
00370 CALL RANMAR(XIO,1)
00371 IF (XIO(1).GT.BRK0) THEN
00372 IPKDEF= 130
00373 ELSE
00374 IPKDEF= 310
00375 ENDIF
00376 ELSEIF (IDENT.EQ.-4) THEN
00377
00378
00379 CALL RANMAR(XIO,1)
00380 IF (XIO(1).GT.BRK0B) THEN
00381 IPKDEF= 130
00382 ELSE
00383 IPKDEF= 310
00384 ENDIF
00385 ELSEIF (IDENT.EQ. 8) THEN
00386 IPKDEF= 22
00387 ELSEIF (IDENT.EQ.-8) THEN
00388 IPKDEF= 22
00389 ELSEIF (IDENT.EQ. 9) THEN
00390 IPKDEF= 221
00391 ELSEIF (IDENT.EQ.-9) THEN
00392 IPKDEF= 221
00393 ELSE
00394 PRINT *, 'STOP IN IPKDEF, WRONG IDENT=',IDENT
00395 STOP
00396 ENDIF
00397 LUNPIK=IPKDEF
00398 END
00399
00400
00401
00402 SUBROUTINE TAURDF(KTO)
00403
00404
00405
00406 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
00407 REAL*4 BRA1,BRK0,BRK0B,BRKS
00408 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00409
00410
00411 RETURN
00412
00413
00414 IF (KTO.EQ.1) THEN
00415
00416
00417 BRA1 = PKORB(4,1)
00418 BRKS = PKORB(4,3)
00419 BRK0 = PKORB(4,5)
00420 BRK0B = PKORB(4,6)
00421 ELSE
00422
00423
00424 BRA1 = PKORB(4,2)
00425 BRKS = PKORB(4,4)
00426 BRK0 = PKORB(4,5)
00427 BRK0B = PKORB(4,6)
00428 ENDIF
00429
00430 END
00431
00432 SUBROUTINE INIPHY(XK00)
00433
00434
00435
00436
00437 COMMON / QEDPRM /ALFINV,ALFPI,XK0
00438 REAL*8 ALFINV,ALFPI,XK0
00439 REAL*8 PI8,XK00
00440
00441 PI8 = 4.D0*DATAN(1.D0)
00442 ALFINV = 137.03604D0
00443 ALFPI = 1D0/(ALFINV*PI8)
00444 XK0=XK00
00445 END
00446
00447 SUBROUTINE INIMAS
00448
00449
00450
00451
00452
00453 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00454 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00455 * ,AMK,AMKZ,AMKST,GAMKST
00456
00457 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00458 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00459 * ,AMK,AMKZ,AMKST,GAMKST
00460
00461
00462 AMTAU = 1.7842
00463
00464 AMTAU = 1.777
00465 AMNUTA = 0.010
00466 AMEL = 0.0005111
00467 AMNUE = 0.0
00468 AMMU = 0.105659
00469 AMNUMU = 0.0
00470
00471
00472 AMPIZ = 0.134964
00473 AMPI = 0.139568
00474 AMRO = 0.773
00475 GAMRO = 0.145
00476
00477 AMA1 = 1.251
00478 GAMA1 = 0.599
00479 AMK = 0.493667
00480 AMKZ = 0.49772
00481 AMKST = 0.8921
00482 GAMKST = 0.0513
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495 AMA1 = 1.275
00496 GAMA1 = 0.615
00497
00498
00499
00500
00501
00502
00503 RETURN
00504 END
00505 SUBROUTINE ANGULU(PD1,PD2,Q1,Q2,COSTHE)
00506 REAL*8 PD1(4),PD2(4),Q1(4),Q2(4),COSTHE,P(4),QQ(4),QT(4)
00507
00508
00509
00510
00511
00512 XM1=ABS(PD1(4)**2-PD1(3)**2-PD1(2)**2-PD1(1)**2)
00513 XM2=ABS(PD2(4)**2-PD2(3)**2-PD2(2)**2-PD2(1)**2)
00514 IF (XM1.LT.XM2) THEN
00515 SIGN=1D0
00516 DO K=1,4
00517 P(K)=PD1(K)
00518 ENDDO
00519 ELSE
00520 SIGN=-1D0
00521 DO K=1,4
00522 P(K)=PD2(K)
00523 ENDDO
00524 ENDIF
00525
00526 DO K=1,4
00527 QQ(K)=Q1(k)+Q2(K)
00528 QT(K)=Q1(K)-Q2(K)
00529 ENDDO
00530
00531 XMQQ=SQRT(QQ(4)**2-QQ(3)**2-QQ(2)**2-QQ(1)**2)
00532
00533 QTXQQ=QT(4)*QQ(4)-QT(3)*QQ(3)-QT(2)*QQ(2)-QT(1)*QQ(1)
00534 DO K=1,4
00535 QT(K)=QT(K)-QQ(K)*QTXQQ/XMQQ**2
00536 ENDDO
00537
00538 PXQQ=P(4)*QQ(4)-P(3)*QQ(3)-P(2)*QQ(2)-P(1)*QQ(1)
00539 DO K=1,4
00540 P(K)=P(K)-QQ(K)*PXQQ/XMQQ**2
00541 ENDDO
00542
00543 PXP =SQRT(p(1)**2+p(2)**2+p(3)**2-p(4)**2)
00544 QTXQT=SQRT(QT(3)**2+QT(2)**2+QT(1)**2-QT(4)**2)
00545 PXQT =P(3)*QT(3)+P(2)*QT(2)+P(1)*QT(1)-P(4)*QT(4)
00546 COSTHE=PXQT/PXP/QTXQT
00547 COSTHE=COSTHE*SIGN
00548 END
00549
00550 FUNCTION PLZAP0(IDE,IDF,SVAR,COSTH0)
00551
00552
00553 REAL*8 PLZAP0,SVAR,COSTHE,COSTH0,T_BORN
00554
00555 COSTHE=COSTH0
00556
00557
00558
00559 IF (IDF.GT.0) THEN
00560 CALL INITWK(IDE,IDF,SVAR)
00561 ELSE
00562 CALL INITWK(-IDE,-IDF,SVAR)
00563 ENDIF
00564 PLZAP0=T_BORN(0,SVAR,COSTHE,1D0,1D0)
00565 $ /(T_BORN(0,SVAR,COSTHE,1D0,1D0)+T_BORN(0,SVAR,COSTHE,-1D0,-1D0))
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580 END
00581 FUNCTION T_BORN(MODE,SVAR,COSTHE,TA,TB)
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592 IMPLICIT REAL*8(A-H,O-Z)
00593 COMMON / T_BEAMPM / ENE ,AMIN,AMFIN,IDE,IDF
00594 REAL*8 ENE ,AMIN,AMFIN
00595 COMMON / T_GAUSPM /SS,POLN,T3E,QE,T3F,QF
00596 & ,XUPGI ,XUPZI ,XUPGF ,XUPZF
00597 & ,NDIAG0,NDIAGA,KEYA,KEYZ
00598 & ,ITCE,JTCE,ITCF,JTCF,KOLOR
00599 REAL*8 SS,POLN,T3E,QE,T3F,QF
00600 & ,XUPGI(2),XUPZI(2),XUPGF(2),XUPZF(2)
00601 REAL*8 SEPS1,SEPS2
00602
00603 COMMON / T_GSWPRM /SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ
00604 REAL*8 SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ
00605
00606
00607
00608
00609
00610 COMPLEX*16 ABORN(2,2),APHOT(2,2),AZETT(2,2)
00611 COMPLEX*16 XUPZFP(2),XUPZIP(2)
00612 COMPLEX*16 ABORNM(2,2),APHOTM(2,2),AZETTM(2,2)
00613 COMPLEX*16 PROPA,PROPZ
00614 COMPLEX*16 XR,XI
00615 COMPLEX*16 XUPF,XUPI
00616 COMPLEX*16 XTHING
00617 DATA XI/(0.D0,1.D0)/,XR/(1.D0,0.D0)/
00618 DATA MODE0 /-5/
00619 DATA IDE0 /-55/
00620 DATA SVAR0,COST0 /-5.D0,-6.D0/
00621 DATA PI /3.141592653589793238462643D0/
00622 DATA SEPS1,SEPS2 /0D0,0D0/
00623
00624
00625 IF ( MODE.NE.MODE0.OR.SVAR.NE.SVAR0.OR.COSTHE.NE.COST0
00626 $ .OR.IDE0.NE.IDE)THEN
00627
00628 KEYGSW=1
00629
00630 IDE0=IDE
00631 MODE0=MODE
00632 SVAR0=SVAR
00633 COST0=COSTHE
00634 SINTHE=SQRT(1.D0-COSTHE**2)
00635 BETA=SQRT(MAX(0D0,1D0-4D0*AMFIN**2/SVAR))
00636
00637 XUPZFP(1)=0.5D0*(XUPZF(1)+XUPZF(2))+0.5*BETA*(XUPZF(1)-XUPZF(2))
00638 XUPZFP(2)=0.5D0*(XUPZF(1)+XUPZF(2))-0.5*BETA*(XUPZF(1)-XUPZF(2))
00639 XUPZIP(1)=0.5D0*(XUPZI(1)+XUPZI(2))+0.5*(XUPZI(1)-XUPZI(2))
00640 XUPZIP(2)=0.5D0*(XUPZI(1)+XUPZI(2))-0.5*(XUPZI(1)-XUPZI(2))
00641
00642 XUPF =0.5D0*(XUPZF(1)+XUPZF(2))
00643 XUPI =0.5D0*(XUPZI(1)+XUPZI(2))
00644 XTHING =0D0
00645
00646 PROPA =1D0/SVAR
00647 PROPZ =1D0/DCMPLX(SVAR-AMZ**2,SVAR/AMZ*GAMMZ)
00648 IF (KEYGSW.EQ.0) PROPZ=0.D0
00649 DO 50 I=1,2
00650 DO 50 J=1,2
00651 REGULA= (3-2*I)*(3-2*J) + COSTHE
00652 REGULM=-(3-2*I)*(3-2*J) * SINTHE *2.D0*AMFIN/SQRT(SVAR)
00653 APHOT(I,J)=PROPA*(XUPGI(I)*XUPGF(J)*REGULA)
00654 AZETT(I,J)=PROPZ*(XUPZIP(I)*XUPZFP(J)+XTHING)*REGULA
00655 ABORN(I,J)=APHOT(I,J)+AZETT(I,J)
00656 APHOTM(I,J)=PROPA*DCMPLX(0D0,1D0)*XUPGI(I)*XUPGF(J)*REGULM
00657 AZETTM(I,J)=PROPZ*DCMPLX(0D0,1D0)*(XUPZIP(I)*XUPF+XTHING)*REGULM
00658 ABORNM(I,J)=APHOTM(I,J)+AZETTM(I,J)
00659 50 CONTINUE
00660 ENDIF
00661
00662
00663
00664
00665
00666 POLAR1= (SEPS1)
00667 POLAR2= (-SEPS2)
00668 BORN=0D0
00669 DO 150 I=1,2
00670 HELIC= 3-2*I
00671 DO 150 J=1,2
00672 HELIT=3-2*J
00673 FACTOR=KOLOR*(1D0+HELIC*POLAR1)*(1D0-HELIC*POLAR2)/4D0
00674 FACTOM=FACTOR*(1+HELIT*TA)*(1-HELIT*TB)
00675 FACTOR=FACTOR*(1+HELIT*TA)*(1+HELIT*TB)
00676
00677 BORN=BORN+CDABS(ABORN(I,J))**2*FACTOR
00678
00679 IF (MODE.GE.1) THEN
00680 BORN=BORN+CDABS(ABORNM(I,J))**2*FACTOM
00681 ENDIF
00682
00683 150 CONTINUE
00684
00685 FUNT=BORN
00686 IF(FUNT.LT.0.D0) FUNT=BORN
00687
00688
00689 IF (SVAR.GT.4D0*AMFIN**2) THEN
00690
00691 THRESH=SQRT(1-4D0*AMFIN**2/SVAR)
00692 T_BORN= FUNT*SVAR**2*THRESH
00693 ELSE
00694 THRESH=0.D0
00695 T_BORN=0.D0
00696 ENDIF
00697
00698
00699
00700 END
00701
00702 SUBROUTINE INITWK(IDEX,IDFX,SVAR)
00703
00704 IMPLICIT REAL*8 (A-H,O-Z)
00705 COMMON / T_BEAMPM / ENE ,AMIN,AMFIN,IDE,IDF
00706 REAL*8 ENE ,AMIN,AMFIN
00707 COMMON / T_GAUSPM /SS,POLN,T3E,QE,T3F,QF
00708 & ,XUPGI ,XUPZI ,XUPGF ,XUPZF
00709 & ,NDIAG0,NDIAGA,KEYA,KEYZ
00710 & ,ITCE,JTCE,ITCF,JTCF,KOLOR
00711 REAL*8 SS,POLN,T3E,QE,T3F,QF
00712 & ,XUPGI(2),XUPZI(2),XUPGF(2),XUPZF(2)
00713 COMMON / T_GSWPRM /SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ
00714 REAL*8 SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ
00715
00716
00717
00718
00719
00720
00721 ENE=SQRT(SVAR)/2
00722 AMIN=0.511D-3
00723 SWSQ=0.23147
00724 AMZ=91.1882
00725 GAMMZ=2.4952
00726 IF (IDFX.EQ. 15) then
00727 IDF=2
00728 AMFIN=1.77703
00729 ELSEIF (IDFX.EQ.-15) then
00730 IDF=-2
00731 AMFIN=1.77703
00732 ELSE
00733 WRITE(*,*) 'INITWK: WRONG IDFX'
00734 STOP
00735 ENDIF
00736
00737 IF (IDEX.EQ. 11) then
00738 IDE= 2
00739 AMIN=0.511D-3
00740 ELSEIF (IDEX.EQ.-11) then
00741 IDE=-2
00742 AMIN=0.511D-3
00743 ELSEIF (IDEX.EQ. 13) then
00744 IDE= 2
00745 AMIN=0.105659
00746 ELSEIF (IDEX.EQ.-13) then
00747 IDE=-2
00748 AMIN=0.105659
00749 ELSEIF (IDEX.EQ. 1) then
00750 IDE= 4
00751 AMIN=0.05
00752 ELSEIF (IDEX.EQ.- 1) then
00753 IDE=-4
00754 AMIN=0.05
00755 ELSEIF (IDEX.EQ. 2) then
00756 IDE= 3
00757 AMIN=0.02
00758 ELSEIF (IDEX.EQ.- 2) then
00759 IDE=-3
00760 AMIN=0.02
00761 ELSEIF (IDEX.EQ. 3) then
00762 IDE= 4
00763 AMIN=0.3
00764 ELSEIF (IDEX.EQ.- 3) then
00765 IDE=-4
00766 AMIN=0.3
00767 ELSEIF (IDEX.EQ. 4) then
00768 IDE= 3
00769 AMIN=1.3
00770 ELSEIF (IDEX.EQ.- 4) then
00771 IDE=-3
00772 AMIN=1.3
00773 ELSEIF (IDEX.EQ. 5) then
00774 IDE= 4
00775 AMIN=4.5
00776 ELSEIF (IDEX.EQ.- 5) then
00777 IDE=-4
00778 AMIN=4.5
00779 ELSEIF (IDEX.EQ. 12) then
00780 IDE= 1
00781 AMIN=0.1D-3
00782 ELSEIF (IDEX.EQ.- 12) then
00783 IDE=-1
00784 AMIN=0.1D-3
00785 ELSEIF (IDEX.EQ. 14) then
00786 IDE= 1
00787 AMIN=0.1D-3
00788 ELSEIF (IDEX.EQ.- 14) then
00789 IDE=-1
00790 AMIN=0.1D-3
00791 ELSEIF (IDEX.EQ. 16) then
00792 IDE= 1
00793 AMIN=0.1D-3
00794 ELSEIF (IDEX.EQ.- 16) then
00795 IDE=-1
00796 AMIN=0.1D-3
00797
00798 ELSE
00799 WRITE(*,*) 'INITWK: WRONG IDEX'
00800 STOP
00801 ENDIF
00802
00803
00804
00805
00806
00807
00808
00809 ITCE=IDE/IABS(IDE)
00810 JTCE=(1-ITCE)/2
00811 ITCF=IDF/IABS(IDF)
00812 JTCF=(1-ITCF)/2
00813 CALL T_GIVIZO( IDE, 1,AIZOR,QE,KDUMM)
00814 CALL T_GIVIZO( IDE,-1,AIZOL,QE,KDUMM)
00815 XUPGI(1)=QE
00816 XUPGI(2)=QE
00817 T3E = AIZOL+AIZOR
00818 XUPZI(1)=(AIZOR-QE*SWSQ)/SQRT(SWSQ*(1-SWSQ))
00819 XUPZI(2)=(AIZOL-QE*SWSQ)/SQRT(SWSQ*(1-SWSQ))
00820 CALL T_GIVIZO( IDF, 1,AIZOR,QF,KOLOR)
00821 CALL T_GIVIZO( IDF,-1,AIZOL,QF,KOLOR)
00822 XUPGF(1)=QF
00823 XUPGF(2)=QF
00824 T3F = AIZOL+AIZOR
00825 XUPZF(1)=(AIZOR-QF*SWSQ)/SQRT(SWSQ*(1-SWSQ))
00826 XUPZF(2)=(AIZOL-QF*SWSQ)/SQRT(SWSQ*(1-SWSQ))
00827
00828 NDIAG0=2
00829 NDIAGA=11
00830 KEYA = 1
00831 KEYZ = 1
00832
00833
00834 RETURN
00835 END
00836
00837 SUBROUTINE T_GIVIZO(IDFERM,IHELIC,SIZO3,CHARGE,KOLOR)
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848
00849 IMPLICIT REAL*8(A-H,O-Z)
00850
00851 IF(IDFERM.EQ.0.OR.IABS(IDFERM).GT.4) GOTO 901
00852 IF(IABS(IHELIC).NE.1) GOTO 901
00853 IH =IHELIC
00854 IDTYPE =IABS(IDFERM)
00855 IC =IDFERM/IDTYPE
00856 LEPQUA=INT(IDTYPE*0.4999999D0)
00857 IUPDOW=IDTYPE-2*LEPQUA-1
00858 CHARGE =(-IUPDOW+2D0/3D0*LEPQUA)*IC
00859 SIZO3 =0.25D0*(IC-IH)*(1-2*IUPDOW)
00860 KOLOR=1+2*LEPQUA
00861
00862
00863 RETURN
00864 901 PRINT *,' STOP IN GIVIZO: WRONG PARAMS.'
00865 STOP
00866 END
00867 SUBROUTINE PHYFIX(NSTOP,NSTART)
00868 COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5)
00869 SAVE /LUJETS/
00870
00871 NSTOP=0
00872 NSTART=1
00873 DO I=1, N
00874 IF(K(I,1).NE.21) THEN
00875 NSTOP = I-1
00876 NSTART= I
00877 GOTO 500
00878 ENDIF
00879 ENDDO
00880 500 CONTINUE
00881 END
00882
00883
00884 SUBROUTINE TAUPI0(PI0,K)
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895
00896
00897
00898
00899 COMMON /TAUPOS/ NP1,NP2
00900
00901 REAL PHOT1(4),PHOT2(4)
00902 REAL*8 R,X(4),Y(4),PI0(4)
00903 INTEGER JEZELI(3),K
00904 DATA JEZELI /0,0,0/
00905 SAVE JEZELI
00906
00907
00908 R=SQRT(PI0(4)**2-PI0(3)**2-PI0(2)**2-PI0(1)**2)/2D0
00909 CALL SPHERD(R,X)
00910 X(4)=R
00911 Y(4)=R
00912
00913 Y(1)=-X(1)
00914 Y(2)=-X(2)
00915 Y(3)=-X(3)
00916
00917 CALL bostdq(-1,PI0,X,X)
00918 CALL bostdq(-1,PI0,Y,Y)
00919 DO L=1,4
00920 PHOT1(L)=X(L)
00921 PHOT2(L)=Y(L)
00922 ENDDO
00923
00924 CALL FILHEP(0,1,22,K,K,0,0,PHOT1,0.0,.TRUE.)
00925 CALL FILHEP(0,1,22,K,K,0,0,PHOT2,0.0,.TRUE.)
00926
00927
00928 END
00929 SUBROUTINE TAUETA(PETA,K)
00930
00931
00932
00933
00934
00935
00936
00937 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00938 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00939 * ,AMK,AMKZ,AMKST,GAMKST
00940
00941 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00942 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00943 * ,AMK,AMKZ,AMKST,GAMKST
00944
00945
00946
00947 REAL RRR(1),BRSUM(3), RR(2)
00948 REAL PHOT1(4),PHOT2(4),PHOT3(4)
00949 REAL*8 X(4), Y(4), Z(4)
00950 REAL YM1,YM2,YM3
00951 REAL*8 R,RU,PETA(4),XM1,XM2,XM3,XLAM
00952 REAL*8 a,b,c
00953 INTEGER K
00954 XLAM(a,b,c)=SQRT(ABS((a-b-c)**2-4.0*b*c))
00955
00956
00957
00958
00959
00960 BRSUM(1)=0.389
00961 BRSUM(2)=BRSUM(1)+0.319
00962 BRSUM(3)=BRSUM(2)+0.237
00963 CALL RANMAR(RRR,1)
00964
00965 IF (RRR(1).LT.BRSUM(1)) THEN
00966
00967 R=SQRT(PETA(4)**2-PETA(3)**2-PETA(2)**2-PETA(1)**2)/2D0
00968 CALL SPHERD(R,X)
00969 X(4)=R
00970 Y(4)=R
00971
00972 Y(1)=-X(1)
00973 Y(2)=-X(2)
00974 Y(3)=-X(3)
00975
00976 CALL bostdq(-1,PETA,X,X)
00977 CALL bostdq(-1,PETA,Y,Y)
00978 DO L=1,4
00979 PHOT1(L)=X(L)
00980 PHOT2(L)=Y(L)
00981 ENDDO
00982
00983 CALL FILHEP(0,1,22,K,K,0,0,PHOT1,0.0,.TRUE.)
00984 CALL FILHEP(0,1,22,K,K,0,0,PHOT2,0.0,.TRUE.)
00985 ELSE
00986 IF(RRR(1).LT.BRSUM(2)) THEN
00987 ID1= 111
00988 ID2= 111
00989 ID3= 111
00990 XM1=AMPIZ
00991 XM2=AMPIZ
00992 XM3=AMPIZ
00993 ELSEIF(RRR(1).LT.BRSUM(3)) THEN
00994 ID1= 211
00995 ID2=-211
00996 ID3= 111
00997 XM1=AMPI
00998 XM2=AMPI
00999 XM3=AMPIZ
01000 ELSE
01001 ID1= 211
01002 ID2=-211
01003 ID3= 22
01004 XM1=AMPI
01005 XM2=AMPI
01006 XM3=0.0
01007 ENDIF
01008 7 CONTINUE
01009 CALL RANMAR(RR,2)
01010 R=SQRT(PETA(4)**2-PETA(3)**2-PETA(2)**2-PETA(1)**2)
01011 AMIN=XM1+XM2
01012 AMAX=R-XM3
01013 AM2=SQRT(AMIN**2+RR(1)*(AMAX**2-AMIN**2))
01014
01015 WT=XLAM(1D0*R**2,1D0*AM2**2,1D0*XM3**2)
01016 & *XLAM(1D0*AM2**2,1D0*XM1**2,1D0*XM2**2)
01017 & /R**2 /AM2**2
01018 IF (RR(2).GT.WT) GOTO 7
01019
01020 RU=XLAM(1D0*AM2**2,1D0*XM1**2,1D0*XM2**2)/AM2/2
01021
01022
01023 CALL SPHERD(RU,X)
01024 X(4)=SQRT(RU**2+XM1**2)
01025 Y(4)=SQRT(RU**2+XM2**2)
01026
01027 Y(1)=-X(1)
01028 Y(2)=-X(2)
01029 Y(3)=-X(3)
01030
01031 RU=XLAM(1D0*R**2,1D0*AM2**2,1D0*XM3**2)/R/2
01032 CALL SPHERD(RU,Z)
01033 Z(4)=SQRT(RU**2+AM2**2)
01034
01035 CALL bostdq(-1,Z,X,X)
01036 CALL bostdq(-1,Z,Y,Y)
01037
01038 Z(1)=-Z(1)
01039 Z(2)=-Z(2)
01040 Z(3)=-Z(3)
01041 Z(4)=SQRT(RU**2+XM3**2)
01042
01043 CALL bostdq(-1,PETA,X,X)
01044 CALL bostdq(-1,PETA,Y,Y)
01045 CALL bostdq(-1,PETA,Z,Z)
01046 DO L=1,4
01047 PHOT1(L)=X(L)
01048 PHOT2(L)=Y(L)
01049 PHOT3(L)=Z(L)
01050 ENDDO
01051 YM1=XM1
01052 YM2=XM2
01053 YM3=XM3
01054
01055 CALL FILHEP(0,1,ID1,K,K,0,0,PHOT1,YM1,.TRUE.)
01056 CALL FILHEP(0,1,ID2,K,K,0,0,PHOT2,YM2,.TRUE.)
01057 CALL FILHEP(0,1,ID3,K,K,0,0,PHOT3,YM3,.TRUE.)
01058 ENDIF
01059
01060
01061
01062 END
01063 SUBROUTINE TAUK0S(PETA,K)
01064
01065
01066
01067
01068
01069
01070 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01071 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01072 * ,AMK,AMKZ,AMKST,GAMKST
01073
01074 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01075 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01076 * ,AMK,AMKZ,AMKST,GAMKST
01077
01078
01079 COMMON /TAUPOS/ NP1,NP2
01080
01081 REAL RRR(1),BRSUM(3)
01082 REAL PHOT1(4),PHOT2(4)
01083 REAL*8 X(4), Y(4)
01084 REAL YM1,YM2
01085 REAL*8 R,PETA(4),XM1,XM2,XLAM
01086 REAL*8 a,b,c
01087 INTEGER K
01088 XLAM(a,b,c)=SQRT(ABS((a-b-c)**2-4.0*b*c))
01089
01090
01091
01092
01093
01094
01095
01096 BRSUM(1)=0.313
01097 BRSUM(2)=1.0
01098 BRSUM(3)=BRSUM(2)+0.237
01099 CALL RANMAR(RRR,1)
01100
01101 IF(RRR(1).LT.BRSUM(1)) THEN
01102 ID1= 111
01103 ID2= 111
01104 XM1=AMPIZ
01105 XM2=AMPIZ
01106 ELSEIF(RRR(1).LT.BRSUM(2)) THEN
01107 ID1= 211
01108 ID2=-211
01109 XM1=AMPI
01110 XM2=AMPI
01111 ELSE
01112 ID1= 22
01113 ID2= 22
01114 XM1= 0.0
01115 XM2= 0.0
01116 ENDIF
01117
01118
01119 R=SQRT(PETA(4)**2-PETA(3)**2-PETA(2)**2-PETA(1)**2)/2D0
01120 R4=R
01121 R=SQRT(ABS(R**2-XM1**2))
01122 CALL SPHERD(R,X)
01123 X(4)=R4
01124 Y(4)=R4
01125
01126 Y(1)=-X(1)
01127 Y(2)=-X(2)
01128 Y(3)=-X(3)
01129
01130 CALL bostdq(-1,PETA,X,X)
01131 CALL bostdq(-1,PETA,Y,Y)
01132 DO L=1,4
01133 PHOT1(L)=X(L)
01134 PHOT2(L)=Y(L)
01135 ENDDO
01136
01137 YM1=XM1
01138 YM2=XM2
01139
01140 CALL FILHEP(0,1,ID1,K,K,0,0,PHOT1,YM1,.TRUE.)
01141 CALL FILHEP(0,1,ID2,K,K,0,0,PHOT2,YM2,.TRUE.)
01142
01143
01144 END
01145
01146 subroutine bostdq(idir,vv,pp,q)
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158 implicit DOUBLE PRECISION (a-h,o-z)
01159 parameter (nout=6)
01160 DOUBLE PRECISION v(4),p(4),q(4),pp(4),vv(4)
01161 save
01162
01163 do 1 i=1,4
01164 v(i)=vv(i)
01165 1 p(i)=pp(i)
01166 amv=(v(4)**2-v(1)**2-v(2)**2-v(3)**2)
01167 if (amv.le.0d0) then
01168 write(6,*) 'bosstv: warning amv**2=',amv
01169 endif
01170 amv=sqrt(abs(amv))
01171 if (idir.eq.-1) then
01172 q(4)=( p(1)*v(1)+p(2)*v(2)+p(3)*v(3)+p(4)*v(4))/amv
01173 wsp =(q(4)+p(4))/(v(4)+amv)
01174 elseif (idir.eq.1) then
01175 q(4)=(-p(1)*v(1)-p(2)*v(2)-p(3)*v(3)+p(4)*v(4))/amv
01176 wsp =-(q(4)+p(4))/(v(4)+amv)
01177 else
01178 write(nout,*)' >>> boostv: wrong value of idir = ',idir
01179 endif
01180 q(1)=p(1)+wsp*v(1)
01181 q(2)=p(2)+wsp*v(2)
01182 q(3)=p(3)+wsp*v(3)
01183 end
01184
01185
01186
01187