Parent Directory
|
Revision Log
import changes from math development branches for subdirectory math. List of changes in detail:
mathcore:
---------
MinimizerOptions:
new class for storing Minimizer option, with static default values that can be
changed by the user
FitConfig:
- use default values from MinimizerOption class
- rename method to create parameter settings from a function
FitUtil.cxx:
improve the derivative calculations used in the effective chi2 and in Fumili and
fix a bug for evaluation of likelihood or chi2 terms.
In EvaluatePdf() work and return the log of the pdf.
FitResult:
- improve the class by adding extra information like, num. of free parameters,
minimizer status, global correlation coefficients, information about fixed
and bound parameters.
- add method for getting fit confidence intervals
- improve print method
DataRange:
add method SetRange to distinguish from AddRange. SetRange deletes the existing
ranges.
ParamsSettings: make few methods const
FCN functions (Chi2FCN, LogLikelihoodFCN, etc..)
move some common methods and data members in base class (FitMethodFunction)
RootFinder: add template Solve() for any callable function.
mathmore:
--------
minimizer classes: fill status information
GSLNLSMinimizer: return error and covariance matrix
minuit2:
-------
Minuit2Minimizer: fill status information
DavidonErrorUpdator: check that delgam or gvg are not zero ( can happen when dg = 0)
FumiliFCNAdapter: work on the log of pdf
minuit:
-------
TLinearMinimizer: add support for robust fitting
TMinuitMinimizer: fill status information and fix a bug in filling the correlation matrix.
fumili:
------
add TFumiliMinimizer:
wrapper class for TFumili using Minimizer interface
// @(#)root/mathcore:$Id$
// Author: L. Moneta Fri Aug 15 2008
/**********************************************************************
* *
* Copyright (c) 2008 LCG ROOT Math Team, CERN/PH-SFT *
* *
* *
**********************************************************************/
#ifndef ROOT_Math_MinimizerOptions
#define ROOT_Math_MinimizerOptions
#include <string>
namespace ROOT {
namespace Math {
//_______________________________________________________________________________
/**
Minimizer options structure
@ingroup MultiMin
*/
struct MinimizerOptions {
// static methods for setting and retrieving the default options
static void SetDefaultMinimizer(const std::string & type, const std::string & algo);
static void SetDefaultErrorDef( double up);
static void SetDefaultTolerance(double tol);
static void SetDefaultMaxFunctionCalls(int maxcall);
static void SetDefaultMaxIterations(int maxiter);
static void SetDefaultStrategy(int strat);
static void SetDefaultPrintLevel(int level);
static const std::string & DefaultMinimizerType();
static const std::string & DefaultMinimizerAlgo();
static double DefaultErrorDef();
static double DefaultTolerance();
static int DefaultMaxFunctionCalls();
static int DefaultMaxIterations();
static int DefaultStrategy();
static int DefaultPrintLevel();
// default options
MinimizerOptions() :
MinimType( MinimizerOptions::DefaultMinimizerType() ),
AlgoType( MinimizerOptions::DefaultMinimizerAlgo() ),
ErrorDef( MinimizerOptions::DefaultErrorDef() ), // no need for a static method here
Tolerance( MinimizerOptions::DefaultTolerance() ),
MaxFunctionCalls( MinimizerOptions::DefaultMaxFunctionCalls() ),
MaxIterations( MinimizerOptions::DefaultMaxIterations() ),
Strategy( MinimizerOptions::DefaultStrategy() ),
PrintLevel( MinimizerOptions::DefaultPrintLevel())
{}
std::string MinimType; // Minimizer type (Minuit, Minuit2, etc..
std::string AlgoType; // Minimizer algorithmic specification (Migrad, Minimize, ...)
double ErrorDef; // error definition (=1. for getting 1 sigma error for chi2 fits)
double Tolerance; // minimize tolerance to reach solution
int MaxFunctionCalls; // maximum number of function calls
int MaxIterations; // maximum number of iterations
int Strategy; // minimizer strategy (used by Minuit)
int PrintLevel; // debug print level
};
} // end namespace Math
} // end namespace ROOT
#endif
| Subversion Admin | ViewVC Help |
| Powered by ViewVC 1.0.9 |