Skip to content

Releases: spaulaus/paass

CMake rewrite

08 Dec 22:17
dd811de
Compare
Choose a tag to compare
  • 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

02 Dec 22:31
4d1b2f3
Compare
Choose a tag to compare

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

21 Nov 16:05
5d137a2
Compare
Choose a tag to compare

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() to GetFilterTime()
  • 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

21 Nov 16:04
077a6be
Compare
Choose a tag to compare

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 for TObjects

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

21 Nov 16:03
d8b0b7d
Compare
Choose a tag to compare

Release Notes

  • Fixes Xia and Traditional CFD algorithms
  • Adds configuration class for timing algorithms
  • Adds Additional helper functions

DRY GSL Fitting

21 Nov 16:03
b07af3d
Compare
Choose a tag to compare

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

21 Nov 16:02
dadba9f
Compare
Choose a tag to compare

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

21 Nov 16:02
64f93cf
Compare
Choose a tag to compare

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

21 Nov 16:01
ec179c7
Compare
Choose a tag to compare

Adds support for a custom installation of the XIA API

Remove ROOT as a required dependency

21 Nov 15:12
c6f7f48
Compare
Choose a tag to compare

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.