REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
Data Structures | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
TRestDetectorSignalToRawSignalProcess Class Reference

Detailed Description

A process to convert a TRestDetectorSignalEvent into a TRestRawSignalEvent.

TRestDetectorSignalToRawSignalProcess transforms a TRestDetectorSignalEvent into a TRestRawSignalEvent. The TRestDetectorSignalEvent contains signal data built with arbitrary times and their corresponding data values (time, data). The data inside a TRestRawSignal losses precision on the time definition, and it is just a data array with a fixed number of data points. Therefore, the time between two consecutive data points in a raw signal event must be kept constant.

This process produces the sampling of a TRestDetectorSignalEvent into a TRestRawSignalEvent. TRestDetectorSignal contains Float_t data values, while TResRawSignal contains Short_t values. Thats why there might be some information loss when transferring the signal data to the raw-signal data. To minimize the impact, the maximum data value of the output signals should be high enough, and adjusted to the maximum value of a Short_t, being this value 32767. The gain parameter may serve to re-adjust the amplitude of the output data array.

Warning
If the value assigned to a data point in the output rawsignal event exceeds 32767 it will cause an overflow, and the event data will be corrupted. If the verboseLevel of the process is warning, an output message will prevent the user. The event status will be invalid.

The input signal contains arbitrary times expressed in microseconds. In order to produce the binning, a time window must be defined. The parameter triggerMode will allow to define how we choose the time start (corresponding to the bin 0 in the raw signal), and time end (corresponding to the last bin in the raw signal).

The trigger mode will fix the time the signal starts, while the sampling time parameter (in microseconds) and the number of points per signal, Npoints, will fix the time end. A triggerDelay parameter allows to shift the time measured in number of samples, from the definition obtained using the triggerMode parameter.

The following list describes the different parameters that can be used in this process.


RESTsoft - Software for Rare Event Searches with TPCs

History of developments:

2017-November: First implementation of signal to rawsignal conversion. Javier Galan

Author
Javier Galan

Definition at line 32 of file TRestDetectorSignalToRawSignalProcess.h.

#include <TRestDetectorSignalToRawSignalProcess.h>

Inheritance diagram for TRestDetectorSignalToRawSignalProcess:
TRestEventProcess TRestMetadata

Data Structures

struct  Parameters
 

Public Member Functions

Double_t GetADCFromEnergy (Double_t energy, const std::string &type="") const
 
Double_t GetBinFromTime (Double_t time, const std::string &type="") const
 
Double_t GetEnergyFromADC (Double_t adc, const std::string &type="") const
 
Double_t GetGain () const
 
RESTValue GetInputEvent () const override
 Get pointer to input event. Must be implemented in the derived class. More...
 
Double_t GetIntegralThreshold () const
 
Int_t GetNPoints () const
 
RESTValue GetOutputEvent () const override
 Get pointer to output event. Must be implemented in the derived class. More...
 
const char * GetProcessName () const override
 Returns the name of this process. More...
 
Double_t GetSampling () const
 
Double_t GetTimeFromBin (Double_t bin, const std::string &type="") const
 
Int_t GetTriggerDelay () const
 
std::string GetTriggerMode () const
 
void InitProcess () override
 To be executed at the beginning of the run (outside event loop) More...
 
bool IsLinearCalibration () const
 
void LoadConfig (const std::string &configFilename, const std::string &name="")
 Function to load the configuration from an external configuration file. More...
 
TRestEventProcessMaker ()
 Returns a new instance of this class. More...
 
void PrintMetadata () override
 It prints out the process parameters stored in the metadata structure. More...
 
TRestEventProcessEvent (TRestEvent *inputEvent) override
 The main processing event function. More...
 
 TRestDetectorSignalToRawSignalProcess ()
 Default constructor. More...
 
 TRestDetectorSignalToRawSignalProcess (const char *configFilename)
 Constructor loading data from a config file. More...
 
 ~TRestDetectorSignalToRawSignalProcess ()
 Default destructor. More...
 
- 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 ()
 

Protected Attributes

TVector2 fCalibrationEnergy = TVector2(0.0, 0.0)
 two distinct energy values used for calibration More...
 
Double_t fCalibrationGain = 100.0
 
Double_t fCalibrationOffset = 0.0
 
TVector2 fCalibrationRange = TVector2(0.0, 0.0)
 position in the range corresponding to the energy in 'fCalibrationEnergy'. Values between 0 and 1 More...
 
Double_t fIntegralThreshold = 1229.0
 This parameter is used by integralWindow trigger mode to define the acquisition window. More...
 
Double_t fIntegralThresholdTPCkeV = 0.1
 
Int_t fNPoints = 512
 The number of points of the resulting output signal. More...
 
Double_t fSampling = 1.0
 The sampling time from the binned raw output signal. More...
 
Double_t fShapingTime = 0.0
 
Int_t fTriggerDelay = 100
 The number of time bins the time start is delayed in the resulting output signal. More...
 
Int_t fTriggerFixedStartTime = 0
 The starting time for the "fixed" trigger mode (can be offset by the trigger delay) More...
 
std::string fTriggerMode = "firstDeposit"
 It is used to define the way the time start will be fixed. More...
 
std::string fTriggerModeObservableName
 The name of the observable used to define the trigger mode (i.e. g4Ana_sensitiveVolumeFirstHitTime) 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...
 

Private Member Functions

 ClassDefOverride (TRestDetectorSignalToRawSignalProcess, 7)
 
void InitFromConfigFile () override
 Function reading input parameters from the RML TRestDetectorSignalToRawSignalProcess metadata section. More...
 
void Initialize () override
 Function to initialize input/output event members and define the section name. More...
 

Private Attributes

TRestDetectorSignalEventfInputSignalEvent
 A pointer to the specific TRestDetectorSignalEvent input. More...
 
TRestRawSignalEventfOutputRawSignalEvent
 A pointer to the specific TRestRawSignalEvent input. More...
 
std::map< std::string, ParametersfParametersMap
 
TRestDetectorReadoutfReadout = nullptr
 
std::set< std::string > fReadoutTypes
 

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...
 

Constructor & Destructor Documentation

◆ TRestDetectorSignalToRawSignalProcess() [1/2]

TRestDetectorSignalToRawSignalProcess::TRestDetectorSignalToRawSignalProcess ( )

Default constructor.

Definition at line 150 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ TRestDetectorSignalToRawSignalProcess() [2/2]

TRestDetectorSignalToRawSignalProcess::TRestDetectorSignalToRawSignalProcess ( const char *  configFilename)

Constructor loading data from a config file.

If no configuration path is defined using TRestMetadata::SetConfigFilePath the path to the config file must be specified using full path, absolute or relative.

The default behaviour is that the config file must be specified with full path, absolute or relative.

Parameters
configFilenameA const char* giving the path to an RML file.

Definition at line 164 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ ~TRestDetectorSignalToRawSignalProcess()

TRestDetectorSignalToRawSignalProcess::~TRestDetectorSignalToRawSignalProcess ( )

Default destructor.

Definition at line 172 of file TRestDetectorSignalToRawSignalProcess.cxx.

Member Function Documentation

◆ GetADCFromEnergy()

Double_t TRestDetectorSignalToRawSignalProcess::GetADCFromEnergy ( Double_t  energy,
const std::string &  type = "" 
) const

Definition at line 630 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ GetBinFromTime()

Double_t TRestDetectorSignalToRawSignalProcess::GetBinFromTime ( Double_t  time,
const std::string &  type = "" 
) const

Definition at line 651 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ GetEnergyFromADC()

Double_t TRestDetectorSignalToRawSignalProcess::GetEnergyFromADC ( Double_t  adc,
const std::string &  type = "" 
) const

Definition at line 619 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ GetGain()

Double_t TRestDetectorSignalToRawSignalProcess::GetGain ( ) const
inline

Definition at line 95 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetInputEvent()

RESTValue TRestDetectorSignalToRawSignalProcess::GetInputEvent ( ) const
inlineoverridevirtual

Get pointer to input event. Must be implemented in the derived class.

Implements TRestEventProcess.

Definition at line 104 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetIntegralThreshold()

Double_t TRestDetectorSignalToRawSignalProcess::GetIntegralThreshold ( ) const
inline

Definition at line 97 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetNPoints()

Int_t TRestDetectorSignalToRawSignalProcess::GetNPoints ( ) const
inline

Definition at line 89 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetOutputEvent()

RESTValue TRestDetectorSignalToRawSignalProcess::GetOutputEvent ( ) const
inlineoverridevirtual

Get pointer to output event. Must be implemented in the derived class.

Implements TRestEventProcess.

Definition at line 106 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetProcessName()

const char * TRestDetectorSignalToRawSignalProcess::GetProcessName ( ) const
inlineoverridevirtual

Returns the name of this process.

Implements TRestEventProcess.

Definition at line 138 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetSampling()

Double_t TRestDetectorSignalToRawSignalProcess::GetSampling ( ) const
inline

Definition at line 87 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetTimeFromBin()

Double_t TRestDetectorSignalToRawSignalProcess::GetTimeFromBin ( Double_t  bin,
const std::string &  type = "" 
) const

Definition at line 641 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ GetTriggerDelay()

Int_t TRestDetectorSignalToRawSignalProcess::GetTriggerDelay ( ) const
inline

Definition at line 93 of file TRestDetectorSignalToRawSignalProcess.h.

◆ GetTriggerMode()

std::string TRestDetectorSignalToRawSignalProcess::GetTriggerMode ( ) const
inline

Definition at line 91 of file TRestDetectorSignalToRawSignalProcess.h.

◆ InitFromConfigFile()

void TRestDetectorSignalToRawSignalProcess::InitFromConfigFile ( )
overrideprivatevirtual

Function reading input parameters from the RML TRestDetectorSignalToRawSignalProcess metadata section.

Reimplemented from TRestEventProcess.

Definition at line 513 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ Initialize()

void TRestDetectorSignalToRawSignalProcess::Initialize ( )
overrideprivatevirtual

Function to initialize input/output event members and define the section name.

Reimplemented from TRestMetadata.

Definition at line 196 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ InitProcess()

void TRestDetectorSignalToRawSignalProcess::InitProcess ( )
overridevirtual

To be executed at the beginning of the run (outside event loop)

Reimplemented from TRestEventProcess.

Definition at line 617 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ IsLinearCalibration()

bool TRestDetectorSignalToRawSignalProcess::IsLinearCalibration ( ) const
inline

Definition at line 99 of file TRestDetectorSignalToRawSignalProcess.h.

◆ LoadConfig()

void TRestDetectorSignalToRawSignalProcess::LoadConfig ( const std::string &  configFilename,
const std::string &  name = "" 
)

Function to load the configuration from an external configuration file.

If no configuration path is defined in TRestMetadata::SetConfigFilePath the path to the config file must be specified using full path, absolute or relative.

Parameters
configFilenameA const char* giving the path to an RML file.
nameThe name of the specific metadata. It will be used to find the corresponding TRestGeant4AnalysisProcess section inside the RML.

Definition at line 188 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ Maker()

TRestEventProcess * TRestDetectorSignalToRawSignalProcess::Maker ( )
inline

Returns a new instance of this class.

Definition at line 135 of file TRestDetectorSignalToRawSignalProcess.h.

◆ PrintMetadata()

void TRestDetectorSignalToRawSignalProcess::PrintMetadata ( )
overridevirtual

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

Reimplemented from TRestMetadata.

Definition at line 661 of file TRestDetectorSignalToRawSignalProcess.cxx.

◆ ProcessEvent()

TRestEvent * TRestDetectorSignalToRawSignalProcess::ProcessEvent ( TRestEvent inputEvent)
overridevirtual

The main processing event function.

Implements TRestEventProcess.

Definition at line 207 of file TRestDetectorSignalToRawSignalProcess.cxx.

Field Documentation

◆ fCalibrationEnergy

TVector2 TRestDetectorSignalToRawSignalProcess::fCalibrationEnergy = TVector2(0.0, 0.0)
protected

two distinct energy values used for calibration

Definition at line 75 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fCalibrationGain

Double_t TRestDetectorSignalToRawSignalProcess::fCalibrationGain = 100.0
protected

fCalibrationGain and fCalibrationOffset define the linear calibration. output = input * fCalibrationGain + calibrationOffset

Definition at line 67 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fCalibrationOffset

Double_t TRestDetectorSignalToRawSignalProcess::fCalibrationOffset = 0.0
protected

Definition at line 68 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fCalibrationRange

TVector2 TRestDetectorSignalToRawSignalProcess::fCalibrationRange = TVector2(0.0, 0.0)
protected

position in the range corresponding to the energy in 'fCalibrationEnergy'. Values between 0 and 1

Definition at line 77 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fInputSignalEvent

TRestDetectorSignalEvent* TRestDetectorSignalToRawSignalProcess::fInputSignalEvent
private

A pointer to the specific TRestDetectorSignalEvent input.

Definition at line 35 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fIntegralThreshold

Double_t TRestDetectorSignalToRawSignalProcess::fIntegralThreshold = 1229.0
protected

This parameter is used by integralWindow trigger mode to define the acquisition window.

Definition at line 71 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fIntegralThresholdTPCkeV

Double_t TRestDetectorSignalToRawSignalProcess::fIntegralThresholdTPCkeV = 0.1
protected

Definition at line 72 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fNPoints

Int_t TRestDetectorSignalToRawSignalProcess::fNPoints = 512
protected

The number of points of the resulting output signal.

Definition at line 51 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fOutputRawSignalEvent

TRestRawSignalEvent* TRestDetectorSignalToRawSignalProcess::fOutputRawSignalEvent
private

A pointer to the specific TRestRawSignalEvent input.

Definition at line 38 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fParametersMap

std::map<std::string, Parameters> TRestDetectorSignalToRawSignalProcess::fParametersMap
private

Definition at line 149 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fReadout

TRestDetectorReadout* TRestDetectorSignalToRawSignalProcess::fReadout = nullptr
private

Definition at line 40 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fReadoutTypes

std::set<std::string> TRestDetectorSignalToRawSignalProcess::fReadoutTypes
private

Definition at line 150 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fSampling

Double_t TRestDetectorSignalToRawSignalProcess::fSampling = 1.0
protected

The sampling time from the binned raw output signal.

Definition at line 48 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fShapingTime

Double_t TRestDetectorSignalToRawSignalProcess::fShapingTime = 0.0
protected

Usage: fCalibrationEnergy = (0, 100 MeV) and fCalibrationRange = (0.1, 0.9) will perform a linear calibration with 0 equal to 0.1 of the range (0.1 * (max - min) + min) and 100 MeV equal to 0.9 of the range. The range is the one corresponding to a Short_t for rawsignal. If defined ( > 0 ) we will compute the sin shaping of the signal, this is done in this process to avoid artifacts in the signal (e.g. signals not getting cut when they should)

Definition at line 84 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fTriggerDelay

Int_t TRestDetectorSignalToRawSignalProcess::fTriggerDelay = 100
protected

The number of time bins the time start is delayed in the resulting output signal.

Definition at line 57 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fTriggerFixedStartTime

Int_t TRestDetectorSignalToRawSignalProcess::fTriggerFixedStartTime = 0
protected

The starting time for the "fixed" trigger mode (can be offset by the trigger delay)

Definition at line 60 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fTriggerMode

std::string TRestDetectorSignalToRawSignalProcess::fTriggerMode = "firstDeposit"
protected

It is used to define the way the time start will be fixed.

Definition at line 54 of file TRestDetectorSignalToRawSignalProcess.h.

◆ fTriggerModeObservableName

std::string TRestDetectorSignalToRawSignalProcess::fTriggerModeObservableName
protected

The name of the observable used to define the trigger mode (i.e. g4Ana_sensitiveVolumeFirstHitTime)

Definition at line 63 of file TRestDetectorSignalToRawSignalProcess.h.


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