Versions Compared

Key

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

...

Code Block
/                                                                   # top-root-level contains info for the unique detector version
 dettype (str)                                                      # detector type name, ex: cspad, pnccd, etc
 detid (str)                                                        # unique detector id, ex: 01234
 tscfile (uint)                                                     # time stamp of creation of this structure
 predecessor (str)                                                  # name of the previous detector if available or None
 successor (str)                                                    # name of the next detector if available or None
 tags (dict)                                                        # dictionary of tags associated with this version of detector
 <ctype>/history (dict)                                                     # dictionary of history records paired # folder for calibration type
as (tstamp:record)
 <ctype>/             ctype (str)                                             # folder #for calibration type name
          tagsctype (dictstr)                                               # dictionary of tags associated with calibration type
calibration type name
          tags (dict)    <tstamp-range>/                                           # dictionary folderof fortags timeassociated stampwith validitycalibration rangetype
          <tstamp>[-<tstamp-history (dict)                                            # dictionary of history records paired as (tstamp:record)
          <tstamp-range>/                                           # folder for time stamp validity range
          <tstamp>[-<tstamp-end>]/                                  # folder for validity range. If <tstamp-end> is not specified - then valid to the end
                                  tsbegin (uint)                    # time stamp for the beginning of the validity range
                                  tsend (uint)                      # time stamp for the end of the validity range
                                  defaultv                          # reference to the default calibration, ex:  <vers-tstamp2>
                                  tags (dict)                       # dictionary of tags associated with validity range range
                                  history (dict)                    # dictionary of history records paired as (tstamp:record)
                                  <vers-tstamp1>/                   # folder for version created on tstamp1
                                                 tsvers (uint)      # tstamp1 of this version production 
                                                 calib (ndarray)    # calibration data
                                                 history (strdict)     # #dictionary productionof history records paired as (tstamp:record)
                                                  tagstags (dict)        # dictionary of tags, 
                                                                    #   ex: array size, number of dimensions, shape, data type, experiment, run, comments, author

                                  <vers <vers-tstamp2>/                   # folder for version created on tstamp2
                                                 tsvers (uint)
                                                 calib (ndarray)
                                                 history (strdict)
                                                 tags (dict)
           <tstamp2>[-<tstamp2-end>]/                               # folder for the next validity range.
 pedestals/                                                         # folder for the next calibration type, pedestals
 rms/                                                               # folder for the next calibration type, rms

...

Code Block
DCBase - base class for this project
====================================
tags = obj.tags()                  # returns (dict) dictionary of tags associated with each object
tag  = obj.tag(k)                  # returns tag value for key k
log  = obj.history()               # returns (str) history records preceded by the #time returnsstamp tagas valuea fortext
d key k
log  = obj.historyhistdict()               # returns (strdict) history recordsdictionary associated with current object

obj.set_tags(d)                    # set (dict) dictionary of tags for object
obj.add_tag(k,v)                   # add (k,v) tag to the dictionary of tags for object
obj.del_tags()                     # delete all tags from the dictionary
obj.del_tag(k)                     # delete tag with key k
obj.add_recordhistory(rec, ts)           # add (str) record with (int)  # add (str) hystory recordtime stamp to the history dictionary (ts:rec). If ts is None - call current time is used as a key. 

Access methods

Code Block
DCStore methods
===============
tscfile     = cs.tscfile()               # (int) time stamp of the file creation
dettype     = cs.dettype()               # (str) detector type
detid       = cs.detid()                 # (str) detector id
detname     = cs.detname()               # (str) detector name of self object
predecessor = cs.predecessor()           # (str) detname of predecessor or None
successor   = cs.successor()             # (str) detname of successor or None
ctypes      = cs.ctypes()                # (list) calibration types in the file
cto         = cs.ctypeobj(ctype)         # (DCType ~ h5py.Group) calibration type object
_________________________________________
nda         = cs.get(ctype, tsp, vers)   # (str) ctype - calibration type
                                         # (...) tsp - parameter to get time stamp (evt, runnum, ts_sec) 
_________________________________________# (int) vers - version of calibration, None - use default 


DCType methods
==============
ctype       = cto.ctype()                # (str) of ctype name
tsranges    = cto.ranges()               # (list) of time ranges for ctype
tsro        = cto.rangeobj(tsrange)      # (DCRange ~ h5py.Group) time stamp validity range object


DCRange methods
===============
tsbegin     = tsro.begin()               # (int) time stamp beginning validity range
tsend       = tsro.end()                 # (int) time stamp ending validity range
versions    = tsro.versions()            # (list of uint) versions of calibrations
versodef    = tsro.versdef()             # (DCVersion ~ h5py.Group) reference to the default version in the time-range object
verso       = tsro.versobj(vers)         # (DCVersion ~ h5py.Group) specified version in the time-range object


DCVersion methods
=================
tsvers      = verso.tsprod()             # (int) time stamp of the version production
calibdata   = verso.calib()              # (np.array) calibration array

...