Versions Compared

Key

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

Table of Contents

This note describes area detector interface methods to access raw and calibrated data, reconstruct image for mutli-panel detector, retrieve calibration constants, geometry parameters, define the mask for pixel array, etc.

Set environment

Code discussed in this note works on psana nodes which have access to data in lcls2 environment described in LCLS-II psana Environment.

To run examples one has to ssh to psana node and set environment

Code Block
titleLogin to psana node and set lcls2 environment
ssh -Y pslogin.slac.stanford.edu
ssh -Y psana
source /cds/sw/ds/ana/conda2/manage/bin/psconda.sh

Code examples

Most updated description of this interface is on git in the head of the file Most truthful description is on git: detector/areadetector.py

Create DataSource, Run, and Detector objects

...

Code Block
kwa = <dict-of-mask-parameters>
a = o.calib(evt, cmpars=(7,2,100,10), **kwa)
a = o.image(evt, nda=None, **kwa)

See mask usage example in Area detector mask examples.

Calibration constants

All detector calibration constants (np.array) and associated  metadata (dict) are available through the dictionary det.calibconst with calibration type as a key. For example:

...

Possible calibration types: pedestals, pixel_status,  pixel_rms,  pixel_gain, pixel_mask, etc.

Other useful area detector methods

Mask

See mask usage example in Area detector mask examples.

Code Block
Code Block
# 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_default(dtype=DTYPE_MASK)
mask = o._mask_calib()
mask = o._mask_calib_or_default(dtype=DTYPE_MASK)
mask = o._mask_from_status(status_bits=0xffff, gain_range_inds=(0,1,2,3,4), dtype=DTYPE_MASK, **kwa)
mask = o._mask_neighbors(mask, rad=9, ptrn='r')
mask = o._mask_edges(width=0, edge_rows=1, edge_cols=1, dtype=DTYPE_MASK, **kwa)
mask = o._mask_center(wcenter=0, center_rows=1, center_cols=1, dtype=DTYPE_MASK, **kwa)
mask = o._mask(status=True, status_bits=0xffff, gain_range_inds=(0,1,2,3,4)\
               neighbors=False, rad=3, ptrn='r',\
               edges=True, width=0, edge_rows=10, edge_cols=5,\
               center=True, wcenter=0, center_rows=5, center_cols=3,\
               calib=False,\
               umask=None,\
               force_update=False)

Other useful area detector methods

Code Block
# direct access to 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()

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