From a conversation with Ric Claus on 3/17/2020.  We are trying to impose some order on the values here:

(ps-2.0.5) drp-tst-dev012:lcls2$ detnames -r exp=tstx00417,run=32,dir=/ffb01/data/tst/tstx00417/xtc
-------------------------------------------
Name     | Det Type | Data Type   | Version
-------------------------------------------
smdinfo  | offset   | offsetAlg   | 0_0_0  
runinfo  | runinfo  | runinfo     | 0_0_1  
xpphsd   | hsd      | hsdConfig   | 0_0_1  
xpphsd   | hsd      | hsd         | 1_2_3  
pva      | pva      | pvaAlg      | 1_2_3  
xppcspad | cspad    | cspadFexAlg | 1_2_3  
xppcspad | cspad    | cspadRawAlg | 1_2_3  
epics    | epics    | epics       | 0_0_1  
ebeam    | ebeam    | ebeamAlg    | 0_7_1  
tmots    | ts       | tsConfig    | 0_0_1  
tmots    | ts       | ts          | 0_0_1  
-------------------------------------------
(ps-2.0.5) drp-tst-dev012:lcls2$

We suggest it be revised to this:

(ps-2.0.5) drp-tst-dev012:lcls2$ detnames -r exp=tstx00417,run=32,dir=/ffb01/data/tst/tstx00417/xtc
-------------------------------------------
Name     | Det Type | Data Type   | Version
-------------------------------------------
smdinfo  | offset   | offsetAlg   | 0_0_0  
runinfo  | runinfo  | runinfo     | 0_0_1  
tmohsd   | hsd      | config      | 2_0_0  
tmohsd   | hsd      | raw         | 2_0_0  
tmoandor | andor    | raw         | 2_0_0  
tmocspad | cspad    | fex         | 2_0_0  
tmocspad | cspad    | raw         | 2_0_0  
epics    | epics    | raw         | 2_0_0  
ebeam    | ebeam    | raw         | 2_0_0  
tmots    | ts       | config      | 2_0_0  
tmots    | ts       | raw         | 2_0_0  
-------------------------------------------
(ps-2.0.5) drp-tst-dev012:lcls2$ 

Some thoughts on the choices above:

  • by way of reminder:  the detector-interface class is selected from dettype+datatype+version.  the Name can be anything chosen by the hutch scientists and are used to look up configurations.
  • feels like there should be a one-to-one correspondence between DetType and the "-D" option to the drp executable?
  • SerialNumber strings (not listed in the above tables) which are used to look up calibration constants should be settable administratively on drp command-line, with a default of empty-string.  some detectors (e.g. epix) will read those serial number's from the hardware and ignore the command line.  Ideally this serial number (or an alias created by Mikhail) should be displayed in the above table.
  • we shouldn't change smdinfo/runinfo at this point because they are hardwired into many files used by exafel
  • we will start official version numbers at 2.0.0 (0,1 reserved for kludged early tests)
  • we should endeavor to have a consistent raw data format for simple detectors with the same array rank (e.g. a simple 2D imaging detector) so they can all use the same detector interface class in psana (by inheritance).  This is similar to the "FrameV1" idea in LCLS-I.
  • the values for the Andor (a Pva detector) are perhaps the trickiest, since a Pva detector can be many things (andor, xtcav, waveform)
    • the pva detector would ideally auto-detect it's array rank (1D, 2D...) and type (uint32_t, float64,...) to make it more flexible
    • future less-generic pva detectors may do complex feature extraction (in some ideal world using "dlopen") and create complex data types
  • No labels