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

Detailed Description

A class used to define a grid mask pattern.

This class defines a squared patterned grid. It defines a periodicity and a thickness for the grid pattern. The method TRestGridMask::GetRegion will return a unique id for each square delimited by the grid pattern.

The grid structure is centered in (0,0) and it can be shifted using the offset defined inside TRestPatternMask. The pattern will be only delimited by the limits imposed inside TRestPatternMask.

Specific grid metadata parameters

Common pattern metadata parameters

On top of the metadata class parameters, we may define common pattern parameters to induce an offset and rotation to the pattern.

Examples

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

<TRestGridMask name="strongback" verboseLevel="warning">
<parameter name="maskRadius" value="20" />
<parameter name="offset" value="(1,2)cm" />
<parameter name="rotationAngle" value="0.5" />
<parameter name="gridGap" value="1cm" />
<parameter name="gridThickness" value="2mm" />
A class used to define a grid mask pattern.
Definition: TRestGridMask.h:29

The basic use of this class is provided by the TRestGridMask::GetRegion method. For example:

TRestGridMask mask("masks.rml", "grid");
Int_t id = mask.GetRegion( 12.5, 4.3 );
std::cout << "Region id is : " << id << RESTendl;
endl_t RESTendl
Termination flag object for TRestStringOutput.

The following figure may be generated using the TRestPatternMask::DrawMonteCarlo method.

TRestGridMask mask("masks.rml", "grid");
TCanvas *c = mask.DrawMonteCarlo(30000);
c->Draw();


REST-for-Physics - Software for Rare Event Searches Toolkit

History of developments:

2022-05: First implementation of TRestGridMask Javier Galan

Author
: Javier Galan - javie.nosp@m.r.ga.nosp@m.lan@u.nosp@m.niza.nosp@m.r.es

Definition at line 29 of file TRestGridMask.h.

#include <TRestGridMask.h>

Inheritance diagram for TRestGridMask:
TRestPatternMask TRestMetadata

Public Member Functions

 ClassDefOverride (TRestGridMask, 1)
 
Double_t GetGridGap ()
 It returns the gap/periodicity of the grid in mm. More...
 
Double_t GetGridThickness ()
 It returns the thickness of the grid in mm. More...
 
Int_t GetModulus ()
 It returns the modulus used to define a finite set of ids. 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...
 
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 complete information about the metadata members from this class. More...
 
 TRestGridMask ()
 Default constructor. More...
 
 TRestGridMask (const char *cfgFileName, std::string name="")
 Constructor loading data from a config file. More...
 
 ~TRestGridMask ()
 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...
 

Private Member Functions

void Initialize () override
 Function to initialize input/output event members and define the section name. More...
 

Private Attributes

Double_t fGridGap = 1
 The periodity of the grid structure in mm. More...
 
Double_t fGridThickness = 0.5
 The width of the grid structure in mm. More...
 
Int_t fModulus = 10
 It defines the maximum number of cells/regions in each axis. 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 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...
 

Constructor & Destructor Documentation

◆ TRestGridMask() [1/2]

TRestGridMask::TRestGridMask ( )

Default constructor.

Definition at line 115 of file TRestGridMask.cxx.

◆ TRestGridMask() [2/2]

TRestGridMask::TRestGridMask ( 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.

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

Definition at line 131 of file TRestGridMask.cxx.

◆ ~TRestGridMask()

TRestGridMask::~TRestGridMask ( )

Default destructor.

Definition at line 142 of file TRestGridMask.cxx.

Member Function Documentation

◆ GetGridGap()

Double_t TRestGridMask::GetGridGap ( )
inline

It returns the gap/periodicity of the grid in mm.

Definition at line 46 of file TRestGridMask.h.

◆ GetGridThickness()

Double_t TRestGridMask::GetGridThickness ( )
inline

It returns the thickness of the grid in mm.

Definition at line 49 of file TRestGridMask.h.

◆ GetModulus()

Int_t TRestGridMask::GetModulus ( )
inline

It returns the modulus used to define a finite set of ids.

Definition at line 52 of file TRestGridMask.h.

◆ GetRegion()

Int_t TRestGridMask::GetRegion ( Double_t &  x,
Double_t &  y 
)
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 offset and rotation using the method TRestPatternMask::ApplyCommonMaskTransformation

Reimplemented from TRestPatternMask.

Definition at line 161 of file TRestGridMask.cxx.

◆ Initialize()

void TRestGridMask::Initialize ( )
overrideprivatevirtual

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

Reimplemented from TRestMetadata.

Definition at line 148 of file TRestGridMask.cxx.

◆ PrintMask()

void TRestGridMask::PrintMask ( )
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 221 of file TRestGridMask.cxx.

◆ PrintMaskMembers()

void TRestGridMask::PrintMaskMembers ( )
overridevirtual

Prints on screen the information about the metadata members of TRestRingsMask, excluding common metadata headers.

Reimplemented from TRestPatternMask.

Definition at line 231 of file TRestGridMask.cxx.

◆ PrintMetadata()

void TRestGridMask::PrintMetadata ( )
overridevirtual

Prints on screen the complete information about the metadata members from this class.

Reimplemented from TRestMetadata.

Definition at line 210 of file TRestGridMask.cxx.

Field Documentation

◆ fGridGap

Double_t TRestGridMask::fGridGap = 1
private

The periodity of the grid structure in mm.

Definition at line 34 of file TRestGridMask.h.

◆ fGridThickness

Double_t TRestGridMask::fGridThickness = 0.5
private

The width of the grid structure in mm.

Definition at line 37 of file TRestGridMask.h.

◆ fModulus

Int_t TRestGridMask::fModulus = 10
private

It defines the maximum number of cells/regions in each axis.

Definition at line 40 of file TRestGridMask.h.


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