REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
Public Member Functions | Private Attributes
TRestRawZeroSuppresionProcess Class Reference

Detailed Description

A process to identify signal and remove baseline noise from a TRestRawSignalEvent.

IMPORTANT TRestRawZeroSuppresionProcess is a legacy class, it is just kept for backward compatibility of the code. Do not attempt to create any instance to a legacy process. The information below is kept to have a reference of previous implementations.

The TRestRawZeroSuppresionProcess identifies the points that are over threshold from the input TRestRawSignalEvent. The resulting points, that are presumed to be a physical signal, will be transported to the output TRestDetectorSignalEvent returned by this process. The data points transferred to the output TRestDetectorSignalEvent will have physical time units related to the sampling rate of the raw signal received as input, and defined as a parameter in this process.

The different parameters required by this process are:

\TODO Add description of observables here.

An example of definition of this process inside a data processing chain, inside the <TRestProcessRunner> section.

The values given between ${} are enviroment variables that can be defined at the system or at the <globals> section. See also TRestMetadata for additional details.

<addProcess type="TRestRawZeroSuppresionProcess" name="zS" value="ON"
baseLineRange="(${BL_MIN},${BL_MAX})"
integralRange="(${INT_MIN},${INT_MAX})"
pointThreshold="${POINT_TH}"
pointsOverThreshold="${NPOINTS}"
sampling="${SAMPLING}"
signalThreshold="${SGNL_TH}"
observable="all"
verboseLevel="silent" />

RESTsoft - Software for Rare Event Searches with TPCs

History of developments:

2016-January: Conception and implementation of signal zero suppression process. Javier Galan

Author
Javier Galan
Kaixiang Ni

Definition at line 29 of file TRestRawZeroSuppresionProcess.h.

#include <TRestRawZeroSuppresionProcess.h>

Inheritance diagram for TRestRawZeroSuppresionProcess:
TRestLegacyProcess TRestEventProcess TRestMetadata

Public Member Functions

 ClassDefOverride (TRestRawZeroSuppresionProcess, 4)
 
void PrintMetadata () override
 It prints out the process parameters stored in the metadata structure. More...
 
 TRestRawZeroSuppresionProcess (char *cfgFileName)
 
- Public Member Functions inherited from TRestLegacyProcess
 ClassDefOverride (TRestLegacyProcess, 0)
 
void EndProcess () final
 To be executed at the end of the run (outside event loop) More...
 
RESTValue GetInputEvent () const final
 Get pointer to input event. Must be implemented in the derived class. More...
 
RESTValue GetOutputEvent () const final
 Get pointer to output event. Must be implemented in the derived class. More...
 
const char * GetProcessName () const final
 Returns the name of this process. More...
 
void InitProcess () final
 To be executed at the beginning of the run (outside event loop) More...
 
void PrintMetadata () override
 It prints out the process parameters stored in the metadata structure. More...
 
TRestEventProcessEvent (TRestEvent *eventInput) final
 Process one event. More...
 
 TRestLegacyProcess (char *cfgFileName)
 
- Public Member Functions inherited from TRestEventProcess
virtual Bool_t AddInputFile (const std::string &file)
 
bool ApplyCut ()
 
virtual void BeginOfEventProcess (TRestEvent *inputEvent=nullptr)
 Begin of event process, preparation work. Called right before ProcessEvent() More...
 
 ClassDefOverride (TRestEventProcess, 3)
 
virtual void EndOfEventProcess (TRestEvent *inputEvent=nullptr)
 End of event process. Nothing to do. Called directly after ProcessEvent() More...
 
virtual void EndProcess ()
 To be executed at the end of the run (outside event loop) More...
 
TRestAnalysisTreeGetAnalysisTree () const
 Return the local analysis tree (dummy) More...
 
TCanvas * GetCanvas () const
 Get canvas. More...
 
TRestAnalysisTreeGetFullAnalysisTree ()
 
virtual RESTValue GetInputEvent () const =0
 Get pointer to input event. Must be implemented in the derived class. More...
 
std::vector< std::string > GetListOfAddedObservables ()
 
virtual RESTValue GetOutputEvent () const =0
 Get pointer to output event. Must be implemented in the derived class. More...
 
virtual const char * GetProcessName () const =0
 
TRestRunGetRunInfo () const
 Return the pointer of the hosting TRestRun object. More...
 
virtual Long64_t GetTotalBytes () const
 
virtual Long64_t GetTotalBytesRead () const
 Interface to external file reading, get the read bytes. To be implemented in external processes. More...
 
virtual void InitFromConfigFile () override
 To make settings from rml file. This method must be implemented in the derived class. More...
 
virtual void InitProcess ()
 To be executed at the beginning of the run (outside event loop) More...
 
Bool_t isExternal () const
 Return whether this process is external process. More...
 
Int_t LoadSectionMetadata () override
 This method does some preparation of xml section. More...
 
virtual void NotifyAnalysisTreeReset ()
 In case the analysis tree is reset(switched to new file), some process needs to have action. More...
 
virtual Bool_t OpenInputFiles (const std::vector< std::string > &files)
 
virtual TRestEventProcessEvent (TRestEvent *inputEvent)=0
 Process one event. More...
 
std::vector< std::string > ReadObservables ()
 
void RegisterAllObservables (Bool_t value=true)
 
virtual Bool_t ResetEntry ()
 
void SetAnalysisTree (TRestAnalysisTree *tree)
 Set analysis tree of this process, then add observables to it.
 
void SetCanvasSize (Int_t x, Int_t y)
 Set canvas size. More...
 
void SetFriendProcess (TRestEventProcess *p)
 Add friendly process to this process.
 
void SetObservableValidation (bool validate)
 
void SetParallelProcess (TRestEventProcess *p)
 Add parallel process to this process.
 
void SetRunInfo (TRestRun *r)
 Set TRestRun for this process. More...
 
Bool_t singleThreadOnly () const
 Return whether this process is single std::thread only. More...
 
 TRestEventProcess ()
 
 ~TRestEventProcess ()
 

Private Attributes

bool fBaseLineCorrection
 A parameter to determine if baseline correction has been applied by a previous process. More...
 
TVector2 fBaseLineRange
 The ADC range used for baseline offset definition. More...
 
TVector2 fIntegralRange
 The ADC range used for integral definition and signal identification. More...
 
Int_t fNPointsFlatThreshold
 
Int_t fNPointsOverThreshold
 Number of consecutive points over threshold required to accept a signal. More...
 
Double_t fPointThreshold
 Number of sigmas over baseline fluctuation to accept a point is over threshold. More...
 
Double_t fSampling
 
Double_t fSignalThreshold
 A threshold parameter to accept or reject a pre-identified signal. See process description. More...
 

Additional Inherited Members

- Protected Types inherited from TRestEventProcess
enum  REST_Process_Output { No_Output , Observable , Internal_Var , Full_Output }
 
- Protected Member Functions inherited from TRestEventProcess
void BeginPrintProcess ()
 [name, cut range]
 
void CreateCanvas ()
 Create the canvas. More...
 
void EndPrintProcess ()
 
TRestEventProcessGetFriend (const std::string &nameOrType)
 
TRestEventProcessGetFriendLive (const std::string &nameOrType)
 
template<class T >
T * GetMetadata ()
 Get a metadata object from the host TRestRun. More...
 
TRestMetadataGetMetadata (const std::string &nameOrType)
 
size_t GetNumberOfParallelProcesses () const
 
template<class T >
GetObservableValue (const std::string &name)
 
TRestEventProcessGetParallel (int i)
 
template<class T >
std::vector< T > GetParallelDataMembers (T *member_of_process)
 Get a list of data members from parallel processes which is same to this process's certain data member. More...
 
template<class T >
void SetObservableValue (const std::string &name, const T &value)
 Set observable value for AnalysisTree. More...
 
- Protected Attributes inherited from TRestEventProcess
TRestAnalysisTreefAnalysisTree = nullptr
 
TCanvas * fCanvas = nullptr
 < Canvas for some viewer event More...
 
TVector2 fCanvasSize
 Canvas size. More...
 
std::vector< std::pair< std::string, TVector2 > > fCuts
 Stores cut definitions. Any listed observables should be in the range. More...
 
bool fDynamicObs = false
 It defines whether to use added observables only or all the observables appear in the code. More...
 
bool fIsExternal = false
 It defines if the process reads event data from an external source. More...
 
std::map< std::string, int > fObservablesDefined
 Stores the list of all the appeared process observables in the code. More...
 
std::map< std::string, int > fObservablesUpdated
 Stores the list of process observables updated when processing this event. More...
 
bool fReadOnly = false
 not used, keep for compatibility More...
 
TRestRunfRunInfo = nullptr
 < Pointer to TRestRun object where to find metadata. More...
 
bool fSingleThreadOnly = false
 
bool fValidateObservables = false
 It defines if observable names should be added to the validation list. More...
 

Constructor & Destructor Documentation

◆ TRestRawZeroSuppresionProcess() [1/2]

TRestRawZeroSuppresionProcess::TRestRawZeroSuppresionProcess ( )
inline

Definition at line 74 of file TRestRawZeroSuppresionProcess.h.

◆ TRestRawZeroSuppresionProcess() [2/2]

TRestRawZeroSuppresionProcess::TRestRawZeroSuppresionProcess ( char *  cfgFileName)
inline

Definition at line 79 of file TRestRawZeroSuppresionProcess.h.

Member Function Documentation

◆ PrintMetadata()

void TRestRawZeroSuppresionProcess::PrintMetadata ( )
inlineoverridevirtual

It prints out the process parameters stored in the metadata structure.

Reimplemented from TRestLegacyProcess.

Definition at line 57 of file TRestRawZeroSuppresionProcess.h.

Field Documentation

◆ fBaseLineCorrection

bool TRestRawZeroSuppresionProcess::fBaseLineCorrection
private

A parameter to determine if baseline correction has been applied by a previous process.

Definition at line 49 of file TRestRawZeroSuppresionProcess.h.

◆ fBaseLineRange

TVector2 TRestRawZeroSuppresionProcess::fBaseLineRange
private

The ADC range used for baseline offset definition.

Definition at line 32 of file TRestRawZeroSuppresionProcess.h.

◆ fIntegralRange

TVector2 TRestRawZeroSuppresionProcess::fIntegralRange
private

The ADC range used for integral definition and signal identification.

Definition at line 35 of file TRestRawZeroSuppresionProcess.h.

◆ fNPointsFlatThreshold

Int_t TRestRawZeroSuppresionProcess::fNPointsFlatThreshold
private

Definition at line 46 of file TRestRawZeroSuppresionProcess.h.

◆ fNPointsOverThreshold

Int_t TRestRawZeroSuppresionProcess::fNPointsOverThreshold
private

Number of consecutive points over threshold required to accept a signal.

Definition at line 44 of file TRestRawZeroSuppresionProcess.h.

◆ fPointThreshold

Double_t TRestRawZeroSuppresionProcess::fPointThreshold
private

Number of sigmas over baseline fluctuation to accept a point is over threshold.

Definition at line 38 of file TRestRawZeroSuppresionProcess.h.

◆ fSampling

Double_t TRestRawZeroSuppresionProcess::fSampling
private

The ADC sampling used to transform ADC units to physical time in the output TRestDetectorSignalEvent. Given in us.

Definition at line 53 of file TRestRawZeroSuppresionProcess.h.

◆ fSignalThreshold

Double_t TRestRawZeroSuppresionProcess::fSignalThreshold
private

A threshold parameter to accept or reject a pre-identified signal. See process description.

Definition at line 41 of file TRestRawZeroSuppresionProcess.h.


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