File indexing completed on 2025-01-30 10:22:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef ROOT_Minuit2_MnContours
0011 #define ROOT_Minuit2_MnContours
0012
0013 #include "Minuit2/MnConfig.h"
0014 #include "Minuit2/MnStrategy.h"
0015
0016 #include <vector>
0017 #include <utility>
0018
0019 namespace ROOT {
0020
0021 namespace Minuit2 {
0022
0023 class FCNBase;
0024 class FunctionMinimum;
0025 class ContoursError;
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 class MnContours {
0036
0037 public:
0038
0039 MnContours(const FCNBase &fcn, const FunctionMinimum &min) : fFCN(fcn), fMinimum(min), fStrategy(MnStrategy(1)) {}
0040
0041
0042 MnContours(const FCNBase &fcn, const FunctionMinimum &min, unsigned int stra)
0043 : fFCN(fcn), fMinimum(min), fStrategy(MnStrategy(stra))
0044 {
0045 }
0046
0047
0048 MnContours(const FCNBase &fcn, const FunctionMinimum &min, const MnStrategy &stra)
0049 : fFCN(fcn), fMinimum(min), fStrategy(stra)
0050 {
0051 }
0052
0053 ~MnContours() {}
0054
0055
0056 std::vector<std::pair<double, double>> operator()(unsigned int, unsigned int, unsigned int npoints = 20) const;
0057
0058
0059
0060
0061 ContoursError Contour(unsigned int, unsigned int, unsigned int npoints = 20) const;
0062
0063 const MnStrategy &Strategy() const { return fStrategy; }
0064
0065 private:
0066 const FCNBase &fFCN;
0067 const FunctionMinimum &fMinimum;
0068 MnStrategy fStrategy;
0069 };
0070
0071 }
0072
0073 }
0074
0075 #endif