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.
100 lines
2.5 KiB
100 lines
2.5 KiB
!
|
|
! SPDX-License-Identifier: GPL-3.0-or-later
|
|
! Copyright (C) 2019-2022, respective authors of MCFM.
|
|
!
|
|
subroutine dmmonojn_scal(j1,j2,j5,p,n1,qqbg)
|
|
implicit none
|
|
include 'types.f'
|
|
include 'constants.f'
|
|
include 'mxpart.f'
|
|
include 'dm_params.f'
|
|
include 'zprods_decl.f'
|
|
c----- ME squared for q(j1)+qb(j2)+x(j3)+x~(j4)+g(j5) X n_nu
|
|
integer:: j1,j2,j5,j3,j4
|
|
real(dp):: n1(4),p(mxpart,4),q(mxpart,4)
|
|
complex(dp)::amp(2,2,2),zab(mxpart,mxpart),zba(mxpart,mxpart)
|
|
real(dp):: qqbg(2)
|
|
c real(dp):: z1jetn
|
|
c----- return as funciton of quark line helicity
|
|
integer:: h1,h2,h3
|
|
complex(dp):: amp_p(2),amp_dec(2,2)
|
|
real(dp):: bp,beta,s34
|
|
real(dp):: fac
|
|
complex(dp):: s(mxpart,mxpart)
|
|
|
|
fac=0.25d0
|
|
|
|
j3=3
|
|
j4=4
|
|
|
|
call checkndotp(p,n1,j5)
|
|
|
|
if(xmass>1d-8) then
|
|
c---------generate massless phase space
|
|
call gen_masslessvecs(p,q,j3,j4)
|
|
c---------generate spinors
|
|
call spinoru(5,q,za,zb)
|
|
call spinork(5,q,zab,zba,n1)
|
|
else
|
|
c--------massless dm can use usual spinoru
|
|
call spinoru(5,p,za,zb)
|
|
call spinork(5,p,zab,zba,n1)
|
|
|
|
endif
|
|
|
|
|
|
do h1=1,5
|
|
do h2=1,5
|
|
s(h1,h2)=za(h1,h2)*zb(h2,h1)
|
|
enddo
|
|
enddo
|
|
|
|
cbp = 1/2(1+beta)
|
|
c beta = sqrt(1-4xmass**2/s34)
|
|
s34=Dble(za(j3,j4)*zb(j4,j3))
|
|
beta=sqrt(1d0-4d0*xmass**2/s34)
|
|
bp=0.5d0*(one+beta)
|
|
|
|
c write(6,*) 'In gvec ',j3,j4,bp,s34,xmass
|
|
call dm_scal_decay(j3,j4,za,zb,bp,amp_dec)
|
|
c------ bulid amplitudes
|
|
c------- helicity conserving
|
|
|
|
amp_p(1)=(za(j1,j2)*zab(j1,j1))/s(j1,j5) -
|
|
& (za(j2,j5)*zab(j1,j5))/s(j1,j5) -
|
|
& (za(j1,j2)*zab(j2,j2))/s(j2,j5)
|
|
& - (za(j1,j5)*zab(j2,j5))/s(j2,j5)
|
|
amp_p(2)=-((zb(j2,j1)*zba(j1,j1))/s(j1,j5)) +
|
|
& (zb(j5,j2)*zba(j1,j5))/s(j1,j5) +
|
|
& (zb(j2,j1)*zba(j2,j2))/s(j2,j5)
|
|
& + (zb(j5,j1)*zba(j2,j5))/s(j2,j5)
|
|
|
|
|
|
|
|
do h1=1,2
|
|
do h2=1,2
|
|
do h3=1,2
|
|
amp(h1,h2,h3)=amp_p(h1)*amp_dec(h2,h3)
|
|
enddo
|
|
enddo
|
|
enddo
|
|
|
|
|
|
qqbg(:)=0d0
|
|
do h1=1,2
|
|
do h2=1,2
|
|
do h3=1,2
|
|
qqbg(h1)=qqbg(h1)+fac*abs(amp(h1,h2,h3))**2
|
|
enddo
|
|
enddo
|
|
enddo
|
|
|
|
c write(6,*) j1,j2,j5
|
|
c write(6,*) one/16d0*abs(amp(2,2,1))**2/s(j3,j4)**2
|
|
c &/z1jetn(j1,j2,j5,p,n1)
|
|
c write(6,*) one/16d0*abs(amp(2,1,2))**2/s(j3,j4)**2
|
|
c &/z1jetn(j2,j1,j5,p,n1)
|
|
c pause
|
|
|
|
return
|
|
end
|