~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to HELAS/hiogld.f

Added Template and HELAS into bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
c
 
2
c ----------------------------------------------------------------------
 
3
c
 
4
      subroutine hiogld(fi,fo,gc,smass,swidth,mNLSP,idecay , hio)
 
5
c
 
6
c This subroutine computes an off-shell scalar current for the NLSP-
 
7
c Goldstino vertex from the external fermion pair. The h.c. of the NLSP
 
8
c decay is handled via the input parameter idecay.
 
9
c
 
10
c input:
 
11
c       complex fi(6)          : flow-in  fermion                   |fi>
 
12
c       complex fo(6)          : flow-out fermion                   <fo|
 
13
c       complex gc(2)          : coupling constants                  gsf
 
14
c       real    smass          : mass  of output scalar s
 
15
c       real    swidth         : width of output scalar s
 
16
c       real    mNLSP          : mass of NLSP
 
17
c       integer idecay         :  1 for NLSP decay to Goldstino
 
18
c                              : -1 for Goldstino to NLSP (h.c. of above)
 
19
c
 
20
c output:
 
21
c       complex hio(3)         : scalar current          j^mu(<fo|s|fi>)
 
22
c
 
23
      implicit none
 
24
      double complex fi(6), fo(6), gc(2), hio(3)
 
25
      double complex dn, p14p, p14m, p23p, p23m
 
26
      double precision q(0:3), smass, swidth, mNLSP, q2
 
27
      double precision pG(1:4)
 
28
      integer idecay
 
29
 
 
30
      double complex ci, cZero
 
31
      parameter( ci = ( 0.0d0, 1.0d0 ), cZero = ( 0.0d0, 0.0d0 ) )
 
32
c
 
33
      hio(2) = -fi(5) + fo(5)
 
34
      hio(3) = -fi(6) + fo(6)
 
35
 
 
36
      if ( idecay.ne.1 .or. idecay.ne.-1 ) then
 
37
         write(6,*) 'error in idecay of HIOGLD'
 
38
         stop
 
39
      end if
 
40
 
 
41
      q(0) = dble( hio(2))
 
42
      q(1) = dble( hio(3))
 
43
      q(2) = dimag(hio(3))
 
44
      q(3) = dimag(hio(2))
 
45
      q2 = q(0)**2 - q(1)**2 - q(2)**2 - q(3)**2
 
46
 
 
47
      p14p = q(0) + q(3)
 
48
      p14m = q(0) - q(3)
 
49
      p23p = q(1) + q(2)*ci
 
50
      p23m = q(1) - q(2)*ci
 
51
 
 
52
      dn = -dcmplx( q2-smass**2, smass*swidth )
 
53
 
 
54
      hio(1) = gc(1)*( ( ( fo(3)*p14p + fo(4)*p23p )*fi(1)
 
55
     &                  +( fo(3)*p23m + fo(4)*p14m )*fi(2) )*mNLSP
 
56
     &                -( fo(1)*fi(1) + fo(2)*fi(2) )*idecay*smass**2 )
 
57
 
 
58
      if ( gc(2).ne.cZero ) then
 
59
         hio(1) = hio(1) + gc(2) *
 
60
     &            ( ( ( fo(1)*p14m - fo(2)*p23p )*fi(3)
 
61
     &               -( fo(1)*p23m - fo(2)*p14p )*fi(4) )*mNLSP
 
62
     &             -( fo(3)*fi(3) + fo(4)*fi(4) )*idecay*smass**2 )
 
63
      end if
 
64
 
 
65
      hio(1) = hio(1)/dn
 
66
c
 
67
      return
 
68
      end