Logo ROOT   6.08/07
Reference Guide
MnMinos.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_MnMinos
11 #define ROOT_Minuit2_MnMinos
12 
13 #include "Minuit2/MnStrategy.h"
14 
15 #include <utility>
16 
17 namespace ROOT {
18 
19  namespace Minuit2 {
20 
21 
22 class FCNBase;
23 class FunctionMinimum;
24 class MinosError;
25 class MnCross;
26 
27 //__________________________________________________________________
28 /**
29  API class for Minos Error analysis (asymmetric errors);
30  minimization has to be done before and Minimum must be valid;
31  possibility to ask only for one side of the Minos Error;
32  */
33 
34 class MnMinos {
35 
36 public:
37 
38 
39  /// construct from FCN + Minimum + strategy
40  MnMinos(const FCNBase& fcn, const FunctionMinimum& min, unsigned int stra = 1);
41 
42  /// construct from FCN + Minimum + strategy
43  MnMinos(const FCNBase& fcn, const FunctionMinimum& min, const MnStrategy& stra);
44 
45  ~MnMinos() {}
46 
47  /// returns the negative (pair.first) and the positive (pair.second)
48  /// Minos Error of the Parameter
49  std::pair<double,double> operator()(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
50 
51  /// calculate one side (negative or positive Error) of the Parameter
52  /// give as input (optionally) maxcalls and tolerance
53  double Lower(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
54  double Upper(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
55 
56  MnCross Loval(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
57  MnCross Upval(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
58 
59  /// ask for MinosError (Lower + Upper)
60  /// can be printed via std::cout
61  MinosError Minos(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
62 
63 protected:
64 
65  /// internal method to get crossing value via MnFunctionCross
66  MnCross FindCrossValue(int dir , unsigned int, unsigned int maxcalls, double toler) const;
67 
68 private:
69 
70  const FCNBase& fFCN;
73 };
74 
75  } // namespace Minuit2
76 
77 } // namespace ROOT
78 
79 #endif // ROOT_Minuit2_MnMinos
MnMinos(const FCNBase &fcn, const FunctionMinimum &min, unsigned int stra=1)
construct from FCN + Minimum + strategy
Definition: MnMinos.cxx:29
MnCross Upval(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
Definition: MnMinos.cxx:205
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Definition: StringConv.hxx:21
MinosError Minos(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
ask for MinosError (Lower + Upper) can be printed via std::cout
Definition: MnMinos.cxx:88
double Lower(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
calculate one side (negative or positive Error) of the Parameter give as input (optionally) maxcalls ...
Definition: MnMinos.cxx:64
MnCross Loval(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
Definition: MnMinos.cxx:210
const FunctionMinimum & fMinimum
Definition: MnMinos.h:71
MnCross FindCrossValue(int dir, unsigned int, unsigned int maxcalls, double toler) const
internal method to get crossing value via MnFunctionCross
Definition: MnMinos.cxx:109
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
API class for Minos Error analysis (asymmetric errors); minimization has to be done before and Minimu...
Definition: MnMinos.h:34
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:47
double Upper(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
Definition: MnMinos.cxx:76
MnStrategy fStrategy
Definition: MnMinos.h:72
Class holding the result of Minos (lower and upper values) for a specific parameter.
Definition: MinosError.h:25
std::pair< double, double > operator()(unsigned int, unsigned int maxcalls=0, double toler=0.1) const
returns the negative (pair.first) and the positive (pair.second) Minos Error of the Parameter ...
Definition: MnMinos.cxx:58
const FCNBase & fFCN
Definition: MnMinos.h:70
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27