Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Command to test

Code Block
titleCommand to test
ami-local -b 1 -f interval=1 psana://exp=ueddaq02,run=569,dir=/cds/data/psdm/prj/public01/xtc

Composition of Control Nodes for example

Image AddedImage AddedImage Added

Implementation of the class calib_componenyts

detector/utils_ami.py

code example is also available in the head of this module

Code example for PythonEditor

Code Block
titleCode example for PythonEditor
collapsetrue
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()        # 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=None)

        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'))

        return raw

TODO

common mode correction methods are not available yet in this example.

References

...