\(\renewcommand\AA{\unicode{x212B}}\)

CalculateSlits v1

../_images/CalculateSlits-v1_dlg.png

CalculateSlits dialog.

Summary

Calculates appropriate slit widths for reflectometry instruments based on the instrument setup, desired resolution, and desired footprint of the experiment.

Properties

Name Direction Type Default Description
Slit1Slit2 Input number Optional Distance between Slit 1 and Slit 2 in mm. Where Slit 1 and Slit 2 are the two slits before the sample holder.
Slit2SA Input number Optional Offset in the beam direction in mm. (Due to Slit 2 being translatable in the vertical axis)
Resolution Input number Optional The Resolution that you desire to obtain in the experiment
Footprint Input number Optional The Footprint you wish to achieve for the experiment, in mm
Angle Input number Optional Incident angle in degrees.
Slit1 Output number   Calculated Slit 1 width in mm
Slit2 Output number   Calculated Slit 2 width in mm

Description

This algorithm can be used to calculate the slit dimensions to use for reflectometry instruments. It is effectively the inverse of NRCalculateSlitResolution v1.

CalculateSlits uses nothing but the input properties to calculate the output, specifically:

\[ \begin{align}\begin{aligned}Slit2 = (Footprint \times sin\alpha) - (2 \times Slit2SA \times tan(\alpha \times Resolution))\\Slit1 = (2 \times Slit1Slit2 \times tan(\alpha \times Resolution)) - Slit2\end{aligned}\end{align} \]

where \(\alpha\) is the angle in radians (conversion between degrees and radians is implemented by the algorithm).

Footprint

The footprint of the experiment is not necessarily instrument specific and can be thought of as the area of the sample that is reach by the beam during the experiment. When providing the value of the footprint to the algorithm it should be based on the footprint that you would wish to use for the experiment as this information cannot be taken directly from the instrument definition and is experiment-dependant.

Usage

s1, s2 = CalculateSlits(Slit1Slit2=1940.5, Slit2SA=364, Angle=0.7, Footprint=50, Resolution=0.03)
print("Slit 1: {:.3f} mm".format(s1))
print("Slit 2: {:.3f} mm".format(s2))
Slit 1: 1.078 mm
Slit 2: 0.344 mm

Categories: AlgorithmIndex | Reflectometry\ISIS

Source

C++ header: CalculateSlits.h

C++ source: CalculateSlits.cpp