From 742bf48563012a721185d37cc99c8ba7d9e51b6f Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Tue, 17 Oct 2023 10:17:22 +0200 Subject: [PATCH] + example Resolution.py --- auto/Examples/scatter2d/Resolution.py | 58 +++++++++++++++++++++++ auto/MiniExamples/scatter2d/Resolution.py | 58 +++++++++++++++++++++++ rawEx/scatter2d/Resolution.py | 58 +++++++++++++++++++++++ 3 files changed, 174 insertions(+) create mode 100755 auto/Examples/scatter2d/Resolution.py create mode 100755 auto/MiniExamples/scatter2d/Resolution.py create mode 100755 rawEx/scatter2d/Resolution.py diff --git a/auto/Examples/scatter2d/Resolution.py b/auto/Examples/scatter2d/Resolution.py new file mode 100755 index 00000000000..a58f9fc8d66 --- /dev/null +++ b/auto/Examples/scatter2d/Resolution.py @@ -0,0 +1,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.FlatDetector(nx, ny, 107, 140, beam, ba.FlatDetector.X, + 2000, 0, -140/2) + + results = [] + + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("no resolution") + results.append(result) + + detector.setResolutionFunction( + ba.ResolutionFunction2DGaussian(5, 1)) + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("resolution 5, 1") + results.append(result) + + detector.setResolutionFunction( + ba.ResolutionFunction2DGaussian(5, 5)) + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("resolution 5, 5") + results.append(result) + + bp.make_plot_row(results) + bp.show_or_export() diff --git a/auto/MiniExamples/scatter2d/Resolution.py b/auto/MiniExamples/scatter2d/Resolution.py new file mode 100755 index 00000000000..211f62a3d92 --- /dev/null +++ b/auto/MiniExamples/scatter2d/Resolution.py @@ -0,0 +1,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 = 7 + ny = 11 + detector = ba.FlatDetector(nx, ny, 107, 140, beam, ba.FlatDetector.X, + 2000, 0, -140/2) + + results = [] + + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("no resolution") + results.append(result) + + detector.setResolutionFunction( + ba.ResolutionFunction2DGaussian(5, 1)) + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("resolution 5, 1") + results.append(result) + + detector.setResolutionFunction( + ba.ResolutionFunction2DGaussian(5, 5)) + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("resolution 5, 5") + results.append(result) + + bp.make_plot_row(results) + bp.show_or_export() diff --git a/rawEx/scatter2d/Resolution.py b/rawEx/scatter2d/Resolution.py new file mode 100755 index 00000000000..400c40c5ff6 --- /dev/null +++ b/rawEx/scatter2d/Resolution.py @@ -0,0 +1,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 = <%= sm ? 7 : 142 %> + ny = <%= sm ? 11 : 200 %> + detector = ba.FlatDetector(nx, ny, 107, 140, beam, ba.FlatDetector.X, + 2000, 0, -140/2) + + results = [] + + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("no resolution") + results.append(result) + + detector.setResolutionFunction( + ba.ResolutionFunction2DGaussian(5, 1)) + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("resolution 5, 1") + results.append(result) + + detector.setResolutionFunction( + ba.ResolutionFunction2DGaussian(5, 5)) + simulation = ba.ScatteringSimulation(beam, sample, detector) + result = simulation.simulate() + result.setTitle("resolution 5, 5") + results.append(result) + + bp.make_plot_row(results) + bp.show_or_export() -- GitLab