24#if ROOT_VERSION_CODE < ROOT_VERSION(6,26,0)
25#include "ROOT/RMakeUnique.hxx"
54 TGo4FitData(
const char *iName,
const char *iTitle, Int_t iDataType =
dtHistogram, Bool_t AddAmpl = kFALSE);
105 if ((TakeFrom == 2) && (SigmaValue > 0))
176 virtual std::unique_ptr<TGo4FitDataIter>
MakeIter() {
return nullptr; }
225 void Print(Option_t *option =
"")
const override;
239 virtual Bool_t
Initialize(Int_t UseBuffers = -1);
437 virtual Bool_t
Reset(Bool_t UseRanges = kTRUE);
445 virtual Bool_t
Next(Bool_t UseRanges = kTRUE);
544 TH1 *
CreateHistogram(
const char *HistoName, Bool_t UseRanges = kFALSE, Bool_t SetBins = kFALSE);
553 TGraph *
CreateGraph(
const char *GraphName, Bool_t UseRanges = kFALSE, Bool_t SetBins = kFALSE);
590 Bool_t
ReserveArrays(Int_t NumDimen, Int_t NumOwnAxis, Bool_t HasWidth);
601 Bool_t
ProduceScales(
const Int_t *index,
const Double_t *ownscales,
const Double_t *ownwidths);
606 Bool_t
NextIndex(TArrayI& Index, TArrayI& Limits);
Base class for axis transformation objects.
Basic abstract class, combining common properties of data and model.
TGo4FitComponent()
Default constructor.
Iterator class for data object.
TGraph * CreateGraph(const char *GraphName, Bool_t UseRanges=kFALSE, Bool_t SetBins=kFALSE)
Create TGraph object with appropriate to data object size.
Double_t xWidths() const
Return production of all width parameters (1 if no widths)
const Double_t * Widths() const
Return scales widths values.
Double_t fdStandardDeviation
virtual ~TGo4FitDataIter()
Destroys TGo4FitDataIter object.
virtual Bool_t Next(Bool_t UseRanges=kTRUE)
Shift pointer to next data point.
virtual Bool_t StartReset()=0
Reset pointer and other specific values to the beginning of data.
Bool_t ProduceScales(const Int_t *index, const Double_t *ownscales, const Double_t *ownwidths)
Converts scale values.
Bool_t GetDeviation()
Calculates standard deviation from GetSigmaValue() of data object.
Bool_t DefineIndexesLimits(TArrayI &Limits)
Iterate over all data points and returns maximum value for indexes.
Bool_t NextIndex(TArrayI &Index, TArrayI &Limits)
Producing next indexes set according limits values.
virtual Bool_t Reset(Bool_t UseRanges=kTRUE)
Initialize iterator and positioning pointer on first point.
Bool_t HasWidths() const
Return kTRUE, if scale widths values exists.
Bool_t HasIndexes() const
Return kTRUE, if data object has indexes.
const Int_t * Indexes() const
Return indexes for current data point.
Int_t CountPoints(Bool_t UseRanges=kTRUE)
Counts total number of points in data object.
Double_t StandardDeviation() const
Return standard deviation of bin content (Value) for current point.
Double_t Value() const
Return bin content (Value) for current point.
virtual Bool_t ReadCurrentPoint()=0
Perform specific actions to read all values from data object.
Bool_t CheckPointForRange()
Check range conditions and amplitude threshold for current point.
void TransformScales(Double_t *scales)
Transform scales values, using transformation objects in data.
Bool_t ReachEnd() const
Checks, if iterator already reach end of data object.
Double_t x() const
Return current x coordinate if exists, otherwise 0.
TGo4FitDataIter()
Default constructor.
const Double_t * Scales() const
Return scale values for current data points.
TH1 * CreateHistogram(const char *HistoName, Bool_t UseRanges=kFALSE, Bool_t SetBins=kFALSE)
Create histogram (if possible) with appropriate to data object dimensions number and size.
Bool_t ReserveArrays(Int_t NumDimen, Int_t NumOwnAxis, Bool_t HasWidth)
Reserve buffers for indexes, scales and width values.
virtual Bool_t ShiftToNextPoint()=0
Move pointer to following data point.
virtual TGo4FitData * GetData() const =0
Return pointer on correspondent TGo4FitData object, which create iterator.
Double_t z() const
Return current z coordinate if exists, otherwise 0.
Int_t ScalesSize() const
Return size (number) of scale values for each data point.
Double_t y() const
Return current y coordinate if exists, otherwise 0.
Int_t Point() const
Return number of current point, starting from 0.
Int_t IndexesSize() const
Return size (number of dimensions) of data indexes.
TObject * CreateDrawObject(const char *ObjName)
Create either histogram or graph object.
Basic abstract class for representing data, which should be fitted.
Bool_t CanAmplTouch() override
Always return kTRUE.
Double_t * fxStandDev
Buffer for standard deviations of bins values.
const Double_t * GetWidthValues(Int_t nbin) const
Return scales width values for specified index from buffer.
const Double_t * GetScaleValues(Int_t nbin) const
Return scale values for specified index from buffer.
Bool_t fbUseBinScale
Use binary numbers as scale values.
Int_t GetNumberOfTransSlots() const
Return number of slots for scale transformation objects.
TGo4FitAxisTrans * GetAxisTrans(Int_t nslot) const
Return transformation object for given slot.
Int_t DefineDimensions()
Define dimension number of data Create iterator and checks number of dimension.
Double_t * fxBinsResult
Buffer for complete model of bins values.
TObject * CreateDrawObject(const char *ObjName)
Creates object, which can be drawn on canvas by ROOT.
void SetSigmaValue(Double_t SigmaValue)
Set constant sigma value.
Int_t * fxFullIndex
Store combination of indexes for each data bins.
void SetSigmaSource(Int_t TakeFrom, Double_t SigmaValue=1.)
Sets source of sigma for data.
Double_t * GetBinsResult() const
Returns pointer on buffer with complete model of data bins.
Double_t fdSigmaValue
Value of sigma when fiTakeSigmasFrom = 2.
Bool_t BuffersAllocated() const
Checks, if buffers allocated for data.
Int_t GetBinsSize() const
Return number of data bins in buffers.
Int_t fiDataType
Specified type of data: 0 - Histogram, 1 - graphics, 2 and so on - user defined.
void SetAxisTrans(Int_t nslot, TGo4FitAxisTrans *Trans, Bool_t TransOwned=kFALSE)
Sets transformation object for given slot.
void SetAxisTransNeeded(Int_t nslot, Bool_t iNeeded=kFALSE)
Specified, when iNeeded = kTRUE, that transformation object should always be provided to data.
void SetExcludeLessThen(Double_t limit=0.)
Sets limit to exclude bins, which not less then this limit.
Int_t fiTakeSigmasFrom
Specify sigma source.
Double_t * fxFullScale
Array of axis values for each bins.
void ResetAllPoinetrs()
Clears (sets to 0) all pointers, used for buffer allocations.
Int_t GetSigmaSource() const
Return source of sigma values.
Double_t * GetBinsDevs() const
Returns pointer on buffer with standard deviations for each data bins.
Int_t GetIndexesSize() const
Returns dimension of indexes arrays.
Double_t * fxValues
Buffer for bins values.
const Int_t * GetFullIndex(Int_t nbin) const
Return indexes values for specified data bin from buffer.
virtual ~TGo4FitData()
Destroys TGo4FitData object.
Int_t fiScalesSize
Number of scales values for each point.
Int_t GetDataType() const
Returns type of data source.
Double_t * GetBinsValues() const
Returns pointer on buffer with data bins values.
friend class TGo4FitModel
Int_t fiIndexesSize
Number of indexes for each point.
Bool_t SetNumberOfTransSlots(Int_t nslots)
Sets number of slots for scale transformation objects.
Bool_t DefineScaleMinMax(Int_t naxis, Double_t &min, Double_t &max)
Return scales minimum and maximum for specified axis.
Int_t fiBinsSize
Number of entries in buffers.
void FillSlotList(TSeqCollection *list) override
Copy pointers on all slots of data object to list.
TGo4FitData()
Default constructor.
virtual void Finalize()
Removes all buffers, created in initialize() routine.
virtual Bool_t Initialize(Int_t UseBuffers=-1)
Initialize data object.
Bool_t GetUseBinScale() const
Returns kTRUE, if binary numbers used as scale values.
void SetUseBinScale(Bool_t iUseBinScale)
If kTRUE, binary numbers will be used as scale values.
void AddAxisTrans(TGo4FitAxisTrans *Trans, Bool_t TransOwned=kFALSE)
Add transformation object to data.
Double_t GetSigmaValue() const
Return constant sigma value.
Double_t GetExcludeLessThen() const
Returns limit, which uses to exclude bins, less then this limit.
virtual Bool_t IsAnyDataTransform() const
Return kTRUE, if either initial data axis or data bins are transformed by TGo4FitData object.
Double_t fdExcludeLessThen
Sets limit for exclude bins, which less then this limit.
void ReleaseAllPointers()
Release all memory, allocated for buffers.
virtual std::unique_ptr< TGo4FitDataIter > MakeIter()
Creates iterator for data object.
Double_t * fxFullWidth
Array of width values for each bin.
void Print(Option_t *option="") const override
Display information about data object on standard output.
Int_t DefineBinsSize()
Defines number of selected bins in data Creates iterator and sequentially checks all points.
TGo4FitSlot * GetAxisTransSlot(Int_t nslot) const
Return slot for transformation object.
TObjArray fxAxisTrans
Array of slots for scale transformation objects.
Int_t GetScalesSize() const
Returns number of axis values for each point.
void ApplyRangesForModelMask(TGo4FitComponent *model, Char_t *ModelMask)
Exclude points from model according model range conditions.
Bool_t IsCompatibleData(TGo4FitData *data)
Checks, if data has same dimensions number and size of each dimensions.
Managing pointers on specific objects.