Alignment procedure
Alignment procedure for CSPAD2x2 is very similar to CSPAD alignment for quads described in
CSPAD Geometry and Alignment.
The only difference is that CSPAD2x2 has only two 2x1 sensors, that makes everything much simpler.
Optical measurements
Photos and charts with numeration of corners in otical measurements:
Metrology table
Metrology table in xlsx
format:
Metrology-140ks-Feb13-2013.xlsx
The xlsx
file is converted to tables in text format for 6 CSPad2x2 detectors:
- CSPad2x2-1.txt Q133 D7A16
- CSPad2x2-2.txt Q110 D3A14
- CSPad2x2-3.txt Q111 D12A18
- CSPad2x2-4.txt Q135 D19A19
- CSPad2x2-5.txt Q022 D15A15
- CSPad2x2-6.txt Q157 Used in Run 6
Calibration types
In 2014 new universal detector geometry software is implemented and documented in the Detector Geometry page. In this approach detector geometry calibration information is located in a single file of type
geometry
- contains hierarchical description of all detector components; for example for CSPAD2x2 it has sensors' location and rotation in the detector, detector - in the setup, etc.
Currently all psana modules which deal with image and pixel coordinates can work with calibration type geometry
.
In earlier version of software, CSPAD2x2 geometry is defined by the two calibration types:
center
- x, y, z center position for each two 2x1 in the detector. Obtained from optical measurement.tilt
- two 2x1-tilt angle for the detector in fractional degree. Obtained from optical measurement.
Quality check and alignment parameters
CSPad2x2-1.txt Q133 D7A16
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) pair: 0 20909 20902 2 -5 43538 43539 0 1 -0.00006 -0.00329 48297 48297 0 7 -1 pair: 1 20906 20902 2 -2 43538 43538 0 0 0.00000 0.00000 48296 48296 0 4 0
center/0-end.data
(in pixels)
198.05 198.42 95.10 307.54 0.09 0.03
tilt/0-end.data
(in degree)
-0.00329 0.00000
CSPad2x2-2.txt Q110 D3A14
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) pair: 0 20905 20896 5 -4 43536 43536 -2 -2 0.00001 0.00066 48291 48294 -3 9 0 pair: 1 20905 20905 -22 -22 43540 43536 10 6 -0.00051 -0.02895 48294 48299 -5 0 4
center/0-end.data
(in pixels)
198.03 198.94 95.09 306.84 0.18 0.21
tilt/0-end.data
(in degree)
0.00066 -0.02895
CSPad2x2-3.txt Q111 D12A18
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) pair: 0 20907 20908 -5 -4 43540 43545 0 5 -0.00005 -0.00263 48302 48301 1 -1 -5 pair: 1 20904 20907 421 424 43538 43538 -203 -203 0.00970 0.55601 48299 48299 0 -3 0
center/0-end.data
(in pixels)
198.06 196.67 95.08 308.15 0.17 0.23
tilt/0-end.data
(in degree)
-0.00263 0.55601
CSPad2x2-4.txt Q135 D19A19
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) pair: 0 20906 20905 -8 -9 43540 43540 3 3 -0.00020 -0.01119 48297 48299 -2 1 0 pair: 1 20908 20898 -12 -22 43541 43538 12 9 -0.00039 -0.02237 48299 48295 4 10 3
center/0-end.data
(in pixels)
198.07 198.70 95.06 307.79 0.24 0.30
tilt/0-end.data
(in degree)
-0.01119 -0.02237
CSPad2x2-5.txt Q022 D15A15
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) pair: 0 20904 20904 2 2 43536 43536 -1 -1 0.00005 0.00263 48294 48294 0 0 0 pair: 1 20908 20909 122 123 43540 43545 -61 -56 0.00281 0.16119 48302 48302 0 -1 -5
center/0-end.data
(in pixels)
198.03 197.12 95.10 307.60 0.03 -0.11
tilt/0-end.data
(in degree)
0.00263 0.16119
CSPad2x2-6.txt Q157
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) pair: 0 20903 20900 59 56 43541 43539 -27 -29 0.00132 0.07567 48296 48297 -1 3 2 pair: 1 20979 20977 49 47 43707 43705 -20 -22 0.00110 0.06292 48481 48477 4 2 2
center/0-end.data
(in pixels)
197.93 196.92 95.34 307.53 -1.60 -3.63
tilt/0-end.data
(in degree)
0.07567 0.06292
2014-04-25-CSPAD2X2-3-MEC-Metrology.txt (1.0 SN07 D12A18)
Original metrology file from Gabriel Blaj: 2014-04-25-CSPAD2X2-3-MEC-Metrology.xlsx
This should be used for any experiment AFTER April 25th 2014 (until further notice).
Quality check
Quality check in XY plane: segm: S1 S2 dS1 dS2 L1 L2 dL1 dL2 angle(deg) D1 D2 dD d(dS) d(dL) segm: 0 20979 20982 0 3 -43695 -43689 -2 4 -0.00197 48468 48468 0 -3 -6 segm: 1 20981 20981 123 123 -43701 -43695 51 57 -0.16127 48478 48469 9 0 -6 Quality check in Z: segm: SA LA XSize YSize dZS1 dZS2 dZL1 dZL2 dZSA dZLA ddZS ddZL dZX dZY angXZ(deg) angYZ(deg) dz3(um) segm: 0 20980 -43692 43692 20980 18 5 -2 -15 11 -8 13 13 -8 11 -0.01049 0.03004 -13.001 segm: 1 20981 -43698 43698 20981 -4 -8 0 -4 -6 -2 4 4 -2 -6 -0.00262 -0.01639 -4.000
center/0-end.data
(in pixels)
198.76 199.63 95.44 308.48 0.06 0.04
tilt/0-end.data
(in degree)
-0.00197 -0.16127
geometry/0-end.data
# TITLE Geometry parameters of CSPAD2X2 # DATE_TIME 2014-10-03 12:27:11 PDT # METROLOGY /reg/neh/home1/dubrovin/LCLS/CSPad2x2Metrology/CSPad2x2/2014-04-25-CSPAD2X2-3-MEC-Metrology.txt # AUTHOR dubrovin # EXPERIMENT Any # DETECTOR CSPAD2X2 # CALIB_TYPE geometry # COMMENT:01 Table contains the list of geometry parameters for alignment of 2x1 sensors, quads, CSPAD, etc # COMMENT:02 All translation and rotation pars of the object are defined w.r.t. parent object Cartesian frame # PARAM:01 PARENT - name and version of the parent object # PARAM:02 PARENT_IND - index of the parent object # PARAM:03 OBJECT - name and version of the object # PARAM:04 OBJECT_IND - index of the new object # PARAM:05 X0 - x-coordinate [um] of the object origin in the parent frame # PARAM:06 Y0 - y-coordinate [um] of the object origin in the parent frame # PARAM:07 Z0 - z-coordinate [um] of the object origin in the parent frame # PARAM:08 ROT_Z - object design rotation angle [deg] around Z axis of the parent frame # PARAM:09 ROT_Y - object design rotation angle [deg] around Y axis of the parent frame # PARAM:10 ROT_X - object design rotation angle [deg] around X axis of the parent frame # PARAM:11 TILT_Z - object tilt angle [deg] around Z axis of the parent frame # PARAM:12 TILT_Y - object tilt angle [deg] around Y axis of the parent frame # PARAM:13 TILT_X - object tilt angle [deg] around X axis of the parent frame # HDR PARENT IND OBJECT IND X0[um] Y0[um] Z0[um] ROT-Z ROT-Y ROT-X TILT-Z TILT-Y TILT-X CSPAD2X2:V1 0 SENS2X1:V1 0 21848 10490 6 180 0 0 -0.00197 -0.01049 0.03004 CSPAD2X2:V1 0 SENS2X1:V1 1 21943 33908 4 180 0 0 -0.16127 -0.00262 -0.01639
date-to-bd-CSPAD2X2-3-MEC-Metrology.txt (1.0 SN07 D12A18)
Note from Gabriel and Philip:
Philip and I inspected the CSPAD 140Ks that we received last week (CSPAD 1,2,3,5):
Original metrology file from Gabriel Blaj: date-to-bd-CSPAD2X2-3-MEC-Metrology.xlsx
Archive directory: /reg/g/psdm/detector/alignment/cspad2x2/calib-cspad2x2-03-date-to-bd/
Quality check:
2015-04-02 13:40:57 (info) CalibManager.GUIMetrology: Quality check in X-Y plane: segm: S1 S2 dS1 dS2 L1 L2 dL1 dL2 angle(deg) D1 D2 dD d(dS) d(dL) Quad 0 segm: 0 20981 20978 -33 -36 -43703 -43708 -17 -22 0.04523 48482 48477 5 3 5 segm: 1 20978 20974 -152 -156 -43707 -43702 -73 -68 0.20189 48474 48480 -6 4 -5 2015-04-02 13:40:57 (info) CalibManager.GUIMetrology: Quality check in Z: segm: SA LA XSize YSize dZS1 dZS2 dZL1 dZL2 dZSA dZLA ddZS ddZL dZX dZY angXZ(deg) angYZ(deg) dz3(um) Quad 0 segm: 0 20979 -43705 43705 20979 -1 31 -37 -5 15 -21 -32 -32 -21 15 -0.02753 0.04097 32.009 segm: 1 20976 -43704 43704 20976 -28 -38 5 -5 -33 0 10 10 0 -33 0.00000 -0.09014 -10.007
Calibration files:
center/0-end.data
(in pixels)
tilt/0-end.data
(in degree)
geometry/0-end.data
Calibration files
In local space
Produced for optical measurement on 2013-02-13
- /reg/neh/home1/dubrovin/LCLS/CSPad2x2Alignment/calib-cspad2x2-01-2013-02-13/<type>/0-end.data
- ...
- /reg/neh/home1/dubrovin/LCLS/CSPad2x2Alignment/calib-cspad2x2-06-2013-02-13/<type>/0-end.data
- /reg/neh/home1/dubrovin/LCLS/CSPad2x2Alignment/calib-cspad2x2-03-2014-04-25/<type>/0-end.data - 2014-05-30
Deployed in experimental DB
2013-03-08
/reg/d/psdm/mec/mec73313/calib/CsPad2x2::CalibV1/
- MecTargetChamber.0:Cspad2x2.1/<type>/0-end.data
- ...
- MecTargetChamber.0:Cspad2x2.5/<type>/0-end.data
2013-06-21
/reg/d/psdm/xpp/xpptut13/calib/CsPad2x2::CalibV1/
- XppGon.0:Cspad2x2.0/<type>/0-end.data is taken from calib-cspad2x2-06-2013-02-13/<type>
- XppGon.0:Cspad2x2.1/<type>/0-end.data is taken from calib-cspad2x2-01-2013-02-13/<type>
where <type> stands for tilt and center.
Known detectors
on 2014-07-04:
0 : CxiDg2.0:Cspad2x2.0 1 : CxiDg2.0:Cspad2x2.1 2 : CxiSc1.0:Cspad2x2.0 3 : CxiSc2.0:Cspad2x2.0 4 : CxiSc2.0:Cspad2x2.1 5 : CxiSc2.0:Cspad2x2.2 6 : CxiSc2.0:Cspad2x2.3 7 : CxiSc2.0:Cspad2x2.4 8 : CxiSc2.0:Cspad2x2.5 9 : CxiSc2.0:Cspad2x2.6 10 : CxiSc2.0:Cspad2x2.7 11 : MecEndstation.0:Cspad2x2.6 12 : MecTargetChamber.0:Cspad2x2.0 13 : MecTargetChamber.0:Cspad2x2.1 14 : MecTargetChamber.0:Cspad2x2.2 15 : MecTargetChamber.0:Cspad2x2.3 16 : MecTargetChamber.0:Cspad2x2.4 17 : MecTargetChamber.0:Cspad2x2.5 18 : SxrBeamline.0:Cspad2x2.2 19 : SxrBeamline.0:Cspad2x2.3 20 : XcsEndstation.0:Cspad2x2.0 21 : XcsEndstation.0:Cspad2x2.1 22 : XppGon.0:Cspad2x2.0 23 : XppGon.0:Cspad2x2.1 24 : XppGon.0:Cspad2x2.2 25 : XppGon.0:Cspad2x2.3
Software
Memory data model
In contrast to CSPAD which data array shape is (N, 185, 388), the CSPAD2x2 data array has a shape (185, 388, 2); the memory pointer increment by 1 swaps the 2x1 sensor. The (raw,column)=(0,0) is located in corners 4 and 8 of optical measurement scheme for two 2x1 sensors, respectively.
Conversion between these data formats can be done in Python by methods
arrTwo2x1 = data2x2ToTwo2x1(asData2x2) asData2x2 = two2x1ToData2x2(arrTwo2x1)
as described in module-PSCalib.GeometryObject
Geometry access
In 2014 new universal detector geometry software is implemented and documented in the Detector Geometry page. In this approach detector geometry calibration information is collected in a single file of type
geometry
which contains hierarchical description of all detector components. For example for CSPAD it has sensors' location and rotation in the quads, quads - in the detector, detector - in the setup, etc.
By default these files reside under the calib directory with full path like
/reg/d/psdm/<instrument>/<experiment>/calib/<calib-soft-version>/<data-source>/geometry/<run-range>.data
Whenever necessary image can be generated by the psana Module CSPadPixCoords::CSPad2x2ImageProducer, which access geometry calibration data automatically, generates 2-d image and saves it in the event store for further processing.
Python modules for CSPAD2x2 geometry
Detector geometry software, described in Detector Geometry, has a Python interface which is recommended to use in new code development.
Alternatively, Python modules for CSPAD2x2 geometry are available in the package PyCSPadImage documented in CSPAD pixel coordinates and image producer in Python. They provides an interface for getting
Calibration parameters from DB and local directory,
Pixel coordinates,
Image producer
References
- Calibration Management Tool
- Detector Geometry
- CSPAD Alignment
- CSPAD Geometry and Alignment
- CSPAD pixel coordinates and image producer in Python (older version CSPAD image producer in Python )
Deprecated
C++ classes and modules for psana
data types are implemented in the package pdscalibdata
as CsPad2x2*
modules:
CsPad2x2CenterV1
CsPad2x2TiltV1
CsPad2x2PedestalsV1
CsPad2x2PixelGainV1
CsPad2x2PixelStatusV1
Access methods are implemented in the package PSCalib
in CSPad2x2CalibPars
module.
Example of acess is in PSCalib/test/ex_cspad2x2_calib_pars.cpp
.
Automated access to the cspad2x2 geometry parameters is implemented in packages:
- Package
CSPadPixCoords
generates and returns the CSPad2x2 pixel coordinates, taking into account geometry alignment parameters, if available in the expected place under/reg/d/psdm/<instrument>/<experiment>/calib
directory. - Module
CSPadPixCoords::CSPad2x2ImageProducer
produces CSPad2x2 image, accounting for correct geometry, if available.