Page History
...
Add the Geometry Control Node as usually and remove input terminal for arr3d. Click on "Apply" and use any geometry output parameters except "image".
PythonEditor for calib components for epix10ka and epixhr detectors
Command to test 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 |
Composition of Control Nodes for example
Implementation of the class calib_componenyts
...
Code example
...
Code example for PythonEditor
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 |
Composition of Control Nodes in the example
Implementation of the class calib_componenyts
- Module detector/utils_ami.py will be available in releases grater than ps-4.5.24.
- It is implemented for epix10ka and epixhr detector types.
- Code example is also available in the head of this module.
- Common mode correction methods are not available yet in this example.
Code test in psana
python ./lcls2/psana/psana/detector/test_issues_2023.py 2
...
Overview
Content Tools