CsPad per-pixel gains from flat field measurement
Date | Detector | Gain mode | Photon source | Occupancy (photons/pixel) | Per-pixel histogram fit HDF5 | Deployed gain file | Comments |
---|---|---|---|---|---|---|---|
2016-02-16 | DsaCsPad | high | Iron K-alpha (6.4keV) | 0.015 | /reg/g/psdm/detector/alignment/cspad/ calib-cxi-camera2-2016-02-05/calib/ CsPad::CalibV1/CxiDs2.0:Cspad.0/pixel_gain/ run16_DsaCsPad_flat_orig.h5 | cxi01516-r0016-2016-02-18-FeKalpha.data | Success rate was low ~0.75%. Filled in the rest with average gain from each asic. |
2016-04-13 | DsaCsPad | high | Cu K-alpha (8.0keV) | 0.043 | /reg/g/psdm/detector/alignment/cspad/ calib-cxi-camera2-2016-02-05/calib/ CsPad::CalibV1/CxiDs2.0:Cspad.0/pixel_gain/ run6_DsaCsPad_flatIso.h5 | run6_DsaCsPad_flatIso.data | Success rate was high ~0.99%, but there were some scattering in the centre, so filled that in with the average gain from each asic. |
Note: CsPad has high and low gain modes. A factor of 7 is used to recalibrate the high gain to low gain, e.g. 28 ADU at high gain results in 4 ADU at low gain.
Calculation note: At 8keV, we expect around 30 ADUs per photon in high gain mode. At 6.4keV, we are seeing around 23 ADU per photon. currentADU/currentEnergy*8keV=23/6.4*8=28.75 ADU per photon which is close to 30 ADUs.
K-alpha table for Iron (6.4keV):
http://www.yourperiodictable.com/iron.php
K-alpha table for Copper (8.0keV):
http://www.yourperiodictable.com/copper.php
EPIX per-pixel gains
Date | Photon Source | Carrier ID 0/1 | Digital Card ID 0/1 | Analog Card ID 0/1 | Experiment/Run | Gain File | Comment |
---|---|---|---|---|---|---|---|
2016-04-14 | Cu K-alpha (8 keV) | 996663297/3791650826 | 1232098304/953206283 | 2655595777/520093719 | xcs01116/95 | gainPixelCorr_passZero_r95_c1.txt | Provided by Philip Hart |
Note that the following script can be used to dump out the EPIX ID numbers:
from psana import * import sys ds = DataSource(sys.argv[1]) evt = ds.events().next() cs = ds.env().configStore() cfg = cs.get(Epix.Config100aV2, Source(sys.argv[2])) print cfg.carrierId0() print cfg.carrierId1() print cfg.digitalCardId0() print cfg.digitalCardId1() print cfg.analogCardId0() print cfg.analogCardId1() #a0 = cfg.asics(0) #a0.chipID()
Which can be run like this:
python epixSerialNumber.py exp=mecl8216:run=73 epix100a