Page History
Include Page | ||||
---|---|---|---|---|
|
Table of Contents |
---|
Include Page | ||||
---|---|---|---|---|
|
Introduction
Cornell SLAC Pixel Array Detector (CSPAD) is an imaging X-ray detector made of silicon sensors (2x1) covering about 20x20cm² surface, as shown in the plot:
Pixel coordinates in 2x1 sensor chip are known with sub-micrometer precision. Construction of the detector allows significant freedom in relative positions of 2x1 sensors. To get precise pixel positions in the detector the 2x1 sensor coordinates needs to be calibrated. In this note we describe geometry of the CSPAD detector, optical and quad alignment procedure, parameters, and software providing access to precise geometry information.
2x1 Sensor Geometry
The 2x1 sensor geometry was tested with microscopic measurement. Two slides from Chris Kenney's presentation shows the pixel sizes:
The same slides in PDF format.
Important 2x1 features:
- Number of rows x columns = 185 x 388. (In DAQ notation of rows and columns is interchanged...)
- Most of pixels have size 109.92 x 109.92 um².
- Gap between two ASICS is covered by the two rows of elongated pixels with size 109.92 x 274.8 um².
- Two versions of sensors have different dimensions between corners, so it is reasonable to define pixel coordinates w.r.t. the sensor center.
Shield to sensor distance
Chart of CXI Camera1 provided by Serge Guillet on 2017-06-12.
Optical measurement
Optical measurement is conducted by Gabriel Blaj. Detector or its quad is installed on microscope table and 3-d coordinates of all 2x1 sensor corners are measured with precision about 8um (RMS) in x-y plane. All corners in the measurement are numerated in arbitrary order. It is expected that numeration order should be the same for different measurements. This procedure depends on CSPAD construction;
- For CSPAD with movable quads (i.e. for CXI) optical measurement is done separately for each quad. The numeration of corners is shown in the plot:
The same plots in PDF format: CSPAD quad metrology and CSPAD pixel layout in quads.
For each quad measurement is started from the point #1 which in assembled detector is closest to the beam. The 1-st point (x,y,z) coordinates are re-set to (0,0,0) in the beginning of measurements. At the end, it is checked that the 1-st point coordinates are reproduced within precision of measurement.
Note |
---|
The order of points in optical measurement does not coincide with numeration of 2x1 in DAQ, as shown in the plot (and in PDF file): |
- For CSPAD with fixed quad geometry (i.e. for XPP) optical measurement is done for entire detector. The numeration of corners in this case is shown in the file XPPMetrologyAnnotated.pdf and in the plot:
The 1-st corner of the 3-rd quad (x,y,z) coordinates are re-set to (0,0,0) in the beginning of measurements. At the end, it is checked that the 1-st point coordinates are reproduced within precision of measurement.
Corner coordinates are measured in micrometers (um) and are saved in the xlsx format table, also containing numeration of quads and points. Then, xlsx format table is converted to the text file format in order to use it in python script.
Example of tables for CXI:
Example of tables for XPP:
- Metrology in XLSX
- Metrology in TXT Python script converts this table to the table with standard numeration of points in quads:
- Metrology in standard TXT
Then, text table with "standard" numeration of points in quads is feed to the python script which provides quality check of optical measurement and evaluates the alignment parameters for quads. In the beginning, this script changes the numeration of points adopted in optical measurement to numeration of 2x1 used in DAQ. Further, all calibration parameters are associated with numeration of 2x1 sensors and quads in DAQ.
Quality Check Procedure
For quality check of optical measurement we calculate
S1 - 1st short side length of 2x1
S2 - 2nd short side length of 2x1
L1 - 1st long side length of 2x1
L2 - 2nd long side length of 2x1
D1 - 1st diagonal of 2x1 between corners 1 and 3
D2 - 2nd diagonal of 2x1 between corners 2 and 4
dS and dL are the deviations of the 1st and 2nd corner along the short and long sides, respectively. The sign of all dS are chosen in order to provide correct sign for the tilt angle (the same direction for all 2x1 sensors).
<dS/L> - the tilt angle of 2x1 averaged over two sides in radians.
angle(deg) - the same angle in degrees.
dD = D1 - D2
d(dS) = dS1 - dS2
d(dL) = dL1 - dL2
dz3(um) - signed distance from 2x1 sensor plane and corner 3, where the 2x1 sensor plane contains the corner points p1, p2, and p4. This plane is defined by the vectors v21=p2-p1, v41=p4-p1, and their orthogonal vector
Code Block |
---|
vort = [v21 x v41].
|
Scalar product with normalization defines the distance from point 3 to the 2x1 plane containing 3 other points:
Code Block |
---|
dz3 = (v31 * vort) / |vort|.
|
Quality check parameters expected for perfect geometry:
S1=S2, L1=L2 - the 2x1 sides should have equal length and width,
D1=D2 - the 2x1 diagonals should be equal,
dS1 = dS2 ? (388/185)*dL1 = (388/185)*dL2 - tilt angle should provide consistent deviation for all corners,
dD=0, d(dS)=0, and d(dL)=0 - within precision of measurement.
dz3(um) = 0
Everything, excluding <dS/L> and angle(deg), are in micrometers.
Example of the table with quality check results:
Code Block |
---|
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) dz3(um)
Quad 0
pair: 0 20891 20913 200 222 43539 43541 -102 -100 0.00485 0.27766 48298 48297 1 -22 -2 2.981
pair: 1 20910 20894 293 277 43540 43535 -127 -132 0.00655 0.37506 48302 48289 13 16 5 -23.986
pair: 2 20890 20906 99 83 43536 43536 42 42 0.00209 0.11976 48290 48293 |
Optical measurement
Optical measurement is maintained by Chris Kenney.
This procedure depends on CSPAD construction.
For CSPad with moving quads (for CXI) measurement is done quad-by-quad,
where the 1st point of each quad is cloasest to the beam and has coordinates (0,0).
For CSPad with fixed quads (for XPP) measurement is done for entire detector:
Chris produces a table of corner coordinates in um (micrometers) in xlsx format:
which is converted by hands to text format in order to feed the python script for quality check and getting calibration parameters for 2x1 center coordinates and tilt angles.
Example for CXI:
Example for XPP:
QC procedure and results
For quality chech we calculate
S1 - 1st short side length of 2x1
S2 - 2nd short side length of 2x1
L1 - 1st long side length of 2x1
L2 - 2nd long side length of 2x1
D1 - 1st diagonal of 2x1 between corners 1 and 3
D2 - 2nd diagonal of 2x1 between corners 2 and 4
dS and dL are the deviations of the 1st and 2nd corner along the short and long sides, respectively. The sign of all dS are chosen in order to provide correct sign for the tilt angle (the same direction for all 2x1 sensors).
<dS/L> - the tilt angle of 2x1 averaged over two sides in radians.
angle(deg) - the same angle in degrees.
dD = D1 - D2
d(dS) = dS1 - dS2
d(dL) = dL1 - dL2
Quality check parameters for the perfect measurement:
S1=S2, L1=L2 - the 2x1 sides should have equal length and width,
D1=D2 - the 2x1 diagonals should be equal,
dS1 = dS2 = 2*dL1 =2*dL2 - tilt angle should provide consistent deviation for all corners,
dD=0, d(dS)=0, and d(dL)=0 - within precision of measurement.
Everything, excluding <dS/L> and angle(deg), are in micrometers.
Example of the table:
Code Block |
---|
pair: S1 S2 dS1 dS2 L1 L2 dL1 dL2 <dS/L> angle(deg) D1 D2 dD d(dS) d(dL) Quad 0 pair: 0 20891 20913 200 222 43539 43541 -102 -100 0.00485 0.27766 48298 48297 1 -22 -2 pair: 1 20910 20894 293 277 43540 43535 -127 -132 0.00655 0.37506 48302 48289 13 16 5 pair: 2 20890 20906 99 83 43536 43536 42 42 0.00209 0.11976 48290 48293 -3 16 0 pair: 3 20897 20895 131 133 43545 43543 65 63 0.00303 0.17369 48299 48297 2 -2 2 pair: 4 20911 20896 -30 -45 43549 43547 17 15 -0.00086 -0.04934 48303 48306 -3 15 2 pair: 5 20901 20898 10 7 43540 43544 -8 -4 0.00020 0.01119 48296 48299 -3 3 -4 pair: 6 20904 20903 104 105 43536 43540 55 59 0.00240 0.13752 48302 48290 12 -1 -4 pair: 7 20901 20901 -7 -7 43545 43543 -3 -5 -0.00016 -0.00921 48299 48301 -2 0 2 Quad 1 pair: 0 20913 20914 -343 -342 43540 43550 165 175 -0.00787 -0.45066 48313 48303 10 -1 -10 pair: 1 20898 20901 -145 -142 43548 43551 62 65 -0.00330 -0.18880 48300 48309 -9 -3 -3 pair:16 2 20895 209030 -151 -159 -3.034 pair: 3 20897 43535 20895 43532 131 -74 133 -77 -0.00356 43545 -0.20400 43543 48289 48291 65 -2 63 0.00303 8 0.17369 48299 3 pair: 3 20872 48297 20909 2 -35 -722 43541 2 43554 -376.003 pair: 4 20911 20896 -24 -0.0012330 -0.0703945 48294 43549 48303 43547 -9 17 37 15 -13 pair: 40.00086 -0.04934 20940 48303 20904 48306 -455 -4913 43527 15 43554 214 2 241 -0.01086 -0.62242 48309 483095.994 pair: 5 20901 20898 10 0 7 36 -27 pair: 543540 43544 20910 20903 -8 -302 -3094 0.00020 43546 435460.01119 48296 145 48299 145 -0.00702 -0.401963 48304 483073 -34 79.993 pair: 6 20904 20903 0 pair: 6 20901104 20919 105 -421 -43943536 43540 43529 43539 55 -213 59 -203 -0.0098800240 -0.5659313752 48302 48290 48296 4829812 -21 18-4 -1052.002 pair: 7 20901 20907 20901 20907 -4527 -4527 43545 43548 43543 43539 -2013 -2105 -0.0103800016 -0.5947500921 4831548299 4829448301 21-2 0 2 9 14.001 Quad 21 pair: 0 2091420913 20914 -25 343 -25342 4353643540 4354043550 10165 14175 -0.0005700787 -0.0329045066 4830048313 4830048303 10 0 -1 0 -10 -424.002 pair: 1 2090120898 2089720901 -145 7 -142 343548 43551 43546 43536 62 -1 65 -110.00330 -0.0001118880 48300 0.00658 48309 48293 48300 -9 -7 -3 4 -3 10-23.005 pair: 2 2089920895 20903 -256151 -260159 4353343535 43532 43539 -12774 -12177 -0.0059300356 -0.3395420400 4829348289 4829448291 -12 8 4 3 -617.995 pair: 3 2091220872 2090420909 -210235 -202272 43341 43540 43354 43547 -10637 -9924 -0.0047300585 -0.2710633507 48201 48300 48036 48306 165 -6 37 -8 -13 -713.010 pair: 4 2091020940 2090320904 -543455 -550491 4353543527 4353643554 261214 262241 -0.0125501086 -0.7192362242 48309 48309 48298 48299 0 -1 36 7-27 -1.101 pair: 5 2090420910 2090520903 -241302 -240309 4353843546 4354443546 111145 117145 -0.0055200702 -0.3164740196 4829848304 4830148307 -3 -17 -6 pair: 60 20903 20902 6.016 pair: 6 20901 21 20919 -421 22 -439 43539 4354343529 43539 8-213 -203 12 -0.00988 -0.0004956593 0.0282948296 48298 48298 -2 0 18 -1 10 -48.026 pair: 7 2090220907 2090320907 -452 82 -452 81 43548 43539 43546 43547-201 -210 35 -0.01038 -0.59475 36 48315 0.0018748294 0.10723 21 48300 48306 0 -6 19 -18.982 Quad 32 pair: 0 2090220914 2089820914 -8225 -8625 43536 4354343540 3010 3714 -0.0019300057 -0.1105403290 48300 48300 48289 48302 0 -13 0 4 -4 -711.013 pair: 1 20901 2090020897 20904 7 79 3 83 43546 43548 43536 43541 -351 -4211 0.0018600011 0.1065800658 4830148293 4830148300 -7 0 -4 10 7 pair: 2 20912 4.036 pair: 2 20894 20899 18120903 -256 199 -260 43536 43533 43535 43539 97-127 -121 96 -0.00593 -0.0043633954 48293 0.25005 48294 48298 48289 -1 9 4 -18 -6 -1.023 pair: 3 20912 2090520904 -210 119 -202 126 43540 43539 43538 43547 -106 -99 -0.00473 -0.27106 48300 48306 -6 -8 -7 57 24.004 pair: 4 56 0.00281 0.16121 48296 48301 -5 -7 1 pair: 4 20894 20912 -454 -436 43534 43545 212 223 -0.01022 -0.58560 48303 48296 7 -18 -11 pair: 5 20906 20919 -336 -323 43527 43535 155 163 -0.00757 -0.43369 48295 48294 1 -13 -8 pair: 6 20902 20905 -203 -206 43537 43525 -89 -101 -0.00470 -0.26916 48293 48287 6 3 12 pair: 7 20900 20897 -140 -137 43539 43544 -68 -63 -0.00318 -0.18225 48298 48296 2 -3 -5 20910 20903 -543 -550 43535 43536 261 262 -0.01255 -0.71923 48298 48299 -1 7 -1 0.004 pair: 5 20904 20905 -241 -240 43538 43544 111 117 -0.00552 -0.31647 48298 48301 -3 -1 -6 -6.024 pair: 6 20903 20902 21 22 43539 43543 8 12 0.00049 0.02829 48298 48298 0 -1 -4 8.999 pair: 7 20902 20903 82 81 43546 43547 35 36 0.00187 0.10723 48300 48306 -6 1 -1 9.995 Quad 3 pair: 0 20902 20898 -82 -86 43536 43543 30 37 -0.00193 -0.11054 48289 48302 -13 4 -7 1.994 pair: 1 20900 20904 79 83 43548 43541 -35 -42 0.00186 0.10658 48301 48301 0 -4 7 -17.993 pair: 2 20912 20894 181 199 43536 43535 97 96 0.00436 0.25005 48298 48289 9 -18 1 10.011 pair: 3 20912 20905 119 126 43539 43538 57 56 0.00281 0.16121 48296 48301 -5 -7 1 -16.000 pair: 4 20894 20912 -454 -436 43534 43545 212 223 -0.01022 -0.58560 48303 48296 7 -18 -11 2.023 pair: 5 20906 20919 -336 -323 43527 43535 155 163 -0.00757 -0.43369 48295 48294 1 -13 -8 5.993 pair: 6 20902 20905 -203 -206 43537 43525 -89 -101 -0.00470 -0.26916 48293 48287 6 3 12 2.981 pair: 7 20900 20897 -140 -137 43539 43544 -68 -63 -0.00318 -0.18225 48298 48296 2 -3 -5 29.997 |
This quality check works well to catch significant typos in input table. In case of obvious typos input table can be corrected. When the quality check is passed successfully the alignment parameters are saved and deployed under the calib
.
Detector geometry model
Since 2014 we support universal detector geometry software which is documented in the Detector Geometry page and in CSPAD-geometry-parameters.pdf.
Alignment parameters from optical measurement
From optical measurement we extract coordinates of the center of each 2x1 sensor and its tilt angle.
The center coordinates are evaluated as an averaged over 4 corners measurements for each axis.
The tilt
parameters are used along with rotation
to completely define orientation of 2x1 in quad (for CXI) or in detector (for XPP).
Alignment of quads in the detector
For CSPad with fixed quad geometry (like in XPP) optical measurement of entire detector (should) produces complete information for geometry alignment.
For CSPad with moveable quads (like in CXI) quads relative position needs to be adjusted through the alignment parameters for quads. It is usually done using typical images with diffraction rings, wires or other shading objects:
Although few algorithms of automatic quad alignment were tried, we did not find good generic way for automated quad tuning. Currently, the quad tuning parameters in marg_gap_shift
and offset_corr
are adjusted manually for runs with specific images.
Calibration store
The official space for CSPAD alignment parameters is
/reg/d/psdm/<INSTRUMENT>/<experiment>/calib/CsPad::Calib<VERSION>/<CSPad-name>/<type>/<run-range>.data
For example:
Code Block |
---|
/reg/d/psdm/CXI/cxi80410/calib/CsPad::CalibV1/CxiDs1.0:Cspad.0/geometry/1142-end.data
|
The file name consists of the run range followed by the .data
extension, for example, 0-end.data
, 11-end.data
, 47-52.data
, etc.
Calibration type
Detector geometry calibration information is located in a single file of type
geometry
- contains hierarchical description of all detector components; for example for CSPAD, sensors' location and rotation in the quads, quads - in the detector, detector - in the setup, etc.
Archive and History
Optical measurement and other alignment files can be found in
- /reg/g/psdm/detector/alignment/cspad/
- Geometry History
Detector data access software
References
- CSPAD Geometry and Alignment - Depricated - old version of this page
- Detector Geometry - confluence page
- CSPAD in DAQ - schematic description of CSPAD geometry available in DAQ.
- CSPAD quad metrology - slides for CXI type CSPAD quads
- CSPad pixel layout in quads - pdf file with numeration of ASICs in the CSPAD quads
- XPPMetrologyAnnotated.pdf - order of measurements of XPP camera.
- Geometry History - page with references to calibration files.
- Detector data access software - auto-generated documentation of the Detector package.