English Français

Documentation / Developer's manual

Available modules

Calibration,  DataServer,  Launcher,  MetaModelOptim,  Modeler,  Optimizer,  ReLauncher,  Reliability,  ReOptimizer,  Sampler,  Sensitivity,  UncertModeler,  XmlProblem,   Uranie / Sensitivity: URANIE::Sensitivity::TFiniteDifferences Class Reference
Uranie / Sensitivity v4.9.0
/* @license-end */
URANIE::Sensitivity::TFiniteDifferences Class Reference

Description of the class TFiniteDifferences. More...

#include <TFiniteDifferences.h>

Inheritance diagram for URANIE::Sensitivity::TFiniteDifferences:
Collaboration diagram for URANIE::Sensitivity::TFiniteDifferences:

Public Member Functions

Constructor and Destructor
 TFiniteDifferences ()
 Default constructor.
 
 TFiniteDifferences (TDataServer *tdsNominal, void(*fcn)(Double_t *, Double_t *), TString sensitiveAtt, TString outputAtt, TString samplingOption="steps=1%")
 Constructor with the TDataServer and function.
 
 TFiniteDifferences (TDataServer *tdsNominal, const char *fcn, TString sensitiveAtt, TString outputAtt, TString samplingOption)
 Constructor with the TDataServer and function name.
 
 TFiniteDifferences (TDataServer *tdsNominal, URANIE::Launcher::TCode *fcode, TString sensitiveAtt="", TString samplingOption="steps=1%")
 Constructor with the TDataServer and code.
 
 TFiniteDifferences (TDataServer *tdsNominal, URANIE::Relauncher::TRun *run, TString sensitiveAtt="", TString samplingOption="steps=1%")
 Constructor with the TDataServer and TRun.
 
 TFiniteDifferences (TDataServer *tdsNominal, TString inputAtt, TString outputAtt, TString sensitiveAtt=TString(""))
 Constructor with a loaded data server.
 
virtual ~TFiniteDifferences ()
 Default destructor.
 
 TFiniteDifferences ()
 Default constructor.
 
 TFiniteDifferences (TDataServer *tdsNominal, void *fcn, TString sensitiveAtt, TString ranges, TString inputAtt, TString outputAtt)
 Constructor with the TDataServer and function.
 
 TFiniteDifferences (TDataServer *tdsNominal, URANIE::Launcher::TCode *fcode, TString sensitiveAtt, TString ranges)
 Constructor with the TDataServer and code.
 
 TFiniteDifferences (TDataServer *tdsNominal, TString sensitiveAtt, TString inputAtt, TString outputAtt)
 Constructor with a loaded data server.
 
virtual ~TFiniteDifferences ()
 Default destructor.
 
Setting and Getting attributs
TMatrixD getSensitivityMatrix ()
 Returns the sensitivity matrix.
 
TDataServer * getDataServer ()
 Returns a pointer to the internal data server.
 
TMatrixD getSensitivityMatrix ()
 Returns the sensitivity matrix.
 
TDataServer * getOATDataServer ()
 Returns a pointer to the internal data server.
 
Generation of the sample
virtual void generateSample (Option_t *option="")
 Generates the OAT sampling.
 
virtual void generateSample (Option_t *option="")
 Generates the OAT sampling.
 
Compute the indexes
void evaluateIndexes (Option_t *option="")
 Compute the sensitivity matrix.
 
void preTreatment ()
 Resize the matrix results at the very beginning of the algo to the number of output/input.
 
void computeIndexes (Option_t *option="")
 Compute the sensitivity matrix.
 
Printing Log
virtual void printLog ()
 
virtual void printLog ()
 
- Public Member Functions inherited from URANIE::Sensitivity::TSensitivity
 TSensitivity ()
 Default constructor.
 
 TSensitivity (URANIE::DataServer::TDataServer *tds, const char *fcn, Int_t ns, const char *varexpinput="", const char *varexpoutput="", Option_t *option="")
 Default constructor with the name of a function.
 
 TSensitivity (URANIE::DataServer::TDataServer *tds, void(*fcn)(Double_t *, Double_t *), const char *varexpinput, const char *varexpoutput, Int_t ns, Option_t *option="")
 
 TSensitivity (URANIE::DataServer::TDataServer *tds, const char *varexpinput, const char *varexpoutput, Option_t *option="")
 Default constructor.
 
 TSensitivity (URANIE::DataServer::TDataServer *tds, URANIE::Launcher::TCode *code, Int_t ns, Option_t *option="")
 Default constructor with TCode arg.
 
 TSensitivity (URANIE::DataServer::TDataServer *tds, URANIE::Relauncher::TRun *run, Int_t ns, Option_t *option="")
 Default constructor with TRun arg.
 
virtual ~TSensitivity ()
 Default destructor.
 
Int_t getID ()
 
virtual TTree * getResultTuple (bool commonresulttuple=true)
 Get the result ntuple (default parameter unused but for Morris method)
 
double getValue (const char *sorder="", const char *sinputname="", const char *sselect="")
 
vector< int > * getAttributeElements (string str)
 
void setFunction (void(*fct)(Double_t *, Double_t *), Int_t nx=-1, Int_t ny=1)
 
TString getFunctionName ()
 
void setSeed (UInt_t nval)
 
UInt_t getSeed ()
 
virtual void setMethodName (const char *str)
 Set the Method name.
 
const char * getMethodName ()
 Get the method name.
 
Bool_t getNoIntermediateSaved ()
 Get the noIntermediateSaved flag.
 
const char * getIteratorName ()
 Get the name of the iterator attribut of the method.
 
void setSensitivityIteratorName (const char *str)
 Set the iterator name devoted to compute sensitivity indexes.
 
void setTimeName (TString sname)
 Set the name of the time attribute (only one)
 
TString getTimeName ()
 Get the name of the time attribute.
 
virtual void setDrawProgressBar (Bool_t bbool=kTRUE)
 Set the "draw progress bar" flag.
 
void setUsingErrors (bool thebool)
 Set the "using error results anyway" option.
 
Bool_t getDrawProgressBar ()
 Get the clean flag.
 
Bool_t isInputCorrelated ()
 
TMatrixD getMatrixInputCorrelation ()
 
Int_t getNInput ()
 Get the number of input attributes.
 
Int_t getNOutput ()
 Get the number of output attributes.
 
void setInputCorrelationMatrix (TMatrixD Corr)
 
virtual void parseOption (Option_t *option="")
 Read the possible options.
 
void checkOutputRequested (string attlist, bool fromoption=false)
 Check the output list requested by the user.
 
void computeIndexes (Option_t *option="")
 Compute the Sensitivity Indexes.
 
void fillIndex (const char *sinputname, const char *sorder, Double_t dval, const char *algo="", Double_t dvalCILower=-1.0, Double_t dvalCIUpper=-1.0)
 Method to fill in the tree the value of Sensitivity indexes for an input attribute.
 
virtual void createTuple (Option_t *option="")
 
virtual void drawIndexes (TString sTitre, const char *select="", Option_t *option="")
 Draws the indexes.
 
virtual void setLog ()
 
void unsetLog ()
 
void changeLog ()
 
Bool_t getLog ()
 
virtual void printLog (Option_t *option="")
 
void setNLauncher (ELauncher codeLauncher)
 

Protected Attributes

TMatrixD _sMatrix
 The sensitivity matrix.
 
TString _sSensitiveAtt
 The list of sensitive attributes.
 
TString _sSamplingOption
 the options for the OAT sampling
 
Int_t _nbIn
 the number of sensitive inputs
 
Int_t _nbAux
 the number of non sensitive inputs
 
- Protected Attributes inherited from URANIE::Sensitivity::TSensitivity
Char_t _sOutputAttribute [MAXLENGTHSTRING]
 The name of the output attribute.
 
Char_t _sInputAttribute [MAXLENGTHSTRING]
 The name of the input attribute.
 
Char_t _sOrder [MAXLENGTHSTRING]
 The order of sensitivity indexes.
 
Char_t _sMethod [MAXLENGTHSTRING]
 The name of the method.
 
Char_t _sAlgorithm [MAXLENGTHSTRING]
 The name of the algorithm to compute the index.
 
Double_t _valSobolCrt
 The value of sensitivity indexes.
 
Double_t _valSobolCILower
 The value of lower Condidence Interval (95)
 
Double_t _valSobolCIUpper
 The value of upper Condidence Interval (95)
 
TMatrixD _minputCorr
 Input correlation matrix if sample needs to be correlated.
 
Bool_t _bisInputCorrelated
 State whether the input correlation matrix is set.
 
Bool_t _bgoingThroughError
 State whether the error must not block the computation.
 

Private Attributes

URANIE::DataServer::TDataServer * _tdsOAT
 a pointer to the data server containing the OAT sampling
 
TObjArray * _lRanges
 the list of ranges of the sensitives attributes
 
TObjArray * _lSensitiveAtt
 The list of sensitive attributes.
 
TObjArray * _lInputs
 the full list of input variables
 
TObjArray * _lOutputs
 the full list of outputs
 
Bool_t _generateData
 if TRUE, one need to generate the sampling
 
URANIE::Launcher::TLauncher * _codeLauncher
 a pointer to a code launcher
 
URANIE::Launcher::TLauncherFunction * _functionLauncher
 a pointer to a function launcher
 
Int_t _nbOut
 the number of outputs
 

Additional Inherited Members

- Public Types inherited from URANIE::Sensitivity::TSensitivity
enum  ELauncher {
  kCode , kCodeRemote , kFunction , kRun ,
  kUnknown
}
 
- Public Attributes inherited from URANIE::Sensitivity::TSensitivity
URANIE::DataServer::TDataServer * _tds
 Pointeur vers un TDS.
 
TList * _listOfInputAttributes
 List of the input branches.
 
TList * _listOfOutputAttributes
 List of the input branches.
 
TString _sTimeAttribute
 The name of the Time attribute.
 
Int_t _nS
 The number of simulation or other information depend on the used method.
 
Int_t _nX
 Dimension of the input.
 
UInt_t _nY
 Dimension of the target.
 
UInt_t _nElY
 Number of element for one selected output.
 
Int_t _nbOut
 Total number of Output to be considered.
 
Int_t _iOut
 counter for output
 
unsigned int _iy
 iterator over number of element
 
unsigned int _iely
 iterator over number of element
 
ELauncher _nLauncher
 The type of launcher.
 
TString _sFunctionName
 The Name of the evaluatuor.
 
URANIE::Launcher::TCode * _code
 The tcode.
 
URANIE::Relauncher::TRun * _run
 
TObjArray * _drawingGarbageCollector
 Garbage collector for prints.
 
Int_t _nSeed
 The seed of the random generator.
 
Bool_t _bChosenOutputs
 Fact that the input list is provided or not.
 
Bool_t _blog
 Boolean for edit the log.
 
Bool_t _bdrawProgressBar
 Boolean to know if the progress bar has to be drawn.
 
Bool_t _bnoIntermediateSaved
 Boolean to know if the progress bar has to be drawn.
 
TString _sIteratorName
 The specific iterator attribute for the method.
 
TString _sMethodName
 The method name.
 
TString _sSelectedOutput
 The output.
 
TString _sSelectedInput
 The input.
 
map< string, unsigned int > _mAttributeSize
 Map of size of element for attribute;.
 
map< string, vector< int > > _mAttributeElements
 Map of Elements number to run (if vector subselection is requested)
 
vector< string > _vOutputNames
 Name of the output.
 
TCanvas * _canvas
 Canvas object to deal with.
 
void(* _pFunction )(double *, double *)
 
TTree * _ntresult
 The TTree of results.
 
- Protected Member Functions inherited from URANIE::Sensitivity::TSensitivity
void checkCanvasCreation (bool newcan)
 Create a canvas if needed.
 
void drawIndexesHistogram (TString sTitre, const char *select="", Option_t *option="")
 Draws indexes with an histogram.
 
void drawIndexesPie (TString sTitre, const char *select="", Option_t *option="")
 Draws indexes with an pie chart.
 
virtual void postTreatment ()
 PostTreatment for every output.
 
void setNoIntermediateSaved (Bool_t bbool=kTRUE)
 Set the "only final file" flag.
 

Detailed Description

Description of the class TFiniteDifferences.

The finite differences method of sensitivity analysis is among the simplest ones. The resulting sensitivity index of an input variable $ X $ with respect to an output $ Y $ is an estimation of $ \frac{\partial Y}{\partial X} $.

In this implementation of the method, the estimation is obtained by applying an OAT design of experiments (cf. Sampler::TOATSampling) to the studied model. Thus, for each input $ X $ varying of $ \pm\delta x $, one can compute:

  • $ \frac{\partial Y}{\partial X} \approx \frac{Y(X+\delta x) - Y(X-\delta x)}{2*\delta x} $

To use the class TFiniteDifferences, one needs to give it an empty TDataServer containing a list of input attributes with default values, and a model. The user will then call the computeIndexes() method which will:

  • generate the OAT sampling,
  • call the model on it,
  • compute the sensitivity indexes,
  • store them in a sensitivity matrix.

This matrix can be retrieved using the method getSensitivityMatrix() .

(Nicolas Gilardi 2011.06.17)

The finite differences method of sensitivity analysis is among the simplest ones. The resulting sensitivity index of an input variable $ x \in X $ with respect to an output $ y = f(X) $ is an estimation of $ \frac{\partial f}{\partial x} $ around a nominal value x_{nom}.

In this implementation of the method, the estimation is obtained by applying an OAT design of experiments (cf. Sampler::TOATSampling2) to the studied model. For each input's nominal value $ x_{nom} $, we define a range $ 2 * \pm\delta_x $ and the values:

  • $ x_{sup} = x_{nom} + \pm\delta_x $
  • $ x_{inf} = x_{nom} - \pm\delta_x $

Then we can compute:

  • $ d_1 = \frac{f(x_{norm}) - f(x_{inf})}{\pm\delta_x} $
  • $ d_2 = \frac{f(x_{sup}) - f(x_{norm})}{\pm\delta_x} $

We can then give an estimate of the partial derivative around $ x_{nom} $ as:

  • $ \frac{\partial f}{\partial x_{|x = x_{nom}}} \approx d_x = \frac{d1+d2}{2} = \frac{f(x_{sup}) - f(x_{inf})}{2 * \pm\delta_x} $

An indicator of the "linearity" of the function $ f $ around $ x_{nom} $ is given by:

  • $ e_x = |d1-d2| = \frac{|f(x_{sup}) + f(x_{inf}) - 2 * f(x_{nom})|}{\pm\delta_x} $

If $ y $ varies linearly around $ x_{nom} $, it is expected that $ e_x $ will be small compared to $ d_x $. However, this indicator only has a meaning if the function f is "smooth" on the interval $ [x_{inf},x_{sup}] $, and if $ d_x  \neq 0 $.

To use the class TFiniteDifferences, one needs to give it a TDataServer containing a list nominal values, and a model to compute the values of the outputs. The user will then call the computeIndexes() method which will:

  • generate the OAT sampling,
  • call the model on it,
  • compute the sensitivity indexes,
  • store them in a sensitivity matrix.

This matrix can be retrieved using the method getSensitivityMatrix() .

(Nicolas Gilardi 2012.10.31)

Constructor & Destructor Documentation

◆ TFiniteDifferences() [1/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( )

Default constructor.

Referenced by ClassImp().

◆ TFiniteDifferences() [2/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
void(*)(Double_t *, Double_t *)  fcn,
TString  sensitiveAtt,
TString  outputAtt,
TString  samplingOption = "steps=1%" 
)

Constructor with the TDataServer and function.

This constructor is used when the model is a function.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *) an empty dataserver containing the input variables. Each attribute representing an input variables must have a default value set. It will be used as the nominal value.
fcn(void *) The function to analyse
outputAtt(TString) this is a list of attribute names separated by colons. They represent all the responses of the problem. They must refer to existing attributes in the "tdsNominal".
sensitiveAtt(TString) A list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the attributes are taken into account (Default = "").
samplingOption(TString) The options for the OAT sampling (Default = "steps=1%")

◆ TFiniteDifferences() [3/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
const char *  fcn,
TString  sensitiveAtt,
TString  outputAtt,
TString  samplingOption 
)

Constructor with the TDataServer and function name.

This constructor is used when the model is a function.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *) an empty dataserver containing the input variables. Each attribute representing an input variables must have a default value set. It will be used as the nominal value.
constchar *fcn The function to analyse
outputAtt(TString) this is a list of attribute names separated by colons. They represent all the responses of the problem. They must refer to existing attributes in the "tdsNominal".
sensitiveAtt(TString) A list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the attributes are taken into account (Default = "").
samplingOption(TString) The options for the OAT sampling (Default = "steps=1%")

◆ TFiniteDifferences() [4/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
URANIE::Launcher::TCode *  fcode,
TString  sensitiveAtt = "",
TString  samplingOption = "steps=1%" 
)

Constructor with the TDataServer and code.

This constructor is used when the model is an external code.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *) an empty dataserver containing the input variables. Each attribute representing an input variables must have a default value set. It will be used as the nominal value.
fcode(URANIE::Launcher::TCode *) The code to analyse
sensitiveAtt(TString) A list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the attributes are taken into account (Default = "").
samplingOption(TString) The options for the OAT sampling (Default = "steps=1%")

◆ TFiniteDifferences() [5/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
URANIE::Relauncher::TRun *  run,
TString  sensitiveAtt = "",
TString  samplingOption = "steps=1%" 
)

Constructor with the TDataServer and TRun.

This constructor is used when the model is a TRun/TEval model

Parameters
tdsNominal(URANIE::DataServer::TDataServer *) an empty dataserver containing the input variables. Each attribute representing an input variables must have a default value set. It will be used as the nominal value.
fcode(URANIE::Relauncher::TRun *) The TRun to use for analyse
sensitiveAtt(TString) A list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the attributes are taken into account (Default = "").
samplingOption(TString) The options for the OAT sampling (Default = "steps=1%")

◆ TFiniteDifferences() [6/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
TString  inputAtt,
TString  outputAtt,
TString  sensitiveAtt = TString("") 
)

Constructor with a loaded data server.

This constructor is used when the user already have a dataset.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *) this TDS contains the input and output values necessary for the finite differences calculation. It must also contain the attributes "__nominal_set__" and "__modified_att__" which are necessary to know which attribute is modified.
inputAtt(TString) this is a list of attribute names separated by colons. They represent all the inputs of the problem. They must refer to existing attributes in the "tdsNominal".
outputAtt(TString) this is a list of attribute names separated by colons. They represent all the responses of the problem. They must refer to existing attributes in the "tdsNominal".
sensitiveAtt(TString) A list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the input attributes are taken into account (Default = "").
Warning
When using this constructor with CINT, do not forget to EXPLICITELY pass TString objects for "listOfInputs" and "listOfOutputs" parameters. Otherwise, you may end up calling another constructor !

◆ ~TFiniteDifferences() [1/2]

virtual URANIE::Sensitivity::TFiniteDifferences::~TFiniteDifferences ( )
virtual

Default destructor.

Referenced by ClassImp().

◆ TFiniteDifferences() [7/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( )

Default constructor.

◆ TFiniteDifferences() [8/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
void *  fcn,
TString  sensitiveAtt,
TString  ranges,
TString  inputAtt,
TString  outputAtt 
)

Constructor with the TDataServer and function.

This constructor is used when the model is a function.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *): the dataserver containing the nominal values of the input variables.
fcn(void *): the function to analyse.
sensitiveAtt(TString): a list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the attributes are taken into account.
ranges(TString): a list of range values or range attribute names. It must have either one or as many element as sensitiveAtt. Each numerical value of the list is interpreted as the range of the OAT sampling. Each name is interpreted as the one of the attribute refering to this range in the data server. If a "%" character follows the value or name, the range will be a percentage of the nominal value. If only one value (or attribute name) is given, the corresponding range will be applied to all sensitive attributes. Example: sensitiveAtt = "x1:x2:x3:x4", ranges = "0.33:5%:rx3:rx4%":
  • range for variable x1 is 0.33,
  • range for variable x2 is 5% of the nominal value of x2,
  • range for variable x3 is the nominal value of attribute rx3,
  • range for variable x4 is the nominal value of attribute rx4 interpeted as a percentage of the nominal value of x4, i.e. if rx4 = 0.1, range for x4 is 0.1% of x4.
inputAtt(TString): a list of attribute names separated by colons. They represent all the inputs of the problem. They must refer to existing attributes in the "tdsNominal". If the string is equal to "" or "*", all the attributes are taken into account.
outputAtt(TString): a list of names separated by colons. They represent all the responses of the problem. Attributes with these names will be added to the data server.

◆ TFiniteDifferences() [9/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
URANIE::Launcher::TCode *  fcode,
TString  sensitiveAtt,
TString  ranges 
)

Constructor with the TDataServer and code.

This constructor is used when the model is an external code.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *):the dataserver containing the nominal values of the input variables.
fcode(URANIE::Launcher::TCode *): the code to analyse.
sensitiveAtt(TString): a list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the attributes are taken into account.
ranges(TString): a list of range values or range attribute names. It must have either one or as many element as sensitiveAtt. Each numerical value of the list is interpreted as the range of the OAT sampling. Each name is interpreted as the one of the attribute refering to this range in the data server. If a "%" character follows the value or name, the range will be a percentage of the nominal value. If only one value (or attribute name) is given, the corresponding range will be applied to all sensitive attributes. Example: sensitiveAtt = "x1:x2:x3:x4", ranges = "0.33:5%:rx3:rx4%":
  • range for variable x1 is 0.33,
  • range for variable x2 is 5% of the nominal value of x2,
  • range for variable x3 is the nominal value of attribute rx3,
  • range for variable x4 is the nominal value of attribute rx4 interpeted as a percentage of the nominal value of x4, i.e. if rx4 = 0.1, range for x4 is 0.1% of x4.

◆ TFiniteDifferences() [10/10]

URANIE::Sensitivity::TFiniteDifferences::TFiniteDifferences ( TDataServer *  tdsNominal,
TString  sensitiveAtt,
TString  inputAtt,
TString  outputAtt 
)

Constructor with a loaded data server.

This constructor is used when the user already have a dataset.

Parameters
tdsNominal(URANIE::DataServer::TDataServer *): this TDS contains the input and output values necessary for the finite differences calculation. It must also contain the attributes "__nominal_set__" and "__modified_att__" which are necessary to know which attribute is modified.
sensitiveAtt(TString): a list of attribute names separated by colons. These attributes are the one that will be taken into account for the sensitivity analysis. If the string is equal to "" or "*", all the input attributes are taken into account.
inputAtt(TString): a list of attribute names separated by colons. They represent all the inputs of the problem. They must refer to existing attributes in the "tdsNominal".
outputAtt(TString): a list of attribute names separated by colons. They represent all the responses of the problem. They must refer to existing attributes in the "tdsNominal".
Warning
When using this constructor with CINT, do not forget to EXPLICITELY pass TString objects for "inputAtt" and "outputAtt" parameters. Otherwise, you may end up calling another constructor !

◆ ~TFiniteDifferences() [2/2]

virtual URANIE::Sensitivity::TFiniteDifferences::~TFiniteDifferences ( )
virtual

Default destructor.

Member Function Documentation

◆ computeIndexes()

void URANIE::Sensitivity::TFiniteDifferences::computeIndexes ( Option_t *  option = "")

Compute the sensitivity matrix.

This function construct the sensitivity matrix from the OAT design of experiment. The resulting matrix can be retrieved using the getSensitivityMatrix() function.

Parameters
option(Option_t *) just in case we need option in the future... (Default = "").

Referenced by ClassImp().

◆ evaluateIndexes()

void URANIE::Sensitivity::TFiniteDifferences::evaluateIndexes ( Option_t *  option = "")
virtual

Compute the sensitivity matrix.

This function construct the sensitivity matrix from the OAT design of experiment. The resulting matrix can be retrieved using the getSensitivityMatrix() function.

Parameters
option(Option_t *) just in case we need option in the future... (Default = "").

Implements URANIE::Sensitivity::TSensitivity.

Referenced by ClassImp().

◆ generateSample() [1/2]

virtual void URANIE::Sensitivity::TFiniteDifferences::generateSample ( Option_t *  option = "")
virtual

Generates the OAT sampling.

This function fills a TDS with appropriate variables, creates and uses a TOATSampling to generate the design of experiment.

Parameters
option(Option_t *) just in case we need option in the future... (Default = "").

Implements URANIE::Sensitivity::TSensitivity.

Reimplemented in URANIE::Sensitivity::TDGSM.

Referenced by ClassImp().

◆ generateSample() [2/2]

virtual void URANIE::Sensitivity::TFiniteDifferences::generateSample ( Option_t *  option = "")
virtual

Generates the OAT sampling.

This function fills a TDS with appropriate variables, creates and uses a TOATSampling to generate the design of experiment.

Parameters
option(Option_t *) just in case we need option in the future... (Default = "").

Implements URANIE::Sensitivity::TSensitivity.

Reimplemented in URANIE::Sensitivity::TDGSM.

◆ getDataServer()

TDataServer * URANIE::Sensitivity::TFiniteDifferences::getDataServer ( )
inline

Returns a pointer to the internal data server.

References URANIE::Sensitivity::TSensitivity::_tds.

◆ getOATDataServer()

TDataServer * URANIE::Sensitivity::TFiniteDifferences::getOATDataServer ( )
inline

Returns a pointer to the internal data server.

References _tdsOAT.

◆ getSensitivityMatrix() [1/2]

TMatrixD URANIE::Sensitivity::TFiniteDifferences::getSensitivityMatrix ( )
inline

Returns the sensitivity matrix.

References _sMatrix.

◆ getSensitivityMatrix() [2/2]

TMatrixD URANIE::Sensitivity::TFiniteDifferences::getSensitivityMatrix ( )
inline

Returns the sensitivity matrix.

References _sMatrix.

◆ preTreatment()

void URANIE::Sensitivity::TFiniteDifferences::preTreatment ( )
virtual

Resize the matrix results at the very beginning of the algo to the number of output/input.

One should wait this moment to know the number of output as it depends on the presence of vectors as well as the newoption "output=" implemented in TSensitivity::computeIndexes()

Reimplemented from URANIE::Sensitivity::TSensitivity.

Referenced by ClassImp().

◆ printLog() [1/2]

virtual void URANIE::Sensitivity::TFiniteDifferences::printLog ( )
virtual

Reimplemented in URANIE::Sensitivity::TDGSM.

Referenced by ClassImp().

◆ printLog() [2/2]

virtual void URANIE::Sensitivity::TFiniteDifferences::printLog ( )
virtual

Reimplemented in URANIE::Sensitivity::TDGSM.

Member Data Documentation

◆ _codeLauncher

URANIE::Launcher::TLauncher* URANIE::Sensitivity::TFiniteDifferences::_codeLauncher
private

a pointer to a code launcher

Referenced by ClassImp().

◆ _functionLauncher

URANIE::Launcher::TLauncherFunction* URANIE::Sensitivity::TFiniteDifferences::_functionLauncher
private

a pointer to a function launcher

Referenced by ClassImp().

◆ _generateData

Bool_t URANIE::Sensitivity::TFiniteDifferences::_generateData
private

if TRUE, one need to generate the sampling

Referenced by ClassImp().

◆ _lInputs

TObjArray* URANIE::Sensitivity::TFiniteDifferences::_lInputs
private

the full list of input variables

◆ _lOutputs

TObjArray* URANIE::Sensitivity::TFiniteDifferences::_lOutputs
private

the full list of outputs

◆ _lRanges

TObjArray* URANIE::Sensitivity::TFiniteDifferences::_lRanges
private

the list of ranges of the sensitives attributes

Referenced by ClassImp().

◆ _lSensitiveAtt

TObjArray* URANIE::Sensitivity::TFiniteDifferences::_lSensitiveAtt
private

The list of sensitive attributes.

Referenced by ClassImp().

◆ _nbAux

Int_t URANIE::Sensitivity::TFiniteDifferences::_nbAux
protected

the number of non sensitive inputs

Referenced by ClassImp(), and ClassImp().

◆ _nbIn

Int_t URANIE::Sensitivity::TFiniteDifferences::_nbIn
protected

the number of sensitive inputs

Referenced by ClassImp(), and ClassImp().

◆ _nbOut

Int_t URANIE::Sensitivity::TFiniteDifferences::_nbOut
private

the number of outputs

Referenced by ClassImp(), and ClassImp().

◆ _sMatrix

TMatrixD URANIE::Sensitivity::TFiniteDifferences::_sMatrix
protected

The sensitivity matrix.

Referenced by ClassImp(), ClassImp(), and getSensitivityMatrix().

◆ _sSamplingOption

TString URANIE::Sensitivity::TFiniteDifferences::_sSamplingOption
protected

the options for the OAT sampling

Referenced by ClassImp(), and ClassImp().

◆ _sSensitiveAtt

TString URANIE::Sensitivity::TFiniteDifferences::_sSensitiveAtt
protected

The list of sensitive attributes.

Referenced by ClassImp().

◆ _tdsOAT

URANIE::DataServer::TDataServer* URANIE::Sensitivity::TFiniteDifferences::_tdsOAT
private

a pointer to the data server containing the OAT sampling

Referenced by ClassImp(), and getOATDataServer().