Poisson background

To add a Poisson background to a Simulation instance, use

bg = ba.PoissonBackground()
simulation.setBackground(bg)

In this case, the output intensity is randomly distributed around the exact value with discrete Poisson statistics.

The lower the intensity of the probing beam, the lower the signal-to-noise ratio.

Constant background

To add a constant background to a Simulation instance, use

bg = ba.ConstantBackground(1e3)
simulation.setBackground(bg)

Background is applied before the specular simulation is normalized, so the threshold value will also be divided by the probe beam intensity.

Intensity image

The script below shows how to add a constant background in the context of a GISAXS simulation of an air-substrate bilayer with cylindrical particles embedded.

 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
#!/usr/bin/env python3
"""
Cylinder form factor in DWBA with constant background
"""
import bornagain as ba
from bornagain import ba_plot as bp, deg, nm
import matplotlib.pyplot as plt


def get_sample():
    from bornagain import std_samples
    return std_samples.cylinders()


def get_simulation(sample):
    beam = ba.Beam(1e6, 0.1*nm, 0.2*deg)
    n = 100
    detector = ba.SphericalDetector(n, 0., 2*deg, n, 0., 2*deg)
    simulation = ba.ScatteringSimulation(beam, sample, detector)
    background = ba.ConstantBackground(1e3)
    simulation.setBackground(background)
    return simulation


if __name__ == '__main__':
    sample = get_sample()
    simulation = get_simulation(sample)
    result = simulation.simulate()
    bp.plot_simulation_result(result)
    plt.show()
auto/Examples/scatter2d/ConstantBackground.py