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
|
subroutine t2xxxx(p,tmass,nhel,nst ,ft)
c
c This subroutine computes k^mu*e^nu where e is delta(i,nhel).
c It is used to test for gauge invariance of the tensor routines.
c
c input:
c real p(0:3) : four-momentum of tensor boson
c real tmass : mass of tensor boson
c integer nhel = =-2..2 : construction of e^nu
c integer nst = -1 or 1 : +1 for final, -1 for initial
c
c output:
c complex tc(6,4) : tensor wavefunction epsilon^mu^nu(t)
c
implicit none
double complex ft(18),tc(6,4), ep(4), em(4)
double precision p(0:3), tmass
integer nhel, nst, i, j
double precision rZero, rOne
parameter( rZero = 0.0d0, rOne = 1.0d0 )
c
tc(5,1) = dcmplx(p(0),p(3))*nst
tc(6,1) = dcmplx(p(1),p(2))*nst
ep(1) = dcmplx( p(0), rZero )
ep(2) = dcmplx( p(1), rZero )
ep(3) = dcmplx( p(2), rZero )
ep(4) = dcmplx( p(3), rZero )
if ( nhel.eq.1 ) then
em(1) = dcmplx( rOne , rZero )
em(2) = dcmplx( rZero, rZero )
em(3) = dcmplx( rZero, rZero )
em(4) = dcmplx( rZero, rZero )
else if ( nhel.eq.-1 ) then
em(1) = dcmplx( rZero, rZero )
em(2) = dcmplx( rOne , rZero )
em(3) = dcmplx( rZero, rZero )
em(4) = dcmplx( rZero, rZero )
else if ( nhel.eq.2 ) then
em(1) = dcmplx( rZero, rZero )
em(2) = dcmplx( rZero, rZero )
em(3) = dcmplx( rOne , rZero )
em(4) = dcmplx( rZero, rZero )
else if ( nhel.eq.-2.or.nhel.eq.0 ) then
em(1) = dcmplx( rZero, rZero )
em(2) = dcmplx( rZero, rZero )
em(3) = dcmplx( rZero, rZero )
em(4) = dcmplx( rOne , rZero )
end if
do j = 1,4
do i = 1,4
tc(i,j) = ep(i)*em(j)
end do
end do
c
ft(1)=tc(1,1)
ft(2)=tc(1,2)
ft(3)=tc(1,3)
ft(4)=tc(1,4)
ft(5)=tc(2,1)
ft(6)=tc(2,2)
ft(7)=tc(2,3)
ft(8)=tc(2,4)
ft(9)=tc(3,1)
ft(10)=tc(3,2)
ft(11)=tc(3,3)
ft(12)=tc(3,4)
ft(13)=tc(4,1)
ft(14)=tc(4,2)
ft(15)=tc(4,3)
ft(16)=tc(4,4)
ft(17)=tc(5,1)
ft(18)=tc(6,1)
return
end
|