~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to HELAS/fsocxx.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 fsocxx(foc,sc,gc,fmass,fwidth , fsoc)
 
5
c
 
6
c this subroutine computes an off-shell antifermion wavefunction from a 
 
7
c flowing-out external antifermion and a vector boson.                  
 
8
c                                                                       
 
9
c input:                                                                
 
10
c       complex foc(6)         : flow-out fermion               <foc|
 
11
c       complex sc(6)          : input    scalar                   s 
 
12
c       complex gc(2)          : coupling constants              gchf
 
13
c       real     fmass         : mass  of output antifermion fc'     
 
14
c       real     fwidth        : width of output antifermion fc'     
 
15
c                                                                       
 
16
c output:                                                               
 
17
c       complex fsoc(6)        : off-shell fermion         <fo,s,fc'|
 
18
c
 
19
      implicit none
 
20
      double complex foc(6),sc(6),fsoc(6),gc(2),sl1,sl2,sr1,sr2,ds
 
21
      double precision pf(0:3),fmass,fwidth,pf2,p0p3,p0m3
 
22
c
 
23
      fsoc(5) = foc(5)+sc(2)
 
24
      fsoc(6) = foc(6)+sc(3)
 
25
 
 
26
      pf(0) = dble( fsoc(5))
 
27
      pf(1) = dble( fsoc(6))
 
28
      pf(2) = dimag(fsoc(6))
 
29
      pf(3) = dimag(fsoc(5))
 
30
      pf2 = pf(0)**2-(pf(1)**2+pf(2)**2+pf(3)**2)
 
31
 
 
32
      ds = -sc(1)/dcmplx( pf2-fmass**2, fmass*fwidth )
 
33
      p0p3 = pf(0)+pf(3)
 
34
      p0m3 = pf(0)-pf(3)
 
35
      sl1 = gc(2)*(p0p3*foc(3)       +fsoc(6) *foc(4))
 
36
      sl2 = gc(2)*(p0m3*foc(4)+dconjg(fsoc(6))*foc(3))
 
37
      sr1 = gc(1)*(p0m3*foc(1)       -fsoc(6) *foc(2))
 
38
      sr2 = gc(1)*(p0p3*foc(2)-dconjg(fsoc(6))*foc(1))
 
39
 
 
40
      fsoc(1) = ( gc(1)*fmass*foc(1) + sl1 )*ds
 
41
      fsoc(2) = ( gc(1)*fmass*foc(2) + sl2 )*ds
 
42
      fsoc(3) = ( gc(2)*fmass*foc(3) + sr1 )*ds
 
43
      fsoc(4) = ( gc(2)*fmass*foc(4) + sr2 )*ds
 
44
c
 
45
      return
 
46
      end