~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to HELAS/uvvvxx.F

Added Template and HELAS into bzr

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