REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
 All Data Structures Namespaces Functions Variables Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
TRestComponentDataSet Class Reference

Detailed Description

It defines a background/signal model distribution in a given parameter space (tipically x,y,en)

This class ...

<TRestComponentDataSet name="agSignal_vacuum">
<!-- We add here all the axion-photon coupling components -->
<dataset filename="${DUST}/Dataset_BabyIAXO_XMM_mm_Vacuum.root" weight="1" />
<variable name="final_posX" range="(-10,10)mm" bins="10" />
<variable name="final_posY" range="(-10,10)mm" bins="10" />
<variable name="final_energy" range="(0,10)keV" bins="20" />
<parameter name="weights" value="{NGamma}"/>
<parameter name="parameter" value="final_mass" />
<parameter name="parameterizationNodes" value="" />
restRoot
[0] TRestComponentDataSet comp("components.rml", "agSignal_vacuum");
[1] comp.LoadDataSets()
[2] TFile *f = TFile::Open("vacuumComponent.root", "RECREATE");
[3] comp.Write("agSignal_vacuum");
restRoot vacuumComponents.root
[0] TCanvas *c = agVacuum->DrawComponent( { "final_posX", "final_posY"}, {"final_energy"}, 2);
[1] c->Print("component_hitmaps.png");
component_hitmap.png
A 2-dimensional histogram scan versus the `final_energy` observable, generated by the DrawComponent method
restRoot vacuumComponents.root
[0] TCanvas *c = agVacuum->DrawComponent( { "final_energy"}, {"final_posX", "final_posY"}, 2);
[1] c->Print("component_hitmaps.png");

In both cases each plot will regroup 2 bins.

component_spectra.png
A 1-dimensional histogram scan versus the `final_posX` and `final_posY` observables, generated by the DrawComponent method

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

History of developments:

2023-December: First implementation of TRestComponentDataSet Javier Galan

Author
: Javier Galan (javie.nosp@m.r.ga.nosp@m.lan.l.nosp@m.acar.nosp@m.ra@ce.nosp@m.rn.c.nosp@m.h)

Definition at line 32 of file TRestComponentDataSet.h.

#include <TRestComponentDataSet.h>

Inheritance diagram for TRestComponentDataSet:
TRestComponent TRestMetadata

Public Member Functions

 ClassDefOverride (TRestComponentDataSet, 1)
 
TCanvas * DrawComponent (std::vector< std::string > drawVariables, std::vector< std::string > scanVariables, Int_t binScanSize=1, TString drawOption="")
 
THnD * GetDensity ()
 
THnD * GetDensityForActiveNode ()
 
THnD * GetDensityForNode (Double_t value)
 
TH1D * GetHistogram (Double_t node, std::string varName)
 It returns a 1-dimensional projected histogram for the variable names provided in the argument.
 
TH2D * GetHistogram (Double_t node, std::string varName1, std::string varName2)
 It returns the 2-dimensional projected histogram for the variable names provided in the argument.
 
TH3D * GetHistogram (Double_t node, std::string varName1, std::string varName2, std::string varName3)
 It returns the 3-dimensional projected histogram for the variable names provided in the argument.
 
TH1D * GetHistogram (std::string varName)
 It returns a 1-dimensional projected histogram for the variable names provided in the argument. It will recover the histogram corresponding to the active node.
 
TH2D * GetHistogram (std::string varName1, std::string varName2)
 It returns a 2-dimensional projected histogram for the variable names provided in the argument. It will recover the histogram corresponding to the active node.
 
TH3D * GetHistogram (std::string varName1, std::string varName2, std::string varName3)
 It returns a 3-dimensional projected histogram for the variable names provided in the argument. It will recover the histogram corresponding to the active node.
 
Double_t GetRate (std::vector< Double_t > point) override
 It returns the intensity/rate (in seconds) corresponding to the generated distribution or formula evaluated at the position of the parameter space given by point. More...
 
Double_t GetTotalRate () override
 This method integrates the rate to all the parameter space defined in the density function. The result will be returned in s-1.
 
void InitFromConfigFile () override
 It customizes the retrieval of XML data values of this class.
 
void Initialize () override
 It will initialize the data frame with the filelist and column names (or observables) that have been defined by the user.
 
Bool_t IsDataSetLoaded ()
 This method should go to TRestComponentDataSet.
 
Bool_t LoadDataSets ()
 A method responsible to import a list of TRestDataSet into fDataSet and check that the variables and weights defined by the user can be found inside the dataset.
 
void PrintMetadata () override
 Prints on screen the information about the metadata members of TRestAxionSolarFlux.
 
void PrintStatistics ()
 It prints out the statistics available for each parametric node.
 
 TRestComponentDataSet ()
 Default constructor.
 
 TRestComponentDataSet (const char *cfgFileName, const std::string &name)
 Constructor loading data from a config file. More...
 
 ~TRestComponentDataSet ()
 Default destructor.
 
- Public Member Functions inherited from TRestComponent
 ClassDefOverride (TRestComponent, 1)
 
Int_t GetActiveNode ()
 
Double_t GetActiveNodeValue ()
 
void PrintNodes ()
 It prints out on screen the values of the parametric node.
 
void PrintStatistics ()
 
Int_t SetActiveNode (Double_t node)
 It returns the position of the fParameterizationNodes element for the variable name given by argument.
 
 TRestComponent (const char *cfgFileName, const std::string &name="")
 Constructor loading data from a config file. More...
 
 TRestComponent ()
 Default constructor.
 
 ~TRestComponent ()
 Default destructor.
 

Protected Member Functions

std::vector< Int_t > ExtractNodeStatistics ()
 It returns a vector with the number of entries found for each parameterization node. More...
 
std::vector< Double_t > ExtractParameterizationNodes ()
 It returns a vector with all the different values found on the dataset column for the user given parameterization variable. More...
 
void FillHistograms ()
 It will produce a histogram with the distribution defined using the variables and the weights for each of the parameter nodes.
 
Bool_t VariablesOk ()
 It returns true if all variables have been found inside TRestDataSet.
 
Bool_t WeightsOk ()
 It returns true if all weights have been found inside TRestDataSet.
 
- Protected Member Functions inherited from TRestComponent
Int_t GetVariableIndex (std::string varName)
 It returns the position of the fVariable element for the variable name given by argument.
 
Bool_t HasNodes ()
 It returns true if any nodes have been defined.
 
Bool_t ValidNode (Double_t node)
 It returns true if the node has been properly identified.
 

Private Member Functions

Bool_t ValidDataSet ()
 Takes care of initializing datasets if have not been initialized. On sucess it returns true.
 

Private Attributes

TRestDataSet fDataSet
 The dataset used to initialize the distribution. More...
 
std::vector< std::string > fDataSetFileNames
 The filename of the dataset used.
 
Bool_t fDataSetLoaded = false
 It is true of the dataset was loaded without issues.
 
std::vector< THnD * > fNodeDensity
 The generated N-dimensional variable space density for a given node.
 
std::vector< Int_t > fNSimPerNode
 It defines the number of entries for each parameterization node (Initialized by the dataset)
 
std::vector< std::string > fWeights
 A list with the dataset columns used to weight the distribution density and define rate.
 

Additional Inherited Members

- Protected Attributes inherited from TRestComponent
Int_t fActiveNode = -1
 It is used to define the node that will be accessed for rate retrieval.
 
TCanvas * fCanvas = nullptr
 A canvas for drawing the active node component.
 
std::vector< Int_t > fNbins
 The number of bins in which we should divide each variable.
 
std::string fParameter = ""
 It is used to parameterize a set of distribution densities (e.g. WIMP or axion mass)
 
std::vector< Double_t > fParameterizationNodes
 It defines the nodes of the parameterization (Initialized by the dataset)
 
std::vector< TVector2 > fRanges
 The range of each of the variables used to create the PDF distribution.
 
std::vector< std::string > fVariables
 A list with the branches that will be used to create the distribution space.
 

Constructor & Destructor Documentation

TRestComponentDataSet::TRestComponentDataSet ( const char *  cfgFileName,
const 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 TRestAxionMagneticField section inside the RML.

Definition at line 116 of file TRestComponentDataSet.cxx.

Member Function Documentation

TCanvas * TRestComponentDataSet::DrawComponent ( std::vector< std::string >  drawVariables,
std::vector< std::string >  scanVariables,
Int_t  binScanSize = 1,
TString  drawOption = "" 
)

Finding canvas division scheme

Definition at line 199 of file TRestComponentDataSet.cxx.

std::vector< Int_t > TRestComponentDataSet::ExtractNodeStatistics ( )
protected

It returns a vector with the number of entries found for each parameterization node.

If fNSimPerNode has already been initialized it will directly return its value.

Definition at line 628 of file TRestComponentDataSet.cxx.

std::vector< Double_t > TRestComponentDataSet::ExtractParameterizationNodes ( )
protected

It returns a vector with all the different values found on the dataset column for the user given parameterization variable.

If fParameterizationNodes has already been initialized it will directly return its value.

Definition at line 596 of file TRestComponentDataSet.cxx.

Double_t TRestComponentDataSet::GetRate ( std::vector< Double_t >  point)
overridevirtual

It returns the intensity/rate (in seconds) corresponding to the generated distribution or formula evaluated at the position of the parameter space given by point.

The density should be normalized to the corresponding parameter space. During the component construction, the user is responsible to initialize the component with the appropriate units. For example, if the parameter space is 2 spatial dimensions and 1 energy dimension, the contribution of each cell or event to the component will be expressed in mm-2 keV-1 which are the default units for distance and energy.

The size of the point vector must have the same dimension as the dimensions of the distribution.

Implements TRestComponent.

Definition at line 150 of file TRestComponentDataSet.cxx.

Field Documentation

TRestDataSet TRestComponentDataSet::fDataSet
private

The dataset used to initialize the distribution.

TODO we need to define multiple datasets and weigth. The weight will be used to create a model, such as weighting different background contaminations or different signal coupling contributions. TODO Then we probably need here a std::vector <TRestDataSet> and another vector with the weights (isotope activity/flux/etc).

Definition at line 54 of file TRestComponentDataSet.h.


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