FSUDAQ_Qt6/README.md

113 lines
4.4 KiB
Markdown
Raw Normal View History

2023-05-24 16:04:32 -04: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.
2023-05-24 16:04:32 -04:00
2023-05-25 14:20:55 -04:00
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
2023-08-16 14:40:13 -04:00
## Online analyzer
2023-06-20 12:20:44 -04:00
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.
2024-02-21 19:02:01 -05:00
<span style="color:red;">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, even the window is closed. </span>
2023-08-16 14:40:13 -04:00
2023-06-01 17:51:00 -04:00
# 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).
2023-08-28 15:02:56 -04:00
# ToDo
- Gaussians fitting for 1D Histogram
- Improve the color scheme for 2D histogram
2024-02-21 19:02:01 -05:00
- Save Histogram?
2023-08-28 15:02:56 -04:00
2023-05-24 16:04:32 -04:00
# Required / Development enviroment
Ubuntu 22.04
2023-06-01 17:51:00 -04:00
- CAENVMELib v3.3
- CAENCOmm v1.5.3
- CAENDigitizer v2.17.1
- CAEN A3818 Driver v1.6.8
2023-05-24 16:04:32 -04:00
- qt6-base-dev
- libqt6charts6-dec
- libcurl4-openssl-dev
- elog
2023-05-24 16:04:32 -04:00
The CAEN Libraries need to download and install manually. The other libraries can be installed using the following command:
2023-05-24 16:04:32 -04:00
`sudo apt install qt6-base-dev libqt6charts6-dev libcurl4-openssl-dev elog`
2023-05-25 14:20:55 -04:00
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
2023-05-24 16:04:32 -04:00
2023-05-30 13:57:45 -04:00
The QCustomPlot (https://www.qcustomplot.com/index.php/introduction) source files are already included in the repository.
2023-05-30 10:08:39 -04:00
2024-02-21 19:02:01 -05:00
## For Raspberry Pi installation
All required CAEN Libraries support ARM archetect, so installation of those would not be a problem.
THe libqt6charts6-dev should be replaced by qt6-chart-dev, and the elog need to be installed manually (or can be skipped)
`sudo apt install qt6-base-dev qt6-chart-dev libcurl4-openssl-dev`
I tested with a Raspberry Pi 5 with 8 GB. it works.
2023-05-24 16:04:32 -04:00
# Compile
2023-08-16 14:40:13 -04:00
## in case the *.pro not exist
2023-05-24 16:04:32 -04:00
use `qmake6 -project ` to generate the *.pro
in the *.pro, add
` QT += core widgets charts printsupport`
2023-05-24 16:04:32 -04:00
` LIBS += -lCAENDigitizer -lcurl`
2023-08-16 14:40:13 -04:00
## if *.pro exist
2023-05-24 16:04:32 -04:00
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`
2024-02-21 19:02:01 -05:00
# Auxillary programs
2024-02-21 19:02:01 -05:00
There is a folder Aux, this folder contains many auxillary programs, such as EventBuilder. User can `make` under the folder to compile the programs.
# Known Issues
2024-02-21 19:02:01 -05:00
* Although the Events/Agg used the CAEN API to recalculate before ACQ start, for PHA firmware, when the trigger rate changed, the Events per Agg need to be changed.
2023-10-20 17:05:40 -04:00
* The Agg Organization, Event per Agg, Record Length are strongly correlated. Some settings are invalid and will cause the digitizer goes crazy.
2024-02-21 19:02:01 -05:00
* load digitizer setting would not load everything, only load the channel settings and some board settings.
* 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.
2023-10-19 14:29:28 -04:00
* for 1740 QDC, RecordLenght is board setting, but readout is indivuial group.
2024-02-21 19:02:01 -05:00
* FOr PHA, the trapezoid scaling and fine-gain register are calculated before ACQ start.
# Known Bugs
2024-02-21 19:02:01 -05:00
* There is no known bug. Please report to rtang@fsu.edu if you find one.