~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to HELAS/httcxx.F

Added Template and HELAS into bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine httcxx(tc1,tc2,gc,mass,width,jsc)
 
2
c
 
3
c- by RF - Mar. 2006 
 
4
c  CP3  Modified Nov. 2009 
 
5
 
 
6
c This subroutine computes an off-shell scalar from the tts coupling.
 
7
c
 
8
c     input:
 
9
c          complex tc1(18)           : Incoming tensor particle
 
10
c          complex tc2(18)           : Incoming tensor particle
 
11
c          complex gc(2)             : coupling constant: gt(1) scalar
 
12
c                                                         gt(2) not used
 
13
c          real    mass              : mass of the outgoing scalar
 
14
c          real    width             : width of the outgoing scalar
 
15
c
 
16
c     output:
 
17
c          complex sc(3)             : Incoming scalar particle
 
18
c
 
19
c
 
20
 
 
21
      implicit none
 
22
c--   dimension of the current set to arbitrary length
 
23
c      INTEGER DIM
 
24
c      PARAMETER(DIM=18)
 
25
      include "dimension.inc"
 
26
      double complex tc1(DIM),tc2(DIM),jsc(DIM),T1(6,4),T2(6,4)
 
27
      double complex vertex,dj,gc(2)
 
28
      double precision mass,width,q2,q(4)
 
29
 
 
30
c Take the inner product between the tensor particles. The 
 
31
c Note that the tensor particle is antisymmetric, thus all diagonal terms
 
32
c are zero.
 
33
 
 
34
      T1(1,1) = tc1(1)
 
35
      T1(1,2) = tc1(2)
 
36
      T1(1,3) = tc1(3)
 
37
      T1(1,4) = tc1(4)
 
38
      T1(2,1) = tc1(5)
 
39
      T1(2,2) = tc1(6)
 
40
      T1(2,3) = tc1(7)
 
41
      T1(2,4) = tc1(8)
 
42
      T1(3,1) = tc1(9)
 
43
      T1(3,2) = tc1(10)
 
44
      T1(3,3) = tc1(11)
 
45
      T1(3,4) = tc1(12)
 
46
      T1(4,1) = tc1(13)
 
47
      T1(4,2) = tc1(14)
 
48
      T1(4,3) = tc1(15)
 
49
      T1(4,4) = tc1(16)
 
50
      T1(5,1) = tc1(17)
 
51
      T1(6,1) = tc1(18)
 
52
 
 
53
      T2(1,1) = tc2(1)
 
54
      T2(1,2) = tc2(2)
 
55
      T2(1,3) = tc2(3)
 
56
      T2(1,4) = tc2(4)
 
57
      T2(2,1) = tc2(5)
 
58
      T2(2,2) = tc2(6)
 
59
      T2(2,3) = tc2(7)
 
60
      T2(2,4) = tc2(8)
 
61
      T2(3,1) = tc2(9)
 
62
      T2(3,2) = tc2(10)
 
63
      T2(3,3) = tc2(11)
 
64
      T2(3,4) = tc2(12)
 
65
      T2(4,1) = tc2(13)
 
66
      T2(4,2) = tc2(14)
 
67
      T2(4,3) = tc2(15)
 
68
      T2(4,4) = tc2(16)
 
69
      T2(5,1) = tc2(17)
 
70
      T2(6,1) = tc2(18)
 
71
 
 
72
      jsc(2)=tc1(17)+tc2(17)
 
73
      jsc(3)=tc1(18)+tc2(18)
 
74
 
 
75
      if (gc(1).NE.(0D0,0D0)) then
 
76
 
 
77
      q(1) = -dble( jsc(2))
 
78
      q(2) = -dble( jsc(3))
 
79
      q(3) = -dimag(jsc(3))
 
80
      q(4) = -dimag(jsc(2))
 
81
 
 
82
      q2 = q(1)**2 - q(2)**2 - q(3)**2 - q(4)**2
 
83
 
 
84
      dj = -gc(1) /dcmplx( q2-mass**2, mass*width )
 
85
 
 
86
      jsc(1) = dj* ( T1(1,2)*T2(1,2) - T1(2,1)*T2(1,2) 
 
87
     -  + T1(1,3)*T2(1,3) - 
 
88
     -  T1(3,1)*T2(1,3) + T1(1,4)*T2(1,4) - T1(4,1)*T2(1,4) - 
 
89
     -  T1(1,2)*T2(2,1) + T1(2,1)*T2(2,1) - T1(2,3)*T2(2,3) + 
 
90
     -  T1(3,2)*T2(2,3) - T1(2,4)*T2(2,4) + T1(4,2)*T2(2,4) - 
 
91
     -  T1(1,3)*T2(3,1) + T1(3,1)*T2(3,1) + T1(2,3)*T2(3,2) - 
 
92
     -  T1(3,2)*T2(3,2) - T1(3,4)*T2(3,4) + T1(4,3)*T2(3,4) - 
 
93
     -  T1(1,4)*T2(4,1) + T1(4,1)*T2(4,1) + T1(2,4)*T2(4,2) - 
 
94
     -  T1(4,2)*T2(4,2) + T1(3,4)*T2(4,3) - T1(4,3)*T2(4,3)
 
95
     &                                           )
 
96
 
 
97
      else
 
98
         jsc( 1)=(0D0,0D0)
 
99
      endif
 
100
 
 
101
      return
 
102
      end