|
REST-for-Physics
v2.3
Rare Event Searches ToolKit for Physics
|
A base class for any REST event process.
One of the core classes of REST. Absract class from which all REST "event process classes" must derive. An event process in REST is an atomic operation on one single (input) event, potentially producing a different (output) event. Which type of (input/output) events will depent on the type of process. Processes can be tailored via metadata classes. All this needs to be defined in the inherited class. TRestEventProcess provides the basic structure (virtual functions)
RESTsoft - Software for Rare Event Searches with TPCs
History of developments:
2014-june: First concept. As part of conceptualization of previous REST code (REST v2) Igor G. Irastorza
2017-Aug: Major change: added for multi-thread capability Kaixiang Ni
Definition at line 37 of file TRestEventProcess.h.
#include <TRestEventProcess.h>
Public Member Functions | |
| virtual Bool_t | AddInputFile (const std::string &file) |
| bool | ApplyCut () |
| Apply cut according to the cut conditions saved in fCut. | |
| 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 () |
| Get the full analysis tree from TRestRun, with non-empty entries. | |
| virtual RESTValue | GetInputEvent () const =0 |
| Get pointer to input event. Must be implemented in the derived class. | |
| std::vector< std::string > | GetListOfAddedObservables () |
| Get list of observables, convert map to vector. | |
| virtual RESTValue | GetOutputEvent () const =0 |
| Get pointer to output event. Must be implemented in the derived class. | |
| virtual const char * | GetProcessName () const =0 |
| 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. | |
| virtual void | InitFromConfigFile () override |
| To make settings from rml file. This method must be implemented in the derived class. | |
| virtual void | InitProcess () |
| To be executed at the beginning of the run (outside event loop). | |
| Bool_t | isExternal () const |
| Return whether this process is external process. | |
| Int_t | LoadSectionMetadata () override |
| Load extra section metadata: outputlevel after calling TRestMetadata::LoadSectionMetadata(). | |
| 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) |
| Interface to external file reading, open input file. To be implemented in external processes. | |
| virtual TRestEvent * | ProcessEvent (TRestEvent *inputEvent)=0 |
| Process one event. | |
| 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. | |
| std::vector< std::string > | GetDataMemberValues (std::string memberName, Int_t precision=0) |
| Get the value of datamember as a vector of strings. | |
| 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. | |
| 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. | |
| 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 | |
| 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. | |
| virtual void | Initialize () |
| Making default settings. | |
| 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. | |
| 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. | |
| Bool_t | isCleanState () const |
| Bool_t | isOfficialRelease () const |
| Int_t | LoadConfigFromBuffer () |
| Initialize data from a string element buffer. | |
| Int_t | LoadConfigFromElement (TiXmlElement *eSectional, TiXmlElement *eGlobal, std::map< std::string, std::string > envs={}) |
| Main starter method. | |
| 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. | |
| void | PrintMessageBuffer () |
| Print the buffered message. | |
| virtual void | PrintMetadata () |
| Implemented it in the derived metadata class to print out specific metadata information. | |
| void | PrintTimeStamp (Double_t timeStamp) |
| Print the current time on local machine. | |
| 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 Types | |
| enum | REST_Process_Output { No_Output , Observable , Internal_Var , Full_Output } |
Protected Member Functions | |
| void | BeginPrintProcess () |
| [name, cut range] | |
| void | CreateCanvas () |
| Create the canvas. | |
| void | EndPrintProcess () |
| Pre-defined printer, can be used at the ending in the implementation of PrintMetadata(). | |
| TRestEventProcess * | GetFriend (const std::string &nameOrType) |
| Get friendly TRestEventProcess object. | |
| TRestEventProcess * | GetFriendLive (const std::string &nameOrType) |
| Get friendly TRestEventProcess object. | |
| template<class T> | |
| T * | GetMetadata () |
| Get a metadata object from the host TRestRun. | |
| TRestMetadata * | GetMetadata (const std::string &nameOrType) |
| Get a metadata object from the host TRestRun. | |
| size_t | GetNumberOfParallelProcesses () const |
| template<class T> | |
| T | GetObservableValue (const std::string &name) |
| TRestEventProcess * | GetParallel (int i) |
| Get a list of parallel processes from this process. | |
| 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. | |
| template<class T> | |
| void | SetObservableValue (const std::string &name, const T &value) |
| Set observable value for AnalysisTree. | |
| Protected Member Functions inherited from TRestMetadata | |
| std::string | ElementToString (TiXmlElement *ele) |
| Convert an TiXmlElement object to string. | |
| 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. | |
| 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. | |
| std::string | GetKEYDefinition (std::string keyName) |
| Gets the first key definition for keyName found inside buffer starting at fromPosition. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| std::string | ReplaceVariables (const std::string buffer) |
| Identifies environmental variable replacing marks in the input buffer, and replace them with corresponding value. | |
| 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. | |
| void | SetLibraryVersion (TString version) |
| Set the library version of this metadata class. | |
| TiXmlElement * | StringToElement (std::string definition) |
| Parsing a string into TiXmlElement object. | |
| 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. | |
Protected Attributes | |
| 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. | |
| 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. | |
| 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. | |
| 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 Attributes | |
| std::vector< TRestEventProcess * > | fFriendlyProcesses |
| /// not used | |
| TRestEvent * | fInputEvent = nullptr |
| < not used, keep for compatibility | |
| TRestEvent * | fOutputEvent = nullptr |
| < not used, keep for compatibility | |
| REST_Process_Output | fOutputLevel |
| not used, keep for compatibility | |
| std::vector< TRestEventProcess * > | fParallelProcesses |
| Stores a list of parallel processes if multithreading is enabled. | |
|
protected |
Definition at line 39 of file TRestEventProcess.h.
| TRestEventProcess::TRestEventProcess | ( | ) |
TRestEventProcess default constructor
Definition at line 69 of file TRestEventProcess.cxx.
| TRestEventProcess::~TRestEventProcess | ( | ) |
TRestEventProcess destructor
Definition at line 79 of file TRestEventProcess.cxx.
|
inlinevirtual |
Definition at line 214 of file TRestEventProcess.h.
| bool TRestEventProcess::ApplyCut | ( | ) |
Apply cut according to the cut conditions saved in fCut.
returns true if the event should be cut and not stored.
Definition at line 309 of file TRestEventProcess.cxx.
|
virtual |
Begin of event process, preparation work. Called right before ProcessEvent().
This method is called before calling ProcessEvent(). We initialize the process's output event if not null and not same as input event. The event's basic info (ID, timestamp, etc.) will also be set to the same as input event
Reimplemented in TRestAxionEventProcess, and TRestRawMemoryBufferToSignalProcess.
Definition at line 346 of file TRestEventProcess.cxx.
|
protected |
[name, cut range]
Pre-defined printer, can be used at the beginning in the implementation of PrintMetadata().
Prints process type, name, title, verboselevel, outputlevel, input/output event type, and several separators
Definition at line 415 of file TRestEventProcess.cxx.
|
inlineprotected |
Create the canvas.
Definition at line 191 of file TRestEventProcess.h.
|
virtual |
End of event process. Nothing to do. Called directly after ProcessEvent().
End of event process. Validate the updated observable number matches total defined observable number.
Reimplemented in TRestAxionEventProcess.
Definition at line 381 of file TRestEventProcess.cxx.
|
protected |
Pre-defined printer, can be used at the ending in the implementation of PrintMetadata().
Prints several separators. Prints cuts.
Definition at line 450 of file TRestEventProcess.cxx.
|
inlinevirtual |
To be executed at the end of the run (outside event loop).
Reimplemented in TRestBenchMarkProcess, TRestDataQualityProcess, TRestDetectorAvalancheProcess, TRestDetectorDaqChannelSwitchingProcess, TRestDetectorElectronDiffusionProcess, TRestDetectorFiducializationProcess, TRestDetectorHits3DReconstructionProcess, TRestDetectorHitsAnalysisProcess, TRestDetectorHitsNormalizationProcess, TRestDetectorHitsReadoutAnalysisProcess, TRestDetectorHitsReductionProcess, TRestDetectorHitsShuffleProcess, TRestDetectorHitsToTrackFastProcess, TRestDetectorLightAttenuationProcess, TRestDetectorPositionMappingProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalViewerProcess, TRestDetectorSingleChannelAnalysisProcess, TRestEventTimeSelectionProcess, TRestGeant4AnalysisProcess, TRestGeant4BlobAnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4VetoAnalysisProcess, TRestLegacyProcess, TRestRawBaseLineCorrectionProcess, TRestRawBiPoAnalysisProcess, TRestRawCommonNoiseReductionProcess, TRestRawFindResponseSignalProcess, TRestRawMultiCoBoAsAdToSignalProcess, TRestRawPeaksFinderProcess, TRestRawReadoutAnalysisProcess, TRestRawReadoutMetadataProcess, TRestRawSignalChannelActivityProcess, TRestRawSignalConvolutionFittingProcess, TRestRawSignalFittingProcess, TRestRawSignalGeneralFitProcess, TRestRawSignalShapingProcess, TRestRawSignalViewerProcess, TRestRawUSTCToSignalProcess, TRestRealTimeAddInputFileProcess, TRestRealTimeDrawingProcess, TRestSummaryProcess, TRestTrackAnalysisProcess, TRestTrackBlobAnalysisProcess, TRestTrackDetachIsolatedNodesProcess, TRestTrackLineAnalysisProcess, TRestTrackLinearizationProcess, TRestTrackPathMinimizationProcess, TRestTrackPointLikeAnalysisProcess, TRestTrackReconnectionProcess, TRestTrackReductionProcess, TRestTrackToDetectorHitsProcess, and TRestTrackViewerProcess.
Definition at line 232 of file TRestEventProcess.h.
|
inline |
Return the local analysis tree (dummy).
Definition at line 265 of file TRestEventProcess.h.
|
inline |
Get canvas.
Definition at line 268 of file TRestEventProcess.h.
|
protected |
Get friendly TRestEventProcess object.
Either name or type as input argument is accepted. For example, GetFriend("TRestDetectorSignalZeroSupressionProcess"), GetFriend("zS"). Both lively process(in the process chain) and metadata process (retrieved from input file) are searched.
With this method, processes can know what's the process chain is like, and acts differently according to the added friends. For example, we can retrieve some common parameters from the friend process. We can also re-use the input/output event to compare the difference.
Definition at line 262 of file TRestEventProcess.cxx.
|
protected |
Get friendly TRestEventProcess object.
Only lively process(in the process chain) is searched.
Definition at line 279 of file TRestEventProcess.cxx.
| TRestAnalysisTree * TRestEventProcess::GetFullAnalysisTree | ( | ) |
Get the full analysis tree from TRestRun, with non-empty entries.
Definition at line 504 of file TRestEventProcess.cxx.
|
pure virtual |
Get pointer to input event. Must be implemented in the derived class.
Implemented in TRestAxionAnalysisProcess, TRestAxionEventProcess, TRestAxionFieldPropagationProcess, TRestAxionGeneratorProcess, TRestBenchMarkProcess, TRestDataQualityProcess, TRestDetectorAvalancheProcess, TRestDetectorDaqChannelSwitchingProcess, TRestDetectorElectronDiffusionProcess, TRestDetectorFiducializationProcess, TRestDetectorGarfieldDriftProcess, TRestDetectorHitmapAnalysisProcess, TRestDetectorHits3DReconstructionProcess, TRestDetectorHitsAnalysisProcess, TRestDetectorHitsGaussAnalysisProcess, TRestDetectorHitsNormalizationProcess, TRestDetectorHitsReadoutAnalysisProcess, TRestDetectorHitsReductionProcess, TRestDetectorHitsRotationProcess, TRestDetectorHitsShuffleProcess, TRestDetectorHitsSmearingProcess, TRestDetectorHitsSpecularProcess, TRestDetectorHitsToSignalProcess, TRestDetectorHitsToTrackFastProcess, TRestDetectorHitsToTrackProcess, TRestDetectorHitsTranslationProcess, TRestDetectorLightAttenuationProcess, TRestDetectorPositionMappingProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalRecoveryProcess, TRestDetectorSignalToHitsProcess, TRestDetectorSignalToRawSignalProcess, TRestDetectorSignalViewerProcess, TRestDetectorSingleChannelAnalysisProcess, TRestDetectorTriggerAnalysisProcess, TRestEventRateAnalysisProcess, TRestEventSelectionProcess, TRestEventTimeSelectionProcess, TRestGeant4AnalysisProcess, TRestGeant4BlobAnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4ToDetectorHitsProcess, TRestGeant4VetoAnalysisProcess, TRestLegacyProcess, TRestMySQLToAnalysisProcess, TRestRawBaseLineCorrectionProcess, TRestRawBiPoAnalysisProcess, TRestRawCommonNoiseReductionProcess, TRestRawFindResponseSignalProcess, TRestRawMemoryBufferToSignalProcess, TRestRawPeaksFinderProcess, TRestRawReadoutAnalysisProcess, TRestRawReadoutMetadataProcess, TRestRawSignalAddNoiseProcess, TRestRawSignalAnalysisProcess, TRestRawSignalChannelActivityProcess, TRestRawSignalConvolutionFittingProcess, TRestRawSignalFittingProcess, TRestRawSignalGeneralFitProcess, TRestRawSignalIdTaggingProcess, TRestRawSignalRangeReductionProcess, TRestRawSignalRemoveChannelsProcess, TRestRawSignalShapingProcess, TRestRawSignalViewerProcess, TRestRawToDetectorSignalProcess, TRestRawToSignalProcess, TRestRawVetoAnalysisProcess, TRestRealTimeAddInputFileProcess, TRestRealTimeDrawingProcess, TRestSummaryProcess, TRestTrackAnalysisProcess, TRestTrackBlobAnalysisProcess, TRestTrackDetachIsolatedNodesProcess, TRestTrackLineAnalysisProcess, TRestTrackLinearizationProcess, TRestTrackPathMinimizationProcess, TRestTrackPointLikeAnalysisProcess, TRestTrackReconnectionProcess, TRestTrackReductionProcess, TRestTrackToDetectorHitsProcess, and TRestTrackViewerProcess.
| std::vector< string > TRestEventProcess::GetListOfAddedObservables | ( | ) |
Get list of observables, convert map to vector.
Definition at line 512 of file TRestEventProcess.cxx.
|
inlineprotected |
Get a metadata object from the host TRestRun.
Directly input the type as template argument. This helps to simplify the code and prevents mis-spelling. For example: fReadout = GetMetadata<TRestReadout>();. No need for type conversion.
Definition at line 104 of file TRestEventProcess.h.
|
protected |
Get a metadata object from the host TRestRun.
Either name or type as input argument is accepted. For example, GetMetadata("TRestDetectorReadout"), GetMetadata("readout_140")
Definition at line 237 of file TRestEventProcess.cxx.
|
inlineprotected |
Definition at line 111 of file TRestEventProcess.h.
|
inlineprotected |
Definition at line 183 of file TRestEventProcess.h.
|
pure virtual |
Get pointer to output event. Must be implemented in the derived class.
Implemented in TRestAxionAnalysisProcess, TRestAxionEventProcess, TRestAxionFieldPropagationProcess, TRestAxionGeneratorProcess, TRestBenchMarkProcess, TRestDataQualityProcess, TRestDetectorAvalancheProcess, TRestDetectorDaqChannelSwitchingProcess, TRestDetectorElectronDiffusionProcess, TRestDetectorFiducializationProcess, TRestDetectorGarfieldDriftProcess, TRestDetectorHitmapAnalysisProcess, TRestDetectorHits3DReconstructionProcess, TRestDetectorHitsAnalysisProcess, TRestDetectorHitsGaussAnalysisProcess, TRestDetectorHitsNormalizationProcess, TRestDetectorHitsReadoutAnalysisProcess, TRestDetectorHitsReductionProcess, TRestDetectorHitsRotationProcess, TRestDetectorHitsShuffleProcess, TRestDetectorHitsSmearingProcess, TRestDetectorHitsSpecularProcess, TRestDetectorHitsToSignalProcess, TRestDetectorHitsToTrackFastProcess, TRestDetectorHitsToTrackProcess, TRestDetectorHitsTranslationProcess, TRestDetectorLightAttenuationProcess, TRestDetectorPositionMappingProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalRecoveryProcess, TRestDetectorSignalToHitsProcess, TRestDetectorSignalToRawSignalProcess, TRestDetectorSignalViewerProcess, TRestDetectorSingleChannelAnalysisProcess, TRestDetectorTriggerAnalysisProcess, TRestEventRateAnalysisProcess, TRestEventSelectionProcess, TRestEventTimeSelectionProcess, TRestGeant4AnalysisProcess, TRestGeant4BlobAnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4ToDetectorHitsProcess, TRestGeant4VetoAnalysisProcess, TRestLegacyProcess, TRestMySQLToAnalysisProcess, TRestRawBaseLineCorrectionProcess, TRestRawBiPoAnalysisProcess, TRestRawCommonNoiseReductionProcess, TRestRawFindResponseSignalProcess, TRestRawMemoryBufferToSignalProcess, TRestRawPeaksFinderProcess, TRestRawReadoutAnalysisProcess, TRestRawReadoutMetadataProcess, TRestRawSignalAddNoiseProcess, TRestRawSignalAnalysisProcess, TRestRawSignalChannelActivityProcess, TRestRawSignalConvolutionFittingProcess, TRestRawSignalFittingProcess, TRestRawSignalGeneralFitProcess, TRestRawSignalIdTaggingProcess, TRestRawSignalRangeReductionProcess, TRestRawSignalRemoveChannelsProcess, TRestRawSignalShapingProcess, TRestRawSignalViewerProcess, TRestRawToDetectorSignalProcess, TRestRawToSignalProcess, TRestRawVetoAnalysisProcess, TRestRealTimeAddInputFileProcess, TRestRealTimeDrawingProcess, TRestSummaryProcess, TRestTrackAnalysisProcess, TRestTrackBlobAnalysisProcess, TRestTrackDetachIsolatedNodesProcess, TRestTrackLineAnalysisProcess, TRestTrackLinearizationProcess, TRestTrackPathMinimizationProcess, TRestTrackPointLikeAnalysisProcess, TRestTrackReconnectionProcess, TRestTrackReductionProcess, TRestTrackToDetectorHitsProcess, and TRestTrackViewerProcess.
|
protected |
Get a list of parallel processes from this process.
Parallel process means the process in other threads. It differs from "friend process" in another dimension. For example, we set up the process chain with one TRestRawSignalAnalysisProcess and one TRestRawToSignalProcess, and calls 2 threads to run the data. Then, for TRestRawSignalAnalysisProcess in thread 1, it has a parallel process TRestRawSignalAnalysisProcess from thread 2, and a friend process TRestRawToSignalProcess from thread 1.
Definition at line 298 of file TRestEventProcess.cxx.
|
inlineprotected |
Get a list of data members from parallel processes which is same to this process's certain data member.
This method can be used in merging and exporting histograms at the end of the process, to support multi-thread run.
Because all the parallel processes are in same data structure, this method directly gets the data members by accessing certain offset.
Usage: (suppose we defined fHist as data member) auto hists = this->GetParallelObjects(&fHist); for (auto h : hists) { fHist->Add(h); }
Definition at line 128 of file TRestEventProcess.h.
|
pure virtual |
Implemented in TRestAxionAnalysisProcess, TRestAxionDeviationProcess, TRestAxionFieldPropagationProcess, TRestAxionGeneratorProcess, TRestAxionOpticsProcess, TRestAxionTransmissionProcess, TRestAxionTransportProcess, TRestDataQualityProcess, TRestDetectorHitsGaussAnalysisProcess, TRestDetectorHitsSpecularProcess, TRestDetectorHitsToSignalProcess, TRestDetectorHitsToTrackProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalRecoveryProcess, TRestDetectorSignalToHitsProcess, TRestDetectorSignalToRawSignalProcess, TRestDetectorTriggerAnalysisProcess, TRestGeant4AnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4ToDetectorHitsProcess, TRestLegacyProcess, TRestMySQLToAnalysisProcess, TRestRawBaseLineCorrectionProcess, TRestRawBiPoToSignalProcess, TRestRawCommonNoiseReductionProcess, TRestRawMemoryBufferToSignalProcess, TRestRawSignalAddNoiseProcess, TRestRawSignalChannelActivityProcess, TRestRawSignalRemoveChannelsProcess, TRestRawSignalShapingProcess, TRestRawToDetectorSignalProcess, TRestRawVetoAnalysisProcess, TRestRealTimeDrawingProcess, and TRestSummaryProcess.
|
inline |
Return the pointer of the hosting TRestRun object.
Definition at line 263 of file TRestEventProcess.h.
|
inlinevirtual |
Interface to external file reading, get the total bytes of input binary file. To be implemented in external processes.
Reimplemented in TRestRawToSignalProcess.
Definition at line 255 of file TRestEventProcess.h.
|
inlinevirtual |
Interface to external file reading, get the read bytes. To be implemented in external processes.
Reimplemented in TRestRawToSignalProcess.
Definition at line 257 of file TRestEventProcess.h.
|
inlineoverridevirtual |
To make settings from rml file. This method must be implemented in the derived class.
Reimplemented from TRestMetadata.
Reimplemented in TRestAxionTransmissionProcess, TRestDataQualityProcess, TRestDetectorAvalancheProcess, TRestDetectorDaqChannelSwitchingProcess, TRestDetectorElectronDiffusionProcess, TRestDetectorFiducializationProcess, TRestDetectorHitmapAnalysisProcess, TRestDetectorHits3DReconstructionProcess, TRestDetectorHitsAnalysisProcess, TRestDetectorHitsNormalizationProcess, TRestDetectorHitsReadoutAnalysisProcess, TRestDetectorHitsReductionProcess, TRestDetectorHitsRotationProcess, TRestDetectorHitsShuffleProcess, TRestDetectorHitsSpecularProcess, TRestDetectorHitsToTrackFastProcess, TRestDetectorHitsTranslationProcess, TRestDetectorPositionMappingProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalToRawSignalProcess, TRestDetectorSignalViewerProcess, TRestDetectorSingleChannelAnalysisProcess, TRestGeant4BlobAnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4ToDetectorHitsProcess, TRestGeant4VetoAnalysisProcess, TRestMySQLToAnalysisProcess, TRestRawMemoryBufferToSignalProcess, TRestRawPeaksFinderProcess, TRestRawReadoutAnalysisProcess, TRestRawSignalAnalysisProcess, TRestRawSignalConvolutionFittingProcess, TRestRawSignalIdTaggingProcess, TRestRawSignalRangeReductionProcess, TRestRawSignalRemoveChannelsProcess, TRestRawSignalViewerProcess, TRestRawToSignalProcess, TRestRawVetoAnalysisProcess, TRestRealTimeAddInputFileProcess, TRestSummaryProcess, TRestTrackAnalysisProcess, TRestTrackBlobAnalysisProcess, TRestTrackDetachIsolatedNodesProcess, TRestTrackPointLikeAnalysisProcess, TRestTrackReconnectionProcess, and TRestTrackToDetectorHitsProcess.
Definition at line 203 of file TRestEventProcess.h.
|
inlinevirtual |
To be executed at the beginning of the run (outside event loop).
Reimplemented in TRestAxionDeviationProcess, TRestAxionEventProcess, TRestAxionFieldPropagationProcess, TRestAxionGeneratorProcess, TRestAxionOpticsProcess, TRestAxionTransmissionProcess, TRestAxionTransportProcess, TRestBenchMarkProcess, TRestDataQualityProcess, TRestDetectorAvalancheProcess, TRestDetectorDaqChannelSwitchingProcess, TRestDetectorElectronDiffusionProcess, TRestDetectorFiducializationProcess, TRestDetectorHits3DReconstructionProcess, TRestDetectorHitsAnalysisProcess, TRestDetectorHitsGaussAnalysisProcess, TRestDetectorHitsNormalizationProcess, TRestDetectorHitsReadoutAnalysisProcess, TRestDetectorHitsReductionProcess, TRestDetectorHitsShuffleProcess, TRestDetectorHitsSmearingProcess, TRestDetectorHitsToSignalProcess, TRestDetectorHitsToTrackFastProcess, TRestDetectorLightAttenuationProcess, TRestDetectorPositionMappingProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalRecoveryProcess, TRestDetectorSignalToHitsProcess, TRestDetectorSignalToRawSignalProcess, TRestDetectorSignalViewerProcess, TRestDetectorSingleChannelAnalysisProcess, TRestDetectorTriggerAnalysisProcess, TRestEventRateAnalysisProcess, TRestEventSelectionProcess, TRestEventTimeSelectionProcess, TRestGeant4AnalysisProcess, TRestGeant4BlobAnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4ToDetectorHitsProcess, TRestGeant4VetoAnalysisProcess, TRestLegacyProcess, TRestMySQLToAnalysisProcess, TRestRawAFTERToSignalProcess, TRestRawBaseLineCorrectionProcess, TRestRawBiPoAnalysisProcess, TRestRawBiPoToSignalProcess, TRestRawCommonNoiseReductionProcess, TRestRawFEUDreamToSignalProcess, TRestRawFindResponseSignalProcess, TRestRawMemoryBufferToSignalProcess, TRestRawMultiCoBoAsAdToSignalProcess, TRestRawMultiFEMINOSToSignalProcess, TRestRawPeaksFinderProcess, TRestRawReadoutAnalysisProcess, TRestRawReadoutMetadataProcess, TRestRawSignalAnalysisProcess, TRestRawSignalChannelActivityProcess, TRestRawSignalConvolutionFittingProcess, TRestRawSignalFittingProcess, TRestRawSignalGeneralFitProcess, TRestRawSignalIdTaggingProcess, TRestRawSignalRangeReductionProcess, TRestRawSignalShapingProcess, TRestRawSignalViewerProcess, TRestRawTDSToSignalProcess, TRestRawToSignalProcess, TRestRawUSTCToSignalProcess, TRestRawVetoAnalysisProcess, TRestRealTimeAddInputFileProcess, TRestRealTimeDrawingProcess, TRestSummaryProcess, TRestTrackAnalysisProcess, TRestTrackBlobAnalysisProcess, TRestTrackDetachIsolatedNodesProcess, TRestTrackLineAnalysisProcess, TRestTrackLinearizationProcess, TRestTrackPathMinimizationProcess, TRestTrackPointLikeAnalysisProcess, TRestTrackReconnectionProcess, TRestTrackReductionProcess, TRestTrackToDetectorHitsProcess, and TRestTrackViewerProcess.
Definition at line 224 of file TRestEventProcess.h.
|
inline |
Return whether this process is external process.
Definition at line 261 of file TRestEventProcess.h.
|
overridevirtual |
Load extra section metadata: outputlevel after calling TRestMetadata::LoadSectionMetadata().
Reimplemented from TRestMetadata.
Definition at line 192 of file TRestEventProcess.cxx.
|
inlinevirtual |
In case the analysis tree is reset(switched to new file), some process needs to have action.
Definition at line 246 of file TRestEventProcess.h.
|
virtual |
Interface to external file reading, open input file. To be implemented in external processes.
Reimplemented in TRestRawToSignalProcess.
Definition at line 186 of file TRestEventProcess.cxx.
|
pure virtual |
Process one event.
Implemented in TRestAxionAnalysisProcess, TRestAxionDeviationProcess, TRestAxionFieldPropagationProcess, TRestAxionGeneratorProcess, TRestAxionOpticsProcess, TRestAxionTransmissionProcess, TRestAxionTransportProcess, TRestBenchMarkProcess, TRestDataQualityProcess, TRestDetectorAvalancheProcess, TRestDetectorDaqChannelSwitchingProcess, TRestDetectorElectronDiffusionProcess, TRestDetectorFiducializationProcess, TRestDetectorGarfieldDriftProcess, TRestDetectorHitmapAnalysisProcess, TRestDetectorHits3DReconstructionProcess, TRestDetectorHitsAnalysisProcess, TRestDetectorHitsGaussAnalysisProcess, TRestDetectorHitsNormalizationProcess, TRestDetectorHitsReadoutAnalysisProcess, TRestDetectorHitsReductionProcess, TRestDetectorHitsRotationProcess, TRestDetectorHitsShuffleProcess, TRestDetectorHitsSmearingProcess, TRestDetectorHitsSpecularProcess, TRestDetectorHitsToSignalProcess, TRestDetectorHitsToTrackFastProcess, TRestDetectorHitsToTrackProcess, TRestDetectorHitsTranslationProcess, TRestDetectorLightAttenuationProcess, TRestDetectorPositionMappingProcess, TRestDetectorSignalChannelActivityProcess, TRestDetectorSignalRecoveryProcess, TRestDetectorSignalToHitsProcess, TRestDetectorSignalToRawSignalProcess, TRestDetectorSignalViewerProcess, TRestDetectorSingleChannelAnalysisProcess, TRestDetectorTriggerAnalysisProcess, TRestEventRateAnalysisProcess, TRestEventSelectionProcess, TRestEventTimeSelectionProcess, TRestGeant4AnalysisProcess, TRestGeant4BlobAnalysisProcess, TRestGeant4NeutronTaggingProcess, TRestGeant4QuenchingProcess, TRestGeant4ToDetectorHitsProcess, TRestGeant4VetoAnalysisProcess, TRestLegacyProcess, TRestMySQLToAnalysisProcess, TRestRawAFTERToSignalProcess, TRestRawBaseLineCorrectionProcess, TRestRawBiPoAnalysisProcess, TRestRawBiPoToSignalProcess, TRestRawCommonNoiseReductionProcess, TRestRawFEUDreamToSignalProcess, TRestRawFindResponseSignalProcess, TRestRawMemoryBufferToSignalProcess, TRestRawMultiCoBoAsAdToSignalProcess, TRestRawMultiFEMINOSToSignalProcess, TRestRawPeaksFinderProcess, TRestRawReadoutAnalysisProcess, TRestRawReadoutMetadataProcess, TRestRawSignalAddNoiseProcess, TRestRawSignalAnalysisProcess, TRestRawSignalChannelActivityProcess, TRestRawSignalConvolutionFittingProcess, TRestRawSignalFittingProcess, TRestRawSignalGeneralFitProcess, TRestRawSignalIdTaggingProcess, TRestRawSignalRangeReductionProcess, TRestRawSignalRemoveChannelsProcess, TRestRawSignalShapingProcess, TRestRawSignalViewerProcess, TRestRawTDSToSignalProcess, TRestRawToDetectorSignalProcess, TRestRawUSTCToSignalProcess, TRestRawVetoAnalysisProcess, TRestRealTimeAddInputFileProcess, TRestRealTimeDrawingProcess, TRestSummaryProcess, TRestTrackAnalysisProcess, TRestTrackBlobAnalysisProcess, TRestTrackDetachIsolatedNodesProcess, TRestTrackLineAnalysisProcess, TRestTrackLinearizationProcess, TRestTrackPathMinimizationProcess, TRestTrackPointLikeAnalysisProcess, TRestTrackReconnectionProcess, TRestTrackReductionProcess, TRestTrackToDetectorHitsProcess, and TRestTrackViewerProcess.
|
inline |
Definition at line 220 of file TRestEventProcess.h.
|
inlinevirtual |
Definition at line 216 of file TRestEventProcess.h.
|
inline |
Set canvas size.
Definition at line 240 of file TRestEventProcess.h.
| void TRestEventProcess::SetFriendProcess | ( | TRestEventProcess * | p | ) |
Add friendly process to this process.
Loop child sections declared as "observable" and set them in the analysis tree.
Definition at line 163 of file TRestEventProcess.cxx.
|
inline |
Definition at line 218 of file TRestEventProcess.h.
|
inlineprotected |
Set observable value for AnalysisTree.
It will rename the observable to "processName_obsName" If use dynamic observable, it will try to create new observable in the AnalysisTree if the observable is not found
Definition at line 151 of file TRestEventProcess.h.
| void TRestEventProcess::SetParallelProcess | ( | TRestEventProcess * | p | ) |
Add parallel process to this process.
Definition at line 174 of file TRestEventProcess.cxx.
|
inline |
Set TRestRun for this process.
Definition at line 238 of file TRestEventProcess.h.
|
inline |
Return whether this process is single std::thread only.
Definition at line 259 of file TRestEventProcess.h.
|
protected |
< Pointer to the analysis tree where to store observable definitions and values. Note that this tree does not write data to disk. It only keeps a list of observables and their addresses. It is the one from TRestRun that reads this tree's structure, calls Fill() method, and writes data to disk. In other words, this tree is dummy and has zero entries. To get the real one, use GetFullAnalysisTree()
Definition at line 72 of file TRestEventProcess.h.
|
protected |
< Canvas for some viewer event
Definition at line 64 of file TRestEventProcess.h.
|
protected |
Canvas size.
Definition at line 66 of file TRestEventProcess.h.
|
protected |
Stores cut definitions. Any listed observables should be in the range.
[name, id in AnalysisTree]
Definition at line 92 of file TRestEventProcess.h.
|
protected |
It defines whether to use added observables only or all the observables appear in the code.
Definition at line 84 of file TRestEventProcess.h.
|
private |
/// not used
Stores a list of friendly processes. Sometimes the process may behave differently according to the friend processes added. It can also get parameter or output event from friend processes
Definition at line 59 of file TRestEventProcess.h.
|
private |
< not used, keep for compatibility
Definition at line 50 of file TRestEventProcess.h.
|
protected |
It defines if the process reads event data from an external source.
Definition at line 76 of file TRestEventProcess.h.
|
protected |
Stores the list of all the appeared process observables in the code.
[name, id in AnalysisTree]
Definition at line 90 of file TRestEventProcess.h.
|
protected |
Stores the list of process observables updated when processing this event.
Definition at line 88 of file TRestEventProcess.h.
|
private |
< not used, keep for compatibility
Definition at line 52 of file TRestEventProcess.h.
|
private |
not used, keep for compatibility
Definition at line 54 of file TRestEventProcess.h.
|
private |
Stores a list of parallel processes if multithreading is enabled.
Definition at line 61 of file TRestEventProcess.h.
|
protected |
not used, keep for compatibility
Definition at line 82 of file TRestEventProcess.h.
|
protected |
< Pointer to TRestRun object where to find metadata.
Definition at line 74 of file TRestEventProcess.h.
|
protected |
It defines if the process can run only under single std::thread mode. If true, the whole process chain will not use multithreading. Useful for processes with viewing functionality. Always true for external processes.
Definition at line 80 of file TRestEventProcess.h.
|
protected |
It defines if observable names should be added to the validation list.
Definition at line 86 of file TRestEventProcess.h.