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

Introduction and Manual

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 written primarily to run the EUDET Pixel Telescope, but is designed to also be generally useful for other systems.

For a quick introduction, follow the dedicated webpages

For a more detailed support, read the manual (> 60 pages), which can be downloaded here:

In the following, some basics are collected.


Three steps are necessary:

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

The installation is described at

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: 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: