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.
 
 
 
 
 
 

86 lines
3.0 KiB

!
! SPDX-License-Identifier: GPL-3.0-or-later
! Copyright (C) 2019-2022, respective authors of MCFM.
!
subroutine dkqqb_tbbdk_gs(p,msqc)
implicit none
include 'types.f'
c***********************************************************************
c Author: J. Campbell, January 2012 *
c *
c Calculates the subtraction term for radiation in the *
c top quark decay for the s-channel single-top processes: *
c *
c [nwz=+1] *
c u(-p1)+dbar(-p2) -> t(n(p3)+e^+(p4)+b(p5)+g(p7)) + b(p6) *
c *
c [nwz=-1] *
c ubar(-p1)+d(-p2) -> t~(e^-(p3)+n(p4)+bbar(p5)+g(p7)) + b(p6) *
c *
c Top is kept strictly on-shell although all spin correlations *
c are retained. *
c *
c NOTE: this routine is a replacement for qqb_tbb_gsdk.f,including *
c the effect of the b-quark mass. In the massless case it is *
c approximately 5% slower than that routine *
c *
c***********************************************************************
include 'constants.f'
include 'nf.f'
include 'mxpart.f'
include 'masses.f'
include 'ptilde.f'
include 'qcdcouple.f'
include 'alfacut.f'
include 'incldip.f'
real(dp):: msq(-nf:nf,-nf:nf),msqc(maxd,-nf:nf,-nf:nf),
& p(mxpart,4),q(mxpart,4),omz,z,fac,ptDpg,pbDpg,ptDpb,pwsq,xr,
& y,ymax,dot
integer:: j,k
do j=-nf,nf
do k=-nf,nf
msqc(1,j,k)=0._dp
enddo
enddo
ndmax=1
incldip(1)=.true.
call wtransform_generic(p,3,4,5,7,q,pbDpg,ptDpg,ptDpb)
pwsq=2._dp*(q(3,4)*q(4,4)-q(3,1)*q(4,1)-q(3,2)*q(4,2)-q(3,3)*q(4,3))
c--- form of subtraction depends on whether b-quark in decay is massless or not
if (abs(dot(p,5,5)) < 1.e-6_dp) then
c----- massless case
omz=ptDpg/(ptDpb+ptDpg-pbDpg)
z=1._dp-omz
xr=sqrt(pwsq/mt**2)
ymax=(1._dp+xr)**2*z*omz/(z+xr**2*omz)
y=2._dp*pbDpg/mt**2/(1._dp-xr)**2
if ((z < 1._dp-aff) .and. (y > aff*ymax)) then
incldip(1)=.false.
return
endif
fac=gsq*cf*(1._dp/pbDpg*(2._dp/omz-1._dp-z)-(mt/ptDpg)**2)
else
c----- massive case
c----- (no alpha-dependence at present)
fac=gsq*cf*((mt**2+mb**2-pwsq)/(ptDpg*pbDpg)
& -(mt/ptDpg)**2-(mb/pbDpg)**2)
endif
call qqb_tbbdk(q,msq)
do j=-nf,nf
do k=-nf,nf
msqc(1,j,k)=fac*msq(j,k)
enddo
enddo
return
end