Physics
The physics
module includes functionality
for modeling and treating various signal related to X-ray physics.
In particular, we offer modeling of X-ray fluorescence (XRF) emission and X-ray
attenuation, and some useful tools for X-ray phase contrast.
The back-end of this module is the famous X-ray physics package called
xraylib.
X-ray Fluorescence
The physics.xrf
sub-module offers
mainly two classes: LinesSiegbahn
and DetectorXRF
.
The former exposes a simplified interface for handling XRF emission lines, using
the Siegbahn nomenclature. The latter allows one to describe the position and
geometry of a XRF detector, that is used in the VolumeMaterial
class of the
physics.materials
sub-module.
The LinesSiegbahn
class, exposes two important static methods:
class LinesSiegbahn:
"""Siegbahn fluorescence lines collection class."""
@staticmethod
def get_lines(line: str) -> Sequence[FluoLine]:
...
@staticmethod
def get_energy(
element: Union[str, int],
lines: Union[str, FluoLine, Sequence[FluoLine]],
compute_average: bool = False,
verbose: bool = False,
) -> Union[float, NDArray]:
...
The method get_lines
returns the list of available lines for a given line
family, e.g. the Kα and Kβ lines for the K line family.
The method get_energy
, instead, returns the energy(ies) of the requested line(s)
for a given element. If the requested expression matches more than one line, it
can either be the list of all the line energies, or their average.
Material modeling
The main class of the physics.materials
sub-module is VolumeMaterial
, that allows one to model heterogeneous material
compositions in the reconstruction volume, with the aim of generating:
Attenuation maps (local linear attenuation coefficient).
Emission cross-sections maps for XRF and Compton.
X-ray Phase Contrast
The physics.phase
sub-module contains
functions to model the delta-over-beta value and transfer functions encountered
in phase contrast problems.