From d9e10a29f5554f9ea9a6528312f81e6b725de841 Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Thu, 21 Sep 2017 13:42:26 +0200 Subject: [PATCH 01/11] Migrate to JHUGen 7.0.8 --- MELA/fortran/mod_JHUGen.F90 | 1 + MELA/fortran/mod_Misc.F90 | 439 +++++++++++++++++++++++--------- MELA/fortran/mod_Parameters.F90 | 68 ++++- 3 files changed, 371 insertions(+), 137 deletions(-) diff --git a/MELA/fortran/mod_JHUGen.F90 b/MELA/fortran/mod_JHUGen.F90 index 478e7c44..e8b5cc46 100755 --- a/MELA/fortran/mod_JHUGen.F90 +++ b/MELA/fortran/mod_JHUGen.F90 @@ -26,6 +26,7 @@ SUBROUTINE InitFirstTime(pdftable,pdfstrlength,pdfmember) includeInterference=.true. includeGammaStar=.true. + MPhotonCutoff=4d0*GeV WidthScheme=0 PDFSet=3 ! 1: CTEQ6L1 2: MRSW with best fit, 2xx: MSTW with eigenvector set xx=01..40 LHAPDFString = pdftable diff --git a/MELA/fortran/mod_Misc.F90 b/MELA/fortran/mod_Misc.F90 index 92fc65af..d30a69bd 100755 --- a/MELA/fortran/mod_Misc.F90 +++ b/MELA/fortran/mod_Misc.F90 @@ -14,6 +14,7 @@ MODULE ModMisc MODULE PROCEDURE MinkowskyProduct MODULE PROCEDURE MinkowskyProductC MODULE PROCEDURE MinkowskyProductRC + MODULE PROCEDURE MinkowskyProductCR END INTERFACE OPERATOR (.dot.) INTERFACE OPERATOR (.cross.) @@ -72,6 +73,18 @@ FUNCTION MinkowskyProductRC(p1,p2) END FUNCTION MinkowskyProductRC +FUNCTION MinkowskyProductCR(p1,p2) +implicit none +real(8), intent(in) :: p2(1:4) +complex(8), intent(in) :: p1(1:4) +complex(8) :: MinkowskyProductCR + + MinkowskyProductCR = p1(1)*p2(1) & + - p1(2)*p2(2) & + - p1(3)*p2(3) & + - p1(4)*p2(4) +END FUNCTION MinkowskyProductCR + double complex function et1(e1,e2,e3,e4) implicit none complex(8), intent(in) :: e1(4), e2(4), e3(4), e4(4) @@ -399,8 +412,6 @@ FUNCTION LeviCiv(e1,e2,e3,e4) END FUNCTION - - FUNCTION pol_gluon_incoming(p,hel) implicit none complex(8) :: pol_gluon_incoming(1:4) @@ -420,8 +431,6 @@ FUNCTION pol_gluon_incoming(p,hel) cphi= p(2)/pv/st sphi= p(3)/pv/st endif - - ! -- distinguish between positive and negative energies ! if ( p(1) .gt. 0.0_dp) then ! hel=hel @@ -437,15 +446,9 @@ FUNCTION pol_gluon_incoming(p,hel) pol_gluon_incoming(2) = ct*cphi - (0d0,1d0)*hel*sphi pol_gluon_incoming(3) = ct*sphi + (0d0,1d0)*hel*cphi pol_gluon_incoming(4) = -st - - pol_gluon_incoming(2:4) = pol_gluon_incoming(2:4)/dsqrt(2.0d0) - -END FUNCTION - - - - + pol_gluon_incoming(2:4) = pol_gluon_incoming(2:4)/dsqrt(2.0d0) +END FUNCTION FUNCTION pol_Zff_outgoing(pf,pfbar,hel) ! does not contain the division by 1/q^2 as in pol_dk2mom implicit none @@ -453,8 +456,6 @@ FUNCTION pol_Zff_outgoing(pf,pfbar,hel) ! does not contain the division by 1/q^ integer :: hel real(8):: pf(1:4),pfbar(1:4) complex(8) :: Ub(1:4),V(1:4) - - Ub(1:4) = ubar_spinor(pf,hel) V(1:4) = v_spinor(pfbar,-hel) @@ -463,9 +464,8 @@ FUNCTION pol_Zff_outgoing(pf,pfbar,hel) ! does not contain the division by 1/q^ pol_Zff_outgoing(2)=-(-Ub(1)*V(4)+V(1)*Ub(4)-Ub(2)*V(3)+V(2)*Ub(3)) pol_Zff_outgoing(3)=-(0d0,1d0)*(Ub(1)*V(4)+V(1)*Ub(4)-Ub(2)*V(3)-V(2)*Ub(3)) pol_Zff_outgoing(4)=-(Ub(2)*V(4)-V(2)*Ub(4)-Ub(1)*V(3)+V(1)*Ub(3)) - RETURN -END FUNCTION +END FUNCTION ! ubar spinor, massless @@ -509,8 +509,6 @@ FUNCTION ubar_spinor(p,hel) RETURN END FUNCTION - - ! -- v0 spinor, massless FUNCTION v_spinor(p,hel) implicit none @@ -552,6 +550,165 @@ FUNCTION v_spinor(p,hel) RETURN END FUNCTION +function Chir_Weyl(sign,sp) ! Chir = sp.omega_sign = omega_sign.sp +implicit none +integer :: sign +double complex :: sp(1:4) +double complex :: Chir_Weyl(1:4) + if(sign.eq.+1) then !omega_+ + Chir_Weyl(1) = sp(1) + Chir_Weyl(2) = sp(2) + Chir_Weyl(3) = 0d0 + Chir_Weyl(4) = 0d0 + else !omega_- + Chir_Weyl(1) = 0d0 + Chir_Weyl(2) = 0d0 + Chir_Weyl(3) = sp(3) + Chir_Weyl(4) = sp(4) + endif + return +end function + +FUNCTION vbqq_Weyl(sp1,sp2) +implicit none +complex(8), intent(in) :: sp1(:), sp2(:) +integer, parameter :: Dv=4 +integer :: i +complex(8) :: vbqq_Weyl(Dv) +complex(8) :: rr, va(Dv),sp1a(4) + + va=(0d0,0d0) + vbqq_Weyl=(0d0,0d0) + + do i=1,Dv + if (i.eq.1) then + va(1)=(1d0,0d0) + else + va(i)=(-1d0,0d0) + endif + sp1a=spb2_Weyl(sp1,va) + + + rr=sum(sp1a(1:4)*sp2(1:4)) + if (i.eq.1) then + vbqq_Weyl = vbqq_Weyl + rr*va + else + vbqq_Weyl = vbqq_Weyl - rr*va + endif + va(i)=(0d0,0d0) + enddo + +END FUNCTION + +function spb2_Weyl(sp,v) +implicit none +complex(8), intent(in) :: sp(:),v(:) +complex(8) :: spb2_Weyl(4) +complex(8) :: x0(4,4),xx(4,4),xy(4,4) +complex(8) :: xz(4,4),x5(4,4) +complex(8) :: y1,y2,y3,y4,bp,bm,cp,cm +integer :: i,i1,i2,i3,Dv,Ds,imax + + Ds = 4 + Dv = 4 + imax = Ds/4 + + do i=1,imax + i1= 1+4*(i-1) + i2=i1+3 + + y1=sp(i1) + y2=sp(i1+1) + y3=sp(i1+2) + y4=sp(i1+3) + + x0(1,i)=y3 + x0(2,i)=y4 + x0(3,i)=y1 + x0(4,i)=y2 + + xx(1,i) = y4 + xx(2,i) = y3 + xx(3,i) = -y2 + xx(4,i) = -y1 + + xy(1,i)=(0d0,1d0)*y4 + xy(2,i)=-(0d0,1d0)*y3 + xy(3,i)=-(0d0,1d0)*y2 + xy(4,i)=(0d0,1d0)*y1 + + xz(1,i)=y3 + xz(2,i)=-y4 + xz(3,i)=-y1 + xz(4,i)=y2 + + x5(1,i)=y1 + x5(2,i)=y2 + x5(3,i)=-y3 + x5(4,i)=-y4 + enddo + + + do i=1,4 + spb2_Weyl(i)=v(1)*x0(i,1)-v(2)*xx(i,1)-v(3)*xy(i,1)-v(4)*xz(i,1) + enddo +end function + +function spi2_Weyl(v,sp) +implicit none +complex(8), intent(in) :: sp(:),v(:) +complex(8) :: spi2_Weyl(4) +complex(8) :: x0(4,4),xx(4,4),xy(4,4) +complex(8) :: xz(4,4),x5(4,4) +complex(8) :: y1,y2,y3,y4,bp,bm,cp,cm +integer :: i,i1,i2,i3,imax,Dv,Ds + + Ds = 4 + Dv = 4 + + imax = Ds/4 + + do i=1,imax + i1= 1+4*(i-1) + i2=i1+3 + + y1=sp(i1) + y2=sp(i1+1) + y3=sp(i1+2) + y4=sp(i1+3) + + x0(1,i)=y3 + x0(2,i)=y4 + x0(3,i)=y1 + x0(4,i)=y2 + + + xx(1,i) = -y4 + xx(2,i) = -y3 + xx(3,i) = y2 + xx(4,i) = y1 + + + xy(1,i)=(0d0,1d0)*y4 + xy(2,i)=-(0d0,1d0)*y3 + xy(3,i)=-(0d0,1d0)*y2 + xy(4,i)=(0d0,1d0)*y1 + + xz(1,i)=-y3 + xz(2,i)=y4 + xz(3,i)=y1 + xz(4,i)=-y2 + + x5(1,i)=y1 + x5(2,i)=y2 + x5(3,i)=-y3 + x5(4,i)=-y4 + enddo + do i=1,4 + spi2_Weyl(i)=v(1)*x0(i,1)-v(2)*xx(i,1) -v(3)*xy(i,1)-v(4)*xz(i,1) + enddo +end function + @@ -1034,187 +1191,187 @@ end subroutine convert_to_MCFM !might not be correct in this context !======================================================================== - SUBROUTINE EvaluateSpline(EvalPoint, SplineData, SplineDataLength, TheResult) - !SplineData: SplineDataLength by 2 array - ! SplineData(1:SplineDataLength,1) are the x values - ! SplineData(1:SplineDataLength,2) are the corresponding y values +SUBROUTINE EvaluateSpline(EvalPoint, SplineData, SplineDataLength, TheResult) +!SplineData: SplineDataLength by 2 array +! SplineData(1:SplineDataLength,1) are the x values +! SplineData(1:SplineDataLength,2) are the corresponding y values - IMPLICIT NONE +IMPLICIT NONE - INTEGER i,top,gdim,SplineDataLength - REAL(8) u,value,EvalPoint - REAL(8), intent(out) :: TheResult - REAL(8), dimension(SplineDataLength) :: bc,cc,dc - REAL(8) :: SplineData(1:SplineDataLength, 1:2) +INTEGER i,top,gdim,SplineDataLength +REAL(8) u,value,EvalPoint +REAL(8), intent(out) :: TheResult +REAL(8), dimension(SplineDataLength) :: bc,cc,dc +REAL(8) :: SplineData(1:SplineDataLength, 1:2) ! u value of M_H at which the spline is to be evaluated - gdim= SplineDataLength +gdim= SplineDataLength - CALL HTO_FMMsplineSingleHt(bc,cc,dc,top,gdim,SplineData(1:SplineDataLength,1),SplineData(1:SplineDataLength,2)) +CALL HTO_FMMsplineSingleHt(bc,cc,dc,top,gdim,SplineData(1:SplineDataLength,1),SplineData(1:SplineDataLength,2)) - u= EvalPoint - CALL HTO_Seval3SingleHt(u,bc,cc,dc,top,gdim,value,xc=SplineData(1:SplineDataLength,1),yc=SplineData(1:SplineDataLength,2)) +u= EvalPoint +CALL HTO_Seval3SingleHt(u,bc,cc,dc,top,gdim,value,xc=SplineData(1:SplineDataLength,1),yc=SplineData(1:SplineDataLength,2)) - TheResult= value +TheResult= value - RETURN +RETURN !----------------------------------------------------------------------- - CONTAINS +CONTAINS - SUBROUTINE HTO_FMMsplineSingleHt(b,c,d,top,gdim,xc,yc) +SUBROUTINE HTO_FMMsplineSingleHt(b,c,d,top,gdim,xc,yc) !--------------------------------------------------------------------------- - INTEGER k,n,i,top,gdim,l +INTEGER k,n,i,top,gdim,l - REAL(8), dimension(gdim) :: xc,yc - REAL(8), dimension(gdim) :: x,y +REAL(8), dimension(gdim) :: xc,yc +REAL(8), dimension(gdim) :: x,y - REAL(8), DIMENSION(gdim) :: b +REAL(8), DIMENSION(gdim) :: b ! linear coeff - REAL(8), DIMENSION(gdim) :: c +REAL(8), DIMENSION(gdim) :: c ! quadratic coeff. - REAL(8), DIMENSION(gdim) :: d +REAL(8), DIMENSION(gdim) :: d ! cubic coeff. - REAL(8) :: t - REAL(8),PARAMETER:: ZERO=0.0, TWO=2.0, THREE=3.0 +REAL(8) :: t +REAL(8),PARAMETER:: ZERO=0.0, TWO=2.0, THREE=3.0 ! The grid - n= gdim - FORALL(l=1:gdim) - x(l)= xc(l) - y(l)= yc(l) - ENDFORALL +n= gdim +FORALL(l=1:gdim) +x(l)= xc(l) +y(l)= yc(l) +ENDFORALL !.....Set up tridiagonal system......................................... ! b=diagonal, d=offdiagonal, c=right-hand side - d(1)= x(2)-x(1) - c(2)= (y(2)-y(1))/d(1) - DO k= 2,n-1 - d(k)= x(k+1)-x(k) - b(k)= TWO*(d(k-1)+d(k)) - c(k+1)= (y(k+1)-y(k))/d(k) - c(k)= c(k+1)-c(k) - END DO +d(1)= x(2)-x(1) +c(2)= (y(2)-y(1))/d(1) +DO k= 2,n-1 +d(k)= x(k+1)-x(k) +b(k)= TWO*(d(k-1)+d(k)) +c(k+1)= (y(k+1)-y(k))/d(k) +c(k)= c(k+1)-c(k) +END DO !.....End conditions. third derivatives at x(1) and x(n) obtained ! from divided differences....................................... - b(1)= -d(1) - b(n)= -d(n-1) - c(1)= ZERO - c(n)= ZERO - IF (n > 3) THEN - c(1)= c(3)/(x(4)-x(2))-c(2)/(x(3)-x(1)) - c(n)= c(n-1)/(x(n)-x(n-2))-c(n-2)/(x(n-1)-x(n-3)) - c(1)= c(1)*d(1)*d(1)/(x(4)-x(1)) - c(n)= -c(n)*d(n-1)*d(n-1)/(x(n)-x(n-3)) - END IF - - DO k=2,n ! forward elimination - t= d(k-1)/b(k-1) - b(k)= b(k)-t*d(k-1) - c(k)= c(k)-t*c(k-1) - END DO - - c(n)= c(n)/b(n) +b(1)= -d(1) +b(n)= -d(n-1) +c(1)= ZERO +c(n)= ZERO +IF (n > 3) THEN +c(1)= c(3)/(x(4)-x(2))-c(2)/(x(3)-x(1)) +c(n)= c(n-1)/(x(n)-x(n-2))-c(n-2)/(x(n-1)-x(n-3)) +c(1)= c(1)*d(1)*d(1)/(x(4)-x(1)) +c(n)= -c(n)*d(n-1)*d(n-1)/(x(n)-x(n-3)) +END IF + +DO k=2,n ! forward elimination +t= d(k-1)/b(k-1) +b(k)= b(k)-t*d(k-1) +c(k)= c(k)-t*c(k-1) +END DO + +c(n)= c(n)/b(n) ! back substitution ( makes c the sigma of text) - DO k=n-1,1,-1 - c(k)= (c(k)-d(k)*c(k+1))/b(k) - END DO +DO k=n-1,1,-1 +c(k)= (c(k)-d(k)*c(k+1))/b(k) +END DO !.....Compute polynomial coefficients................................... - b(n)= (y(n)-y(n-1))/d(n-1)+d(n-1)*(c(n-1)+c(n)+c(n)) - DO k=1,n-1 - b(k)= (y(k+1)-y(k))/d(k)-d(k)*(c(k+1)+c(k)+c(k)) - d(k)= (c(k+1)-c(k))/d(k) - c(k)= THREE*c(k) - END DO - c(n)= THREE*c(n) - d(n)= d(n-1) +b(n)= (y(n)-y(n-1))/d(n-1)+d(n-1)*(c(n-1)+c(n)+c(n)) +DO k=1,n-1 +b(k)= (y(k+1)-y(k))/d(k)-d(k)*(c(k+1)+c(k)+c(k)) +d(k)= (c(k+1)-c(k))/d(k) +c(k)= THREE*c(k) +END DO +c(n)= THREE*c(n) +d(n)= d(n-1) - RETURN +RETURN - END SUBROUTINE HTO_FMMsplineSingleHt +END SUBROUTINE HTO_FMMsplineSingleHt !------------------------------------------------------------------------ - SUBROUTINE HTO_Seval3SingleHt(u,b,c,d,top,gdim,f,fp,fpp,fppp,xc,yc) +SUBROUTINE HTO_Seval3SingleHt(u,b,c,d,top,gdim,f,fp,fpp,fppp,xc,yc) ! --------------------------------------------------------------------------- - REAL(8),INTENT(IN) :: u +REAL(8),INTENT(IN) :: u ! abscissa at which the spline is to be evaluated - INTEGER j,k,n,l,top,gdim +INTEGER j,k,n,l,top,gdim - REAL(8), dimension(gdim) :: xc,yc - REAL(8), dimension(gdim) :: x,y - REAL(8), DIMENSION(gdim) :: b,c,d +REAL(8), dimension(gdim) :: xc,yc +REAL(8), dimension(gdim) :: x,y +REAL(8), DIMENSION(gdim) :: b,c,d ! linear,quadratic,cubic coeff - REAL(8),INTENT(OUT),OPTIONAL:: f,fp,fpp,fppp +REAL(8),INTENT(OUT),OPTIONAL:: f,fp,fpp,fppp ! function, 1st,2nd,3rd deriv - INTEGER, SAVE :: i=1 - REAL(8) :: dx - REAL(8),PARAMETER:: TWO=2.0, THREE=3.0, SIX=6.0 +INTEGER, SAVE :: i=1 +REAL(8) :: dx +REAL(8),PARAMETER:: TWO=2.0, THREE=3.0, SIX=6.0 ! The grid - n= gdim - FORALL(l=1:gdim) - x(l)= xc(l) - y(l)= yc(l) - ENDFORALL +n= gdim +FORALL(l=1:gdim) +x(l)= xc(l) +y(l)= yc(l) +ENDFORALL !.....First check if u is in the same interval found on the ! last call to Seval............................................. - IF ( (i<1) .OR. (i >= n) ) i=1 - IF ( (u < x(i)) .OR. (u >= x(i+1)) ) THEN - i=1 +IF ( (i<1) .OR. (i >= n) ) i=1 +IF ( (u < x(i)) .OR. (u >= x(i+1)) ) THEN +i=1 ! binary search - j= n+1 - DO - k= (i+j)/2 - IF (u < x(k)) THEN - j= k - ELSE - i= k - ENDIF - IF (j <= i+1) EXIT - ENDDO - ENDIF +j= n+1 +DO +k= (i+j)/2 +IF (u < x(k)) THEN +j= k +ELSE +i= k +ENDIF +IF (j <= i+1) EXIT +ENDDO +ENDIF - dx= u-x(i) +dx= u-x(i) ! evaluate the spline - IF (Present(f)) f= y(i)+dx*(b(i)+dx*(c(i)+dx*d(i))) - IF (Present(fp)) fp= b(i)+dx*(TWO*c(i) + dx*THREE*d(i)) - IF (Present(fpp)) fpp= TWO*c(i) + dx*SIX*d(i) - IF (Present(fppp)) fppp= SIX*d(i) +IF (Present(f)) f= y(i)+dx*(b(i)+dx*(c(i)+dx*d(i))) +IF (Present(fp)) fp= b(i)+dx*(TWO*c(i) + dx*THREE*d(i)) +IF (Present(fpp)) fpp= TWO*c(i) + dx*SIX*d(i) +IF (Present(fppp)) fppp= SIX*d(i) - RETURN +RETURN - END SUBROUTINE HTO_Seval3SingleHt +END SUBROUTINE HTO_Seval3SingleHt - END SUBROUTINE EvaluateSpline +END SUBROUTINE EvaluateSpline function CenterWithStars(string, totallength) implicit none @@ -1234,5 +1391,37 @@ function CenterWithStars(string, totallength) end function +real function infinity() + implicit none + real :: x + x = 0 + infinity=-log(x) +end function infinity + +function CalculatesXsec(Process) + implicit none + integer :: Process + logical :: CalculatesXsec + if (Process.le.2) then + CalculatesXsec=.true. + elseif (Process.eq.50) then + CalculatesXsec=.false. + elseif (Process.eq.60) then + CalculatesXsec=.true. + elseif (Process.eq.61) then + CalculatesXsec=.true. + elseif (Process.eq.62) then + CalculatesXsec=.false. + elseif (Process.ge.66 .and. Process.le.69) then + CalculatesXsec=.true. + elseif (Process.eq.80 .or. Process.eq.90) then + CalculatesXsec=.false. + elseif (Process.ge.110 .and. Process.le.114) then + CalculatesXsec=.true. + else + print *, "Unknown process in CalculatesXsec", process + endif +end function CalculatesXsec + END MODULE diff --git a/MELA/fortran/mod_Parameters.F90 b/MELA/fortran/mod_Parameters.F90 index f3624e81..21fa07d8 100755 --- a/MELA/fortran/mod_Parameters.F90 +++ b/MELA/fortran/mod_Parameters.F90 @@ -3,7 +3,7 @@ MODULE ModParameters save ! ! -character(len=6),parameter :: JHUGen_Version="v7.0.4" +character(len=6),parameter :: JHUGen_Version="v7.0.8" ! ! !===================================================== @@ -20,7 +20,7 @@ MODULE ModParameters integer, public :: FacScheme,RenScheme real(8), public :: MuFacMultiplier,MuRenMultiplier integer, public :: VegasIt1_default,VegasNc0_default,VegasNc1_default,VegasNc2_default -integer, public :: NumHistograms,RequestNLeptons,RequestOS,RequestOSSF +integer, public :: NumHistograms,RequestNLeptons,RequestOS,RequestOSSF,RequestNJets logical, public :: Unweighted,OffShellReson,OffShellV1,OffShellV2,ReadLHEFile,ConvertLHEFile,DoPrintPMZZ logical, public :: ReadCSmax,GenerateEvents,CountTauAsAny,HasLeptonFilter, FoundHiggsMass, FoundHiggsWidth integer, public :: WriteFailedEvents @@ -72,6 +72,7 @@ MODULE ModParameters integer, public :: Br_W_ud_counter=0 integer, public :: Br_counter(1:5,1:5)=0 integer, public :: LeptInEvent(0:8) = 0 +integer, public :: JetsInEvent(0:8) = 0 logical, public :: ReweightDecay = .false. integer, public :: UserSeed = 0 integer, public :: WidthScheme = 0 ! 1=running BW-width, 2=fixed BW-width (default), 3=Passarino's CPS @@ -127,12 +128,17 @@ MODULE ModParameters !===================================================== !cuts - should be set on the command line real(8), public :: pTjetcut = -1d0*GeV ! jet min pt, default is set in main (0 in VH, 15 GeV otherwise) +real(8), public :: etajetcut = -1d0 ! jet max |eta|, default is set in main (4 in offshell VBF, infinity elsewhere) +real(8), public :: detajetcut = -1d0 ! min difference in eta between jets (default 2 in VBF offshell, 0 elsewhere) real(8), public :: Rjet = -1d0 ! jet deltaR, anti-kt algorithm, default is set in main (0 in VH, 0.3 otherwise) real(8), public :: mJJcut = 0d0*GeV ! minimum mJJ for VBF, HJJ, bbH, VH real(8), public :: m4l_minmax(1:2) = (/ -1d0,-1d0 /)*GeV ! min and max for m_4l in off-shell VBF production; default is (-1,-1): m_4l ~ Higgs resonance (on-shell) logical, public :: includeGammaStar = .false. ! include offshell photons? logical, public :: includeVprime = .false. -real(8), public :: MPhotonCutoff = 4d0*GeV ! minimum |mass| for offshell photons when includeGammaStar = .true. +real(8), public :: MPhotonCutoff = -1d0*GeV ! minimum |mass_ll| for offshell photons when includeGammaStar = .true. or in VBF bkg +real(8), public :: pTlepcut = -1d0*GeV +real(8), public :: etalepcut = -1d0 +logical, public :: JetsOppositeEta = .true. !===================================================== @@ -1900,11 +1906,11 @@ FUNCTION IsAQuark(PartType) integer :: PartType IsAQuark=IsUpTypeQuark(PartType) .or. IsDownTypeQuark(PartType) END FUNCTION -FUNCTION IsLHEAQuark(PartType) +FUNCTION IsALHEQuark(PartType) implicit none -logical :: IsLHEAQuark +logical :: IsALHEQuark integer :: PartType - IsLHEAQuark=IsLHEUpTypeQuark(PartType) .or. IsLHEDownTypeQuark(PartType) + IsALHEQuark=IsLHEUpTypeQuark(PartType) .or. IsLHEDownTypeQuark(PartType) END FUNCTION FUNCTION IsALightQuark(PartType) @@ -1913,11 +1919,11 @@ FUNCTION IsALightQuark(PartType) integer :: PartType IsALightQuark=IsUpTypeLightQuark(PartType) .or. IsDownTypeQuark(PartType) END FUNCTION -FUNCTION IsLHEALightQuark(PartType) +FUNCTION IsALHELightQuark(PartType) implicit none -logical :: IsLHEALightQuark +logical :: IsALHELightQuark integer :: PartType - IsLHEALightQuark=IsLHEUpTypeLightQuark(PartType) .or. IsLHEDownTypeQuark(PartType) + IsALHELightQuark=IsLHEUpTypeLightQuark(PartType) .or. IsLHEDownTypeQuark(PartType) END FUNCTION @@ -1948,6 +1954,36 @@ FUNCTION IsALHELepton(PartType)! note that lepton means charged lepton here END FUNCTION +FUNCTION IsAGluon(PartType) +implicit none +logical :: IsAGluon +integer :: PartType + IsAGluon = (abs(PartType).eq.Glu_) +END FUNCTION + +FUNCTION IsALHEGluon(PartType) +implicit none +logical :: IsALHEGluon +integer :: PartType + IsALHEGluon = (abs(PartType).eq.convertLHE(Glu_)) +END FUNCTION + + +FUNCTION IsAJet(PartType) +implicit none +logical :: IsAJet +integer :: PartType + IsAJet = (IsALightQuark(PartType) .or. IsAGluon(PartType)) +END FUNCTION + +FUNCTION IsALHEJet(PartType) +implicit none +logical :: IsALHEJet +integer :: PartType + IsALHEJet = (IsALHELightQuark(PartType) .or. IsALHEGluon(PartType)) +END FUNCTION + + FUNCTION IsABoson(PartType) implicit none logical :: IsABoson @@ -2284,12 +2320,13 @@ subroutine ReadCommandLineArgument_logical(argument, argumentname, success, dest end subroutine ReadCommandLineArgument_logical -subroutine ReadCommandLineArgument_integer(argument, argumentname, success, dest, SetLastArgument, success2, success3, success4, success5) +subroutine ReadCommandLineArgument_integer(argument, argumentname, success, dest, SetLastArgument, success2, success3, success4, success5, multiply) implicit none character(len=*) :: argument, argumentname integer, intent(inout) :: dest logical, intent(inout) :: success logical, optional, intent(inout) :: SetLastArgument, success2, success3, success4, success5 +integer, optional, intent(in) :: multiply integer :: length if (present(SetLastArgument)) SetLastArgument=.false. @@ -2298,6 +2335,7 @@ subroutine ReadCommandLineArgument_integer(argument, argumentname, success, dest if( argument(1:length+1) .eq. trim(argumentname)//"=" ) then read(argument(length+2:len(argument)), *) dest + if (present(multiply)) dest = dest*multiply success=.true. if (present(SetLastArgument)) SetLastArgument=.true. if (present(success2)) success2=.true. @@ -2309,12 +2347,13 @@ subroutine ReadCommandLineArgument_integer(argument, argumentname, success, dest end subroutine ReadCommandLineArgument_integer -subroutine ReadCommandLineArgument_real8(argument, argumentname, success, dest, SetLastArgument, success2, success3, success4, success5) +subroutine ReadCommandLineArgument_real8(argument, argumentname, success, dest, SetLastArgument, success2, success3, success4, success5, multiply) implicit none character(len=*) :: argument, argumentname real(8), intent(inout) :: dest logical, intent(inout) :: success logical, optional, intent(inout) :: SetLastArgument, success2, success3, success4, success5 +real(8), optional, intent(in) :: multiply integer :: length if (present(SetLastArgument)) SetLastArgument=.false. @@ -2323,6 +2362,7 @@ subroutine ReadCommandLineArgument_real8(argument, argumentname, success, dest, if( argument(1:length+1) .eq. trim(argumentname)//"=" ) then read(argument(length+2:len(argument)), *) dest + if (present(multiply)) dest = dest*multiply success=.true. if (present(SetLastArgument)) SetLastArgument=.true. if (present(success2)) success2=.true. @@ -2334,13 +2374,15 @@ subroutine ReadCommandLineArgument_real8(argument, argumentname, success, dest, end subroutine ReadCommandLineArgument_real8 -subroutine ReadCommandLineArgument_complex8(argument, argumentname, success, dest, SetLastArgument, success2, success3, success4, success5) +subroutine ReadCommandLineArgument_complex8(argument, argumentname, success, dest, SetLastArgument, success2, success3, success4, success5, multiply, multiplyreal) implicit none character(len=*) :: argument, argumentname complex(8), intent(inout) :: dest real(8) :: re, im logical, intent(inout) :: success logical, optional, intent(inout) :: SetLastArgument, success2, success3, success4, success5 +complex(8), optional, intent(in) :: multiply +real(8), optional, intent(in) :: multiplyreal integer :: length if (present(SetLastArgument)) SetLastArgument=.false. @@ -2359,6 +2401,8 @@ subroutine ReadCommandLineArgument_complex8(argument, argumentname, success, des endif read(argument(length+2:len(argument)), *) re, im dest = dcmplx(re, im) + if (present(multiply)) dest = dest*multiply + if (present(multiplyreal)) dest = dest*multiplyreal success=.true. if (present(SetLastArgument)) SetLastArgument=.true. if (present(success2)) success2=.true. From 196a748d95af4bc7f5b73743f4375615bfb294fe Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Fri, 22 Sep 2017 12:38:12 +0200 Subject: [PATCH 02/11] Support for Collier, prepare for ggZH and NLO VH --- .gitignore | 20 ++++++- MELA/COLLIER/makefile | 118 ++++++++++++++++++++++++++++++++++++++++++ MELA/COLLIER/setup.sh | 49 ++++++++++++++++++ MELA/fortran/makefile | 30 ++++++++--- MELA/setup.sh | 3 ++ 5 files changed, 210 insertions(+), 10 deletions(-) create mode 100644 MELA/COLLIER/makefile create mode 100644 MELA/COLLIER/setup.sh diff --git a/.gitignore b/.gitignore index 0b8abd75..165ebe0b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,11 @@ *.pyc __init__.py +MELA/data/*.tar.gz* +MELA/data/*/*.tar.gz* MELA/data/*/libmcfm*.so MELA/data/*/libjhugen*.so +MELA/data/*/libcollier*.so MELA/src/*.o MELA/src/*.so @@ -13,6 +16,18 @@ MELA/interface/*.o MELA/interface/*.so MELA/interface/*.d +MELA/COLLIER/*.o +MELA/COLLIER/*.mod +MELA/COLLIER/*.so +MELA/COLLIER/*/* +MELA/COLLIER/*.f +MELA/COLLIER/*.F +MELA/COLLIER/*.F90 +MELA/COLLIER/*.c +MELA/COLLIER/*.cc +MELA/COLLIER/*.h +MELA/COLLIER/*.hh + MELA/fortran/*.o MELA/fortran/*.mod MELA/fortran/*.so @@ -29,7 +44,8 @@ MELA/test/*.out MELA/test/*.ref MELA/test/reference/*.out MELA/test/*.o -MELA/test/*_c.so -MELA/test/*_c.d +MELA/test/*.a +MELA/test/*.so +MELA/test/*.d MELA/test/*.pcm diff --git a/MELA/COLLIER/makefile b/MELA/COLLIER/makefile new file mode 100644 index 00000000..2010a3a1 --- /dev/null +++ b/MELA/COLLIER/makefile @@ -0,0 +1,118 @@ +MAINDIR = . +AUXDIR = $(MAINDIR)/Aux +COLIDIR = $(MAINDIR)/COLI +TENSORSDIR = $(MAINDIR)/tensors +DDLIBDIR = $(MAINDIR)/DDlib +#MODULES=$(MAINDIR)/modules +#OBJECTS=$(MAINDIR)/objects +MODULES=$(MAINDIR) +OBJECTS=$(MAINDIR) +ROOFITINCLUDE = +RM = /bin/rm +INCLUDE = -I$(MAINDIR) $(ROOFITINCLUDE) +Comp = gfort + +ifeq ($(Comp),ifort) + fcomp = ifort -132 -O2-lifcore -fPIC +endif +ifeq ($(Comp),gfort) + fcomp = gfortran -ffixed-line-length-132 -fno-default-integer-8 -fPIC -O2 -funroll-loops -Wtabs +endif + +ifeq ($(Comp),gfort) + ccomp = gcc +endif +ifeq ($(Comp),ifort) + ccomp = icc +endif + +ifeq ($(Comp),gfort) + clib = -lm -lgfortran +endif +ifeq ($(Comp),ifort) + clib = -lm -lirc +endif + + +LIB = libcollier.so + +Deps = $(MAINDIR)/collier_global.F90 \ + $(AUXDIR)/Combinatorics.F90 \ + $(AUXDIR)/master.F90 \ + $(COLIDIR)/coli_aux2.F90 \ + $(COLIDIR)/coli_stat.F90 \ + $(MAINDIR)/collier_aux.F90 \ + $(AUXDIR)/cache.F90 \ + $(TENSORSDIR)/InitTensors.F90 \ + $(MAINDIR)/collier_init.F90 \ + $(COLIDIR)/reductionAB.F90 \ + $(COLIDIR)/reductionC.F90 \ + $(COLIDIR)/reductionD.F90 \ + $(COLIDIR)/reductionEFG.F90 \ + $(COLIDIR)/reductionTN.F90 \ + $(MAINDIR)/collier_coefs.F90 \ + $(TENSORSDIR)/BuildTensors.F90 \ + $(TENSORSDIR)/TensorReduction.F90 \ + $(MAINDIR)/collier_tensors.F90 \ + $(DDLIBDIR)/DD_global.F90 \ + $(MAINDIR)/COLLIER.F90 \ + $(COLIDIR)/coli_b0.F \ + $(COLIDIR)/coli_d0.F \ + $(COLIDIR)/coli_d0reg.F \ + $(COLIDIR)/coli_aux.F \ + $(COLIDIR)/coli_c0.F \ + $(DDLIBDIR)/DD_aux.F \ + $(DDLIBDIR)/DD_5pt.F \ + $(DDLIBDIR)/DD_6pt.F \ + $(DDLIBDIR)/DD_3pt.F \ + $(DDLIBDIR)/DD_to_COLLIER.F \ + $(DDLIBDIR)/DD_2pt.F + +Objs = collier_global.o \ + Aux_Combinatorics.o \ + Aux_master.o \ + COLI_coli_aux2.o \ + COLI_coli_stat.o \ + collier_aux.o \ + Aux_cache.o \ + tensors_InitTensors.o \ + collier_init.o \ + COLI_reductionAB.o \ + COLI_reductionC.o \ + COLI_reductionD.o \ + COLI_reductionEFG.o \ + COLI_reductionTN.o \ + collier_coefs.o \ + tensors_BuildTensors.o \ + tensors_TensorReduction.o \ + collier_tensors.o \ + DDlib_DD_global.o \ + COLLIER.o \ + COLI_coli_b0.o \ + COLI_coli_d0.o \ + COLI_coli_d0reg.o \ + COLI_coli_aux.o \ + COLI_coli_c0.o \ + DDlib_DD_aux.o \ + DDlib_DD_5pt.o \ + DDlib_DD_6pt.o \ + DDlib_DD_3pt.o \ + DDlib_DD_to_COLLIER.o \ + DDlib_DD_2pt.o + + +${Objs}: $(Deps) + @echo " " + @echo " Compiling COLLIER dependencies" + $(fcomp) -c $(Deps) + @echo " " + @echo " Compiling COLLIER library" + g++ -Wl,-soname,$(LIB) -shared -o $(LIB) *.o + +clean: + @echo " deleting object files" + rm -f *.so $(OBJECTS)/*.o $(MODULES)/*.mod + + +# supresses command calls +.SILENT: diff --git a/MELA/COLLIER/setup.sh b/MELA/COLLIER/setup.sh new file mode 100644 index 00000000..575e9c3d --- /dev/null +++ b/MELA/COLLIER/setup.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +{ + +scriptdir=$(dirname $0) +curdir=$(pwd) + +cd $scriptdir + +pkgname="collier-1.2" +pkgdir="COLLIER-1.2" +tarname=$pkgname".tar.gz" +tarweb="https://www.hepforge.org/archive/collier/"$tarname +libname="libcollier.so" +tmpdir="colliertmp" + +if [[ $# > 0 ]] && [[ "$1" == *"clean"* ]];then + + rm -f *.so + rm -f *.o + rm -f *.mod + rm -f *.f + rm -f *.F + rm -f *.F90 + for f in $(ls ./);do + if [ -d $f ];then + rm -rf $f + fi + done + + rm -f "../data/"$SCRAM_ARCH"/"$libname + +else + + wget $tarweb + mkdir $tmpdir + tar -xvzf $tarname -C $tmpdir + rm $tarname + mv $tmpdir"/"$pkgdir"/src/"* ./ + rm -rf $tmpdir + + make + mv $libname "../data/"$SCRAM_ARCH"/"$libname + +fi + +cd $curdir + +} \ No newline at end of file diff --git a/MELA/fortran/makefile b/MELA/fortran/makefile index eb93a0ea..8a00d658 100755 --- a/MELA/fortran/makefile +++ b/MELA/fortran/makefile @@ -4,14 +4,14 @@ all: false else -CMSROOT = ./ -#MODULES=$(CMSROOT)modules/ -#OBJECTS=$(CMSROOT)objects/ -MODULES=$(CMSROOT) -OBJECTS=$(CMSROOT) +MAINDIR = ./ +#MODULES=$(MAINDIR)modules/ +#OBJECTS=$(MAINDIR)objects/ +MODULES=$(MAINDIR) +OBJECTS=$(MAINDIR) ROOFITINCLUDE = RM = /bin/rm -INCLUDE = -I$(CMSROOT) $(ROOFITINCLUDE) +INCLUDE = -I$(MAINDIR) $(ROOFITINCLUDE) Comp = gfort # Linking LHAPDF @@ -28,12 +28,26 @@ else LHAPDFflags = -DuseLHAPDF=0 endif +# Linking the Collier library +UseCOLLIER=Yes +# directory which contains libLHAPDF.a, libLHAPDF.la, libLHAPDF.so +MyCOLLIERDir=../data/${SCRAM_ARCH}/ +MyCOLLIERInc=../COLLIER/ +# remember to export +# LD_LIBRARY_PATH=/.../LHAPDF-x.y.z/lib/:${LD_LIBRARY_PATH} +# LHAPDF_DATA_PATH=/.../LHAPDF-x.y.z/share/LHAPDF/:${LHAPDF_DATA_PATH} +ifeq ($(UseCOLLIER),Yes) + COLLIERflags = -L$(MyCOLLIERDir) -lcollier -DuseCollier=1 -I$(MyCOLLIERInc) +else + COLLIERflags = -DuseCollier=0 +endif + ifeq ($(Comp),ifort) - fcomp = ifort -fpp -O2 -vec-report0 -Dcompiler=1 -lifcore -fPIC + fcomp = ifort -fpp -O2 -vec-report0 -Dcompiler=1 -lifcore $(LHAPDFflags) $(COLLIERflags) -fPIC endif ifeq ($(Comp),gfort) - fcomp = gfortran -O0 -ffree-line-length-none -Dcompiler=2 $(LHAPDFflags) -fno-automatic -fno-f2c -fPIC -g + fcomp = gfortran -O0 -ffree-line-length-none -Dcompiler=2 $(LHAPDFflags) $(COLLIERflags) -fno-automatic -fno-f2c -fPIC -g endif ifeq ($(Comp),gfort) diff --git a/MELA/setup.sh b/MELA/setup.sh index 736bae63..8d9fc208 100755 --- a/MELA/setup.sh +++ b/MELA/setup.sh @@ -4,6 +4,9 @@ set -euo pipefail cd $(dirname ${BASH_SOURCE[0]}) eval $(scram ru -sh) + +bash COLLIER/setup.sh "$@" + if [[ $# > 0 ]] && [[ "$1" == *"clean"* ]];then scramv1 b "$@" pushd ${CMSSW_BASE}/src/ZZMatrixElement/MELA/fortran/ From ee418bc9a745b249ec19b8bbda6df1a1c7bf36c0 Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Fri, 22 Sep 2017 12:46:52 +0200 Subject: [PATCH 03/11] Load MELA script --- MELA/test/loadMELA.C | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MELA/test/loadMELA.C b/MELA/test/loadMELA.C index 21419f29..02d63977 100755 --- a/MELA/test/loadMELA.C +++ b/MELA/test/loadMELA.C @@ -1,9 +1,12 @@ { + TString LIBCOLLIER="libcollier.so"; TString LIBMCFM="libmcfm_704.so"; + gSystem->AddIncludePath("-I$ROOFITSYS/include/"); gSystem->AddIncludePath("-I$CMSSW_BASE/interface/"); gSystem->AddIncludePath("-I$CMSSW_BASE/src/"); gSystem->AddIncludePath("-I$CMSSW_BASE/src/ZZMatrixElement/MELA/interface/"); + gSystem->Load("$CMSSW_BASE/src/ZZMatrixElement/MELA/data/$SCRAM_ARCH/" + LIBCOLLIER); gSystem->Load("libZZMatrixElementMELA.so"); gSystem->Load("$CMSSW_BASE/src/ZZMatrixElement/MELA/data/$SCRAM_ARCH/" + LIBMCFM); } From 817dc9abc3cf2206bf53a47b229beecc51cd3a9d Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Fri, 22 Sep 2017 12:51:03 +0200 Subject: [PATCH 04/11] Support for collier in buildfile --- MELA/BuildFile.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/MELA/BuildFile.xml b/MELA/BuildFile.xml index 58470fa7..6f32c526 100755 --- a/MELA/BuildFile.xml +++ b/MELA/BuildFile.xml @@ -4,7 +4,7 @@ - + @@ -22,3 +22,8 @@ + + + + + From 2f60722a155caa6b92632aceb85c042b5abdb0dd Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Fri, 22 Sep 2017 14:09:49 +0200 Subject: [PATCH 05/11] Initialization of Collier within JHUGen --- MELA/fortran/mod_JHUGen.F90 | 3 +++ MELA/fortran/mod_Parameters.F90 | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/MELA/fortran/mod_JHUGen.F90 b/MELA/fortran/mod_JHUGen.F90 index e8b5cc46..5256db0b 100755 --- a/MELA/fortran/mod_JHUGen.F90 +++ b/MELA/fortran/mod_JHUGen.F90 @@ -82,6 +82,9 @@ SUBROUTINE InitFirstTime(pdftable,pdfstrlength,pdfmember) print *,"Collider not implemented." stop ENDIF + + call InitCOLLIER(4,3) ! Arguments for ggZH + return END SUBROUTINE diff --git a/MELA/fortran/mod_Parameters.F90 b/MELA/fortran/mod_Parameters.F90 index 21fa07d8..a64821f0 100755 --- a/MELA/fortran/mod_Parameters.F90 +++ b/MELA/fortran/mod_Parameters.F90 @@ -55,6 +55,12 @@ MODULE ModParameters integer, public :: LHAPDFMember, lenLHAPDFString ! lenLHAPDFString is needed in MELA integer, public :: PDFSet ! End PDFset variables +#if useCollier==1 +! COLLIER initialization variables +integer, public :: Collier_maxNLoopProps = -1 +integer, public :: Collier_maxRank = -1 +! End COLLIER initialization variables +#endif logical, public :: includeInterference, writegit real(8), public :: M_V,Ga_V, M_Vprime,Ga_Vprime real(8), public, parameter :: GeV=1d0/100d0 ! we are using units of 100GeV, i.e. Lambda=10 is 1TeV @@ -2839,6 +2845,28 @@ subroutine spinoru(p,za,zb,s) end subroutine spinoru !======================================================================== +!======================================================================== +! Common initialization functions that may be called multiple times if needed +! Check arXiv:1604.06792 for the parameters +subroutine InitCOLLIER(Nmax, Rmax) +#if useCollier==1 +use COLLIER +implicit none +integer, intent(in) :: Nmax, Rmax +integer :: supNmax, supRmax + supNmax = max(Nmax, Collier_maxNLoopProps) + supRmax = max(Rmax, Collier_maxRank) + if ((supNmax .gt. Collier_maxNLoopProps) .or. (supRmax .gt. Collier_maxRank)) then + call Init_cll(supNmax,supRmax,'') + call setMode_cll(1) + endif +#else +implicit none +integer, intent(in) :: Nmax, Rmax + return +#endif +end subroutine + END MODULE From 771e899006776afe1cd6935bc849bbc0781a605f Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Fri, 22 Sep 2017 17:06:48 +0200 Subject: [PATCH 06/11] Minor fix to collier init --- MELA/fortran/mod_JHUGen.F90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MELA/fortran/mod_JHUGen.F90 b/MELA/fortran/mod_JHUGen.F90 index 5256db0b..03711c30 100755 --- a/MELA/fortran/mod_JHUGen.F90 +++ b/MELA/fortran/mod_JHUGen.F90 @@ -83,6 +83,10 @@ SUBROUTINE InitFirstTime(pdftable,pdfstrlength,pdfmember) stop ENDIF +#if useCollier==1 + Collier_maxNLoopProps = -1 + Collier_maxRank = -1 +#endif call InitCOLLIER(4,3) ! Arguments for ggZH return From ea9b6936f7e8f159285d38eabc0533d5d5cb2207 Mon Sep 17 00:00:00 2001 From: Heshy Roskes Date: Sun, 24 Sep 2017 17:28:22 -0400 Subject: [PATCH 07/11] sync from JHUGenMELA --- MELA/fortran/mod_VHiggs.F90 | 2991 ++++++++++++++++++++++++++++++++++- 1 file changed, 2938 insertions(+), 53 deletions(-) diff --git a/MELA/fortran/mod_VHiggs.F90 b/MELA/fortran/mod_VHiggs.F90 index f81ba7e0..6ab5e7a0 100755 --- a/MELA/fortran/mod_VHiggs.F90 +++ b/MELA/fortran/mod_VHiggs.F90 @@ -7,7 +7,9 @@ module ModVHiggs !----- notation for subroutines - public :: EvalAmp_VHiggs,EvalUnpolAmpSq_gg_VH + public :: EvalAmp_VHiggs,EvalUnpolAmpSq_gg_VH,TreeAmp_qqb_ZH,TreeAmp_qqbg_ZH + public :: Dipoles_qqb_VH,CalcFormFactor1 + real,parameter,public :: alpha_ii=1d0 contains @@ -1723,24 +1725,28 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) implicit none real(8) :: p(1:4,1:4),UnPolSqAmp complex(8) :: SP(1:7),SI(0:16),LC(1:15) - complex(8) :: qlI1,qlI2,qlI3,qlI4 + complex(8) :: qlI1,qlI2,qlI3,qlI4,testYA,testMA complex(8) :: ep1(1:4),ep2(1:4),cep3(1:4),p1(1:4),p2(1:4),p3(1:4) complex(8) :: MasslessTri,MassiveTri,MassiveBox real(8) :: shat,that,uhat,MT2,MH2,MZ2,MV2 real(8) :: MuRen2,PreFac,PreFac2,IZ(3:4,9:9),smT,y,mTrans integer :: eps,h1,h2,h3,i,j complex(8) :: VVHg1,VVHg2,VVHg3 - complex(8) :: calc_MassiveBox,calc_MassiveBox_QP,calc_MassiveTensorBox + complex(8) :: cmzsq, rat,cix,newsum_MCFM + complex(8) :: calc_MassiveBox,calc_MassiveBox_QP,calc_MassiveTensorBox,newsum real(8),parameter :: E=dexp(1d0), ICol_sq=8d0 - -! real(8) :: sprod(1:4,1:4),p5hat(1:4),p6hat(1:4) -! complex(8) :: za(1:4,1:4),zb(1:4,1:4),a,b,c,d,e,f,v,w,x,y,z,o - - + integer,parameter :: rank=3 + double complex :: DD1(0:rank/2,0:rank,0:rank,0:rank),DD1uv(0:rank/2,0:rank,0:rank,0:rank) + double complex :: DD2(0:rank/2,0:rank,0:rank,0:rank),DD2uv(0:rank/2,0:rank,0:rank,0:rank) + double complex :: DD3(0:rank/2,0:rank,0:rank,0:rank),DD3uv(0:rank/2,0:rank,0:rank,0:rank) + double complex :: DD0(1:3) + double precision :: Derr(0:rank) + real(8) :: sprod(1:4,1:4),p5hat(1:4),p6hat(1:4) + complex(8) :: za(1:4,1:4),zb(1:4,1:4),a,b,c,d,ee,f,v,w,x,yy,z,o,ampMCFM(-1:1,-1:1,-1:1) ! prefactors and kinematics - PreFac = Pi**2 * (4d0*pi*alpha_QED) * (4d0*pi*alphas) /sitW/M_W *1d0/(16d0*pi**2) - PreFac2 = Pi**2 * dsqrt(4d0*pi*alpha_QED) * (4d0*pi*alphas) *m_Top**2/vev *1d0/(16d0*pi**2) + PreFac = Pi**2 * (4d0*pi*alpha_QED) * (4d0*pi*alphas) /sitW/M_W *1d0/(2d0*pi)**4 + PreFac2 = Pi**2 * dsqrt(4d0*pi*alpha_QED) * (4d0*pi*alphas) *m_Top**2/vev *1d0/(2d0*pi)**4 IZ(3,9) = 0.5d0*(aL_QUp-aR_QUp)/2d0/sitW/dsqrt(1d0-sitW**2) ! top IZ(4,9) = -IZ(3,9) ! bottom @@ -1751,13 +1757,6 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) MH2 = M_Reso**2 MT2 = M_Top**2 MV2 = get_MInv2(dble(p3(1:4))) - - VVHg1 = 1d0 - VVHg2 = 0d0/MH2 - VVHg3 = 0d0/MH2 - -! call ShiftMass2(p(1:4,3),p(1:4,4),M_Z,p5hat,p6hat)! projecting Z boson on-shell (because computation assumed p3^3=MZ^2) -! p3(1:4) = p5hat(1:4)+p6hat(1:4) shat =+2d0*(p1.dot.p2) that =-2d0*(p1.dot.p3)+MV2 uhat =-2d0*(p2.dot.p3)+MV2 @@ -1765,16 +1764,10 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) smT = dsqrt(shat)*mTrans y = Get_ETA(dble(p3(1:4))) + call spinoru2(4,(/p(1:4,1),p(1:4,2),p(1:4,3),p(1:4,4)/),za,zb,sprod) + a = za(1,2); b = za(1,3); c = za(1,4); d = za(2,3); ee = za(2,4); f = za(3,4) + v = zb(1,2); w = zb(1,3); x = zb(1,4); yy = zb(2,3); z = zb(2,4); o = zb(3,4) -! print *, "check1",that,- smT* E**(-y) + MV2 -! print *, "check2",uhat,- smT* E**(+y) + MV2 -! pause - - -! p30(1:4) = p3(1:4) - (p3(1:4).dot.p3(1:4))/(2d0*(p3(1:4).dot.p1(1:4)))*p1(1:4) -! call my_spinoru(4,(/p(1:4,1),p(1:4,2),p5hat(1:4),p6hat(1:4)/),za,zb,sprod) -! a = za(1,2); b = za(1,3); c = za(1,4); d = za(2,3); e = za(2,4); f = za(3,4) -! v = zb(1,2); w = zb(1,3); x = zb(1,4); y = zb(2,3); z = zb(2,4); o = zb(3,4) ! evaluate scalar integrals SI(0) = 1d0 @@ -1804,7 +1797,7 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) ! SI(1:16) = 0d0 -#if useQCDLoopLib==1 +#if useQCDLoopLib==1 || linkMELA==1 SI(1) = qlI1(MT2,MuRen2,eps) SI(2) = qlI2(zero, MT2,MT2,MuRen2,eps) SI(3) = qlI2(MH2, MT2,MT2,MuRen2,eps) @@ -1821,29 +1814,109 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) SI(14)= qlI4(zero,zero,MV2,MH2,shat,that, MT2,MT2,MT2,MT2,MuRen2,eps) SI(15)= qlI4(zero,zero,MV2,MH2,shat,uhat, MT2,MT2,MT2,MT2,MuRen2,eps) SI(16)= qlI4(zero,MV2,zero,MH2,that,uhat, MT2,MT2,MT2,MT2,MuRen2,eps) - #else + call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") +#endif + + +#if useCollier==1 + call D_cll(DD1,DD1uv,dcmplx((/0d0,MH2,MV2,0d0,that,shat/)),dcmplx((/MT2,MT2,MT2,MT2/)),rank,Derr) + call D_cll(DD2,DD2uv,dcmplx((/0d0,MV2,MH2,0d0,uhat,shat/)),dcmplx((/MT2,MT2,MT2,MT2/)),rank,Derr) + call D_cll(DD3,DD3uv,dcmplx((/MV2,0d0,MH2,0d0,uhat,that/)),dcmplx((/MT2,MT2,MT2,MT2/)),rank,Derr) - print *, "No loop integrals" + call D0_cll(DD0(1),dcmplx((/0d0,0d0,MV2,MH2,shat,that/)),dcmplx((/MT2,MT2,MT2,MT2/))) + call D0_cll(DD0(2),dcmplx((/0d0,0d0,MV2,MH2,shat,uhat/)),dcmplx((/MT2,MT2,MT2,MT2/))) + call D0_cll(DD0(3),dcmplx((/0d0,MV2,0d0,MH2,that,uhat/)),dcmplx((/MT2,MT2,MT2,MT2/))) +#else + call Error("This process requires linkCollier enabled in the makefile") #endif + + VVHg1 = 0.5d0*ghz1 + ghz2 * ( p3(1:4).dot.(p1(1:4)+p2(1:4)) )/MZ2 + VVHg2 = -ghz2/MZ2 + + +! ! triangles in spinor helicity (for one helicity configuration) +! newsum = (-4*a*(0d0,1d0)*MT2*VVHg1*(c*w + ee*yy)*SI(8))/v +! newsum = newsum & +! + (-2*a*(0d0,1d0)*MT2*VVHg2/MH2*(b**2*w*x + b*(d*o*v - 2*a*v*x + c*x**2 + 2*d*x*yy) + z*(a*(-2*d*v + f*x) + d*(2*c*x + d*yy + ee*z))))*SI(8)/v +! newsum = newsum /( MV2-MZ2 + (0d0,1d0)*M_Z*Ga_Z ) ! * exp((0d0,1d0)*Pi*(+1d0)) + + + +! print *, "TESTER",(MZ2 + a*v)/(-MH2 + MV2 + MZ2 + b*w + c*x + d*yy + ee*z) + + + +! ! ! ! ! ! ! MCFM triangle (remember to set alpha_s=constant) +! !------ right lepton amplitudes +! amp(2,2,2)=ggHZ_pp_tri(1,2,4,3,za,zb,mt2) + +! call spinoru2(4,(/-p(1:4,1),-p(1:4,2),p(1:4,4),p(1:4,3)/),za,zb,sprod) +! cmzsq=M_Z**2-(0d0,1d0)*M_Z*Ga_Z +! ! top tri +! cix= (2*(-((mt2*za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (mt2*za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/ (za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) +! cix=cix+ (2*mt2*zb(2,1)**2*(za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) +! rat= (-2*(-((za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/(za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) +! rat=rat+ (-2*zb(2,1)**2* (za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) +! newsum_MCFM=( SI(8)*cix-rat/2d0 ) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * sprod(1,2)/dcmplx(sprod(1,2)-M_Z**2,0d0) +! +! ! bot tri +! mt2=0d0 +! SI(8) = qlI3(zero,zero,shat, MT2,MT2,MT2,MuRen2,eps) +! cix= (2*(-((mt2*za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (mt2*za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/ (za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) +! cix=cix+ (2*mt2*zb(2,1)**2*(za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) +! rat= (-2*(-((za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/(za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) +! rat=rat+ (-2*zb(2,1)**2* (za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) +! newsum_MCFM=newsum_MCFM - ( SI(8)*cix-rat/2d0 ) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * sprod(1,2)/dcmplx(sprod(1,2)-M_Z**2,0d0) + +! restoring +! mt2 = m_top**2 +! SI(8) = qlI3(zero,zero,shat, MT2,MT2,MT2,MuRen2,eps) +! +! +! +! +! ! the boxes +! call spinoru2(4,(/-p(1:4,1),-p(1:4,2),p(1:4,4),p(1:4,3)/),za,zb,sprod) +! +! !------ left handed lepton coupling (- sign from line reversal) +! ampMCFM(-1,-1,+1)= ggHZ_pp_box(1,2,3,4,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep +! ampMCFM(+1,-1,+1)= ggHZ_mp_box(1,2,3,4,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep +! ampMCFM(-1,+1,+1)=-ggHZ_mp_box(1,2,4,3,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep +! ampMCFM(+1,+1,+1)=-ggHZ_pp_box(1,2,4,3,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep +! +! !------- right handed lepton coupling +! ampMCFM(-1,-1,-1)= ggHZ_pp_box(1,2,4,3,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep +! ampMCFM(+1,-1,-1)= ggHZ_mp_box(1,2,4,3,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep +! ampMCFM(-1,+1,-1)=-ggHZ_mp_box(1,2,3,4,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep +! ampMCFM(+1,+1,-1)=-ggHZ_pp_box(1,2,3,4,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep +! +! ! ! ! ! ! END MCMF + + + ! helicity sum UnPolSqAmp = 0d0 do h1=-1,+1, 2 do h2=-1,+1, 2 - do h3=-1,+1 !, 2 + do h3=-1,+1, 2 ! polarization vectors ep1(1:4) = pol_gluon_incoming(p(1:4,1),h1) ep2(1:4) = pol_gluon_incoming(p(1:4,2),h2) -! cep3(1:4)= pol_Zff_outgoing(p(1:4,3),p(1:4,4),h3) * (-1d0)/( MV2-MZ2 + (0d0,1d0)*M_Z*Ga_Z ) -! if( h3.lt.0 ) then! CHECK THAT L-R ASSIGNMENTS ARE CORRECT !!! -! cep3(1:4) = cep3(1:4) * dsqrt(4d0*pi*alpha_QED)/2d0/sitW/dsqrt(1d0-sitW**2) * aR_lep -! else -! cep3(1:4) = cep3(1:4) * dsqrt(4d0*pi*alpha_QED)/2d0/sitW/dsqrt(1d0-sitW**2) * aL_lep -! endif - cep3(1:4) = pol_mass(p3(1:4),h3,outgoing=.true.) + +! cep3(1:4) = pol_mass(p3(1:4),h3,outgoing=.true.) + + + cep3(1:4)= pol_Zff_outgoing(p(1:4,3),p(1:4,4),h3) * (-1d0)/( MV2-MZ2 + (0d0,1d0)*M_Z*Ga_Z ) + if( h3.lt.0 ) then + cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aR_lep + else + cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aL_lep + endif + ! scalar products @@ -1872,33 +1945,35 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) LC(14)= LeviCiv(p2,p3,ep2,cep3) LC(15)= LeviCiv(p3,ep1,ep2,cep3) +! shat*(LC(1) - LC(11)) - 2*LC(3)*(SP(3) + SP(4)) == 00 - +print *, "CHECK: for some reasone the original VVHg2,VVHg3 couplings were not divided by MH2" +print *, "CHECK in comparison with Yaofu/Mathematica because VVHg2 is already divided above." ! Loop amplitudes - MasslessTri = (2*MZ2*SI(0)*(-4*VVHg1*LC(3)*(SP(3) + SP(4)) + 4*smT*VVHg2*Cosh(y)*LC(3)*(SP(3) + SP(4)) & - + shat*(-(VVHg1*(LC(1) + 5*LC(11))) + VVHg2*(LC(9) + 5*LC(13))*(SP(3) + SP(4))) & - + 3*shat**2*VVHg3*(SP(2)*SP(6) - SP(1)*SP(7))))/(3*shat*(-MH2 + MV2 + MZ2 - 2*smT*Cosh(y))) + MasslessTri = (2*MZ2*SI(0)*(-4*VVHg1*LC(3)*(SP(3) + SP(4)) + 4*smT*VVHg2/MH2*Cosh(y)*LC(3)*(SP(3) + SP(4)) & + + shat*(-(VVHg1*(LC(1) + 5*LC(11))) + VVHg2/MH2*(LC(9) + 5*LC(13))*(SP(3) + SP(4))) & + + 3*shat**2*VVHg3/MH2*(SP(2)*SP(6) - SP(1)*SP(7))))/(3*shat*(-MH2 + MV2 + MZ2 - 2*smT*Cosh(y))) ! - MassiveTri = (-2*(2*smT*VVHg2*LC(3)*(MZ2*(shat*SI(0) - SI(1) + MT2*(SI(0) - 2*SI(2) + 3*SI(5))) + & - 3*MT2*(MZ2 - shat)*shat*SI(8))*(SP(3) + SP(4)) + 2*E**(2*y)*smT*VVHg2*LC(3)* & + MassiveTri = (-2*(2*smT*VVHg2/MH2*LC(3)*(MZ2*(shat*SI(0) - SI(1) + MT2*(SI(0) - 2*SI(2) + 3*SI(5))) + & + 3*MT2*(MZ2 - shat)*shat*SI(8))*(SP(3) + SP(4)) + 2*E**(2*y)*smT*VVHg2/MH2*LC(3)* & (MZ2*(shat*SI(0) - SI(1) + MT2*(SI(0) - 2*SI(2) + 3*SI(5))) + 3*MT2*(MZ2 - shat)*shat*SI(8))*(SP(3) + SP(4)) + & - E**y*(-2*MT2*(-6*shat**2*(VVHg1 + shat*VVHg2)*LC(3)*SI(8)*(SP(3) + SP(4)) + MZ2*(2*VVHg1*LC(3)*(SI(0) - 2*SI(2) + 3*SI(5))* & - (SP(3) + SP(4)) + 6*shat**2*VVHg2*LC(3)*SI(8)*(SP(3) + SP(4)) + shat*(VVHg2*(LC(9) - LC(13))*(SI(0) - 2*SI(2) + 3*SI(5))* & + E**y*(-2*MT2*(-6*shat**2*(VVHg1 + shat*VVHg2/MH2)*LC(3)*SI(8)*(SP(3) + SP(4)) + MZ2*(2*VVHg1*LC(3)*(SI(0) - 2*SI(2) + 3*SI(5))* & + (SP(3) + SP(4)) + 6*shat**2*VVHg2/MH2*LC(3)*SI(8)*(SP(3) + SP(4)) + shat*(VVHg2/MH2*(LC(9) - LC(13))*(SI(0) - 2*SI(2) + 3*SI(5))* & (SP(3) + SP(4)) + VVHg1*(-((LC(1) - LC(11))*(SI(0) - 2*SI(2) + 3*SI(5))) + & 6*LC(3)*SI(8)*(SP(3) + SP(4)))))) + MZ2*(4*VVHg1*LC(3)*SI(1)*(SP(3) + SP(4)) + & - shat**2*SI(0)*(-(VVHg1*(LC(1) + 5*LC(11))) + VVHg2*(LC(9) + 5*LC(13))*(SP(3) + SP(4))) - & - 2*shat*(-(VVHg2*(LC(9) - LC(13))*SI(1)*(SP(3) + SP(4))) + VVHg1*((LC(1) - LC(11))*SI(1) + & - 2*LC(3)*SI(0)*(SP(3) + SP(4)))) + 3*shat**3*VVHg3*SI(0)*(SP(2)*SP(6) - SP(1)*SP(7))))))/(3*E**y*shat**2*(MH2 - MV2 - MZ2 + 2*smT*Cosh(y))) + shat**2*SI(0)*(-(VVHg1*(LC(1) + 5*LC(11))) + VVHg2/MH2*(LC(9) + 5*LC(13))*(SP(3) + SP(4))) - & + 2*shat*(-(VVHg2/MH2*(LC(9) - LC(13))*SI(1)*(SP(3) + SP(4))) + VVHg1*((LC(1) - LC(11))*SI(1) + & + 2*LC(3)*SI(0)*(SP(3) + SP(4)))) + 3*shat**3*VVHg3/MH2*SI(0)*(SP(2)*SP(6) - SP(1)*SP(7))))))/(3*E**y*shat**2*(MH2 - MV2 - MZ2 + 2*smT*Cosh(y))) + ! MassiveBox = calc_MassiveBox(MV2,MH2,MT2,shat,smT,y,LC,SP,SI,kappa,kappa_tilde) ! MassiveBox = calc_MassiveBox_QP(MV2,MH2,MT2,shat,smT,y,LC,SP,SI,kappa,kappa_tilde) - MassiveBox = calc_MassiveTensorBox(MV2,MT2,MH2,shat,that,uhat,smT,y,LC,SP,SI,kappa,kappa_tilde) - + MassiveBox = calc_MassiveTensorBox(MV2,MT2,MH2,shat,that,uhat,smT,y,LC,SP,DD0,DD1,DD2,DD3,kappa,kappa_tilde) - MasslessTri = MasslessTri * PreFac * IZ(4,9) - MassiveTri = MassiveTri * PreFac * IZ(3,9) - MassiveBox = MassiveBox * PreFac2* IZ(3,9) + MasslessTri = MasslessTri * IZ(4,9)* PreFac + MassiveTri = MassiveTri * IZ(3,9)* PreFac + MassiveBox = MassiveBox * IZ(3,9)* PreFac2 UnPolSqAmp = UnPolSqAmp + ICol_sq * cdabs( MasslessTri*1 + MassiveTri*1 + MassiveBox*1 )**2 @@ -1923,6 +1998,2816 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) +FUNCTION TreeAmp_qqb_ZH(MomExt,Heli)! ordering: 1:in 2:in 3:H 4:l1 5:l2 +use ModParameters +use ModMisc +implicit none +integer,parameter:: minus=0, plus=1, dummy=0 +real(8) :: MomExt(1:4,1:6),MomZst1(1:4),MomZst2(1:4),PreFac,MomH(1:4) +integer :: Heli(1:4) +complex(8) ::TreeAmp_qqb_ZH(1:6),TreeAmp(minus:plus),VVHg1,VVHg2,VVHg3 +complex(8) :: Spi(1:4),BarSpi(1:4,minus:plus),ZPol1(1:4,minus:plus),ZPol2(1:4),cep3(1:4),ZProp1,ZProp2 +TreeAmp_qqb_ZH(1:6) = (0d0,0d0) + + + Spi(1:4) = v_spinor(MomExt(1:4,1),-Heli(1)) ! incomming quark= u(p,lambda) = v(p,-lambda) + BarSpi(1:4,dummy) = ubar_spinor(MomExt(1:4,2),-Heli(2)) ! incomming anti-quark= vbar(p,lambda) = ubar(p,-lambda) + BarSpi(1:4,plus) = Chir_Weyl(plus,BarSpi(1:4,dummy)) + BarSpi(1:4,minus) = Chir_Weyl(minus,BarSpi(1:4,dummy)) + ZPol1(1:4,plus) = vbqq_Weyl(BarSpi(1:4,plus),Spi(1:4)) + ZPol1(1:4,minus) = vbqq_Weyl(BarSpi(1:4,minus),Spi(1:4)) + + + + MomZst1(1:4) = MomExt(1:4,1)+MomExt(1:4,2) + MomZst2(1:4) = MomExt(1:4,5)+MomExt(1:4,6) + MomH(1:4) = MomExt(1:4,3)+MomExt(1:4,4) + ZProp1 = -(0d0,1d0)/((MomZst1(1:4).dot.MomZst1(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) + ZProp2 = -(0d0,1d0)/((MomZst2(1:4).dot.MomZst2(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) + + + cep3(1:4)= pol_Zff_outgoing(MomExt(1:4,5),MomExt(1:4,6),Heli(3)) * ZProp2 + if( Heli(3).lt.0 ) then + cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aR_lep + else + cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aL_lep + endif + + PreFac = 2d0*m_v**2/vev + VVHg1 = PreFac*( 0.5d0*ghz1 + ghz2 * ( MomZst2.dot.MomZst1 )/M_Z**2 ) + VVHg2 = PreFac*( -ghz2/M_Z**2 ) + VVHG3 = PreFac*( -ghz3/M_Z**2 ) + + + TreeAmp(plus) = VVHg1 * (cep3.dot.ZPol1(:,plus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,plus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,plus), cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) + TreeAmp(minus) = VVHg1 * (cep3.dot.ZPol1(:,minus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,minus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,minus),cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) + + TreeAmp_qqb_ZH(up_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqb_ZH(dn_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqb_ZH(chm_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqb_ZH(str_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqb_ZH(bot_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 + +RETURN +END FUNCTION + + + + + + + + +FUNCTION TreeAmp_qqbg_ZH(MomExt,Heli)! gluon emission from initial state ! ordering: 1:in 2:in 3:H 4:l1 5:l2 6: gluon +use ModParameters +use ModMisc +implicit none +integer,parameter:: minus=-1, plus=1, dummy=0 +real(8) :: MomExt(1:4,1:7) +integer :: Heli(1:5) +complex(8) ::TreeAmp_qqbg_ZH(1:6),TreeAmp(minus:plus),VVHg1,VVHg2,VVHg3,cep3(1:4) +complex(8) :: Spi(1:4),SpiAux(1:4,minus:plus),PolGlu(1:4),BarSpi(1:4),ZPol1(1:4,minus:plus),ZPol2(1:4),ZProp1,ZProp2,PropMom(1:4) +real(8) :: MomZst1(1:4),MomZst2(1:4),MomH(1:4),PreFac +TreeAmp_qqbg_ZH(:) = (0d0,0d0) + + + Spi(1:4) = v_spinor(MomExt(1:4,1),-Heli(1)) ! incomming quark= u(p,lambda) = v(p,-lambda) + BarSpi(1:4) = ubar_spinor(MomExt(1:4,2),-Heli(2)) ! incomming anti-quark= vbar(p,lambda) = ubar(p,-lambda) + PolGlu(1:4) = pol_mless(dcmplx(MomExt(1:4,7)),Heli(5),outgoing=.true.) +! PolGlu(1:4) = MomExt(1:4,7) ; print *, "gauge invariance check" + + MomZst1(1:4) = MomExt(1:4,1)+MomExt(1:4,2)-MomExt(1:4,7) + MomZst2(1:4) = MomExt(1:4,5)+MomExt(1:4,6) + MomH(1:4) = MomExt(1:4,3)+MomExt(1:4,4) + +! diagram 1: gluon emission from quark + SpiAux(1:4,dummy) = spi2_Weyl(PolGlu(1:4),Spi(1:4))* cI * dsqrt(4d0*Pi*alphas) + PropMom(1:4) = MomExt(1:4,1)-MomExt(1:4,7) + SpiAux(1:4,dummy) = spi2_Weyl(PropMom(1:4),SpiAux(1:4,dummy)) * cI/(PropMom(1:4).dot.PropMom(1:4)) + SpiAux(1:4,plus) = Chir_Weyl(plus, BarSpi(1:4)) + SpiAux(1:4,minus) = Chir_Weyl(minus,BarSpi(1:4)) + ZPol1(1:4,plus) = vbqq_Weyl(SpiAux(1:4,plus), SpiAux(1:4,dummy)) + ZPol1(1:4,minus) = vbqq_Weyl(SpiAux(1:4,minus),SpiAux(1:4,dummy)) + +! diagram 2: gluon emisson from anti-quark + SpiAux(1:4,dummy) = spb2_Weyl(BarSpi(1:4),PolGlu(1:4))* cI * dsqrt(4d0*Pi*alphas) + PropMom(1:4)=-(MomExt(1:4,2)-MomExt(1:4,7)) + SpiAux(1:4,dummy) = spb2_Weyl(SpiAux(1:4,dummy),PropMom(1:4)) * cI/(PropMom(1:4).dot.PropMom(1:4)) + SpiAux(1:4,plus) = Chir_Weyl(plus, SpiAux(1:4,dummy)) + SpiAux(1:4,minus) = Chir_Weyl(minus,SpiAux(1:4,dummy)) + ZPol1(1:4,plus) = ZPol1(1:4,plus) + vbqq_Weyl(SpiAux(1:4,plus), Spi(1:4)) + ZPol1(1:4,minus) = ZPol1(1:4,minus) + vbqq_Weyl(SpiAux(1:4,minus),Spi(1:4)) + + ZProp1 = -(0d0,1d0)/((MomZst1(1:4).dot.MomZst1(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) + ZProp2 = -(0d0,1d0)/((MomZst2(1:4).dot.MomZst2(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) + + cep3(1:4)= pol_Zff_outgoing(MomExt(1:4,5),MomExt(1:4,6),Heli(3)) * ZProp2 + if( Heli(3).lt.0 ) then + cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aR_lep + else + cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aL_lep + endif + + + PreFac = 2d0*m_v**2/vev + VVHg1 = PreFac*( 0.5d0*ghz1 + ghz2 * ( MomZst2.dot.MomZst1 )/M_Z**2 ) + VVHg2 = PreFac*( -ghz2/M_Z**2 ) + VVHG3 = PreFac*( -ghz3/M_Z**2 ) + + + TreeAmp(plus) = VVHg1 * (cep3.dot.ZPol1(:,plus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,plus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,plus), cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) + TreeAmp(minus) = VVHg1 * (cep3.dot.ZPol1(:,minus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,minus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,minus),cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) + + + TreeAmp_qqbg_ZH(up_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqbg_ZH(dn_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqbg_ZH(chm_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqbg_ZH(str_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 + TreeAmp_qqbg_ZH(bot_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 + + +RETURN +END FUNCTION + + + + + + + + +! +! +! SUBROUTINE IntDip_qqb_Z_ttb(z,sHat,IDip) +! use ModParameters +! use ModKinematics +! use ModMisc +! implicit none +! real(8) :: IDip(1:3),APsoft,APfini,APplus,z,sij,sHat +! real(8) :: dipsoft,dipfini,dipplus,epcorr +! integer :: n,emi +! +! +! epinv2=0d0 +! epinv =0d0 +! +! sij = sHat +! +! IDip(1:3) = 0d0 +! do n=1,4 +! if(n.eq.1) then +! dipsoft =ii_qq(sij,z,1) * CF +! dipfini =ii_qq(sij,z,2) * CF +! dipplus =ii_qq(sij,z,3) * CF +! emi = 1 +! elseif(n.eq.2) then +! dipsoft =ii_qq(sij,z,1) * CF +! dipfini =ii_qq(sij,z,2) * CF +! dipplus =ii_qq(sij,z,3) * CF +! emi = 2 +! endif +! +! if(emi.eq.1) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! IDip(2) = IDip(2) + (dipfini+dipplus) +! elseif(emi.eq.2) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! IDip(3) = IDip(3) + (dipfini+dipplus) +! endif +! enddo +! +! +! ! print *, epinv +! ! print *, "IntDip",IDip(2:3) +! +! +! ! ! epcorr=epinv+2d0*dlog(renscale/facscale) +! epcorr=epinv +! +! ! this is for qqb-->Z-->ttb+g process +! APsoft= 3d0/2d0*CF * epcorr +! APfini= (-1d0-z)*CF * epcorr +! APplus= 2d0*CF/(1d0-z) * epcorr +! IDip(1) = IDip(1) + (APsoft - APplus)*2d0 +! IDip(2) = IDip(2) + (APfini + APplus) +! IDip(3) = IDip(3) + (APfini + APplus) +! +! ! print *, "AP",(APsoft - APplus),(APfini + APplus) +! ! print *, "sum",IDip(2:3) +! ! pause +! +! END SUBROUTINE +! + +! +! +! +! SUBROUTINE IntDip_gqb_Z_ttb(z,sHat,IDip) +! use ModParameters +! use ModKinematics +! use ModMisc +! implicit none +! real(8) :: IDip(1:3),APsoft,APfini,APplus,z,sij,sHat +! real(8) :: dipsoft,dipfini,dipplus,epcorr +! integer :: n,emi +! +! +! epinv2=0d0 +! epinv =0d0 +! +! sij = sHat +! +! IDip(1:3) = 0d0 +! +! dipsoft =ii_gq(sij,z,1) * TR +! dipfini =ii_gq(sij,z,2) * TR +! dipplus =ii_gq(sij,z,3) * TR +! emi = 1 +! +! +! if(emi.eq.1) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! IDip(2) = IDip(2) + (dipfini+dipplus) +! elseif(emi.eq.2) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! IDip(3) = IDip(3) + (dipfini+dipplus) +! elseif(emi.eq.3) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! ! IDip(2) = IDip(2) + (dipfini+dipplus)*0.5d0 +! ! IDip(3) = IDip(3) + (dipfini+dipplus)*0.5d0 +! endif +! +! +! ! print *, epinv +! ! print *, "IntDip",IDip(2:3) +! +! ! ! epcorr=epinv+2d0*dlog(renscale/facscale) +! epcorr=epinv +! +! ! this is for gqb-->Z-->ttb+qb process +! APsoft= 0d0 +! APfini= TR*(z**2+(1d0-z)**2) * epcorr +! APplus= 0d0 +! IDip(1) = IDip(1) + (APsoft - APplus) +! IDip(2) = IDip(2) + (APfini + APplus) +! +! ! print *, "AP",(APsoft - APplus),(APfini + APplus) +! ! print *, "sum",IDip(2:3) +! ! pause +! +! END SUBROUTINE +! +! +! +! +! SUBROUTINE IntDip_qg_Z_ttb(z,sHat,IDip) +! use ModParameters +! use ModKinematics +! use ModMisc +! implicit none +! real(8) :: IDip(1:3),APsoft,APfini,APplus,z,sij,sHat +! real(8) :: dipsoft,dipfini,dipplus,epcorr +! integer :: n,emi +! +! +! epinv2=0d0 +! epinv =0d0 +! +! sij = sHat +! +! IDip(1:3) = 0d0 +! +! dipsoft =ii_gq(sij,z,1) * TR +! dipfini =ii_gq(sij,z,2) * TR +! dipplus =ii_gq(sij,z,3) * TR +! emi = 2 +! +! +! if(emi.eq.1) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! IDip(2) = IDip(2) + (dipfini+dipplus) +! elseif(emi.eq.2) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! IDip(3) = IDip(3) + (dipfini+dipplus) +! elseif(emi.eq.3) then +! IDip(1) = IDip(1) + (dipsoft-dipplus) +! ! IDip(2) = IDip(2) + (dipfini+dipplus)*0.5d0 +! ! IDip(3) = IDip(3) + (dipfini+dipplus)*0.5d0 +! endif +! +! +! ! print *, epinv +! ! print *, "IntDip",IDip(2:3) +! +! ! ! epcorr=epinv+2d0*dlog(renscale/facscale) +! epcorr=epinv +! +! ! this is for gqb-->Z-->ttb+qb process +! APsoft= 0d0 +! APfini= TR*(z**2+(1d0-z)**2) * epcorr +! APplus= 0d0 +! IDip(1) = IDip(1) + (APsoft - APplus) +! IDip(3) = IDip(3) + (APfini + APplus) +! +! ! print *, "AP",(APsoft - APplus),(APfini + APplus) +! ! print *, "sum",IDip(2:3) +! ! pause +! +! END SUBROUTINE +! +! +! + + + + +SUBROUTINE CalcFormFactor1(xe,sHat,FF1) +use ModParameters +use ModMisc +implicit none +complex(8) :: FF1 +integer :: xe +real(8) :: sHat +complex(8) :: qlI2,qlI3,SI(2:3),C(1:1) + + + C(1) = (-2d0,0d0) + if( xe.ne.0 ) C(1)=(0d0,0d0) + +#if useQCDLoopLib==1 || linkMELA==1 + SI(2) = qlI2(shat,0d0,0d0,Mu_Ren**2,xe) + SI(3) = qlI3(shat,0d0,0d0,0d0,0d0,0d0,Mu_Ren**2,xe) + FF1 = C(1) -3d0*SI(2) -2d0*sHat*SI(3) +#else + call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") +#endif + +END SUBROUTINE + + + +SUBROUTINE Dipoles_qqb_VH(nDipole,MomExt,MomExtTd,Dipole)! global norm: 4d0*Pi*alpha_s +use ModParameters +use ModMisc +implicit none +integer :: nDipole,a,i,b,j +real(8) :: MomExt(1:4,1:7),MomExtTd(1:4,1:6),Q(1:4),QTd(1:4),KSum(1:4) +real(8) :: sab,sai,sbi,sij,sik,skj,x,v,y,yp,z,Q2,mu2,mu,MomFac1,MomFac2,MomFac3 +real(8) :: Dipole + + if(nDipole.eq.1) then + a=1; i=7; b=2! initial-initial + + sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) + sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) + sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) + x = 1d0 - (sai+sbi)/sab + v = sai/sab + if( alpha_ii.lt.v ) then + Dipole = 0d0 + return + endif + + MomExtTd(1:4,a) = x*MomExt(1:4,a) + MomExtTd(1:4,b) = MomExt(1:4,b) + + Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) + QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) + KSum(1:4) = Q(1:4)+QTd(1:4) + + do j=3,6 + MomExtTd(1:4,j) = MomExt(1:4,j) - 2d0*(MomExt(1:4,j).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,j).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) + enddo + Dipole = -1d0/sai/x * 2d0*CF * (2d0/(1d0-x)-1d0-x) + + elseif(nDipole.eq.2) then + a=2; i=7; b=1! initial-initial + + sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) + sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) + sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) + x = 1d0 - (sai+sbi)/sab + v = sai/sab + if( alpha_ii.lt.v ) then + Dipole = 0d0 + return + endif + + MomExtTd(1:4,a) = x*MomExt(1:4,a) + MomExtTd(1:4,b) = MomExt(1:4,b) + + Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) + QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) + KSum(1:4) = Q(1:4)+QTd(1:4) + + do j=3,6 + MomExtTd(1:4,j) = MomExt(1:4,j) - 2d0*(MomExt(1:4,j).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,j).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) + enddo + Dipole = -1d0/sai/x * 2d0*CF * (2d0/(1d0-x)-1d0-x) + + endif + +END SUBROUTINE + + + + +! SUBROUTINE Dipoles_gqb_Z_ttbqb(nDipole,MomExt,MomExtTd,Dipole)! global norm: 4d0*Pi*alpha_s +! use ModParameters +! use ModKinematics +! use ModMisc +! implicit none +! integer :: nDipole,a,i,b,j,k +! real(8) :: MomExt(1:4,1:11),MomExtTd(1:4,1:10),Q(1:4),QTd(1:4),KSum(1:4) +! real(8) :: sab,sai,sbi,sij,sik,skj,x,v,y,yp,z,Q2,mu2,mu,MomFac1,MomFac2,MomFac3 +! complex(8) :: Dipole +! +! +! a=1; i=5; b=2! initial-initial +! +! sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) +! sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) +! sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) +! x = 1d0 - (sai+sbi)/sab +! v = sai/sab +! if( alpha_ii.lt.v ) then +! Dipole = (0d0,0d0) +! return +! endif +! +! MomExtTd(1:4,a) = x*MomExt(1:4,a) +! MomExtTd(1:4,b) = MomExt(1:4,b) +! +! Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) +! QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) +! KSum(1:4) = Q(1:4)+QTd(1:4) +! MomExtTd(1:4,3) = MomExt(1:4,3) - 2d0*(MomExt(1:4,3).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,3).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) +! MomExtTd(1:4,4) = MomExt(1:4,4) - 2d0*(MomExt(1:4,4).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,4).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) +! +! Dipole = -1d0/sai/x * 2d0*TR * (1d0-2d0*x*(1d0-x)) +! +! +! END SUBROUTINE +! +! +! +! +! +! SUBROUTINE Dipoles_qg_Z_ttbq(nDipole,MomExt,MomExtTd,Dipole)! global norm: 4d0*Pi*alpha_s +! use ModParameters +! use ModKinematics +! use ModMisc +! implicit none +! integer :: nDipole,a,i,b,j,k +! real(8) :: MomExt(1:4,1:11),MomExtTd(1:4,1:10),Q(1:4),QTd(1:4),KSum(1:4) +! real(8) :: sab,sai,sbi,sij,sik,skj,x,v,y,yp,z,Q2,mu2,mu,MomFac1,MomFac2,MomFac3 +! complex(8) :: Dipole +! +! a=2; i=5; b=1! initial-initial +! +! sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) +! sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) +! sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) +! x = 1d0 - (sai+sbi)/sab +! v = sai/sab +! if( alpha_ii.lt.v ) then +! Dipole = (0d0,0d0) +! return +! endif +! +! MomExtTd(1:4,a) = x*MomExt(1:4,a) +! MomExtTd(1:4,b) = MomExt(1:4,b) +! +! Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) +! QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) +! KSum(1:4) = Q(1:4)+QTd(1:4) +! MomExtTd(1:4,3) = MomExt(1:4,3) - 2d0*(MomExt(1:4,3).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,3).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) +! MomExtTd(1:4,4) = MomExt(1:4,4) - 2d0*(MomExt(1:4,4).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,4).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) +! +! Dipole = -1d0/sai/x * 2d0*TR * (1d0-2d0*x*(1d0-x)) +! +! END SUBROUTINE +! + + + + + + + + + +! FUNCTION ii_qq(sij,x,s) +! use ModMisc +! use ModParameters +! implicit none +! real(8), intent(in) :: x,sij +! integer, intent(in) :: s +! real(8) :: ii_qq +! real(8) :: L,lx, Pqqreg +! +! +! L = dlog(sij/MuRen**2) +! lx = dlog(x) +! +! Pqqreg = -1d0-x +! if (s.eq.1) then +! ii_qq = epinv*(epinv2-L) +L**2/2d0 - Pi**2/6.0 ! CET eq.(A.4) +! ! if (scheme.eq.'fdh') ii_qq = ii_qq - 1d0/2d0 +! elseif (s.eq.2) then +! ii_qq = -(epinv-L+lx)*Pqqreg+2d0*Pqqreg*dlog(1d0-x) - 2d0*dlog(x)/(1d0-x)+1d0-x ! CET eq.(A.4) +! if (alpha_ii/(1d0-x) .lt. 1d0) ii_qq=ii_qq + (2d0/(1d0-x)+Pqqreg)*dlog(alpha_ii/(1d0-x)) ! NEW +! elseif (s.eq.3) then +! ii_qq = 4d0*dlog(1d0-x)/(1d0-x) -(epinv-L)*2d0/(1d0-x) ! CET eq.(A.4) +! endif +! +! +! RETURN +! END FUNCTION + + + + +! ------------------ BEGIN MCFM SM check ------------ + + + + function ggHZ_pp_box(i1,i2,i3,i4,za,zb,s,mt2) + use ModParameters + implicit none + complex(8):: ggHZ_pp_box + integer:: i1,i2,i3,i4 + real(8):: mt2,s(1:4,1:4) + real(8):: mZsq,mHsq,s15,s25,s12,t + integer:: Nbox,Ntri,i + parameter(Nbox=3,Ntri=5) + complex(8):: qlI4,qlI3,qlI2 + integer:: d25_12,d15_12,d15_25 + parameter(d25_12=1,d15_12=2,d15_25=3) + integer:: c25_Z,cH_25,c12,c15_H,cZ_15 + parameter(c25_Z=1,cH_25=2,c12=3,c15_H=4,cZ_15=5) + complex(8):: D0(Nbox),C0(Ntri) + complex(8):: di(Nbox),cii(Ntri) + complex(8):: za(1:4,1:4),zb(1:4,1:4) + + + t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) + + ggHZ_pp_box=(0d0,0d0) + + +!======= kinematic configurations + s12=s(i1,i2) + mZsq=s(i3,i4) + s25=t(i1,i3,i4) + s15=t(i2,i3,i4) + mHsq=s(i1,i2)+s(i1,i3)+s(i1,i4)+s(i2,i3)+s(i2,i4)+s(i3,i4) + + + + di(:)=(0d0,0d0) + cii(:)=(0d0,0d0) +! +#if useQCDLoopLib==1 || linkMELA==1 + D0(d25_12)=qlI4(mZsq,0d0,0d0,mHsq,s25,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) + D0(d15_12)=qlI4(mZsq,0d0,0d0,mHsq,s15,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) + D0(d15_25)=qlI4(mHsq,0d0,mZsq,0d0,s15,s25,mt2,mt2,mt2,mt2,Mu_Ren**2,0) + C0(c25_Z)=qlI3(s25,0d0,mZsq,mt2,mt2,mt2,Mu_Ren**2,0) + C0(cH_25)=qlI3(mHsq,0d0,s25,mt2,mt2,mt2,Mu_Ren**2,0) + C0(c12)=qlI3(s12,0d0,0d0,mt2,mt2,mt2,Mu_Ren**2,0) + C0(c15_H)=qlI3(s15,0d0,mHsq,mt2,mt2,mt2,Mu_Ren**2,0) + C0(cZ_15)=qlI3(mZsq,0d0,s15,mt2,mt2,mt2,Mu_Ren**2,0) +#else + call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") +#endif + +!------- coefficiients of integrals + + di(d25_12)= & + (zb(i2,i1)*(2*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (-2*mt2*za(i2,i3) + za(i1,i2)*za(i3,i4)*zb(i4,i1))* & + zb(i4,i2)*(za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) & + - za(i1,i3)*(za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (t(i1,i3,i4)*za(i1,i2)*zb(i2,i1)*zb(i4,i2) + & + 2*(2*mt2 - za(i1,i2)*zb(i2,i1))*zb(i4,i1)* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) - & + t(i1,i3,i4)*za(i1,i2)* & + (za(i2,i3)*zb(i2,i1)*zb(i4,i1)* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & + za(i3,i4)*((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))*zb(i4,i2)**2 - & + zb(i4,i1)**2* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))))/ & + (2*s(i3,i4)*za(i1,i2)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) + + di(d15_12)= (zb(i2,i1)*(2*zb(i4,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))* & + (-2*mt2*za(i1,i3) - za(i1,i2)*za(i3,i4)*zb(i4,i2)) - & + za(i2,i3)*(za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))* & + (t(i2,i3,i4)*za(i1,i2)*zb(i2,i1)*zb(i4,i1) + & + 2*(2*mt2 - za(i1,i2)*zb(i2,i1))* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + zb(i4,i2)) + & + t(i2,i3,i4)*za(i1,i2)* & + (-(za(i1,i3)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + zb(i4,i2)) + & + za(i3,i4)*(-((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))*zb(i4,i2)**2) + & + zb(i4,i1)**2* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))))/ & + (2*s(i3,i4)*za(i1,i2)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) + + + di(d15_25)= -((4*mt2*zb(i2,i1)*(za(i1,i3)**2*zb(i3,i2)*zb(i4,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) - & + za(i1,i2)*za(i3,i4)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + zb(i4,i2)**2 + & + za(i1,i3)*zb(i4,i2)* & + (za(i2,i3)**2*zb(i3,i1)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i1)* & + (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & + za(i2,i3)* & + (za(i1,i4)*zb(i3,i1)*zb(i4,i1) + & + za(i2,i4)* & + (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & + ))))/ & + (za(i1,i2)*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) + & + (2*za(i1,i3)*(za(i1,i3)**2*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2)) + & + za(i1,i3)*(za(i2,i3)**3*zb(i3,i1)*zb(i3,i2)**2* & + (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) + & + za(i2,i3)**2*zb(i3,i1)*zb(i3,i2)* & + (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2))* & + (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & + + za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i2)*zb(i4,i3) + & + za(i1,i4)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3))) + & + za(i2,i3)*za(i2,i4)* & + (za(i2,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & + + za(i1,i4)*zb(i4,i1)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3))**2 - & + za(i3,i4)*zb(i4,i3)* & + (-(zb(i3,i2)**2*zb(i4,i1)**2) + & + zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3) + & + zb(i2,i1)**2*zb(i4,i3)**2))) + & + za(i1,i4)*(za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)**2* & + (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & + za(i2,i3)**3*zb(i3,i2)* & + (2*zb(i3,i2)**2*zb(i4,i1)**2 + & + 3*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3) + & + zb(i2,i1)**2*zb(i4,i3)**2) + & + za(i2,i3)*za(i2,i4)*zb(i4,i1)*zb(i4,i2)* & + (-(za(i3,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) + & + za(i1,i4)*zb(i4,i1)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3)) + & + 2*za(i2,i4)*zb(i4,i2)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3))) + & + za(i2,i3)**2* & + (za(i1,i4)*zb(i3,i2)*zb(i4,i1)**2* & + (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & + + za(i3,i4)*zb(i4,i3)* & + (-(zb(i3,i2)**2*zb(i4,i1)**2) + & + zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3) + & + zb(i2,i1)**2*zb(i4,i3)**2) + & + za(i2,i4)*zb(i4,i2)* & + (5*zb(i3,i2)**2*zb(i4,i1)**2 + & + 5*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) + zb(i2,i1)**2*zb(i4,i3)**2)))) & + + za(i1,i2)* & + (za(i1,i4)*zb(i4,i2)* & + (-(za(i2,i4)*za(i3,i4)*zb(i4,i1)**2*zb(i4,i2)* & + (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2))) & + + za(i2,i3)*zb(i4,i1)*zb(i4,i2)* & + (za(i1,i4)* & + (za(i2,i4)*zb(i2,i1) - za(i3,i4)*zb(i3,i1))* & + zb(i4,i1) - & + 2*za(i2,i4)*za(i3,i4)* & + (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3))) & + - za(i2,i3)**2* & + (-(za(i1,i4)*zb(i2,i1)*zb(i3,i1)*zb(i4,i1)* & + zb(i4,i2)) + & + za(i3,i4)* & + (zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3))**2)) + & + za(i1,i3)**2*zb(i3,i2)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i2,i3)*zb(i2,i1)* & + (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & + + zb(i4,i1)* & + (za(i2,i4)*zb(i2,i1)*zb(i4,i2) - & + za(i3,i4)* & + (zb(i3,i2)*zb(i4,i1) + & + 2*zb(i2,i1)*zb(i4,i3)))) + & + za(i1,i3)*(za(i2,i4)*zb(i4,i1)**2*zb(i4,i2)* & + (za(i1,i4)* & + (za(i2,i4)*zb(i2,i1) - & + 2*za(i3,i4)*zb(i3,i1))*zb(i4,i2) + & + za(i3,i4)*zb(i3,i2)* & + (za(i2,i4)*zb(i4,i2) - & + 2*za(i3,i4)*zb(i4,i3))) + & + za(i2,i3)**2* & + (za(i1,i4)*zb(i2,i1)*zb(i3,i1)*zb(i4,i2)* & + (3*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3)) + & + za(i3,i4)* & + (zb(i3,i2)**3*zb(i4,i1)**2 - & + zb(i2,i1)**2*zb(i3,i2)*zb(i4,i3)**2)) + & + za(i2,i3)* & + (za(i1,i4)*zb(i4,i1)*zb(i4,i2)* & + (-2*za(i3,i4)*zb(i3,i1)**2*zb(i4,i2) + & + za(i2,i4)*zb(i2,i1)* & + (3*zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3))) + & + 2*za(i3,i4)* & + (za(i2,i4)*zb(i3,i2)**2*zb(i4,i1)**2* & + zb(i4,i2) + & + za(i3,i4)*zb(i4,i3)* & + (-(zb(i3,i2)**2*zb(i4,i1)**2) + & + zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) + zb(i2,i1)**2*zb(i4,i3)**2)) & + ))))/ & + (za(i1,i2)**2*(za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))/ & + (2*s(i3,i4)) + + +!---- triangle coefficiients + cii(c25_Z)=(za(i1,i3)*(za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2)*zb(i4,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) + & + zb(i4,i2)*(za(i2,i3)**2*zb(i3,i1)*zb(i3,i2) + & + za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) + & + za(i2,i4)*zb(i4,i1)* & + (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & + za(i2,i3)*(za(i1,i4)*zb(i3,i1)*zb(i4,i1) + & + za(i2,i4)* & + (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)))))) & + /(za(i1,i2)**2*za(i3,i4)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))*zb(i4,i3)) + + cii(cZ_15)= (za(i2,i3)*(za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & + (za(i2,i3)*zb(i3,i1)*zb(i4,i2)* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & + zb(i4,i1)*(za(i1,i3)**2*zb(i3,i1)*zb(i3,i2) + & + za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & + za(i1,i4)*zb(i4,i2)* & + (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & + za(i1,i3)*(za(i2,i4)*zb(i3,i2)*zb(i4,i2) + & + za(i1,i4)* & + (2*zb(i3,i1)*zb(i4,i2) - zb(i2,i1)*zb(i4,i3)))))) & + /(za(i1,i2)**2*za(i3,i4)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))*zb(i4,i3)) + + cii(cH_25)=-((za(i2,i3)*(za(i1,i2)**2*zb(i2,i1)**2*zb(i4,i1) + & + (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & + (za(i1,i3)*zb(i3,i1)*zb(i4,i1) + & + za(i1,i4)*zb(i4,i1)**2 + & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + zb(i4,i2)) + & + za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1)*zb(i4,i1) + & + za(i1,i4)*zb(i4,i1)**2 + & + 2*za(i2,i3)*zb(i3,i1)*zb(i4,i2) + & + 2*za(i2,i4)*zb(i4,i1)*zb(i4,i2) - & + za(i2,i3)*zb(i2,i1)*zb(i4,i3))))/ & + (s(i3,i4)*za(i1,i2)**2* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)))) + + cii(c15_H)= -((za(i1,i3)*(za(i1,i2)**2*zb(i2,i1)**2*zb(i4,i2) + & + (za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1))* & + (za(i2,i3)*zb(i3,i2)*zb(i4,i2) + & + za(i2,i4)*zb(i4,i2)**2 + & + zb(i4,i1)*(za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))) + & + za(i1,i2)*zb(i2,i1)* & + (2*za(i1,i3)*zb(i3,i2)*zb(i4,i1) + & + za(i2,i3)*zb(i3,i2)*zb(i4,i2) + & + 2*za(i1,i4)*zb(i4,i1)*zb(i4,i2) + & + za(i2,i4)*zb(i4,i2)**2 + & + za(i1,i3)*zb(i2,i1)*zb(i4,i3))))/ & + (s(i3,i4)*za(i1,i2)**2* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)))) + + cii(c12)= -((zb(i2,i1)*((zb(i4,i1)* & + (-(za(i2,i3)*zb(i2,i1)) + za(i3,i4)*zb(i4,i1)))/ & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) - & + (zb(i4,i2)*(za(i1,i3)*zb(i2,i1) + & + za(i3,i4)*zb(i4,i2)))/ & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))/ & + s(i3,i4)) + + + + ggHZ_pp_box=(0d0,0d0) + do i=1,Nbox + ggHZ_pp_box=ggHZ_pp_box+D0(i)*di(i) + enddo + do i=1,Ntri + ggHZ_pp_box=ggHZ_pp_box+C0(i)*cii(i) + enddo + + return + end + + + + + function ggHZ_mp_box(i1,i2,i3,i4,za,zb,s,mt2) + implicit none + complex(8):: ggHZ_mp_box,za(1:4,1:4),zb(1:4,1:4) + integer:: i1,i2,i3,i4 + real(8):: mt2,s(1:4,1:4) + real(8):: mZsq,mHsq,s15,s25,s12,t + integer:: Nbox,Ntri,i + parameter(Nbox=3,Ntri=6) + + complex(8):: qlI4,qlI3,qlI2 + integer:: d25_12,d15_12,d15_25 + parameter(d25_12=1,d15_12=2,d15_25=3) + integer:: c25_Z,cH_25,c12,c15_H,cZ_15,c12_Z_H + parameter(c25_Z=1,cH_25=2,c12=3,c15_H=4,cZ_15=5,c12_Z_H=6) +!--- nb I swapped the notation wrt to KC for 3m triangle, so that I +!---- can unify two rotuines and save calls to QCDLoop. + complex(8):: D0(Nbox),C0(Ntri) + complex(8):: di(Nbox),cii(Ntri) + +! complex(8):: ggHZ_mp_2me_b1,ggHZ_mp_2mh_b1 +! complex(8):: ggHZ_mp_tri1,ggHZ_mp_tri2,ggHZ_mp_3mtri + + + t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) + + ggHZ_mp_box=(0d0,0d0) + + +!======= kinematic configurations + s12=s(i1,i2) + mZsq=s(i3,i4) + s25=t(i1,i3,i4) + s25=t(i1,i3,i4) + s15=t(i2,i3,i4) + mHsq=s(i1,i2)+s(i1,i3)+s(i1,i4)+s(i2,i3)+s(i2,i4)+s(i3,i4) + + di(:)=(0d0,0d0) + cii(:)=(0d0,0d0) + + +!----- fill integrals from QCD loop : boxes + +#if useQCDLoopLib==1 || linkMELA==1 + D0(d25_12)=qlI4(mZsq,0d0,0d0,mHsq,s25,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) + D0(d15_12)=qlI4(mZsq,0d0,0d0,mHsq,s15,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) + D0(d15_25)=qlI4(mHsq,0d0,mZsq,0d0,s15,s25,mt2,mt2,mt2,mt2,Mu_Ren**2,0) + +! ----- fill integrals from QCD loop : triangles + C0(c25_Z)=qlI3(s25,0d0,mZsq,mt2,mt2,mt2,Mu_Ren**2,0) + C0(cH_25)=qlI3(mHsq,0d0,s25,mt2,mt2,mt2,Mu_Ren**2,0) + C0(c12)=qlI3(s12,0d0,0d0,mt2,mt2,mt2,Mu_Ren**2,0) + C0(c15_H)=qlI3(s15,0d0,mHsq,mt2,mt2,mt2,Mu_Ren**2,0) + C0(cZ_15)=qlI3(mZsq,0d0,s15,mt2,mt2,mt2,Mu_Ren**2,0) + C0(c12_Z_H)=qlI3(s12,mZsq,mHsq,mt2,mt2,mt2,Mu_Ren**2,0) +#else + call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") +#endif + +!------ box coefficiients + di(d25_12)= ggHZ_mp_2mh_b1(i1,i2,i3,i4,za,zb,s,mt2) + di(d15_12)= -ggHZ_mp_2mh_b1(i2,i1,i4,i3,zb,za,s,mt2) + di(d15_25)= ggHZ_mp_2me_b1(i1,i2,i3,i4,za,zb,s,mt2) + + +!==== triangle coefficiients + + cii(c25_Z)=ggHZ_mp_tri2(i1,i2,i3,i4,za,zb,s,mt2) + cii(cZ_15)=-ggHZ_mp_tri2(i2,i1,i4,i3,zb,za,s,mt2) + cii(cH_25)=-ggHZ_mp_tri1(i1,i2,i3,i4,za,zb,s,mt2) + cii(c15_H)=ggHZ_mp_tri1(i2,i1,i4,i3,zb,za,s,mt2) + cii(c12_Z_H)=ggHZ_mp_3mtri(i1,i2,i3,i4,za,zb,s) + cii(c12)= (-(za(i1,i3)*(za(i1,i4)*za(i2,i3) + & + za(i1,i3)*za(i2,i4))*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + zb(i4,i3)) + & + za(i1,i2)**2*za(i3,i4)*zb(i2,i1)* & + (-(za(i2,i3)*zb(i2,i1)) + za(i3,i4)*zb(i4,i1))* & + zb(i4,i3) + za(i1,i2)* & + (2*za(i1,i3)**2*za(i2,i4)*zb(i2,i1)*zb(i3,i1)* & + zb(i4,i1) + & + 2*za(i2,i4)**2*za(i3,i4)*zb(i4,i1)* & + zb(i4,i2)**2 - & + za(i2,i3)**2*zb(i2,i1)* & + (2*za(i2,i4)*zb(i3,i2)*zb(i4,i2) + & + za(i1,i4)*zb(i2,i1)*zb(i4,i3)) + & + za(i1,i3)*zb(i2,i1)* & + (2*za(i1,i4)*za(i2,i4)*zb(i4,i1)**2 + & + 2*za(i2,i4)**2*zb(i4,i1)*zb(i4,i2) - & + za(i2,i3)*za(i3,i4)*zb(i3,i1)*zb(i4,i3) + & + za(i2,i4)* & + (-(za(i2,i3)*zb(i2,i1)) + & + 2*za(i3,i4)*zb(i4,i1))*zb(i4,i3)) + & + za(i2,i3)*(za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & + (-2*za(i2,i4)*zb(i4,i2) + & + za(i3,i4)*zb(i4,i3)) - & + 2*za(i2,i4)*zb(i4,i2)* & + (za(i2,i4)*zb(i2,i1)*zb(i4,i2) + & + za(i3,i4)* & + (-(zb(i3,i1)*zb(i4,i2)) + & + 2*zb(i2,i1)*zb(i4,i3))))))/ & + (2.*za(i2,i4)*za(i3,i4)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2* & + zb(i4,i3)) + + + ggHZ_mp_box=(0d0,0d0) +!===== make amplitude + do i=1,Nbox + ggHZ_mp_box=ggHZ_mp_box+D0(i)*di(i) + enddo + do i=1,Ntri + ggHZ_mp_box=ggHZ_mp_box+C0(i)*cii(i) + enddo + + return + end + + + function ggHZ_mp_2mh_b1(i1,i2,i3,i4,za,zb,s,mt2) + implicit none + complex(8):: ggHZ_mp_2mh_b1,za(1:4,1:4),zb(1:4,1:4) +!---- coefficiient of 2mh box + integer:: i1,i2,i3,i4 + real(8):: mt2,t,s(1:4,1:4) + t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) + + ggHZ_mp_2mh_b1=(-2*za(i1,i3)*(2*mt2*zb(i4,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & + t(i1,i3,i4)*za(i1,i2)*zb(i2,i1)* & + (t(i1,i3,i4)*zb(i4,i1) + & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))*zb(i4,i2))) + & + zb(i4,i2)*(-(t(i1,i3,i4)*za(i1,i2)*za(i3,i4)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))*zb(i4,i2)) + & + 2*za(i2,i3)*(t(i1,i3,i4)**2*za(i1,i2)*zb(i2,i1) + & + 2*mt2*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)))) + & + t(i1,i3,i4)*za(i1,i3)**2*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))*zb(i4,i3))/ & + (2.*s(i3,i4)*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2) + + return + end + + function ggHZ_mp_2me_b1(i1,i2,i3,i4,za,zb,s,mt2) + implicit none + complex(8):: ggHZ_mp_2me_b1,za(1:4,1:4),zb(1:4,1:4) +!---- coefficiient of 2mh box + integer:: i1,i2,i3,i4 + real(8):: mt2,s(1:4,1:4) + + ggHZ_mp_2me_b1= & + (-(za(i1,i2)**3*za(i3,i4)**2*zb(i2,i1)**2*zb(i4,i3)* & + (za(i2,i3)**2*zb(i3,i1)**2*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2) + & + 2*za(i2,i3)*zb(i3,i1)*zb(i4,i1)* & + (za(i2,i4)*zb(i3,i1)*zb(i4,i2)**2 + & + zb(i4,i3)* & + (za(i1,i3)*zb(i2,i1)*zb(i3,i1) + & + za(i3,i4)* & + (-(zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)*zb(i4,i3)))) + & + za(i2,i4)*zb(i4,i1)**2* & + (za(i2,i4)*zb(i4,i2)* & + (zb(i3,i1)*zb(i4,i2) + zb(i2,i1)*zb(i4,i3)) & + - 2*zb(i4,i3)* & + (-(za(i1,i3)*zb(i2,i1)*zb(i3,i1)) + & + za(i3,i4)* & + (zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3)))))) - & + (za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1))* & + (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & + (-2*za(i1,i4)**2*za(i2,i3)*zb(i4,i1)**2* & + (za(i2,i3)**2*zb(i3,i1)*zb(i3,i2)**2* & + zb(i4,i1) + & + za(i2,i4)**2*zb(i3,i1)*zb(i4,i1)* & + zb(i4,i2)**2 - & + za(i2,i3)*za(i2,i4)* & + (zb(i3,i2)**2*zb(i4,i1)**2 - & + 4*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2) + zb(i3,i1)**2*zb(i4,i2)**2)) + & + za(i1,i3)**2*za(i2,i4)*zb(i3,i1)* & + (-2*za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) - 2*zb(i3,i1)*zb(i4,i2)) & + + za(i2,i3)**2*zb(i3,i1)* & + (zb(i3,i2)**2*zb(i4,i1)**2 + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) + & + za(i2,i3)*za(i2,i4)*zb(i4,i1)* & + (-3*zb(i3,i2)**2*zb(i4,i1)**2 + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2) + & + zb(i3,i2)*zb(i4,i1)* & + (6*zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3)))) + & + za(i1,i3)*za(i1,i4)*zb(i4,i1)* & + (-2*za(i2,i3)**3*zb(i3,i1)**3*zb(i3,i2)* & + zb(i4,i2) + & + 2*za(i2,i4)**3*zb(i3,i1)*zb(i4,i1)**2* & + zb(i4,i2)**2 + & + za(i2,i3)**2*za(i2,i4)*zb(i3,i1)* & + (7*zb(i3,i2)**2*zb(i4,i1)**2 + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2) + & + zb(i3,i2)*zb(i4,i1)* & + (-10*zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3))) - & + za(i2,i3)*za(i2,i4)**2*zb(i4,i1)* & + (zb(i3,i2)**2*zb(i4,i1)**2 + & + zb(i3,i1)*zb(i4,i2)* & + (5*zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3)) - & + zb(i3,i2)*zb(i4,i1)* & + (8*zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3))))) + & + za(i1,i2)*(za(i1,i3)**3*zb(i2,i1)*zb(i3,i1)**2* & + (za(i2,i3)**2*zb(i3,i1)**2 - & + za(i2,i4)**2*zb(i4,i1)**2)* & + (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & + (-(zb(i3,i2)*zb(i4,i1)) + zb(i3,i1)*zb(i4,i2)) & + - za(i1,i3)**2* & + (za(i2,i3)**3*zb(i3,i1)**3*zb(i3,i2)* & + (3*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & + (zb(i3,i2)*zb(i4,i1) - & + zb(i3,i1)*zb(i4,i2)) + & + zb(i4,i2)* & + (-2*za(i3,i4)*zb(i3,i1)*zb(i3,i2)* & + zb(i4,i1) + & + za(i2,i4)*zb(i2,i1)* & + (zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2)))) + & + za(i2,i3)*za(i2,i4)**2*zb(i3,i1)*zb(i4,i1)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (zb(i3,i2)**2*zb(i4,i1)**2 - & + 3*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2) - 4*zb(i3,i1)**2*zb(i4,i2)**2 & + ) - & + 2*zb(i2,i1)**2*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3)*(-2*mt2 + za(i3,i4)*zb(i4,i3)) & + + zb(i2,i1)* & + (zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (-8*mt2 + 3*za(i1,i4)*zb(i4,i1) + & + 7*za(i2,i4)*zb(i4,i2) - & + 17*za(i3,i4)*zb(i4,i3)) - & + zb(i3,i2)**2*zb(i4,i1)**2* & + (-8*mt2 + za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2) - & + 4*za(i3,i4)*zb(i4,i3)) + & + 2*zb(i3,i1)**2*zb(i4,i2)**2* & + (4*mt2 - za(i1,i4)*zb(i4,i1) + & + 2*za(i3,i4)*zb(i4,i3)))) + & + za(i2,i4)**3*zb(i4,i1)**2* & + (za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & + (zb(i3,i2)*zb(i4,i1) - & + 3*zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)**2*zb(i4,i3)* & + (2*mt2*zb(i3,i2)*zb(i4,i1) - & + za(i3,i4)*zb(i3,i1)*zb(i4,i2)*zb(i4,i3)) & + + zb(i2,i1)* & + (-2*mt2*zb(i3,i2)**2*zb(i4,i1)**2 + & + zb(i3,i1)**2*zb(i4,i2)**2* & + (4*mt2 + za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2) - & + 8*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (2*mt2 - za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2) + & + 3*za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)**2*za(i2,i4)*zb(i3,i1)**2* & + (-(za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & + (5*zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2))) + & + zb(i2,i1)**2*zb(i4,i3)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + zb(i4,i3) + & + 2*zb(i3,i2)*zb(i4,i1)* & + (mt2 - za(i3,i4)*zb(i4,i3))) + & + zb(i2,i1)* & + (-(zb(i3,i1)**2*zb(i4,i2)**2* & + (-4*mt2 + 3*za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2))) + & + 2*zb(i3,i2)**2*zb(i4,i1)**2* & + (5*mt2 + za(i1,i4)*zb(i4,i1) - & + 4*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (-10*mt2 + za(i1,i4)*zb(i4,i1) + & + 7*za(i2,i4)*zb(i4,i2) + & + 5*za(i3,i4)*zb(i4,i3))))) + & + za(i1,i4)**2*zb(i4,i1)* & + (2*za(i2,i4)**3*za(i3,i4)*zb(i3,i1)* & + zb(i4,i1)**3*zb(i4,i2)**3 + & + za(i2,i3)**4*zb(i2,i1)*zb(i3,i1)**2*zb(i3,i2)* & + zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + zb(i3,i1)*zb(i4,i2)) & + + za(i2,i3)**3*zb(i3,i1)* & + (2*za(i3,i4)*zb(i3,i1)*zb(i3,i2)**2* & + zb(i4,i1)**2*zb(i4,i2) - & + zb(i2,i1)* & + (zb(i3,i1)**2*zb(i4,i2)**2* & + (4*mt2 + za(i2,i4)*zb(i4,i2)) - & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (8*mt2 + 7*za(i2,i4)*zb(i4,i2)) + & + 6*za(i3,i4)*zb(i3,i2)**2*zb(i4,i1)**2* & + zb(i4,i3))) + & + za(i2,i3)*za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)* & + (2*za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)* & + (zb(i3,i1)*zb(i4,i2)* & + (8*mt2 + za(i2,i4)*zb(i4,i2) - & + 10*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i2)*zb(i4,i1)* & + (-4*mt2 + za(i2,i4)*zb(i4,i2) + & + 4*za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)**2*za(i2,i4)*zb(i4,i1)* & + (2*za(i3,i4)*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + & + 2*zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)* & + (zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (4*mt2 + 7*za(i2,i4)*zb(i4,i2) - & + 20*za(i3,i4)*zb(i4,i3)) + & + 2*zb(i3,i1)**2*zb(i4,i2)**2* & + (2*mt2 + za(i3,i4)*zb(i4,i3)) + & + zb(i3,i2)**2*zb(i4,i1)**2* & + (-(za(i2,i4)*zb(i4,i2)) + & + 6*za(i3,i4)*zb(i4,i3))))) + & + za(i1,i3)*za(i1,i4)* & + (za(i2,i3)**4*zb(i2,i1)*zb(i3,i1)**3*zb(i3,i2)* & + zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + zb(i3,i1)*zb(i4,i2)) & + - za(i2,i4)**3*zb(i4,i1)**3*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) - & + 5*zb(i3,i1)*zb(i4,i2)) - & + za(i3,i4)*zb(i2,i1)**2*zb(i4,i3)**2 + & + zb(i2,i1)* & + (zb(i3,i1)*zb(i4,i2)* & + (8*mt2 + za(i2,i4)*zb(i4,i2) - & + 6*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i2)*zb(i4,i1)* & + (-4*mt2 + za(i2,i4)*zb(i4,i2) + & + za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)**3*zb(i3,i1)**2* & + (za(i3,i4)*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2)* & + (3*zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2)) + & + 2*mt2*zb(i2,i1)**2*zb(i3,i1)*zb(i4,i2)* & + zb(i4,i3) + & + zb(i2,i1)* & + (zb(i3,i1)**2*zb(i4,i2)**2* & + (2*mt2 - za(i2,i4)*zb(i4,i2)) + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (-6*mt2 + 2*za(i1,i4)*zb(i4,i1) + & + 6*za(i2,i4)*zb(i4,i2) - & + 3*za(i3,i4)*zb(i4,i3)) - & + zb(i3,i2)**2*zb(i4,i1)**2* & + (-8*mt2 + 2*za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2) + & + 4*za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)**2*za(i2,i4)*zb(i3,i1)*zb(i4,i1)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (2*zb(i3,i2)**2*zb(i4,i1)**2 + & + 9*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2) + zb(i3,i1)**2*zb(i4,i2)**2) & + + zb(i2,i1)**2*zb(i4,i3)* & + (2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) + & + zb(i3,i1)*zb(i4,i2)* & + (4*mt2 - za(i3,i4)*zb(i4,i3))) + & + zb(i2,i1)* & + (zb(i3,i1)**2*zb(i4,i2)**2* & + (8*mt2 + 2*za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2)) + & + zb(i3,i2)**2*zb(i4,i1)**2* & + (4*mt2 - 2*za(i1,i4)*zb(i4,i1) - & + za(i2,i4)*zb(i4,i2) + & + 18*za(i3,i4)*zb(i4,i3)) - & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (8*mt2 + 27*za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)*za(i2,i4)**2*zb(i4,i1)**2* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (-(zb(i3,i2)**2*zb(i4,i1)**2) + & + 7*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2) + 6*zb(i3,i1)**2*zb(i4,i2)**2 & + ) + & + 2*zb(i2,i1)**2*zb(i4,i3)* & + (mt2*zb(i3,i1)*zb(i4,i2) + & + za(i3,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) & + + zb(i2,i1)* & + (zb(i3,i2)**2*zb(i4,i1)**2* & + (-4*mt2 + za(i2,i4)*zb(i4,i2) - & + 2*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & + (2*mt2 - 2*za(i1,i4)*zb(i4,i1) - & + 6*za(i2,i4)*zb(i4,i2) + & + 23*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)**2*zb(i4,i2)**2* & + (2*za(i1,i4)*zb(i4,i1) + & + za(i2,i4)*zb(i4,i2) - & + 2*(mt2 + 9*za(i3,i4)*zb(i4,i3))))))) & + + za(i1,i2)**2*zb(i2,i1)* & + (-(za(i1,i3)**2*zb(i2,i1)*zb(i3,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & + (za(i2,i3)*zb(i3,i1)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)*zb(i4,i3) + & + zb(i3,i2)*zb(i4,i1)* & + (4*mt2 - 3*za(i3,i4)*zb(i4,i3))) + & + za(i2,i4)*zb(i4,i1)* & + (-3*za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + zb(i4,i3) + & + zb(i3,i2)*zb(i4,i1)* & + (4*mt2 + za(i3,i4)*zb(i4,i3))))) + & + za(i1,i4)*(za(i2,i4)**2*za(i3,i4)*zb(i4,i1)**3* & + zb(i4,i2)* & + (zb(i3,i1)*zb(i4,i2)* & + (4*mt2 + za(i2,i4)*zb(i4,i2) - & + 4*za(i3,i4)*zb(i4,i3)) - & + zb(i2,i1)*zb(i4,i3)* & + (-4*mt2 + za(i2,i4)*zb(i4,i2) + & + 2*za(i3,i4)*zb(i4,i3))) + & + za(i2,i3)**2*zb(i3,i1)*zb(i4,i1)* & + (2*za(i3,i4)* & + (2*mt2*zb(i3,i1)**2*zb(i4,i2)**2 - & + 2*zb(i3,i1)* & + (2*mt2*zb(i2,i1) + & + za(i3,i4)*zb(i3,i2)*zb(i4,i1))* & + zb(i4,i2)*zb(i4,i3) + & + 3*za(i3,i4)*zb(i2,i1)*zb(i3,i2)* & + zb(i4,i1)*zb(i4,i3)**2) + & + za(i2,i4)*zb(i3,i1)*zb(i4,i2)**2* & + (za(i3,i4)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)* & + (8*mt2 - 7*za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)**3*zb(i3,i1)**2*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i2) + & + zb(i2,i1)* & + (-2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) + & + zb(i3,i1)*zb(i4,i2)* & + (4*mt2 - za(i3,i4)*zb(i4,i3)))) + & + za(i2,i3)*za(i2,i4)*zb(i4,i1)**2* & + (za(i2,i4)*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + & + 2*zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)* & + (2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) + & + zb(i3,i1)*zb(i4,i2)* & + (4*mt2 - 7*za(i3,i4)*zb(i4,i3)))) - & + 2*za(i3,i4)* & + (3*za(i3,i4)*zb(i2,i1)*zb(i3,i2)* & + zb(i4,i1)*zb(i4,i3)**2 + & + 2*zb(i3,i1)**2*zb(i4,i2)**2* & + (-2*mt2 + za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)*zb(i4,i2)*zb(i4,i3)* & + (2*za(i3,i4)*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)* & + (2*mt2 - 5*za(i3,i4)*zb(i4,i3)))))) & + + za(i1,i3)* & + (za(i2,i3)**3*zb(i3,i1)**3*zb(i3,i2)*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*(4*mt2 - za(i3,i4)*zb(i4,i3))) + & + za(i2,i3)**2*zb(i3,i1)**2* & + (-2*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & + (-2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) + & + zb(i3,i1)*zb(i4,i2)* & + (2*mt2 + za(i3,i4)*zb(i4,i3))) + & + za(i3,i4)* & + (-(za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & + zb(i4,i3)) + & + 2*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3)* & + (-4*mt2 + za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1)* & + (4*mt2 - 3*za(i3,i4)*zb(i4,i3)) + & + zb(i2,i1)*zb(i4,i3)* & + (4*mt2 + za(i3,i4)*zb(i4,i3)))) + & + za(i2,i4)*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (2*zb(i3,i2)*zb(i4,i1) + & + zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)* & + (-2*za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + zb(i4,i3) + & + zb(i3,i2)*zb(i4,i1)* & + (8*mt2 + za(i3,i4)*zb(i4,i3))))) + & + za(i2,i4)**2*zb(i4,i1)**2* & + (2*za(i1,i4)*zb(i2,i1)*zb(i3,i1)*zb(i4,i1)* & + zb(i4,i2)*(-2*mt2 + za(i3,i4)*zb(i4,i3)) & + + za(i3,i4)* & + (zb(i3,i1)**2*zb(i4,i2)**2* & + (za(i2,i4)*zb(i4,i2) - & + 5*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i1)*zb(i4,i2)* & + (2*zb(i2,i1)*zb(i4,i3)* & + (2*mt2 + za(i2,i4)*zb(i4,i2) - & + 3*za(i3,i4)*zb(i4,i3)) + & + zb(i3,i2)*zb(i4,i1)* & + (4*mt2 + za(i3,i4)*zb(i4,i3))) + & + zb(i2,i1)*zb(i4,i3)* & + (-(za(i3,i4)*zb(i2,i1)*zb(i4,i3)**2) + & + zb(i3,i2)*zb(i4,i1)* & + (4*mt2 - za(i2,i4)*zb(i4,i2) + & + za(i3,i4)*zb(i4,i3))))) + & + za(i2,i3)*za(i2,i4)*zb(i3,i1)*zb(i4,i1)* & + (4*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & + (-2*mt2*zb(i3,i1)*zb(i4,i2) + & + za(i3,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) & + + za(i2,i4)*zb(i4,i2)* & + (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + & + 2*zb(i3,i1)*zb(i4,i2)) + & + zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & + (4*mt2 + za(i3,i4)*zb(i4,i3))) - & + za(i3,i4)* & + (6*za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & + zb(i4,i3) - & + zb(i3,i1)*zb(i4,i2)* & + (2*zb(i3,i2)*zb(i4,i1)* & + (4*mt2 - za(i3,i4)*zb(i4,i3)) + & + zb(i2,i1)*zb(i4,i3)* & + (8*mt2 + 7*za(i3,i4)*zb(i4,i3))) + & + zb(i2,i1)*zb(i4,i3)* & + (za(i3,i4)*zb(i2,i1)*zb(i4,i3)**2 + & + zb(i3,i2)*zb(i4,i1)* & + (4*mt2 + 9*za(i3,i4)*zb(i4,i3))))))) & + )/(2.*za(i1,i2)**2*za(i3,i4)*zb(i2,i1)**2*zb(i3,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**3* & + zb(i4,i3)) + + return + end + + function ggHZ_mp_tri1(i1,i2,i3,i4,za,zb,s,mt2) + implicit none + complex(8)::ggHZ_mp_tri1,za(1:4,1:4),zb(1:4,1:4) +!---- coefficiient of 2mh box + integer:: i1,i2,i3,i4 + real(8):: mt2,t,s(1:4,1:4) + t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) + + ggHZ_mp_tri1=(-(za(i1,i2)**3*za(i3,i4)*zb(i2,i1)**2*zb(i4,i1)* & + zb(i4,i2)) + & + za(i1,i2)**2*zb(i2,i1)*zb(i4,i1)* & + (2*za(i1,i3)**2*zb(i2,i1)*zb(i3,i1) + & + za(i1,i3)*(2*za(i1,i4)*zb(i2,i1)*zb(i4,i1) + & + (3*za(i2,i4)*zb(i2,i1) - & + za(i3,i4)*zb(i3,i1))*zb(i4,i2)) - & + zb(i4,i2)*(3*za(i1,i4)*za(i2,i3)*zb(i2,i1) + & + 2*za(i3,i4)* & + (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))) & + ) - za(i1,i4)*za(i2,i3)*za(i3,i4)*zb(i4,i1)* & + zb(i4,i2)*(za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2))*zb(i4,i3) + & + za(i1,i3)**2*zb(i3,i1)* & + (za(i2,i4)**2*zb(i4,i1)*zb(i4,i2)**2 - & + 2*za(i2,i3)**2*zb(i2,i1)*zb(i3,i2)*zb(i4,i3) + & + za(i2,i3)*za(i2,i4)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) - 3*zb(i2,i1)*zb(i4,i3))) & + + za(i1,i3)*(za(i2,i4)*za(i3,i4)*zb(i4,i1)* & + zb(i4,i2)*(za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2))*zb(i4,i3) - & + za(i1,i4)*za(i2,i3)* & + (za(i2,i4)*zb(i4,i1)*zb(i4,i2)* & + (zb(i3,i2)*zb(i4,i1) + & + 3*zb(i2,i1)*zb(i4,i3)) + & + za(i2,i3)* & + (zb(i3,i2)**2*zb(i4,i1)**2 + & + 2*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & + zb(i4,i3) - zb(i2,i1)**2*zb(i4,i3)**2))) & + - za(i1,i2)*(za(i1,i3)**2*zb(i2,i1)*zb(i3,i1)* & + (-3*za(i2,i4)*zb(i4,i1)*zb(i4,i2) + & + za(i2,i3)* & + (-2*zb(i3,i2)*zb(i4,i1) + & + 2*zb(i2,i1)*zb(i4,i3))) + & + zb(i4,i2)*(za(i3,i4)* & + (2*za(i2,i3)*zb(i2,i1) + & + za(i3,i4)*zb(i4,i1))* & + (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & + zb(i4,i3) + & + 2*za(i1,i4)*za(i2,i3)*zb(i2,i1)* & + (2*za(i2,i4)*zb(i4,i1)*zb(i4,i2) + & + za(i2,i3)* & + (2*zb(i3,i2)*zb(i4,i1) - & + zb(i2,i1)*zb(i4,i3)))) + & + za(i1,i3)*(za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & + (-2*za(i2,i4)*zb(i4,i1)*zb(i4,i2) + & + za(i2,i3)* & + (-(zb(i3,i2)*zb(i4,i1)) + & + 3*zb(i2,i1)*zb(i4,i3))) + & + zb(i4,i2)* & + (za(i2,i4)* & + (-4*za(i2,i4)*zb(i2,i1) + & + za(i3,i4)*zb(i3,i1))*zb(i4,i1)* & + zb(i4,i2) + & + za(i2,i3)* & + (za(i3,i4)*zb(i3,i1)* & + (zb(i3,i2)*zb(i4,i1) - & + zb(i2,i1)*zb(i4,i3)) + & + 2*za(i2,i4)*zb(i2,i1)* & + (-2*zb(i3,i2)*zb(i4,i1) + & + zb(i2,i1)*zb(i4,i3)))))))/ & + (2.*s(i3,i4)*za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2) + return + end + + function ggHZ_mp_tri2(i1,i2,i3,i4,za,zb,s,mt2) + implicit none + complex(8):: ggHZ_mp_tri2,za(1:4,1:4),zb(1:4,1:4) +!---- coefficiient of 2mh box + integer:: i1,i2,i3,i4 + real(8):: mt2,t,s(1:4,1:4) + t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) + + ggHZ_mp_tri2= (zb(i4,i1)*(2*za(i1,i3)**3*zb(i2,i1)*zb(i3,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) + & + 2*za(i1,i4)*za(i2,i3)*za(i3,i4)*zb(i4,i1)* & + zb(i4,i2)*(za(i1,i2)*zb(i2,i1) + & + za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2)) + & + 2*za(i1,i3)*za(i3,i4)* & + (za(i1,i2)*zb(i2,i1)* & + (-(za(i1,i4)*zb(i4,i1)**2) + & + za(i2,i3)*zb(i3,i1)*zb(i4,i2)) + & + za(i2,i3)* & + (zb(i3,i1)*zb(i4,i2)* & + (za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2)) + & + za(i1,i4)*zb(i4,i1)* & + (-(zb(i3,i2)*zb(i4,i1)) + & + zb(i3,i1)*zb(i4,i2)))) + & + za(i1,i3)**2* & + (2*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) & + + za(i3,i4)* & + (-2*za(i1,i2)*zb(i2,i1)*zb(i3,i1)* & + zb(i4,i1) + & + za(i2,i4)*zb(i4,i1)* & + (zb(i3,i2)*zb(i4,i1) - & + zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3)) + & + za(i2,i3)*zb(i3,i1)* & + (-(zb(i3,i2)*zb(i4,i1)) + & + zb(i3,i1)*zb(i4,i2) + & + zb(i2,i1)*zb(i4,i3))))))/ & + (2.*za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2* & + zb(i4,i3)) + + return + end + + + function ggHZ_mp_3mtri(i1,i2,i3,i4,za,zb,s) + implicit none + complex(8):: ggHZ_mp_3mtri,za(1:4,1:4),zb(1:4,1:4) + integer:: i1,i2,i3,i4 + real(8):: mt2,t,gam + real(8):: P12(4),P34(4),s(1:4,1:4) + integer:: nu + + + t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) + +!==== part 1 + ggHZ_mp_3mtri= (-2*((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3))) & + **2*(1 - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**8* & + ((((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i2)*zb(i2,i1)* & + (((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2 - & + ((za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2)* & + ((za(i1,i2)**2*zb(i2,i1)**2* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**2* & + (-(za(i1,i2)*zb(i4,i2)) + & + (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**6) + & + ((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**2* & + (-(za(i2,i3)*zb(i2,i1)) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i1))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + (-(za(i1,i3)*zb(i4,i3)) + & + (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**6) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**2* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i2)*zb(i4,i2)* & + (((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (-(za(i2,i3)*zb(i2,i1)) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i1))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**4 + & + (za(i1,i2)**2*zb(i2,i1)**2* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**4)) + & + za(i1,i3)*zb(i2,i1)* & + (-((za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (-(za(i1,i2)*zb(i4,i2)) + & + (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2)/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**4)) + & + ((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + (-(za(i1,i3)*zb(i4,i3)) + & + (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**4)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**3))/ & + (1 - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2) + & + za(i3,i4)*zb(i4,i3)* & + (-((za(i1,i2)**4*zb(i2,i1)**4* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**3* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (za(i1,i2)*zb(i2,i1) + & + (za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (-(za(i1,i2)*zb(i4,i2)) + & + (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**3* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**4* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**9)) + & + (za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**3* & + (-(za(i2,i3)*zb(i2,i1)) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i1))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + ((za(i1,i2)**2*zb(i2,i1)*zb(i4,i2)* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (za(i1,i2)*zb(i2,i1) + & + (za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (-(za(i1,i3)*zb(i4,i3)) + & + (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2)))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**7) + & + ((za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**2* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**3* & + (-(za(i1,i3)*zb(i4,i3)) + & + (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + ((za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (-(za(i2,i3)*zb(i2,i1)) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i1))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**3 + & + ((za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (((za(i1,i2)*zb(i2,i1) + & + (za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (-(za(i2,i3)*zb(i2,i1)) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i1))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2 - & + za(i1,i2)*zb(i2,i1)* & + (-((za(i1,i2)*za(i1,i3)* & + zb(i2,i1)**2* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1)))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2))) + & + ((-(za(i2,i3)*zb(i2,i1)) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i1))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)))/ & + (1 - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**6 + & + (za(i1,i2)**2*zb(i2,i1)**2* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))**2* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + ((za(i1,i2)**3*zb(i2,i1)**2* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))*zb(i4,i2)* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**3) + & + ((-(za(i1,i2)*zb(i4,i2)) + & + (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + ((za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1))* & + (za(i1,i3)*zb(i3,i2) + & + za(i1,i4)*zb(i4,i2))* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**3 + & + ((za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (((za(i1,i2)*zb(i2,i1) + & + (za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))* & + (za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2 - & + za(i1,i2)*zb(i2,i1)* & + ((za(i1,i3)*zb(i2,i1)* & + (za(i2,i3)*zb(i3,i1) + & + za(i2,i4)*zb(i4,i1)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2) + & + ((za(i2,i3)*zb(i3,i2) + & + za(i2,i4)*zb(i4,i2) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))* & + (za(i3,i4)*zb(i4,i1) + & + (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**2)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)))/ & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)))/ & + (((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2* & + (1 - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/ & + 2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3)))**2)**5))))/ & + (za(i1,i2)**2*zb(i2,i1)**2* & + (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))** & + 4*(za(i1,i2)*zb(i2,i1) - & + (za(i1,i2)*zb(i2,i1)* & + (za(i1,i3)*zb(i3,i1) + & + za(i1,i4)*zb(i4,i1)))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + (za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1) - & + (za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3))/ & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)* & + zb(i4,i3))))**2* & + (-(za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3)) + & + ((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2. + & + Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & + (za(i2,i3)*zb(i3,i2))/2. + & + (za(i1,i4)*zb(i4,i1))/2. + & + (za(i2,i4)*zb(i4,i2))/2.)**2 - & + za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3) & + ))**2)) + +!+==== part 2 +!=====normalization + ggHZ_mp_3mtri=-ggHZ_mp_3mtri/(two*s(i3,i4)) + + return + end +! ------------------ END MCFM SM check ------------ + + + From 7e3a81fd5ad3b0340473a508bee6246b519a7c93 Mon Sep 17 00:00:00 2001 From: Heshy Roskes Date: Thu, 28 Sep 2017 12:01:51 -0400 Subject: [PATCH 08/11] fix linking for mela --- MELA/fortran/mod_VHiggs.F90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MELA/fortran/mod_VHiggs.F90 b/MELA/fortran/mod_VHiggs.F90 index 6ab5e7a0..218519ab 100755 --- a/MELA/fortran/mod_VHiggs.F90 +++ b/MELA/fortran/mod_VHiggs.F90 @@ -1967,9 +1967,11 @@ SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) 2*LC(3)*SI(0)*(SP(3) + SP(4)))) + 3*shat**3*VVHg3/MH2*SI(0)*(SP(2)*SP(6) - SP(1)*SP(7))))))/(3*E**y*shat**2*(MH2 - MV2 - MZ2 + 2*smT*Cosh(y))) +#if useCollier==1 ! MassiveBox = calc_MassiveBox(MV2,MH2,MT2,shat,smT,y,LC,SP,SI,kappa,kappa_tilde) ! MassiveBox = calc_MassiveBox_QP(MV2,MH2,MT2,shat,smT,y,LC,SP,SI,kappa,kappa_tilde) MassiveBox = calc_MassiveTensorBox(MV2,MT2,MH2,shat,that,uhat,smT,y,LC,SP,DD0,DD1,DD2,DD3,kappa,kappa_tilde) +#endif MasslessTri = MasslessTri * IZ(4,9)* PreFac MassiveTri = MassiveTri * IZ(3,9)* PreFac From 4687e5a2154fac46b572a5c2391899a47dc92584 Mon Sep 17 00:00:00 2001 From: Heshy Roskes Date: Thu, 28 Sep 2017 12:11:30 -0400 Subject: [PATCH 09/11] LHAPDF some versions have weird bug --- MELA/fortran/mod_JHUGen.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MELA/fortran/mod_JHUGen.F90 b/MELA/fortran/mod_JHUGen.F90 index 03711c30..d239b04a 100755 --- a/MELA/fortran/mod_JHUGen.F90 +++ b/MELA/fortran/mod_JHUGen.F90 @@ -183,7 +183,7 @@ SUBROUTINE InitPDFs() implicit none DOUBLE PRECISION alphasPDF - call InitPDFset(trim(LHAPDFString,lenLHAPDFString)) ! Let LHAPDF handle everything + call InitPDFSetByName(trim(LHAPDFString,lenLHAPDFString)) ! Let LHAPDF handle everything call InitPDF(LHAPDFMember) alphas_mz=alphasPDF(zmass_pdf) From 1a0c20016c45c8a2b4b6aacd79846c2f58bb73cb Mon Sep 17 00:00:00 2001 From: Heshy Roskes Date: Thu, 28 Sep 2017 13:49:32 -0400 Subject: [PATCH 10/11] newlines --- MELA/src/TNumericUtil.cc | 54 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/MELA/src/TNumericUtil.cc b/MELA/src/TNumericUtil.cc index c1cf7bdc..b9c4df48 100755 --- a/MELA/src/TNumericUtil.cc +++ b/MELA/src/TNumericUtil.cc @@ -4,32 +4,32 @@ using namespace std; -void TNumericUtil::PermutationGenerator(int n, int k, std::vector>& perms, int valbegin, int increment){ - if (n<=0 || k<=0 || k>n) return; - vector d(n); - iota(d.begin(), d.end(), 1); - do{ - vector aperm; - for (int i=0; i>& perms, int valbegin, int increment){ + if (n<=0 || k<=0 || k>n) return; + vector d(n); + iota(d.begin(), d.end(), 1); + do{ + vector aperm; + for (int i=0; i>& perms, int valbegin, int increment){ - if (n==k && k>0){ - vector d(n); - iota(d.begin(), d.end(), 1); - perms.push_back(d); - } - else{ - PermutationGenerator(n, k, perms); - for (auto& perm:perms) sort(perm.begin(), perm.end()); - for (auto ip=perms.begin(); ip!=perms.end(); ip++){ - for (auto jp=perms.rbegin(); (jp.base()-1)!=ip; jp++){ - if (*(ip)==*(jp)) perms.erase(jp.base()-1); - } - } - } - if (valbegin!=1 || increment!=1){ for (auto& p:perms){ for (auto& pp:p) pp = increment*(pp-1)+valbegin; } } +void TNumericUtil::CombinationGenerator(int n, int k, std::vector>& perms, int valbegin, int increment){ + if (n==k && k>0){ + vector d(n); + iota(d.begin(), d.end(), 1); + perms.push_back(d); + } + else{ + PermutationGenerator(n, k, perms); + for (auto& perm:perms) sort(perm.begin(), perm.end()); + for (auto ip=perms.begin(); ip!=perms.end(); ip++){ + for (auto jp=perms.rbegin(); (jp.base()-1)!=ip; jp++){ + if (*(ip)==*(jp)) perms.erase(jp.base()-1); + } + } + } + if (valbegin!=1 || increment!=1){ for (auto& p:perms){ for (auto& pp:p) pp = increment*(pp-1)+valbegin; } } } From 76fa5a83b932c033ffb01bbc5523b0e4c8563460 Mon Sep 17 00:00:00 2001 From: Ulascan Sarica Date: Fri, 29 Sep 2017 17:42:27 +0200 Subject: [PATCH 11/11] Remove unsued functions --- MELA/fortran/mod_VHiggs.F90 | 3105 +---------------------------------- 1 file changed, 1 insertion(+), 3104 deletions(-) diff --git a/MELA/fortran/mod_VHiggs.F90 b/MELA/fortran/mod_VHiggs.F90 index 218519ab..dc48285c 100755 --- a/MELA/fortran/mod_VHiggs.F90 +++ b/MELA/fortran/mod_VHiggs.F90 @@ -7,9 +7,7 @@ module ModVHiggs !----- notation for subroutines - public :: EvalAmp_VHiggs,EvalUnpolAmpSq_gg_VH,TreeAmp_qqb_ZH,TreeAmp_qqbg_ZH - public :: Dipoles_qqb_VH,CalcFormFactor1 - real,parameter,public :: alpha_ii=1d0 + public :: EvalAmp_VHiggs contains @@ -1712,3106 +1710,5 @@ SUBROUTINE getSME(p,FermFlav,SME) - - - - ! p: g1, g2, Zl1, Zl2, H - SUBROUTINE EvalUnpolAmpSq_gg_VH(p,UnPolSqAmp) - use ModParameters - use ModMisc -#if useCollier==1 - use COLLIER -#endif - implicit none - real(8) :: p(1:4,1:4),UnPolSqAmp - complex(8) :: SP(1:7),SI(0:16),LC(1:15) - complex(8) :: qlI1,qlI2,qlI3,qlI4,testYA,testMA - complex(8) :: ep1(1:4),ep2(1:4),cep3(1:4),p1(1:4),p2(1:4),p3(1:4) - complex(8) :: MasslessTri,MassiveTri,MassiveBox - real(8) :: shat,that,uhat,MT2,MH2,MZ2,MV2 - real(8) :: MuRen2,PreFac,PreFac2,IZ(3:4,9:9),smT,y,mTrans - integer :: eps,h1,h2,h3,i,j - complex(8) :: VVHg1,VVHg2,VVHg3 - complex(8) :: cmzsq, rat,cix,newsum_MCFM - complex(8) :: calc_MassiveBox,calc_MassiveBox_QP,calc_MassiveTensorBox,newsum - real(8),parameter :: E=dexp(1d0), ICol_sq=8d0 - integer,parameter :: rank=3 - double complex :: DD1(0:rank/2,0:rank,0:rank,0:rank),DD1uv(0:rank/2,0:rank,0:rank,0:rank) - double complex :: DD2(0:rank/2,0:rank,0:rank,0:rank),DD2uv(0:rank/2,0:rank,0:rank,0:rank) - double complex :: DD3(0:rank/2,0:rank,0:rank,0:rank),DD3uv(0:rank/2,0:rank,0:rank,0:rank) - double complex :: DD0(1:3) - double precision :: Derr(0:rank) - real(8) :: sprod(1:4,1:4),p5hat(1:4),p6hat(1:4) - complex(8) :: za(1:4,1:4),zb(1:4,1:4),a,b,c,d,ee,f,v,w,x,yy,z,o,ampMCFM(-1:1,-1:1,-1:1) - -! prefactors and kinematics - PreFac = Pi**2 * (4d0*pi*alpha_QED) * (4d0*pi*alphas) /sitW/M_W *1d0/(2d0*pi)**4 - PreFac2 = Pi**2 * dsqrt(4d0*pi*alpha_QED) * (4d0*pi*alphas) *m_Top**2/vev *1d0/(2d0*pi)**4 - IZ(3,9) = 0.5d0*(aL_QUp-aR_QUp)/2d0/sitW/dsqrt(1d0-sitW**2) ! top - IZ(4,9) = -IZ(3,9) ! bottom - - p1(1:4) = p(1:4,1) - p2(1:4) = p(1:4,2) - p3(1:4) = p(1:4,3)+p(1:4,4) - MZ2 = M_Z**2 - MH2 = M_Reso**2 - MT2 = M_Top**2 - MV2 = get_MInv2(dble(p3(1:4))) - shat =+2d0*(p1.dot.p2) - that =-2d0*(p1.dot.p3)+MV2 - uhat =-2d0*(p2.dot.p3)+MV2 - mTrans = dsqrt( get_pT(dble(p3(1:4)))**2 + MV2 ) - smT = dsqrt(shat)*mTrans - y = Get_ETA(dble(p3(1:4))) - - call spinoru2(4,(/p(1:4,1),p(1:4,2),p(1:4,3),p(1:4,4)/),za,zb,sprod) - a = za(1,2); b = za(1,3); c = za(1,4); d = za(2,3); ee = za(2,4); f = za(3,4) - v = zb(1,2); w = zb(1,3); x = zb(1,4); yy = zb(2,3); z = zb(2,4); o = zb(3,4) - - -! evaluate scalar integrals - SI(0) = 1d0 - eps = 0 -! ! check 1/eps^2 -! print *, "checking 1/eps^2" -! eps=-2 -! SI(0) = 0d0 - ! check 1/eps^1 -! print *, "checking 1/eps^1" -! eps=-1 -! SI(0) = 0d0 - - MuRen2 = Mu_Ren**2 -! print *, "checks" -! print *, PreFac,IZ,MZ2,MH2,MT2 -! print *, shat,that,uhat -! print *, p(1:4,1) -! print *, p(1:4,2) -! print *, p(1:4,3) -! print *, p(1:4,4) -! pause -#if useCollier==1 - call SetMuUV2_cll(MuRen2) - call SetMuIR2_cll(MuRen2) -#endif - - -! SI(1:16) = 0d0 -#if useQCDLoopLib==1 || linkMELA==1 - SI(1) = qlI1(MT2,MuRen2,eps) - SI(2) = qlI2(zero, MT2,MT2,MuRen2,eps) - SI(3) = qlI2(MH2, MT2,MT2,MuRen2,eps) - SI(4) = qlI2(MV2, MT2,MT2,MuRen2,eps) - SI(5) = qlI2(shat, MT2,MT2,MuRen2,eps) - SI(6) = qlI2(that, MT2,MT2,MuRen2,eps) - SI(7) = qlI2(uhat, MT2,MT2,MuRen2,eps) - SI(8) = qlI3(zero,zero,shat, MT2,MT2,MT2,MuRen2,eps) - SI(9) = qlI3(zero,MV2,that, MT2,MT2,MT2,MuRen2,eps) - SI(10)= qlI3(zero,MV2,uhat, MT2,MT2,MT2,MuRen2,eps) - SI(11)= qlI3(zero,that,MH2, MT2,MT2,MT2,MuRen2,eps) - SI(12)= qlI3(zero,uhat,MH2, MT2,MT2,MT2,MuRen2,eps) - SI(13)= qlI3(MV2,shat,MH2, MT2,MT2,MT2,MuRen2,eps) - SI(14)= qlI4(zero,zero,MV2,MH2,shat,that, MT2,MT2,MT2,MT2,MuRen2,eps) - SI(15)= qlI4(zero,zero,MV2,MH2,shat,uhat, MT2,MT2,MT2,MT2,MuRen2,eps) - SI(16)= qlI4(zero,MV2,zero,MH2,that,uhat, MT2,MT2,MT2,MT2,MuRen2,eps) -#else - call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") -#endif - - -#if useCollier==1 - call D_cll(DD1,DD1uv,dcmplx((/0d0,MH2,MV2,0d0,that,shat/)),dcmplx((/MT2,MT2,MT2,MT2/)),rank,Derr) - call D_cll(DD2,DD2uv,dcmplx((/0d0,MV2,MH2,0d0,uhat,shat/)),dcmplx((/MT2,MT2,MT2,MT2/)),rank,Derr) - call D_cll(DD3,DD3uv,dcmplx((/MV2,0d0,MH2,0d0,uhat,that/)),dcmplx((/MT2,MT2,MT2,MT2/)),rank,Derr) - - call D0_cll(DD0(1),dcmplx((/0d0,0d0,MV2,MH2,shat,that/)),dcmplx((/MT2,MT2,MT2,MT2/))) - call D0_cll(DD0(2),dcmplx((/0d0,0d0,MV2,MH2,shat,uhat/)),dcmplx((/MT2,MT2,MT2,MT2/))) - call D0_cll(DD0(3),dcmplx((/0d0,MV2,0d0,MH2,that,uhat/)),dcmplx((/MT2,MT2,MT2,MT2/))) -#else - call Error("This process requires linkCollier enabled in the makefile") -#endif - - - - VVHg1 = 0.5d0*ghz1 + ghz2 * ( p3(1:4).dot.(p1(1:4)+p2(1:4)) )/MZ2 - VVHg2 = -ghz2/MZ2 - - -! ! triangles in spinor helicity (for one helicity configuration) -! newsum = (-4*a*(0d0,1d0)*MT2*VVHg1*(c*w + ee*yy)*SI(8))/v -! newsum = newsum & -! + (-2*a*(0d0,1d0)*MT2*VVHg2/MH2*(b**2*w*x + b*(d*o*v - 2*a*v*x + c*x**2 + 2*d*x*yy) + z*(a*(-2*d*v + f*x) + d*(2*c*x + d*yy + ee*z))))*SI(8)/v -! newsum = newsum /( MV2-MZ2 + (0d0,1d0)*M_Z*Ga_Z ) ! * exp((0d0,1d0)*Pi*(+1d0)) - - - -! print *, "TESTER",(MZ2 + a*v)/(-MH2 + MV2 + MZ2 + b*w + c*x + d*yy + ee*z) - - - -! ! ! ! ! ! ! MCFM triangle (remember to set alpha_s=constant) -! !------ right lepton amplitudes -! amp(2,2,2)=ggHZ_pp_tri(1,2,4,3,za,zb,mt2) - -! call spinoru2(4,(/-p(1:4,1),-p(1:4,2),p(1:4,4),p(1:4,3)/),za,zb,sprod) -! cmzsq=M_Z**2-(0d0,1d0)*M_Z*Ga_Z -! ! top tri -! cix= (2*(-((mt2*za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (mt2*za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/ (za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) -! cix=cix+ (2*mt2*zb(2,1)**2*(za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) -! rat= (-2*(-((za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/(za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) -! rat=rat+ (-2*zb(2,1)**2* (za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) -! newsum_MCFM=( SI(8)*cix-rat/2d0 ) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * sprod(1,2)/dcmplx(sprod(1,2)-M_Z**2,0d0) -! -! ! bot tri -! mt2=0d0 -! SI(8) = qlI3(zero,zero,shat, MT2,MT2,MT2,MuRen2,eps) -! cix= (2*(-((mt2*za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (mt2*za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/ (za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) -! cix=cix+ (2*mt2*zb(2,1)**2*(za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) -! rat= (-2*(-((za(1,3)*zb(2,1)*zb(4,1))/za(1,2)) - (za(2,3)*zb(2,1)*zb(4,2))/za(1,2)))/(za(1,2)*za(3,4)*zb(2,1)*zb(4,3)) -! rat=rat+ (-2*zb(2,1)**2* (za(1,3)*zb(4,1) + za(2,3)*zb(4,2)))/ (cmzsq*sprod(1,2)*sprod(3,4)) -! newsum_MCFM=newsum_MCFM - ( SI(8)*cix-rat/2d0 ) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * sprod(1,2)/dcmplx(sprod(1,2)-M_Z**2,0d0) - -! restoring -! mt2 = m_top**2 -! SI(8) = qlI3(zero,zero,shat, MT2,MT2,MT2,MuRen2,eps) -! -! -! -! -! ! the boxes -! call spinoru2(4,(/-p(1:4,1),-p(1:4,2),p(1:4,4),p(1:4,3)/),za,zb,sprod) -! -! !------ left handed lepton coupling (- sign from line reversal) -! ampMCFM(-1,-1,+1)= ggHZ_pp_box(1,2,3,4,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep -! ampMCFM(+1,-1,+1)= ggHZ_mp_box(1,2,3,4,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep -! ampMCFM(-1,+1,+1)=-ggHZ_mp_box(1,2,4,3,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep -! ampMCFM(+1,+1,+1)=-ggHZ_pp_box(1,2,4,3,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aL_lep -! -! !------- right handed lepton coupling -! ampMCFM(-1,-1,-1)= ggHZ_pp_box(1,2,4,3,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep -! ampMCFM(+1,-1,-1)= ggHZ_mp_box(1,2,4,3,za,zb,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep -! ampMCFM(-1,+1,-1)=-ggHZ_mp_box(1,2,3,4,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep -! ampMCFM(+1,+1,-1)=-ggHZ_pp_box(1,2,3,4,zb,za,sprod,mt2) *sprod(3,4)/dcmplx(sprod(3,4)-M_Z**2,M_Z*Ga_Z) * aR_lep -! -! ! ! ! ! ! END MCMF - - - -! helicity sum - UnPolSqAmp = 0d0 - do h1=-1,+1, 2 - do h2=-1,+1, 2 - do h3=-1,+1, 2 - -! polarization vectors - ep1(1:4) = pol_gluon_incoming(p(1:4,1),h1) - ep2(1:4) = pol_gluon_incoming(p(1:4,2),h2) - -! cep3(1:4) = pol_mass(p3(1:4),h3,outgoing=.true.) - - - cep3(1:4)= pol_Zff_outgoing(p(1:4,3),p(1:4,4),h3) * (-1d0)/( MV2-MZ2 + (0d0,1d0)*M_Z*Ga_Z ) - if( h3.lt.0 ) then - cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aR_lep - else - cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aL_lep - endif - - - -! scalar products - SP(1) = (cep3.dot.ep1) - SP(2) = (cep3.dot.ep2) - SP(3) = (cep3.dot.p1) - SP(4) = (cep3.dot.p2) - SP(5) = ( ep1.dot.ep2) - SP(6) = ( ep1.dot.p3) - SP(7) = ( ep2.dot.p3) - -! Levi-Civita tensors - LC(1) = LeviCiv(p1,ep1,ep2,cep3) - LC(2) = LeviCiv(p1,p2,ep1,cep3) - LC(3) = LeviCiv(p1,p2,ep1,ep2) - LC(4) = LeviCiv(p1,p2,ep2,cep3) - LC(5) = LeviCiv(p1,p2,p3,cep3) - LC(6) = LeviCiv(p1,p2,p3,ep1) - LC(7) = LeviCiv(p1,p2,p3,ep2) - LC(8) = LeviCiv(p1,p3,ep1,cep3) - LC(9) = LeviCiv(p1,p3,ep1,ep2) - LC(10)= LeviCiv(p1,p3,ep2,cep3) - LC(11)= LeviCiv(p2,ep1,ep2,cep3) - LC(12)= LeviCiv(p2,p3,ep1,cep3) - LC(13)= LeviCiv(p2,p3,ep1,ep2) - LC(14)= LeviCiv(p2,p3,ep2,cep3) - LC(15)= LeviCiv(p3,ep1,ep2,cep3) - -! shat*(LC(1) - LC(11)) - 2*LC(3)*(SP(3) + SP(4)) == 00 - -print *, "CHECK: for some reasone the original VVHg2,VVHg3 couplings were not divided by MH2" -print *, "CHECK in comparison with Yaofu/Mathematica because VVHg2 is already divided above." - -! Loop amplitudes - MasslessTri = (2*MZ2*SI(0)*(-4*VVHg1*LC(3)*(SP(3) + SP(4)) + 4*smT*VVHg2/MH2*Cosh(y)*LC(3)*(SP(3) + SP(4)) & - + shat*(-(VVHg1*(LC(1) + 5*LC(11))) + VVHg2/MH2*(LC(9) + 5*LC(13))*(SP(3) + SP(4))) & - + 3*shat**2*VVHg3/MH2*(SP(2)*SP(6) - SP(1)*SP(7))))/(3*shat*(-MH2 + MV2 + MZ2 - 2*smT*Cosh(y))) -! - MassiveTri = (-2*(2*smT*VVHg2/MH2*LC(3)*(MZ2*(shat*SI(0) - SI(1) + MT2*(SI(0) - 2*SI(2) + 3*SI(5))) + & - 3*MT2*(MZ2 - shat)*shat*SI(8))*(SP(3) + SP(4)) + 2*E**(2*y)*smT*VVHg2/MH2*LC(3)* & - (MZ2*(shat*SI(0) - SI(1) + MT2*(SI(0) - 2*SI(2) + 3*SI(5))) + 3*MT2*(MZ2 - shat)*shat*SI(8))*(SP(3) + SP(4)) + & - E**y*(-2*MT2*(-6*shat**2*(VVHg1 + shat*VVHg2/MH2)*LC(3)*SI(8)*(SP(3) + SP(4)) + MZ2*(2*VVHg1*LC(3)*(SI(0) - 2*SI(2) + 3*SI(5))* & - (SP(3) + SP(4)) + 6*shat**2*VVHg2/MH2*LC(3)*SI(8)*(SP(3) + SP(4)) + shat*(VVHg2/MH2*(LC(9) - LC(13))*(SI(0) - 2*SI(2) + 3*SI(5))* & - (SP(3) + SP(4)) + VVHg1*(-((LC(1) - LC(11))*(SI(0) - 2*SI(2) + 3*SI(5))) + & - 6*LC(3)*SI(8)*(SP(3) + SP(4)))))) + MZ2*(4*VVHg1*LC(3)*SI(1)*(SP(3) + SP(4)) + & - shat**2*SI(0)*(-(VVHg1*(LC(1) + 5*LC(11))) + VVHg2/MH2*(LC(9) + 5*LC(13))*(SP(3) + SP(4))) - & - 2*shat*(-(VVHg2/MH2*(LC(9) - LC(13))*SI(1)*(SP(3) + SP(4))) + VVHg1*((LC(1) - LC(11))*SI(1) + & - 2*LC(3)*SI(0)*(SP(3) + SP(4)))) + 3*shat**3*VVHg3/MH2*SI(0)*(SP(2)*SP(6) - SP(1)*SP(7))))))/(3*E**y*shat**2*(MH2 - MV2 - MZ2 + 2*smT*Cosh(y))) - - -#if useCollier==1 -! MassiveBox = calc_MassiveBox(MV2,MH2,MT2,shat,smT,y,LC,SP,SI,kappa,kappa_tilde) -! MassiveBox = calc_MassiveBox_QP(MV2,MH2,MT2,shat,smT,y,LC,SP,SI,kappa,kappa_tilde) - MassiveBox = calc_MassiveTensorBox(MV2,MT2,MH2,shat,that,uhat,smT,y,LC,SP,DD0,DD1,DD2,DD3,kappa,kappa_tilde) -#endif - - MasslessTri = MasslessTri * IZ(4,9)* PreFac - MassiveTri = MassiveTri * IZ(3,9)* PreFac - MassiveBox = MassiveBox * IZ(3,9)* PreFac2 - - UnPolSqAmp = UnPolSqAmp + ICol_sq * cdabs( MasslessTri*1 + MassiveTri*1 + MassiveBox*1 )**2 - - - -! print *, h1,h2,h3 -! print *, "MasslessTri",MasslessTri -! print *, "MassiveTri",MassiveTri -! print *, "MassiveBox",MassiveBox -! pause - - enddo - enddo - enddo - - - RETURN - END SUBROUTINE - - - - - - -FUNCTION TreeAmp_qqb_ZH(MomExt,Heli)! ordering: 1:in 2:in 3:H 4:l1 5:l2 -use ModParameters -use ModMisc -implicit none -integer,parameter:: minus=0, plus=1, dummy=0 -real(8) :: MomExt(1:4,1:6),MomZst1(1:4),MomZst2(1:4),PreFac,MomH(1:4) -integer :: Heli(1:4) -complex(8) ::TreeAmp_qqb_ZH(1:6),TreeAmp(minus:plus),VVHg1,VVHg2,VVHg3 -complex(8) :: Spi(1:4),BarSpi(1:4,minus:plus),ZPol1(1:4,minus:plus),ZPol2(1:4),cep3(1:4),ZProp1,ZProp2 -TreeAmp_qqb_ZH(1:6) = (0d0,0d0) - - - Spi(1:4) = v_spinor(MomExt(1:4,1),-Heli(1)) ! incomming quark= u(p,lambda) = v(p,-lambda) - BarSpi(1:4,dummy) = ubar_spinor(MomExt(1:4,2),-Heli(2)) ! incomming anti-quark= vbar(p,lambda) = ubar(p,-lambda) - BarSpi(1:4,plus) = Chir_Weyl(plus,BarSpi(1:4,dummy)) - BarSpi(1:4,minus) = Chir_Weyl(minus,BarSpi(1:4,dummy)) - ZPol1(1:4,plus) = vbqq_Weyl(BarSpi(1:4,plus),Spi(1:4)) - ZPol1(1:4,minus) = vbqq_Weyl(BarSpi(1:4,minus),Spi(1:4)) - - - - MomZst1(1:4) = MomExt(1:4,1)+MomExt(1:4,2) - MomZst2(1:4) = MomExt(1:4,5)+MomExt(1:4,6) - MomH(1:4) = MomExt(1:4,3)+MomExt(1:4,4) - ZProp1 = -(0d0,1d0)/((MomZst1(1:4).dot.MomZst1(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) - ZProp2 = -(0d0,1d0)/((MomZst2(1:4).dot.MomZst2(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) - - - cep3(1:4)= pol_Zff_outgoing(MomExt(1:4,5),MomExt(1:4,6),Heli(3)) * ZProp2 - if( Heli(3).lt.0 ) then - cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aR_lep - else - cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aL_lep - endif - - PreFac = 2d0*m_v**2/vev - VVHg1 = PreFac*( 0.5d0*ghz1 + ghz2 * ( MomZst2.dot.MomZst1 )/M_Z**2 ) - VVHg2 = PreFac*( -ghz2/M_Z**2 ) - VVHG3 = PreFac*( -ghz3/M_Z**2 ) - - - TreeAmp(plus) = VVHg1 * (cep3.dot.ZPol1(:,plus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,plus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,plus), cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) - TreeAmp(minus) = VVHg1 * (cep3.dot.ZPol1(:,minus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,minus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,minus),cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) - - TreeAmp_qqb_ZH(up_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqb_ZH(dn_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqb_ZH(chm_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqb_ZH(str_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqb_ZH(bot_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 - -RETURN -END FUNCTION - - - - - - - - -FUNCTION TreeAmp_qqbg_ZH(MomExt,Heli)! gluon emission from initial state ! ordering: 1:in 2:in 3:H 4:l1 5:l2 6: gluon -use ModParameters -use ModMisc -implicit none -integer,parameter:: minus=-1, plus=1, dummy=0 -real(8) :: MomExt(1:4,1:7) -integer :: Heli(1:5) -complex(8) ::TreeAmp_qqbg_ZH(1:6),TreeAmp(minus:plus),VVHg1,VVHg2,VVHg3,cep3(1:4) -complex(8) :: Spi(1:4),SpiAux(1:4,minus:plus),PolGlu(1:4),BarSpi(1:4),ZPol1(1:4,minus:plus),ZPol2(1:4),ZProp1,ZProp2,PropMom(1:4) -real(8) :: MomZst1(1:4),MomZst2(1:4),MomH(1:4),PreFac -TreeAmp_qqbg_ZH(:) = (0d0,0d0) - - - Spi(1:4) = v_spinor(MomExt(1:4,1),-Heli(1)) ! incomming quark= u(p,lambda) = v(p,-lambda) - BarSpi(1:4) = ubar_spinor(MomExt(1:4,2),-Heli(2)) ! incomming anti-quark= vbar(p,lambda) = ubar(p,-lambda) - PolGlu(1:4) = pol_mless(dcmplx(MomExt(1:4,7)),Heli(5),outgoing=.true.) -! PolGlu(1:4) = MomExt(1:4,7) ; print *, "gauge invariance check" - - MomZst1(1:4) = MomExt(1:4,1)+MomExt(1:4,2)-MomExt(1:4,7) - MomZst2(1:4) = MomExt(1:4,5)+MomExt(1:4,6) - MomH(1:4) = MomExt(1:4,3)+MomExt(1:4,4) - -! diagram 1: gluon emission from quark - SpiAux(1:4,dummy) = spi2_Weyl(PolGlu(1:4),Spi(1:4))* cI * dsqrt(4d0*Pi*alphas) - PropMom(1:4) = MomExt(1:4,1)-MomExt(1:4,7) - SpiAux(1:4,dummy) = spi2_Weyl(PropMom(1:4),SpiAux(1:4,dummy)) * cI/(PropMom(1:4).dot.PropMom(1:4)) - SpiAux(1:4,plus) = Chir_Weyl(plus, BarSpi(1:4)) - SpiAux(1:4,minus) = Chir_Weyl(minus,BarSpi(1:4)) - ZPol1(1:4,plus) = vbqq_Weyl(SpiAux(1:4,plus), SpiAux(1:4,dummy)) - ZPol1(1:4,minus) = vbqq_Weyl(SpiAux(1:4,minus),SpiAux(1:4,dummy)) - -! diagram 2: gluon emisson from anti-quark - SpiAux(1:4,dummy) = spb2_Weyl(BarSpi(1:4),PolGlu(1:4))* cI * dsqrt(4d0*Pi*alphas) - PropMom(1:4)=-(MomExt(1:4,2)-MomExt(1:4,7)) - SpiAux(1:4,dummy) = spb2_Weyl(SpiAux(1:4,dummy),PropMom(1:4)) * cI/(PropMom(1:4).dot.PropMom(1:4)) - SpiAux(1:4,plus) = Chir_Weyl(plus, SpiAux(1:4,dummy)) - SpiAux(1:4,minus) = Chir_Weyl(minus,SpiAux(1:4,dummy)) - ZPol1(1:4,plus) = ZPol1(1:4,plus) + vbqq_Weyl(SpiAux(1:4,plus), Spi(1:4)) - ZPol1(1:4,minus) = ZPol1(1:4,minus) + vbqq_Weyl(SpiAux(1:4,minus),Spi(1:4)) - - ZProp1 = -(0d0,1d0)/((MomZst1(1:4).dot.MomZst1(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) - ZProp2 = -(0d0,1d0)/((MomZst2(1:4).dot.MomZst2(1:4))-M_Z**2 +(0d0,1d0)*Ga_Z*M_Z) - - cep3(1:4)= pol_Zff_outgoing(MomExt(1:4,5),MomExt(1:4,6),Heli(3)) * ZProp2 - if( Heli(3).lt.0 ) then - cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aR_lep - else - cep3(1:4) = cep3(1:4) * dsqrt(couplZffsq) * aL_lep - endif - - - PreFac = 2d0*m_v**2/vev - VVHg1 = PreFac*( 0.5d0*ghz1 + ghz2 * ( MomZst2.dot.MomZst1 )/M_Z**2 ) - VVHg2 = PreFac*( -ghz2/M_Z**2 ) - VVHG3 = PreFac*( -ghz3/M_Z**2 ) - - - TreeAmp(plus) = VVHg1 * (cep3.dot.ZPol1(:,plus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,plus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,plus), cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) - TreeAmp(minus) = VVHg1 * (cep3.dot.ZPol1(:,minus)) + VVHg2*(MomH(1:4).dot.cep3) * (ZPol1(:,minus).dot.MomH(1:4)) + VVHg3 * LeviCiv(ZPol1(:,minus),cep3,dcmplx(MomZst2),dcmplx(MomH(1:4))) - - - TreeAmp_qqbg_ZH(up_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqbg_ZH(dn_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqbg_ZH(chm_) = (TreeAmp(plus)*aR_QUp + TreeAmp(minus)*aL_QUp) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqbg_ZH(str_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 - TreeAmp_qqbg_ZH(bot_) = (TreeAmp(plus)*aR_QDn + TreeAmp(minus)*aL_QDn) * dsqrt(couplZffsq) * ZProp1 - - -RETURN -END FUNCTION - - - - - - - - -! -! -! SUBROUTINE IntDip_qqb_Z_ttb(z,sHat,IDip) -! use ModParameters -! use ModKinematics -! use ModMisc -! implicit none -! real(8) :: IDip(1:3),APsoft,APfini,APplus,z,sij,sHat -! real(8) :: dipsoft,dipfini,dipplus,epcorr -! integer :: n,emi -! -! -! epinv2=0d0 -! epinv =0d0 -! -! sij = sHat -! -! IDip(1:3) = 0d0 -! do n=1,4 -! if(n.eq.1) then -! dipsoft =ii_qq(sij,z,1) * CF -! dipfini =ii_qq(sij,z,2) * CF -! dipplus =ii_qq(sij,z,3) * CF -! emi = 1 -! elseif(n.eq.2) then -! dipsoft =ii_qq(sij,z,1) * CF -! dipfini =ii_qq(sij,z,2) * CF -! dipplus =ii_qq(sij,z,3) * CF -! emi = 2 -! endif -! -! if(emi.eq.1) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! IDip(2) = IDip(2) + (dipfini+dipplus) -! elseif(emi.eq.2) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! IDip(3) = IDip(3) + (dipfini+dipplus) -! endif -! enddo -! -! -! ! print *, epinv -! ! print *, "IntDip",IDip(2:3) -! -! -! ! ! epcorr=epinv+2d0*dlog(renscale/facscale) -! epcorr=epinv -! -! ! this is for qqb-->Z-->ttb+g process -! APsoft= 3d0/2d0*CF * epcorr -! APfini= (-1d0-z)*CF * epcorr -! APplus= 2d0*CF/(1d0-z) * epcorr -! IDip(1) = IDip(1) + (APsoft - APplus)*2d0 -! IDip(2) = IDip(2) + (APfini + APplus) -! IDip(3) = IDip(3) + (APfini + APplus) -! -! ! print *, "AP",(APsoft - APplus),(APfini + APplus) -! ! print *, "sum",IDip(2:3) -! ! pause -! -! END SUBROUTINE -! - -! -! -! -! SUBROUTINE IntDip_gqb_Z_ttb(z,sHat,IDip) -! use ModParameters -! use ModKinematics -! use ModMisc -! implicit none -! real(8) :: IDip(1:3),APsoft,APfini,APplus,z,sij,sHat -! real(8) :: dipsoft,dipfini,dipplus,epcorr -! integer :: n,emi -! -! -! epinv2=0d0 -! epinv =0d0 -! -! sij = sHat -! -! IDip(1:3) = 0d0 -! -! dipsoft =ii_gq(sij,z,1) * TR -! dipfini =ii_gq(sij,z,2) * TR -! dipplus =ii_gq(sij,z,3) * TR -! emi = 1 -! -! -! if(emi.eq.1) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! IDip(2) = IDip(2) + (dipfini+dipplus) -! elseif(emi.eq.2) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! IDip(3) = IDip(3) + (dipfini+dipplus) -! elseif(emi.eq.3) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! ! IDip(2) = IDip(2) + (dipfini+dipplus)*0.5d0 -! ! IDip(3) = IDip(3) + (dipfini+dipplus)*0.5d0 -! endif -! -! -! ! print *, epinv -! ! print *, "IntDip",IDip(2:3) -! -! ! ! epcorr=epinv+2d0*dlog(renscale/facscale) -! epcorr=epinv -! -! ! this is for gqb-->Z-->ttb+qb process -! APsoft= 0d0 -! APfini= TR*(z**2+(1d0-z)**2) * epcorr -! APplus= 0d0 -! IDip(1) = IDip(1) + (APsoft - APplus) -! IDip(2) = IDip(2) + (APfini + APplus) -! -! ! print *, "AP",(APsoft - APplus),(APfini + APplus) -! ! print *, "sum",IDip(2:3) -! ! pause -! -! END SUBROUTINE -! -! -! -! -! SUBROUTINE IntDip_qg_Z_ttb(z,sHat,IDip) -! use ModParameters -! use ModKinematics -! use ModMisc -! implicit none -! real(8) :: IDip(1:3),APsoft,APfini,APplus,z,sij,sHat -! real(8) :: dipsoft,dipfini,dipplus,epcorr -! integer :: n,emi -! -! -! epinv2=0d0 -! epinv =0d0 -! -! sij = sHat -! -! IDip(1:3) = 0d0 -! -! dipsoft =ii_gq(sij,z,1) * TR -! dipfini =ii_gq(sij,z,2) * TR -! dipplus =ii_gq(sij,z,3) * TR -! emi = 2 -! -! -! if(emi.eq.1) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! IDip(2) = IDip(2) + (dipfini+dipplus) -! elseif(emi.eq.2) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! IDip(3) = IDip(3) + (dipfini+dipplus) -! elseif(emi.eq.3) then -! IDip(1) = IDip(1) + (dipsoft-dipplus) -! ! IDip(2) = IDip(2) + (dipfini+dipplus)*0.5d0 -! ! IDip(3) = IDip(3) + (dipfini+dipplus)*0.5d0 -! endif -! -! -! ! print *, epinv -! ! print *, "IntDip",IDip(2:3) -! -! ! ! epcorr=epinv+2d0*dlog(renscale/facscale) -! epcorr=epinv -! -! ! this is for gqb-->Z-->ttb+qb process -! APsoft= 0d0 -! APfini= TR*(z**2+(1d0-z)**2) * epcorr -! APplus= 0d0 -! IDip(1) = IDip(1) + (APsoft - APplus) -! IDip(3) = IDip(3) + (APfini + APplus) -! -! ! print *, "AP",(APsoft - APplus),(APfini + APplus) -! ! print *, "sum",IDip(2:3) -! ! pause -! -! END SUBROUTINE -! -! -! - - - - -SUBROUTINE CalcFormFactor1(xe,sHat,FF1) -use ModParameters -use ModMisc -implicit none -complex(8) :: FF1 -integer :: xe -real(8) :: sHat -complex(8) :: qlI2,qlI3,SI(2:3),C(1:1) - - - C(1) = (-2d0,0d0) - if( xe.ne.0 ) C(1)=(0d0,0d0) - -#if useQCDLoopLib==1 || linkMELA==1 - SI(2) = qlI2(shat,0d0,0d0,Mu_Ren**2,xe) - SI(3) = qlI3(shat,0d0,0d0,0d0,0d0,0d0,Mu_Ren**2,xe) - FF1 = C(1) -3d0*SI(2) -2d0*sHat*SI(3) -#else - call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") -#endif - -END SUBROUTINE - - - -SUBROUTINE Dipoles_qqb_VH(nDipole,MomExt,MomExtTd,Dipole)! global norm: 4d0*Pi*alpha_s -use ModParameters -use ModMisc -implicit none -integer :: nDipole,a,i,b,j -real(8) :: MomExt(1:4,1:7),MomExtTd(1:4,1:6),Q(1:4),QTd(1:4),KSum(1:4) -real(8) :: sab,sai,sbi,sij,sik,skj,x,v,y,yp,z,Q2,mu2,mu,MomFac1,MomFac2,MomFac3 -real(8) :: Dipole - - if(nDipole.eq.1) then - a=1; i=7; b=2! initial-initial - - sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) - sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) - sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) - x = 1d0 - (sai+sbi)/sab - v = sai/sab - if( alpha_ii.lt.v ) then - Dipole = 0d0 - return - endif - - MomExtTd(1:4,a) = x*MomExt(1:4,a) - MomExtTd(1:4,b) = MomExt(1:4,b) - - Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) - QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) - KSum(1:4) = Q(1:4)+QTd(1:4) - - do j=3,6 - MomExtTd(1:4,j) = MomExt(1:4,j) - 2d0*(MomExt(1:4,j).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,j).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) - enddo - Dipole = -1d0/sai/x * 2d0*CF * (2d0/(1d0-x)-1d0-x) - - elseif(nDipole.eq.2) then - a=2; i=7; b=1! initial-initial - - sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) - sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) - sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) - x = 1d0 - (sai+sbi)/sab - v = sai/sab - if( alpha_ii.lt.v ) then - Dipole = 0d0 - return - endif - - MomExtTd(1:4,a) = x*MomExt(1:4,a) - MomExtTd(1:4,b) = MomExt(1:4,b) - - Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) - QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) - KSum(1:4) = Q(1:4)+QTd(1:4) - - do j=3,6 - MomExtTd(1:4,j) = MomExt(1:4,j) - 2d0*(MomExt(1:4,j).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,j).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) - enddo - Dipole = -1d0/sai/x * 2d0*CF * (2d0/(1d0-x)-1d0-x) - - endif - -END SUBROUTINE - - - - -! SUBROUTINE Dipoles_gqb_Z_ttbqb(nDipole,MomExt,MomExtTd,Dipole)! global norm: 4d0*Pi*alpha_s -! use ModParameters -! use ModKinematics -! use ModMisc -! implicit none -! integer :: nDipole,a,i,b,j,k -! real(8) :: MomExt(1:4,1:11),MomExtTd(1:4,1:10),Q(1:4),QTd(1:4),KSum(1:4) -! real(8) :: sab,sai,sbi,sij,sik,skj,x,v,y,yp,z,Q2,mu2,mu,MomFac1,MomFac2,MomFac3 -! complex(8) :: Dipole -! -! -! a=1; i=5; b=2! initial-initial -! -! sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) -! sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) -! sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) -! x = 1d0 - (sai+sbi)/sab -! v = sai/sab -! if( alpha_ii.lt.v ) then -! Dipole = (0d0,0d0) -! return -! endif -! -! MomExtTd(1:4,a) = x*MomExt(1:4,a) -! MomExtTd(1:4,b) = MomExt(1:4,b) -! -! Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) -! QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) -! KSum(1:4) = Q(1:4)+QTd(1:4) -! MomExtTd(1:4,3) = MomExt(1:4,3) - 2d0*(MomExt(1:4,3).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,3).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) -! MomExtTd(1:4,4) = MomExt(1:4,4) - 2d0*(MomExt(1:4,4).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,4).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) -! -! Dipole = -1d0/sai/x * 2d0*TR * (1d0-2d0*x*(1d0-x)) -! -! -! END SUBROUTINE -! -! -! -! -! -! SUBROUTINE Dipoles_qg_Z_ttbq(nDipole,MomExt,MomExtTd,Dipole)! global norm: 4d0*Pi*alpha_s -! use ModParameters -! use ModKinematics -! use ModMisc -! implicit none -! integer :: nDipole,a,i,b,j,k -! real(8) :: MomExt(1:4,1:11),MomExtTd(1:4,1:10),Q(1:4),QTd(1:4),KSum(1:4) -! real(8) :: sab,sai,sbi,sij,sik,skj,x,v,y,yp,z,Q2,mu2,mu,MomFac1,MomFac2,MomFac3 -! complex(8) :: Dipole -! -! a=2; i=5; b=1! initial-initial -! -! sab = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,b)) -! sai = 2d0*(MomExt(1:4,a).dot.MomExt(1:4,i)) -! sbi = 2d0*(MomExt(1:4,b).dot.MomExt(1:4,i)) -! x = 1d0 - (sai+sbi)/sab -! v = sai/sab -! if( alpha_ii.lt.v ) then -! Dipole = (0d0,0d0) -! return -! endif -! -! MomExtTd(1:4,a) = x*MomExt(1:4,a) -! MomExtTd(1:4,b) = MomExt(1:4,b) -! -! Q(1:4) = MomExt(1:4,a)+MomExt(1:4,b)-MomExt(1:4,i) -! QTd(1:4) = MomExtTd(1:4,a)+MomExtTd(1:4,b) -! KSum(1:4) = Q(1:4)+QTd(1:4) -! MomExtTd(1:4,3) = MomExt(1:4,3) - 2d0*(MomExt(1:4,3).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,3).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) -! MomExtTd(1:4,4) = MomExt(1:4,4) - 2d0*(MomExt(1:4,4).dot.KSum(1:4))/(KSum(1:4).dot.KSum(1:4))*KSum(1:4) + 2d0*(MomExt(1:4,4).dot.Q(1:4))/(Q(1:4).dot.Q(1:4))*QTd(1:4) -! -! Dipole = -1d0/sai/x * 2d0*TR * (1d0-2d0*x*(1d0-x)) -! -! END SUBROUTINE -! - - - - - - - - - -! FUNCTION ii_qq(sij,x,s) -! use ModMisc -! use ModParameters -! implicit none -! real(8), intent(in) :: x,sij -! integer, intent(in) :: s -! real(8) :: ii_qq -! real(8) :: L,lx, Pqqreg -! -! -! L = dlog(sij/MuRen**2) -! lx = dlog(x) -! -! Pqqreg = -1d0-x -! if (s.eq.1) then -! ii_qq = epinv*(epinv2-L) +L**2/2d0 - Pi**2/6.0 ! CET eq.(A.4) -! ! if (scheme.eq.'fdh') ii_qq = ii_qq - 1d0/2d0 -! elseif (s.eq.2) then -! ii_qq = -(epinv-L+lx)*Pqqreg+2d0*Pqqreg*dlog(1d0-x) - 2d0*dlog(x)/(1d0-x)+1d0-x ! CET eq.(A.4) -! if (alpha_ii/(1d0-x) .lt. 1d0) ii_qq=ii_qq + (2d0/(1d0-x)+Pqqreg)*dlog(alpha_ii/(1d0-x)) ! NEW -! elseif (s.eq.3) then -! ii_qq = 4d0*dlog(1d0-x)/(1d0-x) -(epinv-L)*2d0/(1d0-x) ! CET eq.(A.4) -! endif -! -! -! RETURN -! END FUNCTION - - - - -! ------------------ BEGIN MCFM SM check ------------ - - - - function ggHZ_pp_box(i1,i2,i3,i4,za,zb,s,mt2) - use ModParameters - implicit none - complex(8):: ggHZ_pp_box - integer:: i1,i2,i3,i4 - real(8):: mt2,s(1:4,1:4) - real(8):: mZsq,mHsq,s15,s25,s12,t - integer:: Nbox,Ntri,i - parameter(Nbox=3,Ntri=5) - complex(8):: qlI4,qlI3,qlI2 - integer:: d25_12,d15_12,d15_25 - parameter(d25_12=1,d15_12=2,d15_25=3) - integer:: c25_Z,cH_25,c12,c15_H,cZ_15 - parameter(c25_Z=1,cH_25=2,c12=3,c15_H=4,cZ_15=5) - complex(8):: D0(Nbox),C0(Ntri) - complex(8):: di(Nbox),cii(Ntri) - complex(8):: za(1:4,1:4),zb(1:4,1:4) - - - t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) - - ggHZ_pp_box=(0d0,0d0) - - -!======= kinematic configurations - s12=s(i1,i2) - mZsq=s(i3,i4) - s25=t(i1,i3,i4) - s15=t(i2,i3,i4) - mHsq=s(i1,i2)+s(i1,i3)+s(i1,i4)+s(i2,i3)+s(i2,i4)+s(i3,i4) - - - - di(:)=(0d0,0d0) - cii(:)=(0d0,0d0) -! -#if useQCDLoopLib==1 || linkMELA==1 - D0(d25_12)=qlI4(mZsq,0d0,0d0,mHsq,s25,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) - D0(d15_12)=qlI4(mZsq,0d0,0d0,mHsq,s15,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) - D0(d15_25)=qlI4(mHsq,0d0,mZsq,0d0,s15,s25,mt2,mt2,mt2,mt2,Mu_Ren**2,0) - C0(c25_Z)=qlI3(s25,0d0,mZsq,mt2,mt2,mt2,Mu_Ren**2,0) - C0(cH_25)=qlI3(mHsq,0d0,s25,mt2,mt2,mt2,Mu_Ren**2,0) - C0(c12)=qlI3(s12,0d0,0d0,mt2,mt2,mt2,Mu_Ren**2,0) - C0(c15_H)=qlI3(s15,0d0,mHsq,mt2,mt2,mt2,Mu_Ren**2,0) - C0(cZ_15)=qlI3(mZsq,0d0,s15,mt2,mt2,mt2,Mu_Ren**2,0) -#else - call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") -#endif - -!------- coefficiients of integrals - - di(d25_12)= & - (zb(i2,i1)*(2*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (-2*mt2*za(i2,i3) + za(i1,i2)*za(i3,i4)*zb(i4,i1))* & - zb(i4,i2)*(za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) & - - za(i1,i3)*(za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (t(i1,i3,i4)*za(i1,i2)*zb(i2,i1)*zb(i4,i2) + & - 2*(2*mt2 - za(i1,i2)*zb(i2,i1))*zb(i4,i1)* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) - & - t(i1,i3,i4)*za(i1,i2)* & - (za(i2,i3)*zb(i2,i1)*zb(i4,i1)* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & - za(i3,i4)*((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))*zb(i4,i2)**2 - & - zb(i4,i1)**2* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))))/ & - (2*s(i3,i4)*za(i1,i2)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) - - di(d15_12)= (zb(i2,i1)*(2*zb(i4,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))* & - (-2*mt2*za(i1,i3) - za(i1,i2)*za(i3,i4)*zb(i4,i2)) - & - za(i2,i3)*(za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))* & - (t(i2,i3,i4)*za(i1,i2)*zb(i2,i1)*zb(i4,i1) + & - 2*(2*mt2 - za(i1,i2)*zb(i2,i1))* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - zb(i4,i2)) + & - t(i2,i3,i4)*za(i1,i2)* & - (-(za(i1,i3)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - zb(i4,i2)) + & - za(i3,i4)*(-((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))*zb(i4,i2)**2) + & - zb(i4,i1)**2* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))))/ & - (2*s(i3,i4)*za(i1,i2)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) - - - di(d15_25)= -((4*mt2*zb(i2,i1)*(za(i1,i3)**2*zb(i3,i2)*zb(i4,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) - & - za(i1,i2)*za(i3,i4)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - zb(i4,i2)**2 + & - za(i1,i3)*zb(i4,i2)* & - (za(i2,i3)**2*zb(i3,i1)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i1)* & - (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & - za(i2,i3)* & - (za(i1,i4)*zb(i3,i1)*zb(i4,i1) + & - za(i2,i4)* & - (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & - ))))/ & - (za(i1,i2)*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))) + & - (2*za(i1,i3)*(za(i1,i3)**2*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2)) + & - za(i1,i3)*(za(i2,i3)**3*zb(i3,i1)*zb(i3,i2)**2* & - (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) + & - za(i2,i3)**2*zb(i3,i1)*zb(i3,i2)* & - (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2))* & - (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & - + za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i2)*zb(i4,i3) + & - za(i1,i4)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3))) + & - za(i2,i3)*za(i2,i4)* & - (za(i2,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & - + za(i1,i4)*zb(i4,i1)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3))**2 - & - za(i3,i4)*zb(i4,i3)* & - (-(zb(i3,i2)**2*zb(i4,i1)**2) + & - zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3) + & - zb(i2,i1)**2*zb(i4,i3)**2))) + & - za(i1,i4)*(za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)**2* & - (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & - za(i2,i3)**3*zb(i3,i2)* & - (2*zb(i3,i2)**2*zb(i4,i1)**2 + & - 3*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3) + & - zb(i2,i1)**2*zb(i4,i3)**2) + & - za(i2,i3)*za(i2,i4)*zb(i4,i1)*zb(i4,i2)* & - (-(za(i3,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) + & - za(i1,i4)*zb(i4,i1)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3)) + & - 2*za(i2,i4)*zb(i4,i2)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3))) + & - za(i2,i3)**2* & - (za(i1,i4)*zb(i3,i2)*zb(i4,i1)**2* & - (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & - + za(i3,i4)*zb(i4,i3)* & - (-(zb(i3,i2)**2*zb(i4,i1)**2) + & - zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3) + & - zb(i2,i1)**2*zb(i4,i3)**2) + & - za(i2,i4)*zb(i4,i2)* & - (5*zb(i3,i2)**2*zb(i4,i1)**2 + & - 5*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) + zb(i2,i1)**2*zb(i4,i3)**2)))) & - + za(i1,i2)* & - (za(i1,i4)*zb(i4,i2)* & - (-(za(i2,i4)*za(i3,i4)*zb(i4,i1)**2*zb(i4,i2)* & - (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2))) & - + za(i2,i3)*zb(i4,i1)*zb(i4,i2)* & - (za(i1,i4)* & - (za(i2,i4)*zb(i2,i1) - za(i3,i4)*zb(i3,i1))* & - zb(i4,i1) - & - 2*za(i2,i4)*za(i3,i4)* & - (zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3))) & - - za(i2,i3)**2* & - (-(za(i1,i4)*zb(i2,i1)*zb(i3,i1)*zb(i4,i1)* & - zb(i4,i2)) + & - za(i3,i4)* & - (zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3))**2)) + & - za(i1,i3)**2*zb(i3,i2)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i2,i3)*zb(i2,i1)* & - (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)) & - + zb(i4,i1)* & - (za(i2,i4)*zb(i2,i1)*zb(i4,i2) - & - za(i3,i4)* & - (zb(i3,i2)*zb(i4,i1) + & - 2*zb(i2,i1)*zb(i4,i3)))) + & - za(i1,i3)*(za(i2,i4)*zb(i4,i1)**2*zb(i4,i2)* & - (za(i1,i4)* & - (za(i2,i4)*zb(i2,i1) - & - 2*za(i3,i4)*zb(i3,i1))*zb(i4,i2) + & - za(i3,i4)*zb(i3,i2)* & - (za(i2,i4)*zb(i4,i2) - & - 2*za(i3,i4)*zb(i4,i3))) + & - za(i2,i3)**2* & - (za(i1,i4)*zb(i2,i1)*zb(i3,i1)*zb(i4,i2)* & - (3*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3)) + & - za(i3,i4)* & - (zb(i3,i2)**3*zb(i4,i1)**2 - & - zb(i2,i1)**2*zb(i3,i2)*zb(i4,i3)**2)) + & - za(i2,i3)* & - (za(i1,i4)*zb(i4,i1)*zb(i4,i2)* & - (-2*za(i3,i4)*zb(i3,i1)**2*zb(i4,i2) + & - za(i2,i4)*zb(i2,i1)* & - (3*zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3))) + & - 2*za(i3,i4)* & - (za(i2,i4)*zb(i3,i2)**2*zb(i4,i1)**2* & - zb(i4,i2) + & - za(i3,i4)*zb(i4,i3)* & - (-(zb(i3,i2)**2*zb(i4,i1)**2) + & - zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) + zb(i2,i1)**2*zb(i4,i3)**2)) & - ))))/ & - (za(i1,i2)**2*(za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))/ & - (2*s(i3,i4)) - - -!---- triangle coefficiients - cii(c25_Z)=(za(i1,i3)*(za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2)*zb(i4,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) + & - zb(i4,i2)*(za(i2,i3)**2*zb(i3,i1)*zb(i3,i2) + & - za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) + & - za(i2,i4)*zb(i4,i1)* & - (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & - za(i2,i3)*(za(i1,i4)*zb(i3,i1)*zb(i4,i1) + & - za(i2,i4)* & - (2*zb(i3,i2)*zb(i4,i1) + zb(i2,i1)*zb(i4,i3)))))) & - /(za(i1,i2)**2*za(i3,i4)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))*zb(i4,i3)) - - cii(cZ_15)= (za(i2,i3)*(za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & - (za(i2,i3)*zb(i3,i1)*zb(i4,i2)* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & - zb(i4,i1)*(za(i1,i3)**2*zb(i3,i1)*zb(i3,i2) + & - za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & - za(i1,i4)*zb(i4,i2)* & - (za(i1,i4)*zb(i4,i1) + za(i2,i4)*zb(i4,i2)) + & - za(i1,i3)*(za(i2,i4)*zb(i3,i2)*zb(i4,i2) + & - za(i1,i4)* & - (2*zb(i3,i1)*zb(i4,i2) - zb(i2,i1)*zb(i4,i3)))))) & - /(za(i1,i2)**2*za(i3,i4)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))*zb(i4,i3)) - - cii(cH_25)=-((za(i2,i3)*(za(i1,i2)**2*zb(i2,i1)**2*zb(i4,i1) + & - (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & - (za(i1,i3)*zb(i3,i1)*zb(i4,i1) + & - za(i1,i4)*zb(i4,i1)**2 + & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - zb(i4,i2)) + & - za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1)*zb(i4,i1) + & - za(i1,i4)*zb(i4,i1)**2 + & - 2*za(i2,i3)*zb(i3,i1)*zb(i4,i2) + & - 2*za(i2,i4)*zb(i4,i1)*zb(i4,i2) - & - za(i2,i3)*zb(i2,i1)*zb(i4,i3))))/ & - (s(i3,i4)*za(i1,i2)**2* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)))) - - cii(c15_H)= -((za(i1,i3)*(za(i1,i2)**2*zb(i2,i1)**2*zb(i4,i2) + & - (za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1))* & - (za(i2,i3)*zb(i3,i2)*zb(i4,i2) + & - za(i2,i4)*zb(i4,i2)**2 + & - zb(i4,i1)*(za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))) + & - za(i1,i2)*zb(i2,i1)* & - (2*za(i1,i3)*zb(i3,i2)*zb(i4,i1) + & - za(i2,i3)*zb(i3,i2)*zb(i4,i2) + & - 2*za(i1,i4)*zb(i4,i1)*zb(i4,i2) + & - za(i2,i4)*zb(i4,i2)**2 + & - za(i1,i3)*zb(i2,i1)*zb(i4,i3))))/ & - (s(i3,i4)*za(i1,i2)**2* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)))) - - cii(c12)= -((zb(i2,i1)*((zb(i4,i1)* & - (-(za(i2,i3)*zb(i2,i1)) + za(i3,i4)*zb(i4,i1)))/ & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) - & - (zb(i4,i2)*(za(i1,i3)*zb(i2,i1) + & - za(i3,i4)*zb(i4,i2)))/ & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2))))/ & - s(i3,i4)) - - - - ggHZ_pp_box=(0d0,0d0) - do i=1,Nbox - ggHZ_pp_box=ggHZ_pp_box+D0(i)*di(i) - enddo - do i=1,Ntri - ggHZ_pp_box=ggHZ_pp_box+C0(i)*cii(i) - enddo - - return - end - - - - - function ggHZ_mp_box(i1,i2,i3,i4,za,zb,s,mt2) - implicit none - complex(8):: ggHZ_mp_box,za(1:4,1:4),zb(1:4,1:4) - integer:: i1,i2,i3,i4 - real(8):: mt2,s(1:4,1:4) - real(8):: mZsq,mHsq,s15,s25,s12,t - integer:: Nbox,Ntri,i - parameter(Nbox=3,Ntri=6) - - complex(8):: qlI4,qlI3,qlI2 - integer:: d25_12,d15_12,d15_25 - parameter(d25_12=1,d15_12=2,d15_25=3) - integer:: c25_Z,cH_25,c12,c15_H,cZ_15,c12_Z_H - parameter(c25_Z=1,cH_25=2,c12=3,c15_H=4,cZ_15=5,c12_Z_H=6) -!--- nb I swapped the notation wrt to KC for 3m triangle, so that I -!---- can unify two rotuines and save calls to QCDLoop. - complex(8):: D0(Nbox),C0(Ntri) - complex(8):: di(Nbox),cii(Ntri) - -! complex(8):: ggHZ_mp_2me_b1,ggHZ_mp_2mh_b1 -! complex(8):: ggHZ_mp_tri1,ggHZ_mp_tri2,ggHZ_mp_3mtri - - - t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) - - ggHZ_mp_box=(0d0,0d0) - - -!======= kinematic configurations - s12=s(i1,i2) - mZsq=s(i3,i4) - s25=t(i1,i3,i4) - s25=t(i1,i3,i4) - s15=t(i2,i3,i4) - mHsq=s(i1,i2)+s(i1,i3)+s(i1,i4)+s(i2,i3)+s(i2,i4)+s(i3,i4) - - di(:)=(0d0,0d0) - cii(:)=(0d0,0d0) - - -!----- fill integrals from QCD loop : boxes - -#if useQCDLoopLib==1 || linkMELA==1 - D0(d25_12)=qlI4(mZsq,0d0,0d0,mHsq,s25,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) - D0(d15_12)=qlI4(mZsq,0d0,0d0,mHsq,s15,s12,mt2,mt2,mt2,mt2,Mu_Ren**2,0) - D0(d15_25)=qlI4(mHsq,0d0,mZsq,0d0,s15,s25,mt2,mt2,mt2,mt2,Mu_Ren**2,0) - -! ----- fill integrals from QCD loop : triangles - C0(c25_Z)=qlI3(s25,0d0,mZsq,mt2,mt2,mt2,Mu_Ren**2,0) - C0(cH_25)=qlI3(mHsq,0d0,s25,mt2,mt2,mt2,Mu_Ren**2,0) - C0(c12)=qlI3(s12,0d0,0d0,mt2,mt2,mt2,Mu_Ren**2,0) - C0(c15_H)=qlI3(s15,0d0,mHsq,mt2,mt2,mt2,Mu_Ren**2,0) - C0(cZ_15)=qlI3(mZsq,0d0,s15,mt2,mt2,mt2,Mu_Ren**2,0) - C0(c12_Z_H)=qlI3(s12,mZsq,mHsq,mt2,mt2,mt2,Mu_Ren**2,0) -#else - call Error("This process requires linkQCDLoop or linkMELA enabled in the makefile") -#endif - -!------ box coefficiients - di(d25_12)= ggHZ_mp_2mh_b1(i1,i2,i3,i4,za,zb,s,mt2) - di(d15_12)= -ggHZ_mp_2mh_b1(i2,i1,i4,i3,zb,za,s,mt2) - di(d15_25)= ggHZ_mp_2me_b1(i1,i2,i3,i4,za,zb,s,mt2) - - -!==== triangle coefficiients - - cii(c25_Z)=ggHZ_mp_tri2(i1,i2,i3,i4,za,zb,s,mt2) - cii(cZ_15)=-ggHZ_mp_tri2(i2,i1,i4,i3,zb,za,s,mt2) - cii(cH_25)=-ggHZ_mp_tri1(i1,i2,i3,i4,za,zb,s,mt2) - cii(c15_H)=ggHZ_mp_tri1(i2,i1,i4,i3,zb,za,s,mt2) - cii(c12_Z_H)=ggHZ_mp_3mtri(i1,i2,i3,i4,za,zb,s) - cii(c12)= (-(za(i1,i3)*(za(i1,i4)*za(i2,i3) + & - za(i1,i3)*za(i2,i4))*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - zb(i4,i3)) + & - za(i1,i2)**2*za(i3,i4)*zb(i2,i1)* & - (-(za(i2,i3)*zb(i2,i1)) + za(i3,i4)*zb(i4,i1))* & - zb(i4,i3) + za(i1,i2)* & - (2*za(i1,i3)**2*za(i2,i4)*zb(i2,i1)*zb(i3,i1)* & - zb(i4,i1) + & - 2*za(i2,i4)**2*za(i3,i4)*zb(i4,i1)* & - zb(i4,i2)**2 - & - za(i2,i3)**2*zb(i2,i1)* & - (2*za(i2,i4)*zb(i3,i2)*zb(i4,i2) + & - za(i1,i4)*zb(i2,i1)*zb(i4,i3)) + & - za(i1,i3)*zb(i2,i1)* & - (2*za(i1,i4)*za(i2,i4)*zb(i4,i1)**2 + & - 2*za(i2,i4)**2*zb(i4,i1)*zb(i4,i2) - & - za(i2,i3)*za(i3,i4)*zb(i3,i1)*zb(i4,i3) + & - za(i2,i4)* & - (-(za(i2,i3)*zb(i2,i1)) + & - 2*za(i3,i4)*zb(i4,i1))*zb(i4,i3)) + & - za(i2,i3)*(za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & - (-2*za(i2,i4)*zb(i4,i2) + & - za(i3,i4)*zb(i4,i3)) - & - 2*za(i2,i4)*zb(i4,i2)* & - (za(i2,i4)*zb(i2,i1)*zb(i4,i2) + & - za(i3,i4)* & - (-(zb(i3,i1)*zb(i4,i2)) + & - 2*zb(i2,i1)*zb(i4,i3))))))/ & - (2.*za(i2,i4)*za(i3,i4)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2* & - zb(i4,i3)) - - - ggHZ_mp_box=(0d0,0d0) -!===== make amplitude - do i=1,Nbox - ggHZ_mp_box=ggHZ_mp_box+D0(i)*di(i) - enddo - do i=1,Ntri - ggHZ_mp_box=ggHZ_mp_box+C0(i)*cii(i) - enddo - - return - end - - - function ggHZ_mp_2mh_b1(i1,i2,i3,i4,za,zb,s,mt2) - implicit none - complex(8):: ggHZ_mp_2mh_b1,za(1:4,1:4),zb(1:4,1:4) -!---- coefficiient of 2mh box - integer:: i1,i2,i3,i4 - real(8):: mt2,t,s(1:4,1:4) - t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) - - ggHZ_mp_2mh_b1=(-2*za(i1,i3)*(2*mt2*zb(i4,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)) + & - t(i1,i3,i4)*za(i1,i2)*zb(i2,i1)* & - (t(i1,i3,i4)*zb(i4,i1) + & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))*zb(i4,i2))) + & - zb(i4,i2)*(-(t(i1,i3,i4)*za(i1,i2)*za(i3,i4)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))*zb(i4,i2)) + & - 2*za(i2,i3)*(t(i1,i3,i4)**2*za(i1,i2)*zb(i2,i1) + & - 2*mt2*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + za(i1,i4)*zb(i4,i2)))) + & - t(i1,i3,i4)*za(i1,i3)**2*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))*zb(i4,i3))/ & - (2.*s(i3,i4)*(za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2) - - return - end - - function ggHZ_mp_2me_b1(i1,i2,i3,i4,za,zb,s,mt2) - implicit none - complex(8):: ggHZ_mp_2me_b1,za(1:4,1:4),zb(1:4,1:4) -!---- coefficiient of 2mh box - integer:: i1,i2,i3,i4 - real(8):: mt2,s(1:4,1:4) - - ggHZ_mp_2me_b1= & - (-(za(i1,i2)**3*za(i3,i4)**2*zb(i2,i1)**2*zb(i4,i3)* & - (za(i2,i3)**2*zb(i3,i1)**2*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2) + & - 2*za(i2,i3)*zb(i3,i1)*zb(i4,i1)* & - (za(i2,i4)*zb(i3,i1)*zb(i4,i2)**2 + & - zb(i4,i3)* & - (za(i1,i3)*zb(i2,i1)*zb(i3,i1) + & - za(i3,i4)* & - (-(zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)*zb(i4,i3)))) + & - za(i2,i4)*zb(i4,i1)**2* & - (za(i2,i4)*zb(i4,i2)* & - (zb(i3,i1)*zb(i4,i2) + zb(i2,i1)*zb(i4,i3)) & - - 2*zb(i4,i3)* & - (-(za(i1,i3)*zb(i2,i1)*zb(i3,i1)) + & - za(i3,i4)* & - (zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3)))))) - & - (za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1))* & - (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & - (-2*za(i1,i4)**2*za(i2,i3)*zb(i4,i1)**2* & - (za(i2,i3)**2*zb(i3,i1)*zb(i3,i2)**2* & - zb(i4,i1) + & - za(i2,i4)**2*zb(i3,i1)*zb(i4,i1)* & - zb(i4,i2)**2 - & - za(i2,i3)*za(i2,i4)* & - (zb(i3,i2)**2*zb(i4,i1)**2 - & - 4*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2) + zb(i3,i1)**2*zb(i4,i2)**2)) + & - za(i1,i3)**2*za(i2,i4)*zb(i3,i1)* & - (-2*za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) - 2*zb(i3,i1)*zb(i4,i2)) & - + za(i2,i3)**2*zb(i3,i1)* & - (zb(i3,i2)**2*zb(i4,i1)**2 + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) + & - za(i2,i3)*za(i2,i4)*zb(i4,i1)* & - (-3*zb(i3,i2)**2*zb(i4,i1)**2 + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2) + & - zb(i3,i2)*zb(i4,i1)* & - (6*zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3)))) + & - za(i1,i3)*za(i1,i4)*zb(i4,i1)* & - (-2*za(i2,i3)**3*zb(i3,i1)**3*zb(i3,i2)* & - zb(i4,i2) + & - 2*za(i2,i4)**3*zb(i3,i1)*zb(i4,i1)**2* & - zb(i4,i2)**2 + & - za(i2,i3)**2*za(i2,i4)*zb(i3,i1)* & - (7*zb(i3,i2)**2*zb(i4,i1)**2 + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2) + & - zb(i3,i2)*zb(i4,i1)* & - (-10*zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3))) - & - za(i2,i3)*za(i2,i4)**2*zb(i4,i1)* & - (zb(i3,i2)**2*zb(i4,i1)**2 + & - zb(i3,i1)*zb(i4,i2)* & - (5*zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3)) - & - zb(i3,i2)*zb(i4,i1)* & - (8*zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3))))) + & - za(i1,i2)*(za(i1,i3)**3*zb(i2,i1)*zb(i3,i1)**2* & - (za(i2,i3)**2*zb(i3,i1)**2 - & - za(i2,i4)**2*zb(i4,i1)**2)* & - (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & - (-(zb(i3,i2)*zb(i4,i1)) + zb(i3,i1)*zb(i4,i2)) & - - za(i1,i3)**2* & - (za(i2,i3)**3*zb(i3,i1)**3*zb(i3,i2)* & - (3*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & - (zb(i3,i2)*zb(i4,i1) - & - zb(i3,i1)*zb(i4,i2)) + & - zb(i4,i2)* & - (-2*za(i3,i4)*zb(i3,i1)*zb(i3,i2)* & - zb(i4,i1) + & - za(i2,i4)*zb(i2,i1)* & - (zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2)))) + & - za(i2,i3)*za(i2,i4)**2*zb(i3,i1)*zb(i4,i1)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (zb(i3,i2)**2*zb(i4,i1)**2 - & - 3*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2) - 4*zb(i3,i1)**2*zb(i4,i2)**2 & - ) - & - 2*zb(i2,i1)**2*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3)*(-2*mt2 + za(i3,i4)*zb(i4,i3)) & - + zb(i2,i1)* & - (zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (-8*mt2 + 3*za(i1,i4)*zb(i4,i1) + & - 7*za(i2,i4)*zb(i4,i2) - & - 17*za(i3,i4)*zb(i4,i3)) - & - zb(i3,i2)**2*zb(i4,i1)**2* & - (-8*mt2 + za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2) - & - 4*za(i3,i4)*zb(i4,i3)) + & - 2*zb(i3,i1)**2*zb(i4,i2)**2* & - (4*mt2 - za(i1,i4)*zb(i4,i1) + & - 2*za(i3,i4)*zb(i4,i3)))) + & - za(i2,i4)**3*zb(i4,i1)**2* & - (za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & - (zb(i3,i2)*zb(i4,i1) - & - 3*zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)**2*zb(i4,i3)* & - (2*mt2*zb(i3,i2)*zb(i4,i1) - & - za(i3,i4)*zb(i3,i1)*zb(i4,i2)*zb(i4,i3)) & - + zb(i2,i1)* & - (-2*mt2*zb(i3,i2)**2*zb(i4,i1)**2 + & - zb(i3,i1)**2*zb(i4,i2)**2* & - (4*mt2 + za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2) - & - 8*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (2*mt2 - za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2) + & - 3*za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)**2*za(i2,i4)*zb(i3,i1)**2* & - (-(za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & - (5*zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2))) + & - zb(i2,i1)**2*zb(i4,i3)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - zb(i4,i3) + & - 2*zb(i3,i2)*zb(i4,i1)* & - (mt2 - za(i3,i4)*zb(i4,i3))) + & - zb(i2,i1)* & - (-(zb(i3,i1)**2*zb(i4,i2)**2* & - (-4*mt2 + 3*za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2))) + & - 2*zb(i3,i2)**2*zb(i4,i1)**2* & - (5*mt2 + za(i1,i4)*zb(i4,i1) - & - 4*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (-10*mt2 + za(i1,i4)*zb(i4,i1) + & - 7*za(i2,i4)*zb(i4,i2) + & - 5*za(i3,i4)*zb(i4,i3))))) + & - za(i1,i4)**2*zb(i4,i1)* & - (2*za(i2,i4)**3*za(i3,i4)*zb(i3,i1)* & - zb(i4,i1)**3*zb(i4,i2)**3 + & - za(i2,i3)**4*zb(i2,i1)*zb(i3,i1)**2*zb(i3,i2)* & - zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + zb(i3,i1)*zb(i4,i2)) & - + za(i2,i3)**3*zb(i3,i1)* & - (2*za(i3,i4)*zb(i3,i1)*zb(i3,i2)**2* & - zb(i4,i1)**2*zb(i4,i2) - & - zb(i2,i1)* & - (zb(i3,i1)**2*zb(i4,i2)**2* & - (4*mt2 + za(i2,i4)*zb(i4,i2)) - & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (8*mt2 + 7*za(i2,i4)*zb(i4,i2)) + & - 6*za(i3,i4)*zb(i3,i2)**2*zb(i4,i1)**2* & - zb(i4,i3))) + & - za(i2,i3)*za(i2,i4)**2*zb(i4,i1)**2*zb(i4,i2)* & - (2*za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)* & - (zb(i3,i1)*zb(i4,i2)* & - (8*mt2 + za(i2,i4)*zb(i4,i2) - & - 10*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i2)*zb(i4,i1)* & - (-4*mt2 + za(i2,i4)*zb(i4,i2) + & - 4*za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)**2*za(i2,i4)*zb(i4,i1)* & - (2*za(i3,i4)*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + & - 2*zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)* & - (zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (4*mt2 + 7*za(i2,i4)*zb(i4,i2) - & - 20*za(i3,i4)*zb(i4,i3)) + & - 2*zb(i3,i1)**2*zb(i4,i2)**2* & - (2*mt2 + za(i3,i4)*zb(i4,i3)) + & - zb(i3,i2)**2*zb(i4,i1)**2* & - (-(za(i2,i4)*zb(i4,i2)) + & - 6*za(i3,i4)*zb(i4,i3))))) + & - za(i1,i3)*za(i1,i4)* & - (za(i2,i3)**4*zb(i2,i1)*zb(i3,i1)**3*zb(i3,i2)* & - zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + zb(i3,i1)*zb(i4,i2)) & - - za(i2,i4)**3*zb(i4,i1)**3*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) - & - 5*zb(i3,i1)*zb(i4,i2)) - & - za(i3,i4)*zb(i2,i1)**2*zb(i4,i3)**2 + & - zb(i2,i1)* & - (zb(i3,i1)*zb(i4,i2)* & - (8*mt2 + za(i2,i4)*zb(i4,i2) - & - 6*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i2)*zb(i4,i1)* & - (-4*mt2 + za(i2,i4)*zb(i4,i2) + & - za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)**3*zb(i3,i1)**2* & - (za(i3,i4)*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2)* & - (3*zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2)) + & - 2*mt2*zb(i2,i1)**2*zb(i3,i1)*zb(i4,i2)* & - zb(i4,i3) + & - zb(i2,i1)* & - (zb(i3,i1)**2*zb(i4,i2)**2* & - (2*mt2 - za(i2,i4)*zb(i4,i2)) + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (-6*mt2 + 2*za(i1,i4)*zb(i4,i1) + & - 6*za(i2,i4)*zb(i4,i2) - & - 3*za(i3,i4)*zb(i4,i3)) - & - zb(i3,i2)**2*zb(i4,i1)**2* & - (-8*mt2 + 2*za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2) + & - 4*za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)**2*za(i2,i4)*zb(i3,i1)*zb(i4,i1)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (2*zb(i3,i2)**2*zb(i4,i1)**2 + & - 9*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2) + zb(i3,i1)**2*zb(i4,i2)**2) & - + zb(i2,i1)**2*zb(i4,i3)* & - (2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) + & - zb(i3,i1)*zb(i4,i2)* & - (4*mt2 - za(i3,i4)*zb(i4,i3))) + & - zb(i2,i1)* & - (zb(i3,i1)**2*zb(i4,i2)**2* & - (8*mt2 + 2*za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2)) + & - zb(i3,i2)**2*zb(i4,i1)**2* & - (4*mt2 - 2*za(i1,i4)*zb(i4,i1) - & - za(i2,i4)*zb(i4,i2) + & - 18*za(i3,i4)*zb(i4,i3)) - & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (8*mt2 + 27*za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)*za(i2,i4)**2*zb(i4,i1)**2* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (-(zb(i3,i2)**2*zb(i4,i1)**2) + & - 7*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2) + 6*zb(i3,i1)**2*zb(i4,i2)**2 & - ) + & - 2*zb(i2,i1)**2*zb(i4,i3)* & - (mt2*zb(i3,i1)*zb(i4,i2) + & - za(i3,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) & - + zb(i2,i1)* & - (zb(i3,i2)**2*zb(i4,i1)**2* & - (-4*mt2 + za(i2,i4)*zb(i4,i2) - & - 2*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)*zb(i3,i2)*zb(i4,i1)*zb(i4,i2)* & - (2*mt2 - 2*za(i1,i4)*zb(i4,i1) - & - 6*za(i2,i4)*zb(i4,i2) + & - 23*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)**2*zb(i4,i2)**2* & - (2*za(i1,i4)*zb(i4,i1) + & - za(i2,i4)*zb(i4,i2) - & - 2*(mt2 + 9*za(i3,i4)*zb(i4,i3))))))) & - + za(i1,i2)**2*zb(i2,i1)* & - (-(za(i1,i3)**2*zb(i2,i1)*zb(i3,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))* & - (za(i2,i3)*zb(i3,i1)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)*zb(i4,i3) + & - zb(i3,i2)*zb(i4,i1)* & - (4*mt2 - 3*za(i3,i4)*zb(i4,i3))) + & - za(i2,i4)*zb(i4,i1)* & - (-3*za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - zb(i4,i3) + & - zb(i3,i2)*zb(i4,i1)* & - (4*mt2 + za(i3,i4)*zb(i4,i3))))) + & - za(i1,i4)*(za(i2,i4)**2*za(i3,i4)*zb(i4,i1)**3* & - zb(i4,i2)* & - (zb(i3,i1)*zb(i4,i2)* & - (4*mt2 + za(i2,i4)*zb(i4,i2) - & - 4*za(i3,i4)*zb(i4,i3)) - & - zb(i2,i1)*zb(i4,i3)* & - (-4*mt2 + za(i2,i4)*zb(i4,i2) + & - 2*za(i3,i4)*zb(i4,i3))) + & - za(i2,i3)**2*zb(i3,i1)*zb(i4,i1)* & - (2*za(i3,i4)* & - (2*mt2*zb(i3,i1)**2*zb(i4,i2)**2 - & - 2*zb(i3,i1)* & - (2*mt2*zb(i2,i1) + & - za(i3,i4)*zb(i3,i2)*zb(i4,i1))* & - zb(i4,i2)*zb(i4,i3) + & - 3*za(i3,i4)*zb(i2,i1)*zb(i3,i2)* & - zb(i4,i1)*zb(i4,i3)**2) + & - za(i2,i4)*zb(i3,i1)*zb(i4,i2)**2* & - (za(i3,i4)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)* & - (8*mt2 - 7*za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)**3*zb(i3,i1)**2*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i2) + & - zb(i2,i1)* & - (-2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) + & - zb(i3,i1)*zb(i4,i2)* & - (4*mt2 - za(i3,i4)*zb(i4,i3)))) + & - za(i2,i3)*za(i2,i4)*zb(i4,i1)**2* & - (za(i2,i4)*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + & - 2*zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)* & - (2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) + & - zb(i3,i1)*zb(i4,i2)* & - (4*mt2 - 7*za(i3,i4)*zb(i4,i3)))) - & - 2*za(i3,i4)* & - (3*za(i3,i4)*zb(i2,i1)*zb(i3,i2)* & - zb(i4,i1)*zb(i4,i3)**2 + & - 2*zb(i3,i1)**2*zb(i4,i2)**2* & - (-2*mt2 + za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)*zb(i4,i2)*zb(i4,i3)* & - (2*za(i3,i4)*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)* & - (2*mt2 - 5*za(i3,i4)*zb(i4,i3)))))) & - + za(i1,i3)* & - (za(i2,i3)**3*zb(i3,i1)**3*zb(i3,i2)*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*(4*mt2 - za(i3,i4)*zb(i4,i3))) + & - za(i2,i3)**2*zb(i3,i1)**2* & - (-2*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & - (-2*za(i3,i4)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) + & - zb(i3,i1)*zb(i4,i2)* & - (2*mt2 + za(i3,i4)*zb(i4,i3))) + & - za(i3,i4)* & - (-(za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & - zb(i4,i3)) + & - 2*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3)* & - (-4*mt2 + za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1)* & - (4*mt2 - 3*za(i3,i4)*zb(i4,i3)) + & - zb(i2,i1)*zb(i4,i3)* & - (4*mt2 + za(i3,i4)*zb(i4,i3)))) + & - za(i2,i4)*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (2*zb(i3,i2)*zb(i4,i1) + & - zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)* & - (-2*za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - zb(i4,i3) + & - zb(i3,i2)*zb(i4,i1)* & - (8*mt2 + za(i3,i4)*zb(i4,i3))))) + & - za(i2,i4)**2*zb(i4,i1)**2* & - (2*za(i1,i4)*zb(i2,i1)*zb(i3,i1)*zb(i4,i1)* & - zb(i4,i2)*(-2*mt2 + za(i3,i4)*zb(i4,i3)) & - + za(i3,i4)* & - (zb(i3,i1)**2*zb(i4,i2)**2* & - (za(i2,i4)*zb(i4,i2) - & - 5*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i1)*zb(i4,i2)* & - (2*zb(i2,i1)*zb(i4,i3)* & - (2*mt2 + za(i2,i4)*zb(i4,i2) - & - 3*za(i3,i4)*zb(i4,i3)) + & - zb(i3,i2)*zb(i4,i1)* & - (4*mt2 + za(i3,i4)*zb(i4,i3))) + & - zb(i2,i1)*zb(i4,i3)* & - (-(za(i3,i4)*zb(i2,i1)*zb(i4,i3)**2) + & - zb(i3,i2)*zb(i4,i1)* & - (4*mt2 - za(i2,i4)*zb(i4,i2) + & - za(i3,i4)*zb(i4,i3))))) + & - za(i2,i3)*za(i2,i4)*zb(i3,i1)*zb(i4,i1)* & - (4*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & - (-2*mt2*zb(i3,i1)*zb(i4,i2) + & - za(i3,i4)*zb(i3,i2)*zb(i4,i1)*zb(i4,i3)) & - + za(i2,i4)*zb(i4,i2)* & - (za(i3,i4)*zb(i3,i1)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + & - 2*zb(i3,i1)*zb(i4,i2)) + & - zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & - (4*mt2 + za(i3,i4)*zb(i4,i3))) - & - za(i3,i4)* & - (6*za(i3,i4)*zb(i3,i1)**2*zb(i4,i2)**2* & - zb(i4,i3) - & - zb(i3,i1)*zb(i4,i2)* & - (2*zb(i3,i2)*zb(i4,i1)* & - (4*mt2 - za(i3,i4)*zb(i4,i3)) + & - zb(i2,i1)*zb(i4,i3)* & - (8*mt2 + 7*za(i3,i4)*zb(i4,i3))) + & - zb(i2,i1)*zb(i4,i3)* & - (za(i3,i4)*zb(i2,i1)*zb(i4,i3)**2 + & - zb(i3,i2)*zb(i4,i1)* & - (4*mt2 + 9*za(i3,i4)*zb(i4,i3))))))) & - )/(2.*za(i1,i2)**2*za(i3,i4)*zb(i2,i1)**2*zb(i3,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**3* & - zb(i4,i3)) - - return - end - - function ggHZ_mp_tri1(i1,i2,i3,i4,za,zb,s,mt2) - implicit none - complex(8)::ggHZ_mp_tri1,za(1:4,1:4),zb(1:4,1:4) -!---- coefficiient of 2mh box - integer:: i1,i2,i3,i4 - real(8):: mt2,t,s(1:4,1:4) - t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) - - ggHZ_mp_tri1=(-(za(i1,i2)**3*za(i3,i4)*zb(i2,i1)**2*zb(i4,i1)* & - zb(i4,i2)) + & - za(i1,i2)**2*zb(i2,i1)*zb(i4,i1)* & - (2*za(i1,i3)**2*zb(i2,i1)*zb(i3,i1) + & - za(i1,i3)*(2*za(i1,i4)*zb(i2,i1)*zb(i4,i1) + & - (3*za(i2,i4)*zb(i2,i1) - & - za(i3,i4)*zb(i3,i1))*zb(i4,i2)) - & - zb(i4,i2)*(3*za(i1,i4)*za(i2,i3)*zb(i2,i1) + & - 2*za(i3,i4)* & - (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))) & - ) - za(i1,i4)*za(i2,i3)*za(i3,i4)*zb(i4,i1)* & - zb(i4,i2)*(za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2))*zb(i4,i3) + & - za(i1,i3)**2*zb(i3,i1)* & - (za(i2,i4)**2*zb(i4,i1)*zb(i4,i2)**2 - & - 2*za(i2,i3)**2*zb(i2,i1)*zb(i3,i2)*zb(i4,i3) + & - za(i2,i3)*za(i2,i4)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) - 3*zb(i2,i1)*zb(i4,i3))) & - + za(i1,i3)*(za(i2,i4)*za(i3,i4)*zb(i4,i1)* & - zb(i4,i2)*(za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2))*zb(i4,i3) - & - za(i1,i4)*za(i2,i3)* & - (za(i2,i4)*zb(i4,i1)*zb(i4,i2)* & - (zb(i3,i2)*zb(i4,i1) + & - 3*zb(i2,i1)*zb(i4,i3)) + & - za(i2,i3)* & - (zb(i3,i2)**2*zb(i4,i1)**2 + & - 2*zb(i2,i1)*zb(i3,i2)*zb(i4,i1)* & - zb(i4,i3) - zb(i2,i1)**2*zb(i4,i3)**2))) & - - za(i1,i2)*(za(i1,i3)**2*zb(i2,i1)*zb(i3,i1)* & - (-3*za(i2,i4)*zb(i4,i1)*zb(i4,i2) + & - za(i2,i3)* & - (-2*zb(i3,i2)*zb(i4,i1) + & - 2*zb(i2,i1)*zb(i4,i3))) + & - zb(i4,i2)*(za(i3,i4)* & - (2*za(i2,i3)*zb(i2,i1) + & - za(i3,i4)*zb(i4,i1))* & - (za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2))* & - zb(i4,i3) + & - 2*za(i1,i4)*za(i2,i3)*zb(i2,i1)* & - (2*za(i2,i4)*zb(i4,i1)*zb(i4,i2) + & - za(i2,i3)* & - (2*zb(i3,i2)*zb(i4,i1) - & - zb(i2,i1)*zb(i4,i3)))) + & - za(i1,i3)*(za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & - (-2*za(i2,i4)*zb(i4,i1)*zb(i4,i2) + & - za(i2,i3)* & - (-(zb(i3,i2)*zb(i4,i1)) + & - 3*zb(i2,i1)*zb(i4,i3))) + & - zb(i4,i2)* & - (za(i2,i4)* & - (-4*za(i2,i4)*zb(i2,i1) + & - za(i3,i4)*zb(i3,i1))*zb(i4,i1)* & - zb(i4,i2) + & - za(i2,i3)* & - (za(i3,i4)*zb(i3,i1)* & - (zb(i3,i2)*zb(i4,i1) - & - zb(i2,i1)*zb(i4,i3)) + & - 2*za(i2,i4)*zb(i2,i1)* & - (-2*zb(i3,i2)*zb(i4,i1) + & - zb(i2,i1)*zb(i4,i3)))))))/ & - (2.*s(i3,i4)*za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2) - return - end - - function ggHZ_mp_tri2(i1,i2,i3,i4,za,zb,s,mt2) - implicit none - complex(8):: ggHZ_mp_tri2,za(1:4,1:4),zb(1:4,1:4) -!---- coefficiient of 2mh box - integer:: i1,i2,i3,i4 - real(8):: mt2,t,s(1:4,1:4) - t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) - - ggHZ_mp_tri2= (zb(i4,i1)*(2*za(i1,i3)**3*zb(i2,i1)*zb(i3,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) + & - 2*za(i1,i4)*za(i2,i3)*za(i3,i4)*zb(i4,i1)* & - zb(i4,i2)*(za(i1,i2)*zb(i2,i1) + & - za(i2,i3)*zb(i3,i2) + za(i2,i4)*zb(i4,i2)) + & - 2*za(i1,i3)*za(i3,i4)* & - (za(i1,i2)*zb(i2,i1)* & - (-(za(i1,i4)*zb(i4,i1)**2) + & - za(i2,i3)*zb(i3,i1)*zb(i4,i2)) + & - za(i2,i3)* & - (zb(i3,i1)*zb(i4,i2)* & - (za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2)) + & - za(i1,i4)*zb(i4,i1)* & - (-(zb(i3,i2)*zb(i4,i1)) + & - zb(i3,i1)*zb(i4,i2)))) + & - za(i1,i3)**2* & - (2*za(i1,i4)*zb(i2,i1)*zb(i4,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1)) & - + za(i3,i4)* & - (-2*za(i1,i2)*zb(i2,i1)*zb(i3,i1)* & - zb(i4,i1) + & - za(i2,i4)*zb(i4,i1)* & - (zb(i3,i2)*zb(i4,i1) - & - zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3)) + & - za(i2,i3)*zb(i3,i1)* & - (-(zb(i3,i2)*zb(i4,i1)) + & - zb(i3,i1)*zb(i4,i2) + & - zb(i2,i1)*zb(i4,i3))))))/ & - (2.*za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))**2* & - zb(i4,i3)) - - return - end - - - function ggHZ_mp_3mtri(i1,i2,i3,i4,za,zb,s) - implicit none - complex(8):: ggHZ_mp_3mtri,za(1:4,1:4),zb(1:4,1:4) - integer:: i1,i2,i3,i4 - real(8):: mt2,t,gam - real(8):: P12(4),P34(4),s(1:4,1:4) - integer:: nu - - - t(i1,i2,i3)=s(i1,i2)+s(i1,i3)+s(i2,i3) - -!==== part 1 - ggHZ_mp_3mtri= (-2*((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3))) & - **2*(1 - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**8* & - ((((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i2)*zb(i2,i1)* & - (((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2 - & - ((za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2)* & - ((za(i1,i2)**2*zb(i2,i1)**2* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**2* & - (-(za(i1,i2)*zb(i4,i2)) + & - (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**6) + & - ((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**2* & - (-(za(i2,i3)*zb(i2,i1)) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i1))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - (-(za(i1,i3)*zb(i4,i3)) + & - (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**6) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**2* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i2)*zb(i4,i2)* & - (((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (-(za(i2,i3)*zb(i2,i1)) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i1))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**4 + & - (za(i1,i2)**2*zb(i2,i1)**2* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**4)) + & - za(i1,i3)*zb(i2,i1)* & - (-((za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (-(za(i1,i2)*zb(i4,i2)) + & - (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2)/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**4)) + & - ((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - (-(za(i1,i3)*zb(i4,i3)) + & - (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**4)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**3))/ & - (1 - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2) + & - za(i3,i4)*zb(i4,i3)* & - (-((za(i1,i2)**4*zb(i2,i1)**4* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**3* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (za(i1,i2)*zb(i2,i1) + & - (za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (-(za(i1,i2)*zb(i4,i2)) + & - (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**3* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**4* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**9)) + & - (za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**3* & - (-(za(i2,i3)*zb(i2,i1)) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i1))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - ((za(i1,i2)**2*zb(i2,i1)*zb(i4,i2)* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (za(i1,i2)*zb(i2,i1) + & - (za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (-(za(i1,i3)*zb(i4,i3)) + & - (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2)))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**7) + & - ((za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**2* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**3* & - (-(za(i1,i3)*zb(i4,i3)) + & - (za(i1,i2)*za(i3,i4)*zb(i4,i2)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - ((za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (-(za(i2,i3)*zb(i2,i1)) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i1))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**3 + & - ((za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (((za(i1,i2)*zb(i2,i1) + & - (za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (-(za(i2,i3)*zb(i2,i1)) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i1))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2 - & - za(i1,i2)*zb(i2,i1)* & - (-((za(i1,i2)*za(i1,i3)* & - zb(i2,i1)**2* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1)))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2))) + & - ((-(za(i2,i3)*zb(i2,i1)) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i1))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)))/ & - (1 - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**6 + & - (za(i1,i2)**2*zb(i2,i1)**2* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))**2* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - ((za(i1,i2)**3*zb(i2,i1)**2* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))*zb(i4,i2)* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**3) + & - ((-(za(i1,i2)*zb(i4,i2)) + & - (za(i1,i2)*za(i1,i3)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - ((za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1))* & - (za(i1,i3)*zb(i3,i2) + & - za(i1,i4)*zb(i4,i2))* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**3 + & - ((za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (((za(i1,i2)*zb(i2,i1) + & - (za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))* & - (za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2 - & - za(i1,i2)*zb(i2,i1)* & - ((za(i1,i3)*zb(i2,i1)* & - (za(i2,i3)*zb(i3,i1) + & - za(i2,i4)*zb(i4,i1)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2) + & - ((za(i2,i3)*zb(i3,i2) + & - za(i2,i4)*zb(i4,i2) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))* & - (za(i3,i4)*zb(i4,i1) + & - (za(i2,i3)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**2)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)))/ & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)))/ & - (((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2* & - (1 - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/ & - 2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3)))**2)**5))))/ & - (za(i1,i2)**2*zb(i2,i1)**2* & - (za(i2,i3)*zb(i3,i1) + za(i2,i4)*zb(i4,i1))** & - 4*(za(i1,i2)*zb(i2,i1) - & - (za(i1,i2)*zb(i2,i1)* & - (za(i1,i3)*zb(i3,i1) + & - za(i1,i4)*zb(i4,i1)))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - (za(i1,i3)*zb(i3,i1) + za(i1,i4)*zb(i4,i1) - & - (za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3))/ & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)* & - zb(i4,i3))))**2* & - (-(za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3)) + & - ((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2. + & - Sqrt(((za(i1,i3)*zb(i3,i1))/2. + & - (za(i2,i3)*zb(i3,i2))/2. + & - (za(i1,i4)*zb(i4,i1))/2. + & - (za(i2,i4)*zb(i4,i2))/2.)**2 - & - za(i1,i2)*za(i3,i4)*zb(i2,i1)*zb(i4,i3) & - ))**2)) - -!+==== part 2 -!=====normalization - ggHZ_mp_3mtri=-ggHZ_mp_3mtri/(two*s(i3,i4)) - - return - end -! ------------------ END MCFM SM check ------------ - - - - - - end module ModVHiggs !!--YaofuZhou-----------------------------------------