README contents

  1. Overview
  2. License
  3. Compilation
  4. Documentation
  5. Inheritance
  6. Contributors
  7. Contact

1. Overview

Drasi forms the network data pump part of a data acquisition system. It handles network communication between multiple nodes that participate in the same dead-time domain. Together with dedicated trigger bus hardware it ensures synchronous startup of readout nodes and event builder and then (much helped by the trigger modules), ensures event synchronisation between the nodes.

It is built to ‘want to run’, i.e. as soon as all participating nodes are running their drasi instances, data acquisition will start. Also, when a system is lost, the other will wait for it to reappear and then immediately restart readout. The purpose of this is to allow easy operation during experiment preparations, where individual systems often need to be restarted due to reconfiguration.

2. License

DRASI is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.

DRASI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with DRASI. If not, see <http://www.gnu.org/licenses/>.

For details, see the file COPYING.LIB.

3. Compilation

Typical dependency installation on a GNU/Linux Debian system (ncurses is optional):

apt-get install make gcc libncurses-dev

All necessary configuration is performed during build. The libraries and programs are compiled by issuing:

make

If you have the terminal multiplexer ‘tmux’ installed, the system can be tested with a simulated trigger bus:

scripts/runsim.sh

To terminate the simulation, hit ‘C-b d’, i.e. Ctrl+b followed by d, and then issue:

scripts/runsim.sh –kill

4. Documentation

More comprehensive documentation is available:

http://fy.chalmers.se/~f96hajo/drasi/

5. Inheritance

Drasi owes much of its design to experiences with the GSI Multi Branch System (MBS, see http://daq.gsi.de/). While sharing no code (except for some function prototypes, macro signatures and typedefs when operating in f_user-mode), it produces LMD data files, and provides data over the network using the transport and stream protocols.

Likewise, the GSI TRIVA series of modules are what really ensures the event synchronisation. The simple yet effective means of associating each trigger over the trigger bus with a local few-bit counter make it virtually impossible for lost or spurious triggers in the dead-time domain to pass undetected.

6. Contributors

Drasi would not be without the testing, suggestions for improvements, bug reports, and direct code contributions:

Michael Munch Bastian Loeher Hans Törnqvist

7. Contact

Håkan T. Johansson e-mail: f96hajo@chalmers.se Subatomic physics Department of Physics (previously Fundamental physics) Chalmers University of Technology 412 96 Göteborg Sweden