Emulated data
- exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc 20-panel epixhr_emu
- exp=tstx00417,run=277,dir=/cds/data/drpsrcf/tst/tstx00417/xtc 1-panel epixhr_emu
Data fix for single-panel detector in run 277
To fix issues in data two methods re-implemented in psana/detector/epixhremu.py
_config_object - adds missing in data configuration info for
trbit = [0,0,0,0]
asicPixelConfig = np.zeros((144, 768), dtype=np.uint8)
Default geometry files
Detector package code is fixed to load default geometry from files if constants are missing in DB
lcls2/psana/psana/pscalib/geometry/data/geometry-def-epixhr1x4-01.data
lcls2/psana/psana/pscalib/geometry/data/geometry-def-epixhr1x4-20.data
Commands to deploy constants
pedestals, pixel_rms, pixel_status, pixel_gain
epix10ka_deploy_constants -k exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu -o ./work -D
epix10ka_deploy_constants -k exp=tstx00417,run=277,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu -o ./work -D
geometry
cdb add -e tstx00417 -d epixhremu_000001 -c geometry -r 277 -f lcls2/psana/psana/pscalib/geometry/data/geometry-def-epixhr1x4-01.data -i txt -l DEBUG
cdb add -e tstx00417 -d epixhremu_000002 -c geometry -r 276 -f lcls2/psana/psana/pscalib/geometry/data/geometry-def-epixhr1x4-20.data -i txt -l DEBUG
datinfo
datinfo -k exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu
datinfo -k exp=tstx00417,run=277,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu
det.raw.image
det.rew.image calls det.rew.calib
single-panel
epix10ka_raw_calib_image calib -k exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu
epix10ka_raw_calib_image -k exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu
exp=tstx00417,run=277
single panel shape:(1, 144, 768)
New interface for single or a few of total number of panels
exp=tstx00417,run=277
segnums = det.raw._segment_numbers = [3,]
pedestals and other arrays from calib constants including mask and geometry coordinate and index arrays:
peds = det.raw._pedestals() # peds.shape=(7, 1, 144, 768)
peds = det.raw._pedestals(all_segs=True) # peds.shape=(7, 20, 144, 768)
mask = det.raw._mask(...) # mask.shape=(1, 144, 768)
mask = det.raw._mask(all_segs=True, ...) # mask.shape=(20, 144, 768)
x,y,z = det.raw._pixel_coords(...) # x/y/z.shape=(1, 144, 768)
x,y,z = det.raw._pixel_coords(all_segs=True, ...) # x/y/z.shape=(20, 144, 768)
raw = det.raw.raw(evt) # raw.shape=(1, 144, 768) <== ALWAYS
raw = det.raw.calib(evt) # calib.shape=(1, 144, 768) <== ALWAYS, because derived from raw.
image = det.raw.image(evt, nda=None, value_for_missing_segments=100, **kwa)
image = det.raw.image(evt, nda=None, value_for_missing_segments=None, **kwa)
20-panel
epix10ka_raw_calib_image calib -k exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu
epix10ka_raw_calib_image -k exp=tstx00417,run=276,dir=/cds/data/drpsrcf/tst/tstx00417/xtc -d epixhr_emu
exp=tstx00417,run=276
20-panel shape:(20, 144, 768)
Summary
- det.raw.raw/calib/image works for epixhremu as
- assuming that issue in data confugiration are fixed, the real detector epixhr<real-name>.py needs to be implemented from epixhremu.py with removing fixes. in code