]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/zzstar.F
Bug in V0A fixed (Guillermo)
[u/mrichter/AliRoot.git] / ISAJET / code / zzstar.F
1 #include "isajet/pilot.h"
2       FUNCTION ZZSTAR(HM,IW)
3 C
4 C          Generate W* or Z* mass for H -> W W* or H -> Z Z* decay,
5 C          including the W or Z width in the propagator.
6 C          Ref: Marciano and Sirlin, Phys. Rev. D30, 248 (1984).
7 C
8 C          HM = generated Higgs mass, i.e. QMW**2
9 C          IW = 2   3   4
10 C               W+  W-  Z0
11 C
12 #if defined(CERNLIB_IMPNONE)
13       IMPLICIT NONE
14 #endif
15 C
16 #include "isajet/itapes.inc"
17 #include "isajet/hcon.inc"
18 #include "isajet/wcon.inc"
19 #include "isajet/primar.inc"
20 C
21       REAL    HM,WM,WG,ZZSTAR,EPS,FBAR,R1,R2,RANF,X,F,DELTA,R,XM1
22       INTEGER I,IW
23 C          WM and WG are the W or Z mass and width
24       WM=WMASS(IW)
25       WG=WGAM(IW)
26       EPS=WM/HM
27       DELTA=WM*WG/HM**2
28 C          FBAR is maximum of F below
29       FBAR=12.*EPS**2*(1.-EPS)**2*(1.-EPS**2)
30       R1=(2.*EPS-1.)/DELTA
31       R2=EPS**2/DELTA
32       R1=ATAN(R1)
33       R2=ATAN(R2)
34 C          Generate Breit-Wigner and test remainder F against FBAR
35       DO 100 I=1,NTRIES
36         R=R1-RANF()*(R1-R2)
37         XM1=DELTA*TAN(R)
38         X=XM1+1.
39         F=SQRT((X-2.*EPS)*(X+2.*EPS))
40      $  *(X**2-12.*EPS**2*X+8.*EPS**2+12.*EPS**4)
41         XM1=SQRT(XM1)
42         ZZSTAR=HM*SQRT((EPS-XM1)*(EPS+XM1))
43         IF(F.GT.FBAR*RANF()) RETURN
44 100   CONTINUE
45 C
46       WRITE(ITLIS,9999) NTRIES
47 9999  FORMAT(' ERROR IN ZZSTAR ... NO MASS FOUND')
48       STOP 99
49       END