You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Code examples

Most truthful description is on git: detector/areadetector.py

Create DataSource, Run, and Detector objects

    from psana import DataSource
    ds = DataSource(exp='tmoc00318',run=10, dir='/cds/data/psdm/prj/public01/xtc')
    orun = next(ds.runs())
    det = orun.Detector('epix100')

Loop over events and access detector data

Methods guaranteed for all area detectors - raw, calib, and image:

    for evt orun.events():
        o = det.raw
        raw = o.raw(evt)
        clb = o.calib(evt)
        img = o.image(evt)

Optional parameters

a = o.calib(evt, cmpars=(7,2,100,10), mbits=0o7, mask=None, edge_rows=10, edge_cols=10, center_rows=5, center_cols=5)
a = o.image(self, evt, nda=None, **kwa)

Other useful area detector methods

# access calibration constants and derived arrays
peds = o._pedestals()
gain = o._gain() # ADU/keV
gfac = o._gain_factor() # keV/ADU
rms = o._rms()
status = o._status()
mask = o._mask_calib()
mask = o._mask_from_status()
mask = o._mask_edges()
mask = o._mask(calib=False, status=False, edges=False, **kwa)
mask = o._mask_comb(mbits=0o377, **kwa)

arrx, arry, arrz = o._pixel_coords(do_tilt=True, cframe=0)
indx, indy, indz = o._pixel_coord_indexes(pix_scale_size_um=None, xy0_off_pix=None, do_tilt=True, cframe=0)
  
# array of the common mode increment
incr = o._common_mode_increment(evt, cmpars=(0,7,100,10))

References

  • No labels