318 fNdim=function->GetNdim();
319 if (!function->IsLinear()){
320 Int_t number=function->GetNumber();
321 if (number<299 || number>310){
322 Error(
"TLinearFitter",
"Trying to fit with a nonlinear function");
351 fParams(tlf.fParams),
352 fParCovar(tlf.fParCovar),
353 fTValues(tlf.fTValues),
354 fParSign(tlf.fParSign),
355 fDesign(tlf.fDesign),
356 fDesignTemp(tlf.fDesignTemp),
357 fDesignTemp2(tlf.fDesignTemp2),
358 fDesignTemp3(tlf.fDesignTemp3),
360 fAtbTemp(tlf.fAtbTemp),
361 fAtbTemp2(tlf.fAtbTemp2),
362 fAtbTemp3(tlf.fAtbTemp3),
363 fFunctions( * (
TObjArray *)tlf.fFunctions.Clone()),
366 fY2Temp(tlf.fY2Temp),
369 fInputFunction(tlf.fInputFunction),
371 fNpoints(tlf.fNpoints),
372 fNfunctions(tlf.fNfunctions),
373 fFormulaSize(tlf.fFormulaSize),
375 fNfixed(tlf.fNfixed),
376 fSpecial(tlf.fSpecial),
379 fStoreData(tlf.fStoreData),
380 fChisquare(tlf.fChisquare),
382 fRobust(tlf.fRobust),
383 fFitsample(tlf.fFitsample),
384 fFixedParams(nullptr)
568 Error(
"AddPoint",
"Point can't be added, because the formula hasn't been set");
586 Error(
"AddData",
"Those points are already added");
597 fX.
Use(npoints, xncols,
x);
612 for (
Int_t i=xfirst; i<npoints; i++)
634 for (i=1; i<npar; i++)
636 for (i=0; i<npar; i++)
642 for (i=0; i<npar; i++)
665 Error(
"AddToDesign",
"Function %s has no linear parts - maybe missing a ++ in the formula expression",
fInputFunction->
GetName());
818 temp2 = (
fY(i)-temp)*(
fY(i)-temp);
819 temp2 /=
fE(i)*
fE(i);
830 for (i=1; i<npar; i++)
831 val[i] = val[i-1]*
fX(point, 0);
832 for (i=0; i<npar; i++)
839 for (i=0; i<npar; i++)
849 temp2 = (
fY(point)-temp)*(
fY(point)-temp);
850 temp2 /=
fE(point)*
fE(point);
878 Error(
"TLinearFitter::Eval",
"The formula hasn't been set");
919 for (ii=0; ii<i; ii++)
946 Error(
"Eval",
"Matrix inversion failed");
983 for (ii=0; ii<i; ii++){
1004 Error(
"FixParameter",
"no value available to fix the parameter");
1008 Error(
"FixParameter",
"illegal parameter value");
1012 Error(
"FixParameter",
"no free parameters left");
1027 Error(
"FixParameter",
"illegal parameter value");
1031 Error(
"FixParameter",
"no free parameters left");
1049 Error(
"ReleaseParameter",
"illegal parameter value");
1053 Warning(
"ReleaseParameter",
"This parameter is not fixed\n");
1107 for (
Int_t ipoint=0; ipoint<
n; ipoint++){
1114 sum_vector[irow]+=
fParCovar(irow,icol)*grad[icol];
1118 c+=grad[i]*sum_vector[i];
1120 ci[ipoint]=
c*t*chidf;
1124 delete [] sum_vector;
1151 Error(
"GetConfidenceIntervals",
"The case of fitting not with a TFormula is not yet implemented");
1160 Error(
"GetConfidenceIntervals",
"A TGraphErrors should be passed instead of a graph");
1164 Error(
"GetConfidenceIntervals",
"A TGraph2DErrors should be passed instead of a graph");
1169 Error(
"GetConfidenceIntervals",
"A TGraph2DErrors or a TH23 should be passed instead of a graph");
1183 Error(
"GetConfidenceIntervals",
"A TGraph2DErrors should be passed instead of a TGraph2D");
1187 Error(
"GetConfidenceIntervals",
"A TGraphErrors should be passed instead of a TGraph2D");
1192 Error(
"GetConfidenceIntervals",
"A TGraphErrors or a TH1 should be passed instead of a graph");
1205 for (
Int_t ipoint=0; ipoint<
np; ipoint++){
1213 sum_vector[irow]+=
fParCovar(irow, icol)*grad[icol];
1216 c+=grad[i]*sum_vector[i];
1219 gr2->
GetEZ()[ipoint]=
c*t*chidf;
1222 delete [] sum_vector;
1228 if (((
TH1*)obj)->GetDimension()>1){
1229 Error(
"GetConfidenceIntervals",
"Fitted graph and passed histogram have different number of dimensions");
1234 if (((
TH1*)obj)->GetDimension()!=2){
1235 Error(
"GetConfidenceIntervals",
"Fitted graph and passed histogram have different number of dimensions");
1241 Error(
"GetConfidenceIntervals",
"Fitted and passed histograms have different number of dimensions");
1264 for (
Int_t binz=hzfirst; binz<=hzlast; binz++){
1266 for (
Int_t biny=hyfirst; biny<=hylast; biny++) {
1268 for (
Int_t binx=hxfirst; binx<=hxlast; binx++) {
1275 sum_vector[irow]+=
fParCovar(irow, icol)*grad[icol];
1278 c+=grad[i]*sum_vector[i];
1286 delete [] sum_vector;
1289 Error(
"GetConfidenceIntervals",
"This object type is not supported");
1356 Error(
"GetParError",
"illegal value of parameter");
1374 Error(
"GetParError",
"illegal value of parameter");
1388 Error(
"GetParError",
"illegal value of parameter");
1402 Error(
"GetParTValue",
"illegal value of parameter");
1416 Error(
"GetParSignificance",
"illegal value of parameter");
1430 Error(
"GetFitSample",
"there is no fit sample in ordinary least-squares fit");
1443 if (!list)
return -1;
1448 Error(
"Add",
"Attempt to add object of class: %s to a %s",lfit->
ClassName(),this->ClassName());
1489 for (
int i=0; i<
size; i++)
1536 fstring = (
char *)strstr(
fFormula,
"hyp");
1537 if (fstring!=
nullptr){
1540 sscanf(fstring,
"%d", &
size);
1549 sstring = sstring.
ReplaceAll(
"++", 2,
"|", 1);
1568 char replacement[14];
1569 for (i=0; i<
fNdim; i++){
1570 snprintf(pattern,
sizeof(pattern),
"x%d", i);
1571 snprintf(replacement,
sizeof(replacement),
"x[%d]", i);
1593 Error(
"TLinearFitter",
"f_linear not allocated");
1596 special=
f->GetNumber();
1600 if ((
fNfunctions==1)&&(special>299)&&(special<310)){
1632 for (i=0; i<
size; i++)
1652 if ((special>299)&&(special<310)){
1694 ((
TF1*)function)->GetParLimits(i,al,bl);
1695 if (al*bl !=0 && al >= bl) {
1726 if (!strcmp(command,
"FitGraph")){
1730 if (!strcmp(command,
"FitGraph2D")){
1734 if (!strcmp(command,
"FitMultiGraph")){
1752 printf(
"Fitting results:\nParameters:\nNO.\t\tVALUE\t\tERROR\n");
1757 printf(
"Fitting results:\nParameters:\nNO.\t\tVALUE\n");
1759 printf(
"%d\t%e\n", i,
fParams(i));
1780 Int_t fitResult = 0;
1791 for (
Int_t i=0; i<
n; i++){
1794 if (
e<0 || fitOption.
W1)
1809 for (
Int_t i=0; i<
n; i++){
1812 temp2=(
y[i]-temp)*(
y[i]-temp);
1814 if (
e<0 || fitOption.
W1)
1853 for (
Int_t bin=0;bin<
n;bin++) {
1860 e=
gr->GetErrorZ(bin);
1861 if (
e<0 || fitOption.
W1)
1876 for (
Int_t bin=0; bin<
n; bin++){
1884 temp=f2->
Eval(
x[0],
x[1]);
1885 temp2=(z-temp)*(z-temp);
1886 e=
gr->GetErrorZ(bin);
1887 if (
e<0 || fitOption.
W1)
1927 for (i=0; i<
n; i++){
1930 if (
e<0 || fitOption.
W1)
1951 for (i=0; i<
n; i++){
1954 temp2=(gy[i]-temp)*(gy[i]-temp);
1956 if (
e<0 || fitOption.
W1)
1980 Int_t bin,binx,biny,binz;
2001 for (binz=hzfirst;binz<=hzlast;binz++) {
2003 for (biny=hyfirst;biny<=hylast;biny++) {
2005 for (binx=hxfirst;binx<=hxlast;binx++) {
2008 bin = hfit->
GetBin(binx,biny,binz);
2015 if (fitOption.
W1==1 && cu == 0)
continue;
2019 if (eu <= 0)
continue;
2031 for (binz=hzfirst;binz<=hzlast;binz++) {
2033 for (biny=hyfirst;biny<=hylast;biny++) {
2035 for (binx=hxfirst;binx<=hxlast;binx++) {
2038 bin = hfit->
GetBin(binx,biny,binz);
2042 if (fitOption.
W1==1 && cu == 0)
continue;
2046 if (eu <= 0)
continue;
2049 temp2=(cu-temp)*(cu-temp);
2100 Int_t i, j, maxind=0, k, k1 = 500;
2105 Error(
"TLinearFitter::EvalRobust",
"The formula hasn't been set");
2111 for (i=0; i<nbest; i++)
2116 if (
h>0.000001 && h<1 && fNpoints*h > hdef)
2120 if (
h>0)
Warning(
"Fitting:",
"illegal value of H, default is taken, h = %3.2f",
double(hdef)/
fNpoints);
2136 for (k = 0; k < k1; k++) {
2141 if (chi2 < bestchi2[maxind]) {
2142 bestchi2[maxind] = chi2;
2144 cstock(i, maxind) =
fParams(i);
2151 for (i=0; i<nbest; i++) {
2155 while (chi2 > kEps) {
2163 if (chi2 <= currentbest + kEps) {
2164 for (j=0; j<
fH; j++){
2165 bestindex[j]=
index[j];
2174 fParams(j) = cstock(j, maxind);
2176 for (j=0; j<
fH; j++){
2186 delete [] bestindex;
2187 delete [] residuals;
2202 RDraw(subdat, indsubdat);
2207 Int_t i_end = indsubdat[0];
2209 for (
Int_t kgroup = 0; kgroup < nsub; kgroup++) {
2212 for (i=0; i<nbest; i++)
2214 for (k=0; k<k2; k++) {
2216 chi2 =
CStep(1, hsub, residuals,
index, subdat, i_start, i_end);
2217 chi2 =
CStep(2, hsub, residuals,
index, subdat, i_start, i_end);
2219 if (chi2 < bestchi2[maxind]){
2221 cstockbig(i, nbest*kgroup + maxind) =
fParams(i);
2222 bestchi2[maxind] = chi2;
2225 if (kgroup != nsub - 1){
2226 i_start += indsubdat[kgroup];
2227 i_end += indsubdat[kgroup+1];
2231 for (i=0; i<nbest; i++)
2235 for (k=0; k<nbest*5; k++) {
2241 if (chi2 < bestchi2[maxind]){
2242 beststock[maxind] = k;
2243 bestchi2[maxind] = chi2;
2248 for (k=0; k<nbest; k++) {
2250 fParams(i) = cstockbig(i, beststock[k]);
2258 fParams(i)=cstockbig(i, beststock[maxind]);
2261 while (chi2 > kEps) {
2263 if (
TMath::Abs(chi2 - bestchi2[maxind]) < kEps)
2266 bestchi2[maxind] = chi2;
2270 for (j=0; j<
fH; j++)
2279 delete [] beststock;
2281 delete [] residuals;
2297 for(i=0; i<ntotal; i++)
2298 index[i] = ntotal+1;
2303 num=
Int_t(
r.Uniform(0, 1)*(ntotal-1));
2305 for(j=0; j<=i-1; j++) {
2330 while (!ok && (nindex <
h)) {
2333 num=
Int_t(
r.Uniform(0,1)*(ntotal-1));
2335 for(i=0; i<nindex; i++) {
2341 }
while(repeat==
kTRUE);
2343 index[nindex] = num;
2364 for (i=0; i<
n; i++) {
2366 itemp = subdat[start+i];
2375 for (j=1; j<npar; j++)
2376 val[j] = val[j-1]*
fX(itemp, 0);
2377 for (j=0; j<npar; j++)
2383 for (j=0; j<npar; j++)
2394 residuals[i] = (
fY(itemp) - func)*(
fY(itemp) - func)/(
fE(i)*
fE(i));
2408 for (j=1; j<npar; j++)
2409 val[j] = val[j-1]*
fX(i, 0);
2410 for (j=0; j<npar; j++)
2416 for (j=0; j<npar; j++)
2426 residuals[i] = (
fY(i) - func)*(
fY(i) - func)/(
fE(i)*
fE(i));
2440 if (step==1)
return 0;
2445 for (i=0; i<
h; i++) {
2446 itemp = subdat[start+
index[i]];
2455 for (j=1; j<npar; j++)
2456 val[j] = val[j-1]*
fX(itemp, 0);
2457 for (j=0; j<npar; j++)
2463 for (j=0; j<npar; j++)
2473 sum+=(
fY(itemp)-func)*(
fY(itemp)-func)/(
fE(itemp)*
fE(itemp));
2476 for (i=0; i<
h; i++) {
2485 for (j=1; j<npar; j++)
2486 val[j] = val[j-1]*
fX(
index[i], 0);
2487 for (j=0; j<npar; j++)
2494 for (j=0; j<npar; j++)
2540 Error(
"Linf",
"Matrix inversion failed");
2593 for(
Int_t i=0; i<5; i++)
2612 for (i=0; i<5; i++) {
2613 if (indsubdat[i]!=0)
2617 for (k=1; k<=ngroup; k++) {
2618 for (
m=1;
m<=indsubdat[k-1];
m++) {
2624 subdat[jndex-1] = nrand + jndex - 2;
2625 for (i=1; i<=jndex-1; i++) {
2626 if(subdat[i-1] > nrand+i-2) {
2627 for(j=jndex; j>=i+1; j--) {
2628 subdat[j-1] = subdat[j-2];
2630 subdat[i-1] = nrand+i-2;
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint xy
TMatrixTRow< Double_t > TMatrixDRow
R__EXTERN TVirtualMutex * gROOTMutex
#define R__LOCKGUARD(mutex)
Class to manage histogram axis.
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
Int_t GetLast() const
Return last bin on the axis i.e.
Int_t GetFirst() const
Return first bin on the axis i.e.
void Clear(Option_t *option="") override
Clear the value.
Bool_t TestBitNumber(UInt_t bitnumber) const
void SetBitNumber(UInt_t bitnumber, Bool_t value=kTRUE)
Buffer base class used for serializing objects.
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=nullptr)=0
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
Collection abstract base class.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
TObject * Clone(const char *newname="") const override
Make a clone of an collection using the Streamer facility.
Cholesky Decomposition class.
Bool_t Solve(TVectorD &b) override
Solve equations Ax=b assuming A has been factored by Cholesky.
Bool_t Invert(TMatrixDSym &inv)
For a symmetric matrix A(m,m), its inverse A_inv(m,m) is returned .
virtual void SetChisquare(Double_t chi2)
virtual TFormula * GetFormula()
virtual Double_t EvalPar(const Double_t *x, const Double_t *params=nullptr)
Evaluate function with given coordinates and parameters.
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Evaluate this function.
virtual Bool_t IsInside(const Double_t *x) const
return kTRUE if the point is inside the function range
virtual Int_t GetNdim() const
A 2-Dim function with parameters.
Bool_t IsInside(const Double_t *x) const override
Return kTRUE is the point is inside the function range.
Graphics object made of three arrays X, Y and Z with the same number of points each.
virtual Double_t * GetEZ() const
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
Sets point number n.
Double_t GetErrorY(Int_t bin) const override
It returns the error along Y at point i.
Double_t * GetEY() const override
A TGraph is an object made of two arrays X and Y with npoints each.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
virtual Double_t GetErrorY(Int_t bin) const
It always returns a negative value. Real implementation in TGraphErrors.
TH1 is the base class of all histogram classes in ROOT.
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
virtual Int_t GetDimension() const
virtual Int_t GetBin(Int_t binx, Int_t biny=0, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
virtual void SetBinError(Int_t bin, Double_t error)
Set the bin Error Note that this resets the bin eror option to be of Normal Type and for the non-empt...
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
virtual void AddTempMatrices()
TMatrixDSym fDesignTemp2
temporary matrix, used for num.stability
Int_t GraphLinearFitter(Double_t h)
Used in TGraph::Fit().
~TLinearFitter() override
Linear fitter cleanup.
virtual Double_t GetChisquare()
Get the Chisquare.
Int_t Partition(Int_t nmini, Int_t *indsubdat)
divides the elements into approximately equal subgroups number of elements in each subgroup is stored...
virtual void GetErrors(TVectorD &vpar)
Returns parameter errors.
Double_t CStep(Int_t step, Int_t h, Double_t *residuals, Int_t *index, Int_t *subdat, Int_t start, Int_t end)
The CStep procedure, as described in the article.
virtual Int_t Merge(TCollection *list)
Merge objects in list.
void ComputeTValues()
Computes parameters' t-values and significance.
void Clear(Option_t *option="") override
Clears everything. Used in TH1::Fit and TGraph::Fit().
TLinearFitter()
default c-tor, input data is stored If you don't want to store the input data, run the function Store...
const char * GetParName(Int_t ipar) const override
Returns name of parameter #ipar
Int_t MultiGraphLinearFitter(Double_t h)
Minimisation function for a TMultiGraph.
virtual Double_t GetParSignificance(Int_t ipar)
Returns the significance of parameter #ipar
virtual Int_t Eval()
Perform the fit and evaluate the parameters Returns 0 if the fit is ok, 1 if there are errors.
TVectorD fAtbTemp2
temporary vector, used for num.stability
void PrintResults(Int_t level, Double_t amin=0) const override
Level = 3 (to be consistent with minuit) prints parameters and parameter errors.
Int_t HistLinearFitter()
Minimization function for H1s using a Chisquare method.
Int_t Graph2DLinearFitter(Double_t h)
Minimisation function for a TGraph2D.
virtual void ClearPoints()
To be used when different sets of points are fitted with the same formula.
TObjArray fFunctions
map of basis functions and formula
Int_t ExecuteCommand(const char *command, Double_t *args, Int_t nargs) override
To use in TGraph::Fit and TH1::Fit().
virtual void GetFitSample(TBits &bits)
For robust lts fitting, returns the sample, on which the best fit was based.
virtual void Add(TLinearFitter *tlf)
Add another linear fitter to this linear fitter.
virtual void GetDesignMatrix(TMatrixD &matr)
Returns the internal design matrix.
void Streamer(TBuffer &) override
Stream an object of class TObject.
virtual void AssignData(Int_t npoints, Int_t xncols, Double_t *x, Double_t *y, Double_t *e=nullptr)
This function is to use when you already have all the data in arrays and don't want to copy them into...
virtual void GetParameters(TVectorD &vpar)
Returns parameter values.
void RDraw(Int_t *subdat, Int_t *indsubdat)
Draws ngroup nonoverlapping subdatasets out of a dataset of size n such that the selected case number...
static std::map< TString, TFormula * > fgFormulaMap
virtual void SetDim(Int_t n)
set the number of dimensions
TFormula * fInputFunction
void GetConfidenceIntervals(Int_t n, Int_t ndim, const Double_t *x, Double_t *ci, Double_t cl=0.95) override
Computes point-by-point confidence intervals for the fitted function Parameters: n - number of points...
TMatrixD fX
temporary variable used for num.stability
virtual Bool_t UpdateMatrix()
Update the design matrix after the formula has been changed.
virtual void GetAtbVector(TVectorD &v)
Get the Atb vector - a vector, used for internal computations.
virtual void Chisquare()
Calculates the chisquare.
virtual void SetBasisFunctions(TObjArray *functions)
set the basis functions in case the fitting function is not set directly The TLinearFitter will manag...
virtual Int_t EvalRobust(Double_t h=-1)
Finds the parameters of the fitted function in case data contains outliers.
Double_t GetParError(Int_t ipar) const override
Returns the error of parameter #ipar
void AddToDesign(Double_t *x, Double_t y, Double_t e)
Add a point to the AtA matrix and to the Atb vector.
void FixParameter(Int_t ipar) override
Fixes paramter #ipar at its current value.
TLinearFitter & operator=(const TLinearFitter &tlf)
Assignment operator.
void CreateSubset(Int_t ntotal, Int_t h, Int_t *index)
Creates a p-subset to start ntotal - total number of points from which the subset is chosen.
virtual void SetFormula(const char *formula)
Additive parts should be separated by "++".
void ReleaseParameter(Int_t ipar) override
Releases parameter #ipar.
virtual void AddPoint(Double_t *x, Double_t y, Double_t e=1)
Adds 1 point to the fitter.
virtual Double_t GetParTValue(Int_t ipar)
Returns the t-value for parameter #ipar
Double_t * GetCovarianceMatrix() const override
Returns covariance matrix.
Double_t GetParameter(Int_t ipar) const override
virtual void StoreData(Bool_t store)
virtual TMatrixTBase< Element > & Zero()
Set matrix elements to zero.
TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t=-1) override
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the...
void Clear(Option_t *="") override
const Element * GetMatrixArray() const override
TMatrixT< Element > & Use(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Element *data)
Use the array data to fill the matrix ([row_lwb..row_upb] x [col_lwb..col_upb])
void Clear(Option_t *="") override
const Element * GetMatrixArray() const override
TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t=-1) override
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the...
A TMultiGraph is a collection of TGraph (or derived) objects.
TList * GetListOfGraphs() const
const char * GetName() const override
Returns name of object.
Int_t GetEntriesFast() const
virtual void Expand(Int_t newSize)
Expand or shrink the array to newSize elements.
void Clear(Option_t *option="") override
Remove all objects from the array.
Int_t GetEntries() const override
Return the number of objects in array (i.e.
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
TObject * UncheckedAt(Int_t i) const
Bool_t IsEmpty() const override
void Add(TObject *obj) override
Collectable string class.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual TClass * IsA() const
Random number generator class based on the maximally quidistributed combined Tausworthe generator by ...
This is the base class for the ROOT Random number generators.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
TVectorT< Element > & Zero()
Set vector elements to zero.
TVectorT< Element > & ResizeTo(Int_t lwb, Int_t upb)
Resize the vector to [lwb:upb] .
TVectorT< Element > & Use(Int_t lwb, Int_t upb, Element *data)
Use the array data to fill the vector lwb..upb].
void Clear(Option_t *="") override
Int_t NonZeros() const
Compute the number of elements != 0.0.
Int_t GetNoElements() const
Element * GetMatrixArray()
Abstract Base Class for Fitting.
virtual Int_t GetXlast() const
virtual Int_t GetYfirst() const
virtual TObject * GetObjectFit() const
virtual Foption_t GetFitOption() const
virtual Int_t GetZfirst() const
virtual Int_t GetZlast() const
virtual Int_t GetXfirst() const
TObject * fObjectFit
Pointer to object being fitted.
virtual Int_t GetYlast() const
TVirtualFitter & operator=(const TVirtualFitter &tvf)
assignment operator
static TVirtualFitter * GetFitter()
static: return the current Fitter
virtual TObject * GetUserFunc() const
Element KOrdStat(Size n, const Element *a, Size k, Size *work=0)
Returns k_th order statistic of the array a of size n (k_th smallest element out of n elements).
Long64_t LocMin(Long64_t n, const T *a)
Returns index of array with the minimum element.
T MinElement(Long64_t n, const T *a)
Returns minimum of array a of length n.
Long64_t LocMax(Long64_t n, const T *a)
Returns index of array with the maximum element.
Double_t Sqrt(Double_t x)
Returns the square root of x.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Double_t StudentI(Double_t T, Double_t ndf)
Calculates the cumulative distribution function of Student's t-distribution second parameter stands f...
Double_t StudentQuantile(Double_t p, Double_t ndf, Bool_t lower_tail=kTRUE)
Computes quantiles of the Student's t-distribution 1st argument is the probability,...
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
static uint64_t sum(uint64_t i)