# Physics
The [`physics`](corrct.html#module-corrct.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](https://github.com/tschoonj/xraylib).
## X-ray Fluorescence
The [`physics.xrf`](corrct.html#module-corrct.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`](corrct.html#module-corrct.physics.materials) sub-module.
The `LinesSiegbahn` class, exposes two important static methods:
```python
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`](corrct.html#module-corrct.physics.materials)
sub-module is `VolumeMaterial`, that allows one to model heterogeneous material
compositions in the reconstruction volume, with the aim of generating:
1. Attenuation maps (local linear attenuation coefficient).
2. Emission cross-sections maps for XRF and Compton.
## X-ray Phase Contrast
The [`physics.phase`](corrct.html#module-corrct.physics.phase) sub-module contains
functions to model the delta-over-beta value and transfer functions encountered
in phase contrast problems.