spaulaus / paass-lc

Acquire and Analyze data from XIA Pixie16 modules
GNU General Public License v3.0
2 stars 7 forks source link

Trace Filtering and Asynchronous histogram writing #134

Closed spaulaus closed 6 years ago

spaulaus commented 6 years ago

Description

I completed two tasks. First, I fixed the build so that DataGenerator doesn't cause errors when we toggle PAASS_BUILD_ANALYSIS=OFF. This is a fringe case but still needs to be handled cleanly. I fixed this by simply wrapping the add_subdirectory call in a check for PAASS_BUILD_ANALYSIS.

Second, I added trace filtering capabilities to scope. I moved TraceFilter to Analysis/Resources. Now Scope can access the class and use it to perform filtering. I added filter results to a PaveText instead of to the command line. The trace filter is plot on the same canvas as the trace.

I have made histogramming asynchronous with analysis. We no longer have to pause the analysis while we write histograms to disk. I've added a static mutex to the RootHandler class so that we can control when the file is being written to by RootHandler::AsyncFlush. I have also removed external access to the ROOT file from the user's control. I don't want people by passing the AsyncFlush.

Related Issue

Issue #104 Issue #111 Issue #135

Motivation and Context

We no longer have defunct code floating around (TraceFilterer) and we can build analysis separately from acquisition. We can write histograms to disk while continuing with data analysis. We speed up execution time.

How Has This Been Tested?

I tested locally (see screenshot) and using the CI server. The CI server had issues compiling, which were mitigated in ae30e04.

Screenshots (if appropriate):

image

Types of changes

Checklist:

spaulaus commented 6 years ago

This issue was moved to spaulaus/paass#134