14 SUBROUTINE topdecay(Flavor,Mom,Spinor,TopHel)
18 real(8) :: mom(1:4,1:3)
20 integer,
optional :: tophel
21 complex(8) :: spinor(1:4)
22 real(8) :: zeros(1:6),topmom(1:4),nwafactor_top
23 complex(8) :: spi(1:4),barspi(1:4),botspi(1:4),wcurr(1:4)
24 real(8) :: nwafactor_w
26 real(8),
parameter :: nc=
xn,nflav=2
28 nwafactor_w = 1d0/dsqrt(2d0*
ga_w*
m_w)
29 wprop = (0d0,-1d0)*nwafactor_w
52 topmom(1:4) = mom(1:4,1)+mom(1:4,2)+mom(1:4,3)
70 if( flavor.eq.
top_ )
then
73 call vspi_weyl(dcmplx(mom(1:4,2)),+1,spi(1:4))
78 barspi(1:4) = botspi(1:4)
79 spinor(1:4) =
vgq_weyl( wcurr(1:4),barspi(1:4) )
80 spinor(1:4) =(
spb2_weyl(spinor(1:4),dcmplx(topmom(1:4))) +
m_top*spinor(1:4) ) * nwafactor_top
82 elseif( flavor.eq.
atop_ )
then
84 call vspi_weyl(dcmplx(mom(1:4,1)),+1,botspi(1:4))
86 call vspi_weyl(dcmplx(mom(1:4,3)),+1,spi(1:4))
90 spi(1:4) = botspi(1:4)
91 spinor(1:4) =
vbqg_weyl( spi(1:4),wcurr(1:4) )
92 spinor(1:4) = (
spi2_weyl(dcmplx(topmom(1:4)),spinor(1:4)) -
m_top*spinor(1:4) ) * nwafactor_top
105 SUBROUTINE wdecay(Charge,Mom,WCurr)
109 real(8) :: mom(1:4,1:2)
112 complex(8) :: spi(1:4),barspi(1:4),botspi(1:4),wcurr(1:4)
113 real(8) :: nwafactor_w
115 real(8),
parameter :: nc=
xn,nflav=2
117 nwafactor_w = 1d0/dsqrt(2d0*
ga_w*
m_w)
118 wprop = (0d0,-1d0)*dsqrt(
gwsq)*nwafactor_w
122 wmom(1:4) = mom(1:4,1)+mom(1:4,2)
129 if( charge.eq.
wp_ )
then
131 call vspi_weyl(dcmplx(mom(1:4,1)),+1,spi(1:4))
133 wcurr(1:4) =
vbqq_weyl(barspi(1:4),spi(1:4)) * wprop
135 elseif( charge.eq.
wm_ )
then
138 call vspi_weyl(dcmplx(mom(1:4,2)),+1,spi(1:4))
139 wcurr(1:4) =
vbqq_weyl(barspi(1:4),spi(1:4)) * wprop
153 integer,
intent(in):: i
154 complex(8),
intent(in) :: p(4)
155 complex(8) :: ubarSpi(4)
157 real(8) :: p0,px,py,pz
158 complex(8) :: fc, fc2
168 if (cdabs(fc2).gt.1d-15)
then
174 ubarspi(4)=(px-(0d0,1d0)*py)/fc
175 elseif (i.eq.-1)
then
176 ubarspi(1)=(px+(0d0,1d0)*py)/fc
181 call error(
"wrong helicity setting in ubarSpi_Weyl")
187 ubarspi(1) = (0d0,0d0)
188 ubarspi(2) = (0d0,0d0)
189 ubarspi(3) = (0d0,0d0)
190 ubarspi(4) = dsqrt(2d0*p0)
191 elseif (i.eq.-1)
then
192 ubarspi(1) = dsqrt(2d0*p0)
193 ubarspi(2) = (0d0,0d0)
194 ubarspi(3) = (0d0,0d0)
195 ubarspi(4) = (0d0,0d0)
197 call error(
"wrong helicity setting in ubarSpi_Weyl")
211 integer,
intent(in):: i
212 complex(8),
intent(in) :: p(4)
213 complex(8) :: vSpi(4)
215 real(8) :: p0,px,py,pz
216 real(8) :: nx,ny,nz,theta,phi
217 real(8) :: ct,ct2,st,st2,cphi,sphi
218 complex(8) :: fc2, fc
228 if (cdabs(fc2).gt.1d-15)
then
233 vspi(3)=(px-(0d0,1d0)*py)/fc
235 elseif (i.eq.-1)
then
237 vspi(2)=(px+(0d0,1d0)*py)/fc
241 call error(
"wrong helicity setting in vSpi_Weyl")
249 vspi(3)=dsqrt(2d0*p0)
251 elseif (i.eq.-1)
then
253 vspi(2)=dsqrt(2d0*p0)
257 call error(
"wrong helicity setting in vSpi_Weyl")
275 complex(8),
intent(in) :: e1(:)
276 complex(8),
intent(in) :: sp(:)
278 real(8),
parameter :: sqrt2 = 1.4142135623730950488016887242096980786d0
289 complex(8),
intent(in) :: e1(:)
290 complex(8),
intent(in) :: sp(:)
292 real(8),
parameter :: sqrt2 = 1.4142135623730950488016887242096980786d0
302 double complex :: sp(1:4)
304 double precision,
parameter :: sqrtfac=1d0/dsqrt(2d0)
316 function psp1_(sp1,sp2)
result(res)
318 complex(8),
intent(in) :: sp1(:)
319 complex(8),
intent(in) :: sp2(:)
322 res = sum(sp1(1:)*sp2(1:))
337 real(8) p0,px,py,pz,fc2
345 fc=cdsqrt( dcmplx(fc2))
352 f(4)=-(px-(0d0,1d0)*py)*fc/fc2
353 elseif (i.eq.-1)
then
356 f(3)=-(px+(0d0,1d0)*py)*fc/fc2
359 print *,
"wrong helicity setting in ubarSpi"
380 real(8) p0,px,py,pz,fc2
388 fc=cdsqrt(dcmplx(fc2))
393 f(2)=(px+(0d0,1d0)*py)*fc/fc2
396 elseif (i.eq.-1)
then
397 f(1)=(px-(0d0,1d0)*py)*fc/fc2
402 print *,
"wrong helicity setting in vSpi"