The ATLAS Run Control scheme implements a hierarchy of controllers underneath a single root controller. It is expected that there will be single overall controller for each major subdetector and that each subdetector will consist of one or more lower levels of controllers. A subdetector with more than one TTC partition might have one controller per partition. At the lowest level there would generally be one controller per crate or readout system.
The run control system [2] defines a number of states and
state transitions. The main states are Initial, Loaded, Configured
and Running. There is also a Paused state, and a concurrent Fault
state indicating the presence or absence of an error condition.
Each controller executes an action method on making each transition.
When making a given state transition, a parent controller completes
its transition action before any of its child controllers start
their actions.
In the normal case, all child transition actions occur in parallel
(asynchronously).
It is also possible to request, per controller per transition,
that they occur one by one (synchronously) either in
forward or reverse order, according to the order the children are
listed in the database.
The above ordering is the only synchronisation mechanism available.
It is not expected that actions in one crate should depend on actions
in another crate and no communication between child controllers is
implemented.
Synchronisation issues in the L1Calo system are discussed in
section 3.4.