1
subroutine vvvxxx(wm,wp,w3,g , vertex)
3
c This subroutine computes an amplitude of the three-point coupling of
7
c complex wm(6) : vector flow-out W-
8
c complex wp(6) : vector flow-out W+
9
c complex w3(6) : vector j3 or A or Z
10
c real g : coupling constant gw or gwwa or gwwz
13
c complex vertex : amplitude gamma(wm,wp,w3)
16
double complex wm(6),wp(6),w3(6),vertex,
17
& xv1,xv2,xv3,v12,v23,v31,p12,p13,p21,p23,p31,p32
18
double precision pwm(0:3),pwp(0:3),pw3(0:3),g
20
double precision rZero, rTenth
21
parameter( rZero = 0.0d0, rTenth = 0.1d0 )
26
parameter( epsi = 4.0d-5 )
28
parameter( cZero = ( 0.0d0, 0.0d0 ) )
47
if ( abs(wm(1))+abs(wm(2))
48
& +abs(wm(3))+abs(wm(4)).eq.rZero ) then
49
write(stdo,*) ' helas-warn : wm in vvvxxx is zero vector'
51
if ( abs(wm(5))+abs(wm(6)).eq.rZero ) then
53
& ' helas-error : wm in vvvxxx has zero momentum'
55
if ( abs(wp(1))+abs(wp(2))
56
& +abs(wp(3))+abs(wp(4)).eq.rZero ) then
57
write(stdo,*) ' helas-warn : wp in vvvxxx is zero vector'
59
if ( abs(wp(5))+abs(wp(6)).eq.rZero ) then
61
& ' helas-error : wp in vvvxxx has zero momentum'
63
if ( abs(w3(1))+abs(w3(2))
64
& +abs(w3(3))+abs(w3(4)).eq.rZero ) then
65
write(stdo,*) ' helas-warn : w3 in vvvxxx is zero vector'
67
if ( abs(w3(5))+abs(w3(6)).eq.rZero ) then
69
& ' helas-error : w3 in vvvxxx has zero momentum'
71
pm = max( abs(pwm(0)),abs(pwp(0)),abs(pw3(0)),
72
& abs(pwm(1)),abs(pwp(1)),abs(pw3(1)),
73
& abs(pwm(2)),abs(pwp(2)),abs(pw3(2)),
74
& abs(pwm(3)),abs(pwp(3)),abs(pw3(3)) )
75
if ( abs(wm(5)+wp(5)+w3(5))+abs(wm(6)+wp(6)+w3(6))
78
& ' helas-error : wm,wp,w3 in vvvxxx'
80
& ' : have not balanced momenta'
82
if ( g.eq.rZero ) then
83
write(stdo,*) ' helas-error : g in vvvxxx is zero coupling'
87
v12 = wm(1)*wp(1)-wm(2)*wp(2)-wm(3)*wp(3)-wm(4)*wp(4)
88
v23 = wp(1)*w3(1)-wp(2)*w3(2)-wp(3)*w3(3)-wp(4)*w3(4)
89
v31 = w3(1)*wm(1)-w3(2)*wm(2)-w3(3)*wm(3)-w3(4)*wm(4)
94
if ( abs(wm(1)).ne.rZero ) then
95
if ( abs(wm(1)).ge.max(abs(wm(2)),abs(wm(3)),abs(wm(4)))
99
if ( abs(wp(1)).ne.rZero) then
100
if ( abs(wp(1)).ge.max(abs(wp(2)),abs(wp(3)),abs(wp(4)))
104
if ( abs(w3(1)).ne.rZero) then
105
if ( abs(w3(1)).ge.max(abs(w3(2)),abs(w3(3)),abs(w3(4)))
110
p12 = (pwm(0)-xv1*wm(1))*wp(1)-(pwm(1)-xv1*wm(2))*wp(2)
111
& -(pwm(2)-xv1*wm(3))*wp(3)-(pwm(3)-xv1*wm(4))*wp(4)
112
p13 = (pwm(0)-xv1*wm(1))*w3(1)-(pwm(1)-xv1*wm(2))*w3(2)
113
& -(pwm(2)-xv1*wm(3))*w3(3)-(pwm(3)-xv1*wm(4))*w3(4)
114
p21 = (pwp(0)-xv2*wp(1))*wm(1)-(pwp(1)-xv2*wp(2))*wm(2)
115
& -(pwp(2)-xv2*wp(3))*wm(3)-(pwp(3)-xv2*wp(4))*wm(4)
116
p23 = (pwp(0)-xv2*wp(1))*w3(1)-(pwp(1)-xv2*wp(2))*w3(2)
117
& -(pwp(2)-xv2*wp(3))*w3(3)-(pwp(3)-xv2*wp(4))*w3(4)
118
p31 = (pw3(0)-xv3*w3(1))*wm(1)-(pw3(1)-xv3*w3(2))*wm(2)
119
& -(pw3(2)-xv3*w3(3))*wm(3)-(pw3(3)-xv3*w3(4))*wm(4)
120
p32 = (pw3(0)-xv3*w3(1))*wp(1)-(pw3(1)-xv3*w3(2))*wp(2)
121
& -(pw3(2)-xv3*w3(3))*wp(3)-(pw3(3)-xv3*w3(4))*wp(4)
123
vertex = -(v12*(p13-p23)+v23*(p21-p31)+v31*(p32-p12))*g