Logo ROOT   6.12/07
Reference Guide
MnFumiliMinimize.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_MnFumiliMinimize
11 #define ROOT_Minuit2_MnFumiliMinimize
12 
13 #include "Minuit2/MnApplication.h"
15 #include "Minuit2/FumiliFCNBase.h"
16 
17 namespace ROOT {
18 
19  namespace Minuit2 {
20 
21 
22 // class FumiliFCNBase;
23 // class FCNBase;
24 
25 
26 //___________________________________________________________________________
27 /**
28 
29 
30 API class for minimization using Fumili technology;
31 allows for user interaction: set/change parameters, do minimization,
32 change parameters, re-do minimization etc.;
33 also used by MnMinos and MnContours;
34 
35 
36  */
37 
39 
40 public:
41 
42  /// construct from FumiliFCNBase + std::vector for parameters and errors
43  MnFumiliMinimize(const FumiliFCNBase& fcn, const std::vector<double>& par, const std::vector<double>& err, unsigned int stra = 1) : MnApplication(fcn, MnUserParameterState(par,err), MnStrategy(stra)), fMinimizer(FumiliMinimizer()), fFCN(fcn) {}
44 
45  /// construct from FumiliFCNBase + std::vector for parameters and covariance
46  MnFumiliMinimize(const FumiliFCNBase& fcn, const std::vector<double>& par, unsigned int nrow, const std::vector<double>& cov, unsigned int stra = 1) : MnApplication(fcn, MnUserParameterState(par, cov, nrow), MnStrategy(stra)), fMinimizer(FumiliMinimizer()), fFCN(fcn) {}
47 
48  /// construct from FumiliFCNBase + std::vector for parameters and MnUserCovariance
49  MnFumiliMinimize(const FumiliFCNBase& fcn, const std::vector<double>& par, const MnUserCovariance& cov, unsigned int stra = 1) : MnApplication(fcn, MnUserParameterState(par, cov), MnStrategy(stra)), fMinimizer(FumiliMinimizer()), fFCN(fcn) {}
50 
51  /// construct from FumiliFCNBase + MnUserParameters
52  MnFumiliMinimize(const FumiliFCNBase& fcn, const MnUserParameters& par, unsigned int stra = 1) : MnApplication(fcn, MnUserParameterState(par), MnStrategy(stra)), fMinimizer(FumiliMinimizer()), fFCN(fcn) {}
53 
54  /// construct from FumiliFCNBase + MnUserParameters + MnUserCovariance
55  MnFumiliMinimize(const FumiliFCNBase& fcn, const MnUserParameters& par, const MnUserCovariance& cov, unsigned int stra = 1) : MnApplication(fcn, MnUserParameterState(par, cov), MnStrategy(stra)), fMinimizer(FumiliMinimizer()), fFCN(fcn) {}
56 
57  /// construct from FumiliFCNBase + MnUserParameterState + MnStrategy
59 
60  MnFumiliMinimize(const MnFumiliMinimize& migr) : MnApplication(migr.Fcnbase(), migr.State(), migr.Strategy(), migr.NumOfCalls()), fMinimizer(migr.fMinimizer), fFCN(migr.Fcnbase()) {}
61 
62  virtual ~MnFumiliMinimize() { }
63 
64  const FumiliMinimizer& Minimizer() const {return fMinimizer;}
65 
66  const FumiliFCNBase & Fcnbase() const { return fFCN; }
67 
68 
69  /// overwrite Minimize to use FumiliFCNBase
70  virtual FunctionMinimum operator()(unsigned int = 0, double = 0.1);
71 
72 
73 private:
74 
77 
78 private:
79 
80  //forbidden assignment of migrad (const FumiliFCNBase& = )
81  MnFumiliMinimize& operator=(const MnFumiliMinimize&) {return *this;}
82 };
83 
84  } // namespace Minuit2
85 
86 } // namespace ROOT
87 
88 #endif // ROOT_Minuit2_MnFumiliMinimize
MnFumiliMinimize(const FumiliFCNBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
construct from FumiliFCNBase + MnUserParameterState + MnStrategy
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
MnFumiliMinimize(const FumiliFCNBase &fcn, const std::vector< double > &par, const std::vector< double > &err, unsigned int stra=1)
construct from FumiliFCNBase + std::vector for parameters and errors
const FumiliFCNBase & Fcnbase() const
MnFumiliMinimize(const FumiliFCNBase &fcn, const std::vector< double > &par, unsigned int nrow, const std::vector< double > &cov, unsigned int stra=1)
construct from FumiliFCNBase + std::vector for parameters and covariance
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
const MnStrategy & Strategy() const
Definition: MnApplication.h:68
virtual FunctionMinimum operator()(unsigned int=0, double=0.1)
overwrite Minimize to use FumiliFCNBase
MnFumiliMinimize(const FumiliFCNBase &fcn, const std::vector< double > &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FumiliFCNBase + std::vector for parameters and MnUserCovariance
const FumiliMinimizer & Minimizer() const
Instantiates the seed generator and Minimum builder for the Fumili minimization method.
class which holds the external user and/or internal Minuit representation of the parameters and error...
MnFumiliMinimize & operator=(const MnFumiliMinimize &)
MnFumiliMinimize(const MnFumiliMinimize &migr)
API class for the user interaction with the parameters; serves as input to the minimizer as well as o...
unsigned int NumOfCalls() const
Definition: MnApplication.h:69
MnFumiliMinimize(const FumiliFCNBase &fcn, const MnUserParameters &par, unsigned int stra=1)
construct from FumiliFCNBase + MnUserParameters
application interface class for minimizers (migrad, simplex, Minimize, Scan) User normally instantiat...
Definition: MnApplication.h:37
Extension of the FCNBase for the Fumili method.
Definition: FumiliFCNBase.h:47
const MnUserParameterState & State() const
Definition: MnApplication.h:64
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
API class for minimization using Fumili technology; allows for user interaction: set/change parameter...
MnFumiliMinimize(const FumiliFCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra=1)
construct from FumiliFCNBase + MnUserParameters + MnUserCovariance
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...