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.


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.
 
void PrintMetadata ()
 Prints on screen the information about the metadata members of TRestAxionXrayWindow.
 
void PrintTransmissionData ()
 Prints out the transmission probability curve loaded in memory. for debugging pourposes.
 
 TRestAxionXrayWindow ()
 Default constructor.
 
 TRestAxionXrayWindow (const char *cfgFileName, std::string name="")
 Constructor loading data from a config file. More...
 
 ~TRestAxionXrayWindow ()
 Default destructor.
 

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.
 
Bool_t HitsPattern (Double_t x, Double_t y)
 It returns true if the window pattern is hitted. False otherwise.
 
void Initialize ()
 Initialization of TRestAxionXrayWindow members. It removes all gases.
 
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/
 

Private Attributes

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

Additional Inherited Members

Constructor & Destructor Documentation

◆ TRestAxionXrayWindow()

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.

Member Function Documentation

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


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