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

Detailed Description

Container class for WIMP metadata

TRestWimpSensitivity is the main class used to generate senstitivity prospects for WIMP searches experiments. It requires different inputs from an rml file to define different paramented such as the target elements, WIMP density, velocity distributions of the WIMPs in the lab reference frame, exposure, background level, energy spectra for the nuclear recoil, energy range for the sensitivity derivation and the use of the quenching factor.

#RML definition

<TRestWimpSensitivity name="WIMPSensitivity" title="WIMP Sensitivity" verboseLevel="info">
<addElement nucleusName="Ne" anum="20.1797" znum="10" abundance="0.95" />
<addElement nucleusName="C" anum="12.0107" znum="6" abundance="0.04" />
<addElement nucleusName="H" anum="1.00784" znum="1" abundance="0.01" />
<parameter name="wimpDensity" value="0.3" />
<parameter name="labVelocity" value="232"/>
<parameter name="rmsVelocity" value="220"/>
<parameter name="escapeVelocity" value="544"/>
<parameter name="exposure" value="116.8"/>
<parameter name="background" value="1"/>
<parameter name="energySpectra" value="(0,2)"/>
<parameter name="energySpectraStep" value="0.01"/>
<parameter name="energyRange" value="(0.1,1.1)"/>
<parameter name="useQuenchingFactor" value="true"/>

Other ways to define the target material is through the use of compounds. Also, the abundances can be given in mol (or volume) using the parameter abundanceInMol instead of abundance. Examples for an Ar+Isobutane mixture at 99% in volume can be found inside the files 'REST_PATH/source/libraries/wimp/examples/WIMP_compound_1.rml' and 'REST_PATH/source/libraries/wimp/examples/WIMP_compound_2.rml'.

Besides target material elements, the other parameters are optional, and if not provided they will take their default values.

/// ### Using this class

Once we have created an instance of this class we will be able to access the different parameters to derive the WIMP sensitivity.

For example, the following code will perform the derivation of the WIMP sensitivity for a given rml file.

TRestWimpSensitivity WS("wimp.rml");
WS.PrintMetadata();
double wimpMass = 0.25; //GeV
const double sensitivity = WS.GetSensitivity(wimpMass);
if(sensitivity > 0 ){
std::cout<<"WIMP mass "<<wimpMass<<" Sensitivity "<<sens<< " cm-2"<<std::endl;
} else {
std::cout<<"Cannot provide sensititivy with this configuration try to
incresase the WIMP mass"<<std::endl;
}

This will return the expected sensitivity for the rml file used above for a WIMP mass of 0.25 GeV.


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

History of developments:

2022-October First implementation JuanAn Garcia

Author
: JuanAn Garcia e-mail: juana.nosp@m.ngp@.nosp@m.uniza.nosp@m.r.es

Definition at line 32 of file TRestWimpSensitivity.h.

#include <TRestWimpSensitivity.h>

Inheritance diagram for TRestWimpSensitivity:
TRestMetadata

Public Member Functions

const std::string BuildOutputFileName (const std::string &extension=".txt")
 Return output file format with different parameters used in the calculation. More...
 
void CalculateQuenchingFactor ()
 Calculate Quenching factor and stores in a map. More...
 
 ClassDefOverride (TRestWimpSensitivity, 1)
 
auto GetBackground ()
 
auto GetEnergyRange ()
 
auto GetEnergySpectra ()
 
auto GetEnergySpectraStep ()
 
auto GetEscapeVelocity ()
 
auto GetExposure ()
 
std::map< std::string, TH1D * > GetFormFactor ()
 Return a map of histograms with the Form Factor of the different elements. More...
 
auto GetLabVelocity ()
 
std::vector< TRestWimpNucleus > & GetNuclei ()
 
auto GetQuenchingFactor ()
 
std::map< std::string, TH1D * > GetRecoilSpectra (const double wimpMass, const double crossSection)
 Get recoil spectra for a given WIMP mass and cross section Better performance version (velocity integral is done only once for all recoil energies). More...
 
auto GetRmsVelocity ()
 
const Double_t GetSensitivity (const double wimpMass)
 Get sensitivity for a give WIMP mass. More...
 
auto GetUseQuenchingFactor ()
 
auto GetWimpDensity ()
 
void InitFromConfigFile () override
 Initialization of TRestWimpSensitivity members through a RML file. More...
 
void Initialize () override
 Initialization of TRestWimpSensitivity members. More...
 
bool isEnergySpectraWideEnough ()
 
void PrintMetadata () override
 Prints on screen the details about WIMP parameters, stored in TRestWimpSensitivity. More...
 
void ReadNuclei ()
 Initialization of TRestWimpSensitivity members through a RML file. More...
 
void SetBackground (const Double_t background)
 
void SetEnergyRange (const TVector2 &energyRange)
 
void SetEnergySpectra (const TVector2 &energySpectra)
 
void SetEnergySpectraStep (const Double_t energySpectraStep)
 
void SetEscapeVelocity (const Double_t escapeVelocity)
 
void SetExposure (const Double_t exposure)
 
void SetLabVelocity (const Double_t labVelocity)
 
void SetNuclei (const std::vector< TRestWimpNucleus > &nuclei)
 
void SetRmsVelocity (const Double_t rmsVelocity)
 
void SetUseQuenchingFactor (const Bool_t useQuenchingFactor)
 
void SetWimpDensity (const Double_t wimpDensity)
 
 TRestWimpSensitivity (const char *configFilename, const std::string &name="")
 Constructor loading data from a config file. More...
 
 ~TRestWimpSensitivity ()
 Default destructor. More...
 

Private Attributes

Double_t fBackground = 1
 Detector background level in c/keV/day. More...
 
TVector2 fEnergyRange = TVector2(0.1, 1.1)
 Energy range for the sensitivity prospects in keV. More...
 
TVector2 fEnergySpectra = TVector2(0, 2)
 Energy range for the recoil spectra in keV. More...
 
Double_t fEnergySpectraStep = 0.01
 Energy step for the recoil spectra in keV. More...
 
Double_t fEscapeVelocity = 544
 WIMP escape velocity (km/s) More...
 
Double_t fExposure = 365. * 0.32
 Detector exposure in kg*day. More...
 
Double_t fLabVelocity = 232
 WIMP velocity in the lab (Earth) frame reference in km/s. More...
 
std::vector< TRestWimpNucleusfNuclei
 A vector containing TRestWimpNucleus with different nucleus parameters. More...
 
Double_t fRmsVelocity = 220
 WIMP RMS velocity (km/s) More...
 
Bool_t fUseQuenchingFactor = true
 Use or not quenching factor. More...
 
Double_t fWimpDensity = 0.3
 WIMP density in GeV/cm3. More...
 
std::map< std::string, TH1D * > quenchingFactor
 Map containing quenching factor for a nucleus. More...
 

Additional Inherited Members

Constructor & Destructor Documentation

◆ TRestWimpSensitivity()

TRestWimpSensitivity::TRestWimpSensitivity ( const char *  configFilename,
const std::string &  name = "" 
)

Constructor loading data from a config file.

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

Definition at line 137 of file src/TRestWimpSensitivity.cxx.

◆ ~TRestWimpSensitivity()

TRestWimpSensitivity::~TRestWimpSensitivity ( )

Default destructor.

Definition at line 146 of file src/TRestWimpSensitivity.cxx.

Member Function Documentation

◆ BuildOutputFileName()

const std::string TRestWimpSensitivity::BuildOutputFileName ( const std::string &  extension = ".txt")

Return output file format with different parameters used in the calculation.

Definition at line 501 of file src/TRestWimpSensitivity.cxx.

◆ CalculateQuenchingFactor()

void TRestWimpSensitivity::CalculateQuenchingFactor ( )

Calculate Quenching factor and stores in a map.

Definition at line 449 of file src/TRestWimpSensitivity.cxx.

◆ GetBackground()

auto TRestWimpSensitivity::GetBackground ( )
inline

Definition at line 88 of file TRestWimpSensitivity.h.

◆ GetEnergyRange()

auto TRestWimpSensitivity::GetEnergyRange ( )
inline

Definition at line 82 of file TRestWimpSensitivity.h.

◆ GetEnergySpectra()

auto TRestWimpSensitivity::GetEnergySpectra ( )
inline

Definition at line 80 of file TRestWimpSensitivity.h.

◆ GetEnergySpectraStep()

auto TRestWimpSensitivity::GetEnergySpectraStep ( )
inline

Definition at line 81 of file TRestWimpSensitivity.h.

◆ GetEscapeVelocity()

auto TRestWimpSensitivity::GetEscapeVelocity ( )
inline

Definition at line 85 of file TRestWimpSensitivity.h.

◆ GetExposure()

auto TRestWimpSensitivity::GetExposure ( )
inline

Definition at line 87 of file TRestWimpSensitivity.h.

◆ GetFormFactor()

std::map< std::string, TH1D * > TRestWimpSensitivity::GetFormFactor ( )

Return a map of histograms with the Form Factor of the different elements.

Definition at line 530 of file src/TRestWimpSensitivity.cxx.

◆ GetLabVelocity()

auto TRestWimpSensitivity::GetLabVelocity ( )
inline

Definition at line 84 of file TRestWimpSensitivity.h.

◆ GetNuclei()

std::vector< TRestWimpNucleus > & TRestWimpSensitivity::GetNuclei ( )
inline

Definition at line 79 of file TRestWimpSensitivity.h.

◆ GetQuenchingFactor()

auto TRestWimpSensitivity::GetQuenchingFactor ( )
inline

Definition at line 78 of file TRestWimpSensitivity.h.

◆ GetRecoilSpectra()

std::map< std::string, TH1D * > TRestWimpSensitivity::GetRecoilSpectra ( const double  wimpMass,
const double  crossSection 
)

Get recoil spectra for a given WIMP mass and cross section Better performance version (velocity integral is done only once for all recoil energies).

Definition at line 290 of file src/TRestWimpSensitivity.cxx.

◆ GetRmsVelocity()

auto TRestWimpSensitivity::GetRmsVelocity ( )
inline

Definition at line 86 of file TRestWimpSensitivity.h.

◆ GetSensitivity()

const Double_t TRestWimpSensitivity::GetSensitivity ( const double  wimpMass)

Get sensitivity for a give WIMP mass.

Definition at line 376 of file src/TRestWimpSensitivity.cxx.

◆ GetUseQuenchingFactor()

auto TRestWimpSensitivity::GetUseQuenchingFactor ( )
inline

Definition at line 89 of file TRestWimpSensitivity.h.

◆ GetWimpDensity()

auto TRestWimpSensitivity::GetWimpDensity ( )
inline

Definition at line 83 of file TRestWimpSensitivity.h.

◆ InitFromConfigFile()

void TRestWimpSensitivity::InitFromConfigFile ( )
overridevirtual

Initialization of TRestWimpSensitivity members through a RML file.

Reimplemented from TRestMetadata.

Definition at line 160 of file src/TRestWimpSensitivity.cxx.

◆ Initialize()

void TRestWimpSensitivity::Initialize ( )
overridevirtual

Initialization of TRestWimpSensitivity members.

Reimplemented from TRestMetadata.

Definition at line 151 of file src/TRestWimpSensitivity.cxx.

◆ isEnergySpectraWideEnough()

bool TRestWimpSensitivity::isEnergySpectraWideEnough ( )

Definition at line 482 of file src/TRestWimpSensitivity.cxx.

◆ PrintMetadata()

void TRestWimpSensitivity::PrintMetadata ( )
overridevirtual

Prints on screen the details about WIMP parameters, stored in TRestWimpSensitivity.

Reimplemented from TRestMetadata.

Definition at line 554 of file src/TRestWimpSensitivity.cxx.

◆ ReadNuclei()

void TRestWimpSensitivity::ReadNuclei ( )

Initialization of TRestWimpSensitivity members through a RML file.

Definition at line 170 of file src/TRestWimpSensitivity.cxx.

◆ SetBackground()

void TRestWimpSensitivity::SetBackground ( const Double_t  background)
inline

Definition at line 100 of file TRestWimpSensitivity.h.

◆ SetEnergyRange()

void TRestWimpSensitivity::SetEnergyRange ( const TVector2 &  energyRange)
inline

Definition at line 94 of file TRestWimpSensitivity.h.

◆ SetEnergySpectra()

void TRestWimpSensitivity::SetEnergySpectra ( const TVector2 &  energySpectra)
inline

Definition at line 92 of file TRestWimpSensitivity.h.

◆ SetEnergySpectraStep()

void TRestWimpSensitivity::SetEnergySpectraStep ( const Double_t  energySpectraStep)
inline

Definition at line 93 of file TRestWimpSensitivity.h.

◆ SetEscapeVelocity()

void TRestWimpSensitivity::SetEscapeVelocity ( const Double_t  escapeVelocity)
inline

Definition at line 97 of file TRestWimpSensitivity.h.

◆ SetExposure()

void TRestWimpSensitivity::SetExposure ( const Double_t  exposure)
inline

Definition at line 99 of file TRestWimpSensitivity.h.

◆ SetLabVelocity()

void TRestWimpSensitivity::SetLabVelocity ( const Double_t  labVelocity)
inline

Definition at line 96 of file TRestWimpSensitivity.h.

◆ SetNuclei()

void TRestWimpSensitivity::SetNuclei ( const std::vector< TRestWimpNucleus > &  nuclei)
inline

Definition at line 91 of file TRestWimpSensitivity.h.

◆ SetRmsVelocity()

void TRestWimpSensitivity::SetRmsVelocity ( const Double_t  rmsVelocity)
inline

Definition at line 98 of file TRestWimpSensitivity.h.

◆ SetUseQuenchingFactor()

void TRestWimpSensitivity::SetUseQuenchingFactor ( const Bool_t  useQuenchingFactor)
inline

Definition at line 101 of file TRestWimpSensitivity.h.

◆ SetWimpDensity()

void TRestWimpSensitivity::SetWimpDensity ( const Double_t  wimpDensity)
inline

Definition at line 95 of file TRestWimpSensitivity.h.

Field Documentation

◆ fBackground

Double_t TRestWimpSensitivity::fBackground = 1
private

Detector background level in c/keV/day.

Definition at line 47 of file TRestWimpSensitivity.h.

◆ fEnergyRange

TVector2 TRestWimpSensitivity::fEnergyRange = TVector2(0.1, 1.1)
private

Energy range for the sensitivity prospects in keV.

Definition at line 54 of file TRestWimpSensitivity.h.

◆ fEnergySpectra

TVector2 TRestWimpSensitivity::fEnergySpectra = TVector2(0, 2)
private

Energy range for the recoil spectra in keV.

Definition at line 50 of file TRestWimpSensitivity.h.

◆ fEnergySpectraStep

Double_t TRestWimpSensitivity::fEnergySpectraStep = 0.01
private

Energy step for the recoil spectra in keV.

Definition at line 52 of file TRestWimpSensitivity.h.

◆ fEscapeVelocity

Double_t TRestWimpSensitivity::fEscapeVelocity = 544
private

WIMP escape velocity (km/s)

Definition at line 41 of file TRestWimpSensitivity.h.

◆ fExposure

Double_t TRestWimpSensitivity::fExposure = 365. * 0.32
private

Detector exposure in kg*day.

Definition at line 45 of file TRestWimpSensitivity.h.

◆ fLabVelocity

Double_t TRestWimpSensitivity::fLabVelocity = 232
private

WIMP velocity in the lab (Earth) frame reference in km/s.

Definition at line 39 of file TRestWimpSensitivity.h.

◆ fNuclei

std::vector<TRestWimpNucleus> TRestWimpSensitivity::fNuclei
private

A vector containing TRestWimpNucleus with different nucleus parameters.

Definition at line 35 of file TRestWimpSensitivity.h.

◆ fRmsVelocity

Double_t TRestWimpSensitivity::fRmsVelocity = 220
private

WIMP RMS velocity (km/s)

Definition at line 43 of file TRestWimpSensitivity.h.

◆ fUseQuenchingFactor

Bool_t TRestWimpSensitivity::fUseQuenchingFactor = true
private

Use or not quenching factor.

Definition at line 56 of file TRestWimpSensitivity.h.

◆ fWimpDensity

Double_t TRestWimpSensitivity::fWimpDensity = 0.3
private

WIMP density in GeV/cm3.

Definition at line 37 of file TRestWimpSensitivity.h.

◆ quenchingFactor

std::map<std::string, TH1D*> TRestWimpSensitivity::quenchingFactor
private

Map containing quenching factor for a nucleus.

Definition at line 59 of file TRestWimpSensitivity.h.


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