PAASS
Software suite to Acquire and Analyze Data from Pixie16
GeProcessor Class Reference

Processor to handle Ge (read as clover) events. More...

#include <GeProcessor.hpp>

Inheritance diagram for GeProcessor:
Collaboration diagram for GeProcessor:

Public Member Functions

 GeProcessor (double gammaThreshold, double lowRatio, double highRatio, double subEventWindow, double gammaBetaLimit, double gammaGammaLimit, double cycle_gate1_min, double cycle_gate1_max, double cycle_gate2_min, double cycle_gate2_max)
 
virtual bool PreProcess (RawEvent &event)
 
virtual bool Process (RawEvent &event)
 
virtual void DeclarePlots (void)
 
std::vector< ChanEvent * > GetGeEvents (void)
 
std::vector< std::vector< AddBackEvent > > GetAddbackEvents (void)
 
std::vector< AddBackEventGetTasEvents (void)
 
- Public Member Functions inherited from EventProcessor
 EventProcessor ()
 
 EventProcessor (int offset, int range, std::string name)
 
virtual ~EventProcessor ()
 
virtual const std::set< std::string > & GetTypes (void) const
 
virtual bool DidProcess (void) const
 
virtual bool HasEvent (void) const
 
virtual bool Init (RawEvent &event)
 
void EndProcess (void)
 
std::string GetName (void) const
 

Protected Member Functions

EventData BestBetaForGamma (double gTime)
 
bool GoodGammaBeta (double gTime)
 
void DeclareHistogramGranY (int dammId, int xsize, int ysize, const char *title, int halfWordsPerChan, const std::vector< float > &granularity, const char *units)
 
void granploty (int dammId, double x, double y, const std::vector< float > &granularity)
 
void symplot (int dammID, double bin1, double bin2)
 
- Protected Member Functions inherited from EventProcessor
virtual void plot (int dammId, double val1, double val2=-1, double val3=-1, const char *name="h")
 Implementation of the plot command to interface with the DAMM routines. More...
 
virtual void DeclareHistogram1D (int dammId, int xSize, const char *title)
 Declares a 1D histogram calls the C++ wrapper for DAMM. More...
 
virtual void DeclareHistogram2D (int dammId, int xSize, int ySize, const char *title)
 Declares a 2D histogram calls the C++ wrapper for DAMM. More...
 

Protected Attributes

std::map< int, int > leafToClover
 
std::vector< float > timeResolution
 
unsigned int numClovers
 
std::vector< ChanEvent * > geEvents_
 
std::vector< std::vector< AddBackEvent > > addbackEvents_
 
std::vector< AddBackEventtas_
 
double gammaThreshold_
 
double lowRatio_
 ratio between low and high gain to be accepted w/o saturation flag More...
 
double highRatio_
 ratio between low and high gain to be accepted w/o saturation flag More...
 
double subEventWindow_
 
double gammaBetaLimit_
 
double gammaGammaLimit_
 
double cycle_gate1_min_
 low value for first cycle gate More...
 
double cycle_gate1_max_
 high value for first cycle gate More...
 
double cycle_gate2_min_
 low value for second cycle gate More...
 
double cycle_gate2_max_
 high value for second cycle gate More...
 
- Protected Attributes inherited from EventProcessor
std::string name
 Name of the Processor. More...
 
std::set< std::string > associatedTypes
 Set of associated types for Processor. More...
 
bool initDone
 True if the initialization has finished. More...
 
bool didProcess
 True if the process finished. More...
 
std::map< std::string, const DetectorSummary * > sumMap
 Map of associated detector summary. More...
 
Plots histo
 

Static Protected Attributes

static const unsigned int chansPerClover = 4
 

Detailed Description

Processor to handle Ge (read as clover) events.

Definition at line 176 of file GeProcessor.hpp.

Constructor & Destructor Documentation

§ GeProcessor()

GeProcessor::GeProcessor ( double  gammaThreshold,
double  lowRatio,
double  highRatio,
double  subEventWindow,
double  gammaBetaLimit,
double  gammaGammaLimit,
double  cycle_gate1_min,
double  cycle_gate1_max,
double  cycle_gate2_min,
double  cycle_gate2_max 
)

Constructor taking a boat load of arguements

Parameters
[in]gammaThreshold: set the threshold on gamma rays to analyze
[in]lowRatio: the low ratio for low-high gains
[in]highRatio: the high ratio for low-high gains
[in]subEventWindow: the size of the subevent
[in]gammaBetaLimit: the amount of time to consider beta-gamma correlations
[in]gammaGammaLimit: the amount of time to consider gamma-gamma correlations
[in]cycle_gate1_min: the minimum range for the first cycle gate
[in]cycle_gate1_max: the maximum range for the first cycle gate
[in]cycle_gate2_min: the minimum range for the second cycle gate
[in]cycle_gate2_max: the maximum range for the second cycle gate

Definition at line 64 of file GeProcessor.cpp.

Here is the call graph for this function:

Member Function Documentation

§ BestBetaForGamma()

EventData GeProcessor::BestBetaForGamma ( double  gTime)
protected
Returns
lowest difference between gamma and beta times and EventData of the beta event. Takes gTime in pixie clock units, returns value in seconds.
Parameters
[in]gTime: the time of the gamma

Definition at line 33 of file GeProcessor.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ DeclareHistogramGranY()

void GeProcessor::DeclareHistogramGranY ( int  dammId,
int  xsize,
int  ysize,
const char *  title,
int  halfWordsPerChan,
const std::vector< float > &  granularity,
const char *  units 
)
protected

Declares a histogram with a range of granularities

Parameters
[in]dammId: the dammID to plot
[in]xsize: the size in the x range
[in]ysize: the size in the y range
[in]title: the title of the histogram
[in]halfWordsPerChan: the half words per channel
[in]granularity: the list of granularities to plot
[in]units: the units for the plot

Declare a 2D plot with a range of granularites on the Y axis

Definition at line 824 of file GeProcessor.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ DeclarePlots()

void GeProcessor::DeclarePlots ( void  )
virtual

Declare the plots for the processor

Declare plots including many for decay/implant/neutron gated analysis

This was moved here from Init because the number of clovers is needed for plots declaration, however Init is called after DeclarePlots

Reimplemented from EventProcessor.

Reimplemented in GeCalibProcessor, and Ge4Hen3Processor.

Definition at line 151 of file GeProcessor.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ GetAddbackEvents()

std::vector< std::vector<AddBackEvent> > GeProcessor::GetAddbackEvents ( void  )
inline

Returns the events that were added to the addbackEvents_

Definition at line 208 of file GeProcessor.hpp.

§ GetGeEvents()

std::vector<ChanEvent*> GeProcessor::GetGeEvents ( void  )
inline

Returns the events that were added to the geEvents_ vector

Definition at line 206 of file GeProcessor.hpp.

§ GetTasEvents()

std::vector<AddBackEvent> GeProcessor::GetTasEvents ( void  )
inline

Returns the events that were added to the tas_

Definition at line 210 of file GeProcessor.hpp.

§ GoodGammaBeta()

bool GeProcessor::GoodGammaBeta ( double  gTime)
protected
Returns
true if gamma-beta correlation time within good limits. Browses through all beta events in Beta correlation place to find the lowest difference. Takes gTime in pixie clock, limit in seconds.
Parameters
[in]gTime: the time of the gamma

Definition at line 53 of file GeProcessor.cpp.

Here is the caller graph for this function:

§ granploty()

void GeProcessor::granploty ( int  dammId,
double  x,
double  y,
const std::vector< float > &  granularity 
)
protected

Plotting function to plot in a specific granularity

Parameters
[in]dammId: the damm id to plot into
[in]x: the x value to plot
[in]y: the y value to plot
[in]granularity: the list of granularities to plot into

Plot to a granularity spectrum

Definition at line 843 of file GeProcessor.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ PreProcess()

bool GeProcessor::PreProcess ( RawEvent event)
virtual

Preprocess the event

Parameters
[in]event: the event to preprocess
Returns
true if successful

Only the high gain events are going to be used. The events where low/high gain mismatches, saturation or pileup is marked are rejected

Here the addback spectra is constructed. addbackEvents_ is a vector for each clover holding a vector of pairs <energy, time> (both double), where each element is a one addback event for a given clover.

guarantee the first event will be greater than the subevent window delayed from reference

Do not take into account events with too low energy (avoid summing of noise with real gammas)

Reimplemented from EventProcessor.

Reimplemented in GeCalibProcessor.

Definition at line 386 of file GeProcessor.cpp.

Here is the call graph for this function:

§ Process()

bool GeProcessor::Process ( RawEvent event)
virtual

Process the event

Parameters
[in]event: the event to process
Returns
true if successful

Cycle time is measured from the begining of the last BeamON event

Place Cycle is activated by BeamOn event and deactivated by TapeMove This condition will therefore skip events registered during tape movement period and before the end of move and the beam start

Beam deque should be updated upon beam off so measure time from that point (t = 0 is time beam went off)

Plot timediff between events in the same clover to monitor addback subevent gates.

Reimplemented from EventProcessor.

Reimplemented in GeCalibProcessor, and Ge4Hen3Processor.

Definition at line 474 of file GeProcessor.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ symplot()

void GeProcessor::symplot ( int  dammID,
double  bin1,
double  bin2 
)
protected

Symmetric gamma-gamma plots. It will plot (bin1,bin2) and (bin2,bin1).

Parameters
[in]dammID: the ID for the plot
[in]bin1: the first bin to plot into
[in]bin2: the second bin to plot into

Definition at line 59 of file GeProcessor.cpp.

Here is the caller graph for this function:

Field Documentation

§ addbackEvents_

std::vector< std::vector<AddBackEvent> > GeProcessor::addbackEvents_
protected

addbackEvents vector of vectors, where first vector enumerates cloves, second events

Definition at line 259 of file GeProcessor.hpp.

§ chansPerClover

const unsigned int GeProcessor::chansPerClover = 4
staticprotected

number of channels per clover

Definition at line 212 of file GeProcessor.hpp.

§ cycle_gate1_max_

double GeProcessor::cycle_gate1_max_
protected

high value for first cycle gate

Definition at line 287 of file GeProcessor.hpp.

§ cycle_gate1_min_

double GeProcessor::cycle_gate1_min_
protected

low value for first cycle gate

Cycle gates replace early/high limits. Gate set on cycle in time allows to check the gamma-gamma coincidences within the chosen range of cycle (e.g 1 - 1.5 s)

Definition at line 286 of file GeProcessor.hpp.

§ cycle_gate2_max_

double GeProcessor::cycle_gate2_max_
protected

high value for second cycle gate

Definition at line 289 of file GeProcessor.hpp.

§ cycle_gate2_min_

double GeProcessor::cycle_gate2_min_
protected

low value for second cycle gate

Definition at line 288 of file GeProcessor.hpp.

§ gammaBetaLimit_

double GeProcessor::gammaBetaLimit_
protected

Prompt Gamma-beta limit in seconds

Definition at line 278 of file GeProcessor.hpp.

§ gammaGammaLimit_

double GeProcessor::gammaGammaLimit_
protected

Prompt Gamma-gamma limit in seconds

Definition at line 281 of file GeProcessor.hpp.

§ gammaThreshold_

double GeProcessor::gammaThreshold_
protected

Gamma low threshold in keV

Definition at line 269 of file GeProcessor.hpp.

§ geEvents_

std::vector<ChanEvent*> GeProcessor::geEvents_
protected

Preprocessed good ge events, filled in PreProcess.

Definition at line 231 of file GeProcessor.hpp.

§ highRatio_

double GeProcessor::highRatio_
protected

ratio between low and high gain to be accepted w/o saturation flag

Definition at line 272 of file GeProcessor.hpp.

§ leafToClover

std::map<int, int> GeProcessor::leafToClover
protected

Translate a leaf location to a clover number

Definition at line 214 of file GeProcessor.hpp.

§ lowRatio_

double GeProcessor::lowRatio_
protected

ratio between low and high gain to be accepted w/o saturation flag

Definition at line 271 of file GeProcessor.hpp.

§ numClovers

unsigned int GeProcessor::numClovers
protected

number of clovers in map

Definition at line 216 of file GeProcessor.hpp.

§ subEventWindow_

double GeProcessor::subEventWindow_
protected

Addback subevent window in seconds

Definition at line 275 of file GeProcessor.hpp.

§ tas_

std::vector<AddBackEvent> GeProcessor::tas_
protected

tas vector for total energy absorbed, similar structure as addback but there is only one "super-clover" (sum of all detectors)

Definition at line 263 of file GeProcessor.hpp.

§ timeResolution

std::vector<float> GeProcessor::timeResolution
protected

Contatin time resolutions used

Definition at line 215 of file GeProcessor.hpp.


The documentation for this class was generated from the following files: