Versions Compared

Key

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

...

  • Instrument independent - detector can be moved between instruments and hatches.
  • Experiment independent - detector can be moved between experiments.
  • Portability - calibration data for particular detector should be portable as a self consistent file or (part of) calibration directory.
  • API + GUI for central management; management can ONLY be done through the API/GUI in order to prevent adding/removing unknown files without history.
  • Time stamp (sec) is THE ONLY value for validity range check; the same rules are applied to the time stamp, like for run number in current calibration system.
  • The <detname> is equivalent to <dettype>-<detid> and is THE ONLY choice for the file name in the calibration store.
  • Aliases to the calibration file names can be used to simplify access.
  • Support calibration versions.
  • Support links to predecessor and successor.

Architecture

To accommodate requirements calibration store suppose to be implemented as a combination of FS & DB files (hdf5 for uniformity).

...

Code Block
# Import
from PSCalib.DCStore import DCStore       # inport DCStore (Detector Calibration Store) object 

# Initialization
CPATH_DEF = '/reg/g/psdm/detector/calib'  # default calib directory
cpath = '<path>/calib'                    # local calib directory
cpath = '<path>/<dettype>-<detid>.h5'     # direct to file
cpath = env.calibDir()                    # '/reg/d/psdm/<INS>/<experiment>/calib' - accept current directory

detname = 'pnccd-12345678'                # standard name includes detector type, dash, and n-digit id number
detname = 'Camera1'                       # alias

cs = DCStore(cpath, detname)              # creates a DCStore object.
""" get calibration store object
    Input parameters:
    cpath [str] - path to the hdf5 file or calibration directory. 
                  If cpath is a path to hdf5 file - next parameter is ignored.
                  If cpath=None - default path is used.
                  If cpath is specified as a path to directory (or default) then detname can be an alias.  
    detname [str] - name/alias of the detector 
"""

UI

...

acess methods

Code Block
pctype = pedestals # status, rms, mask, gain, bkgd, common_mode, geometry, etc
tsp = tstamp parameter to identify constants, which can be retrieved from evt.run() - run number, evt
vers = None # for default or versind or version time stamp.

# generic access method:
obj = cs.get(ctype, tsp, vers)

# or specific access methods:
nda = cs.pedestals(p)
nda = cs.pixel_status(p)
nda = cs.pixel_rms(p)
...
geo = cs.geometry(p)

Base class

Is reserved to support common methods of all project classes. For now it stands for manipulations with tags but not limited to.

...