Skip to content
/ docs Public

Repo for official DUNE DAQ software documentation

License

Notifications You must be signed in to change notification settings

DUNE-DAQ/docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DUNE DAQ Software Documentation Home

Nightly Doxygen Workflow

DUNE DAQ Doxygen Homepage

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

To learn about how to run even more comprehensive tests (particularly relevant during a DUNE DAQ release period), read about the daq-systemtest package

To learn how to keep track of assets (files, etc. which affect the behavior of the DAQ but aren't part of a standard software package), 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

utilities a toolbox of classes and functions

Readout

daqdataformats DAQ data formats

datahandlinglibs Tools for constructing readout-focused processes

detchannelmaps Channel maps for the detectors

detdataformats General-purpose data formats and related tools

dpdklibs Data Plane Development Kit software and utilities

fddetdataformats Bitfields of far detector raw data and related tools

fdreadoutlibs Classes for working with far detector data (WIB, SSP, etc.)

fdreadoutmodules Readout plugin collection for the far detector

flxlibs DAQModules, utilities, and scripts for Upstream FELIX Readout Software

hermesmodules Modules for the Hermes core

lbrulibs DAQModules, utilities, and scripts for DUNE-ND Upstream DAQ Low Bandwidth Readout Unit

nddetdataformats Bitfields of near detector raw data and related tools

ndreadoutlibs Classes for working with near detector data (e.g. PACMAN)

wibmod WIB configuration and monitoring interface

Control

appmodel Schema for DAQ configuration of readout, dataflow and trigger applications

confmodel A core schema for DAQ configuration

daqconf application to read out Felix data and store it in HDF5 files on disk

dbe A GUI interface for the OKS-based configuration design

drunc Run control infrastructure for a distributed DAQ system

nanorc Not ANOther Run Control

* rcif run control related

restcmd HTTP REST backend based CommandFacility

Dataflow (logical)

dfmessages dataflow messages

dfmodules dataflow applications

hdf5libs Support for reading/writing HDF5 data files

timing C++ interface to the timing firmware

timinglibs timing control and monitoring

tpglibs Processes raw waveforms and returns the generated trigger primitives

trgtools trigger emulation and analysis tools

trigger modules that make up the DUNE FD DAQ trigger system

Dataflow (physical)

iomanager simplified API for passing messages between DAQModules

ipm message passing between processes

serialization utilities for C++ object serialization/deserialization

Monitoring

erskafka the erskafka plugin

kafkaopmon converts JSON objects into Kafka messages

opmonlib operational monitoring library

rawdatautils tools for looking at output files

Educational

listrev educational example of DAQModules for new developers


Mar-11-2021: For software coordinators only: how to make edits to this webpage