You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
3.2 KiB

!
! SPDX-License-Identifier: GPL-3.0-or-later
! Copyright (C) 2019-2022, respective authors of MCFM.
!
subroutine gs_wc_dg(p,ig,is,ie,in,jn,je,jb,ja,jt,amp)
implicit none
include 'types.f'
c g(ig)+s(is)-->W^-{e^-(ie)+nbar(in)}+t{W^+[n(jn)+e^+(je)]+b(jb)}+a(ja)
c---- helicities: gs(ht,ha)
c--- labels on amplitudes represent helicities for the heavy quark
c--- and the gluon (ja) respectively
c--- 1 = negative helicity, 2 = positive helicity
c--- heavy quark momentum is made massless (ic) with the gluon momentum ig
include 'constants.f'
include 'mxpart.f'
include 'masses.f'
include 'sprods_com.f'
include 'zprods_com.f'
integer:: is,ig,ie,in,ja,je,jn,jb,jt,i,j
real(dp):: p(mxpart,4)
real(dp):: dot,mtsq,tDa,tDg,bDa,tsq,propd,propt
complex(dp):: amp(2,2)
propd=sqrt((s(je,jn)-wmass**2)**2+(wmass*wwidth)**2)
tsq =s(je,jn)+s(je,jb)+s(je,ja)+s(jn,jb)+s(jn,ja)+s(jb,ja)
propt=sqrt((tsq-mt**2)**2+(mt*twidth)**2)
mtsq=mt**2
bDa=+dot(p,jb,ja)
tDa=+dot(p,je,ja)+dot(p,jn,ja)+dot(p,jb,ja)
tDg=-dot(p,is,ig)-dot(p,ie,ig)-dot(p,in,ig)
amp(1,1)= + mtsq*tDg**(-1)*tDa**(-1) * ( one/four*za(jb,jn)*za(
& ig,ja)*zb(ig,je)*zb(is,jt)/zb(is,ja) )
amp(1,1) = amp(1,1) + mtsq*tDa**(-1) * ( half*za(jb,jn)*za(
& ig,ja)*zb(is,je)/za(ig,jt)/zb(is,ja) )
amp(1,1) = amp(1,1) + tDa**(-1) * ( half*za(jb,jn)*za(ja,jt)
& *zb(is,jt)*zb(je,jt)/zb(is,ja) )
amp(1,1) = amp(1,1) + bDa**(-1) * ( half*za(jb,ja)*za(ja,jn)
& *zb(je,jt) + half*za(jb,ja)*za(jb,jn)*zb(is,jb)*zb(je,jt
& )/zb(is,ja) )
amp(1,2)= + mtsq*tDg**(-1)*tDa**(-1) * ( - one/four*za(jb,jn)*
& za(ig,is)*zb(ig,je)*zb(ja,jt)/za(is,ja) )
amp(1,2) = amp(1,2) + mtsq*tDa**(-1) * ( - half*za(jb,jn)*
& za(ig,is)*zb(ja,je)/za(ig,jt)/za(is,ja) )
amp(1,2) = amp(1,2) + tDa**(-1) * ( - half*za(jb,jn)*za(is,
& jt)*zb(ja,jt)*zb(je,jt)/za(is,ja) - half*za(jb,jn)*zb(
& ja,jt)*zb(ja,je) )
amp(1,2) = amp(1,2) + bDa**(-1) * ( - half*za(jb,jn)*za(is,
& jb)*zb(jb,ja)*zb(je,jt)/za(is,ja) )
amp(2,1)= + mt*mtsq*tDg**(-1)*tDa**(-1) * ( one/four*za(jb,jn)*
& za(ig,ja)*zb(ig,is)*zb(ig,je)/zb(ig,jt)/zb(is,ja) )
amp(2,1) = amp(2,1) + mt*tDa**(-1) * ( half*za(jb,jn)*za(ja,
& jt)*zb(ig,is)*zb(je,jt)/zb(ig,jt)/zb(is,ja) + half*za(
& jb,jn)*za(ja,jt)*zb(is,je)/zb(is,ja) )
amp(2,1) = amp(2,1) + mt*bDa**(-1) * ( half*za(jb,ja)*za(ja,
& jn)*zb(ig,je)/zb(ig,jt) + half*za(jb,ja)*za(jb,jn)*zb(
& ig,je)*zb(is,jb)/zb(ig,jt)/zb(is,ja) )
amp(2,2)= + mt*mtsq*tDg**(-1)*tDa**(-1) * ( - one/four*za(jb,
& jn)*za(ig,is)*zb(ig,ja)*zb(ig,je)/za(is,ja)/zb(ig,jt) )
amp(2,2) = amp(2,2) + mt*tDa**(-1) * ( - half*za(jb,jn)*za(
& is,jt)*zb(ig,ja)*zb(je,jt)/za(is,ja)/zb(ig,jt) - half*
& za(jb,jn)*za(is,jt)*zb(ja,je)/za(is,ja) - half*za(jb,jn
& )*zb(ig,ja)*zb(ja,je)/zb(ig,jt) )
amp(2,2) = amp(2,2) + mt*bDa**(-1) * ( - half*za(jb,jn)*za(
& is,jb)*zb(jb,ja)*zb(ig,je)/za(is,ja)/zb(ig,jt) )
do i=1,2
do j=1,2
amp(i,j)=amp(i,j)/propd/propt
enddo
enddo
return
end