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
|
c********************************************************************
c...helicity amplitude of the bound state part: \bar{b}+c->bc.
subroutine bundhelicity(ibc)
implicit double precision (a-h,o-z)
implicit integer (i-n)
double complex colmat,bundamp,polsppup
common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
& colmat(10,64),bundamp(4),pmomzero(5,8)
common/pol/polar(4,3)
c...for color-octet production.
common/coloct/ioctet
common/octmatrix/coeoct
c...wavezero is the value of the wave function at origin.
wavezero=dsqrt(pmbc*fbcc**2/12.0d0)
c...color-octet matrixment.
if(ioctet.eq.1) then
wavezero=coeoct*wavezero
end if
c...bundamp(1)->++, bundamp(2)->--, bundamp(3)->+-, bundamp(4)->-+.
c...b_c in 1s0 state and not get the combined results for bc and bc*
if(ibc.eq.1) then
bundamp(1)=dcmplx(-wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc)))
bundamp(2)=dcmplx(+wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc)))
bundamp(3)=dcmplx(0.0d0)
bundamp(4)=dcmplx(0.0d0)
end if
c...the expression of polarization vectors depend on the gauge choice.
c...one way of constructing polarization vector of 3s1 state: all
c...satisfies: polar(i)**2=-1, polar(i).polar(j)=0 (i.ne.j),
c...polar(i).pmomup(3)=0; in addition, we choose: polar(1,1)=0.0d0
c...polar(2,1)=0.0d0, and polar(1,3)=0.0d0.
if(ibc.eq.2) then
polar(1,1)=0.0d0
polar(2,1)=0.0d0
polar(3,1)=pmomup(4,3)/dsqrt(pmomup(4,3)**2-pmomup(3,3)**2)
polar(4,1)=pmomup(3,3)/dsqrt(pmomup(4,3)**2-pmomup(3,3)**2)
if(pmomup(3,3).lt.0.0d0) then
polar(1,2)=-dsqrt(pmomup(4,3)**2-pmomup(2,3)**2-pmomup(3,3)**2)
& /pmomup(5,3)
polar(2,2)=-pmomup(1,3)*pmomup(2,3)/dsqrt(pmomup(4,3)**2
& -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
polar(3,2)=-pmomup(1,3)*pmomup(3,3)/dsqrt(pmomup(4,3)**2
& -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
polar(4,2)=-pmomup(1,3)*pmomup(4,3)/dsqrt(pmomup(4,3)**2
& -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
else
polar(1,2)=dsqrt(pmomup(4,3)**2-pmomup(2,3)**2-pmomup(3,3)**2)
& /pmomup(5,3)
polar(2,2)=pmomup(1,3)*pmomup(2,3)/dsqrt(pmomup(4,3)**2
& -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
polar(3,2)=pmomup(1,3)*pmomup(3,3)/dsqrt(pmomup(4,3)**2
& -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
polar(4,2)=pmomup(1,3)*pmomup(4,3)/dsqrt(pmomup(4,3)**2
& -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
end if
polar(1,3)=0.0d0
polar(2,3)=dsqrt(pmomup(4,3)**2-pmomup(3,3)**2)
& /dsqrt(pmomup(4,3)**2-pmomup(2,3)**2-pmomup(3,3)**2)
polar(3,3)=pmomup(2,3)*pmomup(3,3)/dsqrt(pmomup(4,3)**2-
& pmomup(3,3)**2)/dsqrt(pmomup(4,3)**2-pmomup(2,3)**2
& -pmomup(3,3)**2)
polar(4,3)=pmomup(2,3)*pmomup(4,3)/dsqrt(pmomup(4,3)**2-
& pmomup(3,3)**2)/dsqrt(pmomup(4,3)**2-pmomup(2,3)**2
& -pmomup(3,3)**2)
c...four bound state matrix elements of 3s1.
bundamp(1)=dcmplx(0.0d0)
do i=1,3
bundamp(1)=bundamp(1)+wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc))
& *pmbc*(polar(4,i)*pmomup(4,8)-polar(1,i)*pmomup(1,8)-
& polar(2,i)*pmomup(2,8)-polar(3,i)*pmomup(3,8))/dotup(3,8)
end do
bundamp(2)=dconjg(bundamp(1))
bundamp(3)=dcmplx(0.0d0)
do i=1,3
bundamp(3)=bundamp(3)+wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc))
& *polsppup(i)/(2*dotup(3,8))
end do
bundamp(4)=-dconjg(bundamp(3))
end if
return
end
|