~alifson/chiralityflow/trunk

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


      p1(0) = dble( v1(5))
      p1(1) = dble( v1(6))
      p1(2) = dimag(v1(6))
      p1(3) = dimag(v1(5))

      p2(0) = dble( v2(5))
      p2(1) = dble( v2(6))
      p2(2) = dimag(v2(6))
      p2(3) = dimag(v2(5))

      vertex1 = (0D0,0D0)
      vertex2 = (0D0,0D0)

      if (gc(1).NE.(0D0,0D0)) then

         v12  = v1(1)*v2(1) - v1(2)*v2(2) - v1(3)*v2(3) - v1(4)*v2(4)
         p12  = p1(0)*p2(0) - p1(1)*p2(1) - p1(2)*p2(2) - p1(3)*p2(3)
         p2v1 = v1(1)*p2(0) - v1(2)*p2(1) - v1(3)*p2(2) - v1(4)*p2(3)
         p1v2 = p1(0)*v2(1) - p1(1)*v2(2) - p1(2)*v2(3) - p1(3)*v2(4)	

         vertex1 = - gc(1)*(v12*p12 - p2v1*p1v2)
      endif

      if (gc(2).NE.(0D0,0D0)) then
          p12 = p1(0)*p2(1) - p1(1)*p2(0)
          p13 = p1(0)*p2(2) - p1(2)*p2(0)
          p14 = p1(0)*p2(3) - p1(3)*p2(0)
          p23 = p1(1)*p2(2) - p1(2)*p2(1)
          p24 = p1(1)*p2(3) - p1(3)*p2(1)
          p34 = p1(2)*p2(3) - p1(3)*p2(2)

          v12 = v1(1)*v2(2) - v1(2)*v2(1)
          v13 = v1(1)*v2(3) - v1(3)*v2(1)
          v14 = v1(1)*v2(4) - v1(4)*v2(1)
          v23 = v1(2)*v2(3) - v1(3)*v2(2)
          v24 = v1(2)*v2(4) - v1(4)*v2(2)
          v34 = v1(3)*v2(4) - v1(4)*v2(3)

          vertex2 = gc(2)*( v12*p34 - v13*p24 + v14*p23
     &                     +v23*p14 - v24*p13 + v34*p12 )
      endif
       
      vertex = sc(1)*(vertex1 + vertex2)

      return
      end