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.
87 lines
2.8 KiB
87 lines
2.8 KiB
!
|
|
! SPDX-License-Identifier: GPL-3.0-or-later
|
|
! Copyright (C) 2019-2022, respective authors of MCFM.
|
|
!
|
|
|
|
subroutine HHamps(p1,p2,p3,p4,gauge)
|
|
use loopI3_generic
|
|
use loopI4_generic
|
|
implicit none
|
|
include 'scalarselect.f'
|
|
include 'types.f'
|
|
c-- Formula taken from Glover and van der Bij
|
|
c-- Nucl. Phys. B309 (1988) 202
|
|
|
|
include 'constants.f'
|
|
include 'cplx.h'
|
|
include 'masses.f'
|
|
include 'scale.f'
|
|
include 'yukawas.f'
|
|
integer n,nmin
|
|
real(dp):: p1(4),p2(4),p3(4),p4(4),ss,tt,uu,
|
|
& p3sq,p4sq,mQsq,mhsq,mQsq_yuk
|
|
complex(dp):: triangle(1,2),box(1,2),gauge(1,2),
|
|
& D123,D213,D132,C12,C23,C13,C34
|
|
|
|
c----Signs for momenta chosen such that p1+p2+p3+p4=0
|
|
ss=(p1(4)+p2(4))**2
|
|
& -(p1(1)+p2(1))**2-(p1(2)+p2(2))**2-(p1(3)+p2(3))**2
|
|
tt=(p1(4)+p3(4))**2
|
|
& -(p1(1)+p3(1))**2-(p1(2)+p3(2))**2-(p1(3)+p3(3))**2
|
|
uu=(p2(4)+p3(4))**2
|
|
& -(p2(1)+p3(1))**2-(p2(2)+p3(2))**2-(p2(3)+p3(3))**2
|
|
p3sq=p3(4)**2-p3(1)**2-p3(2)**2-p3(3)**2
|
|
p4sq=p4(4)**2-p4(1)**2-p4(2)**2-p4(3)**2
|
|
mhsq=hmass**2
|
|
|
|
gauge(:,:)=czip
|
|
nmin=4
|
|
if (mc_yuk == 0) nmin=5
|
|
if (mb_yuk == 0) nmin=6
|
|
do n=nmin,6
|
|
if (n == 4) then
|
|
mqsq=mc**2
|
|
mqsq_yuk=mc_yuk**2
|
|
endif
|
|
if (n == 5) then
|
|
mqsq=mb**2
|
|
mqsq_yuk=mb_yuk**2
|
|
endif
|
|
if (n == 6) then
|
|
mqsq=mt**2
|
|
mqsq_yuk=mt_yuk**2
|
|
endif
|
|
|
|
C12=loopI3(0._dp,0._dp ,ss,mQsq,mQsq,mQsq,musq,0)
|
|
C23=loopI3(0._dp,p3sq,uu,mQsq,mQsq,mQsq,musq,0)
|
|
C13=loopI3(0._dp,p3sq,tt,mQsq,mQsq,mQsq,musq,0)
|
|
C34=loopI3(p3sq,p4sq,ss,mQsq,mQsq,mQsq,musq,0)
|
|
D123=loopI4(0._dp,0._dp,p3sq,p4sq,ss,uu,mQsq,mQsq,mQsq,mQsq,musq,0)
|
|
D213=loopI4(0._dp,0._dp,p3sq,p4sq,ss,tt,mQsq,mQsq,mQsq,mQsq,musq,0)
|
|
D132=loopI4(0._dp,p3sq,0._dp,p4sq,tt,uu,mQsq,mQsq,mQsq,mQsq,musq,0)
|
|
|
|
triangle(1,1)=-12._dp*mhsq*sqrt(mQsq*mQsq_yuk)/cplx2(ss-mhsq,hmass*hwidth)
|
|
& *(2._dp+(4._dp*mQsq-ss)*C12)
|
|
triangle(1,2)=czip
|
|
|
|
box(1,1)=-4._dp*mQsq_yuk*(
|
|
& mQsq*(8._dp*mQsq-ss-2._dp*mhsq)*(D123+D213+D132)
|
|
& +(uu*tt-mhsq**2)/ss*(4._dp*mQsq-mhsq)*D132+2._dp+4._dp*mQsq*C12
|
|
& +2._dp/ss*(mhsq-4._dp*mQsq)*((tt-mhsq)*C13+(uu-mhsq)*C23))
|
|
|
|
box(1,2)=-2._dp*mQsq_yuk*(
|
|
& 2._dp*(8._dp*mQsq+ss-2._dp*mhsq)*(mQsq*(D123+D213+D132)-C34)
|
|
& -2._dp*(ss*C12+(tt-mhsq)*C13+(uu-mhsq)*C23)
|
|
& +1._dp/(uu*tt-mhsq**2)*(ss*uu*(8._dp*uu*mQsq-uu**2-mhsq**2)*D123
|
|
& +ss*tt*(8._dp*tt*mQsq-tt**2-mhsq**2)*D213
|
|
& +(8._dp*mQsq+ss-2._dp*mhsq)*(ss*(ss-2._dp*mhsq)*C12
|
|
& +ss*(ss-4._dp*mhsq)*C34
|
|
& +2._dp*tt*(mhsq-tt)*C13+2._dp*uu*(mhsq-uu)*C23)))
|
|
|
|
gauge(1,1)=gauge(1,1)+triangle(1,1)+box(1,1)
|
|
gauge(1,2)=gauge(1,2)+triangle(1,2)+box(1,2)
|
|
|
|
enddo
|
|
|
|
return
|
|
end
|