Big Idea

  • everything goes in the config db with config keys BEAM/CAL/FEXA/FEXB
  • need better tools for managing configurations (e.g. prescales, drp-python scripts (per-detector), teb python scripts (Ric already has this in this configdb))
  • maybe use BEAM/NOBEAM idea
  • maybe create python tools to clone the default configuration with "deltas" for calibration, feature-extraction "A" mode, feature-extraction "B" mode
    • if we tweak the default configuration, then should be quick to regenerate the calib/fexA/fexB configurations (like BEAM/NOBEAM)
    • a detail: the default configuration should be "write protected"
    • it may be that the default main-branch configuration changes in a non-backwardly compatible way so the python "cloning scripts" need to be updated
    • ideally would use the existing major/minor/micro version numbers that the config objects already have to determine compatibility?
  • operator would select the configuration like they do with BEAM/NOBEAM (should be scriptable for "takepeds")
  • the NOBEAM idea is out-of-date (was used to manage timing differences of event codes in LCLS1) so now we would have BEAM/CAL/FEXA/FEXB, and that set would be dynamic
    • ideally the user can change this outside of configure (we may have code that needs to be fixed: sometimes "connect" code runs at startup ... could be a problem if configdb is referenced)
  • concern: 
  • the idea of the "default" or "main branch" configuration (BEAM?) is a key idea. maybe we should change the name.
  • in future drp-python may not be fast enough for high rate expts.  We may have to use .so with dlopen for the equivalent C++ approach (like Ric already does with trigger .so).


Discussion of drp-python

March 2, 2023:

  • how to configure
    • see above for use on configdb
  • when do things happen
    • should start drp-python in config phase1: Ric suggests do the process-fork at startup, then have the python interpreter switch which scripts it runs at configure phase1.
    • (a detail) FYI: worker threads get shutdown on unconfigure (is this necessary? Ric says maybe some array sizes change.  Ric thinks changing startup/shutdown times would be a lot of work.)
  • No labels