File indexing completed on 2024-04-06 12:13:36
0001
0002
0003
0004
0005 subroutine bundhelicity(ibc)
0006 implicit double precision (a-h,o-z)
0007 implicit integer (i-n)
0008 double complex colmat,bundamp,polsppup
0009 common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
0010 & colmat(10,64),bundamp(4),pmomzero(5,8)
0011 common/pol/polar(4,3)
0012
0013 common/coloct/ioctet
0014 common/octmatrix/coeoct
0015
0016
0017 wavezero=dsqrt(pmbc*fbcc**2/12.0d0)
0018
0019
0020 if(ioctet.eq.1) then
0021 wavezero=coeoct*wavezero
0022 end if
0023
0024
0025
0026 if(ibc.eq.1) then
0027 bundamp(1)=dcmplx(-wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc)))
0028 bundamp(2)=dcmplx(+wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc)))
0029 bundamp(3)=dcmplx(0.0d0)
0030 bundamp(4)=dcmplx(0.0d0)
0031 end if
0032
0033
0034
0035
0036
0037
0038 if(ibc.eq.2) then
0039 polar(1,1)=0.0d0
0040 polar(2,1)=0.0d0
0041 polar(3,1)=pmomup(4,3)/dsqrt(pmomup(4,3)**2-pmomup(3,3)**2)
0042 polar(4,1)=pmomup(3,3)/dsqrt(pmomup(4,3)**2-pmomup(3,3)**2)
0043
0044 if(pmomup(3,3).lt.0.0d0) then
0045 polar(1,2)=-dsqrt(pmomup(4,3)**2-pmomup(2,3)**2-pmomup(3,3)**2)
0046 & /pmomup(5,3)
0047 polar(2,2)=-pmomup(1,3)*pmomup(2,3)/dsqrt(pmomup(4,3)**2
0048 & -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
0049 polar(3,2)=-pmomup(1,3)*pmomup(3,3)/dsqrt(pmomup(4,3)**2
0050 & -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
0051 polar(4,2)=-pmomup(1,3)*pmomup(4,3)/dsqrt(pmomup(4,3)**2
0052 & -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
0053 else
0054 polar(1,2)=dsqrt(pmomup(4,3)**2-pmomup(2,3)**2-pmomup(3,3)**2)
0055 & /pmomup(5,3)
0056 polar(2,2)=pmomup(1,3)*pmomup(2,3)/dsqrt(pmomup(4,3)**2
0057 & -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
0058 polar(3,2)=pmomup(1,3)*pmomup(3,3)/dsqrt(pmomup(4,3)**2
0059 & -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
0060 polar(4,2)=pmomup(1,3)*pmomup(4,3)/dsqrt(pmomup(4,3)**2
0061 & -pmomup(2,3)**2-pmomup(3,3)**2)/pmomup(5,3)
0062 end if
0063
0064 polar(1,3)=0.0d0
0065 polar(2,3)=dsqrt(pmomup(4,3)**2-pmomup(3,3)**2)
0066 & /dsqrt(pmomup(4,3)**2-pmomup(2,3)**2-pmomup(3,3)**2)
0067 polar(3,3)=pmomup(2,3)*pmomup(3,3)/dsqrt(pmomup(4,3)**2-
0068 & pmomup(3,3)**2)/dsqrt(pmomup(4,3)**2-pmomup(2,3)**2
0069 & -pmomup(3,3)**2)
0070 polar(4,3)=pmomup(2,3)*pmomup(4,3)/dsqrt(pmomup(4,3)**2-
0071 & pmomup(3,3)**2)/dsqrt(pmomup(4,3)**2-pmomup(2,3)**2
0072 & -pmomup(3,3)**2)
0073
0074
0075 bundamp(1)=dcmplx(0.0d0)
0076 do i=1,3
0077 bundamp(1)=bundamp(1)+wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc))
0078 & *pmbc*(polar(4,i)*pmomup(4,8)-polar(1,i)*pmomup(1,8)-
0079 & polar(2,i)*pmomup(2,8)-polar(3,i)*pmomup(3,8))/dotup(3,8)
0080 end do
0081 bundamp(2)=dconjg(bundamp(1))
0082 bundamp(3)=dcmplx(0.0d0)
0083 do i=1,3
0084 bundamp(3)=bundamp(3)+wavezero*dsqrt(pmbc)/(2*dsqrt(pmb*pmc))
0085 & *polsppup(i)/(2*dotup(3,8))
0086 end do
0087 bundamp(4)=-dconjg(bundamp(3))
0088
0089 end if
0090
0091 return
0092 end
0093