332   fNdim=function->GetNdim();
 
  333   if (!function->IsLinear()){
 
  334      Int_t number=function->GetNumber();
 
  335      if (number<299 || number>310){
 
  336         Error(
"TLinearFitter", 
"Trying to fit with a nonlinear function");
 
  365   fParams(tlf.fParams),
 
  366   fParCovar(tlf.fParCovar),
 
  367   fTValues(tlf.fTValues),
 
  368   fParSign(tlf.fParSign),
 
  369   fDesign(tlf.fDesign),
 
  370   fDesignTemp(tlf.fDesignTemp),
 
  371   fDesignTemp2(tlf.fDesignTemp2),
 
  372   fDesignTemp3(tlf.fDesignTemp3),
 
  374   fAtbTemp(tlf.fAtbTemp),
 
  375   fAtbTemp2(tlf.fAtbTemp2),
 
  376   fAtbTemp3(tlf.fAtbTemp3),
 
  377   fFunctions( * (
TObjArray *)tlf.fFunctions.Clone()),
 
  380   fY2Temp(tlf.fY2Temp),
 
  383   fInputFunction(tlf.fInputFunction),
 
  385   fNpoints(tlf.fNpoints),
 
  386   fNfunctions(tlf.fNfunctions),
 
  387   fFormulaSize(tlf.fFormulaSize),
 
  389   fNfixed(tlf.fNfixed),
 
  390   fSpecial(tlf.fSpecial),
 
  393   fStoreData(tlf.fStoreData),
 
  394   fChisquare(tlf.fChisquare),
 
  396   fRobust(tlf.fRobust),
 
  397   fFitsample(tlf.fFitsample),
 
  582      Error(
"AddPoint", 
"Point can't be added, because the formula hasn't been set");
 
  600      Error(
"AddData", 
"Those points are already added");
 
  611   fX.
Use(npoints, xncols, 
x);
 
  626      for (
Int_t i=xfirst; i<npoints; i++)
 
  648      for (i=1; i<npar; i++)
 
  650      for (i=0; i<npar; i++)
 
  656      for (i=0; i<npar; i++)
 
  664            if (obj->IsA() == TFormula::Class() ) {
 
  668            else if  (obj->IsA() == TF1::Class() ) {
 
  673               Error(
"AddToDesign",
"Basis Function %s is of an invalid type %s",obj->
GetName(),obj->IsA()->
GetName());
 
  679               Error(
"AddToDesign",
"Function %s has no linear parts - maybe missing a ++ in the formula expression",
fInputFunction->
GetName());
 
  832            temp2 = (
fY(i)-temp)*(
fY(i)-temp);
 
  833            temp2 /= 
fE(i)*
fE(i);
 
  844               for (i=1; i<npar; i++)
 
  845                  val[i] = val[i-1]*
fX(point, 0);
 
  846               for (i=0; i<npar; i++)
 
  853                  for (i=0; i<npar; i++)
 
  863         temp2 = (
fY(point)-temp)*(
fY(point)-temp);
 
  864         temp2 /= 
fE(point)*
fE(point);
 
  892      Error(
"TLinearFitter::Eval", 
"The formula hasn't been set");
 
  933            for (ii=0; ii<i; ii++)
 
  960      Error(
"Eval",
"Matrix inversion failed");
 
  997            for (ii=0; ii<i; ii++){
 
 1018      Error(
"FixParameter", 
"no value available to fix the parameter");
 
 1022      Error(
"FixParameter", 
"illegal parameter value");
 
 1026      Error(
"FixParameter", 
"no free parameters left");
 
 1041      Error(
"FixParameter", 
"illegal parameter value");
 
 1045      Error(
"FixParameter", 
"no free parameters left");
 
 1063      Error(
"ReleaseParameter", 
"illegal parameter value");
 
 1067      Warning(
"ReleaseParameter",
"This parameter is not fixed\n");
 
 1121      for (
Int_t ipoint=0; ipoint<
n; ipoint++){
 
 1128               sum_vector[irow]+=
fParCovar(irow,icol)*grad[icol];
 
 1132            c+=grad[i]*sum_vector[i];
 
 1134         ci[ipoint]=
c*t*chidf;
 
 1138      delete [] sum_vector;
 
 1165      Error(
"GetConfidenceIntervals", 
"The case of fitting not with a TFormula is not yet implemented");
 
 1174         Error(
"GetConfidenceIntervals", 
"A TGraphErrors should be passed instead of a graph");
 
 1178         Error(
"GetConfidenceIntervals", 
"A TGraph2DErrors should be passed instead of a graph");
 
 1183            Error(
"GetConfidenceIntervals", 
"A TGraph2DErrors or a TH23 should be passed instead of a graph");
 
 1197         Error(
"GetConfidenceIntervals", 
"A TGraph2DErrors should be passed instead of a TGraph2D");
 
 1201         Error(
"GetConfidenceIntervals", 
"A TGraphErrors should be passed instead of a TGraph2D");
 
 1206            Error(
"GetConfidenceIntervals", 
"A TGraphErrors or a TH1 should be passed instead of a graph");
 
 1219      for (
Int_t ipoint=0; ipoint<np; ipoint++){
 
 1227               sum_vector[irow]+=
fParCovar(irow, icol)*grad[icol];
 
 1230            c+=grad[i]*sum_vector[i];
 
 1233         gr2->
GetEZ()[ipoint]=
c*t*chidf;
 
 1236      delete [] sum_vector;
 
 1242         if (((
TH1*)obj)->GetDimension()>1){
 
 1243            Error(
"GetConfidenceIntervals", 
"Fitted graph and passed histogram have different number of dimensions");
 
 1248         if (((
TH1*)obj)->GetDimension()!=2){
 
 1249            Error(
"GetConfidenceIntervals", 
"Fitted graph and passed histogram have different number of dimensions");
 
 1255            Error(
"GetConfidenceIntervals", 
"Fitted and passed histograms have different number of dimensions");
 
 1278      for (
Int_t binz=hzfirst; binz<=hzlast; binz++){
 
 1280         for (
Int_t biny=hyfirst; biny<=hylast; biny++) {
 
 1282            for (
Int_t binx=hxfirst; binx<=hxlast; binx++) {
 
 1289                     sum_vector[irow]+=
fParCovar(irow, icol)*grad[icol];
 
 1292                  c+=grad[i]*sum_vector[i];
 
 1300      delete [] sum_vector;
 
 1303      Error(
"GetConfidenceIntervals", 
"This object type is not supported");
 
 1370      Error(
"GetParError", 
"illegal value of parameter");
 
 1388      Error(
"GetParError", 
"illegal value of parameter");
 
 1402      Error(
"GetParError", 
"illegal value of parameter");
 
 1416      Error(
"GetParTValue", 
"illegal value of parameter");
 
 1430      Error(
"GetParSignificance", 
"illegal value of parameter");
 
 1444      Error(
"GetFitSample", 
"there is no fit sample in ordinary least-squares fit");
 
 1457   if (!list) 
return -1;
 
 1462         Error(
"Add",
"Attempt to add object of class: %s to a %s",lfit->
ClassName(),this->ClassName());
 
 1503   for (
int i=0; i<
size; i++)
 
 1550   fstring = (
char *)strstr(
fFormula, 
"hyp");
 
 1554      sscanf(fstring, 
"%d", &
size);
 
 1563      sstring = sstring.
ReplaceAll(
"++", 2, 
"|", 1);
 
 1582      char replacement[14];
 
 1583      for (i=0; i<
fNdim; i++){
 
 1584         snprintf(pattern,
sizeof(pattern), 
"x%d", i);
 
 1585         snprintf(replacement,
sizeof(replacement), 
"x[%d]", i);
 
 1607            Error(
"TLinearFitter", 
"f_linear not allocated");
 
 1610         special=
f->GetNumber();
 
 1614      if ((
fNfunctions==1)&&(special>299)&&(special<310)){
 
 1646   for (i=0; i<
size; i++)
 
 1666   if ((special>299)&&(special<310)){
 
 1705   if (function->InheritsFrom(TF1::Class())){
 
 1708         ((
TF1*)function)->GetParLimits(i,al,bl);
 
 1709         if (al*bl !=0 && al >= bl) {
 
 1740   if (!strcmp(command, 
"FitGraph")){
 
 1744   if (!strcmp(command, 
"FitGraph2D")){
 
 1748   if (!strcmp(command, 
"FitMultiGraph")){
 
 1766         printf(
"Fitting results:\nParameters:\nNO.\t\tVALUE\t\tERROR\n");
 
 1771         printf(
"Fitting results:\nParameters:\nNO.\t\tVALUE\n");
 
 1773            printf(
"%d\t%e\n", i, 
fParams(i));
 
 1794   Int_t fitResult = 0;
 
 1805   for (
Int_t i=0; i<
n; i++){
 
 1808      if (
e<0 || fitOption.
W1)
 
 1823         for (
Int_t i=0; i<
n; i++){
 
 1826            temp2=(
y[i]-temp)*(
y[i]-temp);
 
 1828            if (
e<0 || fitOption.
W1)
 
 1867   for (
Int_t bin=0;bin<
n;bin++) {
 
 1874      e=
gr->GetErrorZ(bin);
 
 1875      if (
e<0 || fitOption.
W1)
 
 1890         for (
Int_t bin=0; bin<
n; bin++){
 
 1898            temp=f2->
Eval(
x[0], 
x[1]);
 
 1899            temp2=(z-temp)*(z-temp);
 
 1900            e=
gr->GetErrorZ(bin);
 
 1901            if (
e<0 || fitOption.
W1)
 
 1941      for (i=0; i<
n; i++){
 
 1944         if (
e<0 || fitOption.
W1)
 
 1965            for (i=0; i<
n; i++){
 
 1968               temp2=(gy[i]-temp)*(gy[i]-temp);
 
 1970               if (
e<0 || fitOption.
W1)
 
 1994   Int_t bin,binx,biny,binz;
 
 2015   for (binz=hzfirst;binz<=hzlast;binz++) {
 
 2017      for (biny=hyfirst;biny<=hylast;biny++) {
 
 2019         for (binx=hxfirst;binx<=hxlast;binx++) {
 
 2022            bin = hfit->
GetBin(binx,biny,binz);
 
 2029               if (fitOption.
W1==1 && cu == 0) 
continue;
 
 2033               if (eu <= 0) 
continue;
 
 2045         for (binz=hzfirst;binz<=hzlast;binz++) {
 
 2047            for (biny=hyfirst;biny<=hylast;biny++) {
 
 2049               for (binx=hxfirst;binx<=hxlast;binx++) {
 
 2052                  bin = hfit->
GetBin(binx,biny,binz);
 
 2056                     if (fitOption.
W1==1 && cu == 0) 
continue;
 
 2060                     if (eu <= 0) 
continue;
 
 2063                  temp2=(cu-temp)*(cu-temp);
 
 2079void TLinearFitter::Streamer(
TBuffer &R__b)
 
 2114   Int_t i, j, maxind=0, k, k1 = 500;
 
 2119      Error(
"TLinearFitter::EvalRobust", 
"The formula hasn't been set");
 
 2125   for (i=0; i<nbest; i++)
 
 2130   if (
h>0.000001 && h<1 && fNpoints*h > hdef)
 
 2134      if (
h>0) 
Warning(
"Fitting:", 
"illegal value of H, default is taken, h = %3.2f",
double(hdef)/
fNpoints);
 
 2150      for (k = 0; k < k1; k++) {
 
 2152         chi2 = 
CStep(1, 
fH, residuals,index, index, -1, -1);
 
 2153         chi2 = 
CStep(2, 
fH, residuals,index, index, -1, -1);
 
 2155         if (chi2 < bestchi2[maxind]) {
 
 2156            bestchi2[maxind] = chi2;
 
 2158               cstock(i, maxind) = 
fParams(i);
 
 2165      for (i=0; i<nbest; i++) {
 
 2169         while (chi2 > kEps) {
 
 2170            chi2 = 
CStep(2, 
fH, residuals,index, index, -1, -1);
 
 2177         if (chi2 <= currentbest + kEps) {
 
 2178            for (j=0; j<
fH; j++){
 
 2179               bestindex[j]=index[j];
 
 2188         fParams(j) = cstock(j, maxind);
 
 2190      for (j=0; j<
fH; j++){
 
 2200      delete [] bestindex;
 
 2201      delete [] residuals;
 
 2216   RDraw(subdat, indsubdat);
 
 2221   Int_t i_end = indsubdat[0];
 
 2223   for (
Int_t kgroup = 0; kgroup < nsub; kgroup++) {
 
 2226      for (i=0; i<nbest; i++)
 
 2228      for (k=0; k<k2; k++) {
 
 2230         chi2 = 
CStep(1, hsub, residuals, index, subdat, i_start, i_end);
 
 2231         chi2 = 
CStep(2, hsub, residuals, index, subdat, i_start, i_end);
 
 2233         if (chi2 < bestchi2[maxind]){
 
 2235               cstockbig(i, nbest*kgroup + maxind) = 
fParams(i);
 
 2236            bestchi2[maxind] = chi2;
 
 2239      if (kgroup != nsub - 1){
 
 2240         i_start += indsubdat[kgroup];
 
 2241         i_end += indsubdat[kgroup+1];
 
 2245   for (i=0; i<nbest; i++)
 
 2249   for (k=0; k<nbest*5; k++) {
 
 2252      chi2 = 
CStep(1, hsub2, residuals, index, subdat, 0, 
sum);
 
 2253      chi2 = 
CStep(2, hsub2, residuals, index, subdat, 0, 
sum);
 
 2255      if (chi2 < bestchi2[maxind]){
 
 2256         beststock[maxind] = k;
 
 2257         bestchi2[maxind] = chi2;
 
 2262   for (k=0; k<nbest; k++) {
 
 2264         fParams(i) = cstockbig(i, beststock[k]);
 
 2265      chi2 = 
CStep(1, 
fH, residuals, index, index, -1, -1);
 
 2266      chi2 = 
CStep(2, 
fH, residuals, index, index, -1, -1);
 
 2272      fParams(i)=cstockbig(i, beststock[maxind]);
 
 2275   while (chi2 > kEps) {
 
 2276      chi2 = 
CStep(2, 
fH, residuals, index, index, -1, -1);
 
 2277      if (
TMath::Abs(chi2 - bestchi2[maxind]) < kEps)
 
 2280         bestchi2[maxind] = chi2;
 
 2284   for (j=0; j<
fH; j++)
 
 2293   delete [] beststock;
 
 2295   delete [] residuals;
 
 2311   for(i=0; i<ntotal; i++)
 
 2312      index[i] = ntotal+1;
 
 2317      num=
Int_t(
r.Uniform(0, 1)*(ntotal-1));
 
 2319         for(j=0; j<=i-1; j++) {
 
 2344   while (!ok && (nindex < 
h)) {
 
 2347         num=
Int_t(
r.Uniform(0,1)*(ntotal-1));
 
 2349         for(i=0; i<nindex; i++) {
 
 2355      } 
while(repeat==
kTRUE);
 
 2357      index[nindex] = num;
 
 2378      for (i=0; i<
n; i++) {
 
 2380         itemp = subdat[start+i];
 
 2389                  for (j=1; j<npar; j++)
 
 2390                     val[j] = val[j-1]*
fX(itemp, 0);
 
 2391                  for (j=0; j<npar; j++)
 
 2397               for (j=0; j<npar; j++)
 
 2408         residuals[i] = (
fY(itemp) - func)*(
fY(itemp) - func)/(
fE(i)*
fE(i));
 
 2422               for (j=1; j<npar; j++)
 
 2423                  val[j] = val[j-1]*
fX(i, 0);
 
 2424               for (j=0; j<npar; j++)
 
 2430               for (j=0; j<npar; j++)
 
 2440         residuals[i] = (
fY(i) - func)*(
fY(i) - func)/(
fE(i)*
fE(i));
 
 2454   if (step==1) 
return 0;
 
 2459      for (i=0; i<
h; i++) {
 
 2460         itemp = subdat[start+index[i]];
 
 2469                  for (j=1; j<npar; j++)
 
 2470                     val[j] = val[j-1]*
fX(itemp, 0);
 
 2471                  for (j=0; j<npar; j++)
 
 2477               for (j=0; j<npar; j++)
 
 2487         sum+=(
fY(itemp)-func)*(
fY(itemp)-func)/(
fE(itemp)*
fE(itemp));
 
 2490      for (i=0; i<
h; i++) {
 
 2499               for (j=1; j<npar; j++)
 
 2500                  val[j] = val[j-1]*
fX(index[i], 0);
 
 2501               for (j=0; j<npar; j++)
 
 2508                  for (j=0; j<npar; j++)
 
 2520         sum+=(
fY(index[i])-func)*(
fY(index[i])-func)/(
fE(index[i])*
fE(index[i]));
 
 2554      Error(
"Linf",
"Matrix inversion failed");
 
 2607            for(
Int_t i=0; i<5; i++)
 
 2626   for (i=0; i<5; i++) {
 
 2627      if (indsubdat[i]!=0)
 
 2631   for (k=1; k<=ngroup; k++) {
 
 2632      for (
m=1; 
m<=indsubdat[k-1]; 
m++) {
 
 2638            subdat[jndex-1] = nrand + jndex - 2;
 
 2639            for (i=1; i<=jndex-1; i++) {
 
 2640               if(subdat[i-1] > nrand+i-2) {
 
 2641                  for(j=jndex; j>=i+1; j--) {
 
 2642                     subdat[j-1] = subdat[j-2];
 
 2644                  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
 
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="")
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=0)=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.
 
virtual TObject * Clone(const char *newname="") const
Make a clone of an collection using the Streamer facility.
 
Cholesky Decomposition class.
 
virtual Bool_t Solve(TVectorD &b)
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 Double_t EvalPar(const Double_t *x, const Double_t *params=0)
Evaluate function with given coordinates and parameters.
 
virtual TFormula * GetFormula()
 
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.
 
virtual Bool_t IsInside(const Double_t *x) const
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
It returns the error along Y at point i.
 
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
 
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
 
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.
 
The Linear Fitter - For fitting functions that are LINEAR IN PARAMETERS.
 
virtual Double_t * GetCovarianceMatrix() const
Returns covariance matrix.
 
virtual void AddTempMatrices()
 
virtual Int_t ExecuteCommand(const char *command, Double_t *args, Int_t nargs)
To use in TGraph::Fit and TH1::Fit().
 
virtual Double_t GetParError(Int_t ipar) const
Returns the error of parameter #ipar.
 
TMatrixDSym fDesignTemp2
temporary matrix, used for num.stability
 
Int_t GraphLinearFitter(Double_t h)
Used in TGraph::Fit().
 
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.
 
virtual ~TLinearFitter()
Linear fitter cleanup.
 
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.
 
virtual const char * GetParName(Int_t ipar) const
Returns name of parameter #ipar.
 
virtual void Clear(Option_t *option="")
Clears everything. Used in TH1::Fit and TGraph::Fit().
 
virtual void PrintResults(Int_t level, Double_t amin=0) const
Level = 3 (to be consistent with minuit) prints parameters and parameter errors.
 
void ComputeTValues()
Computes parameters' t-values and significance.
 
TLinearFitter()
default c-tor, input data is stored If you don't want to store the input data, run the function Store...
 
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
 
Int_t HistLinearFitter()
Minimization function for H1s using a Chisquare method.
 
virtual Double_t GetParameter(Int_t ipar) const
 
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.
 
virtual void ReleaseParameter(Int_t ipar)
Releases parameter #ipar.
 
TObjArray fFunctions
map of basis functions and formula
 
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.
 
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
 
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 void FixParameter(Int_t ipar)
Fixes paramter #ipar at its current value.
 
virtual Int_t EvalRobust(Double_t h=-1)
Finds the parameters of the fitted function in case data contains outliers.
 
void AddToDesign(Double_t *x, Double_t y, Double_t e)
Add a point to the AtA matrix and to the Atb vector.
 
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 "++".
 
virtual void GetConfidenceIntervals(Int_t n, Int_t ndim, const Double_t *x, Double_t *ci, Double_t cl=0.95)
Computes point-by-point confidence intervals for the fitted function Parameters: n - number of points...
 
virtual void AddPoint(Double_t *x, Double_t y, Double_t e=1)
Adds 1 point to the fitter.
 
virtual void AssignData(Int_t npoints, Int_t xncols, Double_t *x, Double_t *y, Double_t *e=0)
This function is to use when you already have all the data in arrays and don't want to copy them into...
 
virtual Double_t GetParTValue(Int_t ipar)
Returns the t-value for parameter #ipar.
 
virtual void StoreData(Bool_t store)
 
virtual TMatrixTBase< Element > & Zero()
Set matrix elements to zero.
 
virtual const Element * GetMatrixArray() const
 
virtual TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t=-1)
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the...
 
virtual void Clear(Option_t *="")
 
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])
 
virtual TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t=-1)
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the...
 
virtual const Element * GetMatrixArray() const
 
virtual void Clear(Option_t *="")
 
A TMultiGraph is a collection of TGraph (or derived) objects.
 
TList * GetListOfGraphs() const
 
virtual const char * GetName() const
Returns name of object.
 
Int_t GetEntriesFast() const
 
virtual void Expand(Int_t newSize)
Expand or shrink the array to newSize elements.
 
Int_t GetEntries() const
Return the number of objects in array (i.e.
 
virtual void Clear(Option_t *option="")
Remove all objects from the array.
 
TObject * UncheckedAt(Int_t i) const
 
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
 
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.
 
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.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
TVectorT< Element > & Zero()
Set vector elements to zero.
 
void Clear(Option_t *="")
 
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].
 
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)
Return index of array with the minimum element.
 
T MinElement(Long64_t n, const T *a)
Return minimum of array a of length n.
 
Long64_t LocMax(Long64_t n, const T *a)
Return index of array with the maximum element.
 
Double_t Sqrt(Double_t x)
 
Short_t Min(Short_t a, Short_t 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,...
 
static uint64_t sum(uint64_t i)