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

Detailed Description

A metadata class to create x-ray transmission window definitions.

TRestAxionXrayWindow implements parameters that define the window properties, such as material and thickness. This class will load the transmission data to calculate the transmission for a photon of a given energy and position. The window might be defined as a uniform foil or using a particular pattern using a TRestPatternMask definition.

If we include the pattern definition using TRestPatternMask, then, the limits for the window will be imposed by TRestPatternMask. In the contrary, if no TRestPatternMask definition is included in the TRestAxionXrayWindow definition, then the window will have no limits, it will be just an infinite foil with a given material transmission.

The following parameters are used to define the window transmission:

Then, as it was mentioned before, we might define different types of window patterns, such as a strong back where photon opacity is only defined at a regular grid or stripped pattern. The window transmission will only be applied in the regions where the particle hits the pattern. Otherwise, the particle will just go through the empty regions and the transmission/efficiency will be equal to 1.

We may define the window pattern using any of the classes inheriting from TRestPatternMask, such as TRestGridMask, TRestStrippedMask, or event TRestSpiderMask and TRestRingsMask.

Once all the parameters have been defined inside an instance of this class, we will be able to recover the transmission at any given point inside the window using the method TRestAxionXrayWindow::GetEfficiecy.

The corresponding RML section for initialization through a configuration file would be as follows.

<TRestAxionXrayWindow name="strongBack" verboseLevel="warning">
<parameter name="center" value="(0,0,0)mm" />
<parameter name="thickness" value="200um" />
<parameter name="material" value="Si" />
<TRestGridMask name="mask" verboseLevel="warning"
maskRadius="8mm" offset="(2,2)mm"
rotationAngle="0.5" gridGap="4mm" gridThickness="0.5mm" />
A metadata class to create x-ray transmission window definitions.
A class used to define a grid mask pattern.
Definition: TRestGridMask.h:29

The pipeline example found at pipeline/transmission/windowPlot.py will use a definition with 3 layers to generate the following plot.

Windows trasmission at energy ranges (0-5)keV, (5-10)keV and (10-15)keV.

RESTsoft - Software for Rare Event Searches with TPCs

History of developments:

2019-March: First concept and implementation of TRestAxionXrayWindow class. Javier Galan

Author
Javier Galan

Definition at line 30 of file TRestAxionXrayWindow.h.

#include <TRestAxionXrayWindow.h>

Inheritance diagram for TRestAxionXrayWindow:
TRestMetadata

Public Member Functions

TRestPatternMaskGetMask () const
 
Double_t GetTransmission (Double_t energy, Double_t x, Double_t y)
 It returns the window transmission probability for the given energy (in keV) and window position, using energy linear interpolation. More...
 
Double_t GetWindowRadius ()
 
void InitFromConfigFile ()
 To make settings from rml file. This method must be implemented in the derived class. More...
 
void PrintMetadata ()
 Prints on screen the information about the metadata members of TRestAxionXrayWindow. More...
 
void PrintTransmissionData ()
 Prints out the transmission probability curve loaded in memory. for debugging pourposes. More...
 
 TRestAxionXrayWindow ()
 Default constructor. More...
 
 TRestAxionXrayWindow (const char *cfgFileName, std::string name="")
 Constructor loading data from a config file. More...
 
 ~TRestAxionXrayWindow ()
 Default destructor. More...
 

Private Member Functions

Int_t GetEnergyIndex (Double_t energy)
 It returns the vector element index, from fEnergy, that is just below the given input energy. More...
 
Bool_t HitsPattern (Double_t x, Double_t y)
 It returns true if the window pattern is hitted. False otherwise. More...
 
void Initialize ()
 Initialization of TRestAxionXrayWindow members. It removes all gases. More...
 
void ReadMaterial ()
 It reads the data files from the corresponding material that needs to be found in the axiolib database with .sol extension. Usually placed under data/axion/transmission/ More...
 

Private Attributes

std::vector< Double_t > fEnergy
 A vector with the energies loaded from the material file. Not stored in disk. More...
 
TRestPatternMaskfMask = nullptr
 A mask defining a pattern where the transmission will be effective. More...
 
std::string fMaterial = "Vacuum"
 Window material name. More...
 
Double_t fThickness = 0.0
 Thicknesss of window material in mm. More...
 
std::vector< Double_t > fTransmission
 A vector with the transmission already renormalized using the material thickness. Not stored in disk. More...
 

Additional Inherited Members

Constructor & Destructor Documentation

◆ TRestAxionXrayWindow() [1/2]

TRestAxionXrayWindow::TRestAxionXrayWindow ( )

Default constructor.

Definition at line 108 of file TRestAxionXrayWindow.cxx.

◆ TRestAxionXrayWindow() [2/2]

TRestAxionXrayWindow::TRestAxionXrayWindow ( 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 TRestGeant4Metadata section inside the RML.

Definition at line 124 of file TRestAxionXrayWindow.cxx.

◆ ~TRestAxionXrayWindow()

TRestAxionXrayWindow::~TRestAxionXrayWindow ( )

Default destructor.

Definition at line 136 of file TRestAxionXrayWindow.cxx.

Member Function Documentation

◆ GetEnergyIndex()

Int_t TRestAxionXrayWindow::GetEnergyIndex ( Double_t  energy)
private

It returns the vector element index, from fEnergy, that is just below the given input energy.

Definition at line 287 of file TRestAxionXrayWindow.cxx.

◆ GetMask()

TRestPatternMask * TRestAxionXrayWindow::GetMask ( ) const
inline

Definition at line 61 of file TRestAxionXrayWindow.h.

◆ GetTransmission()

Double_t TRestAxionXrayWindow::GetTransmission ( Double_t  energy,
Double_t  x,
Double_t  y 
)

It returns the window transmission probability for the given energy (in keV) and window position, using energy linear interpolation.

For the case of patterned window (stripped or grid), it will return 1 if the strip is not hitted.

Definition at line 198 of file TRestAxionXrayWindow.cxx.

◆ GetWindowRadius()

Double_t TRestAxionXrayWindow::GetWindowRadius ( )
inline

Definition at line 56 of file TRestAxionXrayWindow.h.

◆ HitsPattern()

Bool_t TRestAxionXrayWindow::HitsPattern ( Double_t  x,
Double_t  y 
)
private

It returns true if the window pattern is hitted. False otherwise.

Definition at line 241 of file TRestAxionXrayWindow.cxx.

◆ InitFromConfigFile()

void TRestAxionXrayWindow::InitFromConfigFile ( )
virtual

To make settings from rml file. This method must be implemented in the derived class.

Reimplemented from TRestMetadata.

Definition at line 306 of file TRestAxionXrayWindow.cxx.

◆ Initialize()

void TRestAxionXrayWindow::Initialize ( )
privatevirtual

Initialization of TRestAxionXrayWindow members. It removes all gases.

Reimplemented from TRestMetadata.

Definition at line 141 of file TRestAxionXrayWindow.cxx.

◆ PrintMetadata()

void TRestAxionXrayWindow::PrintMetadata ( )
virtual

Prints on screen the information about the metadata members of TRestAxionXrayWindow.

Reimplemented from TRestMetadata.

Definition at line 324 of file TRestAxionXrayWindow.cxx.

◆ PrintTransmissionData()

void TRestAxionXrayWindow::PrintTransmissionData ( )

Prints out the transmission probability curve loaded in memory. for debugging pourposes.

Definition at line 297 of file TRestAxionXrayWindow.cxx.

◆ ReadMaterial()

void TRestAxionXrayWindow::ReadMaterial ( )
private

It reads the data files from the corresponding material that needs to be found in the axiolib database with .sol extension. Usually placed under data/axion/transmission/

Definition at line 163 of file TRestAxionXrayWindow.cxx.

Field Documentation

◆ fEnergy

std::vector<Double_t> TRestAxionXrayWindow::fEnergy
private

A vector with the energies loaded from the material file. Not stored in disk.

Definition at line 42 of file TRestAxionXrayWindow.h.

◆ fMask

TRestPatternMask* TRestAxionXrayWindow::fMask = nullptr
private

A mask defining a pattern where the transmission will be effective.

Definition at line 39 of file TRestAxionXrayWindow.h.

◆ fMaterial

std::string TRestAxionXrayWindow::fMaterial = "Vacuum"
private

Window material name.

Definition at line 36 of file TRestAxionXrayWindow.h.

◆ fThickness

Double_t TRestAxionXrayWindow::fThickness = 0.0
private

Thicknesss of window material in mm.

Definition at line 33 of file TRestAxionXrayWindow.h.

◆ fTransmission

std::vector<Double_t> TRestAxionXrayWindow::fTransmission
private

A vector with the transmission already renormalized using the material thickness. Not stored in disk.

Definition at line 45 of file TRestAxionXrayWindow.h.


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