(file) Return to benharsf_getpmdist.pcm CVS log (file) (dir) Up to [HallC] / simc_gfortran / benharsf

  1 gaskelld 1.1 !!!SF is 40 Em bins of 5 MeV (0-200 MeV) by 40 Pm bins of 20 MeV (0-800 MeV/c)
  2              
  3              !SF is 80 Em bins of 5 MeV             by 40 Pm bins of 20 MeV.
  4              
  5              destroy *
  6              pi=3.14159265
  7              read\scalar benharsf_?1.dat pbins ebins
  8              read benharsf_?1.dat\(2) pmbin embin sfpbin sfnbin dp de
  9              
 10              stat\nomess sfpbin normfacp\sum
 11              stat\nomess sfnbin normfacn\sum
 12              sfpbin=sfpbin/normfacp
 13              sfnbin=sfnbin/normfacn
 14              
 15              sort embin pmbin sfpbin sfnbin
 16              em = embin[1:#:pbins]
 17              rebin sfpbin sfp_em pbins
 18              rebin sfnbin sfn_em pbins
 19              
 20              sort pmbin embin sfpbin sfnbin
 21              pm = pmbin[1:#:ebins]
 22 gaskelld 1.1 rebin sfpbin sfp_pm ebins
 23              rebin sfnbin sfn_pm ebins
 24              
 25              clear
 26              landscape
 27              window 5
 28              set ylog 10
 29              xlabel `Pm'
 30              ylabel `n(p) d<^>3<_>p'
 31              pch 2 .8 1
 32              auto on
 33              scales 0 1000 5 -4 0 4
 34              gr pm sfp_pm
 35              pch 12 .8 2
 36              cur pm sfn_pm
 37              
 38              copy sfp_pm sfpsum_pm
 39              copy sfn_pm sfnsum_pm
 40              do ind=[2:len(pm):1]
 41               stat\nomess sfp_pm[1:ind] sfpsum_pm[ind]\sum
 42               stat\nomess sfn_pm[1:ind] sfnsum_pm[ind]\sum
 43 gaskelld 1.1 enddo
 44              sfpsum_pm=sfpsum_pm/sfpsum_pm[len(pm)]
 45              sfnsum_pm=sfnsum_pm/sfnsum_pm[len(pm)]
 46              
 47              set %xloc 35
 48              set %yloc 85
 49              set cursor -7
 50              text `Raw Proton Norm. = '//rchar(nint(10000*normfacp)/10000)
 51              set %yloc 80
 52              text `Raw Neutron Norm. = '//rchar(nint(10000*normfacn)/10000)
 53              
 54              
 55              
 56              
 57              window 6
 58              k=pm
 59              nk_p=sfp_pm/pm**2
 60              nk_n=sfn_pm/pm**2
 61              
 62              
 63              !interpolate to get more bins.  Since each bin is a probability, we need to
 64 gaskelld 1.1 ! scale by the old number of bins vs. the new number of bins.
 65              
 66              xx=k
 67              yy=nk_p
 68              yy=yy*10**(xx/160)		!minimize the variation.
 69              yy=yy*(len(xx)/600)
 70              gen xxnew 0,,xx[#] 600
 71              yynew=interp(xx,yy,xxnew)
 72              yynew=yynew/10**(xxnew/160)
 73              k=xxnew
 74              nk_p=yynew
 75              
 76              yy=nk_n
 77              yy=yy*10**(xx/160)		!minimize the variation.
 78              yy=yy*(len(xx)/600)
 79              gen xxnew 0,,xx[#] 600
 80              yynew=interp(xx,yy,xxnew)
 81              yynew=yynew/10**(xxnew/160)
 82              k=xxnew
 83              nk_n=yynew
 84              
 85 gaskelld 1.1 
 86              xlabel `Pm'
 87              ylabel `n(p) d<^>3<_>p/p<^>2<_> = n(p)/<Delta>p'
 88              pch 2 .8 1
 89              scales 0 1000 5 0 1 1
 90              auto yaxis
 91              gr k nk_p
 92              pch 12 .8 2
 93              cur k nk_n
 94              
 95              !** proton normalization	!note: sfp_pm already normalized to PROBABILITY
 96              integrand = k**2*nk_p
 97              intp[1]=integrand[1]		!double count first k step
 98              do ind=[2:len(k)]
 99                intp[ind]=intp[ind-1]+integrand[ind]
100              enddo
101              pnorm1=nint(10000*intp[#])/10000
102              
103              intp=intp/intp[#]
104              
105              !** neutron normalization
106 gaskelld 1.1 integrand = k**2*nk_n
107              intn[1]=integrand[1]
108              do ind=[2:len(k)]
109                intn[ind]=intn[ind-1]+integrand[ind]
110              enddo
111              nnorm1=nint(10000*intn[#])/10000
112              intn=intn/intn[#]
113              
114              set %xloc 40
115              set %yloc 85
116              set cursor -7
117              text `Rebinned p Norm. = '//rchar(pnorm1)
118              set %yloc 80
119              text `Rebinned n Norm. = '//rchar(nnorm1)
120              
121              
122              window 7
123              ylabel `<Int> n(p) d<^>3<_>p'
124              pch 2 .8 1
125              scales 0 1000 5 0 1 1
126              set ylog 0
127 gaskelld 1.1 auto yaxis
128              gr k intp
129              pch 12 .8 2
130              cur k intn
131              
132              
133              window 8
134              ylabel `1 - <Int> n(p) d<^>3<_>p'
135              pch 2 .8 1
136              set ylog 10
137              scales 0 1000 5 -5 0 5
138              gr k 1-intp
139              pch 12 .8 2
140              cur k 1-intn
141              
142              
143              write benhar_pmdist_?1p.dat k intp
144              write benhar_pmdist_?1n.dat k intn
145              
146              terminal
147              
148 gaskelld 1.1 clear
149              window 0
150              znuc=?2
151              anuc=?3
152              nnuc=anuc-znuc
153              y=-k
154              sort y nk_p nk_n
155              fy_p=2*pi*integral(y,abs(y)*nk_p)/Znuc
156              fy_n=2*pi*integral(y,abs(y)*nk_n)/Nnuc
157              fy = (Znuc*fy_p + Nnuc*fy_n) / (Anuc)
158              xlabel `y'
159              ylabel `F(y)'
160              
161              scales -800 0 4 -8 -2 6
162              gr y fy
163              
164              write benharsf_?1.fy y fy

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