LCLS-II DAQ


LCLS-II DAQ State Machine

Description of States

  • Reset: initial state of the system, jump to this state from any other state to recover from (some) errors
  • Unallocated: the state of the system before any detectors are allocated to participate in the DAQ.  The "roll call" transition is used (often repeatedly, on a timer) to query the available detectors, which can take some time if not all detector executables are running yet
  • Allocated: the state the system goes into after the user has selected which detectors they would like to use in the DAQ
  • Connected: the state of the system after all "connections" are made.  This idea of "connection" is general: it represents network connections (infiniband, ethernet, zeromq) as well as connections of the timing system readout groups, for example
  • Configured: the state of the system after configuring all selected detectors (often a time-consuming step) or ending a run.
  • Starting: this state is used to mark boundaries between scan-steps (where a motor is moved in coordination with pausing the DAQ)
  • Paused: a state where the triggers to the system are disabled
  • Running: the state where the DAQ is receiving per-shot data ("L1Accept").  The DAQ may also be configured to receive  a low rate (~1Hz) of SlowUpdate transitions which are used to record slow epics data and other slow data (e.g. time tool backgrounds)

Description of Transitions

  • Reset: recover from (some) errors. In practice it is more common to restart the DAQ if errors leave the partition in an inconsistent state.
  • RollCall: used (often repeatedly, on a timer) to query the available detectors, which can take some time if not all detector executables are running yet.
  • Alloc: changes the state from Unallocated to Allocated. Specifies which detectors (among those that responded to RollCall) to include in the DAQ partition. Detectors included in the DAQ partition subscribe to the "partition" Zmq topic.
  • Dealloc: changes the state from Allocated to Unallocated, if all members of the partition report success. Detectors unsubscribe from the "partition" Zmq topic.
  • Connect: changes the state from Allocated to Connected, if all members of the partition report success.
  • Disconnect: changes the state from Connected to Allocated, if all members of the partition report success.
  • Configure: changes the state from Connected to Configured, if all members of the partition report success.
  • Unconfigure: changes the state from Configured to Connected, if all members of the partition report success.
  • BeginRun: changes the state from Configured to Starting, if all members of the partition report success. If recording is enabled, a non-zero run number is allocated from the run database and run parameters are recorded in the logbook.
  • EndRun: changes the state from Starting to Configured, if all members of the partition report success. If recording is enabled, update the logbook with the end run time.
  • BeginStep: changes the state from Starting to Paused, if all members of the partition report success.
  • EndStep: changes the state from Paused to Starting, if all members of the partition report success.
  • Enable: changes the state from Paused to Running, if all members of the partition report success.
  • Disable: changes the state from Running to Paused, if all members of the partition report success.
  • L1Accept: While in Running state, the DAQ receives per-shot data synchronized by the timing system hardware.
  • SlowUpdate: While in Running state, the DAQ may be configured to generate a low rate (~1Hz) of SlowUpdate transitions which are used to record slow epics data and other slow data (e.g. time tool backgrounds). The timing of these transitions is not precise.



  • No labels