Logo ROOT   6.13/01
Reference Guide
List of all members | Public Member Functions | Private Attributes | List of all members
TFumili Class Reference

Definition at line 19 of file TFumili.h.

Public Member Functions

 TFumili (Int_t maxpar=25)
 
virtual ~TFumili ()
 TFumili destructor. More...
 
void BuildArrays ()
 Allocates memory for internal arrays. More...
 
virtual Double_t Chisquare (Int_t npar, Double_t *params) const
 return a chisquare equivalent More...
 
virtual void Clear (Option_t *opt="")
 Resets all parameter names, values and errors to zero. More...
 
void DeleteArrays ()
 Deallocates memory. More...
 
void Derivatives (Double_t *, Double_t *)
 Calculates partial derivatives of theoretical function. More...
 
Int_t Eval (Int_t &npar, Double_t *grad, Double_t &fval, Double_t *par, Int_t flag)
 Evaluate the minimisation function Input parameters: npar: number of currently variable parameters par: array of (constant and variable) parameters flag: Indicates what is to be calculated grad: array of gradients Output parameters: fval: The calculated function value. More...
 
Double_t EvalTFN (Double_t *, Double_t *)
 Evaluate theoretical function df: array of partial derivatives X: vector of theoretical function argument. More...
 
virtual Int_t ExecuteCommand (const char *command, Double_t *args, Int_t nargs)
 Execute MINUIT commands. More...
 
Int_t ExecuteSetCommand (Int_t)
 Called from TFumili::ExecuteCommand in case of "SET xxx" and "SHOW xxx". More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void FixParameter (Int_t ipar)
 Fixes parameter number ipar. More...
 
virtual Double_t * GetCovarianceMatrix () const
 return a pointer to the covariance matrix More...
 
virtual Double_t GetCovarianceMatrixElement (Int_t i, Int_t j) const
 return element i,j from the covariance matrix More...
 
virtual Int_t GetErrors (Int_t ipar, Double_t &eplus, Double_t &eminus, Double_t &eparab, Double_t &globcc) const
 Return errors after MINOs not implemented. More...
 
virtual Int_t GetNumberFreeParameters () const
 return the number of free parameters More...
 
virtual Int_t GetNumberTotalParameters () const
 return the total number of parameters (free + fixed) More...
 
virtual Double_t GetParameter (Int_t ipar) const
 return current value of parameter ipar More...
 
virtual Int_t GetParameter (Int_t ipar, char *name, Double_t &value, Double_t &verr, Double_t &vlow, Double_t &vhigh) const
 Get various ipar parameter attributs: More...
 
virtual Double_t GetParError (Int_t ipar) const
 return error of parameter ipar More...
 
virtual const char * GetParName (Int_t ipar) const
 return name of parameter ipar More...
 
Double_t * GetPL0 () const
 
virtual Int_t GetStats (Double_t &amin, Double_t &edm, Double_t &errdef, Int_t &nvpar, Int_t &nparx) const
 return global fit parameters amin : chisquare edm : estimated distance to minimum errdef nvpar : number of variable parameters nparx : total number of parameters More...
 
virtual Double_t GetSumLog (Int_t)
 return Sum(log(i) i=0,n used by log likelihood fits More...
 
Double_t * GetZ () const
 
void InvertZ (Int_t)
 Inverts packed diagonal matrix Z by square-root method. More...
 
virtual Bool_t IsFixed (Int_t ipar) const
 Return kTRUE if parameter ipar is fixed, kFALSE othersise) More...
 
Int_t Minimize ()
 
virtual void PrintResults (Int_t k, Double_t p) const
 Prints fit results. More...
 
virtual void ReleaseParameter (Int_t ipar)
 Releases parameter number ipar. More...
 
void SetData (Double_t *, Int_t, Int_t)
 Sets pointer to data array provided by user. More...
 
virtual void SetFitMethod (const char *name)
 ret fit method (chisquare or loglikelihood) More...
 
virtual Int_t SetParameter (Int_t ipar, const char *parname, Double_t value, Double_t verr, Double_t vlow, Double_t vhigh)
 Sets for prameter number ipar initial parameter value, name parname, initial error verr and limits vlow and vhigh If vlow = vhigh but not equil to zero, parameter will be fixed. More...
 
void SetParNumber (Int_t ParNum)
 
Int_t SGZ ()
 Evaluates objective function ( chi-square ), gradients and Z-matrix using data provided by user via TFumili::SetData. More...
 

Private Attributes

Double_t * fA
 
Double_t fAKAPPA
 
Double_t * fAMN
 
Double_t * fAMX
 
TString * fANames
 
Double_t * fCmPar
 
TString fCword
 
Double_t * fDA
 
Bool_t fDEBUG
 
Double_t * fDF
 
Int_t fENDFLG
 
Double_t fEPS
 
Double_t * fEXDA
 
Double_t * fGr
 
Bool_t fGRAD
 
Double_t fGT
 
Int_t fINDFLG [5]
 
Int_t fLastFixed
 
Bool_t fLogLike
 
Int_t fMaxParam
 
Int_t fNED1
 
Int_t fNED12
 
Int_t fNED2
 
Int_t fNfcn
 
Int_t fNlimMul
 
Int_t fNlog
 
Int_t fNmaxIter
 
Int_t fNpar
 
Int_t fNstepDec
 
Bool_t fNumericDerivatives
 
Double_t * fParamError
 
Double_t * fPL
 
Double_t * fPL0
 
Double_t * fR
 
Double_t fRP
 
Double_t fS
 
Double_t * fSumLog
 
Bool_t fWARN
 
Double_t * fZ
 
Double_t * fZ0
 

#include <TFumili.h>

Inheritance diagram for TFumili:
[legend]

Constructor & Destructor Documentation

◆ TFumili()

TFumili::TFumili ( Int_t  maxpar = 25)

Definition at line 129 of file TFumili.cxx.

◆ ~TFumili()

TFumili::~TFumili ( )
virtual

TFumili destructor.

Definition at line 212 of file TFumili.cxx.

Member Function Documentation

◆ BuildArrays()

void TFumili::BuildArrays ( )

Allocates memory for internal arrays.

Called by TFumili::TFumili

Definition at line 174 of file TFumili.cxx.

◆ Chisquare()

Double_t TFumili::Chisquare ( Int_t  npar,
Double_t *  params 
) const
virtual

return a chisquare equivalent

Definition at line 222 of file TFumili.cxx.

◆ Clear()

void TFumili::Clear ( Option_t *  opt = "")
virtual

Resets all parameter names, values and errors to zero.

Argument opt is ignored

NB: this procedure doesn't reset parameter limits

Definition at line 239 of file TFumili.cxx.

◆ DeleteArrays()

void TFumili::DeleteArrays ( )

Deallocates memory.

Called from destructor TFumili::~TFumili

Definition at line 261 of file TFumili.cxx.

◆ Derivatives()

void TFumili::Derivatives ( Double_t *  df,
Double_t *  fX 
)

Calculates partial derivatives of theoretical function.

Input: fX - vector of data point Output: DF - array of derivatives

ARITHM.F Converted from CERNLIB

Definition at line 293 of file TFumili.cxx.

◆ Eval()

Int_t TFumili::Eval ( Int_t &  npar,
Double_t *  grad,
Double_t &  fval,
Double_t *  par,
Int_t  flag 
)

Evaluate the minimisation function Input parameters: npar: number of currently variable parameters par: array of (constant and variable) parameters flag: Indicates what is to be calculated grad: array of gradients Output parameters: fval: The calculated function value.

grad: The vector of first derivatives.

The meaning of the parameters par is of course defined by the user, who uses the values of those parameters to calculate their function value. The starting values must be specified by the user. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Inside FCN user has to define Z-matrix by means TFumili::GetZ and TFumili::Derivatives, set theoretical function by means of TFumili::SetUserFunc, but first - pass number of parameters by TFumili::SetParNumber !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Later values are determined by Fumili as it searches for the minimum or performs whatever analysis is requested by the user.

The default function calls the function specified in SetFCN

Definition at line 352 of file TFumili.cxx.

◆ EvalTFN()

Double_t TFumili::EvalTFN ( Double_t *  ,
Double_t *  X 
)

Evaluate theoretical function df: array of partial derivatives X: vector of theoretical function argument.

Definition at line 364 of file TFumili.cxx.

◆ ExecuteCommand()

Int_t TFumili::ExecuteCommand ( const char *  command,
Double_t *  args,
Int_t  nargs 
)
virtual

Execute MINUIT commands.

MINImize, SIMplex, MIGrad and FUMili all will call TFumili::Minimize method.

For full command list see MINUIT. Reference Manual. CERN Program Library Long Writeup D506.

Improvement and errors calculation are not yet implemented as well as Monte-Carlo seeking and minimization. Contour commands are also unsupported.

command : command string args : array of arguments nargs : number of arguments

Definition at line 394 of file TFumili.cxx.

◆ ExecuteSetCommand()

Int_t TFumili::ExecuteSetCommand ( Int_t  nargs)

Called from TFumili::ExecuteCommand in case of "SET xxx" and "SHOW xxx".

Definition at line 565 of file TFumili.cxx.

◆ FitChisquare()

void TFumili::FitChisquare ( Int_t &  npar,
Double_t *  gin,
Double_t &  f,
Double_t *  u,
Int_t  flag 
)
virtual

Minimization function for H1s using a Chisquare method.

Default method (function evaluated at center of bin) for each point the cache contains the following info -1D : bc,e,xc (bin content, error, x of center of bin) -2D : bc,e,xc,yc -3D : bc,e,xc,yc,zc

Definition at line 1770 of file TFumili.cxx.

◆ FitChisquareI()

void TFumili::FitChisquareI ( Int_t &  npar,
Double_t *  gin,
Double_t &  f,
Double_t *  u,
Int_t  flag 
)
virtual

Minimization function for H1s using a Chisquare method.

The "I"ntegral method is used for each point the cache contains the following info -1D : bc,e,xc,xw (bin content, error, x of center of bin, x bin width of bin) -2D : bc,e,xc,xw,yc,yw -3D : bc,e,xc,xw,yc,yw,zc,zw

Definition at line 1842 of file TFumili.cxx.

◆ FitLikelihood()

void TFumili::FitLikelihood ( Int_t &  npar,
Double_t *  gin,
Double_t &  f,
Double_t *  u,
Int_t  flag 
)
virtual

Minimization function for H1s using a Likelihood method.

Basically, it forms the likelihood by determining the Poisson probability that given a number of entries in a particular bin, the fit would predict it's value. This is then done for each bin, and the sum of the logs is taken as the likelihood. Default method (function evaluated at center of bin) for each point the cache contains the following info -1D : bc,e,xc (bin content, error, x of center of bin) -2D : bc,e,xc,yc -3D : bc,e,xc,yc,zc

Definition at line 1917 of file TFumili.cxx.

◆ FitLikelihoodI()

void TFumili::FitLikelihoodI ( Int_t &  npar,
Double_t *  gin,
Double_t &  f,
Double_t *  u,
Int_t  flag 
)
virtual

Minimization function for H1s using a Likelihood method.

Basically, it forms the likelihood by determining the Poisson probability that given a number of entries in a particular bin, the fit would predict it's value. This is then done for each bin, and the sum of the logs is taken as the likelihood. The "I"ntegral method is used for each point the cache contains the following info -1D : bc,e,xc,xw (bin content, error, x of center of bin, x bin width of bin) -2D : bc,e,xc,xw,yc,yw -3D : bc,e,xc,xw,yc,yw,zc,zw

Definition at line 2005 of file TFumili.cxx.

◆ FixParameter()

void TFumili::FixParameter ( Int_t  ipar)
virtual

Fixes parameter number ipar.

Definition at line 781 of file TFumili.cxx.

◆ GetCovarianceMatrix()

Double_t * TFumili::GetCovarianceMatrix ( ) const
virtual

return a pointer to the covariance matrix

Definition at line 791 of file TFumili.cxx.

◆ GetCovarianceMatrixElement()

Double_t TFumili::GetCovarianceMatrixElement ( Int_t  i,
Int_t  j 
) const
virtual

return element i,j from the covariance matrix

Definition at line 800 of file TFumili.cxx.

◆ GetErrors()

Int_t TFumili::GetErrors ( Int_t  ipar,
Double_t &  eplus,
Double_t &  eminus,
Double_t &  eparab,
Double_t &  globcc 
) const
virtual

Return errors after MINOs not implemented.

Definition at line 890 of file TFumili.cxx.

◆ GetNumberFreeParameters()

Int_t TFumili::GetNumberFreeParameters ( ) const
virtual

return the number of free parameters

Definition at line 822 of file TFumili.cxx.

◆ GetNumberTotalParameters()

Int_t TFumili::GetNumberTotalParameters ( ) const
virtual

return the total number of parameters (free + fixed)

Definition at line 814 of file TFumili.cxx.

◆ GetParameter() [1/2]

Double_t TFumili::GetParameter ( Int_t  ipar) const
virtual

return current value of parameter ipar

Definition at line 843 of file TFumili.cxx.

◆ GetParameter() [2/2]

Int_t TFumili::GetParameter ( Int_t  ipar,
char *  cname,
Double_t &  value,
Double_t &  verr,
Double_t &  vlow,
Double_t &  vhigh 
) const
virtual

Get various ipar parameter attributs:

cname: parameter name value: parameter value verr: parameter error vlow: lower limit vhigh: upper limit WARNING! parname must be suitably dimensionned in the calling function.

Definition at line 860 of file TFumili.cxx.

◆ GetParError()

Double_t TFumili::GetParError ( Int_t  ipar) const
virtual

return error of parameter ipar

Definition at line 834 of file TFumili.cxx.

◆ GetParName()

const char * TFumili::GetParName ( Int_t  ipar) const
virtual

return name of parameter ipar

Definition at line 880 of file TFumili.cxx.

◆ GetPL0()

Double_t* TFumili::GetPL0 ( ) const
inline

Definition at line 103 of file TFumili.h.

◆ GetStats()

Int_t TFumili::GetStats ( Double_t &  amin,
Double_t &  edm,
Double_t &  errdef,
Int_t &  nvpar,
Int_t &  nparx 
) const
virtual

return global fit parameters amin : chisquare edm : estimated distance to minimum errdef nvpar : number of variable parameters nparx : total number of parameters

Definition at line 912 of file TFumili.cxx.

◆ GetSumLog()

Double_t TFumili::GetSumLog ( Int_t  n)
virtual

return Sum(log(i) i=0,n used by log likelihood fits

Definition at line 931 of file TFumili.cxx.

◆ GetZ()

Double_t* TFumili::GetZ ( ) const
inline

Definition at line 110 of file TFumili.h.

◆ InvertZ()

void TFumili::InvertZ ( Int_t  n)

Inverts packed diagonal matrix Z by square-root method.

Matrix elements corresponding to fix parameters are removed.

n: number of variable parameters

Definition at line 958 of file TFumili.cxx.

◆ IsFixed()

Bool_t TFumili::IsFixed ( Int_t  ipar) const
virtual

Return kTRUE if parameter ipar is fixed, kFALSE othersise)

Definition at line 1076 of file TFumili.cxx.

◆ Minimize()

Int_t TFumili::Minimize ( )

Definition at line 1089 of file TFumili.cxx.

◆ PrintResults()

void TFumili::PrintResults ( Int_t  ikode,
Double_t  p 
) const
virtual

Prints fit results.

ikode is the type of printing parameters p is function value

ikode = 1 - print values, errors and limits ikode = 2 - print values, errors and steps ikode = 3 - print values, errors, steps and derivatives ikode = 4 - print only values and errors

Definition at line 1509 of file TFumili.cxx.

◆ ReleaseParameter()

void TFumili::ReleaseParameter ( Int_t  ipar)
virtual

Releases parameter number ipar.

Definition at line 1613 of file TFumili.cxx.

◆ SetData()

void TFumili::SetData ( Double_t *  exdata,
Int_t  numpoints,
Int_t  vecsize 
)

Sets pointer to data array provided by user.

Necessary if SetFCN is not called.

numpoints: number of experimental points vecsize: size of data point vector + 2 (for N-dimensional fit vecsize=N+2) exdata: data array with following format

exdata[0] = ExpValue_0 - experimental data value number 0 exdata[1] = ExpSigma_0 - error of value number 0 exdata[2] = X_0[0] exdata[3] = X_0[1] ......... exdata[vecsize-1] = X_0[vecsize-3] exdata[vecsize] = ExpValue_1 exdata[vecsize+1] = ExpSigma_1 exdata[vecsize+2] = X_1[0] ......... exdata[vecsize*(numpoints-1)] = ExpValue_(numpoints-1) ......... exdata[vecsize*numpoints-1] = X_(numpoints-1)[vecsize-3]

Definition at line 1645 of file TFumili.cxx.

◆ SetFitMethod()

void TFumili::SetFitMethod ( const char *  name)
virtual

ret fit method (chisquare or loglikelihood)

Definition at line 1657 of file TFumili.cxx.

◆ SetParameter()

Int_t TFumili::SetParameter ( Int_t  ipar,
const char *  parname,
Double_t  value,
Double_t  verr,
Double_t  vlow,
Double_t  vhigh 
)
virtual

Sets for prameter number ipar initial parameter value, name parname, initial error verr and limits vlow and vhigh If vlow = vhigh but not equil to zero, parameter will be fixed.

If vlow = vhigh = 0, parameter is released and its limits are discarded

Definition at line 1672 of file TFumili.cxx.

◆ SetParNumber()

void TFumili::SetParNumber ( Int_t  ParNum)
inline

Definition at line 120 of file TFumili.h.

◆ SGZ()

Int_t TFumili::SGZ ( )

Evaluates objective function ( chi-square ), gradients and Z-matrix using data provided by user via TFumili::SetData.

Definition at line 1702 of file TFumili.cxx.

Member Data Documentation

◆ fA

Double_t* TFumili::fA
private

Definition at line 52 of file TFumili.h.

◆ fAKAPPA

Double_t TFumili::fAKAPPA
private

Definition at line 68 of file TFumili.h.

◆ fAMN

Double_t* TFumili::fAMN
private

Definition at line 59 of file TFumili.h.

◆ fAMX

Double_t* TFumili::fAMX
private

Definition at line 58 of file TFumili.h.

◆ fANames

TString* TFumili::fANames
private

Definition at line 70 of file TFumili.h.

◆ fCmPar

Double_t* TFumili::fCmPar
private

Definition at line 63 of file TFumili.h.

◆ fCword

TString TFumili::fCword
private

Definition at line 71 of file TFumili.h.

◆ fDA

Double_t* TFumili::fDA
private

Definition at line 57 of file TFumili.h.

◆ fDEBUG

Bool_t TFumili::fDEBUG
private

Definition at line 38 of file TFumili.h.

◆ fDF

Double_t* TFumili::fDF
private

Definition at line 62 of file TFumili.h.

◆ fENDFLG

Int_t TFumili::fENDFLG
private

Definition at line 32 of file TFumili.h.

◆ fEPS

Double_t TFumili::fEPS
private

Definition at line 66 of file TFumili.h.

◆ fEXDA

Double_t* TFumili::fEXDA
private

Definition at line 49 of file TFumili.h.

◆ fGr

Double_t* TFumili::fGr
private

Definition at line 46 of file TFumili.h.

◆ fGRAD

Bool_t TFumili::fGRAD
private

Definition at line 36 of file TFumili.h.

◆ fGT

Double_t TFumili::fGT
private

Definition at line 69 of file TFumili.h.

◆ fINDFLG

Int_t TFumili::fINDFLG[5]
private

Definition at line 33 of file TFumili.h.

◆ fLastFixed

Int_t TFumili::fLastFixed
private

Definition at line 31 of file TFumili.h.

◆ fLogLike

Bool_t TFumili::fLogLike
private

Definition at line 39 of file TFumili.h.

◆ fMaxParam

Int_t TFumili::fMaxParam
private

Definition at line 21 of file TFumili.h.

◆ fNED1

Int_t TFumili::fNED1
private

Definition at line 24 of file TFumili.h.

◆ fNED12

Int_t TFumili::fNED12
private

Definition at line 26 of file TFumili.h.

◆ fNED2

Int_t TFumili::fNED2
private

Definition at line 25 of file TFumili.h.

◆ fNfcn

Int_t TFumili::fNfcn
private

Definition at line 23 of file TFumili.h.

◆ fNlimMul

Int_t TFumili::fNlimMul
private

Definition at line 29 of file TFumili.h.

◆ fNlog

Int_t TFumili::fNlog
private

Definition at line 22 of file TFumili.h.

◆ fNmaxIter

Int_t TFumili::fNmaxIter
private

Definition at line 30 of file TFumili.h.

◆ fNpar

Int_t TFumili::fNpar
private

Definition at line 27 of file TFumili.h.

◆ fNstepDec

Int_t TFumili::fNstepDec
private

Definition at line 28 of file TFumili.h.

◆ fNumericDerivatives

Bool_t TFumili::fNumericDerivatives
private

Definition at line 40 of file TFumili.h.

◆ fParamError

Double_t* TFumili::fParamError
private

Definition at line 47 of file TFumili.h.

◆ fPL

Double_t* TFumili::fPL
private

Definition at line 54 of file TFumili.h.

◆ fPL0

Double_t* TFumili::fPL0
private

Definition at line 53 of file TFumili.h.

◆ fR

Double_t* TFumili::fR
private

Definition at line 60 of file TFumili.h.

◆ fRP

Double_t TFumili::fRP
private

Definition at line 67 of file TFumili.h.

◆ fS

Double_t TFumili::fS
private

Definition at line 65 of file TFumili.h.

◆ fSumLog

Double_t* TFumili::fSumLog
private

Definition at line 48 of file TFumili.h.

◆ fWARN

Bool_t TFumili::fWARN
private

Definition at line 37 of file TFumili.h.

◆ fZ

Double_t* TFumili::fZ
private

Definition at line 45 of file TFumili.h.

◆ fZ0

Double_t* TFumili::fZ0
private

Definition at line 42 of file TFumili.h.

Libraries for TFumili:
[legend]

The documentation for this class was generated from the following files: