GSI Object Oriented Online Offline (Go4)
GO4-6.3.0
|
#include <TGo4FitModelFormula.h>
Public Member Functions | |
TGo4FitModelFormula () | |
TGo4FitModelFormula (const char *iName, const char *iExpressionStr="", Int_t iNPars=0, Bool_t AddAmplitude=kFALSE) | |
virtual | ~TGo4FitModelFormula () |
Bool_t | CanAmplTouch () override |
const char * | GetExpression () const |
void | SetExpression (const char *expr) |
Int_t | GetNumberOfExprPar () |
Bool_t | SetNumberOfExprPar (Int_t num) |
void | SetPosParIndex (Int_t naxis, Int_t indx=-1) |
void | SetWidthParIndex (Int_t naxis, Int_t indx=-1) |
Bool_t | BeforeEval (Int_t ndim) override |
Double_t | EvalN (const Double_t *v) override |
void | AfterEval () override |
void | Print (Option_t *option="") const override |
![]() | |
TGo4FitModel () | |
TGo4FitModel (const char *iName, const char *iTitle, Bool_t MakeAmplitude=kFALSE) | |
virtual | ~TGo4FitModel () |
void | SetGroupIndex (Int_t index=-1) |
void | SetBackgroundGroupIndex () |
Int_t | GetGroupIndex () const |
Int_t | NumAssigments () const |
const char * | AssignmentName (Int_t n) |
void | AssignToData (const char *DataName, Double_t RatioValue=1., Bool_t FixRatio=kFALSE) |
Bool_t | IsAssignTo (const char *DataName) const |
void | ChangeDataNameInAssignments (const char *oldname, const char *newname) |
void | ClearAssignmentTo (const char *DataName) |
void | ClearAssigmentTo (const char *DataName) |
void | ClearAssignments () |
void | ConnectToDataIfAssigned (TGo4FitData *data) |
Double_t | GetRatioValueFor (const char *DataName) |
void | Print (Option_t *option="") const override |
virtual Double_t | Evaluate (Double_t x) |
virtual Double_t | Evaluate (Double_t x, Double_t y) |
virtual Double_t | Evaluate (Double_t x, Double_t y, Double_t z) |
virtual Double_t | Evaluate (Double_t *v, Int_t ndim) |
virtual Double_t | Integral () |
virtual Bool_t | GetPosition (Int_t naxis, Double_t &pos) |
virtual Bool_t | SetPosition (Int_t naxis, Double_t pos) |
virtual Bool_t | GetWidth (Int_t naxis, Double_t &width) |
virtual Bool_t | SetWidth (Int_t naxis, Double_t width) |
void | SetIntegrationsProperty (Int_t iMinIntegrDepth, Int_t iMaxIntegrDepth=0, Double_t iIntegrEps=0., Bool_t iAbsoluteEps=kFALSE, Bool_t iIntegrScaling=kFALSE) |
Bool_t | NeedIntegration () const |
virtual Double_t | EvaluateAtPoint (TGo4FitData *data, Int_t nbin, Bool_t UseRanges=kTRUE) |
virtual Double_t | EvaluateAtPoint (std::unique_ptr< TGo4FitDataIter > &iter, Bool_t UseRanges=kTRUE) |
Bool_t | AddModelToDataResult (TGo4FitData *data) |
Int_t | NumPars () override |
![]() | |
TGo4FitComponent () | |
TGo4FitComponent (const char *iName, const char *iTitle) | |
virtual | ~TGo4FitComponent () |
TGo4FitParameter * | GetAmplPar () |
const char * | GetAmplName () |
const char * | GetAmplFullName () |
Double_t | GetAmplValue () |
void | SetAmplValue (Double_t iAmpl) |
Double_t | GetAmplError () |
void | SetAmplError (Double_t iError) |
Bool_t | MakeAmpl (Bool_t isFixed=kFALSE) |
Bool_t | RemoveAmpl () |
void | SetRange (Int_t naxis, Double_t min, Double_t max) |
void | ExcludeRange (Int_t naxis, Double_t min, Double_t max) |
void | SetRangeMin (Int_t naxis, Double_t value) |
void | SetRangeMax (Int_t naxis, Double_t value) |
void | AddRangeCut (TCutG *cut, Bool_t exclude=kFALSE) |
void | ClearRanges (Int_t naxis=-1) |
Bool_t | IsAnyRangeLimits () const |
Bool_t | GetRangeMin (Int_t naxis, Double_t &value) const |
Bool_t | GetRangeMax (Int_t naxis, Double_t &value) const |
Int_t | GetNumRangeCondition () const |
void | GetRangeCondition (Int_t n, Int_t &typ, Int_t &naxis, Double_t &left, Double_t &right) const |
void | SetRangeCondition (Int_t n, Int_t typ, Int_t naxis, Double_t left, Double_t right) |
void | AddRangeCondition (Int_t typ, Int_t naxis, Double_t left, Double_t right) |
void | RemoveRangeCondition (Int_t n) |
Int_t | GetNumRangeCut () const |
TCutG * | GetRangeCut (Int_t n) const |
Bool_t | IsRangeCutExcluding (Int_t n) const |
void | SetRangeCutExcluding (Int_t n, Bool_t exclude=kTRUE) |
void | RemoveRangeCut (Int_t n) |
Bool_t | CheckRangeConditions (const Double_t *values, Int_t numaxis) |
void | CollectParsTo (TGo4FitParsList &list) override |
void | SetUseBuffers (Bool_t iUse) |
Bool_t | GetUseBuffers () const |
void | Print (Option_t *option="") const override |
![]() | |
TGo4FitParsList () | |
TGo4FitParsList (Bool_t IsParsOwned) | |
TGo4FitParsList (const char *Name, const char *Title, Bool_t IsParsOwned) | |
virtual | ~TGo4FitParsList () |
TGo4FitParameter * | GetPar (Int_t n) |
Int_t | GetParIndex (const TGo4FitParameter *par) |
TGo4FitParameter * | FindPar (const char *ParName) |
TGo4FitParameter * | FindPar (const char *OwnerFullName, const char *ParName) |
TGo4FitParameter * | FindPar (TGo4FitParameter *par) |
Double_t | GetParValue (const char *ParName) |
Bool_t | SetParValue (const char *ParName, Double_t iValue) |
void | GetParsValues (Double_t *pars) |
void | SetParsValues (Double_t *pars) |
Double_t | GetParError (const char *ParName) |
Bool_t | SetParError (const char *ParName, Double_t iError) |
virtual Bool_t | SetParFixed (const char *ParName, Bool_t iFixed=kTRUE) |
virtual Bool_t | GetParFixed (const char *ParName) |
Int_t | NumFixedPars () |
Int_t | NumFreePars () |
virtual Bool_t | SetParRange (const char *ParName, Double_t RangeMin, Double_t RangeMax) |
virtual Bool_t | GetParRange (const char *ParName, Double_t &RangeMin, Double_t &RangeMax) |
virtual Bool_t | SetParEpsilon (const char *ParName, Double_t Epsilon) |
virtual Bool_t | GetParEpsilon (const char *ParName, Double_t &Epsilon) |
void | SetParName (Int_t n, const char *name) |
const char * | GetParName (Int_t n) |
const char * | GetParFullName (Int_t n) |
void | SetParsNames (const char *name0="Par0", const char *name1="Par1", const char *name2="Par2", const char *name3="Par3", const char *name4="Par4", const char *name5="Par5", const char *name6="Par6", const char *name7="Par7", const char *name8="Par8", const char *name9="Par9") |
void | SetParsValues (Double_t par0=0., Double_t par1=0., Double_t par2=0., Double_t par3=0., Double_t par4=0., Double_t par5=0., Double_t par6=0., Double_t par7=0., Double_t par8=0., Double_t par9=0.) |
virtual void | MemorizePars () |
virtual bool | CanRollbackPars () |
virtual void | RememberPars () |
Bool_t | IsAllParsFixed () |
TGo4FitParameter * | CreatePar (const char *ParName, const char *Title, Double_t iValue=0) |
Bool_t | RemovePar (const char *name) |
Bool_t | RemovePar (TGo4FitParameter *par) |
void | Print (Option_t *option="") const override |
void | PrintPars () const |
void | ClearPars () |
![]() | |
TGo4FitNamed () | |
TGo4FitNamed (const char *Name, const char *Title, TNamed *Owner=nullptr) | |
virtual | ~TGo4FitNamed () |
const char * | GetFullName () |
const char * | GetOwnerFullName () |
void | SetOwner (TNamed *iOwner) |
TNamed * | GetOwner () |
void | Print (Option_t *option="") const override |
![]() | |
TGo4FitSlotList () | |
virtual | ~TGo4FitSlotList () |
virtual void | FillSlotList (TSeqCollection *lst) |
void | SetUpdateSlotList () |
const TObjArray * | GetSlotList (Bool_t ForceUpdate=kFALSE) |
Int_t | NumSlots () |
TGo4FitSlot * | GetSlot (Int_t nslot) |
TGo4FitSlot * | FindSlot (const char *FullSlotName) |
Bool_t | ConnectSlots (TGo4FitSlot *slot1, TGo4FitSlot *slot2) |
Bool_t | ConnectSlots (const char *Slot1FullName, const char *Slot2FullName) |
TGo4FitSlot * | SetObject (TObject *obj, Bool_t iOwned=kFALSE) |
TGo4FitSlot * | SetObject (const char *PlaceName, TObject *obj, Bool_t iOwned=kFALSE) |
TGo4FitSlot * | IsObjectInSlots (TObject *obj) |
Bool_t | CheckObjects (Bool_t MakeOut=kTRUE) |
Bool_t | IsEmptySlots () |
void | ClearObjects (const char *PlaceName=nullptr, Bool_t NonOwned=kTRUE) |
void | ClearSlot (TGo4FitSlot *slot, Bool_t NonOwned) |
void | SetSaveFlagForObjects (Int_t iSaveFlag, const char *PlaceName=nullptr) |
Protected Member Functions | |
Bool_t | Initialize (Int_t UseBuffers=-1) override |
void | Finalize () override |
TGo4FitParameter * | GetExprPar (Int_t n) |
TString | GetExprParName (Int_t n) |
Bool_t | CompileFormula () |
void | CloseFormula () |
Int_t | GetPosParIndex (Int_t naxis) override |
Int_t | GetWidthParIndex (Int_t naxis) override |
![]() | |
TGo4FitParameter * | Get (Int_t n) override |
Double_t | EvaluateAndIntegrate (Int_t NumScales, const Double_t *Scales, const Double_t *Widths) |
TGo4FitData * | GetAssignedConnection (Int_t n) |
Bool_t | BuffersAllocated () const |
void | RebuildShape (Bool_t ForceBuild=kFALSE) |
Double_t * | GetModelBins (const char *DataName) const |
void | SetNeedToRebuild () |
virtual Double_t | UserFunction (Double_t *, Double_t *) |
virtual TGo4FitParameter * | GetPosPar (Int_t naxis=0) |
virtual TGo4FitParameter * | GetWidthPar (Int_t naxis=0) |
const Int_t * | GetDataFullIndex (TGo4FitData *data, Int_t nbin) |
Int_t | GetDataIndexesSize (TGo4FitData *data) |
![]() | |
TGo4FitParameter * | NewParameter (const char *Name, const char *Title, Double_t iValue=0., Bool_t Fixed=kFALSE, Int_t AtIndx=-1) |
TGo4FitParameter * | NewAmplitude (const char *Name=nullptr, Double_t iValue=0., Bool_t IsFixed=kFALSE, Int_t AtIndx=0) |
Int_t | GetAmplIndex () const |
void | SetAmplIndex (Int_t iAmplIndex=-1) |
![]() | |
TGo4FitParameter * | AddPar (TGo4FitParameter *par) |
TGo4FitParameter * | InsertPar (TGo4FitParameter *par, Int_t indx) |
void | SetParsOwner (TGo4FitNamed *iOwner) |
void | ClearParsBlocking () |
TGo4FitParameter * | Find (const char *ParName) |
TGo4FitParameter * | Find (const char *OwnerFullName, const char *ParName) |
TGo4FitParameter * | Find (TGo4FitParameter *par) |
Bool_t | RemoveParByIndex (Int_t indx) |
![]() | |
void | CheckDuplicatesOnSlot () |
void | PrepareSlotsForWriting () |
ClassDef (TGo4FitSlotList, 1) | |
Protected Attributes | |
TString | fxExpression |
TArrayI | fxPosIndex |
TArrayI | fxWidthIndex |
TFormula * | fxFormula {nullptr} |
![]() | |
Int_t | fiMinIntegrDepth {0} |
Int_t | fiMaxIntegrDepth {0} |
Double_t | fdIntegrEps {0} |
Bool_t | fbAbsoluteEps {kFALSE} |
Bool_t | fbIntegrScaling {kFALSE} |
![]() | |
TObjArray * | fxSlotList {nullptr} |
Bool_t | fbUpdateSlotList {kFALSE} |
Private Attributes | |
Int_t | Par_ndim {0} |
Model object, which uses ROOT TFormula class facility.
Any kind of one-line expression can be analyzed by TFormula object and evaluated for given set of axis values and set of parameters. TGo4FitModelFormula in constructor creates additional parameters with names "Par0", "Par1" and so on, which can be used in equation and can be optimized. Optionally amplitude parameters with name "Ampl" can be created. In constructor expression, number of additional parameters and using of amplitude parameter should be specified. Fort instance, equation with 3 parameters and amplitude:
TGo4FitModelFormula f = new TGo4FitModelFormula("Form","(x-Par0)</em>(y-Par1)*(z-Par2)", 3, kTRUE);
Definition at line 28 of file TGo4FitModelFormula.h.
TGo4FitModelFormula::TGo4FitModelFormula | ( | ) |
Default constructor
Definition at line 21 of file TGo4FitModelFormula.cxx.
TGo4FitModelFormula::TGo4FitModelFormula | ( | const char * | iName, |
const char * | iExpressionStr = "" , |
||
Int_t | iNPars = 0 , |
||
Bool_t | AddAmplitude = kFALSE |
||
) |
Create TGo4FitModelFormula object with given names. Formula expression and number of parameters can be sets up. All using of amplitude parameter can be invoked.
Definition at line 26 of file TGo4FitModelFormula.cxx.
References GetExprParName(), and TGo4FitComponent::NewParameter().
|
virtual |
Destroys TGo4FitModelFormula object.
Definition at line 36 of file TGo4FitModelFormula.cxx.
References CloseFormula().
|
overridevirtual |
Clear buffers, which were created by BeforeEval() method.
Reimplemented from TGo4FitModel.
Definition at line 149 of file TGo4FitModelFormula.cxx.
References CloseFormula().
Referenced by SetExpression().
|
overridevirtual |
Prepares (if necessary) some intermediate variables to be able calculate values of model via EvalN() function. Number of axis, which will be used in evaluations, should be specified.
Reimplemented from TGo4FitModel.
Definition at line 128 of file TGo4FitModelFormula.cxx.
References CompileFormula(), fxFormula, TGo4FitParsList::GetPar(), TGo4FitModel::NumPars(), and Par_ndim.
Referenced by SetExpression().
|
inlineoverridevirtual |
Signals that amplitude parameter can be removed from or introduced to object.
Reimplemented from TGo4FitComponent.
Definition at line 50 of file TGo4FitModelFormula.h.
|
protected |
Definition at line 198 of file TGo4FitModelFormula.cxx.
References fxFormula.
Referenced by AfterEval(), CompileFormula(), Finalize(), Initialize(), SetExpression(), and ~TGo4FitModelFormula().
|
protected |
Definition at line 176 of file TGo4FitModelFormula.cxx.
References CloseFormula(), fxExpression, fxFormula, TGo4FitParsList::GetParName(), and TGo4FitModel::NumPars().
Referenced by BeforeEval(), Initialize(), and SetExpression().
|
overridevirtual |
Calculates value of model according current parameters values and provided axes values. BeforeEval(), EvalN() & AfterEval() virtual methods provides general interface, where user-specific code should be situated.
Reimplemented from TGo4FitModel.
Definition at line 138 of file TGo4FitModelFormula.cxx.
References fxFormula, and Par_ndim.
Referenced by SetExpression().
|
overrideprotectedvirtual |
Deletes all buffers, created during initialization.
Reimplemented from TGo4FitModel.
Definition at line 154 of file TGo4FitModelFormula.cxx.
References CloseFormula(), and TGo4FitModel::Finalize().
Referenced by SetExpression().
|
inline |
Return formula expression.
Definition at line 55 of file TGo4FitModelFormula.h.
References fxExpression.
Referenced by TGo4FitPanel::Wiz_GetModelInfo().
|
protected |
Definition at line 49 of file TGo4FitModelFormula.cxx.
References TGo4FitComponent::GetAmplIndex(), GetNumberOfExprPar(), and TGo4FitParsList::GetPar().
Referenced by GetPosParIndex(), GetWidthParIndex(), SetExpression(), and SetNumberOfExprPar().
|
protected |
Definition at line 113 of file TGo4FitModelFormula.cxx.
Referenced by SetExpression(), SetNumberOfExprPar(), and TGo4FitModelFormula().
Int_t TGo4FitModelFormula::GetNumberOfExprPar | ( | ) |
Get number of parameters, which can be used in expression.
Definition at line 41 of file TGo4FitModelFormula.cxx.
References TGo4FitComponent::GetAmplPar(), and TGo4FitParsList::NumPars().
Referenced by GetExprPar(), SetExpression(), and SetNumberOfExprPar().
|
overrideprotectedvirtual |
Return index of parameter (if exist), which represent position of model for given axis.
Reimplemented from TGo4FitModel.
Definition at line 99 of file TGo4FitModelFormula.cxx.
References fxPosIndex, GetExprPar(), and TGo4FitParsList::GetParIndex().
Referenced by SetExpression().
|
overrideprotectedvirtual |
Return index of parameter (if exist), which represent width of model component for given axis.
Reimplemented from TGo4FitModel.
Definition at line 106 of file TGo4FitModelFormula.cxx.
References fxWidthIndex, GetExprPar(), and TGo4FitParsList::GetParIndex().
Referenced by SetExpression().
|
overrideprotectedvirtual |
Initialize model object. If usage of buffers is specified (UseBuffers>0), method creates a number of buffers for representing model bins for each data, to which model was assign to.
Reimplemented from TGo4FitModel.
Definition at line 120 of file TGo4FitModelFormula.cxx.
References CloseFormula(), CompileFormula(), and TGo4FitModel::Initialize().
Referenced by SetExpression().
|
override |
Print information on standard output.
Definition at line 160 of file TGo4FitModelFormula.cxx.
References fxExpression, fxPosIndex, fxWidthIndex, and TGo4FitModel::Print().
Referenced by SetExpression().
|
inline |
Sets formula expression.
Definition at line 60 of file TGo4FitModelFormula.h.
References AfterEval(), BeforeEval(), CloseFormula(), CompileFormula(), EvalN(), Finalize(), fxExpression, GetExprPar(), GetExprParName(), GetNumberOfExprPar(), GetPosParIndex(), GetWidthParIndex(), Initialize(), Print(), SetNumberOfExprPar(), SetPosParIndex(), and SetWidthParIndex().
Referenced by QFitModelFormulaWidget::ExprEdt_textChanged().
Bool_t TGo4FitModelFormula::SetNumberOfExprPar | ( | Int_t | num | ) |
Sets number of parameters, which can be used in expression.
Definition at line 58 of file TGo4FitModelFormula.cxx.
References GetExprPar(), GetExprParName(), GetNumberOfExprPar(), TGo4FitComponent::NewParameter(), and TGo4FitParsList::RemovePar().
Referenced by SetExpression().
void TGo4FitModelFormula::SetPosParIndex | ( | Int_t | naxis, |
Int_t | indx = -1 |
||
) |
Definition at line 73 of file TGo4FitModelFormula.cxx.
References fxPosIndex.
Referenced by TGo4FitPanel::CreateModel(), and SetExpression().
void TGo4FitModelFormula::SetWidthParIndex | ( | Int_t | naxis, |
Int_t | indx = -1 |
||
) |
Definition at line 86 of file TGo4FitModelFormula.cxx.
References fxWidthIndex.
Referenced by TGo4FitPanel::CreateModel(), and SetExpression().
|
protected |
String, containing formula expression.
Definition at line 101 of file TGo4FitModelFormula.h.
Referenced by CompileFormula(), GetExpression(), Print(), and SetExpression().
|
protected |
formula for evaluation expression in EvalN() method.
Definition at line 110 of file TGo4FitModelFormula.h.
Referenced by BeforeEval(), CloseFormula(), CompileFormula(), and EvalN().
|
protected |
Definition at line 103 of file TGo4FitModelFormula.h.
Referenced by GetPosParIndex(), Print(), and SetPosParIndex().
|
protected |
Definition at line 105 of file TGo4FitModelFormula.h.
Referenced by GetWidthParIndex(), Print(), and SetWidthParIndex().
|
private |
temporary variable for formula calculation in EvalN() method.
Definition at line 116 of file TGo4FitModelFormula.h.
Referenced by BeforeEval(), and EvalN().