File indexing completed on 2025-09-17 09:14:07
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
0054 std::vector<std::pair<double, double>> operator()(unsigned int, unsigned int, unsigned int npoints = 20) const;
0055
0056
0057
0058
0059 ContoursError Contour(unsigned int, unsigned int, unsigned int npoints = 20) const;
0060
0061 const MnStrategy &Strategy() const { return fStrategy; }
0062
0063 private:
0064 const FCNBase &fFCN;
0065 const FunctionMinimum &fMinimum;
0066 MnStrategy fStrategy;
0067 };
0068
0069 }
0070
0071 }
0072
0073 #endif