File indexing completed on 2025-09-18 09:31:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef ROOT_Minuit2_ContoursError
0011 #define ROOT_Minuit2_ContoursError
0012
0013 #include "Minuit2/MnConfig.h"
0014 #include "Minuit2/MinosError.h"
0015
0016 #include <ROOT/RSpan.hxx>
0017
0018 #include <vector>
0019 #include <utility>
0020
0021 namespace ROOT {
0022
0023 namespace Minuit2 {
0024
0025 class ContoursError {
0026
0027 public:
0028 ContoursError(unsigned int parX, unsigned int parY, std::span<const std::pair<double, double>> points,
0029 const MinosError &xmnos, const MinosError &ymnos, unsigned int nfcn)
0030 : fParX(parX), fParY(parY), fPoints(points.begin(), points.end()), fXMinos(xmnos), fYMinos(ymnos), fNFcn(nfcn)
0031 {
0032 }
0033
0034 ContoursError(const ContoursError &cont)
0035 : fParX(cont.fParX), fParY(cont.fParY), fPoints(cont.fPoints), fXMinos(cont.fXMinos), fYMinos(cont.fYMinos),
0036 fNFcn(cont.fNFcn)
0037 {
0038 }
0039
0040 ContoursError &operator()(const ContoursError &cont)
0041 {
0042 fParX = cont.fParX;
0043 fParY = cont.fParY;
0044 fPoints = cont.fPoints;
0045 fXMinos = cont.fXMinos;
0046 fYMinos = cont.fYMinos;
0047 fNFcn = cont.fNFcn;
0048 return *this;
0049 }
0050
0051 const std::vector<std::pair<double, double>> &operator()() const { return fPoints; }
0052
0053 std::pair<double, double> XMinos() const { return fXMinos(); }
0054
0055 std::pair<double, double> YMinos() const { return fYMinos(); }
0056
0057 unsigned int Xpar() const { return fParX; }
0058 unsigned int Ypar() const { return fParY; }
0059
0060 const MinosError &XMinosError() const { return fXMinos; }
0061
0062 const MinosError &YMinosError() const { return fYMinos; }
0063
0064 unsigned int NFcn() const { return fNFcn; }
0065 double XMin() const { return fXMinos.Min(); }
0066 double YMin() const { return fYMinos.Min(); }
0067
0068 private:
0069 unsigned int fParX;
0070 unsigned int fParY;
0071 std::vector<std::pair<double, double>> fPoints;
0072 MinosError fXMinos;
0073 MinosError fYMinos;
0074 unsigned int fNFcn;
0075 };
0076
0077 }
0078
0079 }
0080
0081 #endif