### Resolution function of a two-dimensional scattering detector

This example illustrates the effect of detector resolution.

The left image shows scattering from a dilute assembly of large, oriented boxes recorded by a perfect detector without resolution function.

In the middle image, for the purpose of demonstration, a broad and very anisotropic Gaussian resolution function is applied.

In the right image, the resolution is isotropic.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58  #!/usr/bin/env python3 """ Basic GISAS from oriented boxes, with different detector resolutions. """ import bornagain as ba from bornagain import ba_plot as bp, deg, nm def get_sample(): """ Dilute random assembly of oriented boxes on a substrate. """ from bornagain import std_samples mat = ba.RefractiveMaterial("Particle", 6e-4, 2e-08) ff = ba.Box(30*nm, 30*nm, 30*nm) particle = ba.Particle(mat, ff) return std_samples.substrate_plus_particle(particle) if __name__ == '__main__': sample = get_sample() # Beam wavelength = 0.1*nm alpha_i = 0.2*deg beam = ba.Beam(1, wavelength, alpha_i) # Detector nx = 142 ny = 200 detector = ba.SphericalDetector(nx, -1.5*deg, 1.5*deg, ny, 0, 3*deg) results = [] simulation = ba.ScatteringSimulation(beam, sample, detector) result = simulation.simulate() result.setTitle("no resolution") results.append(result) detector.setResolutionFunction( ba.ResolutionFunction2DGaussian(0.2*deg, 0.01*deg)) simulation = ba.ScatteringSimulation(beam, sample, detector) result = simulation.simulate() result.setTitle("resolution 0.2deg, 0.01deg") results.append(result) detector.setResolutionFunction( ba.ResolutionFunction2DGaussian(0.2*deg, 0.2*deg)) simulation = ba.ScatteringSimulation(beam, sample, detector) result = simulation.simulate() result.setTitle("resolution 0.2deg, 0.2deg") results.append(result) plotargs = bp.parse_commandline() bp.make_plot_row(results, **plotargs) bp.show_or_export(**plotargs) 
auto/Examples/scatter2d/Resolution.py