Releases: spaulaus/paass
CMake rewrite
- Completely rewritten most of the CMake files to use more robust target specific commands. We no longer have globally defined includes or libraries. This makes it much clearer as to what program depends on what code/library.
- Uses functionality that requires CMake 3.13+
- Only build shared objects now. This reduces our exe size, and makes it easier to swap out components if needed.
- Cleaned up compilation errors and ensure that all of the programs compile.
- Dumped cmake flags that weren't needed, or didn't provide value.
- Moved the flags in the files that they control. This gives a better coupling between the flag and what it toggles.
- Relocated all testing related codes to the test folder.
- Fixed FindPLX and FindXIA to take into account changes in those APIs.
- Removed FindGSL as it is now bundled with CMake
- Now always generate compile_commands.json, just makes it easier for those that need it. It's not like it's a lot of overhead.
- Organized Acquisition utility codes to live in better spots.
Fixing Bogus Trace Length
Description
Newer Pixie16 firmwares provide bad trace lengths. They register as 32768. This corresponds to a trace length of 131 us for a 250 MS/s module. There's no practical reason that the lengths should ever be this large. We set any trace length of 32768 to 0.
Fixes event sorting
Description
- Resolves issue where time sorting wouldn't work if some channels used the CFD and others didn't.
- Resolves issues with Cmake, unittests, and CI scripts.
- Changes
GetTimeSansCfd()
toGetFilterTime()
- Updates minimum CMake version to 3.9
- Updates minimum GCC version to 4.9.2
- Expands the recognized commands in poll2 for setting module/channel parameters.
Motivation and Context
Users wanted full access to the parameters because they needed to set multiplicity masks.
Native TTrees in RootHandler
Release Notes
Description
I solved the Tree/Hist race condition by creating two output files. Trees write to their own file serially, and histograms write to their file asynchronously. Users can define any trees they want in their processors, as long as they do it through RootHandler
.
RootHandler
- Reformatted the doxygen comments
- Updated documentation
- Added the tree file for output
- Trees write serially using AutoSave
- We call
SetDirectory()
on all histograms and trees to help ensure they get registered to the right file - Updated histograms from integer to doubles.
- Updated if tree in
RegisterHistogram()
- Simplified unittest by using
ClassName()
method forTObject
s
UtkScanInterface
- Updated file naming for consistency
Anl1471Processor
- Removed unused headers
- Forward declared classes
- Added gamma and vandle trees
- Updated documentation
- Organized headers according to new standard
- Removed all ROOT objects since they're now unused
- Removed ascii output
TemplateExpProcessor
- Updated documentation
- Removed unused headers
- Removed ascii output
- Updated so that ewe use Trees properly now.
TwoChanTimingProcessor
- Updated documentation
- Organized headers
- Fixed Tree Definition and Branch Registration
- Removed ascii output
Motivation and Context
We had multiple requests from the stakeholders to allow histogram writing and native tree handling. This was a big limitation in the software. If users defined their own TFile and TTrees in the experiment processor then it would clash with the histogram writing. This lead to segfaults. Without native tree handling users were forced to create hacks around RootHandler to disable histogramming when writing trees to disk.
Updates CFDs
Release Notes
- Fixes Xia and Traditional CFD algorithms
- Adds configuration class for timing algorithms
- Adds Additional helper functions
DRY GSL Fitting
Release Notes
- Removes Gsl1Fitter and Gsl2Fitter. GslFitter now handles all fitting. We handle switching versions with pre-processor defines. Made optimization updates to the fitting.
Asynchronous histogramming
Release Notes
- We removed Trace filterer and incorporated filtering into Scope.
- The data generator could kill compilation if
PAASS_BUILD_ANALYSIS=OFF
. We just wrapped the call to the sub directory in an if. - Histogram writing is asynchronous. We no longer back up the analysis while writing histograms and trees to disk. Data is flushed to disk every 2 seconds.
Native ROOT Histogramming in utkscan
Change Log
- Investigating inefficiencies in scanning. These turned out to be due to our custom DAMM histogram writer. The process was incredibly slow and increased the scanning time for histograms by 26x for some files.
- Updated the scans to use ROOT histograms instead of DAMM. This brings the scan efficiency back to the same level as
pixie_ldf_c
. We have inserted write to disk every 1 M events. This slows things down a little bit, but allows us to view the ROOT histograms online. - Resolves pixie16/paass#7 - This was the original request to integrate ROOT with
utkscan
. - The XiaListModeDataMask didn't treat Firmware R34455 properly. It caused issues with the unpacking of those data.
Smooth out Installation
Adds support for a custom installation of the XIA API
Remove ROOT as a required dependency
Release Notes
Users could enable the PAASS_USE_ROOT
flag even if ROOT wasn't installed on the system. This caused the build to fail. We've opted to have ROOT be an optional flag, and the ROOT components enabled or disabled based off the FOUND_ROOT
flag.