1
subroutine ssssxx(s1,s2,s3,s4,gc , vertex)
3
c This subroutine computes an amplitude of the four-scalar coupling.
6
c complex s1(3) : first scalar s1
7
c complex s2(3) : second scalar s2
8
c complex s3(3) : third scalar s3
9
c complex s4(3) : fourth scalar s4
10
c complex gc : coupling constant ghhhh
13
c complex vertex : amplitude gamma(s1,s2,s3,s4)
16
double complex s1(3),s2(3),s3(3),s4(3),gc,vertex
19
double precision p0,p1,p2,p3,q0,q1,q2,q3,r0,r1,r2,r3,o0,o1,o2,o3,
22
parameter( epsi = 4.0d-5 )
23
double precision rZero
24
parameter( rZero = 0.0d0 )
26
parameter( cZero = ( 0.0d0, 0.0d0 ) )
48
if ( s1(1).eq.cZero ) then
49
write(stdo,*) ' helas-warn : s1 in ssssxx is zero scalar'
51
if ( abs(s1(2))+abs(s1(3)).eq.rZero ) then
53
& ' helas-error : s1 in ssssxx has zero momentum'
55
if ( s2(1).eq.cZero ) then
56
write(stdo,*) ' helas-warn : s2 in ssssxx is zero scalar'
58
if ( abs(s2(2))+abs(s2(3)).eq.rZero ) then
60
& ' helas-error : s2 in ssssxx has zero momentum'
62
if ( s3(1).eq.cZero ) then
63
write(stdo,*) ' helas-warn : s3 in ssssxx is zero scalar'
65
if ( abs(s3(2))+abs(s3(3)).eq.rZero ) then
67
& ' helas-error : s3 in ssssxx has zero momentum'
69
if ( s4(1).eq.cZero ) then
70
write(stdo,*) ' helas-warn : s4 in ssssxx is zero scalar'
72
if ( abs(s4(2))+abs(s4(3)).eq.rZero ) then
74
& ' helas-error : s4 in ssssxx has zero momentum'
76
pm = max( abs(p0),abs(q0),abs(r0),abs(o0),
77
& abs(p1),abs(q1),abs(r1),abs(o1),
78
& abs(p2),abs(q2),abs(r2),abs(o2),
79
& abs(p3),abs(q3),abs(r3),abs(o3) )
80
if ( abs(s1(2)+s2(2)+s3(2)+s4(2))
81
& +abs(s1(3)+s2(3)+s3(3)+s4(3)).ge.pm*epsi ) then
83
& ' helas-error : s1,s2,s3,s4 in ssssxx'
85
& ' : have not balanced momenta'
87
if ( gc.eq.cZero ) then
88
write(stdo,*) ' helas-error : g in ssssxx is zero coupling'
92
vertex = gc*s1(1)*s2(1)*s3(1)*s4(1)