DUNE DAQ Software Documentation Home¶
Welcome! The purpose of this website is to provide information on how to use the applications, plugins, base classes, etc. offered by the suite of DUNE DAQ packages. You can learn both how to run the DAQ as well as use various tools to extend its functionality.
If you're new to DUNE DAQ software, you'll want to start by reading the daq-buildtools documentation, which covers how to set up a development environment and build a package. Once you've done this, you'll likely want to learn about how to write DAQ modules in the appfwk documentation, units of code which are meant to perform specific tasks and can be combined to define the overall behavior of a running DAQ application. At some point you may also need to learn about how to create a package from scratch by reading the daq-cmake documentation; this documentation is also very useful for understanding how to get new source code files you've added to compile.
There are five DUNE DAQ software packages which are used to aid developers in creating packages designed for the DAQ itself:
To learn how to build an existing software package, read the daq-buildtools documentation
To learn how to create a new package or modify the build of an existing one, read the daq-cmake documentation
To learn about the standard development workflow, read the daq-release documentation, in particular this page
To learn about the C++ coding guidelines which DUNE DAQ package developers should follow, read the styleguide
To learn how to run integration tests within our framework, go here
For the other packages, please click on one of the links below. To learn how to edit a package's documentation, click here. Packages marked with an asterix don't yet have any official documentation; please see their Issues page to remedy this.
Core¶
appfwk home of daq_application and tools for writing DAQModules
cmdlib interfaces for commanded objects
ers fork of the ATLAS Error Reporting System
logging contains the functions DUNE DAQ packages use to output text
Readout¶
daqdataformats DUNE DAQ data formats
detchannelmaps DUNE detectors channel maps
detdataformats DUNE detectors data formats
flxlibs DAQModules, utilities, and scripts for Upstream FELIX Readout Software
lbrulibs DAQModules, utilities, and scripts for DUNE-ND Upstream DAQ Low Bandwidth Readout Unit
readout upstream DAQ readout, DAQModules, CCM interface implementations
Control¶
minidaqapp application to read out Felix data and store it in HDF5 files on disk
nanorc Not ANOther Run Control
* rcif run control related
restcmd HTTP REST backend based CommandFacility
Dataflow (logical)¶
dfmessages dataflow messages
dfmodules dataflow applications
timing C++ interface to the timing firmware
timinglibs timing control and monitoring
trigemu trigger decision emulator for readout application tests
trigger modules that make up the DUNE FD DAQ trigger system
Dataflow (physical)¶
ipm message passing between processes
nwqueueadapters DAQModules that connect appfwk queues to IPM network connections
serialization utilities for C++ object serialization/deserialization
Monitoring¶
erses insert ERS messages into a searchable database
erskafka the erskafka plugin
influxopmon Influx database based plugin for operational monitoring
kafkaopmon converts JSON objects into Kafka messages
opmonlib operational monitoring library
Educational¶
listrev educational example of DAQModules for new developers
Mar-11-2021: For software coordinators only: how to make edits to this webpage