1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
subroutine hvvhxx(v1,v2,gc,smass,swidth , jsvv)
c
c- by RF - Mar. 2006
c
c
c This subroutine computes an off-shell (pseudo-)scalar current from
c two incoming vectors using the scalar effective coupling.
c
c input:
c complex v1(6) : first vector
c complex v2(6) : second vector
c complex gc(2) : coupling constant: gc(1) scalar
c gc(2) pseudo-scalar
c real smass : mass of the outgoing (pseudo-)scalar
c real swidth : width of the outgoing (pseudo-)scalar
c
c output:
c complex jsvv(3) : (pseudo-)scalar current
c
c
implicit none
c-- dimension of the current set to arbitrary length
INTEGER DIM
PARAMETER(DIM=18)
c include "dimension.inc"
double complex v1(DIM),v2(DIM),jsvv(DIM),vertex1,vertex2,dj
double complex v12,p2v1,p1v2
double complex v13,v14,v23,v24,v34
double precision p12,p13,p14,p23,p24,p34
double precision p1(0:3),p2(0:3),q(4),q2
double precision smass,swidth
double complex gc(2)
p1(0) = dble( v1(5))
p1(1) = dble( v1(6))
p1(2) = dimag(v1(6))
p1(3) = dimag(v1(5))
p2(0) = dble( v2(5))
p2(1) = dble( v2(6))
p2(2) = dimag(v2(6))
p2(3) = dimag(v2(5))
vertex1 = (0D0,0D0)
vertex2 = (0D0,0D0)
jsvv(2) = v1(5) + v2(5)
jsvv(3) = v1(6) + v2(6)
q(1) = -dble( jsvv(2))
q(2) = -dble( jsvv(3))
q(3) = -dimag(jsvv(3))
q(4) = -dimag(jsvv(2))
q2 = q(1)**2 - q(2)**2 - q(3)**2 - q(4)**2
dj = dcmplx( q2-smass**2, smass*swidth )
if (gc(1).NE.(0D0,0D0)) then
v12 = v1(1)*v2(1) - v1(2)*v2(2) - v1(3)*v2(3) - v1(4)*v2(4)
p12 = p1(0)*p2(0) - p1(1)*p2(1) - p1(2)*p2(2) - p1(3)*p2(3)
p2v1 = v1(1)*p2(0) - v1(2)*p2(1) - v1(3)*p2(2) - v1(4)*p2(3)
p1v2 = p1(0)*v2(1) - p1(1)*v2(2) - p1(2)*v2(3) - p1(3)*v2(4)
vertex1 = gc(1)*(v12*p12 - p2v1*p1v2)
endif
if (gc(2).NE.(0D0,0D0)) then
p12 = p1(0)*p2(1) - p1(1)*p2(0)
p13 = p1(0)*p2(2) - p1(2)*p2(0)
p14 = p1(0)*p2(3) - p1(3)*p2(0)
p23 = p1(1)*p2(2) - p1(2)*p2(1)
p24 = p1(1)*p2(3) - p1(3)*p2(1)
p34 = p1(2)*p2(3) - p1(3)*p2(2)
v12 = v1(1)*v2(2) - v1(2)*v2(1)
v13 = v1(1)*v2(3) - v1(3)*v2(1)
v14 = v1(1)*v2(4) - v1(4)*v2(1)
v23 = v1(2)*v2(3) - v1(3)*v2(2)
v24 = v1(2)*v2(4) - v1(4)*v2(2)
v34 = v1(3)*v2(4) - v1(4)*v2(3)
vertex2 = - gc(2)*( v12*p34 - v13*p24 + v14*p23
& +v23*p14 - v24*p13 + v34*p12 )
endif
jsvv(1) = (vertex1 + vertex2) /dj
return
end
|