~maddevelopers/mg5amcnlo/simple_unlops

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
      subroutine ftoxkk(fo,tc,g,fmass,fwidth , fto)
c
c This subroutine computes an off-shell fermion wavefunction from a
c flowing-OUT external fermion and a KK tensor boson.
c
c input:
c       complex fo(6)          : flow-out fermion                   <fo|
c       complex tc(6,4)        : input    tensor                      t
c       real    g              : coupling constant                   gtf
c       real    fmass          : mass  of OUTPUT fermion f'
c       real    fwidth         : width of OUTPUT fermion f'
c
c output:
c       complex fvo(6)         : off-shell fermion             <fo,t,f'|
c
      implicit none
      double complex fo(6), tc(6,4), fto(6), d
      double complex k14p, k14m, k23, k23s, p14p, p14m
      double complex D1, D2, D3, D4, Tii, mTii
      double complex T11, T22, T33, T44, T12, T13, T14, T23, T24, T34
      double precision g, fmass, fwidth, pf(4), k(4), pf2, m2
      integer i

      double precision rZero, rTwo
      parameter( rZero = 0.0d0, rTwo = 2.0d0 )
      double complex ci
      parameter( ci = ( 0.0d0, 1.0d0 ) )
c
      m2 = rTwo*fmass

      fto(5) = fo(5) + tc(5,1)
      fto(6) = fo(6) + tc(6,1)

      pf(1) = dreal(fto(5))
      pf(2) = dreal(fto(6))
      pf(3) = dimag(fto(6))
      pf(4) = dimag(fto(5))
      pf2 = pf(1)**2 - pf(2)**2 - pf(3)**2 - pf(4)**2

      k(1) = dreal(fo(5)) + pf(1)
      k(2) = dreal(fo(6)) + pf(2)
      k(3) = dimag(fo(6)) + pf(3)
      k(4) = dimag(fo(5)) + pf(4)

      k14p = dcmplx( k(1)+k(4), rZero )
      k14m = dcmplx( k(1)-k(4), rZero )
      k23  = dcmplx( k(2), k(3) )
      k23s = dconjg( k23 )
      p14p = dcmplx( pf(1)+pf(4), rZero )
      p14m = dcmplx( pf(1)-pf(4), rZero )

      T11 = rTwo*tc(1,1)
      T22 = rTwo*tc(2,2)
      T33 = rTwo*tc(3,3)
      T44 = rTwo*tc(4,4)
      T12 = tc(1,2) + tc(2,1)
      T13 = tc(1,3) + tc(3,1)
      T14 = tc(1,4) + tc(4,1)
      T23 = tc(2,3) + tc(3,2)
      T24 = tc(2,4) + tc(4,2)
      T34 = tc(3,4) + tc(4,3)

      D1 =   k(1)*(T11-T14) + k(2)*(T24-T12)
     &     + k(3)*(T34-T13) + k(4)*(T44-T14)

      D2 =   k(1)*(ci*T13-T12) + k(2)*(T22-ci*T23)
     &     + k(3)*(T23-ci*T33) + k(4)*(T24-ci*T34)

      D3 = - k(1)*(T12+ci*T13) + k(2)*(T22+ci*T23)
     &     + k(3)*(T23+ci*T33) + k(4)*(T24+ci*T34)

      D4 =   k(1)*(T11+T14) - k(2)*(T12+T24)
     &     - k(3)*(T13+T34) - k(4)*(T14+T44)

      Tii  = 16.d0*(T11 - T22 - T33 - T44)
      mTii = fmass*Tii

      if ( fmass.gt.rZero ) then
         d = - g/dcmplx( pf2-fmass**2, fmass*fwidth )
      else
         d = - g/dcmplx( pf2, rZero )
      end if

      fto(1) =   fo(1)*(p14p*D1 + fto(6)*D2)
     &         + fo(2)*(p14p*D3 + fto(6)*D4)
     &         + Tii*(- fo(1)*(p14p*k14m - fto(6)*k23s)
     &                + fo(2)*(p14p*k23  - fto(6)*k14p) )

      fto(2) =   fo(1)*(dconjg(fto(6))*D1 + p14m*D2)
     &         + fo(2)*(dconjg(fto(6))*D3 + p14m*D4)
     &         + Tii*(  fo(1)*(p14m*k23s - dconjg(fto(6))*k14m)
     &                - fo(2)*(p14m*k14p - dconjg(fto(6))*k23 ) )

      fto(3) =   fo(3)*(p14m*D4 + fto(6)*D2)
     &         + fo(4)*(p14m*D3 - fto(6)*D1)
     &         + Tii*(  fo(3)*(fto(6)*k23s - p14m*k14p)
     &                + fo(4)*(fto(6)*k14m - p14m*k23 ) )

      fto(4) = - fo(3)*(dconjg(fto(6))*D4 + p14p*D2)
     &         + fo(4)*(dconjg(fto(6))*D3 - p14p*D1)
     &         + Tii*(  fo(3)*(dconjg(fto(6))*k14p - p14p*k23s)
     &                + fo(4)*(dconjg(fto(6))*k23  - p14p*k14m) )

      if ( fmass.gt.rZero ) then
         fto(1) = fto(1) + fmass*( D4*fo(3) - D3*fo(4) )
         fto(2) = fto(2) + fmass*(-D2*fo(3) + D1*fo(4) )
         fto(3) = fto(3) + fmass*( D1*fo(1) + D3*fo(2) )
         fto(4) = fto(4) + fmass*( D2*fo(1) + D4*fo(2) )
         do i = 1,4
            fto(i) = fto(i) + mTii*m2*fo(i)
         end do
         fto(1) = fto(1) + mTii*(  fo(3)*(rTwo*p14p - k14p)
     &                           + fo(4)*(rTwo*fto(6) - k23) )
         fto(2) = fto(2) + mTii*(  fo(3)*(rTwo*dconjg(fto(6)) - k23s)
     &                           + fo(4)*(rTwo*p14m - k14m) )
         fto(3) = fto(3) + mTii*(  fo(1)*(rTwo*p14m - k14m)
     &                           + fo(2)*(k23 - rTwo*fto(6)) )
         fto(4) = fto(4) + mTii*(  fo(1)*(k23s - rTwo*dconjg(fto(6)))
     &                           + fo(2)*(rTwo*p14p - k14p) )
      end if

      do i = 1,4
         fto(i) = fto(i)*d
      end do
c
      return
      end