C Copy of Tito's file to compute coeffs for c physics asymmetry, but this version for hydrogen c (so much simpler). cc Jul04: EJB, set up for G0 kinematics rather than for SAMPLE ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Input parameters: Beam energy (GeV) c GAe c GMs c c RA(T=1) = -0.227 ! Zhu et al (MS-bar) c RA(T=0) = 0.07 c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc program aphys_lh2_g0 Implicit NONE real energy, GAe, GMs, GEs, Aphystot, q2 integer i energy = 3.03 GMs = 0. GEs = 0. GAe = 0. c gratuitous nested subroutine leftover from old code. call get_aphystot(energy, GEs, GMs, GAe, Aphystot) c write(*,*)q2, Aphystot End ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc subroutine get_aphystot(energy, GEs, GMs, GAe, Aphystot) Implicit NONE real energy, GAe, GMs, GEs real d1, d2, d3 real q2 real Ah0, Ah1, Ah2, Ah3, asym_nos real Aphystot real c1, c2, c3 real GAz real GA0, MA2, RA1 parameter (GA0=1.2670E0) parameter (MA2 = 1.0E0) parameter (RA1=-0.227) integer i do q2=0.1,1.0,0.05 c 1=coeff in front of GEs c 2 GMs c 3 GAe d1=1. d2=0. d3=0. call get_Ap(energy, q2, d1, d2, d3, Ah1) d1=0. d2=1. d3=0. call get_Ap(energy, q2, d1, d2, d3, Ah2) d1=0. d2=0. d3=1. call get_Ap(energy, q2, d1, d2, d3, Ah3) d1=0. d2=0. d3=0. call get_Ap(energy, q2, d1, d2, d3, Ah0) c write(*,110)q2, ah0, ah1, ah2, ah3 c1 = ah1 - ah0 c2 = ah2 - ah0 c3 = ah3 - ah0 c write(*,110) q2, ah0, c1, c2, c3 c If GAe calc. uncommented below and GAs = 0, then c asym_nos is sum of ah0 and ah3 c GAz = GA0/(1.+Q2/MA2)**2. GAe = -GAz*(1+RA1) asym_nos = ah0 + c3*GAe write(*,111) q2, ah0, c1, c2, c3, asym_nos enddo 110 format(5(1x,f8.3)) 111 format(6(1x,f8.3)) 1212 format(1x,5(1x,0pf9.4)) return End cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c elastic scattering c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc subroutine get_Ap(energy,Q2, GEs, GMs, GAe, Ap) Implicit NONE real energy, GAe, GMs, GEs, Ap real Q2, mp, ee, ep, th real sth2, thetae, sth real aa, ae, am, aden real epsilon, epsilonp, tau real GEp, GMp, GEn, GMn, GEZp, GMZp, GEZn, GMZn real GAz, GAs, GAZp, GAZn real GEp0, GMp0, GEn0, GMn0 real GA0 real RVp, RVn, RVs, RA0, GAs0, RA1 real MV2, MA2 real GF, alpha real s2w, hbarc2 parameter (mp=938.272E-3) parameter (GF=1.166E-5) parameter (alpha=7.29735E-3) parameter (GEp0=1.0E0, GMp0=2.79E0, GEn0=0.0E0, GMn0=-1.91E0) parameter (GA0=1.2670E0) c parameter (GAs = -0.1) parameter (GAs = 1.0) c parameter (GAs = 0.) parameter (RVp=-0.054e0, RVn=-0.0143E0, RVs =0.0E0) parameter (RA0=0.03E0) parameter (RA1=-0.227) parameter (MV2=0.711e0, MA2 = 1.0E0) parameter (s2w=0.23113E0, hbarc2 = .389379E6) real pi parameter (pi=3.14159265358979E0) integer i c Energy in GeV ee = energy ep = ee - q2/2/mp sth2=q2/4/ee/ep sth=sqrt(sth2) th = 2*asin(sth) thetae=th*180/pi tau = Q2/4./mp**2. epsilon = 1./(1.+2.*(1.+tau)*tan(th/2.)**2.) epsilonp = sqrt((1.-epsilon**2.)*tau*(1.+tau)) c dipole form factors and (old) Galster for GEn c c GEp = GEp0/(1.+Q2/MV2)**2. c GMp = GMp0*GEp c GEn = -GMn0*GEp*tau/(1.+5.6*tau) !Galster parameterization c GMn = GMn0*GEp c Friedrich+Walcher (hep-ph/0303054) call F_Wffs(Q2, GEp, GEn, GMp, GMn) c print *, Q2, GEp, GEn, GMp, GMn GEZp = (1.-4.*s2w)*(1.+RVp)*GEp-(1.+RVn)*GEn-(1.+RVs)*GEs GMZp = (1.-4.*s2w)*(1.+RVp)*GMp-(1.+RVn)*GMn-(1.+RVs)*GMs GEZn = (1.-4.*s2w)*(1.+RVp)*GEn-(1.+RVn)*GEp-(1.+RVs)*GEs GMZn = (1.-4.*s2w)*(1.+RVp)*GMn-(1.+RVn)*GMp-(1.+RVs)*GMs GAz = GA0/(1.+Q2/MA2)**2. c GAe = -GAz*(1+RA1) c GAZp = GAe + RA0 + GAs c c Note: RA0 = sqrt(3)*RA(T=0)*GA8(Q2) c RA(T=0) = 0.07 c GA8(0) = 0.217 +- 0.043: don't know its Q2-dependence. c Use GAdipole. c Also don't know Q2 dependence of GAs. Use GAdipole as well. c GAZp = GAe + RA0*GAz/GA0 + GAs*GAz/GA0 ae = epsilon*GEp*GEZp am = tau*GMp*GMZp aa = -(1.-4.*s2w)*epsilonp*GMp*GAZp aden = epsilon*GEp**2.+tau*GMp**2. Ap = -GF*Q2/4./pi/alpha/sqrt(2.)*((ae + am + aa)/aden)*1.e6 return end cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c EM form factors c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Friedrich+Walcher hep/ph/0303054 c Euro. Phys. Journ. A17 (2003) 607 c subroutine F_Wffs(Q2, GEp, GEn, GMp, GMn) implicit none real GEp, GMp, GEn, GMn real q2, qq real gs, gb real a,b,c,d,e,f real aen(7), amn(7), aep(7), amp(7) real mup, mun parameter (mup = 2.79) parameter (mun = -1.91) data a,b,c,d,e,f /0.37, 0.39, 1.68, 0.12, 0.5, 0.5/ data aen /1.04, 1.73, -1.04, 1.54, 0.009, 0.29, 0.20 / c Parameter #5 changed from the preprint to the published version c of the paper... c data amn /1.012, 0.770, -0.012, 6.8, -0.011, 0.33, 0.14/ c data aep /1.041, 0.765, -0.041, 6.2, -0.009, 0.07, 0.27/ c data amp /1.002, 0.749, -0.002, 6.0, -0.005, 0.35, 0.21/ c data amn /1.012, 0.770, -0.012, 6.8, -0.28, 0.33, 0.14/ data aep /1.041, 0.765, -0.041, 6.2, -0.23, 0.07, 0.27/ data amp /1.002, 0.749, -0.002, 6.0, -0.13, 0.35, 0.21/ qq=sqrt(q2) gs = aep(1)/(1+q2/aep(2))**2 + aep(3)/(1+q2/aep(4))**2 gb = exp(-0.5*((qq-aep(6))/aep(7))**2) 1 + exp(-0.5*((qq+aep(6))/aep(7))**2) c had forgotten q2 in jul-04 version GEp = gs + aep(5)*gb*q2 gs = amp(1)/(1+q2/amp(2))**2 + amp(3)/(1+q2/amp(4))**2 gb = exp(-0.5*((qq-amp(6))/amp(7))**2) 1 + exp(-0.5*((qq+amp(6))/amp(7))**2) c had forgotten q2 in jul-04 version GMp = gs + amp(5)*gb*q2 GMp = mup*GMp gs = aen(1)/(1+q2/aen(2))**2 + aen(3)/(1+q2/aen(4))**2 gb = exp(-0.5*((qq-aen(6))/aen(7))**2) 1 + exp(-0.5*((qq+aen(6))/aen(7))**2) c GEn = gs + aen(5)*gb GEn = a*q2/(1+b*q2+c*q2**2)**5 + d*q2/(1+e*q2)/(1+f*q2)**2 gs = amn(1)/(1+q2/amn(2))**2 + amn(3)/(1+q2/amn(4))**2 gb = exp(-0.5*((qq-amn(6))/amn(7))**2) 1 + exp(-0.5*((qq+amn(6))/amn(7))**2) c had forgotten q2 in jul-04 version GMn = gs + amn(5)*gb*q2 GMn = GMn*mun return end