C++ Interface to Tauola
anomGamwt.f
1 this file is to print, not to load !
2  Subroutine dipolgamma(iqed, E, theta, A, B, R)
3  implicit none
4  real*8 amz0,gamz0,sin2w0,alphaqed,gswr(7),gswi(7)
5  integer iqed,channel,k,j,k0,j0
6  real*8 e,theta,a,b,xnor,thet, buf
7  real*8 r(1:4, 1:4),r0(1:4, 1:4),sign(4)
8 ! ReA0=0
9 ! ImA0=0
10 ! ReB=0
11 ! ImB=0
12 ! ReX=0
13 ! ImX=0
14 ! ReY=0
15 ! ImY=0
16  sign(1)=-1.0
17  sign(2)= 1.0
18  sign(3)=-1.0
19  sign(4)= 1.0
20  thet=acos(cos(theta))
21 
22  call dipolgammarij(iqed, e, theta, a, b, r0)
23 
24 
25 
26 ! rotation from q ~q --> tau- tau+ to ~q q --> tau+ tau- frames.
27 ! WARNING: we normalize R0, but x-section is set into R0(4,4).
28  xnor=r0(4,4)
29  do k=1,4
30  do j=1,4
31  r0(k,j)=r0(k,j)/xnor*sign(k)*sign(j)
32  enddo
33  enddo
34  r0(4,4)=xnor
35 
36  ! rotation in second index by angle pi/2 around z-axis
37  do k=1,4
38  do j=1,4
39  if(j.eq.1) then
40  buf=r0(k,2)
41  r0(k,2)=r0(k,j)
42  r0(k,1)=-buf
43  endif
44 
45  enddo
46  enddo
47 
48 ! rotation in first index by angle pi/2 around z-axis
49  do j=1,4
50  do k=1,4
51  if(k.eq.1) then
52  buf=r0(2,j)
53  r0(2,j)=r0(k,j)
54  r0(1,j)=-buf
55  endif
56 
57  enddo
58  enddo
59 
60 
61 ! shift order of entries from x,y,z,t to t,x,y,z (necessary for C++ conventions).
62  do k0=1,4
63  do j0=1,4
64  k=k0+1
65  j=j0+1
66  if(j.eq.5) j=1
67  if(k.eq.5) k=1
68  r(k,j)=r0(k0,j0)
69  enddo
70  enddo
71  ! if(R0(3,3)/R0(4,4).gt.1d0) then
72  ! write(*,*) "z fortranu thet=", thet," energy= ",energy, " Rzz=", R0(3,3)/R0(4,4)," ", R0(3,3)," ",R0(4,4)
73 
74  ! write(*,*) "iqed,Energy, thet, channel ",iqed,Energy, thet, channel
75  ! write(*,*) "Amz0,Gamz0,sin2W0,alphaQED ", Amz0,Gamz0,sin2W0,alphaQED
76  ! write(*,*) "ReA0, ImA0, ReB, ImB ", ReA0, ImA0, ReB, ImB
77  ! write(*,*) "ReX, ImX, ReY, ImY ", ReX, ImX, ReY, ImY
78  ! write(*,*) "GSWr ", GSWr
79  ! write(*,*) "GSWi ", GSWi
80  ! endif
81  ! IF(R(4,4)/R(1,1).gt.1.0) then
82  ! write(*,*) "==============",R(4,4)/R(1,1)
83  ! write(*,*) 'energuy,theta,channel= ',Energy,' ',cos(theta),' ',channel
84  ! do k=1,4
85  ! write(*,7) k, R(k,1)/R(1,1),R(k,2)/R(1,1),R(k,3)/R(1,1),R(k,4)/R(1,1)
86  ! enddo
87  ! endif
88 
89 
90  7 format(1x,i4, 4(2x,f12.6))
91 
92  end