~maddevelopers/mg5amcnlo/2.5.3

« back to all changes in this revision

Viewing changes to HELAS/uvvvlx.F

  • Committer: olivier-mattelaer
  • Date: 2017-03-08 12:31:17 UTC
  • Revision ID: olivier-mattelaer-20170308123117-h0zkqjyh9sihsc61
empty version to have an effective freeze of the code

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
      subroutine uvvvlx(ga,gb,gc,g1,g2,xm,xw,jhvvv)
2
 
c
3
 
c- by RF - Mar. 2006
4
 
c
5
 
c This subroutine computes an off-shell (non-propagating) scalar particle
6
 
c from three incoming vector bosons of the coupling of three gauge bosons.
7
 
c
8
 
c input:
9
 
c       complex ga(6)          : first  incoming vector
10
 
c       complex gb(6)          : second incoming vector
11
 
c       complex gc(6)          : third  incoming vector
12
 
c       real    g1             : coupling constant     (QCD)
13
 
c       complex g2(2)          : coupling constant     (Higgs Effct. Thr.)
14
 
c
15
 
c output:
16
 
c       complex jhvvv(3)       : output scalar
17
 
c
18
 
c not used:
19
 
c       xm,xw
20
 
c
21
 
 
22
 
      implicit none
23
 
 
24
 
c--   dimension of the current set to arbitrary length
25
 
      INTEGER DIM
26
 
      PARAMETER(DIM=18)
27
 
c      include "dimension.inc"
28
 
      double complex ga(DIM),gb(DIM),gc(DIM),jhvvv(DIM),g2(2)
29
 
 
30
 
      double complex dvertx, vertex, vertex1, vertex2
31
 
      double complex vab, vbc, vca, v123, v124, v134, v234
32
 
      double complex pgagb, pgagc, pgbga, pgbgc, pgcga, pgcgb
33
 
      double precision pga(0:3),pgb(0:3),pgc(0:3),pabc(4)
34
 
      double precision g1,xm,xw, q2, q(4)
35
 
 
36
 
      pga(0) = dble( ga(5))
37
 
      pga(1) = dble( ga(6))
38
 
      pga(2) = dimag(ga(6))
39
 
      pga(3) = dimag(ga(5))
40
 
 
41
 
      pgb(0) = dble( gb(5))
42
 
      pgb(1) = dble( gb(6))
43
 
      pgb(2) = dimag(gb(6))
44
 
      pgb(3) = dimag(gb(5))
45
 
 
46
 
      pgc(0) = dble( gc(5))
47
 
      pgc(1) = dble( gc(6))
48
 
      pgc(2) = dimag(gc(6))
49
 
      pgc(3) = dimag(gc(5))
50
 
 
51
 
      vertex1 = (0D0,0D0)
52
 
      vertex2 = (0D0,0D0)
53
 
 
54
 
 
55
 
      jhvvv(2) = ga(5) + gb(5) + gc(5)
56
 
      jhvvv(3) = ga(6) + gb(6) + gc(6)
57
 
 
58
 
 
59
 
c The internal particle does not propagate, so no multiplication
60
 
c with a propagator.
61
 
 
62
 
      if (g2(1).NE.(0D0,0D0)) then
63
 
      vab = ga(1)*gb(1)-ga(2)*gb(2)-ga(3)*gb(3)-ga(4)*gb(4)
64
 
      vbc = gb(1)*gc(1)-gb(2)*gc(2)-gb(3)*gc(3)-gb(4)*gc(4)
65
 
      vca = gc(1)*ga(1)-gc(2)*ga(2)-gc(3)*ga(3)-gc(4)*ga(4)
66
 
 
67
 
      pgagb = pga(0)*gb(1) - pga(1)*gb(2) - pga(2)*gb(3) - pga(3)*gb(4)
68
 
      pgagc = pga(0)*gc(1) - pga(1)*gc(2) - pga(2)*gc(3) - pga(3)*gc(4)
69
 
      pgbga = pgb(0)*ga(1) - pgb(1)*ga(2) - pgb(2)*ga(3) - pgb(3)*ga(4)
70
 
      pgbgc = pgb(0)*gc(1) - pgb(1)*gc(2) - pgb(2)*gc(3) - pgb(3)*gc(4)
71
 
      pgcga = pgc(0)*ga(1) - pgc(1)*ga(2) - pgc(2)*ga(3) - pgc(3)*ga(4)
72
 
      pgcgb = pgc(0)*gb(1) - pgc(1)*gb(2) - pgc(2)*gb(3) - pgc(3)*gb(4)
73
 
 
74
 
      dvertx = vab*(pgagc-pgbgc) + vbc*(pgbga-pgcga) + vca*(pgcgb-pgagb)
75
 
      vertex1= dvertx * g2(1)
76
 
      endif
77
 
 
78
 
      if (g2(2).NE.(0D0,0D0)) then
79
 
      pabc(1) = pga(0) + pgb(0) + pgc(0)
80
 
      pabc(2) = pga(1) + pgb(1) + pgc(1)
81
 
      pabc(3) = pga(2) + pgb(2) + pgc(2)
82
 
      pabc(4) = pga(3) + pgb(3) + pgc(3)
83
 
 
84
 
      v123 =   ga(1)*gb(2)*gc(3) - ga(1)*gb(3)*gc(2) - ga(2)*gb(1)*gc(3)
85
 
     &       + ga(2)*gb(3)*gc(1) + ga(3)*gb(1)*gc(2) - ga(3)*gb(2)*gc(1)
86
 
      v124 = - ga(1)*gb(2)*gc(4) + ga(1)*gb(4)*gc(2) + ga(2)*gb(1)*gc(4)
87
 
     &       - ga(2)*gb(4)*gc(1) - ga(4)*gb(1)*gc(2) + ga(4)*gb(2)*gc(1)
88
 
      v134 =   ga(1)*gb(3)*gc(4) - ga(1)*gb(4)*gc(3) - ga(3)*gb(1)*gc(4)
89
 
     &       + ga(3)*gb(4)*gc(1) + ga(4)*gb(1)*gc(3) - ga(4)*gb(3)*gc(1)
90
 
      v234 = - ga(2)*gb(3)*gc(4) + ga(2)*gb(4)*gc(3) + ga(3)*gb(2)*gc(4)
91
 
     &       - ga(3)*gb(4)*gc(2) - ga(4)*gb(2)*gc(3) + ga(4)*gb(3)*gc(2)
92
 
 
93
 
 
94
 
      vertex2= g2(2) * (  v123*pabc(4) + v124*pabc(3)
95
 
     &                  + v134*pabc(2) + v234*pabc(1) )
96
 
      endif
97
 
 
98
 
      jhvvv(1) = g1 * (vertex1 + vertex2)
99
 
 
100
 
      return
101
 
      end