Here are the high level steps for when a new device needs to be integrated in the DAQ

Step-by-step guide

the following files need to be setup

  1.  the config store python file to initialize the mongo daq config database.  See example here
    https://github.com/slac-lcls/lcls2/blob/master/psdaq/drp/tt_config_store.py
  2.  the configuration reading python file to read from the mongo DAQ configuration database and return a json.  See example here
    https://github.com/slac-lcls/lcls2/blob/master/psalg/psalg/configdb/tt_config.py
  3. the xtc writer that reads from the new DAQ device.  See examples here for writing and reading
    https://github.com/slac-lcls/lcls2/blob/0558e5e011e72f92523ac113680e0b868c9ab570/psdaq/drp/pgpread_timetool.cc#L368
  4. Finally, the detector class needs to be setup.  See example here
    https://github.com/slac-lcls/lcls2/blob/master/psana/psana/detector/timetool.py
    Note how the name of the class is a concatenation of the string located here
    https://github.com/slac-lcls/lcls2/blob/033a8c27f0ec745c704233261b03cce1d279a1a2/psdaq/drp/pgpread_timetool.cc#L192-L198

Visual relationships between the class types involved can be viewed here

https://docs.google.com/presentation/d/1KsTXafudKoDTHlqAQXOHSZRLQ1x734kTlrVniV3K-NI/edit#slide=id.g64c80c79d8_8_0