Page History
...
In this note we discuss common mode correction algorithms. Common mode is a hardware effect of collective pixel intensity variation due to synchronous variation of potentials on sensor chip or ADC at readout process. This effect can be corrected at low sensor illumination, where the number of pixels with energy deposition from photons is small. The spectrum of pixel intensities without photons should be grouped in the peak with small offset of the average from zero (if the dark rate correction is already applied) due to the common mode effect. This offset can be evaluated and subtracted from all pixel intensities in the group of synchronously fluctuating pixels. The number and structure of commonly behaving pixel groups depend on detector hardware.
Implementation
Below we describe common Common mode correction algorithms used in
- psana module
ImgAlgos::NDArrCalib
. This correction along with others can be applied to raw ndarray under control of the psana configuration file for specified detector, for example for Epix100a:
Code Block |
---|
[ImgAlgos.NDArrCalib]
source = DetInfo(:Epix100a)
key_in = ndarray-raw
key_out = ndarray-clb
do_peds = yes
do_cmod = yes
do_stat = yes
... |
where keywords do_peds
and do_cmod
should have value yes
or true
in order to turn on pedestal subtraction and common mode correction algorithms.
Detector.PyDetector
package which provides uniform access to calibration and data for all detectors.
is applied in the Detector interface method calib
:
arr = det.calib(evt, cmpars=None)
and is controlled by the list/tuple of parameters cmpars
=(<algorithm>, <mode>, <algorithm-specific parameters>,...).
Common mode correction can be turned off using cmpars=(0,0)
.
If this list of parameters is not specified cmpars=None
, it is searched under the experimental calib directory or substituted by defaultLow level implementation of the common mode correction algorithms is done in class ImgAlgos::CommonModeCorrection
which uses methods from ImgAlgos::CommonMode
.
Each algorithm may load file with parameters from calibration directory, which by default accounts for experimnet, calibration version, data source, calibration type and run range:, for example
Code Block |
---|
/reg/d/psdm/<INS>/<experiment>/calib/<calib-version>/<data-source>/<calibration-type>/<run-range>.data For example: /reg/d/psdm/XPP/xppi0614/calib/Epix100a::CalibV1/NoDetector.0:Epix100a.0/pedestals/0-end.data /reg/d/psdm/XPP/xppi0614/calib/Epix100a::CalibV1/NoDetector.0:Epix100a.0/common_mode/0-end.data |
...
We use algorithms earlier developed for CSPAD and other detectors and currently residing in ImgAlgos
and psalg
packagesavailable through the Detector package.
Selection of algorithm of particular type is controlled by the parameters in file for common_mode
calibration type.
...
Common mode correction for CSPAD2x2 in this example shows minor improvement.
References
- AreaDetector - Detector Interface is described in the head of this file.
- 2014-03-25-Ankush-CommonModeNoise.pdf - stand-alone test of common mode correction for pnCCD
- psana - Module Catalog - Module ImgAlgos::NDArrCalib
- Epix100a
- Fccd960-Detector