diff --git a/Examples/python/simulation/ex05_BeamAndDetector/ConstantBackground.py b/Examples/python/simulation/ex05_BeamAndDetector/ConstantBackground.py new file mode 100644 index 0000000000000000000000000000000000000000..d22fd4944216a22b1c72621f6f084f2d569ee559 --- /dev/null +++ b/Examples/python/simulation/ex05_BeamAndDetector/ConstantBackground.py @@ -0,0 +1,61 @@ +""" +Cylinder form factor in DWBA with constant background +""" +import bornagain as ba +from bornagain import deg, angstrom, nm + + +def get_sample(): + """ + Returns a sample with uncorrelated cylinders on a substrate. + """ + # defining materials + m_ambience = ba.HomogeneousMaterial("Air", 0.0, 0.0) + m_substrate = ba.HomogeneousMaterial("Substrate", 6e-6, 2e-8) + m_particle = ba.HomogeneousMaterial("Particle", 6e-4, 2e-8) + + # collection of particles + cylinder_ff = ba.FormFactorCylinder(5*nm, 5*nm) + cylinder = ba.Particle(m_particle, cylinder_ff) + particle_layout = ba.ParticleLayout() + particle_layout.addParticle(cylinder, 1.0) + + # assembling the sample + air_layer = ba.Layer(m_ambience) + air_layer.addLayout(particle_layout) + substrate_layer = ba.Layer(m_substrate) + + multi_layer = ba.MultiLayer() + multi_layer.addLayer(air_layer) + multi_layer.addLayer(substrate_layer) + return multi_layer + + +def get_simulation(): + """ + Returns a GISAXS simulation with a constant backround. + """ + simulation = ba.GISASSimulation() + simulation.setDetectorParameters(100, 0.0*deg, 2.0*deg, + 100, 0.0*deg, 2.0*deg) + simulation.setBeamParameters(1.0*angstrom, 0.2*deg, 0.0*deg) + simulation.setBeamIntensity(1e6) + bg = ba.ConstantBackground(1e3) + simulation.setBackGround(bg) + return simulation + + +def run_simulation(): + """ + Runs simulation and returns intensity map. + """ + simulation = get_simulation() + simulation.setSample(get_sample()) + print(simulation.parametersToString()) + simulation.runSimulation() + return simulation.getIntensityData() + + +if __name__ == '__main__': + result = run_simulation() + ba.plot_intensity_data(result)