~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to HELAS/jvvtlx.F

Added Template and HELAS into bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine jvvtlx(ga,gb,sc,g1,g2,xm,xw,jggs)
 
2
c
 
3
c- by RF - Feb. 2006    
 
4
c
 
5
c This subroutine computes an off-shell vector current from the coupling
 
6
c of three gauge bosons and a scalar particle. The outgoing vector
 
7
c current is given in the Feynman gauge.
 
8
c
 
9
c input:
 
10
c       complex ga(6)       : first  incoming vector (gluon)
 
11
c       complex gb(6)       : second incoming vector (gluon)
 
12
c       complex sc(3)       : incoming scalar        (Higgs)
 
13
c       real    g1          : coupling constant      (QCD)
 
14
c       complex g2(2)       : coupling constant      (Higgs Effct. Thr.)
 
15
c
 
16
c output:
 
17
c       complex jggs(6)         : vector current
 
18
c not used:
 
19
c       real    xm, xw
 
20
c
 
21
 
 
22
      implicit none
 
23
c--   dimension of the current set to arbitrary length
 
24
c      INTEGER DIM
 
25
c      PARAMETER(DIM=18)
 
26
      include "dimension.inc"
 
27
      double complex ga(DIM),gb(DIM),jggs(DIM),sc(DIM),g2(2)
 
28
      double complex jggs1(DIM),jggs2(DIM)
 
29
      double complex sva,svb,vab,j12(0:3)
 
30
      double complex v12,v13,v14,v23,v24,v34,dv
 
31
      double precision p1(0:3),p2(0:3),q(0:3),q2,p12q(4)
 
32
      double precision g1,xm,xw
 
33
 
 
34
 
 
35
      jggs(5) = ga(5) + gb(5) + sc(2)
 
36
      jggs(6) = ga(6) + gb(6) + sc(3)
 
37
 
 
38
      p1(0) = dble( ga(5))
 
39
      p1(1) = dble( ga(6))
 
40
      p1(2) = dimag(ga(6))
 
41
      p1(3) = dimag(ga(5))
 
42
 
 
43
      p2(0) = dble( gb(5))
 
44
      p2(1) = dble( gb(6))
 
45
      p2(2) = dimag(gb(6))
 
46
      p2(3) = dimag(gb(5))
 
47
 
 
48
      q(0) = -dble( jggs(5))
 
49
      q(1) = -dble( jggs(6))
 
50
      q(2) = -dimag(jggs(6))
 
51
      q(3) = -dimag(jggs(5))
 
52
 
 
53
      q2 = q(0)**2 - q(1)**2 - q(2)**2 - q(3)**2
 
54
 
 
55
      dv = g1 * sc(1) /q2
 
56
 
 
57
      jggs1(1) = (0D0,0D0)
 
58
      jggs1(2) = (0D0,0D0)
 
59
      jggs1(3) = (0D0,0D0)
 
60
      jggs1(4) = (0D0,0D0)
 
61
      jggs2(1) = (0D0,0D0)
 
62
      jggs2(2) = (0D0,0D0)
 
63
      jggs2(3) = (0D0,0D0)
 
64
      jggs2(4) = (0D0,0D0)
 
65
 
 
66
 
 
67
      if (g2(1).NE.(0D0,0D0)) then
 
68
      vab = ga(1)*gb(1) - ga(2)*gb(2) - ga(3)*gb(3) - ga(4)*gb(4)
 
69
      sva =   (p2(0)-q(0)) *ga(1) - (p2(1)-q(1)) *ga(2)
 
70
     &      - (p2(2)-q(2)) *ga(3) - (p2(3)-q(3)) *ga(4)
 
71
      svb = - (p1(0)-q(0)) *gb(1) + (p1(1)-q(1)) *gb(2)
 
72
     &      + (p1(2)-q(2)) *gb(3) + (p1(3)-q(3)) *gb(4)
 
73
 
 
74
      jggs1(1)= g2(1)*((p1(0)-p2(0))*vab+sva*gb(1)+svb*ga(1))
 
75
      jggs1(2)= g2(1)*((p1(1)-p2(1))*vab+sva*gb(2)+svb*ga(2))
 
76
      jggs1(3)= g2(1)*((p1(2)-p2(2))*vab+sva*gb(3)+svb*ga(3))
 
77
      jggs1(4)= g2(1)*((p1(3)-p2(3))*vab+sva*gb(4)+svb*ga(4))
 
78
      endif
 
79
      
 
80
      if (g2(2).NE.(0D0,0D0)) then
 
81
 
 
82
      p12q(1) = p1(0) + p2(0) + q(0)
 
83
      p12q(2) = p1(1) + p2(1) + q(1)
 
84
      p12q(3) = p1(2) + p2(2) + q(2)
 
85
      p12q(4) = p1(3) + p2(3) + q(3)
 
86
 
 
87
      v12 = ga(1)*gb(2) - ga(2)*gb(1)
 
88
      v13 = ga(1)*gb(3) - ga(3)*gb(1)
 
89
      v14 = ga(1)*gb(4) - ga(4)*gb(1)
 
90
      v23 = ga(2)*gb(3) - ga(3)*gb(2)
 
91
      v24 = ga(2)*gb(4) - ga(4)*gb(2)
 
92
      v34 = ga(3)*gb(4) - ga(4)*gb(3)
 
93
 
 
94
      jggs2(1) =   g2(2)*(   v23*p12q(4) - v24*p12q(3) + v34*p12q(2) )
 
95
      jggs2(2) = - g2(2)*( - v13*p12q(4) + v14*p12q(3) - v34*p12q(1) )
 
96
      jggs2(3) = - g2(2)*(   v12*p12q(4) - v14*p12q(2) + v24*p12q(1) )
 
97
      jggs2(4) = - g2(2)*( - v12*p12q(3) + v13*p12q(2) - v23*p12q(1) )
 
98
      endif
 
99
 
 
100
 
 
101
      jggs(1) = dv * (jggs1(1) + jggs2(1))
 
102
      jggs(2) = dv * (jggs1(2) + jggs2(2))
 
103
      jggs(3) = dv * (jggs1(3) + jggs2(3))
 
104
      jggs(4) = dv * (jggs1(4) + jggs2(4))
 
105
 
 
106
 
 
107
      return
 
108
      end