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.
88 lines
2.7 KiB
88 lines
2.7 KiB
!
|
|
! SPDX-License-Identifier: GPL-3.0-or-later
|
|
! Copyright (C) 2019-2022, respective authors of MCFM.
|
|
!
|
|
|
|
subroutine qqb_twojet_mix_gqsub2(p,msq)
|
|
c--- Routine that provides LO matrix elements for some of the subtraction
|
|
c--- terms with a (gluon,quark) initial state
|
|
c--- Differs from the normal LO routine in the following respects:
|
|
c--- 1. Only computes (q,qbar) and (qbar,q) matrix elements
|
|
c--- 2. For annihilation contribution, sum over final state
|
|
c--- includes a factor of two if identical initial and final states
|
|
implicit none
|
|
include 'types.f'
|
|
include 'mxpart.f'
|
|
include 'nf.f'
|
|
include 'constants.f'
|
|
include 'sprods_com.f'
|
|
include 'msq_mix.f'
|
|
real(dp):: p(mxpart,4),msq(fn:nf,fn:nf),ss,tt,uu,
|
|
& qaii_jj(0:3,nf,nf),qaij_ij(0:3,nf,nf),
|
|
& aqii_jj(0:3,nf,nf),aqij_ij(0:3,nf,nf)
|
|
integer j,k
|
|
|
|
call dotem(4,p,s)
|
|
ss = s(1,2)
|
|
tt = s(1,3)
|
|
uu = s(2,3)
|
|
|
|
call qqb_twojet_ii_jj_mix(qaii_jj,ss,tt,uu)
|
|
call qqb_twojet_ii_jj_mix(qaij_ij,tt,ss,uu)
|
|
|
|
aqii_jj(:,:,:)=qaii_jj(:,:,:)
|
|
aqij_ij(:,:,:)=qaij_ij(:,:,:)
|
|
|
|
c-- for now, no return value; real purpose of this routine is
|
|
c-- to fill the common block msq_mix
|
|
msq=0._dp
|
|
|
|
msq_mix = 0._dp
|
|
do j = fn,nf
|
|
do k = fn,nf
|
|
|
|
c --- qa
|
|
if((j > 0) .and. (k < 0)) then
|
|
if(j == -k) then
|
|
msq_mix(:,j,k) = qaii_jj(:,j,1) + qaii_jj(:,j,2)
|
|
& + qaii_jj(:,j,3) + qaii_jj(:,j,4)
|
|
& - qaii_jj(:,j,j) + qaii_jj(:,j,j)*0.5_dp
|
|
else
|
|
msq_mix(:,j,k) = qaij_ij(:,j,-k)
|
|
end if
|
|
|
|
c --- qq
|
|
c else if((j > 0) .and. (k > 0)) then
|
|
c if(j == k) then
|
|
c msq_mix(:,j,k) = qqij_ij(:,j,k)*half
|
|
c else
|
|
c msq_mix(:,j,k) = qqij_ij(:,j,k)
|
|
c end if
|
|
|
|
c --- aq
|
|
else if((j < 0) .and. (k > 0)) then
|
|
if(k == -j) then
|
|
msq_mix(:,j,k) = aqii_jj(:,k,1) + aqii_jj(:,k,2)
|
|
& + aqii_jj(:,k,3) + aqii_jj(:,k,4)
|
|
& - qaii_jj(:,k,k) + qaii_jj(:,k,k)*0.5_dp
|
|
else
|
|
msq_mix(:,j,k) = aqij_ij(:,-j,k)
|
|
end if
|
|
|
|
c --- aa
|
|
c else if((j < 0) .and. (k < 0)) then
|
|
c if(j == k) then
|
|
c msq_mix(:,j,k) = aaij_ij(:,-j,-k)*half
|
|
c else
|
|
c msq_mix(:,j,k) = aaij_ij(:,-j,-k)
|
|
c end if
|
|
end if
|
|
end do
|
|
end do
|
|
|
|
c--- multiply by factor of N*CF=4, which is the natural factor
|
|
c--- for the sxt interference terms that have a collinear singularity
|
|
msq_mix=msq_mix*(xn*Cf)
|
|
|
|
return
|
|
end
|