REST-for-Physics
v2.3
Rare Event Searches ToolKit for Physics
|
It defines a background/signal model distribution in a given parameter space (tipically x,y,en)
This class ...
method" method" method" method"
In both cases each plot will regroup 2 bins.
DrawComponent method" DrawComponent method" DrawComponent method" DrawComponent method"
REST-for-Physics - Software for Rare Event Searches Toolkit
History of developments:
2023-December: First implementation of TRestComponentDataSet Javier Galan
Definition at line 32 of file TRestComponentDataSet.h.
#include <TRestComponentDataSet.h>
Public Member Functions | |
ClassDefOverride (TRestComponentDataSet, 4) | |
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 () |
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, 6) | |
void | DisableInterpolation () |
TCanvas * | DrawComponent (std::vector< std::string > drawVariables, std::vector< std::string > scanVariables, Int_t binScanSize=1, TString drawOption="") |
A method allowing to draw a series of plots representing the density distributions. More... | |
void | EnableInterpolation () |
Int_t | FindActiveNode (Double_t node) |
It returns the position of the fParameterizationNodes element for the variable name given by argument. | |
Int_t | GetActiveNode () |
Double_t | GetActiveNodeValue () |
Double_t | GetAllNodesIntegratedRate () |
This method returns the integrated total rate for all the nodes The result will be returned in s-1. | |
Double_t | GetBinCenter (Int_t nDim, const Int_t bin) |
It returns the bin center of the given component dimension. More... | |
THnD * | GetDensity () |
THnD * | GetDensityForActiveNode () |
THnD * | GetDensityForNode (Double_t value) |
size_t | GetDimensions () |
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 | GetMaxRate () |
This method returns the total rate for the node that has the highest contribution The result will be returned in s-1. | |
ROOT::RDF::RNode | GetMonteCarloDataFrame (Int_t N=100) |
std::string | GetNature () const |
std::vector< Int_t > | GetNbins () const |
Double_t | GetNormalizedRate (std::vector< Double_t > point) |
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... | |
std::vector< Double_t > | GetParameterizationNodes () |
Float_t | GetPrecision () |
ROOT::RVecD | GetRandom () |
std::vector< TVector2 > | GetRanges () const |
Double_t | GetRate (std::vector< Double_t > point) |
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 | GetRawRate (std::vector< Double_t > point) |
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 returned rate is integrated to the granularity of the parameter space (cell size). To get a normalized rate use TRestComponent::GetNormalizedRate. More... | |
TRestResponse * | GetResponse () const |
Int_t | GetSamples () |
Double_t | GetTotalRate () |
This method integrates the rate to all the parameter space defined in the density function. The result will be returned in s-1. | |
std::vector< std::string > | GetVariables () const |
Bool_t | HasNodes () |
It returns true if any nodes have been defined. | |
Bool_t | Interpolation () |
void | LoadResponse (const TRestResponse &resp) |
void | PrintNodes () |
It prints out on screen the values of the parametric node. | |
void | PrintStatistics () |
void | RegenerateHistograms (UInt_t seed=0) |
It will produce a histogram with the distribution defined using the variables and the weights for each of the parameter nodes. More... | |
void | RegenerateParametricNodes (Double_t from, Double_t to, Double_t step, Bool_t expIncrease=false) |
It allows to produce a parameter nodes list providing the initial value, the final value and the step. We might chose the step growing in linear increase steps or exponential. Linear is the default value. | |
Int_t | SetActiveNode (Double_t node) |
It returns the position of the fParameterizationNodes element for the variable name given by argument. | |
Int_t | SetActiveNode (Int_t n) |
void | SetPrecision (const Float_t &pr) |
void | SetSamples (Int_t samples) |
TRestComponent () | |
Default constructor. | |
TRestComponent (const char *cfgFileName, const std::string &name="") | |
Constructor loading data from a config file. More... | |
~TRestComponent () | |
Default destructor. | |
Public Member Functions inherited from TRestMetadata | |
void | AddLog (std::string log="", bool print=true) |
Add logs to messageBuffer. | |
void | DoNotStore () |
If this method is called the metadata information will not be stored in disk. | |
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. | |
std::string | GetConfigBuffer () |
Returns the config section of this class. | |
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. | |
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. | |
TString | GetErrorMessage () |
Returns a std::string containing the error message. | |
TString | GetLibraryVersion () |
Returns the REST libraty version stored in fLibraryVersion. | |
TString | GetMainDataPath () |
Gets a std::string with the path used for data storage. | |
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. | |
TRestStringOutput::REST_Verbose_Level | GetVerboseLevel () |
returns the verboselevel in type of REST_Verbose_Level enumerator | |
TString | GetVerboseLevelString () |
returns the verbose level in type of TString More... | |
TString | GetVersion () |
Returns the REST version stored in fVersion. | |
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. | |
TString | GetWarningMessage () |
Returns a std::string containing the warning message. | |
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. | |
virtual void | Merge (const TRestMetadata &) |
TRestMetadata & | operator= (const TRestMetadata &) |
void | Print () |
Implementing TObject::Print() method. | |
void | PrintConfigBuffer () |
Print the config xml section stored in the class. More... | |
void | PrintMessageBuffer () |
Print the buffered message. | |
void | PrintTimeStamp (Double_t timeStamp) |
Print the current time on local machine. More... | |
void | SetConfigFile (std::string configFilename) |
set config file path from external | |
void | SetError (std::string message="", bool print=true, int maxPrint=5) |
A metadata class may use this method to signal that something went wrong. | |
void | SetHostmgr (TRestManager *m) |
Set the host manager for this class. | |
void | SetSectionName (std::string sName) |
set the section name, clear the section content | |
void | SetVerboseLevel (TRestStringOutput::REST_Verbose_Level v) |
sets the verbose level | |
void | SetWarning (std::string message="", bool print=true, int maxPrint=5) |
A metadata class may use this method to signal that something went wrong. | |
void | Store () |
If this method is called the metadata information will be stored in disk. | |
TRestMetadata (const TRestMetadata &) | |
virtual void | UpdateMetadataMembers () |
Method to allow implementation of specific metadata members updates at inherited classes. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
overwriting the write() method with fStore considered | |
void | WriteConfigBuffer (std::string fName) |
Writes the config buffer to a file in append mode. | |
~TRestMetadata () | |
TRestMetadata 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 () override |
It will produce a histogram with the distribution defined using the variables and the weights for each of the parameter nodes. More... | |
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 | RegenerateActiveNodeDensity () override |
It will regenerate the density histogram for the active node. It is practical in the case when the number of samples fSamples is lower than the total number of samples. The density distribution will be then re-generated with a different random sample. | |
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 | HasDensity () |
Bool_t | ValidNode (Double_t node) |
It returns true if the node has been properly identified. | |
Protected Member Functions inherited from TRestMetadata | |
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. | |
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". | |
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". | |
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. | |
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. | |
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. | |
TString | GetSearchPath () |
virtual void | InitFromRootFile () |
Method called after the object is retrieved from root file. | |
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. | |
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. | |
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. | |
TiXmlElement * | StringToElement (std::string definition) |
Parsing a string into TiXmlElement object. More... | |
TRestMetadata () | |
TRestMetadata default constructor. | |
TRestMetadata (const char *configFilename) | |
constructor | |
void | UnSetVersion () |
Resets the version of TRestRun to -1, in case the file is old REST file. Only TRestRun is allowed to update version. | |
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. | |
TVector2 | fDFRange = TVector2(0, 0) |
It creates a sample subset using a range definition. | |
std::vector< Int_t > | fNSimPerNode |
long long unsigned int | fSplitEntries = 600000000 |
It helps to split large datasets when extracting the parameterization nodes. | |
std::vector< Int_t > | fTotalSamples |
It defines the total 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. | |
Bool_t | fExponential = false |
It true the parametric values automatically generated will grow exponentially. | |
Double_t | fFirstParameterValue = 0 |
It defines the first parametric node value in case of automatic parameter generation. | |
Bool_t | fInterpolation = true |
Enables or disables the interpolation at TRestComponentDataSet::GetRawRate. | |
Double_t | fLastParameterValue = 0 |
It defines the upper limit for the automatic parametric node values generation. | |
std::string | fNature = "unknown" |
It defines the component type (unknown/signal/background) | |
std::vector< Int_t > | fNbins |
The number of bins in which we should divide each variable. | |
std::vector< THnD * > | fNodeDensity |
The generated N-dimensional variable space density for a given node. | |
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) | |
Float_t | fPrecision = 0.01 |
A precision used to select the node value with a given range defined as a fraction of the value. | |
TRandom3 * | fRandom = nullptr |
Internal process random generator. | |
std::vector< TVector2 > | fRanges |
The range of each of the variables used to create the PDF distribution. | |
TRestResponse * | fResponse = nullptr |
A pointer to the detector response. | |
Int_t | fSamples = 0 |
It introduces a fixed number of samples (if 0 it will take all available samples) | |
UInt_t | fSeed = 0 |
Seed used in random generator. | |
Double_t | fStepParameterValue = 0 |
It defines the increasing step for automatic parameter list generation. | |
std::vector< std::string > | fVariables |
A list with the branches that will be used to create the distribution space. | |
Protected Attributes inherited from TRestMetadata | |
std::string | configBuffer |
The buffer where the corresponding metadata section is stored. Filled only during Write() | |
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. | |
TiXmlElement * | fElement |
Saving the sectional element together with global element. | |
TiXmlElement * | fElementGlobal |
Saving the global element, to be passed to the resident class, if necessary. | |
Bool_t | fError = false |
It can be used as a way to identify that something went wrong using SetError method. | |
TString | fErrorMessage = "" |
A std::string to store an optional error message through method SetError. | |
TRestManager * | fHostmgr |
All metadata classes can be initialized and managed by TRestManager. | |
Int_t | fNErrors = 0 |
It counts the number of errors notified. | |
Int_t | fNWarnings = 0 |
It counts the number of warnings notified. | |
std::string | fSectionName |
Section name given in the constructor of the derived metadata class. | |
Bool_t | fStore |
This variable is used to determine if the metadata structure should be stored in the ROOT file. | |
std::map< std::string, std::string > | fVariables |
Saving a list of rml variables. name-value std::pair. | |
TRestStringOutput::REST_Verbose_Level | fVerboseLevel |
Verbose level used to print debug info. | |
Bool_t | fWarning = false |
It can be used as a way to identify that something went wrong using SetWarning method. | |
TString | fWarningMessage = "" |
It can be used as a way to identify that something went wrong using SetWarning method. | |
std::string | messageBuffer |
The buffer to store the output message through TRestStringOutput in this class. | |
endl_t | RESTendl |
Termination flag object for TRestStringOutput. | |
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.
cfgFileName | 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 TRestAxionMagneticField section inside the RML. |
Definition at line 117 of file TRestComponentDataSet.cxx.
|
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.
fPrecision will be used to include a thin range where to select the node values. The value defines the range with a fraction proportional to the parameter value.
Definition at line 416 of file TRestComponentDataSet.cxx.
|
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 379 of file TRestComponentDataSet.cxx.
|
overrideprotectedvirtual |
It will produce a histogram with the distribution defined using the variables and the weights for each of the parameter nodes.
fPrecision is used to define the active node
Implements TRestComponent.
Definition at line 220 of file TRestComponentDataSet.cxx.
|
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 55 of file TRestComponentDataSet.h.
|
private |
It defines the number of entries in the sample for each parameterization node (Initialized by the dataset)
Definition at line 39 of file TRestComponentDataSet.h.