File indexing completed on 2025-01-18 10:10:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef ROOT_Minuit2_MnMinos
0011 #define ROOT_Minuit2_MnMinos
0012
0013 #include "Minuit2/MnStrategy.h"
0014
0015 #include <utility>
0016
0017 namespace ROOT {
0018
0019 namespace Minuit2 {
0020
0021 class FCNBase;
0022 class FunctionMinimum;
0023 class MinosError;
0024 class MnCross;
0025
0026
0027
0028
0029
0030
0031
0032
0033 class MnMinos {
0034
0035 public:
0036
0037 MnMinos(const FCNBase &fcn, const FunctionMinimum &min, unsigned int stra = 1);
0038
0039
0040 MnMinos(const FCNBase &fcn, const FunctionMinimum &min, const MnStrategy &stra);
0041
0042 ~MnMinos() {}
0043
0044
0045
0046 std::pair<double, double> operator()(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
0047
0048
0049
0050 double Lower(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
0051 double Upper(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
0052
0053 MnCross Loval(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
0054 MnCross Upval(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
0055
0056
0057
0058 MinosError Minos(unsigned int, unsigned int maxcalls = 0, double toler = 0.1) const;
0059
0060 protected:
0061
0062 MnCross FindCrossValue(int dir, unsigned int, unsigned int maxcalls, double toler) const;
0063
0064 private:
0065 const FCNBase &fFCN;
0066 const FunctionMinimum &fMinimum;
0067 MnStrategy fStrategy;
0068 };
0069
0070 }
0071
0072 }
0073
0074 #endif