REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
Public Member Functions | Protected Member Functions | Protected Attributes
TRestComponent Class Referenceabstract

Detailed Description

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

This class allows to ...


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

History of developments:

2023-December: First implementation of TRestComponent 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 38 of file TRestComponent.h.

#include <TRestComponent.h>

Inheritance diagram for TRestComponent:
TRestMetadata TRestAxionHelioscopeSignal TRestComponentDataSet TRestComponentFormula

Public Member Functions

 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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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...
 
TRestResponseGetResponse () 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. More...
 
std::vector< std::string > GetVariables () const
 
Bool_t HasNodes ()
 It returns true if any nodes have been defined. More...
 
void Initialize () override
 It initializes the random number. We avoid to define the section name here since we will never define a TRestComponent section in our RML file, since this class is pure virtual. It will be the inherited class the responsible to define the section name. More...
 
Bool_t Interpolation ()
 
void LoadResponse (const TRestResponse &resp)
 
void PrintMetadata () override
 Prints on screen the information about the metadata members of TRestAxionSolarFlux. More...
 
void PrintNodes ()
 It prints out on screen the values of the parametric node. More...
 
void PrintStatistics ()
 
virtual void RegenerateActiveNodeDensity ()
 
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. More...
 
Int_t SetActiveNode (Double_t node)
 It returns the position of the fParameterizationNodes element for the variable name given by argument. More...
 
Int_t SetActiveNode (Int_t n)
 
void SetPrecision (const Float_t &pr)
 
void SetSamples (Int_t samples)
 
 TRestComponent ()
 Default constructor. More...
 
 TRestComponent (const char *cfgFileName, const std::string &name="")
 Constructor loading data from a config file. More...
 
 ~TRestComponent ()
 Default destructor. More...
 

Protected Member Functions

virtual void FillHistograms ()=0
 
Int_t GetVariableIndex (std::string varName)
 It returns the position of the fVariable element for the variable name given by argument. More...
 
Bool_t HasDensity ()
 
void InitFromConfigFile () override
 It customizes the retrieval of XML data values of this class. More...
 
Bool_t ValidNode (Double_t node)
 It returns true if the node has been properly identified. More...
 

Protected Attributes

Int_t fActiveNode = -1
 It is used to define the node that will be accessed for rate retrieval. More...
 
TCanvas * fCanvas = nullptr
 A canvas for drawing the active node component. More...
 
Bool_t fExponential = false
 It true the parametric values automatically generated will grow exponentially. More...
 
Double_t fFirstParameterValue = 0
 It defines the first parametric node value in case of automatic parameter generation. More...
 
Bool_t fInterpolation = true
 Enables or disables the interpolation at TRestComponentDataSet::GetRawRate. More...
 
Double_t fLastParameterValue = 0
 It defines the upper limit for the automatic parametric node values generation. More...
 
std::string fNature = "unknown"
 It defines the component type (unknown/signal/background) More...
 
std::vector< Int_t > fNbins
 The number of bins in which we should divide each variable. More...
 
std::vector< THnD * > fNodeDensity
 The generated N-dimensional variable space density for a given node. More...
 
std::string fParameter = ""
 It is used to parameterize a set of distribution densities (e.g. WIMP or axion mass) More...
 
std::vector< Double_t > fParameterizationNodes
 It defines the nodes of the parameterization (Initialized by the dataset) More...
 
Float_t fPrecision = 0.01
 A precision used to select the node value with a given range defined as a fraction of the value. More...
 
TRandom3 * fRandom = nullptr
 Internal process random generator. More...
 
std::vector< TVector2 > fRanges
 The range of each of the variables used to create the PDF distribution. More...
 
TRestResponsefResponse = nullptr
 A pointer to the detector response. More...
 
Int_t fSamples = 0
 It introduces a fixed number of samples (if 0 it will take all available samples) More...
 
UInt_t fSeed = 0
 Seed used in random generator. More...
 
Double_t fStepParameterValue = 0
 It defines the increasing step for automatic parameter list generation. More...
 
std::vector< std::string > fVariables
 A list with the branches that will be used to create the distribution space. More...
 

Constructor & Destructor Documentation

◆ TRestComponent() [1/2]

TRestComponent::TRestComponent ( 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 69 of file TRestComponent.cxx.

◆ TRestComponent() [2/2]

TRestComponent::TRestComponent ( )

Default constructor.

Definition at line 53 of file TRestComponent.cxx.

◆ ~TRestComponent()

TRestComponent::~TRestComponent ( )

Default destructor.

Definition at line 78 of file TRestComponent.cxx.

Member Function Documentation

◆ DisableInterpolation()

void TRestComponent::DisableInterpolation ( )
inline

Definition at line 162 of file TRestComponent.h.

◆ DrawComponent()

TCanvas * TRestComponent::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.

The method will produce 1- or 2-dimensional histograms of the drawVariables given in the argument. A third scan variable must be provided in order to show the distribution slices along the scan variable.

The binScanSize argument can be used to define the binSize of the scanning variables.

Finding canvas division scheme

Definition at line 448 of file TRestComponent.cxx.

◆ EnableInterpolation()

void TRestComponent::EnableInterpolation ( )
inline

Definition at line 161 of file TRestComponent.h.

◆ FillHistograms()

virtual void TRestComponent::FillHistograms ( )
protectedpure virtual

◆ FindActiveNode()

Int_t TRestComponent::FindActiveNode ( Double_t  node)

It returns the position of the fParameterizationNodes element for the variable name given by argument.

Definition at line 719 of file TRestComponent.cxx.

◆ GetActiveNode()

Int_t TRestComponent::GetActiveNode ( )
inline

Definition at line 128 of file TRestComponent.h.

◆ GetActiveNodeValue()

Double_t TRestComponent::GetActiveNodeValue ( )
inline

Definition at line 129 of file TRestComponent.h.

◆ GetAllNodesIntegratedRate()

Double_t TRestComponent::GetAllNodesIntegratedRate ( )

This method returns the integrated total rate for all the nodes The result will be returned in s-1.

Definition at line 367 of file TRestComponent.cxx.

◆ GetBinCenter()

Double_t TRestComponent::GetBinCenter ( Int_t  nDim,
const Int_t  bin 
)

It returns the bin center of the given component dimension.

It required implementation since I did not find a method inside THnD. Surprising.

Definition at line 381 of file TRestComponent.cxx.

◆ GetDensity()

THnD * TRestComponent::GetDensity ( )
inline

Definition at line 166 of file TRestComponent.h.

◆ GetDensityForActiveNode()

THnD * TRestComponent::GetDensityForActiveNode ( )

Definition at line 777 of file TRestComponent.cxx.

◆ GetDensityForNode()

THnD * TRestComponent::GetDensityForNode ( Double_t  value)

Definition at line 760 of file TRestComponent.cxx.

◆ GetDimensions()

size_t TRestComponent::GetDimensions ( )
inline

Definition at line 126 of file TRestComponent.h.

◆ GetHistogram() [1/6]

TH1D * TRestComponent::GetHistogram ( Double_t  node,
std::string  varName 
)

It returns a 1-dimensional projected histogram for the variable names provided in the argument.

Definition at line 789 of file TRestComponent.cxx.

◆ GetHistogram() [2/6]

TH2D * TRestComponent::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.

Definition at line 813 of file TRestComponent.cxx.

◆ GetHistogram() [3/6]

TH3D * TRestComponent::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.

Definition at line 839 of file TRestComponent.cxx.

◆ GetHistogram() [4/6]

TH1D * TRestComponent::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.

Definition at line 799 of file TRestComponent.cxx.

◆ GetHistogram() [5/6]

TH2D * TRestComponent::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.

Definition at line 823 of file TRestComponent.cxx.

◆ GetHistogram() [6/6]

TH3D * TRestComponent::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.

Definition at line 850 of file TRestComponent.cxx.

◆ GetMaxRate()

Double_t TRestComponent::GetMaxRate ( )

This method returns the total rate for the node that has the highest contribution The result will be returned in s-1.

Definition at line 353 of file TRestComponent.cxx.

◆ GetMonteCarloDataFrame()

ROOT::RDF::RNode TRestComponent::GetMonteCarloDataFrame ( Int_t  N = 100)

Definition at line 403 of file TRestComponent.cxx.

◆ GetNature()

std::string TRestComponent::GetNature ( ) const
inline

Definition at line 123 of file TRestComponent.h.

◆ GetNbins()

std::vector< Int_t > TRestComponent::GetNbins ( ) const
inline

Definition at line 138 of file TRestComponent.h.

◆ GetNormalizedRate()

Double_t TRestComponent::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.

The rate returned by the TRestComponent::GetRawRate method will be normalized to the corresponding parameter space. Thus, if the parameter consists of 2-spatial dimensions and 1-energy dimension, the returned rate will be expressed in standard REST units as, s-1 mm-2 keV-1.

The returned value may be recovered back with the desired units using the REST_Units namespace.

component->GetNormalizedRate( {0,0,0} ) * units("cm^-2*keV^-1")

The response matrix (if defined) will be used to convolute the expected rate. The TRestResponse metadata class defines the variable where the response will be applied.

Definition at line 217 of file TRestComponent.cxx.

◆ GetParameterizationNodes()

std::vector< Double_t > TRestComponent::GetParameterizationNodes ( )
inline

Definition at line 134 of file TRestComponent.h.

◆ GetPrecision()

Float_t TRestComponent::GetPrecision ( )
inline

Definition at line 125 of file TRestComponent.h.

◆ GetRandom()

ROOT::RVecD TRestComponent::GetRandom ( )

Definition at line 385 of file TRestComponent.cxx.

◆ GetRanges()

std::vector< TVector2 > TRestComponent::GetRanges ( ) const
inline

Definition at line 137 of file TRestComponent.h.

◆ GetRate()

Double_t TRestComponent::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.

The response matrix (if defined) will be used to convolute the expected rate. The TRestResponse metadata class defines the variable where the response will be applied.

Definition at line 168 of file TRestComponent.cxx.

◆ GetRawRate()

Double_t TRestComponent::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.

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

If interpolation is enabled (which is disabled by default) the rate will be evaluated using interpolation with neighbour histogram cells.

Interpolation technique extracted from: https://math.stackexchange.com/questions/1342364/formula-for-n-dimensional-linear-interpolation

𝑓(𝑥0,𝑥1,𝑥2)=𝐴000(1−𝑥0)(1−𝑥1)(1−𝑥2)+𝐴001𝑥0(1−𝑥1)(1−𝑥2)+𝐴010(1−𝑥0)𝑥1(1−𝑥2)⋯+𝐴111𝑥0𝑥1𝑥

Definition at line 242 of file TRestComponent.cxx.

◆ GetResponse()

TRestResponse * TRestComponent::GetResponse ( ) const
inline

Definition at line 124 of file TRestComponent.h.

◆ GetSamples()

Int_t TRestComponent::GetSamples ( )
inline

Definition at line 127 of file TRestComponent.h.

◆ GetTotalRate()

Double_t TRestComponent::GetTotalRate ( )

This method integrates the rate to all the parameter space defined in the density function. The result will be returned in s-1.

Definition at line 327 of file TRestComponent.cxx.

◆ GetVariableIndex()

Int_t TRestComponent::GetVariableIndex ( std::string  varName)
protected

It returns the position of the fVariable element for the variable name given by argument.

Definition at line 149 of file TRestComponent.cxx.

◆ GetVariables()

std::vector< std::string > TRestComponent::GetVariables ( ) const
inline

Definition at line 136 of file TRestComponent.h.

◆ HasDensity()

Bool_t TRestComponent::HasDensity ( )
inlineprotected

Definition at line 97 of file TRestComponent.h.

◆ HasNodes()

Bool_t TRestComponent::HasNodes ( )
inline

It returns true if any nodes have been defined.

Definition at line 119 of file TRestComponent.h.

◆ InitFromConfigFile()

void TRestComponent::InitFromConfigFile ( )
overrideprotectedvirtual

It customizes the retrieval of XML data values of this class.

Reimplemented from TRestMetadata.

Reimplemented in TRestComponentDataSet, TRestComponentFormula, and TRestAxionHelioscopeSignal.

Definition at line 681 of file TRestComponent.cxx.

◆ Initialize()

void TRestComponent::Initialize ( )
overridevirtual

It initializes the random number. We avoid to define the section name here since we will never define a TRestComponent section in our RML file, since this class is pure virtual. It will be the inherited class the responsible to define the section name.

Avoiding double initialization

Reimplemented from TRestMetadata.

Reimplemented in TRestComponentDataSet, TRestComponentFormula, and TRestAxionHelioscopeSignal.

Definition at line 86 of file TRestComponent.cxx.

◆ Interpolation()

Bool_t TRestComponent::Interpolation ( )
inline

Definition at line 160 of file TRestComponent.h.

◆ LoadResponse()

void TRestComponent::LoadResponse ( const TRestResponse resp)

Definition at line 596 of file TRestComponent.cxx.

◆ PrintMetadata()

void TRestComponent::PrintMetadata ( )
overridevirtual

Prints on screen the information about the metadata members of TRestAxionSolarFlux.

Reimplemented from TRestMetadata.

Reimplemented in TRestComponentDataSet, TRestComponentFormula, and TRestAxionHelioscopeSignal.

Definition at line 611 of file TRestComponent.cxx.

◆ PrintNodes()

void TRestComponent::PrintNodes ( )

It prints out on screen the values of the parametric node.

Definition at line 672 of file TRestComponent.cxx.

◆ RegenerateActiveNodeDensity()

virtual void TRestComponent::RegenerateActiveNodeDensity ( )
inlinevirtual

Reimplemented in TRestComponentDataSet.

Definition at line 121 of file TRestComponent.h.

◆ RegenerateHistograms()

void TRestComponent::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.

fPrecision is used to define the active node

Definition at line 114 of file TRestComponent.cxx.

◆ RegenerateParametricNodes()

void TRestComponent::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.

Definition at line 126 of file TRestComponent.cxx.

◆ SetActiveNode() [1/2]

Int_t TRestComponent::SetActiveNode ( Double_t  node)

It returns the position of the fParameterizationNodes element for the variable name given by argument.

Definition at line 738 of file TRestComponent.cxx.

◆ SetActiveNode() [2/2]

Int_t TRestComponent::SetActiveNode ( Int_t  n)
inline

Definition at line 153 of file TRestComponent.h.

◆ SetPrecision()

void TRestComponent::SetPrecision ( const Float_t &  pr)
inline

Definition at line 149 of file TRestComponent.h.

◆ SetSamples()

void TRestComponent::SetSamples ( Int_t  samples)
inline

Definition at line 158 of file TRestComponent.h.

◆ ValidNode()

Bool_t TRestComponent::ValidNode ( Double_t  node)
inlineprotected

It returns true if the node has been properly identified.

Definition at line 100 of file TRestComponent.h.

Field Documentation

◆ fActiveNode

Int_t TRestComponent::fActiveNode = -1
protected

It is used to define the node that will be accessed for rate retrieval.

Definition at line 71 of file TRestComponent.h.

◆ fCanvas

TCanvas* TRestComponent::fCanvas = nullptr
protected

A canvas for drawing the active node component.

Definition at line 95 of file TRestComponent.h.

◆ fExponential

Bool_t TRestComponent::fExponential = false
protected

It true the parametric values automatically generated will grow exponentially.

Definition at line 68 of file TRestComponent.h.

◆ fFirstParameterValue

Double_t TRestComponent::fFirstParameterValue = 0
protected

It defines the first parametric node value in case of automatic parameter generation.

Definition at line 59 of file TRestComponent.h.

◆ fInterpolation

Bool_t TRestComponent::fInterpolation = true
protected

Enables or disables the interpolation at TRestComponentDataSet::GetRawRate.

Definition at line 80 of file TRestComponent.h.

◆ fLastParameterValue

Double_t TRestComponent::fLastParameterValue = 0
protected

It defines the upper limit for the automatic parametric node values generation.

Definition at line 62 of file TRestComponent.h.

◆ fNature

std::string TRestComponent::fNature = "unknown"
protected

It defines the component type (unknown/signal/background)

Definition at line 41 of file TRestComponent.h.

◆ fNbins

std::vector<Int_t> TRestComponent::fNbins
protected

The number of bins in which we should divide each variable.

Definition at line 50 of file TRestComponent.h.

◆ fNodeDensity

std::vector<THnD*> TRestComponent::fNodeDensity
protected

The generated N-dimensional variable space density for a given node.

Definition at line 74 of file TRestComponent.h.

◆ fParameter

std::string TRestComponent::fParameter = ""
protected

It is used to parameterize a set of distribution densities (e.g. WIMP or axion mass)

Definition at line 53 of file TRestComponent.h.

◆ fParameterizationNodes

std::vector<Double_t> TRestComponent::fParameterizationNodes
protected

It defines the nodes of the parameterization (Initialized by the dataset)

Definition at line 56 of file TRestComponent.h.

◆ fPrecision

Float_t TRestComponent::fPrecision = 0.01
protected

A precision used to select the node value with a given range defined as a fraction of the value.

Definition at line 86 of file TRestComponent.h.

◆ fRandom

TRandom3* TRestComponent::fRandom = nullptr
protected

Internal process random generator.

Definition at line 89 of file TRestComponent.h.

◆ fRanges

std::vector<TVector2> TRestComponent::fRanges
protected

The range of each of the variables used to create the PDF distribution.

Definition at line 47 of file TRestComponent.h.

◆ fResponse

TRestResponse* TRestComponent::fResponse = nullptr
protected

A pointer to the detector response.

Definition at line 83 of file TRestComponent.h.

◆ fSamples

Int_t TRestComponent::fSamples = 0
protected

It introduces a fixed number of samples (if 0 it will take all available samples)

Definition at line 77 of file TRestComponent.h.

◆ fSeed

UInt_t TRestComponent::fSeed = 0
protected

Seed used in random generator.

Definition at line 92 of file TRestComponent.h.

◆ fStepParameterValue

Double_t TRestComponent::fStepParameterValue = 0
protected

It defines the increasing step for automatic parameter list generation.

Definition at line 65 of file TRestComponent.h.

◆ fVariables

std::vector<std::string> TRestComponent::fVariables
protected

A list with the branches that will be used to create the distribution space.

Definition at line 44 of file TRestComponent.h.


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