-
Claire Antel authoredClaire Antel authored
Welcome to FASER/DAQ
Welcome! This documentation is intended to be your
initial point of entry for getting involved in the FASER experiment TDAQ system. Detailed information can be found in https://faserdaq.web.cern.ch/faserdaq/ (CERN login required), alternatively the docs/
folder in this repository.
Software Layout
This software is based on the DAQling architecture which orchestrates the running of individual DAQ "processes". In addition to the external DAQling architecture, a number of other FASER-specific software libraries are included that provide hardware specific communication protocols (digitizer-readout and gpiodrivers) as well as tools shared between the online DAQ and offline reconstruction communities (faser-common). All tools are included as git submodules in the faser/online/daq framework.
DAQling
The DAQling architecture is developed by the CERN EP-DT-DI group and is intended to serve as a vanilla framework to flexibly execute processes that run concurrently and communicate between each other. Each process is a specific instance of a "module" and can either control and readout a piece of hardware (e.g. DigitizerReceiverModule) or aggregate and process data entirely in software (e.g. EventBuilder). The generic documentation for DAQ-ling can be found here - daqling.docs.cern.ch.
faser-common
The faser-common library is a central location where utilities that can be shared between online and offline communities can be developed coherently. This includes things such as the EventFormat and hardware payload specific fragments and decoders (e.g. DigitizerDataFragment). See the submodule README for a further description of faser-common utilities.
digitizer-readout
The digitizer-readout library provides a library that can be used to control the sis3153+vx1730 pair of VME boards and retrieve data stored upon an acquisition trigger. This relies on the use of faser-common for the EventFormat and is used within the DigitizerReceiverModule. More extensive documentation of this library can be found in the submodule README.
gpiodrivers
The GPIO Drivers library provides an interface for communication with the GPIO boards, which control the TRB and the TLB. It also provides specific functionality necessary for operation of each of these boards. More extensive documentation of this library can be found in the submodule README.
Initial setup
This repository has several submodules, so it is easiest to clone with the --recursive
option. NOTE that several compile options exist, described in the following section.
git clone --recursive <faser-daq git url>
cd faser-daq
source setup.sh
mkdir build; cd build
cmake ..
make
CMake build options
The following CMake build options are available:
Flag | Options | Default | Description |
---|---|---|---|
CMAKE_BUILD_TYPE | Release/Debug | Debug | Use Debug for testing, Release for production. Release adds optimization flags and so executes faster. |
CMAKE_EMULATION_BUILD | ON/OFF | OFF | ON will only compile code relevant for emulation/playback mode. This should be used if you are not interacting with any detector components. |
Use options like so
cmake .. -DCMAKE_EMULATION_BUILD=ON
Running
FASER DAQ is a Finite State Machine. It is interactively controlled by sending state transitions such as start
, pause
, stop
and (shut) down
.
The FSM is booted up with a configuration file that provides the module configurations for start up.
There are two run modes for FASER DAQ: Via command line or via a Run Control web interface.
Running from terminal
daqpy configs/<config_file_name>.json
Running via the web interface
See the main instructions for the Run Control interface in the README here. To start the web server, you can execute one of two options
(a) Run Control without run service
rcguilocal
(b) Run Control with run service
rcgui
The latter connects the run control to the FASER run database, the run will be assigned a unique run number and all run information will be automatically logged in the database. Option (a) rcguilocal
is preferred for debugging tests.
Select your desired configuration file before hitting the control buttons.
Contacts/Experts
If you encounter an issue, do not hesitate to get in contact with someone. The general email list for the group is FASER-tdaq@cern.ch to which you can request subscription via the CERN e-group https://e-groups.cern.ch/ portal. Listed here are the specific individuals who have particular expertise in a specific area and who you are recommended to contact if you have issues :
- Group Leaders/Organization : Anna Sfyrla, Brian Petersen
- DAQ-ling : Enrico Gamberini
- Digitizer : Brian Petersen
- TLB : Claire Antel
- TRB : Claire Antel, Ondrej Theiner
- gpiodrivers : Claire Antel, Kristof Schmieden
- faser-common : Brian Petersen
Codebase
The entry-point for the code itself is stored on the CERN instance of GitLab at https://gitlab.cern.ch/faser/online/faser-daq. A github mirror exists at https://github.com/cantel/faser-daq for external contributors.
This codebase is made public with the GNU Lesser General Public License.