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
Beispiel #2
0
def get_simulation(params):
    """
    Create and return GISAXS simulation with beam and detector defined
    """
    background = params["background"]
    scale = params["scale"]

    simulation = ba.GISASSimulation()
    simulation.setDetectorParameters(100, -1.0 * deg, 1.0 * deg, 100,
                                     0.0 * deg, 2.0 * deg)
    simulation.setBeamParameters(1.0 * angstrom, 0.2 * deg, 0.0 * deg)
    simulation.setBeamIntensity(1e12 * scale)
    simulation.setBackground(ba.ConstantBackground(background))
    simulation.setSample(get_sample(params))

    return simulation
def run_simulation(*, polarization=ba.kvector_t(0, 1, 0),
                      polarizer_efficiency=1,
                      analyzer=ba.kvector_t(0, 1, 0),
                      analyzer_efficiency=1):
    """
    Runs simulation and returns its result.
    """
    sample = get_sample()
        
    simulation = get_simulation()

    simulation.setBeamPolarization(polarization * polarizer_efficiency)
    simulation.setAnalyzerProperties(analyzer, analyzer_efficiency, 0.5)
    
    simulation.setBackground( ba.ConstantBackground( 1e-7 ) )
    
    simulation.setSample(sample)
    simulation.runSimulation()
    return simulation.result()
def create_simulation():
    """
    Creates GISAS simulation.
    """
    m_inclination_angle = 0.4 * deg
    m_beam_wavelength = 0.177 * nm
    m_beam_intensity = 6.1e+12
    m_constant_background = 200.0

    print("Starting")
    simulation = ba.GISASSimulation()
    simulation.setTerminalProgressMonitor()
    simulation.setDetector(create_detector())
    simulation.setBeamParameters(m_beam_wavelength, m_inclination_angle, 0.0)
    simulation.setBeamIntensity(m_beam_intensity)
    simulation.setRegionOfInterest(30.0, 21.0, 65.0, 58.0)
    simulation.getOptions().setUseAvgMaterials(True)
    simulation.setBackground(ba.ConstantBackground(m_constant_background))
    simulation.setDetectorResolutionFunction(
        ba.ResolutionFunction2DGaussian(m_pixel_size * 1.5,
                                        m_pixel_size * 2.0))
    simulation.setSample(create_sample(m_beam_wavelength))
    return simulation