REST-for-Physics
v2.3
Rare Event Searches ToolKit for Physics
|
A class used to define a rings mask pattern.
This class defines a set of rings limited by an inner/outter radii.
The rings radii can be initialized by a set of specific metadata parameters defined inside this class.
The rings pattern is centered in (0,0) and it can be shifted using the offset defined inside TRestPatternMask. It must be noted that it is the pattern that will be shifted and not the mask.
On top of the metadata class parameters, we may define common pattern parameters to induce an offset and rotation to the pattern.
Mask pattern RML definitions can be found inside the file REST_PATH/examples/masks.rml
.
The following definition ilustrates a complete RML implementation of a TRestRingsMask.
The basic use of this class is provided by the TRestRingsMask::GetRegion method. For example:
The following figure may be generated using the TRestPatternMask::DrawMonteCarlo method.
REST-for-Physics - Software for Rare Event Searches Toolkit
History of developments:
2022-05: First implementation of TRestRingsMask Javier Galan
Definition at line 29 of file TRestRingsMask.h.
#include <TRestRingsMask.h>
Public Member Functions | |
ClassDefOverride (TRestRingsMask, 1) | |
void | GenerateRings () |
It will initialize the variable fRingsRadii using the number of radius, initial radius, the rings gap and thickness. More... | |
Double_t | GetInitialRadius () |
It returns the most inner ring radius. More... | |
Double_t | GetNumberOfRings () |
It returns the number of rings to be generated. More... | |
virtual Int_t | GetRegion (Double_t &x, Double_t &y) override |
It returns a number identifying the region where the particle with coordinates (x,y) felt in. The method returns 0 if the particle hits the pattern. More... | |
Double_t | GetRingsGap () |
It returns the gap/periodicity of the rings in mm. More... | |
Double_t | GetRingsThickness () |
It returns the thickness of the rings in mm. More... | |
void | PrintMask () override |
Prints on screen the information about the metadata members of TRestRingsMask, including common pattern headers, but without common metadata headers. More... | |
void | PrintMaskMembers () override |
Prints on screen the information about the metadata members of TRestRingsMask, excluding common metadata headers. More... | |
void | PrintMetadata () override |
Prints on screen the information about the metadata members from this class. More... | |
void | PrintRings () |
Prints on screen the information about the metadata members of TRestRingsMask, excluding common metadata headers. More... | |
void | SetRadii (const std::vector< Double_t > &innerR, const std::vector< Double_t > &outterR) |
It allows to redefine the inner and outter rings radii directly. More... | |
TRestRingsMask () | |
Default constructor. More... | |
TRestRingsMask (const char *cfgFileName, std::string name="") | |
Constructor loading data from a config file. More... | |
~TRestRingsMask () | |
Default destructor. More... | |
Public Member Functions inherited from TRestPatternMask | |
ClassDefOverride (TRestPatternMask, 1) | |
TCanvas * | DrawMonteCarlo (Int_t nSamples=10000) |
It generates a Monte Carlo with positions and paints them the returned canvas. Each unique region is associated with different colors. If there are too many colors, they might be repited for different region ids. More... | |
Double_t | GetMaskRadius () |
It returns the mask radius. More... | |
Int_t | GetMaxRegions () |
TVector2 | GetOffset () |
It returns the rotation angle. More... | |
virtual Int_t | GetRegion (Double_t &x, Double_t &y) |
To be implemented at the inherited class with the pattern and region identification logic. More... | |
Double_t | GetRotationAngle () |
It returns the rotation angle. More... | |
std::string | GetType () |
It returns the mask pattern type. More... | |
Bool_t | HitsPattern (Double_t x, Double_t y) |
Returns true if the pattern was hit. If (x,y) it is inside a region then, the pattern was not hit by (x,y). More... | |
void | PrintCommonPatternMembers () |
Prints on screen the information about the metadata members without header. More... | |
virtual void | PrintMask () |
virtual void | PrintMaskMembers () |
void | PrintMetadata () override |
Prints on screen the information about the metadata members of TRestPatternMask. More... | |
void | SetMaskRadius (const Double_t &radius) |
It defines the mask radius. More... | |
void | SetMaxRegions (Int_t regions) |
void | SetOffset (const TVector2 &offset) |
It defines the pattern offset. More... | |
void | SetRotationAngle (const Double_t &angle) |
It defines the rotation angle. More... | |
TRestPatternMask () | |
Default constructor. More... | |
TRestPatternMask (const char *cfgFileName, std::string name="") | |
Constructor loading data from a config file. More... | |
~TRestPatternMask () | |
Default destructor. More... | |
Public Member Functions inherited from TRestMetadata | |
void | AddLog (std::string log="", bool print=true) |
Add logs to messageBuffer. More... | |
void | DoNotStore () |
If this method is called the metadata information will not be stored in disk. More... | |
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. More... | |
std::string | GetConfigBuffer () |
Returns the config section of this class. More... | |
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. More... | |
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. More... | |
TString | GetErrorMessage () |
Returns a std::string containing the error message. More... | |
TString | GetLibraryVersion () |
Returns the REST libraty version stored in fLibraryVersion. More... | |
TString | GetMainDataPath () |
Gets a std::string with the path used for data storage. More... | |
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. More... | |
TRestStringOutput::REST_Verbose_Level | GetVerboseLevel () |
returns the verboselevel in type of REST_Verbose_Level enumerator More... | |
TString | GetVerboseLevelString () |
returns the verbose level in type of TString More... | |
TString | GetVersion () |
Returns the REST version stored in fVersion. More... | |
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. More... | |
TString | GetWarningMessage () |
Returns a std::string containing the warning message. More... | |
virtual void | Initialize () |
Making default settings. More... | |
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. More... | |
virtual void | Merge (const TRestMetadata &) |
TRestMetadata & | operator= (const TRestMetadata &) |
void | Print () |
Implementing TObject::Print() method. More... | |
void | PrintConfigBuffer () |
Print the config xml section stored in the class. More... | |
void | PrintMessageBuffer () |
Print the buffered message. More... | |
virtual void | PrintMetadata () |
Implemented it in the derived metadata class to print out specific metadata information. More... | |
void | PrintTimeStamp (Double_t timeStamp) |
Print the current time on local machine. More... | |
void | SetConfigFile (std::string configFilename) |
set config file path from external More... | |
void | SetError (std::string message="", bool print=true, int maxPrint=5) |
A metadata class may use this method to signal that something went wrong. More... | |
void | SetHostmgr (TRestManager *m) |
Set the host manager for this class. More... | |
void | SetSectionName (std::string sName) |
set the section name, clear the section content More... | |
void | SetVerboseLevel (TRestStringOutput::REST_Verbose_Level v) |
sets the verbose level More... | |
void | SetWarning (std::string message="", bool print=true, int maxPrint=5) |
A metadata class may use this method to signal that something went wrong. More... | |
void | Store () |
If this method is called the metadata information will be stored in disk. More... | |
TRestMetadata (const TRestMetadata &) | |
virtual void | UpdateMetadataMembers () |
Method to allow implementation of specific metadata members updates at inherited classes. More... | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
overwriting the write() method with fStore considered More... | |
void | WriteConfigBuffer (std::string fName) |
Writes the config buffer to a file in append mode. More... | |
~TRestMetadata () | |
TRestMetadata default destructor. More... | |
Private Member Functions | |
void | Initialize () override |
Function to initialize input/output event members and define the section name. More... | |
Private Attributes | |
Double_t | fInitialRadius = 0 |
The initial radius for the inner ring. More... | |
Int_t | fNRings = 0 |
The number of rings inside the structure. More... | |
Double_t | fRingsGap = 0 |
The periodity of the rings structure in mm. Optionally used to initialize the rings. More... | |
std::vector< std::pair< Double_t, Double_t > > | fRingsRadii |
A pair containing inner/outter radius for each ring. More... | |
Double_t | fRingsThickness = 0 |
The width of the rings structure in mm. Optionally used to initialize the rings. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from TRestPatternMask | |
Int_t | ApplyCommonMaskTransformation (Double_t &x, Double_t &y) |
It produces an effective mask rotation and translation for the point x,y. More... | |
void | SetType (const std::string &type) |
It defines the mask type. To be called by the inherited class constructor. 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. More... | |
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". More... | |
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". More... | |
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. More... | |
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. More... | |
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. More... | |
TString | GetSearchPath () |
virtual void | InitFromConfigFile () |
To make settings from rml file. This method must be implemented in the derived class. More... | |
virtual void | InitFromRootFile () |
Method called after the object is retrieved from root file. More... | |
virtual Int_t | LoadSectionMetadata () |
This method does some preparation of xml section. More... | |
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. More... | |
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. More... | |
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. More... | |
TiXmlElement * | StringToElement (std::string definition) |
Parsing a string into TiXmlElement object. More... | |
TRestMetadata () | |
TRestMetadata default constructor. More... | |
TRestMetadata (const char *configFilename) | |
constructor More... | |
void | UnSetVersion () |
Resets the version of TRestRun to -1, in case the file is old REST file. Only TRestRun is allowed to update version. More... | |
Protected Attributes inherited from TRestPatternMask | |
Double_t | fMaskRadius = 0 |
The maximum mask radius in mm (if 0 it will be infinite) More... | |
Int_t | fMaxRegions = 100 |
The maximum number of regions allowed in each mask. More... | |
Protected Attributes inherited from TRestMetadata | |
std::string | configBuffer |
The buffer where the corresponding metadata section is stored. Filled only during Write() More... | |
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. More... | |
TiXmlElement * | fElement |
Saving the sectional element together with global element. More... | |
TiXmlElement * | fElementGlobal |
Saving the global element, to be passed to the resident class, if necessary. More... | |
Bool_t | fError = false |
It can be used as a way to identify that something went wrong using SetError method. More... | |
TString | fErrorMessage = "" |
A std::string to store an optional error message through method SetError. More... | |
TRestManager * | fHostmgr |
All metadata classes can be initialized and managed by TRestManager. More... | |
Int_t | fNErrors = 0 |
It counts the number of errors notified. More... | |
Int_t | fNWarnings = 0 |
It counts the number of warnings notified. More... | |
std::string | fSectionName |
Section name given in the constructor of the derived metadata class. More... | |
Bool_t | fStore |
This variable is used to determine if the metadata structure should be stored in the ROOT file. More... | |
std::map< std::string, std::string > | fVariables |
Saving a list of rml variables. name-value std::pair. More... | |
TRestStringOutput::REST_Verbose_Level | fVerboseLevel |
Verbose level used to print debug info. More... | |
Bool_t | fWarning = false |
It can be used as a way to identify that something went wrong using SetWarning method. More... | |
TString | fWarningMessage = "" |
It can be used as a way to identify that something went wrong using SetWarning method. More... | |
std::string | messageBuffer |
The buffer to store the output message through TRestStringOutput in this class. More... | |
endl_t | RESTendl |
Termination flag object for TRestStringOutput. More... | |
TRestRingsMask::TRestRingsMask | ( | ) |
Default constructor.
Definition at line 120 of file TRestRingsMask.cxx.
TRestRingsMask::TRestRingsMask | ( | const char * | cfgFileName, |
std::string | name = "" |
||
) |
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.
cfgFileName | 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 TRestRingsMask section inside the RML. |
Definition at line 136 of file TRestRingsMask.cxx.
TRestRingsMask::~TRestRingsMask | ( | ) |
Default destructor.
Definition at line 147 of file TRestRingsMask.cxx.
void TRestRingsMask::GenerateRings | ( | ) |
It will initialize the variable fRingsRadii using the number of radius, initial radius, the rings gap and thickness.
Definition at line 184 of file TRestRingsMask.cxx.
|
inline |
It returns the most inner ring radius.
Definition at line 63 of file TRestRingsMask.h.
|
inline |
It returns the number of rings to be generated.
Definition at line 60 of file TRestRingsMask.h.
|
overridevirtual |
It returns a number identifying the region where the particle with coordinates (x,y) felt in. The method returns 0 if the particle hits the pattern.
The particle will be counter-rotated to emulate the mask rotation using the method TRestPatternMask::RotateAndTranslate.
Reimplemented from TRestPatternMask.
Definition at line 168 of file TRestRingsMask.cxx.
|
inline |
It returns the gap/periodicity of the rings in mm.
Definition at line 54 of file TRestRingsMask.h.
|
inline |
It returns the thickness of the rings in mm.
Definition at line 57 of file TRestRingsMask.h.
|
overrideprivatevirtual |
Function to initialize input/output event members and define the section name.
Reimplemented from TRestMetadata.
Definition at line 153 of file TRestRingsMask.cxx.
|
overridevirtual |
Prints on screen the information about the metadata members of TRestRingsMask, including common pattern headers, but without common metadata headers.
Reimplemented from TRestPatternMask.
Definition at line 209 of file TRestRingsMask.cxx.
|
overridevirtual |
Prints on screen the information about the metadata members of TRestRingsMask, excluding common metadata headers.
Reimplemented from TRestPatternMask.
Definition at line 219 of file TRestRingsMask.cxx.
|
overridevirtual |
Prints on screen the information about the metadata members from this class.
Reimplemented from TRestPatternMask.
Definition at line 198 of file TRestRingsMask.cxx.
void TRestRingsMask::PrintRings | ( | ) |
Prints on screen the information about the metadata members of TRestRingsMask, excluding common metadata headers.
Definition at line 247 of file TRestRingsMask.cxx.
|
inline |
It allows to redefine the inner and outter rings radii directly.
Definition at line 66 of file TRestRingsMask.h.
|
private |
The initial radius for the inner ring.
Definition at line 43 of file TRestRingsMask.h.
|
private |
The number of rings inside the structure.
Definition at line 40 of file TRestRingsMask.h.
|
private |
The periodity of the rings structure in mm. Optionally used to initialize the rings.
Definition at line 34 of file TRestRingsMask.h.
|
private |
A pair containing inner/outter radius for each ring.
Definition at line 46 of file TRestRingsMask.h.
|
private |
The width of the rings structure in mm. Optionally used to initialize the rings.
Definition at line 37 of file TRestRingsMask.h.