Coder Social home page Coder Social logo

adaqacquisition's People

Contributors

bhendersonwy avatar jvavrek avatar zach-hartwig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

adaqacquisition's Issues

Error compiling

I get the following error when compiling about no member named GetFileComment and SetFileComment.

ssnm2@mri-230-129:~/ADAQAcquisition$ make
-e
Building object file 'build/AAAcquisitionManager.o' ...
clang++ -O2 -Wall -fPIC -pthread -m64 -I/home/ssnm/root/include -ferror-limit=5 -w -I/home/ssnm2/ADAQAcquisition/include -I/home/ssnm2/ADAQ//include -std=c++0x -c -o build/AAAcquisitionManager.o src/AAAcquisitionManager.cc
In file included from src/AAAcquisitionManager.cc:21:
/home/ssnm2/ADAQAcquisition/include/AAAcquisitionManager.hh:93:59: error: no
member named 'GetFileComment' in 'ADAQReadoutManager'
TString GetADAQFileComment() {return TheReadoutManager->GetFileComment();}
~~~~~~~~~~~~~~~~~ ^
/home/ssnm2/ADAQAcquisition/include/AAAcquisitionManager.hh:94:60: error: no
member named 'SetFileComment' in 'ADAQReadoutManager'
void SetADAQFileComment(TString AFC) {TheReadoutManager->SetFileComment(AFC);}
~~~~~~~~~~~~~~~~~ ^
2 errors generated.
make: *** [build/AAAcquisitionManager.o] Error 1

Trigger settings: Level

When trigger is set above 4000 ADC, the trigger no longer functions correctly. When viewing waveforms as they are acquired, one sees waveforms below the designated trigger.

Automatically detect firmware type and possibly device type

It would be much easier on the user if ADAQAcquisition automatically determined the firmware type, which should be possibly by accessing specific registers/CAENDigitizer functions when first connecting to the device. This would alleviate easy mess-ups on the part of the user. It may also be possible and preferable to use the CAEN provided enumerators to automatically identify the board/device type as well, alleviating the user of yet another place to make mistakes.

Bug: all radio buttons reset to no value, preventing acquisition

Occasionally while using the interface, all radio buttons will have their values reset (not to defaults, but completely cleared). This prevents acquisition until the user manually tracks down all radio buttons across the five settings tabs and resets them.

Problematic data structure

We are having a LOT of problems because of the unnecessarily complicated data structures. A few clear problems:

  • when one channel triggers all the other channels get populated with empty entries
  • loading and analyzing of the data is possible only after loading the shared object files that describe the data structure. This makes it impossible (or very hard) to analyze the data on other machines

Currently we have dedicated scripts that have to "filter" the data and write it into a simple TTree.

Instead, I strongly recommend we abandon this data structure and instead write the output to a simple TTree. This will save a lot of headache down the road in the analysis.

Time Stamp value repeating

For several events, the time stamp value is the same but with different data. I can have up to three events with the same time stamp. My sample rate is 500 with a 40% post-trigger. It appears the smallest time stamp value difference that I can see is 2000.

Dynamic PSD histogram inverts p/n and e-/g when analyzing waveforms with DPP-PSD

It appears that when reading out full waveforms with DPP-PSD firmware and applying the PSD integrals that the "short integral" is inverted (e.g. the e-/g "branch" has a greater PSD parameter than the p/n "branch" ...). This is likely to due with how ADAQAcquisition "inverts" CAEN's "short integral" to put it into the more widely used "tail integral".

Correct this behavior for DPP-PSD and full waveform readout/analysis

Improvement: trigger count

The DPP-PSD firmware has one very valuable information that we do not use: the trigger count. As the digitizer channel is being triggered, the firmware keeps count of total # of triggers for every channel. This is a very valuable information as it can allow one to empirically determine the total data loss / dead time % , by comparing the trigger count to total event count.

Optical Links

Does the ADAQAcquisition have support for optical links such as the A3818?

Channels above 0 are not working for DPP-PSD on V1725 boards

Signs point to a software bug (hardware tests ruled out equipment failure) that is preventing channels above 0 on the V1725 running DPP-PSD from correctly acquiring data. Triggers occur but no waveform appears. This likely related to device-specific upgrades (V1725 vs DT5790) made in recent versions.

Improvement: display the count rate

This is something that I have been asking for long time.

Can we please display the count rate (integrated over a second) on the top-right corner of the DAQ window? Back in the days I had implemented a simple cout that would print out the count rate into the terminal. That can be very valuable in diagnosing DAQ issues or understanding what is happening with the system.

Yes, Brian Henderson has implemented a PLOT of the count rate. While that is valuable, very often it doesn't work for a variety of reasons. A simple number would be great.

segfaults and crashed

Pretty much any "clicking" results in a segfault. I am running the older Ubuntu 14.04, via virtual box, and have ROOT 6.04...I'll try to run it on a newer machine.

cannot save to .adaq.root in Ubuntu 14.04

The persistent storage option to save to a .adaq.root file produces only empty files (plus headers) in Ubuntu 14.04, when using the same saving procedures as on the Red Hat minos desktop lab computer.

Using "Calibrate ADCs" button without connection

Using "Calibrate ADCs" button without connection causes a seg fault. Shouldn't NEED to do this since it can't calibrate without a connection but still annoying to have to restart. Here's the text:

*** Break *** segmentation violation

There was a crash.

This is the entire stack trace of all threads:

#0 0x00007f15cdefc94a in waitpid () from /lib64/libc.so.6
#1 0x00007f15cde77a5b in do_system () from /lib64/libc.so.6
#2 0x00007f15d1878773 in TUnixSystem::StackTrace() () from /usr/local/root-6.06.00/lib/libCore.so
#3 0x00007f15d187a67c in TUnixSystem::DispatchSignals(ESignals) () from /usr/local/root-6.06.00/lib/libCore.so
#4
#5 0x0000000000435125 in AATabSlots::HandleConnectionTextButtons() ()
#6 0x00007f15d65d7027 in ?? ()
#7 0x0000000000000000 in ?? ()

The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else

that might help us fixing this issue.

#5 0x0000000000435125 in AATabSlots::HandleConnectionTextButtons() ()
#6 0x00007f15d65d7027 in ?? ()
#7 0x0000000000000000 in ?? ()

Saving settings file while saving data to an ADAQ file causes issues

if the user is saving data to an ADAQ file (waveforms, energy data, PSD data) during an acquisition, attempting to save settings to the ADAQ settings file will cause the ROOT directory to switch from the ADAQ file to the settings file. When the settings file is written and closed, the ROOT directory does not properly return to the ADAQ file. Add a check that prevents saving settings while saving acquired data to an ADAQ file.

calibration slider issue in Ubuntu 14.04

When attempting to calibrate, the slider and the dashed red line are offset, and dragging the red line does not update the ADC value shown in the box in the bottom right. Changing the display by adjusting the zoom, etc, tends to make the dashed red line disappear entirely. These issues were not present on the lab desktop computer.

Compiling ASIMReadout on mac

If you need to compile ASIMReadout on Mac OSX then you must change the ASIMReadoutManager.cc to:

include unistd.h

instead of

include sys/unistd.h

Crash on long runs.

During a long 16 hour run. The program froze. Here is the ouput from terminal.

ssnm2@mri-230-129:~$ ADAQAcquisition

*** Break *** segmentation violation

There was a crash.

This is the entire stack trace of all threads:

#0 0x00007f3c6be149be in waitpid () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f3c6bd99f4e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007f3c6ac38937 in TUnixSystem::StackTrace() () from /home/ssnm/root/lib/libCore.so
#3 0x00007f3c6ac3b223 in TUnixSystem::DispatchSignals(ESignals) () from /home/ssnm/root/lib/libCore.so
#4
#5 0x0000000000435e91 in AAAcquisitionManager::StartAcquisition() ()
#6 0x0000000000482346 in G__ADAQAcquisitionDict_794_0_2 (result7=0x2cbe660, funcname=, libp=, hash=) at build/ADAQAcquisitionDict.cc:3280
#7 0x00007f3c6a0d37cf in Cint::G__CallFunc::Execute(void*) () from /home/ssnm/root/lib/libCint.so
#8 0x00007f3c6abfa90c in TCint::CallFunc_Exec(void_, void_) const () from /home/ssnm/root/lib/libCore.so
#9 0x00007f3c6ab9b527 in TQConnection::ExecuteMethod() () from /home/ssnm/root/lib/libCore.so
#10 0x00007f3c6ab9deb8 in TQObject::Emit(char const*) () from /home/ssnm/root/lib/libCore.so
#11 0x00007f3c6b5ae048 in TGButton::EmitSignals(bool) () from /home/ssnm/root/lib/libGui.so
#12 0x00007f3c6b5aedf6 in TGButton::HandleButton(Event_t*) () from /home/ssnm/root/lib/libGui.so
#13 0x00007f3c6b5f624f in TGFrame::HandleEvent(Event_t*) () from /home/ssnm/root/lib/libGui.so
#14 0x00007f3c6b5c8a6b in TGClient::HandleEvent(Event_t*) () from /home/ssnm/root/lib/libGui.so
#15 0x00007f3c6b5c8bc5 in TGClient::ProcessOneEvent() () from /home/ssnm/root/lib/libGui.so
#16 0x00007f3c6b5c8c2d in TGClient::HandleInput() () from /home/ssnm/root/lib/libGui.so
#17 0x00007f3c6ac3b908 in TUnixSystem::DispatchOneEvent(bool) () from /home/ssnm/root/lib/libCore.so
#18 0x00007f3c6abbc846 in TSystem::InnerLoop() () from /home/ssnm/root/lib/libCore.so
#19 0x00007f3c6abbe524 in TSystem::Run() () from /home/ssnm/root/lib/libCore.so
#20 0x00007f3c6ab61caf in TApplication::Run(bool) () from /home/ssnm/root/lib/libCore.so
#21 0x000000000045f5d2 in main ()

The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else

that might help us fixing this issue.

#5 0x0000000000435e91 in AAAcquisitionManager::StartAcquisition() ()

Different results in list mode and in waveform analysis

When we compute the PSDTotalIntegral and PSDShortIntegral (?) in waveform analysis, we get one result. When we read those values from the DPP-PSD in list mode we get different results. The results are not too different -- about 10% -- but that is still quite significant.

Seg faults when two channels are enabled

We get frequent segmentation faults when two channels are enabled. This happens in particular when the number of samples is vastly different between the two channels.

Calibrating during acquisition saves data with calibration (not raw ADC)

I did a quick calibration of my detector before acquiring data (in PSD DPP, but using list+waveform mode, saving energy data only). When I open the saved data files, they are not raw ADC, but with my original energy calibration.

Discovered this on Fedora 21, with ADAQAcquisition 1.6.4, acquiring data with a DT590M digitizer and NaI detector. Zach verified with his own equipment (non- PSD DPP).

Sorry if I'm referring to things incorrectly Zach :)

Voltage Zeroing Bug with Desktop Digitizer

Bug prevents a voltage from being entered into the voltage setpoint in the High Voltage tab. This has only been observed on Channel 1 (-), but has been observed twice on a DT5790M on different computers and digitizers. Channel 0 (+) was behaving normally. Bug was resolved by downloading and running Caen DPP-PSD software. Suspected to be an issue with firmware overcurrent protection.

excessive includes

c++ -g -O2 -Wall -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -m64 -I/usr/local/root/root-6.04.18-build/include -std=c++11 -w -I/home/danagoulianlab/ADAQAcquisition/include -I/home/danagoulianlab/ADAQ/include -c -o build/ADAQAcquisitionDict.o build/ADAQAcquisitionDict.cc
build/ADAQAcquisitionDict.cc:41:43: fatal error: include/AAAcquisitionManager.hh: No such file or directory
 #include "include/AAAcquisitionManager.hh"
                                           ^

Same story here. It looks like too many includes in ADAQAcquisitionDict.cc...

DT 5730 - Ultrahigh rate

After I select the ultrahigh rate and start acquiring data, it still updates the digitized waveform with the 5730.

Many waveform colors are impossible to see.

Many of the colors used when plotting waveforms/spectra are impossible to see against the white background on almost all monitors. Assign appropriate colors for high-visibility.

ADAQAcquisition not saving data with STD firmware

Datafiles are created, but no waveforms (or energy data) are saved when acquiring data with STD firmware (and a HPGe detector). No problems are occurring with DPP firmware (and a LaBr detector). Tried saving data as waveforms, as energy, and with the timed acquisition mode. Files come out with 0 waveforms and ~11 kb in size.

Buffer overflow does not seem to work for channels != 0

When acquiring data at high rates with channels > 0 and channel != 0, it appears from initial tests that the "Buffer overflow" check does not correctly return that the buffer is overflowing. This is especially apparent when there is a lot of work being done on the "PC side" of the data acquisition (such as plotting every single event and dumping to ROOT, etc, etc). Need to check code both within ADAQAcquisition and within the ADAQControl library.

Saving data with calibration

Zach,

It looks like ADAQ is saving the data with the calibration, i.e. when I save data with the spectrum calibrated, it's saved with the calibration, not with the original ADC values. It did this before and you fixed the issue, so I'm not sure how it's started again. We can troubleshoot sometime if you'd like.

I'm running version 1.6.4,DPP-PSD, running in List only mode, saving energy only.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.