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.
136 lines
4.0 KiB
136 lines
4.0 KiB
!
|
|
! SPDX-License-Identifier: GPL-3.0-or-later
|
|
! Copyright (C) 2019-2022, respective authors of MCFM.
|
|
!
|
|
subroutine qqb_dm_monophot_g_Samps(p,i3,i2,i1,i4,i5,i6,amp)
|
|
implicit none
|
|
include 'types.f'
|
|
include 'constants.f'
|
|
include 'mxpart.f'
|
|
include 'dm_params.f'
|
|
include 'zprods_decl.f'
|
|
include 'sprods_com.f'
|
|
real(dp):: p(mxpart,4),q(mxpart,4)
|
|
complex(dp):: amp(2,2,2,2,2)
|
|
integer:: i1,i2,i3,i4,i5,i6
|
|
integer:: h1,h2,h3,h4,h5
|
|
complex(dp):: amp_p(2,2,2),amp_dec(2,2)
|
|
real(dp):: s34,beta,bp
|
|
complex(dp):: s1234
|
|
c=========== q(i1)+g(i2)+qb(i3)+gamma(i4)+x(i5)+x~(i6)
|
|
c---- order is quark helicity,gluon helicity photon helciity dm
|
|
if(xmass>1d-8) then
|
|
c---------generate massless phase space
|
|
call gen_masslessvecs(p,q,i5,i6)
|
|
c--------- generate spinors
|
|
call spinoru(6,q,za,zb)
|
|
else
|
|
c--------massless dm can use usual spinoru
|
|
call spinoru(6,p,za,zb)
|
|
endif
|
|
|
|
amp_p(:,:,:)=czip
|
|
amp(:,:,:,:,:)=czip
|
|
c========== Helicity conserving amplitudes
|
|
|
|
do h1=1,6
|
|
do h2=1,6
|
|
s(h1,h2)=Dble(za(h1,h2)*zb(h2,h1))
|
|
enddo
|
|
enddo
|
|
c------ setupdecay
|
|
|
|
|
|
|
|
s34=Dble(za(i5,i6)*zb(i6,i5))
|
|
beta=sqrt(1d0-4d0*xmass**2/s34)
|
|
bp=0.5d0*(one+beta)
|
|
|
|
s1234= za(i1,i2)*zb(i2,i1) + za(i1,i3)*zb(i3,i1) +
|
|
& za(i2,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i1) +
|
|
& za(i2,i4)*zb(i4,i2) + za(i3,i4)*zb(i4,i3)
|
|
call dm_scal_decay(i5,i6,za,zb,bp,amp_dec)
|
|
|
|
amp_p(1,1,1)= (s1234*zb(i3,i1))/
|
|
& (zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*
|
|
& zb(i4,i3))
|
|
amp_p(1,1,2)=-(((s(i1,i2) + s(i1,i3) + s(i2,i3))*
|
|
& za(i1,i3))/
|
|
& (za(i1,i4)*za(i3,i4)*zb(i2,i1)*
|
|
& zb(i3,i2))) +
|
|
& (za(i1,i2)*
|
|
& (za(i1,i3)*zb(i4,i1) +
|
|
& za(i2,i3)*zb(i4,i2)))/
|
|
& ((s(i1,i2) + s(i1,i4) + s(i2,i4))*
|
|
& za(i1,i4)*zb(i2,i1)) -
|
|
& (za(i2,i3)*
|
|
& (-(za(i1,i2)*zb(i4,i2)) -
|
|
& za(i1,i3)*zb(i4,i3)))/
|
|
& ((s(i2,i3) + s(i2,i4) + s(i3,i4))*
|
|
& za(i3,i4)*zb(i3,i2))
|
|
amp_p(1,2,1)= (za(i1,i4)*
|
|
& (za(i1,i3)*zb(i2,i1) +
|
|
& za(i3,i4)*zb(i4,i2)))/
|
|
& ((s(i1,i2) + s(i1,i4) + s(i2,i4))*
|
|
& za(i1,i2)*zb(i4,i1)) -
|
|
& ((s(i1,i3) + s(i1,i4) + s(i3,i4))*
|
|
& za(i1,i3))/
|
|
& (za(i1,i2)*za(i2,i3)*zb(i4,i1)*
|
|
& zb(i4,i3)) +
|
|
& (za(i3,i4)*
|
|
& (za(i1,i3)*zb(i3,i2) +
|
|
& za(i1,i4)*zb(i4,i2)))/
|
|
& ((s(i2,i3) + s(i2,i4) + s(i3,i4))*
|
|
& za(i2,i3)*zb(i4,i3))
|
|
amp_p(2,1,1)= zb(i3,i1)**3/
|
|
& (zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*
|
|
& zb(i4,i3))
|
|
|
|
|
|
amp_p(1,2,2)=-(za(i1,i3)**3/
|
|
& (za(i1,i2)*za(i1,i4)*za(i2,i3)*
|
|
& za(i3,i4)))
|
|
amp_p(2,1,2)= ((s(i1,i3) + s(i1,i4) + s(i3,i4))*
|
|
& zb(i3,i1))/
|
|
& (za(i1,i4)*za(i3,i4)*zb(i2,i1)*
|
|
& zb(i3,i2)) -
|
|
& ((za(i2,i3)*zb(i3,i1) +
|
|
& za(i2,i4)*zb(i4,i1))*zb(i4,i3))/
|
|
& ((s(i2,i3) + s(i2,i4) + s(i3,i4))*
|
|
& za(i3,i4)*zb(i3,i2)) -
|
|
& (zb(i4,i1)*
|
|
& (za(i1,i2)*zb(i3,i1) +
|
|
& za(i2,i4)*zb(i4,i3)))/
|
|
& ((s(i1,i2) + s(i1,i4) + s(i2,i4))*
|
|
& za(i1,i4)*zb(i2,i1))
|
|
amp_p(2,2,1)=-((zb(i2,i1)*
|
|
& (za(i1,i4)*zb(i3,i1) +
|
|
& za(i2,i4)*zb(i3,i2)))/
|
|
& ((s(i1,i2) + s(i1,i4) + s(i2,i4))*
|
|
& za(i1,i2)*zb(i4,i1))) +
|
|
& ((-(za(i2,i4)*zb(i2,i1)) -
|
|
& za(i3,i4)*zb(i3,i1))*zb(i3,i2))/
|
|
& ((s(i2,i3) + s(i2,i4) + s(i3,i4))*
|
|
& za(i2,i3)*zb(i4,i3)) +
|
|
& ((s(i1,i2) + s(i1,i3) + s(i2,i3))*
|
|
& zb(i3,i1))/
|
|
& (za(i1,i2)*za(i2,i3)*zb(i4,i1)*
|
|
& zb(i4,i3))
|
|
amp_p(2,2,2)=-((s1234*za(i1,i3))/(za(i1,i2)*za(i1,i4)*
|
|
& za(i2,i3)*za(i3,i4)))
|
|
|
|
|
|
do h1=1,2
|
|
do h2=1,2
|
|
do h3=1,2
|
|
do h4=1,2
|
|
do h5=1,2
|
|
amp(h1,h2,h3,h4,h5)=amp_p(h1,h2,h3)*amp_dec(h4,h5)
|
|
enddo
|
|
enddo
|
|
enddo
|
|
enddo
|
|
enddo
|
|
|
|
return
|
|
end
|