(file) Return to hallc2h.f CVS log (file) (dir) Up to [HallC] / pol_hms_single

File: [HallC] / pol_hms_single / hallc2h.f (download)
Revision: 1.7, Mon Apr 20 17:45:09 2009 UTC (15 years, 5 months ago) by jones
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +2 -1 lines
Modifies to
	parameter (wpi = 1.038d0)
from
c       parameter (wpi = 0.982d0)

c
c	Adapted from I. Niculescu-C. Keppel-L. Stuart model
c	for inelastic deuteron cross sections
c	by O. R. 2/04
c	Fit parameters: values in I.N.'s file par_d2_jlab_slac.txt
c
!	subroutine hallc2h(e,th,w,sigdel,sigr1,sigr2,sigx)
	subroutine hallc2h(e,th,enu,sigdel,sigr1,sigr2,sigx)
c	implicit real*8 (a-h,o-z)
	implicit none
        real*8 e,th,enu,sigdel,sigr1,sigr2,sigx
	real*8 wr(3), gr(3), cr(3,4), cnr(3,5), qk(3)
	real*8 bw(3), polyr(3), polynr(3)
        real*8 pi, pm, alpha, wpi, thr, sinth22, pm2, ef,
     &         qsq, ww, w, k, eps, g, sigmanrt, sigmanrl, dipole2
        integer j, jp

	parameter (pi=3.1415928d0)
	parameter (pm = 939.d0)	
	parameter (alpha = 1.d0/137.036d0)
!	parameter (wpi = 1.078d0)
c       parameter (wpi = 0.982d0)       ! wpi with kF = 46 MeV/c              
	parameter (wpi = 1.038d0)  !! <== check modified wpi, 2006 nov

	data wr/1.210098d0, 1.509d0, 1.675d0/

	data gr/0.16559d0, 0.133d0, 0.191d0/

	data qk/0.0d0, -1.33d-3, 9.04d-3/

	data cr/ 88.31d0,   17.276d0,  10.571d0,
     1  	 179.83470d0,  14.539d0,  17.876d0,
     1  	 -49.3425d0,   0.0d0,     0.0d0,                 
     1  	   4.419d0,   0.0d0,     0.0d0/
	
	data cnr/-1596.6d0,  3161.6d0, -1294.7d0,
     1	          3765.5d0, -5091.2d0,  1484.7d0,
     1  	  1854.5d0,  1327.6d0,  -905.3d0,
     1	          -203.6d0,  -248.9d0,   285.3d0,
     1  	     1.67d0,   26.0d0,   -24.5d0/


	thr = th*pi/180.d0                  
	sinth22 = (sin(thr/2.d0))**2
	pm2 = pm*pm
	ef = e - enu
	qsq = 4.d0*e*ef*(sin(thr/2.d0))**2
	ww = pm**2 + 2.d0*pm*enu - qsq
!	ww = w*w
!	ef = (pm2 + 2.d0*pm*e - ww)/(2.d0*pm + 4.d0*e*sinth22)
!	qsq = 4.d0*e*ef*sinth22
!	enu = e - ef
	k = (ww-pm2)/(2.d0*pm)

	if ( ww .le. 0) then
 	 sigdel = 0.d0
	 sigr1 = 0.d0
	 sigr2 = 0.d0
	 sigx = 0.d0
	 return
        else
	   w = sqrt(ww)*1.d-3	! MeV -> GeV
 	   if(w.le.wpi) then
 	    sigdel = 0.d0
	    sigr1 = 0.d0
	    sigr2 = 0.d0
	    sigx = 0.d0
	    return
	    end if
	endif

	eps = 1.d0/(1.d0+2.d0*(enu**2/qsq+1.d0)*(tan(thr/2.d0))**2)
	g = alpha*k/(2.d0*pi**2*qsq)*(ef/e)/(1.d0 - eps)
	qsq =qsq*1.d-6	! MeV**2 -> GeV^2


	sigmanrt = 0.d0
	sigmanrl = 0.d0


	do j = 1, 3

	bw(j) = gr(j)/((w-wr(j)*(1.d0+qk(j)*qsq))**2+gr(j)**2/4.d0)

	polyr(j) = 0.d0

	do jp = 1, 4
	polyr(j) = cr(j,jp)*qsq**(jp-1)+polyr(j)
	end do

	polynr(j) = 0.d0

	do jp = 1, 5
	polynr(j) = cnr(j,jp)*qsq**(jp-1)+polynr(j)
	end do

	sigmanrt = polynr(j)*sqrt((w-wpi)**(2*j-1)) + sigmanrt

	end do

	dipole2 = 1.0d0/(1.d0+qsq/0.71d0)**4

	sigmanrl = sigmanrt*0.25d0/sqrt(qsq)

	sigdel = g*bw(1)*polyr(1)*dipole2*1.d-4	!1.d-4 to combine with scale in main for nb/sr/MeV
	sigr1 = g*bw(2)*polyr(2)*dipole2*1.d-4
	sigr2 = g*bw(3)*polyr(3)*dipole2*1.d-4
	sigx = g*(sigmanrt+eps*sigmanrl)*dipole2*1.d-4
	return
	end

Analyzer/Replay: Mark Jones, Documents: Stephen Wood
Powered by
ViewCVS 0.9.2-cvsgraph-1.4.0