~chirality-flow/chiralityflow/ChiralityFlowMG

« back to all changes in this revision

Viewing changes to HELAS/iovtkk.F

  • Committer: andrew.lifson at lu
  • Date: 2021-09-02 13:57:34 UTC
  • Revision ID: andrew.lifson@thep.lu.se-20210902135734-4eybgli0iljkax9b
added fresh copy of MG5_aMC_v3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine iovtkk(fi,fo,vc,tc,g , vertex)
 
2
c
 
3
c This subroutine computes an amplitude of the three-point coupling of
 
4
c two gauge bosons and a Kaluza-Klein tensor boson.
 
5
c
 
6
c input:
 
7
c       complex fi(6)          : flow-in  fermion     SM |fi>
 
8
c       complex fo(6)          : flow-out fermion     SM <fo|
 
9
c       complex vc(6)          : vector               SM   v
 
10
c       complex tc(6,4)        : tensor               KK   t
 
11
c       real    g(2)           : coupling constant    -g(L,R)*kappa/4
 
12
c
 
13
c output:
 
14
c       complex vertex         : amplitude            gamma(fi,fo,vc,tc)
 
15
c     
 
16
      implicit none
 
17
      double complex fi(6), fo(6), vc(6), tc(6,4), vertex
 
18
      double precision g(2)
 
19
 
 
20
      double complex f13, f14, f23, f24, f31, f32, f41, f42
 
21
      double complex fs1L, fs1R, fs2L, fs2R, fs3L, fs3R, fs4L, fs4R
 
22
      double complex T12, T13, T14, T23, T24, T34
 
23
 
 
24
      double precision rZero, rTwo
 
25
      parameter( rZero = 0.0d0, rTwo = 2.0d0 )
 
26
      double complex ci
 
27
      parameter( ci = ( 0.0d0, 1.0d0 ) )
 
28
c
 
29
      f31 = fo(3)*fi(1)*g(1)
 
30
      f32 = fo(3)*fi(2)*g(1)
 
31
      f41 = fo(4)*fi(1)*g(1)
 
32
      f42 = fo(4)*fi(2)*g(1)
 
33
 
 
34
      fs1L =  f31 + f42
 
35
      fs2L = -f32 - f41
 
36
      fs3L = (f32 - f41)*ci
 
37
      fs4L = -f31 + f42
 
38
 
 
39
      if ( g(2).ne.rZero ) then
 
40
         f14 = fo(1)*fi(4)*g(2)
 
41
         f13 = fo(1)*fi(3)*g(2)
 
42
         f23 = fo(2)*fi(3)*g(2)
 
43
         f24 = fo(2)*fi(4)*g(2)
 
44
         fs1R =  f13 + f24
 
45
         fs2R =  f23 + f14
 
46
         fs3R = (f23 - f14)*ci
 
47
         fs4R =  f13 - f24
 
48
      end if
 
49
 
 
50
      T12 = tc(1,2) + tc(2,1)
 
51
      T13 = tc(1,3) + tc(3,1)
 
52
      T14 = tc(1,4) + tc(4,1)
 
53
      T23 = tc(2,3) + tc(3,2)
 
54
      T24 = tc(2,4) + tc(4,2)
 
55
      T34 = tc(3,4) + tc(4,3)
 
56
 
 
57
      if ( g(2).ne.rZero ) then
 
58
 
 
59
         vertex =  (fs1L + fs1R)*(  vc(1)*rTwo*tc(1,1)
 
60
     &                            - vc(2)*T12 - vc(3)*T13 - vc(4)*T14 )
 
61
 
 
62
     &           + (fs2L + fs2R)*(  vc(2)*rTwo*tc(2,2)
 
63
     &                            - vc(1)*T12 + vc(3)*T23 + vc(4)*T24 )
 
64
 
 
65
     &           + (fs3L + fs3R)*(  vc(3)*rTwo*tc(3,3)
 
66
     &                            - vc(1)*T13 + vc(2)*T23 + vc(4)*T34 )
 
67
 
 
68
     &           + (fs4L + fs4R)*(  vc(4)*rTwo*tc(4,4)
 
69
     &                            - vc(1)*T14 + vc(2)*T24 + vc(3)*T34 )
 
70
 
 
71
         vertex = vertex - rTwo*( tc(1,1)-tc(2,2)-tc(3,3)-tc(4,4) )
 
72
     &                         *(  (vc(1)+      vc(4))*(f31+f24)
 
73
     &                           + (vc(1)-      vc(4))*(f13+f42)
 
74
     &                           + (vc(2)+ci*vc(3))*(f41-f23)
 
75
     &                           + (vc(2)-ci*vc(3))*(f32-f14) )
 
76
 
 
77
      else
 
78
 
 
79
         vertex =  fs1L*(  vc(1)*rTwo*tc(1,1)
 
80
     &                   - vc(2)*T12 - vc(3)*T13 - vc(4)*T14 )
 
81
 
 
82
     &           + fs2L*(  vc(2)*rTwo*tc(2,2)
 
83
     &                   - vc(1)*T12 + vc(3)*T23 + vc(4)*T24 )
 
84
 
 
85
     &           + fs3L*(  vc(3)*rTwo*tc(3,3)
 
86
     &                   - vc(1)*T13 + vc(2)*T23 + vc(4)*T34 )
 
87
 
 
88
     &           + fs4L*(  vc(4)*rTwo*tc(4,4)
 
89
     &                   - vc(1)*T14 + vc(2)*T24 + vc(3)*T34 )
 
90
 
 
91
         vertex = vertex - rTwo*( tc(1,1)-tc(2,2)-tc(3,3)-tc(4,4) )
 
92
     &                         *(  (vc(1)+      vc(4))*f31
 
93
     &                           + (vc(1)-      vc(4))*f42
 
94
     &                           + (vc(2)+ci*vc(3))*f41
 
95
     &                           + (vc(2)-ci*vc(3))*f32 )
 
96
 
 
97
      end if
 
98
c
 
99
      return
 
100
      end