From EUDET-type beam telescopes
Jump to: navigation, search

Introduction and Overview

EUDAQ is a generic data acquisition framework. It is written in C++, and designed to be modular and portable, running on Linux, Mac OS X, and Windows. It was primarily written to run the EUDET-type beam telescopes with its user-specific extensions. However, it is designed, has been developed and is used as a common DAQ having user-specific interfaces for data acquisition (Producers) and for data analysis (DataConverter).

There are two different versions available:

  • EUDAQ1 for running the data acquisition in EUDET mode (one trigger = one event = one sub-detector frame) using one data collector
  • EUDAQ2 for running the data acquisition in AIDA mode (multiple trigger in one sub-detector frame) using optionally multiple data collectors

The first version was and is still used in many test beams showing a reliable performance. The second version is aiming for higher trigger rates which is possible together with the AIDA TLU, plus having more flexibility and options for data taking.


Please find compiled versions here:

The recent manual updates can be found as Latex code in the repository: The pdf is built, if a latex compiler is found by cmake, see below.


The installation is straightforward due to using cmake and is described:

Three steps are necessary:

  1. Getting the code, see below
  2. Required prerequisites for installation
  3. Compiling the code

Getting the code

The EUDAQ source code is hosted on github. The recommended way to obtain the software is with git, since this will allow you to easily update to newer versions. Using Unix and a shell, the latest version can be checked out with the following command:

git clone eudaq 

This will create the directory eudaq, and download the latest development version into it (master branch). If you already have a copy installed, and want to update it to the latest version, you do not need to clone the repository again, just change to the eudaq directory use the command:

cd eudaq
git pull

For production environments (e.g. testbeams) we strongly recommend to use the latest release version. Use the command

 git branch or 
 git status

to see at which branch you are. Use the command

git tag

to find all versions as well the newest version and type e.g.

git checkout v1.6-dev

to change to latest branch/version 1.6 or

git checkout tags/v1.6.0

to change to tag/version 1.6.0 (latest stable version, May 2016).

Cmake options

Using cmake, the EUDAQ installation is configured and makefiles will be prepared, before installing EUDAQ (make install). There are several options, which can be switch on or off, e.g. in order to compile the TLU producer:

cd build
cmake -DBUILD_tlu=ON ..

Possible options are:

Possible options: mention that -DBUILD_<producername>=ON needed is to enable bulding of a specific producer
option default comment
-DBUILD_manual OFF Builds Manual in pdf-format. pdflatex, scrartcl.cls and upquote.sty are required, e.g. sudo apt-get install texlive-latex-base, sudo apt-get install texlive-latex-recommended and sudo apt-get install texlive-latex-extra
-DBUILD_tlu OFF Builds TLU producer and executables. ZestSC1 and tlufirmware files are required located in extern folder. For Ubuntu, install libusb: sudo apt-get install libusb-dev
-DBUILD_<producername> OFF Builds specific producer: -DBUILD_<producername>=ON is needed to enable bulding of a specific producer.
-DBUILD_gui ON Builds GUI executables. Requires QT4/5.
-DBUILD_main ON Builds main EUDAQ executables.
-DBUILD_python OFF Builds Python EUDAQ binding library.
-DBUILD_pybindgen OFF Builds pybindgen binding libraries.
-DBUILD_onlinemon ON Builds Online Monitor executable. Requires ROOT.
-DBUILD_offlinemon OFF Builds offline monitor executable. Requires ROOT.
-DBUILD_metamon OFF Builds MetaData Monitor executable.
-DBUILD_resender OFF Builds resender producer.
-DBUILD_nreader OFF Builds native reader used for data conversion into LCIO. Requires LCIO/EUTelescope
-DINSTALL_PREFIX <PATH> Default: the EUDAQ folder. Changes the install prefix for libraries and executables, which will be install into the source directory (./lib and ./bin).

Out of box: EUDAQ1 on Ubuntu 14/16

Using a freshly installed Ubuntu, you don't need a lot peripherals to install EUDAQ succesfully:

(De-)installation using system path

If you want to place the EUDAQ executables in a standard path of your Unix machine, you can do the following installation and start of euRun:

mkdir eudaq
git clone eudaq/
cd eudaq/build/
cmake -DINSTALL_PREFIX=/usr/local/ ..
make -j4
sudo make install

At the momentm, the corresponding de-installation can be done by

cd eudaq/build/
sudo xargs rm < install_manifest.txt


See the manual (chapter 3):


Git and github

Install git (in Ubuntu):

sudo apt-get install git

Access the online hosting:

Workflow and "policy"

The workflow we are aiming at would be:

  • having one branch for the currently used EUDAQ version with ongoing development: master
  • having one branch for every stable release, like v1.4-dev
  • branching off from master whenever a new stable version is released: v1.5-dev etc
  • having one (or several) branches for future, data driven versions of EUDAQ: v2.0-dev or similar, which will be merged into master as soon as it's time for it. Of course this will be kept up to date with the latest master
  • all patches and bugfixes to stable branches are cherry picked into master

Pull requests should not contain configuration files and data files (ending with .txt or .conf). That should not go into the repository, which helps keeping the code base cleaner. If you need to keep track of settings and configurations and share them with collaborators we recommend setting up a private dedicated git repository inside the ~./conf/` directory and committing your configurations there.

DQM4Hep -- online monitoring

Within the AIDA2020 WP5, there is an effort for a new generic, monitoring tool for EUDAQ. You will find the code here: And here is a wiki on one of the first use cases: