Data taking starts with a StartRun command. PauseRun and StartRun commands are used to temporarily suspend data taking. A run ends with a EndRun command. The commands BeginRun etc can be interpreted as arrows between the 4 run states. RunControl will allow only sensible transitions, i.e. you can't start a run when already running.
Additional protection is provided by the components which can reject illegal transitions.
Some components might choose a different set of local states than the global one contains. It is then the responsibility of the LSC to map those to the regular run states. The DFC component is a special synch component. In case of a problem, such as a HV trip or a locked component falls out of state etc. The status of CESR has to be monitored throughout the run which we will accomplish by connecting CESR, i.e. the CESR object, to our interlock object .