ROOT   Reference Guide
ModularFunctionMinimizer.h
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
10#ifndef ROOT_Minuit2_ModularFunctionMinimizer
11#define ROOT_Minuit2_ModularFunctionMinimizer
12
13#include "Minuit2/MnConfig.h"
14
16
17#include <vector>
18
19namespace ROOT {
20
21namespace Minuit2 {
22
23class MinimumSeedGenerator;
24class MinimumBuilder;
25class MinimumSeed;
26class MnFcn;
28class MnUserParameterState;
29class MnUserParameters;
30class MnUserCovariance;
31class MnStrategy;
32class FumiliFCNBase;
33
34//_____________________________________________________________
35/**
36 Base common class providing the API for all the minimizer
37 Various Minimize methods are provided varying on the type of
38 FCN function passesd and on the objects used for the parameters
39 */
41
42public:
44
45 // inherited interface
46 FunctionMinimum Minimize(const FCNBase &, const std::vector<double> &, const std::vector<double> &,
47 unsigned int stra = 1, unsigned int maxfcn = 0, double toler = 0.1) const override;
48
49 FunctionMinimum Minimize(const FCNGradientBase &, const std::vector<double> &, const std::vector<double> &,
50 unsigned int stra = 1, unsigned int maxfcn = 0, double toler = 0.1) const override;
51
52 FunctionMinimum Minimize(const FCNBase &, const std::vector<double> &, unsigned int,
53 const std::vector<double> &, unsigned int stra = 1, unsigned int maxfcn = 0,
54 double toler = 0.1) const override;
55
56 FunctionMinimum Minimize(const FCNGradientBase &, const std::vector<double> &, unsigned int,
57 const std::vector<double> &, unsigned int stra = 1, unsigned int maxfcn = 0,
58 double toler = 0.1) const override;
59
60 // extension
61 virtual FunctionMinimum Minimize(const FCNBase &, const MnUserParameters &, const MnStrategy &,
62 unsigned int maxfcn = 0, double toler = 0.1) const;
63
64 virtual FunctionMinimum Minimize(const FCNGradientBase &, const MnUserParameters &, const MnStrategy &,
65 unsigned int maxfcn = 0, double toler = 0.1) const;
66
67 virtual FunctionMinimum Minimize(const FCNBase &, const MnUserParameters &, const MnUserCovariance &,
68 const MnStrategy &, unsigned int maxfcn = 0, double toler = 0.1) const;
69
71 const MnStrategy &, unsigned int maxfcn = 0, double toler = 0.1) const;
72
73 virtual FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &,
74 unsigned int maxfcn = 0, double toler = 0.1) const;
75
77 unsigned int maxfcn = 0, double toler = 0.1) const;
78
79 // for Fumili
80
81 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const std::vector<double>&, const std::vector<double>&,
82 // unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const;
83
84 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameters&, const MnStrategy&, unsigned int
85 // maxfcn = 0, double toler = 0.1) const;
86
87 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameters&, const MnUserCovariance&, const
88 // MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
89
90 // virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned
91 // int maxfcn = 0, double toler = 0.1) const;
92
93 virtual const MinimumSeedGenerator &SeedGenerator() const = 0;
94 virtual const MinimumBuilder &Builder() const = 0;
95 virtual MinimumBuilder &Builder() = 0;
96
97public:
98 virtual FunctionMinimum Minimize(const MnFcn &, const GradientCalculator &, const MinimumSeed &, const MnStrategy &,
99 unsigned int, double) const;
100};
101
102} // namespace Minuit2
103
104} // namespace ROOT
105
106#endif // ROOT_Minuit2_ModularFunctionMinimizer
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:45
base class for function minimizers; user may give FCN or FCN with Gradient, Parameter starting values...
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
base class for seed generators (starting values); the seed generator prepares initial starting values...
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:30
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...
class which holds the external user and/or internal Minuit representation of the parameters and error...
API class for the user interaction with the parameters; serves as input to the minimizer as well as o...
Base common class providing the API for all the minimizer Various Minimize methods are provided varyi...
virtual const MinimumBuilder & Builder() const =0
virtual MinimumBuilder & Builder()=0
FunctionMinimum Minimize(const FCNBase &, const std::vector< double > &, const std::vector< double > &, unsigned int stra=1, unsigned int maxfcn=0, double toler=0.1) const override
virtual const MinimumSeedGenerator & SeedGenerator() const =0
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.