Pixie16 Analysis Software Suite
Analysis code for processing of .ldf files
|
This page will describe the various objects that are used in the analysis. These objects are both for detectors and processing. All objects are declared, initialized and used in the DetectorDriver class.
This section has not been updated yet, as the number of Processors and Analyzers has exploded. This list is largely unnecessary due to the automatic documentation placed inside of the various class implementations.
The DssdProcessor object is intended for use with the two DSSD detector types dssd_front and dssd_back. The DssdProcessor object is currently only used to plot DSSD spectra including the DSSD strip versus energy spectra (741, 742, 743, 742) and DSSD hit pattern spectra (725, 726). Both dssd_front and dssd_back detector types feed into this object for plotting.
The EventProcessor is the generic processor from which all the others are derived. This allows the common process timing and setting up of the associated types and DetectorSummaries in a common framework.
The GeProcessor object is intended for use with any germanium detector. All detectors with a detector type of Ge feed into this object. The GeProcessor object is developed for clover detectors and its two main functions plot germanium spectra and perform addback.
The McpProcessor object is intended for use with all mcp detectors. All detectors with a detector type of mcp feed into this object. The McpProcessor object calculates the 2D position of an event based on the collected charge from the four corners of the detector.
The MtcProcessor object is intended for analysis with detectors of type timeclass and subtype mtc (alternatively type mtc will work). No correlation of implants and decays is currently done, however this could be easily implemented through the Correlator.
The RootProcessor object is designed to output a ROOT tree for further analysis. In particular, it calls the AddBranch() and FillTree() methods of all the EventProcessors included in the present detector driver. Note that this requires compilation using the USEROOT flag. Also this is a significant departure from the previous ROOT philosophy. In particular, the data is separated by its true function in the experiment and significant pre-processing of the data is done into what we would want to access about the data. Raw channel events are not dumped, but this behaviour probably will be again implemented soon.
The ScintProcessor object is intended for use with an scintillator object and is fed from any detector type labeled as scint. This class was particularly discombobulated in the previous version of the code. At the moment, it only plots things for scintillators with subclass neutr.
The SplineProcessor is designed to derive sub-sample timing resolution based on the pulse shape of the signal. Several methods are being investigated and this class will develop accordingly.
The DetectorDriver object controls event processing. A raw event is passed to it from ScanList() and all channels in the raw event are checked against their threshold and calibrated. Then the experimental processing is started.
The Correlator object controls the correlation of decays with previous implants. Two 2D arrays of size MAX_STRIP by MAX_STRIP are created for both implants and decays. Decays are correlated to implants if the time between implants was sufficiently large and the time between decays and implants is less than the correlation time. This object also controls the plotting of time versus energy plots such as the 750s.
The TraceAnalyzer object implements a quick online trace analysis routine based on trapezoidal filters to identify double pulses. The object also plots the trace spectra.
This is a utility object for finding means and standard deviations from an STL object using the STL accumulate() algorithm.