161   for (
int i = 0; i<5; ++i) 
fINDFLG[i] = 0;
 
  220      gROOT->GetListOfSpecials()->Remove(
this);
 
  352   if (
fFCN) (*fFCN)(npar,grad,fval,par,flag);
 
  393   static TString clower = 
"abcdefghijklmnopqrstuvwxyz";
 
  394   static TString cupper = 
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
  395   const Int_t nntot = 40;
 
  396   const char *
cname[nntot] = {
 
  441   if (nargs<=0) 
fCmPar[0] = 0;
 
  444      if(i<nargs) 
fCmPar[i] = args[i];
 
  456   for (ind = 0; ind < nntot; ++ind) {
 
  457      if (strncmp(ctemp.
Data(),
cname[ind],3) == 0) 
break;
 
  459   if (ind==nntot) 
return -3; 
 
  460   if (
fCword(0,4) == 
"MINO") ind=3;
 
  462      case 0:  
case 3: 
case 2: 
case 28:
 
  484         if (nargs<1) 
return -1; 
 
  485         for (i=0;i<nargs;i++) {
 
  491         if (nargs<1) 
return 0;
 
  493            for (i=0;i<
fNpar;i++)
 
  502         if (nargs<1) 
return -1; 
 
  503         for (i=0;i<nargs;i++) {
 
  516         Printf(
"SAVe command is obsolete");
 
  521         {
if(nargs<1) 
return -1;
 
  542      case 26:   
case 27:  
case 29:  
case 30:  
case 31:  
case 32:
 
  544      case 33:   
case 34:   
case 35:  
case 36:   
case 37:  
case 38:
 
  546         Printf(
"Obsolete command. Use corresponding SET command instead");
 
  559   static Int_t nntot = 30;
 
  560   static const char *
cname[30] = {
 
  592   TString  cfname, cmode, ckind,  cwarn, copt, ctemp, ctemp2;
 
  595   for (ind = 0; ind < nntot; ++ind) {
 
  599      if (strstr(ctemp2.
Data(),ckind.
Data())) 
break;
 
  602   if(ctemp2.
Contains(
"SET")) setCommand=
true;
 
  605   if (ind>=nntot) 
return -3;
 
  609         if(!setCommand) 
Printf(
"FCN=%f",
fS);
 
  613         if (nargs<2 && setCommand) 
return -1;
 
  619            if(parnum<0 || parnum>=
fNpar) 
return -2; 
 
  624               if(parnum<0 || parnum>=
fNpar) 
return -2; 
 
  627               for (i=0;i<
fNpar;i++)
 
  643                  Printf(
"Limits for param %s: Low=%E, High=%E",
 
  647            if(parnum<0 || parnum>=
fNpar)
return -1;
 
  652                  if(uplim==lolim) 
return -1;
 
  662               fAMN[parnum] = lolim;
 
  663               fAMX[parnum] = uplim;
 
  665               Printf(
"Limits for param %s Low=%E, High=%E",
 
  672         if(setCommand) 
return 0;
 
  673         Printf(
"\nCovariant matrix ");
 
  675         for (i=0;i<
fNpar;i++) 
if(
fPL0[i]>0.) nn++;
 
  677            for(;
fPL0[nnn]<=0.;nnn++) { }
 
  678            printf(
"%5s: ",
fANames[nnn++].Data());
 
  679            for (
Int_t j=0;j<=i;j++)
 
  680               printf(
"%11.2E",
fZ[
l++]);
 
  681            std::cout<<std::endl;
 
  683         std::cout<<std::endl;
 
  687         if(setCommand) 
return 0;
 
  688         Printf(
"\nGlobal correlation factors (maximum correlation of the parameter\n  with arbitrary linear combination of other parameters)");
 
  689         for(i=0;i<
fNpar;i++) {
 
  690            printf(
"%5s: ",
fANames[i].Data());
 
  693         std::cout<<std::endl;
 
  698         if(!setCommand) 
return 0;
 
  702         if(!setCommand) 
return 0;
 
  714         if(!setCommand) 
return 0;
 
  718         if(!setCommand) 
return 0;
 
  735            Printf(
"Relative floating point precision RP=%E",
fRP);
 
  739               if (pres<1e-5 && pres>1
e-34) 
fRP=pres;
 
  749         if(setCommand) 
return 0;
 
  750         Printf(
"FUMILI-ROOT version 0.1");
 
  755         if(!setCommand) 
return 0;
 
  759         if(!setCommand) 
return 0;
 
  775   if(ipar>=0 && ipar<
fNpar && 
fPL0[ipar]>0.) {
 
  796   if (i < 0 || i >= 
fNpar || j < 0 || j >= 
fNpar) {
 
  797      Error(
"GetCovarianceMatrixElement",
"Illegal arguments i=%d, j=%d",i,j);
 
  828   if (ipar<0 || ipar>=
fNpar) 
return 0;
 
  837   if (ipar<0 || ipar>=
fNpar) 
return 0;
 
  838   else return fA[ipar];
 
  854   if (ipar<0 || ipar>=
fNpar) {
 
  874   if (ipar < 0 || ipar > 
fNpar) 
return "";
 
  886   if (ipar<0 || ipar>=
fNpar) {
 
  912      if(
fPL0[ii]>0.) nvpar++;
 
  953   Int_t i, k, 
l, ii, ki, li, kk, ni, ll, nk, nl, ir, lk;
 
  962   ap = 1.0e0 / (aps * aps);
 
  964   for (i = 1; i <= 
n; ++i) {
 
  967         if (pl_1[ir] <= 0.0e0) 
goto L1;
 
  970         ni = i * (i - 1) / 2;
 
  973         if (z_1[ii] <= rp * 
TMath::Abs(r_1[ir]) || z_1[ii] <= ap) {
 
  976         z_1[ii] = 1.0e0 / sqrt(z_1[ii]);
 
  979         if (nl - ni <= 0) 
goto L5;
 
  989         if (i - 
n >= 0) 
goto L12;
 
  993         nk = k * (k - 1) / 2;
 
  996         d = z_1[kk] * z_1[ii];
 
 1002         z_1[ll] -= z_1[li] * 
c;
 
 1005         if (
l - i <= 0) 
goto L9;
 
 1010         z_1[ll] -= z_1[li] * 
d;
 
 1013         if (
l <= 0) 
goto L10;
 
 1017         if (k - i - 1 <= 0) 
goto L11;
 
 1023      for (i = 1; i <= 
n; ++i) {
 
 1024         for (k = i; k <= 
n; ++k) {
 
 1025            nl = k * (k - 1) / 2;
 
 1028            for (
l = k; 
l <= 
n; ++
l) {
 
 1031               d += z_1[li] * z_1[lk];
 
 1034            ki = k * (k - 1) / 2 + i;
 
 1043      for (i = 1; i <= k; ++i) {
 
 1046            if (pl_1[ir] <= 0.0e0) {
 
 1062   if(ipar < 0 || ipar >= 
fNpar) {
 
 1063      Warning(
"IsFixed",
"Illegal parameter number :%d",ipar);
 
 1098   for( i = 0; i < 
fNpar; i++) {
 
 1103   Int_t nn2, 
n, fixFLG,  ifix1, fi, nn3, nn1, n0;
 
 1127   for( i=0; i < 
n; i++) {
 
 1144   for( i = 0; i < 
n; i++) {
 
 1157   for( i=0; i < nn0; i++) 
fZ[i]=0.;
 
 1169   if(!ijkl) 
return 10;
 
 1176   for( i=0; i < nn0; i++) 
fZ0[i] = 
fZ[i];
 
 1182            if(        0.59*t < -
fGT) 
goto L19;
 
 1184            if (t < 0.25 ) t = 0.25;
 
 1190         for( i = 0; i < 
n; i++) {
 
 1207      printf(
"trying to execute an illegal jump at L85\n");
 
 1218   for( i = 0; i < 
n; i++) {
 
 1225            if ((
fA[i] >= 
fAMX[i] && 
fGr[i] < 0.) ||
 
 1232               for( j=0; j <= i; j++) {
 
 1237                        fZ[k2 -1] = 
fZ0[k1 -1];
 
 1253   for( i = 0; i < 
n; i++) {
 
 1269      fixFLG = fixFLG + 1;
 
 1276   for( i = 0; i < 
n; i++) {
 
 1280         for( 
l = 0; 
l < 
n; 
l++) {
 
 1284               if (i1 <= l1 ) k=l1*(l1-1)/2+i1;
 
 1285               else k=i1*(i1-1)/2+l1;
 
 1300   for( i = 0; i < 
n; i++)
 
 1324      fixFLG = fixFLG + 1;
 
 1338   for( i = 0; i < 
n; i++) {
 
 1341         abi = 
fA[i] + 
fPL[i]; 
 
 1345            abi = 
fA[i] - 
fPL[i]; 
 
 1374   if (alambd > .0) amb = 0.25/alambd;
 
 1375   for( i = 0; i < 
n; i++) {
 
 1447      for ( i = 0; i < 
n; i++) 
fA[i] = 
fA[i] + 
fDA[i];
 
 1448      if (imax >= 0) 
fA[imax] = aiMAX;
 
 1458         if( 
fPL0[ip] > .0) {
 
 1459            for( 
Int_t jp = 0; jp <= ip; jp++) {
 
 1487   TString colhdu[3],colhdl[3],cx2,cx3;
 
 1490      exitStatus=
"CONVERGED";
 
 1493      exitStatus=
"CONST FCN";
 
 1494      xsexpl=
"****\n* FUNCTION IS NOT DECREASING OR BAD DERIVATIVES\n****";
 
 1497      exitStatus=
"ERRORS INF";
 
 1498      xsexpl=
"****\n* ESTIMATED ERRORS ARE INfiNITE\n****";
 
 1501      exitStatus=
"MAX ITER.";
 
 1502      xsexpl=
"****\n* MAXIMUM NUMBER OF ITERATIONS IS EXCEEDED\n****";
 
 1505      exitStatus=
"ZERO PROBAB";
 
 1506      xsexpl=
"****\n* PROBABILITY OF LIKLIHOOD FUNCTION IS NEGATIVE OR ZERO\n****";
 
 1509      exitStatus=
"UNDEfiNED";
 
 1510      xsexpl=
"****\n* fiT IS IN PROGRESS\n****";
 
 1515      colhdl[0] = 
"      ERROR   ";
 
 1516      colhdu[1] = 
"      PHYSICAL";
 
 1517      colhdu[2] = 
" LIMITS       ";
 
 1518      colhdl[1] = 
"    NEGATIVE  ";
 
 1519      colhdl[2] = 
"    POSITIVE  ";
 
 1523      colhdl[0] = 
"      ERROR   ";
 
 1524      colhdu[1] = 
"    INTERNAL  ";
 
 1525      colhdl[1] = 
"    STEP SIZE ";
 
 1526      colhdu[2] = 
"    INTERNAL  ";
 
 1527      colhdl[2] = 
"      VALUE   ";
 
 1531      colhdl[0] = 
"      ERROR   ";
 
 1532      colhdu[1] = 
"       STEP   ";
 
 1533      colhdl[1] = 
"       SIZE   ";
 
 1534      colhdu[2] = 
"       fiRST  ";
 
 1535      colhdl[2] = 
"    DERIVATIVE";
 
 1538      colhdu[0] = 
"    PARABOLIC ";
 
 1539      colhdl[0] = 
"      ERROR   ";
 
 1540      colhdu[1] = 
"        MINOS ";
 
 1541      colhdu[2] = 
"ERRORS        ";
 
 1542      colhdl[1] = 
"   NEGATIVE   ";
 
 1543      colhdl[2] = 
"   POSITIVE   ";
 
 1546   Printf(
" FCN=%g FROM FUMILI  STATUS=%-10s %9d CALLS OF FCN",
 
 1549   Printf(
"  EXT PARAMETER              %-14s%-14s%-14s",
 
 1550         (
const char*)colhdu[0].Data()
 
 1551         ,(
const char*)colhdu[1].Data()
 
 1552         ,(
const char*)colhdu[2].Data());
 
 1553   Printf(
"  NO.   NAME          VALUE  %-14s%-14s%-14s",
 
 1554         (
const char*)colhdl[0].Data()
 
 1555         ,(
const char*)colhdl[1].Data()
 
 1556         ,(
const char*)colhdl[2].Data());
 
 1570         cx3 = 
Form(
"%14.5e",
fA[i]);
 
 1573         cx2 = 
" *undefined*  ";
 
 1574         cx3 = 
" *undefined*  ";
 
 1576      if(
fPL0[i]<=0.) { cx2=
"    *fixed*   ";cx3=
""; }
 
 1577      Printf(
"%4d %-11s%14.5e%14.5e%-14s%-14s",i+1
 
 1587   if(ipar>=0 && ipar<
fNpar && 
fPL0[ipar]<=0.) {
 
 1642   if (ipar<0 || ipar>=
fNpar) 
return -1;
 
 1673   Int_t i,j,
l,k2=1,k1,ki=0;
 
 1707         fS = 
fS + (
y*
y/(sig*sig))*.5; 
 
 1710      for (i=0;i<
fNpar;i++) {
 
 1713            fGr[i] += df[
n]*(
y/sig);
 
 1720            fZ[
l++] += df[i]*df[j];
 
 1757   if(flag == 9) 
return;
 
 1768      if (nd > 2) 
x[2]     = cache[4];
 
 1769      if (nd > 1) 
x[1]     = cache[3];
 
 1780         for (j=0;j<npar;j++) {
 
 1784               gin[j] += df[
n]*fsum;
 
 1790            for (
Int_t k=0;k<=j;k++)
 
 1791               zik[
l++] += df[j]*df[k];
 
 1824   if(flag == 9) 
return;
 
 1838         fu = 
f1->
Integral(cache[2] - 0.5*cache[3],cache[2] + 0.5*cache[3])/cache[3];
 
 1839      } 
else if (nd < 3) {
 
 1840         fu = ((
TF2*)
f1)->Integral(cache[2] - 0.5*cache[3],cache[2] + 0.5*cache[3],cache[4] - 0.5*cache[5],cache[4] + 0.5*cache[5])/(cache[3]*cache[5]);
 
 1842         fu = ((
TF3*)
f1)->Integral(cache[2] - 0.5*cache[3],cache[2] + 0.5*cache[3],cache[4] - 0.5*cache[5],cache[4] + 0.5*cache[5],cache[6] - 0.5*cache[7],cache[6] + 0.5*cache[7])/(cache[3]*cache[5]*cache[7]);
 
 1850         for (j=0;j<npar;j++) {
 
 1854               gin[j] += df[
n]*fsum;
 
 1860            for (
Int_t k=0;k<=j;k++)
 
 1861               zik[
l++] += df[j]*df[k];
 
 1905   if(flag == 9) 
return;
 
 1907   if (flag == 2) 
for (j=0;j<npar;j++) dersum[j] = gin[j] = 0;
 
 1914      if (nd > 2) 
x[2] = cache[4];
 
 1915      if (nd > 1) 
x[1] = cache[3];
 
 1922         for (j=0;j<npar;j++) {
 
 1927      if (fu < 1.e-9) fu = 1.e-9;
 
 1936      for (j=0;j<npar;j++) {
 
 1938            df[
n]   = df[j]*(icu/fu-1);
 
 1947         for (
Int_t k=0;k<=j;k++)
 
 1948            zik[
l++] += df[j]*df[k];
 
 1990   if(flag == 9) {
delete [] df; 
return;}
 
 1991   if (flag == 2) 
for (j=0;j<npar;j++) dersum[j] = gin[j] = 0;
 
 1998      if (nd > 2) 
x[2] = cache[4];
 
 1999      if (nd > 1) 
x[1] = cache[3];
 
 2004         fu = 
f1->
Integral(cache[2] - 0.5*cache[3],cache[2] + 0.5*cache[3])/cache[3];
 
 2005      } 
else if (nd < 3) {
 
 2006         fu = ((
TF2*)
f1)->Integral(cache[2] - 0.5*cache[3],cache[2] + 0.5*cache[3],cache[4] - 0.5*cache[5],cache[4] + 0.5*cache[5])/(cache[3]*cache[5]);
 
 2008         fu = ((
TF3*)
f1)->Integral(cache[2] - 0.5*cache[3],cache[2] + 0.5*cache[3],cache[4] - 0.5*cache[5],cache[4] + 0.5*cache[5],cache[6] - 0.5*cache[7],cache[6] + 0.5*cache[7])/(cache[3]*cache[5]*cache[7]);
 
 2012         for (j=0;j<npar;j++) {
 
 2017      if (fu < 1.e-9) fu = 1.e-9;
 
 2026      for (j=0;j<npar;j++) {
 
 2028            df[
n]   = df[j]*(icu/fu-1);
 
 2037         for (
Int_t k=0;k<=j;k++)
 
 2038            zik[
l++] += df[j]*df[k];
 
 2117   Int_t i, bin, npfits=0;
 
 2131   if(flag == 9) 
return;
 
 2139   for (bin=0;bin<
n;bin++) {
 
 2154         if (exl < 0) exl = 0;
 
 2155         if (exh < 0) exh = 0;
 
 2157         if (exh > 0 && exl > 0) {
 
 2163         if (eu <= 0) eu = 1;
 
 2168      fsum = (fu-cu)/eusq;
 
 2169      for (i=0;i<npar;i++) {
 
 2173            gin[i] += df[
n]*fsum;
 
 2179         for (
Int_t j=0;j<=i;j++)
 
 2180            zik[
l++] += df[i]*df[j];
 
static const Double_t gMAXDOUBLE
 
void H1FitChisquareFumili(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for H1s using a Chisquare method.
 
void GraphFitChisquareFumili(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for Graphs using a Chisquare method.
 
void H1FitLikelihoodFumili(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for H1s using a Likelihood method.
 
static const Double_t gMINDOUBLE
 
R__EXTERN TFumili * gFumili
 
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 winding char text const char depth char const char Int_t count const char cname
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
static void RejectPoint(Bool_t reject=kTRUE)
Static function to set the global flag to reject points the fgRejectPoint global flag is tested by al...
 
virtual Double_t Derivative(Double_t x, Double_t *params=nullptr, Double_t epsilon=0.001) const
Returns the first derivative of the function at point x, computed by Richardson's extrapolation metho...
 
virtual Int_t GetNpar() const
 
virtual Double_t Integral(Double_t a, Double_t b, Double_t epsrel=1.e-12)
IntegralOneDim or analytical integral.
 
virtual void SetNumberFitPoints(Int_t npfits)
 
virtual void InitArgs(const Double_t *x, const Double_t *params)
Initialize parameters addresses.
 
virtual Double_t EvalPar(const Double_t *x, const Double_t *params=nullptr)
Evaluate function with given coordinates and parameters.
 
static Bool_t RejectedPoint()
See TF1::RejectPoint above.
 
virtual void SetParameters(const Double_t *params)
 
virtual Bool_t IsInside(const Double_t *x) const
return kTRUE if the point is inside the function range
 
A 2-Dim function with parameters.
 
A 3-Dim function with parameters.
 
Double_t GetParameter(Int_t ipar) const override
Return current value of parameter ipar.
 
void DeleteArrays()
Deallocates memory. Called from destructor TFumili::~TFumili.
 
Bool_t fNumericDerivatives
 
Double_t GetParError(Int_t ipar) const override
Return error of parameter ipar.
 
Bool_t IsFixed(Int_t ipar) const override
Return kTRUE if parameter ipar is fixed, kFALSE otherwise)
 
Int_t fNED2
K - Length of vector X plus 2 (for chi2)
 
Double_t GetCovarianceMatrixElement(Int_t i, Int_t j) const override
Return element i,j from the covariance matrix.
 
Int_t ExecuteCommand(const char *command, Double_t *args, Int_t nargs) override
Execute MINUIT commands.
 
Int_t fNpar
fNpar - number of parameters
 
void PrintResults(Int_t k, Double_t p) const override
Prints fit results.
 
Int_t GetNumberFreeParameters() const override
Return the number of free parameters.
 
Int_t GetNumberTotalParameters() const override
Return the total number of parameters (free + fixed)
 
Double_t * GetCovarianceMatrix() const override
Return a pointer to the covariance matrix.
 
virtual void FitLikelihood(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for H1s using a Likelihood method.
 
~TFumili() override
TFumili destructor.
 
Int_t GetStats(Double_t &amin, Double_t &edm, Double_t &errdef, Int_t &nvpar, Int_t &nparx) const override
Return global fit parameters.
 
Double_t * fEXDA
[fNED12] experimental data poInt_ter
 
Int_t SGZ()
Evaluates objective function ( chi-square ), gradients and Z-matrix using data provided by user via T...
 
void ReleaseParameter(Int_t ipar) override
Releases parameter number ipar.
 
virtual void FitChisquare(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for H1s using a Chisquare method.
 
const char * GetParName(Int_t ipar) const override
Return name of parameter ipar.
 
void FixParameter(Int_t ipar) override
Fixes parameter number ipar.
 
void Derivatives(Double_t *, Double_t *)
Calculates partial derivatives of theoretical function.
 
Double_t * fAMN
[fMaxParam] Minimum param value
 
TString * fANames
[fMaxParam] Parameter names
 
Double_t * GetPL0() const
 
Double_t * fPL
[fMaxParam] Limits for parameters step. If <0, then parameter is fixed
 
Int_t Eval(Int_t &npar, Double_t *grad, Double_t &fval, Double_t *par, Int_t flag)
Evaluate the minimisation function.
 
void SetParNumber(Int_t ParNum)
 
void SetData(Double_t *, Int_t, Int_t)
Sets pointer to data array provided by user.
 
Int_t fINDFLG[5]
internal flags;
 
Double_t EvalTFN(Double_t *, Double_t *)
Evaluate theoretical function.
 
Double_t * fParamError
[fMaxParam] Parameter errors
 
Double_t Chisquare(Int_t npar, Double_t *params) const override
return a chisquare equivalent
 
Int_t fENDFLG
End flag of fit.
 
Double_t * fR
[fMaxParam] Correlation factors
 
Double_t * fDA
[fMaxParam] Parameter step
 
void SetFitMethod(const char *name) override
ret fit method (chisquare or log-likelihood)
 
Int_t fNstepDec
fNstepDec - maximum number of step decreasing counter
 
Int_t GetErrors(Int_t ipar, Double_t &eplus, Double_t &eminus, Double_t &eparab, Double_t &globcc) const override
Return errors after MINOs not implemented.
 
Double_t * fZ0
[fMaxParam2] Matrix of approximate second derivatives of objective function This matrix is diagonal a...
 
Double_t * fPL0
[fMaxParam] Step initial bounds
 
Double_t * fA
[fMaxParam] Fit parameter array
 
Int_t Minimize()
Main minimization procedure.
 
Int_t fNmaxIter
fNmaxIter - maximum number of iterations
 
Int_t ExecuteSetCommand(Int_t)
Called from TFumili::ExecuteCommand in case of "SET xxx" and "SHOW xxx".
 
Double_t fS
fS - objective function value (return)
 
Double_t fEPS
fEPS - required precision of parameters. If fEPS<0 then
 
virtual void FitChisquareI(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for H1s using a Chisquare method.
 
Int_t fNfcn
Number of FCN calls;.
 
Int_t fLastFixed
Last fixed parameter number.
 
void BuildArrays()
Allocates memory for internal arrays.
 
Double_t * fZ
[fMaxParam2] Invers fZ0 matrix - covariance matrix
 
Bool_t fLogLike
LogLikelihood flag.
 
Int_t fNED1
Number of experimental vectors X=(x1,x2,...xK)
 
void Clear(Option_t *opt="") override
Resets all parameter names, values and errors to zero.
 
Double_t * fGr
[fMaxParam] Gradients of objective function
 
Double_t fGT
Expected function change in next iteration.
 
Int_t SetParameter(Int_t ipar, const char *parname, Double_t value, Double_t verr, Double_t vlow, Double_t vhigh) override
Sets for parameter number ipar initial parameter value, name parname, initial error verr and limits v...
 
TString fCword
Command string.
 
virtual void FitLikelihoodI(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
Minimization function for H1s using a Likelihood method.
 
Double_t fRP
Precision of fit ( machine zero on CDC 6000) quite old yeh?
 
Double_t * fCmPar
[fMaxParam] parameters of commands
 
Double_t * fDF
[fMaxParam] First derivatives of theoretical function
 
Double_t GetSumLog(Int_t) override
Return Sum(log(i) i=0,n used by log-likelihood fits.
 
Double_t * fSumLog
[fNlog]
 
Double_t * fAMX
[fMaxParam] Maximum param value
 
Int_t fNlimMul
fNlimMul - after fNlimMul successful iterations permits four-fold increasing of fPL
 
Bool_t fGRAD
user calculated gradients
 
void InvertZ(Int_t)
Inverts packed diagonal matrix Z by square-root method.
 
Double_t GetErrorY(Int_t bin) const override
It returns the error along Y at point i.
 
Double_t GetErrorXhigh(Int_t bin) const override
It returns the error along X at point i.
 
Double_t GetErrorXlow(Int_t bin) const override
It returns the error along X at point i.
 
A TGraph is an object made of two arrays X and Y with npoints each.
 
TH1 is the base class of all histogram classes in ROOT.
 
virtual Int_t GetDimension() const
 
virtual void SetName(const char *name)
Set the name of the TNamed.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
@ kInvalidObject
if object ctor succeeded but object should not be used
 
const char * Data() const
 
void ToUpper()
Change string to upper case.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
Int_t fPointSize
Number of words per point in the cache.
 
virtual TObject * GetObjectFit() const
 
TObject * fUserFunc
Pointer to user theoretical function (a TF1*)
 
virtual Foption_t GetFitOption() const
 
virtual void SetFCN(void(*fcn)(Int_t &, Double_t *, Double_t &f, Double_t *, Int_t))
To set the address of the minimization objective function called by the native compiler (see function...
 
Double_t * fCache
[fCacheSize] Array of points data (fNpoints*fPointSize < fCacheSize words)
 
void(* fFCN)(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag)
 
static TVirtualFitter * GetFitter()
static: return the current Fitter
 
virtual TObject * GetUserFunc() const
 
Int_t fNpoints
Number of points to fit.
 
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
 
Double_t Log(Double_t x)
Returns the natural logarithm of x.
 
Double_t Sqrt(Double_t x)
Returns the square root of x.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.