WebDAQ — data acquisition for the LUNA experiment

GitHub commit activity GitHub Release Static Badge Project License

Dashboard

Run control for CAEN digitizers, in a browser. Configure the boards, tune the filters against a live spectrum, take runs, watch the rates and the beam current, and write the shift entry — from the same interface, on the DAQ machine or from any PC on the network.

Acquisition runs in process: the boards are read, decoded and written by CaenDAQ, a C++ library bound into the Python server. There is no XDAQ, no Docker container and no separate monitoring process.

Where to start

New here? Read A complete session — one run from a cold machine to a written logbook entry.

Section

Read it for

Installation

Getting it onto a machine.

A complete session

The whole workflow, end to end.

How WebDAQ works

What happens when you press Start; what is stored and where; what can be changed during a run.

User guide

Screen-by-screen reference: every page, every control.

CAEN digitizers

Scanning and adding boards, thresholds and trapezoid settings, PSD gates, multi-board synchronisation, online tuning.

Spectra and ROIs

The histogram dashboard, regions of interest, and the per-run roi.json.

Beam current and charge

TetrAMM, RBD 9103, a monitored Graphite value, and what the two accumulated charges mean.

Monitoring and alerts

Graphite, Grafana, the Stats page, stats.csv, run-linked alerts, Telegram and Zulip, Board Health, the alert history and recovery.

ELOG

Reading and writing the collaboration logbook from run control.

Run data and conversion

What a run leaves on disk, how to convert it to ROOT, and how to check a run that was interrupted.

Directory structure

What lives where in the repository and in a working directory.

Server architecture

Technical reference for developers.

Troubleshooting

When something does not work — start with the Troubleshoot page, which offers the fix next to the problem.

Key capabilities

  • In-process acquisition of multiple CAEN digitizers into one synchronised .caendat file per run

  • Online tuning of thresholds, gates and trapezoid parameters while the run is going

  • Live spectra, waveforms and PSD plots, with server-side regions of interest recorded into each run

  • Beam current and accumulated charge from a picoammeter or from a monitored accelerator value

  • Rates and slow control archived to Graphite, with Grafana alert rules tied to the run

  • Per-board readout counters on the Board Health tab: blocks read, events decoded, blocks dropped, read errors, for the run in progress

  • Alerts you configure — a board failure, a board that stops producing data, a beam current or any Graphite value outside its range — delivered to Telegram or Zulip, with a history of what happened and the recovery next to it

  • FAIR-compliant run metadata and ELOG logbook entries, including a draft entry assembled from the run itself

Support

For technical support or feature requests: