~alifson/chiralityflow/trunk

« back to all changes in this revision

Viewing changes to HELAS/vvshxx.F

  • Committer: andrew.lifson at lu
  • Date: 2021-09-01 15:34:39 UTC
  • Revision ID: andrew.lifson@thep.lu.se-20210901153439-7fasjhav4cp4m88r
testing a new repository of a madgraph folder

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine vvshxx(v1,v2,sc,gc , vertex)
 
2
c
 
3
c- by RF - Mar. 2006
 
4
c
 
5
c
 
6
c This subroutine computes an amplitude of the vector-vector-
 
7
c (pseudo-)scalar effective coupling.
 
8
c
 
9
c input:
 
10
c       complex v1(6)          : first  vector
 
11
c       complex v2(6)          : second vector
 
12
c       complex sc(3)          : input  scalar
 
13
c       complex gc(2)          : coupling constant: gc(1) scalar
 
14
c                                                   gc(2) pseudo-scalar
 
15
c
 
16
c output:
 
17
c       complex vertex         : amplitude
 
18
c     
 
19
      implicit none
 
20
c--   dimension of the current set to arbitrary length
 
21
      INTEGER DIM
 
22
      PARAMETER(DIM=18)
 
23
c      include "dimension.inc"
 
24
      double complex v1(DIM),v2(DIM),sc(DIM),vertex,vertex1,vertex2
 
25
      double complex v12,p2v1,p1v2,v13,v14,v23,v24,v34
 
26
      double precision p12,p13,p14,p23,p24,p34
 
27
      double precision p1(0:3),p2(0:3)
 
28
      double complex gc(2)
 
29
 
 
30
 
 
31
      p1(0) = dble( v1(5))
 
32
      p1(1) = dble( v1(6))
 
33
      p1(2) = dimag(v1(6))
 
34
      p1(3) = dimag(v1(5))
 
35
 
 
36
      p2(0) = dble( v2(5))
 
37
      p2(1) = dble( v2(6))
 
38
      p2(2) = dimag(v2(6))
 
39
      p2(3) = dimag(v2(5))
 
40
 
 
41
      vertex1 = (0D0,0D0)
 
42
      vertex2 = (0D0,0D0)
 
43
 
 
44
      if (gc(1).NE.(0D0,0D0)) then
 
45
 
 
46
         v12  = v1(1)*v2(1) - v1(2)*v2(2) - v1(3)*v2(3) - v1(4)*v2(4)
 
47
         p12  = p1(0)*p2(0) - p1(1)*p2(1) - p1(2)*p2(2) - p1(3)*p2(3)
 
48
         p2v1 = v1(1)*p2(0) - v1(2)*p2(1) - v1(3)*p2(2) - v1(4)*p2(3)
 
49
         p1v2 = p1(0)*v2(1) - p1(1)*v2(2) - p1(2)*v2(3) - p1(3)*v2(4)   
 
50
 
 
51
         vertex1 = - gc(1)*(v12*p12 - p2v1*p1v2)
 
52
      endif
 
53
 
 
54
      if (gc(2).NE.(0D0,0D0)) then
 
55
          p12 = p1(0)*p2(1) - p1(1)*p2(0)
 
56
          p13 = p1(0)*p2(2) - p1(2)*p2(0)
 
57
          p14 = p1(0)*p2(3) - p1(3)*p2(0)
 
58
          p23 = p1(1)*p2(2) - p1(2)*p2(1)
 
59
          p24 = p1(1)*p2(3) - p1(3)*p2(1)
 
60
          p34 = p1(2)*p2(3) - p1(3)*p2(2)
 
61
 
 
62
          v12 = v1(1)*v2(2) - v1(2)*v2(1)
 
63
          v13 = v1(1)*v2(3) - v1(3)*v2(1)
 
64
          v14 = v1(1)*v2(4) - v1(4)*v2(1)
 
65
          v23 = v1(2)*v2(3) - v1(3)*v2(2)
 
66
          v24 = v1(2)*v2(4) - v1(4)*v2(2)
 
67
          v34 = v1(3)*v2(4) - v1(4)*v2(3)
 
68
 
 
69
          vertex2 = gc(2)*( v12*p34 - v13*p24 + v14*p23
 
70
     &                     +v23*p14 - v24*p13 + v34*p12 )
 
71
      endif
 
72
       
 
73
      vertex = sc(1)*(vertex1 + vertex2)
 
74
 
 
75
      return
 
76
      end