Page History
...
PythonEditor for calib components for epix10ka and epixhr detectors
...
This example shows how to access in ami all internl components of the det.raw.calib(...) method such as calibration constants, per-panel trbit and asicPixelConfig, per-event gain factors and pedestals, mask, common mode correction, etc.
AMI test command for epixquad and epixhr
Code Block | ||
---|---|---|
| ||
# for epixquad - 4 epix10ka panels: ami-local -b 1 -f interval=1 psana://exp=ueddaq02,run=569,dir=/cds/data/psdm/prj/public01/xtc # for epixhr 1-panel: ami-local -b 1 -f interval=1 psana://exp=rixx45619,run=121,dir=/cds/data/psdm/prj/public01/xtc |
Code example for PythonEditor
In this example the PythonEditor box receives input objects for raw, config, calibconst, accesses and prints call det.raw.calib(...) internal components and returns common mode correction. For imaging, the 3-d array of common mode correction is converted to 2-d table of segments.
Code Block | ||||
---|---|---|---|---|
| ||||
import psana.detector.utils_ami as ua class EventProcessor(): def __init__(self): self.counter = 0 self.cc = None def begin_run(self): pass def end_run(self): pass def begin_step(self, step): pass def end_step(self, step): pass def on_event(self, raw, config, calibconst, *args, **kwargs): self.counter += 1 if self.cc is None: self.cc = ua.calib_components(calibconst, config) cc = self.cc ctypes = cc.calib_types() npanels = cc.number_of_panels() peds = cc.pedestals() # OR cc.calib_constants('pedestals') gain = cc.gain() # OR cc.calib_constants('pixel_gain') # ADU/keV gfactor = cc.gain_factor() # keV/ADU status = cc.status() comode = cc.common_mode() trbit_p0 = cc.trbit_for_panel(0) ascfg_p0 = cc.asicPixelConfig_for_panel(0) mask = cc.mask(status=True) dettype = cc.dettype() cbitscfg = cc.cbits_config_detector() cbitstot = cc.cbits_config_and_data_detector(raw, cbitscfg) gmap = cc.gain_maps_epix10ka_any(raw) peds_ev = cc.event_pedestals(raw) gfac_ev = cc.event_gain_factor(raw) calib = cc.calib(raw, cmpars=(0, 7, 300, 10)) cmcorr = cc.common_mode_correction(raw, cmpars=(0, 7, 300, 10)) print('== Event %04d ==' % self.counter) # print('config', cc.config) print('calib_types', ctypes) # print('calib_metadata', cc.calib_metadata('pedestals')) print(ua.info_ndarr(peds, 'pedestals')) print(ua.info_ndarr(cc.gain(), 'gain')) print(ua.info_ndarr(gfactor, 'gain_factor')) print(ua.info_ndarr(status, 'status')) print('common_mode from caliconst', str(comode)) print('number_of_panels', npanels) print('trbit_for_panel(0)', trbit_p0) print(ua.info_ndarr(ascfg_p0, 'asicPixelConfig_for_panel(0)')) print(ua.info_ndarr(raw, 'raw')) print(ua.info_ndarr(mask, 'mask')) print('dettype', dettype) print(ua.info_ndarr(cbitscfg, 'cbitscfg')) print(ua.info_ndarr(cbitstot, 'cbitstot')) print(ua.info_ndarr(gmap, 'gmap')) print(ua.info_ndarr(peds_ev, 'peds_ev')) print(ua.info_ndarr(gfac_ev, 'gfac_ev')) print(ua.info_ndarr(calib, 'calib')) print(ua.info_ndarr(cmcorr, 'cmcorr')) # img = cmcorr[0, 144:, :192] img = ua.psu.table_nxn_epix10ka_from_ndarr(cmcorr) print(ua.info_ndarr(img, 'img')) return img |
...
Overview
Content Tools