Beamline alignment functions

All the different tomography scans assume certain configurations of the intrumentation present on the beamline. This means that small mistakes in this configuration can lead to inconsistencies and systematic errors in the acquired data. As a consequence, the data quality is degraded. To cope with these configuration errors, the beamline instrumentation needs to be aligned correctly.

Alignment function classes

In the most recent survey of alignment / calibration function classes, the following classes were identified:

  1. Center of rotation position, with respect to the direction perpendicular to the incoming beam direction and the rotation axis direction.

  2. Camera (pixel columns) tilt, with respect to the rotation axis direction.

  3. Positioning of the scintillator on the focal plane of the magnifying optics in front of the camera.

  4. Scintillator tilts, with respect to the focal plane of the camera.

  5. Tilts between the translation stage of the detector along the direction incoming beam and the beam itself.

  6. Wedge angle between the incoming beam and the rotation axis.

Different groups of these classes can be used for different tomographic acquistions. For instance, Absorption Contrast Tomography (ACT) and Phase Contrast Tomography (PCT) acquisitions, which belong to the group of full-field techniques, are likely to need 1, 2, 3, 4 and 6 for single distance variants, and all six of them for multiple distance variants (like Holotomography).

Translation to Python

In order to be used by the next generation acquisition code developed at the ESRF, these functions need to be translated from the octave language to Python. This allows them to be called directly from Bliss or by any acquisition code running on top of it.

The translation is also encouraged by the fact that the old octave macros cannot run on Bliss controlled beamlines any more. This is due to the following two facts:

  • the acquisition data format has changed from EDF (ESRF Data Format) to HDF5, while the old routines strictly relied on EDF files recorded on the file system.

  • the acquisition code is also written in Python and it should be able to invoke the alignment routines without writing temporary data to file.

Thus, the six mentioned alignment routines need to be translated and modernized. Here below you can find a table describing the status of the translation process.

Function # Reference implementation Reference data Expected results Translated routines
1 alignment.m (option 'global') v v v MR27
2 alignment.m (option 'highlow') v v v MR54
3 focus.m (option 'std') v v v MR55
4 focus.m (option 'angle') v v v MR55
5 alignxc.m v v v MR41
6 unknown v v v

All the legacy octave functions can be found in this respository: https://gitlab.esrf.fr/tomotools/octave_archive/