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.
201 lines
4.2 KiB
201 lines
4.2 KiB
!
|
|
! SPDX-License-Identifier: GPL-3.0-or-later
|
|
! Copyright (C) 2019-2022, respective authors of MCFM.
|
|
!
|
|
subroutine ckmfill(nwz)
|
|
implicit none
|
|
include 'types.f'
|
|
include 'nf.f'
|
|
include 'mxpart.f'
|
|
include 'ckm.f'
|
|
include 'ckm1.f'
|
|
include 'ewcouple.f'
|
|
include 'zcouple.f'
|
|
include 'Cabibbo.f'
|
|
include 'first.f'
|
|
include 'blha.f'
|
|
integer:: nwz,j,k
|
|
real(dp):: rtxw
|
|
|
|
c--- if using 'CKMrotate', store a copy of VCKM and then set to a diagonal matrix
|
|
if (first) then
|
|
if (CKMdiag) then
|
|
Vud = 1._dp
|
|
Vus = 0._dp
|
|
Vub = 0._dp
|
|
Vcd = 0._dp
|
|
Vcs = 1._dp
|
|
Vcb = 0._dp
|
|
endif
|
|
|
|
if (CKMrotate ) then
|
|
Vud_rotate = Vud
|
|
Vus_rotate = Vus
|
|
Vub_rotate = Vub
|
|
Vcd_rotate = Vcd
|
|
Vcs_rotate = Vcs
|
|
Vcb_rotate = Vcb
|
|
Vud = 1._dp
|
|
Vus = 0._dp
|
|
Vub = 0._dp
|
|
Vcd = 0._dp
|
|
Vcs = 1._dp
|
|
Vcb = 0._dp
|
|
endif
|
|
first = .false.
|
|
endif
|
|
|
|
c---- initialize Vsq
|
|
do j=-nf,nf
|
|
do k=-nf,nf
|
|
Vsq(j,k)=0._dp
|
|
enddo
|
|
enddo
|
|
c set all other couplings (for W+2 jets) to zero too
|
|
flsq=0._dp
|
|
frsq=0._dp
|
|
fl=0._dp
|
|
fr=0._dp
|
|
|
|
do j=-nf,nf
|
|
do k=-nf,nf
|
|
gl(j,k)=0._dp
|
|
gr(j,k)=0._dp
|
|
glsq(j,k)=0._dp
|
|
grsq(j,k)=0._dp
|
|
enddo
|
|
enddo
|
|
|
|
c case BLHA
|
|
if (useblha==1) then
|
|
c Vsq(1,-1)=1._dp
|
|
c Vsq(2,-2)=1._dp
|
|
c Vsq(3,-3)=1._dp
|
|
c Vsq(4,-4)=1._dp
|
|
c Vsq(5,-5)=1._dp
|
|
Vsq(2,-1)=Vud**2
|
|
Vsq(2,-3)=Vus**2
|
|
Vsq(2,-5)=Vub**2
|
|
Vsq(4,-1)=Vcd**2
|
|
Vsq(4,-3)=Vcs**2
|
|
Vsq(4,-5)=Vcb**2
|
|
Vsq(1,-2)=Vud**2
|
|
Vsq(3,-2)=Vus**2
|
|
Vsq(5,-2)=Vub**2
|
|
Vsq(1,-4)=Vcd**2
|
|
Vsq(3,-4)=Vcs**2
|
|
Vsq(5,-4)=Vcb**2
|
|
endif
|
|
c case Z0
|
|
if (nwz == 0) then
|
|
Vsq(1,-1)=1._dp
|
|
Vsq(2,-2)=1._dp
|
|
Vsq(3,-3)=1._dp
|
|
Vsq(4,-4)=1._dp
|
|
Vsq(5,-5)=1._dp
|
|
rtxw=sqrt(xw)
|
|
do j=1,5
|
|
gl(+j,-j)=l(j)*gw*rtxw
|
|
gr(+j,-j)=r(j)*gw*rtxw
|
|
enddo
|
|
fl=le*gw*rtxw
|
|
fr=re*gw*rtxw
|
|
do j=1,nf
|
|
glsq(j,-j)=gl(j,-j)**2
|
|
grsq(j,-j)=gr(j,-j)**2
|
|
enddo
|
|
flsq=fl**2
|
|
frsq=fr**2
|
|
return
|
|
|
|
c case W+
|
|
elseif (nwz == 1) then
|
|
|
|
Vsq(2,-1)=Vud**2
|
|
Vsq(2,-3)=Vus**2
|
|
Vsq(2,-5)=Vub**2
|
|
Vsq(4,-1)=Vcd**2
|
|
Vsq(4,-3)=Vcs**2
|
|
Vsq(4,-5)=Vcb**2
|
|
|
|
glsq(2,-1)=gwsq/2._dp
|
|
glsq(2,-3)=gwsq/2._dp
|
|
glsq(2,-5)=gwsq/2._dp
|
|
glsq(4,-1)=gwsq/2._dp
|
|
glsq(4,-3)=gwsq/2._dp
|
|
glsq(4,-5)=gwsq/2._dp
|
|
flsq=gwsq/2._dp
|
|
fl=sqrt(flsq)
|
|
|
|
|
|
c case W-
|
|
elseif (nwz == -1) then
|
|
|
|
Vsq(1,-2)=Vud**2
|
|
Vsq(3,-2)=Vus**2
|
|
Vsq(5,-2)=Vub**2
|
|
Vsq(1,-4)=Vcd**2
|
|
Vsq(3,-4)=Vcs**2
|
|
Vsq(5,-4)=Vcb**2
|
|
|
|
glsq(1,-2)=gwsq/2._dp
|
|
glsq(3,-2)=gwsq/2._dp
|
|
glsq(5,-2)=gwsq/2._dp
|
|
glsq(1,-4)=gwsq/2._dp
|
|
glsq(3,-4)=gwsq/2._dp
|
|
glsq(5,-4)=gwsq/2._dp
|
|
flsq=gwsq/2._dp
|
|
fl=sqrt(flsq)
|
|
|
|
c case (W+ + W-)
|
|
elseif (nwz == 2) then
|
|
|
|
c case W+
|
|
Vsq(2,-1)=Vud**2
|
|
Vsq(2,-3)=Vus**2
|
|
Vsq(2,-5)=Vub**2
|
|
Vsq(4,-1)=Vcd**2
|
|
Vsq(4,-3)=Vcs**2
|
|
Vsq(4,-5)=Vcb**2
|
|
glsq(2,-1)=gwsq/2._dp
|
|
glsq(2,-3)=gwsq/2._dp
|
|
glsq(2,-5)=gwsq/2._dp
|
|
glsq(4,-1)=gwsq/2._dp
|
|
glsq(4,-3)=gwsq/2._dp
|
|
glsq(4,-5)=gwsq/2._dp
|
|
c case W-
|
|
Vsq(1,-2)=Vud**2
|
|
Vsq(3,-2)=Vus**2
|
|
Vsq(5,-2)=Vub**2
|
|
Vsq(1,-4)=Vcd**2
|
|
Vsq(3,-4)=Vcs**2
|
|
Vsq(5,-4)=Vcb**2
|
|
glsq(1,-2)=gwsq/2._dp
|
|
glsq(3,-2)=gwsq/2._dp
|
|
glsq(5,-2)=gwsq/2._dp
|
|
glsq(1,-4)=gwsq/2._dp
|
|
glsq(3,-4)=gwsq/2._dp
|
|
glsq(5,-4)=gwsq/2._dp
|
|
|
|
flsq=gwsq/2._dp
|
|
fl=sqrt(flsq)
|
|
|
|
endif
|
|
|
|
do j=-nf,nf
|
|
do k=-nf,nf
|
|
Vsq(j,k)=Vsq(k,j)
|
|
glsq(j,k)=glsq(k,j)
|
|
grsq(j,k)=grsq(k,j)
|
|
VV(j,k)=sqrt(Vsq(j,k))
|
|
gl(j,k)=sqrt(glsq(j,k))
|
|
gr(j,k)=sqrt(grsq(j,k))
|
|
enddo
|
|
enddo
|
|
do j=1,5
|
|
Vsum(+j)=Vsq(+j,-1)+Vsq(+j,-2)+Vsq(+j,-3)+Vsq(+j,-4)+Vsq(+j,-5)
|
|
Vsum(-j)=Vsq(-j,+1)+Vsq(-j,+2)+Vsq(-j,+3)+Vsq(-j,+4)+Vsq(-j,+5)
|
|
enddo
|
|
Vsum(0)=0
|
|
return
|
|
end
|