LPD geometry
LPD-1M
The LPD-1M detector, used in FXE, consists of 16 supermodules of 256×256 pixels each. Each module is divided into 16 tiles.
[1]:
%matplotlib inline
from extra_geom import LPD_1MGeometry
We can generate a simple geometry from (x, y) coordinates of the top, beam-left (left looking along the beam) corner of each quadrant:
[2]:
quadpos = [(11.4, 299), (-11.5, 8), (254.5, -16), (278.5, 275)] # in mm
geom = LPD_1MGeometry.from_quad_positions(quadpos)
geom.inspect()
[2]:
<AxesSubplot: title={'center': 'LPD-1M detector geometry (No file)'}, xlabel='pixels', ylabel='pixels'>
We can also load geometry information within each quadrant from an EuXFEL HDF5 geometry file. These files do not store the quadrant positions, so we need to use it along with the quadrant positions, in the same format as above.
[3]:
# From March 18; converted to XFEL standard coordinate directions
geom2 = LPD_1MGeometry.from_h5_file_and_quad_positions('lpd_mar_18_axesfixed.h5', quadpos)
geom2.inspect()
[3]:
<AxesSubplot: title={'center': 'LPD-1M detector geometry (lpd_mar_18_axesfixed.h5)'}, xlabel='pixels', ylabel='pixels'>
Q2M2 was missing and not measured for this geometry file, so there’s a gap at the bottom right. In fact, all of the tiles for this module have ended up overlapped inside Q2M4.
The code above creates a geometry object for LPD-1M. See these examples for how to use a geometry object:
LPD-Mini geometry
The LPD-Mini detector, used in FXE, can have one or more modules, each with 64×128 pixels across 2 tiles.
[4]:
%matplotlib inline
from extra_geom import LPD_MiniGeometry
We can generate a simple geometry from (x, y) coordinates of the bottom, beam-left (left looking along the beam) corner, for one module or several:
[5]:
geom = LPD_MiniGeometry.from_module_positions([(0, 0)])
ax = geom.inspect(axis_units='m')
ax.set_aspect(1.)
We can also specify that modules are rotated around the reference corner:
[6]:
geom = LPD_MiniGeometry.from_module_positions([(0, 0), (0, -70)], rotations=[90, 90])
ax = geom.inspect()
ax.set_aspect(1)
The code above creates a geometry object for the LPD Mini. See these examples for how to use a geometry object: