~madteam/mg5amcnlo/series2.0

50.9.3 by Johan Alwall
Added Template and HELAS into bzr
1
      subroutine hvvshx(v1,v2,sc,g1,mass,width, hvvsh)
2
c
3
c- by RF - Mar. 2006
4
c
5
c
6
c This subroutine computes an amplitude of the vector-vector-Higgs-Higgs 
7
c effective coupling.
8
c
9
c input:
10
c       complex v1(6)          : first  vector                        
11
c       complex v2(6)          : second vector                        
12
c       complex sc1(3)         : first  scalar                        
13
c       complex g1(2)          : first coupling constant                 
14
c       real    mass           : mass of the outgoing scalar
15
c       real    width          : width of the outgoing scalar
16
c
17
c output:
18
c       complex hvvsh(3)       : scalar current
19
c     
20
      implicit none
21
c--   dimension of the current set to arbitrary length
171.1.12 by mattelaer-olivier
remove all include in HELAS routine (g77 compatibility)
22
      INTEGER DIM
23
      PARAMETER(DIM=18)
24
c      include "dimension.inc"
50.9.3 by Johan Alwall
Added Template and HELAS into bzr
25
      double complex v1(DIM),v2(DIM),sc(DIM),hvvsh(DIM)
26
      double complex hvvsh1,hvvsh2,dg,g1(2)
27
      double complex v12,p2v1,p1v2,v13,v14,v23,v24,v34
28
      double precision p12,p13,p14,p23,p24,p34
29
      
30
      double precision p1(0:3),p2(0:3),mass,width,q2,q(0:3)
31
32
33
      p1(0) = dble( v1(5))
34
      p1(1) = dble( v1(6))
35
      p1(2) = dimag(v1(6))
36
      p1(3) = dimag(v1(5))
37
38
      p2(0) = dble( v2(5))
39
      p2(1) = dble( v2(6))
40
      p2(2) = dimag(v2(6))
41
      p2(3) = dimag(v2(5))
42
43
      hvvsh(2) = v1(5)+v2(5)+sc(2)
44
      hvvsh(3) = v1(6)+v2(6)+sc(3)
45
46
      q(0) = -dble( hvvsh(2))
47
      q(1) = -dble( hvvsh(3))
48
      q(2) = -dimag(hvvsh(3))
49
      q(3) = -dimag(hvvsh(2))
50
51
      q2 = q(0)**2 - q(1)**2 - q(2)**2 - q(3)**2
52
53
      dg = dcmplx( q2-mass**2, mass*width )
54
55
      hvvsh1 = (0D0,0D0)
56
      hvvsh2 = (0D0,0D0)
57
58
      if (g1(1).NE.(0D0,0D0)) then
59
60
         v12  = v1(1)*v2(1) - v1(2)*v2(2) - v1(3)*v2(3) - v1(4)*v2(4)
61
         p12  = p1(0)*p2(0) - p1(1)*p2(1) - p1(2)*p2(2) - p1(3)*p2(3)
62
         p2v1 = v1(1)*p2(0) - v1(2)*p2(1) - v1(3)*p2(2) - v1(4)*p2(3)
63
         p1v2 = p1(0)*v2(1) - p1(1)*v2(2) - p1(2)*v2(3) - p1(3)*v2(4)	
64
65
         hvvsh1 = - g1(1) *(v12*p12 - p2v1*p1v2)
66
      endif
67
68
      if (g1(2).NE.(0D0,0D0)) then
69
          p12 = p1(0)*p2(1) - p1(1)*p2(0)
70
          p13 = p1(0)*p2(2) - p1(2)*p2(0)
71
          p14 = p1(0)*p2(3) - p1(3)*p2(0)
72
          p23 = p1(1)*p2(2) - p1(2)*p2(1)
73
          p24 = p1(1)*p2(3) - p1(3)*p2(1)
74
          p34 = p1(2)*p2(3) - p1(3)*p2(2)
75
76
          v12 = v1(1)*v2(2) - v1(2)*v2(1)
77
          v13 = v1(1)*v2(3) - v1(3)*v2(1)
78
          v14 = v1(1)*v2(4) - v1(4)*v2(1)
79
          v23 = v1(2)*v2(3) - v1(3)*v2(2)
80
          v24 = v1(2)*v2(4) - v1(4)*v2(2)
81
          v34 = v1(3)*v2(4) - v1(4)*v2(3)
82
83
          hvvsh2 = g1(2)*( v12*p34 - v13*p24 + v14*p23
84
     &                    +v23*p14 - v24*p13 + v34*p12 )
85
      endif
86
       
87
      hvvsh(1) = sc(1)*(hvvsh1 + hvvsh2) /dg
88
89
      return
90
      end