General remarks
Command geometry_convert
with parameters executed in psana environment converts geometry constants between psana and CrystFEL formats forth and back depending on input file name extension. Converter works for a few major composite detectors cspad, pnccd, epix10ka, jungfrau.
Forward conversion by default changes coordinate frame from psana (the same as in optical metrology) to CrystFEL (LAB frame: z-along photon beam, y-up, x=[y×z]). The LAB frame is widely used in crystallography data processing. Backward conversion does not change coordinate frame and generates panels' positions and tilts as is. Pixel coordinates reconstructed in psana from this file will also be defined in the LAB frame.
Conversion commands
Conversion from psana to CrystFEL
Command for "forward" conversion of the detector geometry constants from psana to CrystFEL needs in a couple of parameters for detector type (-d) and input psana geometry file name (-f). It is also convenient to specify unique output CrystFEL geometry file name (-o), for example
geometry_convert -d cspad -f geo-cspad-psana.data -o geo-cspad-crystfel.geom
By default converter changes coordinate frame from psana (similar to one in optical metrology) to LAB (usually used in CrystFEL). Parameter --cframe 0
allows to keep the coordinate frame unchanged.
For now, forward converter recognizes detector types epix10ka, epix10kav2, jungfrau, cspad, pnccd, pnccdv2,
associated with segment types EPIX10KA:V1, EPIX10KA:V2, JUNGFRAU:V1, SENS2X1:V1, PNCCD:V1, MTRX:V2:512:512:75:75, respectively, used in the input geometry file.
Conversion from CrystFEL to psana
Command for "backward" conversion of the detector geometry constants from CrystFEL to psana needs in a couple of parameters for detector type (-d) and input CrystFEL geometry file name (-f). Optional output file name (-o) for psana geometry is also useful, for example
geometry_convert -d epix10ka -f geo-epix10ka2m-crystfel.geom -o geo-epix10ka2m-psana.txt
The file name extension *.geom
in option -f launches conversion from CrystFEL to psana.
For now, backward converter recognizes detector types epix10ka, jungfrau, cspad, cspadv2, pnccd
.
Special case of CSPAD detector
ASIC naming convention in CrystFEL are slightly different for cspad with and without moving quads. For now, appropriate detector type (-d) should be selected explicitly as cspad or cspadv2, respectively, for exampe
geometry_convert -d cspad -f geo-cspad-cxi-crystfel.geom -o geo-cspad-cxi-psana.data
geometry_convert -d cspadv2 -f geo-cspad-xpp-crystfel.geom -o geo-cspad-xpp-psana.data
Command help
More information about command and parameters can be obtained with help option (-h),
geometry_convert -h
Test of converter
CSPAD
Panel type SENS2X1:V1 describes cspad 2x1 panel geometry in psana. There are two types of cspad detectors, xpp- and cxi-like, w/o and with quads, which has different configuration both in psana and CrystFEL.
cp /reg/g/psdm/detector/data_test/geometry/geo-cspad-test.data . geometry_convert -d cspad -f geo-cspad-test.data -o geo-cspad-test-cframe-psana.geom --cframe 0 geometry_convert -d cspadv2 -f geo-cspad-test-cframe-psana.geom -o geo-cspad-test-back.data geometry_image -g geo-cspad-test.data -a /reg/g/psdm/detector/data_test/npy/nda-mfx11116-r0624-e005365-MfxEndstation-0-Cspad-0-max.txt -R10 -i0
epix10ka2m
Panel types
- EPIX10KA:V1 - 250um (wrong) wide pixel size
- EPIX10KA:V2 - 225um (correct) wide pixel size
cp /reg/g/psdm/detector/data_test/geometry/geo-epix10ka2m-test.txt . geometry_convert -d epix10ka -f geo-epix10ka2m-test.txt -o geo-epix10ka2m-test-cframe-psana.geom --cframe 0 geometry_convert -d epix10ka -f geo-epix10ka2m-test-cframe-psana.geom -o geo-epix10ka2m-test-back.txt then see the minor difference between geo-epix10ka2m-test.txt and geo-epix10ka2m-test-back.txt or check image with each of geometry files: geometry_image -g geo-epix10ka2m-test-back.txt -a /reg/g/psdm/detector/data_test/npy/nda-mfxc00118-r0184-epix10ka2m-silver-behenate-max.txt -R10 -i0
jungfrau
There may be two segment types Jungfrau:V1 and Jungfrau:V2 which represent the same panel from two sides. Forward test works for both types, backward returns panels of the Jungfrau:V2 type.
cp /reg/g/psdm/detector/data_test/geometry/geo-jungfrau-8-test.data . geometry_convert -d jungfrau -f geo-jungfrau-8-test.data -o geo-jungfrau-8-test-cframe-psana.geom --cframe 0 geometry_convert -d jungfrau -f geo-jungfrau-8-test-cframe-psana.geom -o geo-jungfrau-8-test-back.data geometry_image -g geo-jungfrau-8-test.data -a /reg/g/psdm/detector/data_test/npy/nda-cxilv9518-r0008-jungfrau-lysozyme-max.npy -R10 -i0
pnccd
A waste majority of pnccd geometry files in psana use old-style segment description as PNCCD:V1 with matrix coordinate reference frame. Forward conversion from psana-to-CrystFEL naturally supports this format. However, this format is not convenient for uniform backward conversion from CrystFEL-to-psana the arbitrary Cartesian frame. Backward conversion use segment description as MTRX:V2 in output file. The same segment type can be used in the conversion from psana-to-CrystFEL, but all geometry constants for panel position and orientation needs to be changed. This issue creates a mess in direct comparison between original and forth-and-back converted geometry file. For now this type of test is unavailable.
Conversion from psana-to-CrystFEL was tested long time ago and presumably works.