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

Detailed Description

A base class for any axion event process. Defines position, rotation and component displacement.

TOBE written


RESTsoft - Software for Rare Event Searches with TPCs

History of developments:

2022-March: First concept. Javier Galan


Definition at line 30 of file TRestAxionEventProcess.h.

#include <TRestAxionEventProcess.h>

Inheritance diagram for TRestAxionEventProcess:
TRestEventProcess TRestMetadata TRestAxionDeviationProcess TRestAxionFieldPropagationProcess TRestAxionOpticsProcess TRestAxionTransmissionProcess TRestAxionTransportProcess

Public Member Functions

virtual void BeginOfEventProcess (TRestEvent *evInput=nullptr) override
 Begin of event process, preparation work. Called right before ProcessEvent() More...
 
 ClassDefOverride (TRestAxionEventProcess, 3)
 
virtual void EndOfEventProcess (TRestEvent *evInput=nullptr) override
 End of event process. Called directly after ProcessEvent() More...
 
RESTValue GetInputEvent () const override
 Get pointer to input event. Must be implemented in the derived class. More...
 
RESTValue GetOutputEvent () const override
 Get pointer to output event. Must be implemented in the derived class. More...
 
virtual void InitProcess () override
 To be executed at the beginning of the run (outside event loop) More...
 
virtual void PrintMetadata () override
 It prints out the process parameters stored in the metadata structure. More...
 
 TRestAxionEventProcess ()
 
 ~TRestAxionEventProcess ()
 
- 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 Member Functions

void BeginPrintProcess ()
 Pre-defined printer, can be used at the beginning in the implementation of PrintMetadata() More...
 
void EndPrintProcess ()
 Adds the footer for PrintMetadata. More...
 
TVector3 GetCenter () const
 
- Protected Member Functions inherited from TRestEventProcess
void BeginPrintProcess ()
 [name, cut range]
 
void CreateCanvas ()
 Create the canvas. More...
 
void EndPrintProcess ()
 
TRestEventProcessGetFriend (const std::string &nameOrType)
 
TRestEventProcessGetFriendLive (const std::string &nameOrType)
 
template<class T >
T * GetMetadata ()
 Get a metadata object from the host TRestRun. More...
 
TRestMetadataGetMetadata (const std::string &nameOrType)
 
size_t GetNumberOfParallelProcesses () const
 
template<class T >
GetObservableValue (const std::string &name)
 
TRestEventProcessGetParallel (int i)
 
template<class T >
std::vector< T > GetParallelDataMembers (T *member_of_process)
 Get a list of data members from parallel processes which is same to this process's certain data member. More...
 
template<class T >
void SetObservableValue (const std::string &name, const T &value)
 Set observable value for AnalysisTree. More...
 

Protected Attributes

TRestAxionEventfAxionEvent
 A pointer to the specific TRestAxionEvent. 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 Attributes

Double_t fExternalPitch = 0
 The rotation angle around CenterSetup with respect to X-axis. More...
 
TVector3 fExternalRotationCenter = TVector3(0, 0, 0)
 The position (different than the center of the object) around which the rotation will be applied. More...
 
Double_t fExternalYaw = 0
 The rotation angle around CenterSetup with respect to the Y-axis. More...
 
Double_t fInternalPitch = 0
 The rotation angle with respect to X-axis. More...
 
Double_t fInternalYaw = 0
 The rotation angle with respect to the Y-axis. More...
 
Bool_t fLocalAxis = true
 If enabled it skips the end rotation that recovers the original axion trajectory direction. More...
 
TVector3 fPosition = TVector3(0, 0, 0)
 The position of the component around which the rotation will be applied. More...
 

Additional Inherited Members

- Protected Types inherited from TRestEventProcess
enum  REST_Process_Output { No_Output , Observable , Internal_Var , Full_Output }
 

Constructor & Destructor Documentation

◆ TRestAxionEventProcess()

TRestAxionEventProcess::TRestAxionEventProcess ( )

TRestAxionEventProcess default constructor

Definition at line 50 of file TRestAxionEventProcess.cxx.

◆ ~TRestAxionEventProcess()

TRestAxionEventProcess::~TRestAxionEventProcess ( )

TRestAxionEventProcess destructor

Definition at line 55 of file TRestAxionEventProcess.cxx.

Member Function Documentation

◆ BeginOfEventProcess()

void TRestAxionEventProcess::BeginOfEventProcess ( TRestEvent inEv = nullptr)
overridevirtual

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

Definition at line 64 of file TRestAxionEventProcess.cxx.

◆ BeginPrintProcess()

void TRestAxionEventProcess::BeginPrintProcess ( )
protected

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 121 of file TRestAxionEventProcess.cxx.

◆ EndOfEventProcess()

void TRestAxionEventProcess::EndOfEventProcess ( TRestEvent evInput = nullptr)
overridevirtual

End of event process. Called directly after ProcessEvent()

End of event process. Validate the updated observable number matches total defined observable number.

Reimplemented from TRestEventProcess.

Definition at line 91 of file TRestAxionEventProcess.cxx.

◆ EndPrintProcess()

void TRestAxionEventProcess::EndPrintProcess ( )
protected

Adds the footer for PrintMetadata.

Definition at line 150 of file TRestAxionEventProcess.cxx.

◆ GetCenter()

TVector3 TRestAxionEventProcess::GetCenter ( ) const
inlineprotected

Definition at line 60 of file TRestAxionEventProcess.h.

◆ GetInputEvent()

RESTValue TRestAxionEventProcess::GetInputEvent ( ) const
inlineoverridevirtual

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

Implements TRestEventProcess.

Reimplemented in TRestAxionFieldPropagationProcess.

Definition at line 63 of file TRestAxionEventProcess.h.

◆ GetOutputEvent()

RESTValue TRestAxionEventProcess::GetOutputEvent ( ) const
inlineoverridevirtual

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

Implements TRestEventProcess.

Reimplemented in TRestAxionFieldPropagationProcess.

Definition at line 64 of file TRestAxionEventProcess.h.

◆ InitProcess()

virtual void TRestAxionEventProcess::InitProcess ( )
inlineoverridevirtual

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

Reimplemented from TRestEventProcess.

Reimplemented in TRestAxionDeviationProcess, TRestAxionFieldPropagationProcess, TRestAxionOpticsProcess, TRestAxionTransmissionProcess, and TRestAxionTransportProcess.

Definition at line 66 of file TRestAxionEventProcess.h.

◆ PrintMetadata()

virtual void TRestAxionEventProcess::PrintMetadata ( )
inlineoverridevirtual

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

Reimplemented from TRestMetadata.

Reimplemented in TRestAxionDeviationProcess, TRestAxionFieldPropagationProcess, TRestAxionTransmissionProcess, and TRestAxionTransportProcess.

Definition at line 69 of file TRestAxionEventProcess.h.

Field Documentation

◆ fAxionEvent

TRestAxionEvent* TRestAxionEventProcess::fAxionEvent
protected

A pointer to the specific TRestAxionEvent.

Definition at line 55 of file TRestAxionEventProcess.h.

◆ fExternalPitch

Double_t TRestAxionEventProcess::fExternalPitch = 0
private

The rotation angle around CenterSetup with respect to X-axis.

Definition at line 48 of file TRestAxionEventProcess.h.

◆ fExternalRotationCenter

TVector3 TRestAxionEventProcess::fExternalRotationCenter = TVector3(0, 0, 0)
private

The position (different than the center of the object) around which the rotation will be applied.

Definition at line 42 of file TRestAxionEventProcess.h.

◆ fExternalYaw

Double_t TRestAxionEventProcess::fExternalYaw = 0
private

The rotation angle around CenterSetup with respect to the Y-axis.

Definition at line 45 of file TRestAxionEventProcess.h.

◆ fInternalPitch

Double_t TRestAxionEventProcess::fInternalPitch = 0
private

The rotation angle with respect to X-axis.

Definition at line 39 of file TRestAxionEventProcess.h.

◆ fInternalYaw

Double_t TRestAxionEventProcess::fInternalYaw = 0
private

The rotation angle with respect to the Y-axis.

Definition at line 36 of file TRestAxionEventProcess.h.

◆ fLocalAxis

Bool_t TRestAxionEventProcess::fLocalAxis = true
private

If enabled it skips the end rotation that recovers the original axion trajectory direction.

Definition at line 51 of file TRestAxionEventProcess.h.

◆ fPosition

TVector3 TRestAxionEventProcess::fPosition = TVector3(0, 0, 0)
private

The position of the component around which the rotation will be applied.

Definition at line 33 of file TRestAxionEventProcess.h.


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