REST-for-Physics
v2.3
Rare Event Searches ToolKit for Physics
|
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.
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.
The following figure shows the integralThreshold trigger definition for a NLDBD event. fTimeStart and fTimeEnd define the acquisition window, centered on the time when the signal integral is above the threshold defined. fTimeStart has been shifted by a triggerDelay = 60 samples * 200ns
RESTsoft - Software for Rare Event Searches with TPCs
History of developments:
2017-November: First implementation of signal to rawsignal conversion. Javier Galan
Definition at line 32 of file TRestDetectorSignalToRawSignalProcess.h.
#include <TRestDetectorSignalToRawSignalProcess.h>
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. | |
Double_t | GetIntegralThreshold () const |
Int_t | GetNPoints () const |
RESTValue | GetOutputEvent () const override |
Get pointer to output event. Must be implemented in the derived class. | |
const char * | GetProcessName () const override |
Returns the name of this process. | |
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) | |
bool | IsLinearCalibration () const |
void | LoadConfig (const std::string &configFilename, const std::string &name="") |
Function to load the configuration from an external configuration file. More... | |
TRestEventProcess * | Maker () |
Returns a new instance of this class. | |
void | PrintMetadata () override |
It prints out the process parameters stored in the metadata structure. | |
TRestEvent * | ProcessEvent (TRestEvent *inputEvent) override |
The main processing event function. | |
TRestDetectorSignalToRawSignalProcess () | |
Default constructor. | |
TRestDetectorSignalToRawSignalProcess (const char *configFilename) | |
Constructor loading data from a config file. More... | |
~TRestDetectorSignalToRawSignalProcess () | |
Default destructor. | |
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() | |
ClassDefOverride (TRestEventProcess, 3) | |
virtual void | EndOfEventProcess (TRestEvent *inputEvent=nullptr) |
End of event process. Nothing to do. Called directly after ProcessEvent() | |
virtual void | EndProcess () |
To be executed at the end of the run (outside event loop) | |
TRestAnalysisTree * | GetAnalysisTree () const |
Return the local analysis tree (dummy) | |
TCanvas * | GetCanvas () const |
Get canvas. | |
TRestAnalysisTree * | GetFullAnalysisTree () |
std::vector< std::string > | GetListOfAddedObservables () |
TRestRun * | GetRunInfo () const |
Return the pointer of the hosting TRestRun object. | |
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. | |
Bool_t | isExternal () const |
Return whether this process is external process. | |
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. | |
virtual Bool_t | OpenInputFiles (const std::vector< std::string > &files) |
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. | |
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. | |
Bool_t | singleThreadOnly () const |
Return whether this process is single std::thread only. | |
TRestEventProcess () | |
~TRestEventProcess () | |
Public Member Functions inherited from TRestMetadata | |
void | AddLog (std::string log="", bool print=true) |
Add logs to messageBuffer. | |
void | DoNotStore () |
If this method is called the metadata information will not be stored in disk. | |
TVector2 | Get2DVectorParameterWithUnits (std::string parName, TVector2 defaultValue=TVector2(-1, -1)) |
TVector3 | Get3DVectorParameterWithUnits (std::string parName, TVector3 defaultValue=TVector3(-1, -1, -1)) |
TString | GetCommit () |
Returns the REST commit value stored in fCommit. | |
std::string | GetConfigBuffer () |
Returns the config section of this class. | |
std::string | GetDataMemberValue (std::string memberName) |
Get the value of data member as string. More... | |
std::vector< std::string > | GetDataMemberValues (std::string memberName, Int_t precision=0) |
Get the value of datamember as a vector of strings. More... | |
TString | GetDataPath () |
Returns a std::string with the path used for data storage. | |
Double_t | GetDblParameterWithUnits (std::string parName, Double_t defaultValue=PARAMETER_NOT_FOUND_DBL) |
Gets the value of the parameter name parName, after applying unit conversion. More... | |
Bool_t | GetError () const |
It returns true if an error was identified by a derived metadata class. | |
TString | GetErrorMessage () |
Returns a std::string containing the error message. | |
TString | GetLibraryVersion () |
Returns the REST libraty version stored in fLibraryVersion. | |
TString | GetMainDataPath () |
Gets a std::string with the path used for data storage. | |
Int_t | GetNumberOfErrors () const |
Int_t | GetNumberOfWarnings () const |
std::string | GetParameter (std::string parName, TString defaultValue=PARAMETER_NOT_FOUND_STR) |
Returns corresponding REST Metadata parameter from multiple sources. More... | |
std::string | GetSectionName () |
Returns the section name of this class, defined at the beginning of fSectionName. | |
TRestStringOutput::REST_Verbose_Level | GetVerboseLevel () |
returns the verboselevel in type of REST_Verbose_Level enumerator | |
TString | GetVerboseLevelString () |
returns the verbose level in type of TString More... | |
TString | GetVersion () |
Returns the REST version stored in fVersion. | |
Int_t | GetVersionCode () |
UInt_t | GetVersionMajor () const |
UInt_t | GetVersionMinor () const |
UInt_t | GetVersionPatch () const |
Bool_t | GetWarning () const |
It returns true if an error was identified by a derived metadata class. | |
TString | GetWarningMessage () |
Returns a std::string containing the warning message. | |
TRestMetadata * | InstantiateChildMetadata (int index, std::string pattern="") |
This method will retrieve a new TRestMetadata instance of a child element of the present TRestMetadata instance based on the index given by argument, which defines the element order to be retrieved, 0 for first element found, 1 for the second element found, etc. More... | |
TRestMetadata * | InstantiateChildMetadata (std::string pattern="", std::string name="") |
This method will retrieve a new TRestMetadata instance of a child element of the present TRestMetadata instance based on the name given by argument. More... | |
Bool_t | isCleanState () const |
Bool_t | isOfficialRelease () const |
Int_t | LoadConfigFromBuffer () |
Initialize data from a string element buffer. More... | |
Int_t | LoadConfigFromElement (TiXmlElement *eSectional, TiXmlElement *eGlobal, std::map< std::string, std::string > envs={}) |
Main starter method. More... | |
Int_t | LoadConfigFromFile (const std::string &configFilename, const std::string §ionName="") |
Give the file name, find out the corresponding section. Then call the main starter. | |
virtual void | Merge (const TRestMetadata &) |
TRestMetadata & | operator= (const TRestMetadata &) |
void | Print () |
Implementing TObject::Print() method. | |
void | PrintConfigBuffer () |
Print the config xml section stored in the class. More... | |
void | PrintMessageBuffer () |
Print the buffered message. | |
void | PrintTimeStamp (Double_t timeStamp) |
Print the current time on local machine. More... | |
void | SetConfigFile (std::string configFilename) |
set config file path from external | |
void | SetError (std::string message="", bool print=true, int maxPrint=5) |
A metadata class may use this method to signal that something went wrong. | |
void | SetHostmgr (TRestManager *m) |
Set the host manager for this class. | |
void | SetSectionName (std::string sName) |
set the section name, clear the section content | |
void | SetVerboseLevel (TRestStringOutput::REST_Verbose_Level v) |
sets the verbose level | |
void | SetWarning (std::string message="", bool print=true, int maxPrint=5) |
A metadata class may use this method to signal that something went wrong. | |
void | Store () |
If this method is called the metadata information will be stored in disk. | |
TRestMetadata (const TRestMetadata &) | |
virtual void | UpdateMetadataMembers () |
Method to allow implementation of specific metadata members updates at inherited classes. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
overwriting the write() method with fStore considered | |
void | WriteConfigBuffer (std::string fName) |
Writes the config buffer to a file in append mode. | |
~TRestMetadata () | |
TRestMetadata default destructor. | |
Protected Attributes | |
TVector2 | fCalibrationEnergy = TVector2(0.0, 0.0) |
two distinct energy values used for calibration | |
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 | |
Double_t | fIntegralThreshold = 1229.0 |
This parameter is used by integralWindow trigger mode to define the acquisition window. | |
Int_t | fNPoints = 512 |
The number of points of the resulting output signal. | |
Double_t | fSampling = 1.0 |
The sampling time from the binned raw output signal. | |
Double_t | fShapingTime = 0.0 |
Int_t | fTriggerDelay = 100 |
The number of time bins the time start is delayed in the resulting output signal. | |
Int_t | fTriggerFixedStartTime = 0 |
The starting time for the "fixed" trigger mode (can be offset by the trigger delay) | |
std::string | fTriggerMode = "firstDeposit" |
It is used to define the way the time start will be fixed. | |
std::string | fTriggerModeObservableName |
The name of the observable used to define the trigger mode (i.e. g4Ana_sensitiveVolumeFirstHitTime) | |
Protected Attributes inherited from TRestEventProcess | |
TRestAnalysisTree * | fAnalysisTree = nullptr |
TCanvas * | fCanvas = nullptr |
< Canvas for some viewer event | |
TVector2 | fCanvasSize |
Canvas size. | |
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. | |
bool | fIsExternal = false |
It defines if the process reads event data from an external source. | |
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. | |
bool | fReadOnly = false |
not used, keep for compatibility | |
TRestRun * | fRunInfo = nullptr |
< Pointer to TRestRun object where to find metadata. | |
bool | fSingleThreadOnly = false |
bool | fValidateObservables = false |
It defines if observable names should be added to the validation list. | |
Protected Attributes inherited from TRestMetadata | |
std::string | configBuffer |
The buffer where the corresponding metadata section is stored. Filled only during Write() | |
std::string | fConfigFileName |
Full name of the rml file. More... | |
std::map< std::string, std::string > | fConstants |
Saving a list of rml constants. name-value std::pair. Constants are temporary for this class only. | |
TiXmlElement * | fElement |
Saving the sectional element together with global element. | |
TiXmlElement * | fElementGlobal |
Saving the global element, to be passed to the resident class, if necessary. | |
Bool_t | fError = false |
It can be used as a way to identify that something went wrong using SetError method. | |
TString | fErrorMessage = "" |
A std::string to store an optional error message through method SetError. | |
TRestManager * | fHostmgr |
All metadata classes can be initialized and managed by TRestManager. | |
Int_t | fNErrors = 0 |
It counts the number of errors notified. | |
Int_t | fNWarnings = 0 |
It counts the number of warnings notified. | |
std::string | fSectionName |
Section name given in the constructor of the derived metadata class. | |
Bool_t | fStore |
This variable is used to determine if the metadata structure should be stored in the ROOT file. | |
std::map< std::string, std::string > | fVariables |
Saving a list of rml variables. name-value std::pair. | |
TRestStringOutput::REST_Verbose_Level | fVerboseLevel |
Verbose level used to print debug info. | |
Bool_t | fWarning = false |
It can be used as a way to identify that something went wrong using SetWarning method. | |
TString | fWarningMessage = "" |
It can be used as a way to identify that something went wrong using SetWarning method. | |
std::string | messageBuffer |
The buffer to store the output message through TRestStringOutput in this class. | |
endl_t | RESTendl |
Termination flag object for TRestStringOutput. | |
Private Member Functions | |
ClassDefOverride (TRestDetectorSignalToRawSignalProcess, 6) | |
void | InitFromConfigFile () override |
Function reading input parameters from the RML TRestDetectorSignalToRawSignalProcess metadata section. | |
void | Initialize () override |
Function to initialize input/output event members and define the section name. | |
Private Attributes | |
TRestDetectorSignalEvent * | fInputSignalEvent |
A pointer to the specific TRestDetectorSignalEvent input. | |
TRestRawSignalEvent * | fOutputRawSignalEvent |
A pointer to the specific TRestRawSignalEvent input. | |
std::map< std::string, Parameters > | fParametersMap |
TRestDetectorReadout * | fReadout = 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. | |
void | EndPrintProcess () |
TRestEventProcess * | GetFriend (const std::string &nameOrType) |
TRestEventProcess * | GetFriendLive (const std::string &nameOrType) |
template<class T > | |
T * | GetMetadata () |
Get a metadata object from the host TRestRun. More... | |
TRestMetadata * | GetMetadata (const std::string &nameOrType) |
size_t | GetNumberOfParallelProcesses () const |
template<class T > | |
T | GetObservableValue (const std::string &name) |
TRestEventProcess * | GetParallel (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 Member Functions inherited from TRestMetadata | |
std::string | ElementToString (TiXmlElement *ele) |
Convert an TiXmlElement object to string. More... | |
TVector2 | Get2DVectorParameterWithUnits (std::string parName, TiXmlElement *e, TVector2 defaultValue=TVector2(-1, -1)) |
TVector3 | Get3DVectorParameterWithUnits (std::string parName, TiXmlElement *e, TVector3 defaultValue=TVector3(-1, -1, -1)) |
Double_t | GetDblParameterWithUnits (std::string parName, TiXmlElement *e, Double_t defaultVal=PARAMETER_NOT_FOUND_DBL) |
TiXmlElement * | GetElement (std::string eleDeclare, TiXmlElement *e=nullptr) |
Get an xml element from a given parent element, according to its declaration. | |
TiXmlElement * | GetElementFromFile (std::string configFilename, std::string NameOrDecalre="") |
Open an xml encoded file and find its element. More... | |
TiXmlElement * | GetElementWithName (std::string eleDeclare, std::string eleName) |
Get an xml element from the default location, according to its declaration and its field "name". | |
TiXmlElement * | GetElementWithName (std::string eleDeclare, std::string eleName, TiXmlElement *e) |
Get an xml element from a given parent element, according to its declaration and its field "name". | |
std::string | GetFieldValue (std::string fieldName, std::string definition, size_t fromPosition=0) |
Gets field value in an xml element string by parsing it as TiXmlElement. | |
std::string | GetFieldValue (std::string parName, TiXmlElement *e) |
Returns the field value of an xml element which has the specified name. More... | |
std::string | GetKEYDefinition (std::string keyName) |
Gets the first key definition for keyName found inside buffer starting at fromPosition. More... | |
std::string | GetKEYDefinition (std::string keyName, size_t &Position) |
std::string | GetKEYDefinition (std::string keyName, size_t &Position, std::string buffer) |
std::string | GetKEYDefinition (std::string keyName, std::string buffer) |
std::string | GetKEYStructure (std::string keyName) |
Gets the first key structure for keyName found inside buffer after fromPosition. More... | |
std::string | GetKEYStructure (std::string keyName, size_t &Position) |
std::string | GetKEYStructure (std::string keyName, size_t &Position, std::string buffer) |
std::string | GetKEYStructure (std::string keyName, size_t &Position, TiXmlElement *ele) |
std::string | GetKEYStructure (std::string keyName, std::string buffer) |
TiXmlElement * | GetNextElement (TiXmlElement *e) |
Get the next sibling xml element of this element, with same eleDeclare. | |
std::string | GetParameter (std::string parName, size_t &pos, std::string inputString) |
Returns the value for the parameter name parName found in inputString. More... | |
std::string | GetParameter (std::string parName, TiXmlElement *e, TString defaultValue=PARAMETER_NOT_FOUND_STR) |
Returns the value for the parameter named parName in the given section. More... | |
std::pair< std::string, std::string > | GetParameterAndUnits (std::string parname, TiXmlElement *e=nullptr) |
Returns the unit string of the given parameter of the given xml section. More... | |
std::map< std::string, std::string > | GetParametersList () |
It retrieves a map of all parameter:value found in the metadata class. | |
TString | GetSearchPath () |
virtual void | InitFromRootFile () |
Method called after the object is retrieved from root file. | |
void | ReadAllParameters () |
Reflection methods, Set value of a datamember in class according to TRestMetadata::fElement. More... | |
void | ReadParametersList (std::map< std::string, std::string > &list) |
It reads a parameter list and associates it to its corresponding metadata member. par0 --> fPar0. | |
std::string | ReplaceConstants (const std::string buffer) |
Identifies "constants" in the input buffer, and replace them with corresponding value. More... | |
std::string | ReplaceVariables (const std::string buffer) |
Identifies environmental variable replacing marks in the input buffer, and replace them with corresponding value. More... | |
void | ReSetVersion () |
Resets the version of TRestRun to REST_RELEASE. Only TRestRun is allowed to update version. | |
std::string | SearchFile (std::string filename) |
Search files in current directory and directories specified in "searchPath" section. More... | |
void | SetLibraryVersion (TString version) |
Set the library version of this metadata class. | |
TiXmlElement * | StringToElement (std::string definition) |
Parsing a string into TiXmlElement object. More... | |
TRestMetadata () | |
TRestMetadata default constructor. | |
TRestMetadata (const char *configFilename) | |
constructor | |
void | UnSetVersion () |
Resets the version of TRestRun to -1, in case the file is old REST file. Only TRestRun is allowed to update version. | |
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.
configFilename | A const char* giving the path to an RML file. |
Definition at line 164 of file TRestDetectorSignalToRawSignalProcess.cxx.
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.
configFilename | A const char* giving the path to an RML file. |
name | The 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.
|
protected |
fCalibrationGain and fCalibrationOffset define the linear calibration. output = input * fCalibrationGain + calibrationOffset
Definition at line 67 of file TRestDetectorSignalToRawSignalProcess.h.
|
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 83 of file TRestDetectorSignalToRawSignalProcess.h.