~maddevelopers/mg5amcnlo/2.5.3

« back to all changes in this revision

Viewing changes to HELAS/uvvvxx.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 uvvvxx(va,vb,vc,gc,gt,tmass,twidth , uvvv)
2
 
c
3
 
c This subroutine computes an off-shell tensor current 
4
 
c from the four-point coupling of three gauge bosons and a tensor boson.
5
 
c
6
 
c input:
7
 
c       complex va(6)          : first  vector                        va
8
 
c       complex vb(6)          : second vector                        vb
9
 
c       complex vc(6)          : third  vector                        vc      
10
 
c       real gc                : coupling constant       gs (for gluons)
11
 
c       complex gt             : coupling constant         gtv=-1/Lambda
12
 
c       real tmass             : mass  of output tensor T
13
 
c       real twidth            : width of output tensor T 
14
 
c
15
 
c output:
16
 
c       complex uvvv(18)       : tensor current      j^mu^nu(T:va,vb,vc)
17
 
c
18
 
c- by Q.Li - OCT. 2006
19
 
c- Added massless tensor - P. de Aquino - Oct. 2009 
20
 
c     
21
 
      implicit none
22
 
      double complex va(6), vb(6), vc(6), gt, uvvv(18)
23
 
      double precision gc, tmass, twidth
24
 
 
25
 
      double complex yvvv(6,4)
26
 
      double precision MET(4,4)
27
 
      double complex d
28
 
      double complex V1V2,V1V3,V2V3,KTV1,KTV2,KTV3,
29
 
     &K12V3,K23V1,K31V2
30
 
      double precision KTK12,KTK31,KTK23 
31
 
 
32
 
      double precision pva(4), pvb(4), pvc(4),pt(4),
33
 
     &pt2,p31(4),p23(4),p12(4)
34
 
 
35
 
      integer i, j
36
 
 
37
 
      double complex cZero
38
 
      double precision rZero, r2, r3,r4
39
 
      parameter( rZero = 0.0d0, r2 = 2.0d0, r3=3.d0,r4=4.d0 )
40
 
      parameter( cZero = ( 0.0d0, 0.0d0 ) )
41
 
 
42
 
 
43
 
      yvvv(5,1) = va(5)+vb(5)+vc(5)
44
 
      yvvv(6,1) = va(6)+vb(6)+vc(6)
45
 
 
46
 
      pva(1) = dreal(va(5))
47
 
      pva(2) = dreal(va(6))
48
 
      pva(3) = dimag(va(6))
49
 
      pva(4) = dimag(va(5))
50
 
 
51
 
      pvb(1) = dreal(vb(5))
52
 
      pvb(2) = dreal(vb(6))
53
 
      pvb(3) = dimag(vb(6))
54
 
      pvb(4) = dimag(vb(5))
55
 
 
56
 
      pvc(1) = dreal(vc(5))
57
 
      pvc(2) = dreal(vc(6))
58
 
      pvc(3) = dimag(vc(6))
59
 
      pvc(4) = dimag(vc(5))
60
 
 
61
 
      pt(1) = dreal(yvvv(5,1))
62
 
      pt(2) = dreal(yvvv(6,1))
63
 
      pt(3) = dimag(yvvv(6,1))
64
 
      pt(4) = dimag(yvvv(5,1))
65
 
        
66
 
      pt2=pt(1)**2-pt(2)**2-pt(3)**2-pt(4)**2
67
 
      
68
 
      do i=1,4
69
 
         do j=1,4
70
 
            MET(i,j) = 0.0d0
71
 
         enddo 
72
 
      enddo
73
 
      MET(1,1) =  1.0d0
74
 
      MET(2,2) = -1.0d0
75
 
      MET(3,3) = -1.0d0
76
 
      MET(4,4) = -1.0d0
77
 
      
78
 
      p31(1) = pvc(1)-pva(1)
79
 
      p31(2) = pvc(2)-pva(2)
80
 
      p31(3) = pvc(3)-pva(3)
81
 
      p31(4) = pvc(4)-pva(4)
82
 
      
83
 
      p12(1) = pva(1)-pvb(1)
84
 
      p12(2) = pva(2)-pvb(2)
85
 
      p12(3) = pva(3)-pvb(3)
86
 
      p12(4) = pva(4)-pvb(4)
87
 
      
88
 
      p23(1) = pvb(1)-pvc(1)
89
 
      p23(2) = pvb(2)-pvc(2)
90
 
      p23(3) = pvb(3)-pvc(3)
91
 
      p23(4) = pvb(4)-pvc(4)
92
 
      
93
 
        
94
 
      V1V2 =  va(1)*vb(1) -  va(2)*vb(2) -  va(3)*vb(3) -  va(4)*vb(4)
95
 
      V1V3 =  va(1)*vc(1) -  va(2)*vc(2) -  va(3)*vc(3) -  va(4)*vc(4)
96
 
      V2V3 =  vc(1)*vb(1) -  vc(2)*vb(2) -  vc(3)*vb(3) -  vc(4)*vb(4)
97
 
      K31V2 = p31(1)*vb(1) - p31(2)*vb(2) - p31(3)*vb(3) - p31(4)*vb(4)
98
 
      K12V3 = p12(1)*vc(1) - p12(2)*vc(2) - p12(3)*vc(3) - p12(4)*vc(4)
99
 
      K23V1 = p23(1)*va(1) - p23(2)*va(2) - p23(3)*va(3) - p23(4)*va(4)
100
 
      
101
 
      KTV1 = pt(1)*va(1) - pt(2)*va(2) - pt(3)*va(3) - pt(4)*va(4)
102
 
      KTV2 = pt(1)*vb(1) - pt(2)*vb(2) - pt(3)*vb(3) - pt(4)*vb(4)
103
 
      KTV3 = pt(1)*vc(1) - pt(2)*vc(2) - pt(3)*vc(3) - pt(4)*vc(4)
104
 
      
105
 
      KTK12 =pt(1)*p12(1)-pt(2)*p12(2)-pt(3)*p12(3)-pt(4)*p12(4)
106
 
      KTK31 =pt(1)*p31(1)-pt(2)*p31(2)-pt(3)*p31(3)-pt(4)*p31(4)
107
 
      KTK23 =pt(1)*p23(1)-pt(2)*p23(2)-pt(3)*p23(3)-pt(4)*p23(4)
108
 
      
109
 
      if ( tmass.eq.rZero ) then
110
 
         d =  -gc/dcmplx( pt2, rZero )  
111
 
      
112
 
      do i=1,4
113
 
         do j=1,4
114
 
 
115
 
            yvvv(i,j) =  -(K12V3*V1V2*MET(i,j)) 
116
 
     &- K31V2*V1V3*MET(i,j) - K23V1*V2V3*MET(i,j)  
117
 
     &+ V2V3*p23(j)*va(i) + V2V3*p23(i)*va(j) 
118
 
     &+ V1V3*p31(j)*vb(i) + K12V3*va(j)*vb(i)  
119
 
     &+ V1V3*p31(i)*vb(j) + K12V3*va(i)*vb(j) 
120
 
     &+ V1V2*p12(j)*vc(i) + K31V2*va(j)*vc(i)  
121
 
     &+ K23V1*vb(j)*vc(i) + V1V2*p12(i)*vc(j) 
122
 
     &+ K31V2*va(i)*vc(j) + K23V1*vb(i)*vc(j)
123
 
        
124
 
            yvvv(i,j) = -yvvv(i,j)*d*gt
125
 
        
126
 
         enddo
127
 
      enddo
128
 
 
129
 
      else
130
 
         if ( tmass.gt.rZero ) then
131
 
            d =  -gc/dcmplx( pt2-tmass**2, tmass*twidth )
132
 
 
133
 
         do i=1,4
134
 
            do j=1,4
135
 
 
136
 
              yvvv(i,j) = (r2*K12V3*KTV1*KTV2*r2*MET(i,j))/(r3*tmass**2)
137
 
     &   + (r2*K31V2*KTV1*KTV3*r2*MET(i,j))/(r3*tmass**2) + 
138
 
     &  (r2*K23V1*KTV2*KTV3*r2*MET(i,j))/(r3*tmass**2) 
139
 
     &- r2*K12V3*V1V2*MET(i,j) + 
140
 
     &  (r2*KTK12*KTV3*r2*V1V2*MET(i,j))/(r3*tmass**2) 
141
 
     &- (K12V3*pt2*r2*V1V2*MET(i,j))/(r3*tmass**2) - 
142
 
     &  r2*K31V2*V1V3*MET(i,j)
143
 
     & + (r2*KTK31*KTV2*r2*V1V3*MET(i,j))/(r3*tmass**2) - 
144
 
     &  (K31V2*pt2*r2*V1V3*MET(i,j))/(r3*tmass**2) 
145
 
     &- r2*K23V1*V2V3*MET(i,j) + 
146
 
     &  (r2*KTK23*KTV1*r2*V2V3*MET(i,j))/(r3*tmass**2)
147
 
     & - (K23V1*pt2*r2*V2V3*MET(i,j))/(r3*tmass**2) - 
148
 
     &  (r2*KTV3*V1V2*p12(j)*pt(i))/tmass**2 
149
 
     &- (r2*KTV1*V2V3*p23(j)*pt(i))/tmass**2 
150
 
     &- (r2*KTV2*V1V3*p31(j)*pt(i))/tmass**2 - 
151
 
     &  (r2*KTV3*V1V2*p12(i)*pt(j))/tmass**2
152
 
     & - (r2*KTV1*V2V3*p23(i)*pt(j))/tmass**2 
153
 
     &- (r2*KTV2*V1V3*p31(i)*pt(j))/tmass**2 + 
154
 
     &  (r4*K12V3*KTV1*KTV2*pt(i)*pt(j))/tmass**4
155
 
     & + (r4*K31V2*KTV1*KTV3*pt(i)*pt(j))/tmass**4 + 
156
 
     &  (r4*K23V1*KTV2*KTV3*pt(i)*pt(j))/tmass**4 
157
 
     &- (r2*K12V3*KTV1*KTV2*r2*pt(i)*pt(j))/(r3*tmass**4) - 
158
 
     &  (r2*K31V2*KTV1*KTV3*r2*pt(i)*pt(j))/(r3*tmass**4)
159
 
     & - (r2*K23V1*KTV2*KTV3*r2*pt(i)*pt(j))/(r3*tmass**4) + 
160
 
     &  (r4*KTK12*KTV3*V1V2*pt(i)*pt(j))/tmass**4 
161
 
     &- (r2*K12V3*pt2*V1V2*pt(i)*pt(j))/tmass**4 - 
162
 
     &  (r2*KTK12*KTV3*r2*V1V2*pt(i)*pt(j))/(r3*tmass**4)
163
 
     & + (K12V3*pt2*r2*V1V2*pt(i)*pt(j))/(r3*tmass**4) + 
164
 
     &  (r4*K12V3*V1V2*pt(i)*pt(j))/tmass**2 
165
 
     &+ (r4*KTK31*KTV2*V1V3*pt(i)*pt(j))/tmass**4 - 
166
 
     &  (r2*K31V2*pt2*V1V3*pt(i)*pt(j))/tmass**4
167
 
     & - (r2*KTK31*KTV2*r2*V1V3*pt(i)*pt(j))/(r3*tmass**4) + 
168
 
     &  (K31V2*pt2*r2*V1V3*pt(i)*pt(j))/(r3*tmass**4)
169
 
     & + (r4*K31V2*V1V3*pt(i)*pt(j))/tmass**2 + 
170
 
     &  (r4*KTK23*KTV1*V2V3*pt(i)*pt(j))/tmass**4
171
 
     & - (r2*K23V1*pt2*V2V3*pt(i)*pt(j))/tmass**4 - 
172
 
     &  (r2*KTK23*KTV1*r2*V2V3*pt(i)*pt(j))/(r3*tmass**4)
173
 
     & + (K23V1*pt2*r2*V2V3*pt(i)*pt(j))/(r3*tmass**4) + 
174
 
     &  (r4*K23V1*V2V3*pt(i)*pt(j))/tmass**2 
175
 
     &+ r2*V2V3*p23(j)*va(i) - (r2*K12V3*KTV2*pt(j)*va(i))/tmass**2 - 
176
 
     &  (r2*K31V2*KTV3*pt(j)*va(i))/tmass**2 
177
 
     &- (r2*KTK23*V2V3*pt(j)*va(i))/tmass**2 + 2*V2V3*p23(i)*va(j) - 
178
 
     &  (r2*K12V3*KTV2*pt(i)*va(j))/tmass**2 
179
 
     &- (r2*K31V2*KTV3*pt(i)*va(j))/tmass**2 
180
 
     &- (r2*KTK23*V2V3*pt(i)*va(j))/tmass**2 + 
181
 
     &  r2*V1V3*p31(j)*vb(i) - (r2*K12V3*KTV1*pt(j)*vb(i))/tmass**2 
182
 
     &- (r2*K23V1*KTV3*pt(j)*vb(i))/tmass**2 - 
183
 
     &  (r2*KTK31*V1V3*pt(j)*vb(i))/tmass**2 
184
 
     &+ r2*K12V3*va(j)*vb(i) + r2*V1V3*p31(i)*vb(j)
185
 
     & - (r2*K12V3*KTV1*pt(i)*vb(j))/tmass**2 - 
186
 
     &  (r2*K23V1*KTV3*pt(i)*vb(j))/tmass**2 
187
 
     &- (r2*KTK31*V1V3*pt(i)*vb(j))/tmass**2 
188
 
     &+ r2*K12V3*va(i)*vb(j) + r2*V1V2*p12(j)*vc(i) - 
189
 
     &  (r2*K31V2*KTV1*pt(j)*vc(i))/tmass**2 
190
 
     &- (r2*K23V1*KTV2*pt(j)*vc(i))/tmass**2 
191
 
     &- (r2*KTK12*V1V2*pt(j)*vc(i))/tmass**2 + 
192
 
     &  r2*K31V2*va(j)*vc(i) + r2*K23V1*vb(j)*vc(i) 
193
 
     &+ r2*V1V2*p12(i)*vc(j) - (r2*K31V2*KTV1*pt(i)*vc(j))/tmass**2 - 
194
 
     &  (r2*K23V1*KTV2*pt(i)*vc(j))/tmass**2
195
 
     & - (r2*KTK12*V1V2*pt(i)*vc(j))/tmass**2
196
 
     & + r2*K31V2*va(i)*vc(j) + r2*K23V1*vb(i)*vc(j)
197
 
        
198
 
              yvvv(i,j) = -yvvv(i,j)*d/2.0d0*gt
199
 
        
200
 
            enddo
201
 
         enddo
202
 
         else
203
 
            write(*,*) '�nvalid tensor mass'
204
 
         end if
205
 
      end if
206
 
      
207
 
      uvvv(1) = yvvv(1,1)
208
 
      uvvv(2) = yvvv(1,2)
209
 
      uvvv(3) = yvvv(1,3)
210
 
      uvvv(4) = yvvv(1,4)
211
 
      uvvv(5) = yvvv(2,1)
212
 
      uvvv(6) = yvvv(2,2)
213
 
      uvvv(7) = yvvv(2,3)
214
 
      uvvv(8) = yvvv(2,4)
215
 
      uvvv(9) = yvvv(3,1)
216
 
      uvvv(10) = yvvv(3,2)
217
 
      uvvv(11) = yvvv(3,3)
218
 
      uvvv(12) = yvvv(3,4)
219
 
      uvvv(13) = yvvv(4,1)
220
 
      uvvv(14) = yvvv(4,2)
221
 
      uvvv(15) = yvvv(4,3)
222
 
      uvvv(16) = yvvv(4,4)
223
 
      uvvv(17) = yvvv(5,1)
224
 
      uvvv(18) = yvvv(6,1)
225
 
 
226
 
      return
227
 
      end