15 #ifndef TSMINIMIZATIONFUNCTION_H_
16 #define TSMINIMIZATIONFUNCTION_H_
29 #include "TSArgList.h"
30 #include "TSParamList.h"
32 #include "TSDataBin.h"
33 #include "TSFuncModel.h"
57 ROOT::Math::IMultiGenFunction * Clone()
const {
64 virtual double Compute()
const;
66 int GetDataDim()
const {
return fNDimData;}
67 TObject* GetDataHistogram()
const {
return fDataHisto;}
68 TTree* GetHistoryTree()
const {
return fHistory;}
69 int GetNumOfCalls()
const {
return fNCalls;}
70 const TSFuncModel* GetModel()
const {
return fModel;}
72 const TSVariable* GetVariableX()
const {
return fVariableX;}
73 const TSVariable* GetVariableY()
const {
return fVariableY;}
75 bool HasModel()
const {
return fHasModel;}
76 bool HasData()
const {
return fHasData;}
80 virtual unsigned int NDim()
const {
return fNDim;}
81 virtual unsigned int NPar()
const {
return fNPars;}
83 void ResetNumOfCalls()
const {fNCalls=0;}
85 void SaveHistory(
bool b);
86 bool SaveHistoryIsSet()
const {
return fSaveHistory;}
88 int SetBinnedData(TObject &histo_data);
91 TGraph* ScanParameter(
TSParameter&,
int N,
double min,
double max);
92 TGraph2D* ScanParameters(
TSParameter&,
TSParameter &,
int Nx,
double xmin,
double xmax,
int Ny,
double ymin ,
double ymax);
93 void ScanParameters3D(
const TSParamList &,
int,
double,
double,
int,
double,
double,
int,
double,
double);
94 void SetNormalizedScannedMin(
double m=1);
95 void ResetNormalizedScannedMin() {fIsScannedMinNorm=
false;}
97 void GetScannedMinima(
double& func_min,
double* pars);
102 void SetName(TString name) {fName=name;}
103 void SetTitle(TString title) {fTitle=title;}
104 TString Name()
const {
return fName;}
105 TString Title()
const {
return fTitle;}
106 const char* GetName()
const {
return fName.Data() ;}
107 const char* GetTitle()
const {
return fTitle.Data() ;}
109 int SetNumOfDim(
int v) {fNDim=v;}
112 double EvalFunctor(
const double *x)
const;
114 virtual TSArgList* GetPrimaryParamList()
const;
121 void SetHasModel(
bool b){ fHasModel=b;}
122 void SetHasData(
bool b){ fHasData=b;}
125 int SetNumOfDataDim(
int v) {fNDimData=v;}
126 int SetNumOfPar(
int v) {fNPars=v;}
134 static const int NMAX_MINIMIZER_PARAMS=200;
135 TSParameter *fCacheParamList[NMAX_MINIMIZER_PARAMS];
136 mutable double fCacheParamValue[NMAX_MINIMIZER_PARAMS];
137 mutable double fCacheParamMin[NMAX_MINIMIZER_PARAMS];
138 mutable double fCacheParamMax[NMAX_MINIMIZER_PARAMS];
139 mutable double fCacheParamStep[NMAX_MINIMIZER_PARAMS];
140 mutable bool fCacheParamIsFix[NMAX_MINIMIZER_PARAMS];
150 inline double DoEval (
const double *x)
const;
155 bool fGetModelVariables();
156 bool fGetModelParams();
158 void fBuildHistoryTree();
159 void fInitHistoryTree();
175 mutable double fValue;
181 double fScannedFunctionMin;
182 std::vector<double> fScannedMins;
184 bool fIsScannedMinNorm;
185 double fScannedMinNorm;
Definition: TSArgList.h:30
Definition: TSDataBin.h:35
Definition: TSParamList.h:29
Definition: TSMinimizationFunction.h:46
Definition: TSVariable.h:55
Definition: TSFuncModel.h:33
Definition: TSParameter.h:39