At the Free-electron Laser Hamburg ( FLASH) we use the Distributed Object Oriented Control System ( DOOCS). Devices are implemented via DOOCS server and via an API ( ONLINE) it is possible to request data directly from the DOOCS server by knowing the DOOCS address.
As correlations of different physical properties are often required all data at FLASH are indexed by the trainID, which identify each of FLASH's pulse trains. The during a beamtime recorded data are stored via a Data Acquisition System ( DAQ) which sort all events from the individual DOOCS server by trainID. When requested HDF files are created after the beamtime which includes the important data from the accelerator and its diagnostic as well as the data created by the users. This time scale we define as
offline as the HDF files are converted after the beamtime is over. For synchronous data during an experiment it is possible to create shorter HDF slices via a
nearOnline converter within a few minutes. For working with this partially incomplete HDF slices we provide an API called BeamtimeDaqAccess. Reading synchronous data via an
online API is possible via a configurable DAQ middle layer server, the DAQmonitor, which feeds the correlated data back in the control system while it provides a ring buffer with 32 events in size.