56 TGo4Fitter(
const char *iName,
const char *iTitle);
62 TGo4Fitter(
const char *iName, Int_t iFitFunctionType, Bool_t IsAddStandardActions);
119 void Clear(Option_t *option =
"")
override;
149 TGo4FitDataHistogram*
AddH1(
const char *DataName, TH1 *histo, Bool_t Owned = kFALSE, Double_t lrange = 0., Double_t rrange = 0.);
159 TGo4FitDataGraph*
AddGraph(
const char *DataName, TGraph *gr, Bool_t Owned = kFALSE, Double_t lrange = 0., Double_t rrange = 0.);
209 void AddPolynomX(
const char *DataName,
const char *NamePrefix, Int_t MaxOrder = 1, Int_t GroupIndex = 0, Double_t lrange = 0., Double_t rrange = 0.);
216 void AddPolynomX(
const char *DataName,
const char *NamePrefix, TArrayD& Coef, Int_t GroupIndex = 0);
225 void AddPolynoms(
const char *DataName,
const char *NamePrefix, Int_t MaxOrder = 1, Int_t NumAxis = 1, Int_t GroupIndex = 0);
230 TGo4FitModelGauss1 *
AddGauss1(
const char *DataName,
const char *ModelName, Double_t iPosition, Double_t iWidth, Double_t iAmpl = 1., Int_t Axis = 0);
264 void AssignModelTo(
const char *ModelName,
const char *DataName, Double_t RatioValue = 1., Bool_t FixRatio = kFALSE);
312 Double_t
CalculateFitFunction(Double_t *pars =
nullptr, Int_t FitFunctionType = -1,
const char *DataName =
nullptr);
330 void Print(Option_t *option =
"")
const override;
336 Bool_t
CalculatesMomentums(
const char *DataName, Bool_t UseRanges, Bool_t SubstractModels, Double_t& first, Double_t& second);
342 Double_t
CalculatesIntegral(
const char *DataName,
const char *ModelName =
nullptr, Bool_t OnlyCounts = kFALSE);
354 TObject *
CreateDrawObject(
const char *ObjName,
const char *DataName, Bool_t IsModel = kFALSE,
const char *ModelName =
nullptr);
364 void Draw(Option_t *option)
override;
382 TString
FindNextName(
const char *Head, Int_t start, Bool_t isModel = kTRUE);
411 Double_t
PointFitFunction(Int_t FitFunctionType, Double_t value, Double_t modelvalue, Double_t standdev);
Double_t(* TUserFitFunction)(Double_t, Double_t, Double_t)
Basic abstract class, combining common properties of data and model.
Data object, which provides access to TGraph and TGraphErrors ROOT objects.
Data objects, which provides access to generic TH1 ROOT histogram.
Basic abstract class for representing data, which should be fitted.
One dimensional gaussian peak.
Basic abstract class for representing model components of fitted data.
TGo4FitterAbstract()
Default constructor.
Central class of Go4Fit package.
TObjArray fxModels
Container for model components.
void FinalizeFitterData() override
Finalize fitter data.
void MoveDrawObjectsToROOT()
TGo4FitDataHistogram * AddH1(const char *DataName, TH1 *histo, Bool_t Owned=kFALSE, Double_t lrange=0., Double_t rrange=0.)
Create TGo4FitDataHistogram object and adds its to fitter.
TGo4FitDataHistogram * SetH1(const char *DataName, TH1 *histo, Bool_t Owned=kFALSE)
Set histogram to existing TGo4FitDataHistogram object.
void PrintLines() const
Print amplitude, position and width for each model components.
Bool_t ModelBuffersAllocated(TGo4FitModel *model)
Bool_t DataBuffersAllocated(TGo4FitData *data)
Double_t CalculatesModelIntegral(const char *ModelName, Bool_t OnlyCounts=kFALSE)
Calculates integral of model (if ModelName is specified) if OnlyCounts specified, only sum of values ...
Int_t fiMemoryUsage
Defines use of memory during actions executions.
Int_t GetNumComp() const
Return total number of TGo4FitComponent (data and model) objects in fitter.
Double_t * GetDataBinsResult(TGo4FitData *data) const
void SetUserFitFunction(TUserFitFunction iFunc)
Set user-defined fitted function.
TGo4FitModel * GetModel(Int_t n)
Return model component with given index.
Int_t NumModelsAssosiatedTo(const char *DataName)
Counts models associated with specific data.
void Print(Option_t *option="") const override
Print containment of fitter.
TGo4FitModel * RemoveModel(const char *ModelName, Bool_t IsDel=kFALSE)
Remove model component from fitter.
void DeleteModelsAssosiatedTo(const char *DataName)
Remove models associated with specific data.
const char * GetDataName(Int_t n)
Return name of data object with given index.
TGo4FitModelGauss1 * AddGauss1(const char *DataName, const char *ModelName, Double_t iPosition, Double_t iWidth, Double_t iAmpl=1., Int_t Axis=0)
Add 1-dim gaussian model to fitter.
TGo4FitData * AddData(TGo4FitData *d)
Add data object to fitter.
TGo4FitDataGraph * SetGraph(const char *DataName, TGraph *gr, Bool_t Owned=kFALSE)
Set graph to existing TGo4FitDataGraph object.
TGo4FitData * RemoveData(const char *DataName, Bool_t IsDel=kFALSE)
Remove data object from fitter.
Bool_t InitFitterData() override
Initialize fitter data.
void EstimateAmplitudes(Int_t NumIters=1)
Estimate amplitude of all model components.
void PrintAmpls() const
Print value of all amplitude parameters.
TUserFitFunction fxUserFitFunction
Pointer on user fit function.
Double_t * GetModelBinsValues(TGo4FitModel *model, const char *DataName) const
void AddAmplEstimation(Int_t NumIters=1)
Add amplitude estimation to actions list.
friend class TGo4FitAmplEstimation
Double_t CalculateFCN(Int_t FitFunctionType, TGo4FitData *selectdata=nullptr)
void SetMemoryUsage(Int_t iMemoryUsage)
Set value of memory usage.
void CheckSlotsBeforeDelete(TGo4FitComponent *comp)
Double_t PointFitFunction(Int_t FitFunctionType, Double_t value, Double_t modelvalue, Double_t standdev)
void DeleteAllData()
Delete all data objects from fitter.
void ClearModelAssignmentTo(const char *ModelName, const char *DataName=nullptr)
Remove assignment to given data (if exists).
Int_t GetNumModel() const
Return number of model component in fitter.
Int_t GetDataBinsSize(TGo4FitData *data) const
TGo4FitModel * FindModel(const char *ModelName)
Return model component with given name.
TGo4FitModel * CloneModel(const char *ModelName, const char *NewName=nullptr)
Clones specified model.
void ProvideLastDrawObjects(TObjArray &lst)
Copy pointer on drawn object after last command to specified TObjArray.
void RebuildAll(Bool_t ForceBuild=kFALSE)
Update all data objects and model components according to current parameters values.
void AddPolynomX(const char *DataName, const char *NamePrefix, Int_t MaxOrder=1, Int_t GroupIndex=0, Double_t lrange=0., Double_t rrange=0.)
Construct 1-dim polynom for specified data object for x scale.
TString FindNextName(const char *Head, Int_t start, Bool_t isModel=kTRUE)
void Draw(Option_t *option) override
Draw fitter on current canvas.
void AddStandardActions()
Add list of standard actions to fitter.
TGo4FitModel * AddModel(TGo4FitModel *m)
Add model component to fitter.
Int_t GetMemoryUsage() const
Return value of memory usage parameter.
TGo4FitData * GetData(Int_t n)
Return data object with given index.
TGo4FitData * FindData(const char *DataName)
Return data object with given name.
Double_t CalculateFitFunction(Double_t *pars=nullptr, Int_t FitFunctionType=-1, const char *DataName=nullptr)
Calculate value of fit function for given set of parameters and specified type of fit function (it ca...
Int_t GetNumData() const
Return number of data objects in fitter.
void Clear(Option_t *option="") override
Remove all data, all models and all actions.
Int_t fiFitFunctionType
Defines type of fitted function.
void AddPolynoms(const char *DataName, const char *NamePrefix, Int_t MaxOrder=1, Int_t NumAxis=1, Int_t GroupIndex=0)
Construct full polynom for specified data object.
TObjArray fxDatas
Container for data objects.
Int_t CalculateNDF(const char *DataName=nullptr)
Calculates number of degree of freedom (NDF).
Double_t DoCalculation() override
Calculates value of fit function according current values of parameters.
Bool_t CalculatesMomentums(const char *DataName, Bool_t UseRanges, Bool_t SubstractModels, Double_t &first, Double_t &second)
Calculates first and second momentum for specified data Usage of ranges and subtraction of model can ...
Double_t CalculatesIntegral(const char *DataName, const char *ModelName=nullptr, Bool_t OnlyCounts=kFALSE)
Calculates integral for data or model (if ModelName is specified) if OnlyCounts specified,...
Int_t DoNDFCalculation() override
Calculates number of dimensions of freedom; Should be implemented in inherited classes.
void CollectAllPars() override
Should collect parameters from all associated to fitter objects.
void AssignModelTo(const char *ModelName, const char *DataName, Double_t RatioValue=1., Bool_t FixRatio=kFALSE)
Assign model to specified data object.
Double_t * GetDataBinsDevs(TGo4FitData *data) const
Double_t * GetDataBinsValues(TGo4FitData *data) const
void ChangeDataNameInAssignments(const char *oldname, const char *newname)
Change data name in model component assignments.
void SetFitFunctionType(Int_t iFitFunctionType)
Set fitted function type for minimization.
void FillSlotList(TSeqCollection *) override
Collect all TGo4FitSlot objects, situated in fitter, data and models to givven TObjArray.
TGo4FitDataGraph * AddGraph(const char *DataName, TGraph *gr, Bool_t Owned=kFALSE, Double_t lrange=0., Double_t rrange=0.)
Create TGo4FitDataGraph object and adds its to fitter.
Int_t GetFitFunctionType() const
Return type of fitted function.
virtual ~TGo4Fitter()
Destructor.
TObject * CreateDrawObject(const char *ObjName, const char *DataName, Bool_t IsModel=kFALSE, const char *ModelName=nullptr)
Create object (TH1 or TGraph), which can be drawn.
TGo4Fitter()
Default constructor.
void DeleteAllModels()
Delete all model objects from fitter.
TGo4FitComponent * GetComp(Int_t n)
Return TGo4FitComponent object with given index.