REST-for-Physics
v2.3
Rare Event Searches ToolKit for Physics
|
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
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.
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
Definition at line 32 of file TRestWimpSensitivity.h.
#include <TRestWimpSensitivity.h>
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... | |
![]() | |
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 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< TRestWimpNucleus > | fNuclei |
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 | |
![]() | |
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... | |
![]() | |
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... | |
TRestWimpSensitivity::TRestWimpSensitivity | ( | const char * | configFilename, |
const std::string & | name = "" |
||
) |
Constructor loading data from a config file.
configFilename | 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 TRestWimpSensitivity section inside the RML. |
Definition at line 137 of file src/TRestWimpSensitivity.cxx.
TRestWimpSensitivity::~TRestWimpSensitivity | ( | ) |
Default destructor.
Definition at line 146 of file src/TRestWimpSensitivity.cxx.
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.
void TRestWimpSensitivity::CalculateQuenchingFactor | ( | ) |
Calculate Quenching factor and stores in a map.
Definition at line 449 of file src/TRestWimpSensitivity.cxx.
|
inline |
Definition at line 88 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 82 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 80 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 81 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 85 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 87 of file TRestWimpSensitivity.h.
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.
|
inline |
Definition at line 84 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 79 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 78 of file TRestWimpSensitivity.h.
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.
|
inline |
Definition at line 86 of file TRestWimpSensitivity.h.
const Double_t TRestWimpSensitivity::GetSensitivity | ( | const double | wimpMass | ) |
Get sensitivity for a give WIMP mass.
Definition at line 376 of file src/TRestWimpSensitivity.cxx.
|
inline |
Definition at line 89 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 83 of file TRestWimpSensitivity.h.
|
overridevirtual |
Initialization of TRestWimpSensitivity members through a RML file.
Reimplemented from TRestMetadata.
Definition at line 160 of file src/TRestWimpSensitivity.cxx.
|
overridevirtual |
Initialization of TRestWimpSensitivity members.
Reimplemented from TRestMetadata.
Definition at line 151 of file src/TRestWimpSensitivity.cxx.
bool TRestWimpSensitivity::isEnergySpectraWideEnough | ( | ) |
Definition at line 482 of file src/TRestWimpSensitivity.cxx.
|
overridevirtual |
Prints on screen the details about WIMP parameters, stored in TRestWimpSensitivity.
Reimplemented from TRestMetadata.
Definition at line 554 of file src/TRestWimpSensitivity.cxx.
void TRestWimpSensitivity::ReadNuclei | ( | ) |
Initialization of TRestWimpSensitivity members through a RML file.
Definition at line 170 of file src/TRestWimpSensitivity.cxx.
|
inline |
Definition at line 100 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 94 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 92 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 93 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 97 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 99 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 96 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 91 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 98 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 101 of file TRestWimpSensitivity.h.
|
inline |
Definition at line 95 of file TRestWimpSensitivity.h.
|
private |
Detector background level in c/keV/day.
Definition at line 47 of file TRestWimpSensitivity.h.
|
private |
Energy range for the sensitivity prospects in keV.
Definition at line 54 of file TRestWimpSensitivity.h.
|
private |
Energy range for the recoil spectra in keV.
Definition at line 50 of file TRestWimpSensitivity.h.
|
private |
Energy step for the recoil spectra in keV.
Definition at line 52 of file TRestWimpSensitivity.h.
|
private |
WIMP escape velocity (km/s)
Definition at line 41 of file TRestWimpSensitivity.h.
|
private |
Detector exposure in kg*day.
Definition at line 45 of file TRestWimpSensitivity.h.
|
private |
WIMP velocity in the lab (Earth) frame reference in km/s.
Definition at line 39 of file TRestWimpSensitivity.h.
|
private |
A vector containing TRestWimpNucleus with different nucleus parameters.
Definition at line 35 of file TRestWimpSensitivity.h.
|
private |
WIMP RMS velocity (km/s)
Definition at line 43 of file TRestWimpSensitivity.h.
|
private |
Use or not quenching factor.
Definition at line 56 of file TRestWimpSensitivity.h.
|
private |
WIMP density in GeV/cm3.
Definition at line 37 of file TRestWimpSensitivity.h.
|
private |
Map containing quenching factor for a nucleus.
Definition at line 59 of file TRestWimpSensitivity.h.