MENU
01-11-12

Data Acquisition Software for a Silicon Strip Detector Readout System

Autoren: Thomas Obermayer
Gruppe:
Kategorie: Masters-Thesis

It the area of high energy physics, Silicon Strip Detectors (SSDs) are used to reproduce the trajectories of particles traversing a particle detector. The readout of SSDs is accomplished by dedicated readout chips and readout systems intended for Data Acquisition (DAQ).

The Institute of High Energy Physics of the Austrian Academy of Sciences (HEPHY) developed a prototype of the Belle II Silicon Vertex Detector readout system, designed for initialising, controlling and reading out front-end chips of the APV25 type. It will be used for the Belle II Experiment conducted at the KEK research laboratory in Japan. An appropriate Windows-based DAQ software application supporting this prototype was also developed at HEPHY.

However, shortcomings in the design and documentation of this DAQ application caused issues in maintenance and further development.

This thesis describes the development process, the resulting design and the implementation of a new, Linux-based, DAQ application supporting the prototype readout system mentioned above. The thesis also presents a requirements specification, which was finalised ahead of further software development. Furthermore, a reproducible strategy for Object-Oriented Analysis (OOA) and the compliance with generally accepted principles of Object-Oriented Design (OOD) are described. It is shown how established design patterns and software engineering techniques were followed with the aim to create a maintainable C++ program that is easy to read, test and debug, and can be adapted to changing requirements. In addition to this, the extraction of a stable, state-of-the-art framework of components reusable for the Belle II Experiment is illustrated. An appropriate subset of the Unified Modeling Language (UML) is used to describe software structure and behaviour in brief.

As a whole, this thesis presents an approach as to how established software engineering techniques can be utilised to reach a reasonable tradeoff between temporal and technical development effort on the one hand and software quality on the other hand.