def test_resolution_norm(): """Tests resolution gaussian """ p = np.array([0., 0., 1., 0., 0., 1.43, 23867.71, 22311.93, 20739.82]) a, b = np.linspace(-1, 1, 501), np.linspace(-1, 1, 501) q = np.meshgrid(a, b, sparse=True) y = functions.resolution(p, q) integ = simps(simps(y, b), a) assert (abs(integ - 1.) < 1e-5)
from neutronpy import Instrument, Sample from neutronpy.functions import resolution EXP = Instrument() EXP.arms = [1560, 600, 260, 300] EXP.method = 1 hkle = [1., 1., 0., 5.] EXP.sample.u = [1,0,0] EXP.sample.v = [0,1,0] EXP.calc_projections(hkle) x, y = np.meshgrid(np.linspace(-0.05, 0.05, 101), np.linspace(-0.05, 0.05, 101), sparse=True) R0, RMxx, RMyy, RMxy = EXP.get_resolution_params(hkle, 'QxQy', mode='project') p = np.array([0., 0., 1., 0, 0, R0, RMxx, RMyy, RMxy]) z = resolution(p, (x, y)) fig = plt.figure(facecolor='w', edgecolor='k') plt.pcolormesh(x, y, z, cmap=cm.jet) [x1, y1] = EXP.projections['QxQy'][0] plt.fill(x1, y1, 'r', alpha=0.25) [x1, y1] = EXP.projections['QxQySlice'][0] plt.plot(x1, y1, 'w--') plt.xlim(-0.05, 0.05) plt.ylim(-0.05, 0.05) plt.show()
EXP = Instrument() EXP.arms = [1560, 600, 260, 300] EXP.method = 1 hkle = [1., 1., 0., 5.] EXP.sample.u = [1, 0, 0] EXP.sample.v = [0, 1, 0] EXP.calc_projections(hkle) x, y = np.meshgrid(np.linspace(-0.05, 0.05, 101), np.linspace(-0.05, 0.05, 101), sparse=True) R0, RMxx, RMyy, RMxy = EXP.get_resolution_params(hkle, 'QxQy', mode='project') p = np.array([0., 0., 1., 0, 0, R0, RMxx, RMyy, RMxy]) z = resolution(p, (x, y)) fig = plt.figure(facecolor='w', edgecolor='k') plt.pcolormesh(x, y, z, cmap=cm.jet) [x1, y1] = EXP.projections['QxQy'][:, :, 0] plt.fill(x1, y1, 'r', alpha=0.25) [x1, y1] = EXP.projections['QxQySlice'][:, :, 0] plt.plot(x1, y1, 'w--') plt.xlim(-0.05, 0.05) plt.ylim(-0.05, 0.05) plt.show()