# Main Page

#

# API for SLS detectors data acquisition

Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition

The architecture of the acquisitions system is intended as follows:

- A socket server running on the detector (or more than one in some special cases)
- C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS
- the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities)
- the possibility of running all commands from command line. In order to ensure a fast operation of this so called "text client" the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored
- a Root library for data postprocessing and detector calibration (energy, angle).

slsDetectorUsers is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written.

slsReceiverUsers is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.

detectorData is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.

You can find examples of how this classes can be instatiated in mainClient.cpp and mainReceiver.cpp

Authors:
  Anna Bergamaschi, Dhanya Maliakal

Version:
  0.2

  ## Currently supported detectors

- MYTHEN
- GOTTHARD controls
- GOTTHARD data receiver

  ### Coming soon

- EIGER