subroutine vvsjxx(v1,v2,sc,gc , vertex) c Matt Reece, November 2006 c c This subroutine computes an amplitude of the vector-vector-scalar c coupling. It uses the FF library to compute the one-loop c Higgs-glue-glue coupling. c c The input parameter "gc" is ignored; top mass, yukawa, and qcd coupling c are set below. This should probably be altered at some point to work c with the other code more seamlessly. c c input: c complex v1(6) : first vector v1 c complex v2(6) : second vector v2 c complex sc(3) : input scalar s c complex gc : coupling constant gvvh c c output: c complex vertex : amplitude gamma(v1,v2,s) c implicit none include "../ff/ff.h" c include "coupl.inc" C include"ff.h" double precision p1sq,p2sq double complex v1(6),v2(6),sc(6) double complex gc,vertex double complex p12,v12,p2v1,p1v2 double precision p1(0:3),p2(0:3) c variables defined here for now... figure out a better system in the future double precision massoftop parameter (massoftop=175.0d0) double precision topyukawa parameter (topyukawa=1.00d0) double precision gqcd parameter (gqcd=0.3133d0) C variables for looptools double complex c12 double precision xp12(6) integer ier double precision mtSQ double precision myshat double complex triangle C PARSE ARRAYS: momenta are stored in these parts of the vector p1(0) = dble( v1(5)) p1(1) = dble( v1(6)) p1(2) = dimag(v1(6)) p1(3) = dimag(v1(5)) p1sq=p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 C p2(0) = dble( v2(5)) p2(1) = dble( v2(6)) p2(2) = dimag(v2(6)) p2(3) = dimag(v2(5)) p2sq = p2(0)**2-p2(1)**2-p2(2)**2-p2(3)**2 C DOT PRODUCTS p12 = p1(0)*p2(0) - p1(1)*p2(1) - p1(2)*p2(2) - p1(3)*p2(3) v12 = v1(1)*v2(1) - v1(2)*v2(2) - v1(3)*v2(3) - v1(4)*v2(4) p1v2 = p1(0)*v2(1) - p1(1)*v2(2) - p1(2)*v2(3) - p1(3)*v2(4) p2v1 = p2(0)*v1(1) - p2(1)*v1(2) - p2(2)*v1(3) - p2(3)*v1(4) C KINEMATIC VARIABLES mtSQ=massoftop*massoftop myshat=(p1sq + p2sq + 2d0*p12) C begin FF/LOOPTOOLS calls:------------------- call ffini ier=0 C 3 point integral xp12(1)=mtSQ xp12(2)=mtSQ xp12(3)=mtSQ xp12(4)=p1sq xp12(5)=p2sq xp12(6)=myshat call ffxc0(c12,xp12,ier) C amplitude using result from FF triangle=4.0d0*massoftop*(c12*(v12 * (4.0*mtSQ - myshat) + & p1v2*p2v1)+2.0d0*v12)*4.0d0 c rescale overall vertex vertex=triangle*sc(1)*(gqcd*gqcd*topyukawa)/(4d0*Pi)**2d0 call ffexi C write (*,*) 'vertex=', vertex return end