This is a remake of the FSUDAQ using Qt6
Go to file
2024-02-19 16:42:04 -05:00
.vscode add some code to prevent out of memeory frozen 2023-11-20 12:10:36 -05:00
analyzers fix SplitPole analyzer 2023-12-14 16:55:33 -05:00
Aux add info in event builder 2024-02-19 11:54:45 -05:00
.gitignore added EventBuilder2.cpp, modified fsuReader 2024-01-18 18:55:37 -05:00
ClassData.h better data encaptule for ClassData.h 2024-01-26 14:53:52 -05:00
ClassDigitizer.cpp added Trapazoid Rescaling and fine Gate calculation for PHA 2024-02-19 16:42:04 -05:00
ClassDigitizer.h DigiPlanel: change button send clock sync to AutoSet reading conf. 2024-01-19 14:40:59 -05:00
CustomThreads.h fix soem display bugs, fix 2D historgram mergin 2023-11-21 15:34:29 -05:00
CustomWidgets.h fix Scope unzoom, scope trace length 2024-01-29 17:23:11 -05:00
DigiSettingsPanel.cpp bug fix on loading setting. DigiPanel Combox = Mixed when channels has mixed setting 2024-01-24 12:58:50 -05:00
DigiSettingsPanel.h DigiPlanel: change button send clock sync to AutoSet reading conf. 2024-01-19 14:40:59 -05:00
FSUDAQ_Qt6.pro better data encaptule for ClassData.h 2024-01-26 14:53:52 -05:00
FSUDAQ.cpp scope bug fix and performance improve 2024-01-25 16:18:47 -05:00
FSUDAQ.h modified UI for open digitizer. when click on update Setting, it will overwrite the setting file to make sure the setting is updated 2024-01-19 14:15:37 -05:00
Histogram1D.h add log-y for histogram 1 2023-12-14 15:45:02 -05:00
Histogram2D.h Histogram2D can logZ 2023-12-14 15:52:36 -05:00
Hit.h add info in event builder 2024-02-19 11:54:45 -05:00
influxdb.cpp fix bug on Influx when expName is Empty 2023-11-17 12:06:21 -05:00
influxdb.h add influxdb 2023-05-24 16:04:32 -04:00
macro.h scope bug fix and performance improve 2024-01-25 16:18:47 -05:00
main.cpp added program lock, only one instance 2023-08-17 12:50:45 -04:00
MultiBuilder.cpp better data encaptule for ClassData.h 2024-01-26 14:53:52 -05:00
MultiBuilder.h [MAJOR CHANGE] change ClassData, Timestamp, energy, etc, be dynamically allocated, NOT TESTED, compiled not problem 2024-01-18 23:09:50 -05:00
qcustomplot.cpp change histogram2D with qcustomplot 2023-05-30 13:57:45 -04:00
qcustomplot.h change histogram2D with qcustomplot 2023-05-30 13:57:45 -04:00
README.md update README.md 2024-02-06 12:06:02 -05:00
RegisterAddress.h modified splitpoleanalyzer.h 2023-10-20 16:17:50 -04:00
Scope.cpp fix Scope unzoom, scope trace length 2024-01-29 17:23:11 -05:00
Scope.h fixed crash when closing digitizer while Scope openned 2023-11-17 11:44:28 -05:00
SingleSpectra.cpp better data encaptule for ClassData.h 2024-01-26 14:53:52 -05:00
SingleSpectra.h added 2D historgam (ch vs energy) for single spectrum 2023-11-06 17:46:43 -05:00

Introduction

This is a DAQ for 1st gen CAEN digitizer for V1725, V17255S, V1230 with PHA and PSD firmware.

It has scope (updated every half-sec), allow full control of the digitizer (except LVDS), and allow saving waveform.

It can be connected to InfluxDB v1.8 and Elog.

Each channel has it own 1D histogram. It will not be filled by default, but can enable it in the "Online 1D histgram" panel. The binning of each histogram will be saved under the raw data path as singleSpectaSetting.txt

Online analyzer

A Multi-builder (event builder that can build event across multiple digitizer) is made. It has normal event building code and also a backward event building code that build events from the latest data up to certain amont of event.

A 1-D and 2-D histogram is avalible. In the 2-D histogram, graphical cuts can be created and rename.

An online analyzer class is created as a template for online analysis. An example is the SplitPoleAnalyzer.h. It demo a 2-D histogram and a 1-D histogram, and the way to output the rates of cuts to influxDB.

Notice that, when the FSUDAQ is started, the online analyzer is a null pointer, no event will be built. Once the online anlyzer is created and opened, event will be built, event the window is closed.

Operation

When programSettings.txt is presented in the same folder as the FSUDAQ_Qt, the program will load it can config the following

  • (line 1) raw data path, where the data will be stored.
  • (line 2) the influxDB v1.8 IP
  • (line 3) the database name
  • (line 4) the elog IP
  • (line 5) the elog logbook name
  • (line 6) elog user name
  • (line 7) elog user password

If no programSettings.txt is found. The program can still search for all digitizers that connected using optical cable. Missing the raw data path will disable save data run, but still can start the ACQ. Missing InfluxDB (elog) variables will disable influxDB (elog).

ToDo

  • Gaussians fitting for 1D Histogram
  • log scale for 1D and 2D Histogram
  • Improve the color scheme for 2D histogram

Required / Development enviroment

Ubuntu 22.04

  • CAENVMELib v3.3

  • CAENCOmm v1.5.3

  • CAENDigitizer v2.17.1

  • CAEN A3818 Driver v1.6.8

  • qt6-base-dev

  • libqt6charts6-dec

  • libcurl4-openssl-dev

  • elog

The CAEN Libraries need to download and install manually. The other libraries can be installed using the following command:

sudo apt install qt6-base-dev libqt6charts6-dev libcurl4-openssl-dev elog

The elog installed using apt is 3.1.3. If a higher version is needed. Please go to https://elog.psi.ch/elog/

The libcurl4 is need for pushing data to InfluxDB v1.8

The QCustomPlot (https://www.qcustomplot.com/index.php/introduction) source files are already included in the repository.

Compile

in case the *.pro not exist

use qmake6 -project to generate the *.pro

in the *.pro, add

QT += core widgets charts printsupport

LIBS += -lCAENDigitizer -lcurl

if *.pro exist

then run qmake6 *.pro it will generate Makefile

then make

if you want to use GDB debugger, in the *.pro file add

QMAKE_CXXFLAGS += -g

exclude some files from the auto-gen *.pro

The following files must be excluded from the *.pro, as they are not related to the GUI

  • DataGenerator.cpp
  • DataReaderScript.cpp
  • EventBuilder.cpp
  • test.cpp
  • test_indep.cpp

Those file can be compiled using

make -f Makefile_test

Known Issues

  • for PHA firmware, when the trigger rate changed, the Events per Agg need to be changed.
  • The Agg Organization, Event per Agg, Record Length are strongly correlated. Some settings are invalid and will cause the digitizer goes crazy.
  • Sometimes, the buffer is not in time order, and make the trigger/Accept rate to be nagative. This is nothing to do with the program but the digitizer settings. Recommand reporgram the digitizer.
  • for 1740 QDC, RecordLenght is board setting, but readout is indivuial group.

Known Bugs

  • There is no known bug. Please report if you find one.