~maddevelopers/mg5amcnlo/2.5.3

« back to all changes in this revision

Viewing changes to HELAS/jvtxxx.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 jvtxxx(vc,tc,gt,vmass,vwidth , jvt)
2
 
c
3
 
c This subroutine computes an off-shell vector current from 
4
 
c the coupling of two gauge bosons and a tensor boson.
5
 
c
6
 
c input:
7
 
c       complex vc(6)          : input vector                          v
8
 
c       complex tc(18)         : input tensor                          T
9
 
c       complex gt             : coupling constant         gtv=-1/Lambda
10
 
c       real    vmass          : mass  of output vector v'
11
 
c       real    vwidth         : width of output vector v'
12
 
c
13
 
c output:
14
 
c       complex jvt(6)         : vector current             j^mu(v':v,T)
15
 
c     
16
 
c- by Q.Li - OCT. 2006
17
 
c
18
 
      implicit none
19
 
      double complex vc(6), tc(18), gt, jvt(6)
20
 
      double precision vmass, vwidth
21
 
 
22
 
      double complex ft(6,4),TVM(4),TKM(4)
23
 
      double precision MET(4,4)
24
 
      double complex T12, T13, T14, T23, T24, T34, T00
25
 
      double complex K2V1,K1V1
26
 
      double complex TKK,TK2V1, dum
27
 
      double precision pv1(4), pv2(4), F, pp2
28
 
 
29
 
      integer i, j
30
 
 
31
 
      double complex cZero
32
 
      double precision rZero, rTwo
33
 
      parameter( rZero = 0.0d0, rTwo = 2.0d0 )
34
 
      parameter( cZero = ( 0.0d0, 0.0d0 ) )
35
 
 
36
 
 
37
 
      ft(1,1) = tc(1)
38
 
      ft(1,2) = tc(2)
39
 
      ft(1,3) = tc(3)
40
 
      ft(1,4) = tc(4)
41
 
      ft(2,1) = tc(5)
42
 
      ft(2,2) = tc(6)
43
 
      ft(2,3) = tc(7)
44
 
      ft(2,4) = tc(8)
45
 
      ft(3,1) = tc(9)
46
 
      ft(3,2) = tc(10)
47
 
      ft(3,3) = tc(11)
48
 
      ft(3,4) = tc(12)
49
 
      ft(4,1) = tc(13)
50
 
      ft(4,2) = tc(14)
51
 
      ft(4,3) = tc(15)
52
 
      ft(4,4) = tc(16)
53
 
      ft(5,1) = tc(17)
54
 
      ft(6,1) = tc(18)
55
 
 
56
 
      jvt(5) = vc(5)+ft(5,1)
57
 
      jvt(6) = vc(6)+ft(6,1)
58
 
 
59
 
      pv1(1) = -dreal(vc(5))
60
 
      pv1(2) = -dreal(vc(6))
61
 
      pv1(3) = -dimag(vc(6))
62
 
      pv1(4) = -dimag(vc(5))
63
 
 
64
 
      pv2(1) = dreal(jvt(5))
65
 
      pv2(2) = dreal(jvt(6))
66
 
      pv2(3) = dimag(jvt(6))
67
 
      pv2(4) = dimag(jvt(5))
68
 
 
69
 
      do i=1,4
70
 
         do j=1,4
71
 
            MET(i,j) = 0.0d0
72
 
         enddo 
73
 
      enddo
74
 
      MET(1,1) =  1.0d0
75
 
      MET(2,2) = -1.0d0
76
 
      MET(3,3) = -1.0d0
77
 
      MET(4,4) = -1.0d0
78
 
      
79
 
      T00 = ft(1,1)-ft(2,2)-ft(3,3)-ft(4,4)
80
 
      T12 = ft(1,2) + ft(2,1)
81
 
      T13 = ft(1,3) + ft(3,1)
82
 
      T14 = ft(1,4) + ft(4,1)
83
 
      T23 = ft(2,3) + ft(3,2)
84
 
      T24 = ft(2,4) + ft(4,2)
85
 
      T34 = ft(3,4) + ft(4,3)
86
 
 
87
 
      K2V1 = pv2(1)*vc(1) - pv2(2)*vc(2) - pv2(3)*vc(3) - pv2(4)*vc(4)
88
 
      K1V1 = pv1(1)*vc(1) - pv1(2)*vc(2) - pv1(3)*vc(3) - pv1(4)*vc(4)
89
 
      F = pv1(1)*pv2(1) - pv1(2)*pv2(2) - pv1(3)*pv2(3) - pv1(4)*pv2(4)
90
 
      pp2 = pv2(1)**2 - pv2(2)**2 - pv2(3)**2 - pv2(4)**2
91
 
 
92
 
      TKK   = cZero
93
 
      TK2V1 = cZero
94
 
 
95
 
      do i = 1,4
96
 
         dum   = ft(i,i)*pv2(i)
97
 
         TKK   = TKK   + dum*pv1(i)
98
 
         dum   = ft(i,i)*vc(i)
99
 
         TK2V1 = TK2V1 + dum*pv2(i)
100
 
      end do
101
 
      
102
 
      TKK   = rTwo*TKK
103
 
      TK2V1 = rTwo*TK2V1
104
 
      
105
 
      TKK = TKK - T12*(pv1(1)*pv2(2) + pv1(2)*pv2(1))
106
 
     &          - T13*(pv1(1)*pv2(3) + pv1(3)*pv2(1))
107
 
     &          - T14*(pv1(1)*pv2(4) + pv1(4)*pv2(1))
108
 
     &          + T23*(pv1(2)*pv2(3) + pv1(3)*pv2(2))
109
 
     &          + T24*(pv1(2)*pv2(4) + pv1(4)*pv2(2))
110
 
     &          + T34*(pv1(3)*pv2(4) + pv1(4)*pv2(3))
111
 
 
112
 
      TK2V1 = TK2V1 - T12*(vc(1)*pv2(2) + vc(2)*pv2(1))
113
 
     &              - T13*(vc(1)*pv2(3) + vc(3)*pv2(1))
114
 
     &              - T14*(vc(1)*pv2(4) + vc(4)*pv2(1))
115
 
     &              + T23*(vc(2)*pv2(3) + vc(3)*pv2(2))
116
 
     &              + T24*(vc(2)*pv2(4) + vc(4)*pv2(2))
117
 
     &              + T34*(vc(3)*pv2(4) + vc(4)*pv2(3))
118
 
 
119
 
 
120
 
      do j=1,4
121
 
 
122
 
         TVM(j) =
123
 
     &MET(j,1)*(ft(1,1)*vc(1)-ft(2,1)*vc(2)
124
 
     &-ft(3,1)*vc(3)-ft(4,1)*vc(4))
125
 
     &-MET(j,2)*(ft(1,2)*vc(1)-ft(2,2)*vc(2)
126
 
     &-ft(3,2)*vc(3)-ft(4,2)*vc(4))
127
 
     &-MET(j,3)*(ft(1,3)*vc(1)-ft(2,3)*vc(2)
128
 
     &-ft(3,3)*vc(3)-ft(4,3)*vc(4))
129
 
     &-MET(j,4)*(ft(1,4)*vc(1)-ft(2,4)*vc(2)
130
 
     &-ft(3,4)*vc(3)-ft(4,4)*vc(4))
131
 
     &+
132
 
     &MET(j,1)*(ft(1,1)*vc(1)-ft(1,2)*vc(2)
133
 
     &-ft(1,3)*vc(3)-ft(1,4)*vc(4))
134
 
     &-MET(j,2)*(ft(2,1)*vc(1)-ft(2,2)*vc(2)
135
 
     &-ft(2,3)*vc(3)-ft(2,4)*vc(4))
136
 
     &-MET(j,3)*(ft(3,1)*vc(1)-ft(3,2)*vc(2)
137
 
     &-ft(3,3)*vc(3)-ft(3,4)*vc(4))
138
 
     &-MET(j,4)*(ft(4,1)*vc(1)-ft(4,2)*vc(2)
139
 
     &-ft(4,3)*vc(3)-ft(4,4)*vc(4))
140
 
 
141
 
         TKM(j) =
142
 
     &MET(j,1)*(ft(1,1)*pv1(1)-ft(2,1)*pv1(2)
143
 
     &-ft(3,1)*pv1(3)-ft(4,1)*pv1(4))
144
 
     &-MET(j,2)*(ft(1,2)*pv1(1)-ft(2,2)*pv1(2)
145
 
     &-ft(3,2)*pv1(3)-ft(4,2)*pv1(4))
146
 
     &-MET(j,3)*(ft(1,3)*pv1(1)-ft(2,3)*pv1(2)
147
 
     &-ft(3,3)*pv1(3)-ft(4,3)*pv1(4))
148
 
     &-MET(j,4)*(ft(1,4)*pv1(1)-ft(2,4)*pv1(2)
149
 
     &-ft(3,4)*pv1(3)-ft(4,4)*pv1(4))
150
 
     &+
151
 
     &MET(j,1)*(ft(1,1)*pv1(1)-ft(1,2)*pv1(2)
152
 
     &-ft(1,3)*pv1(3)-ft(1,4)*pv1(4))
153
 
     &-MET(j,2)*(ft(2,1)*pv1(1)-ft(2,2)*pv1(2)
154
 
     &-ft(2,3)*pv1(3)-ft(2,4)*pv1(4))
155
 
     &-MET(j,3)*(ft(3,1)*pv1(1)-ft(3,2)*pv1(2)
156
 
     &-ft(3,3)*pv1(3)-ft(3,4)*pv1(4))
157
 
     &-MET(j,4)*(ft(4,1)*pv1(1)-ft(4,2)*pv1(2)
158
 
     &-ft(4,3)*pv1(3)-ft(4,4)*pv1(4))
159
 
     
160
 
      enddo
161
 
 
162
 
      if ( vmass.ne.rZero ) then
163
 
 
164
 
         do i=1,4
165
 
 
166
 
            jvt(i) = -(vmass**2+F)*T00*vc(i)
167
 
     &+T00*K2V1*(pv1(i)+(1.0d0+F/vmass**2)*pv2(i)
168
 
     &-F/vmass**2*pv2(i))
169
 
     &+(vmass**2+F)*TVM(i)
170
 
     &-TK2V1*pv1(i)
171
 
     &-TK2V1*pv2(i)*(1.0d0+F/vmass**2)
172
 
     &+TKK*vc(i)
173
 
     &-K2V1*TKM(i)
174
 
     &+F/vmass**2*TK2V1*pv2(i)
175
 
         
176
 
            jvt(i)=jvt(i)*gt/dcmplx(pp2-vmass**2, vmass*vwidth )
177
 
 
178
 
         enddo
179
 
 
180
 
      else
181
 
        
182
 
         do i=1,4
183
 
 
184
 
            jvt(i) = -F*T00*vc(i)
185
 
     &+K1V1*T00*(pv1(i)+pv2(i))
186
 
     &+T00*K2V1*(pv1(i)+pv2(i))
187
 
     &+F*TVM(i)
188
 
     &-TK2V1*(pv1(i)+pv2(i))
189
 
     &+TKK*vc(i)
190
 
     &-(K2V1+K1V1)*TKM(i)
191
 
  
192
 
            jvt(i)=jvt(i)*gt/dcmplx(pp2, 0.0d0)
193
 
            
194
 
         enddo
195
 
 
196
 
         
197
 
      endif
198
 
 
199
 
      return
200
 
      end