10 #ifndef ROOT_Minuit2_MnUserParameterState
11 #define ROOT_Minuit2_MnUserParameterState
31 class MnUserParameterState {
36 MnUserParameterState() : fValid(false), fCovarianceValid(false), fGCCValid(false), fCovStatus(-1), fFVal(0), fEDM(0), fNFcn(0),
37 fParameters(MnUserParameters()), fCovariance(MnUserCovariance()),
38 fIntParameters(std::vector<double>()), fIntCovariance(MnUserCovariance()) {}
41 MnUserParameterState(
const std::vector<double>&,
const std::vector<double>&);
43 MnUserParameterState(
const MnUserParameters&);
46 MnUserParameterState(
const std::vector<double>&,
const std::vector<double>&,
unsigned int);
48 MnUserParameterState(
const std::vector<double>&,
const MnUserCovariance&);
50 MnUserParameterState(
const MnUserParameters&,
const MnUserCovariance&);
53 MnUserParameterState(
const MinimumState&,
double,
const MnUserTransformation&);
55 ~MnUserParameterState() {}
57 MnUserParameterState(
const MnUserParameterState& state) : fValid(state.fValid),
58 fCovarianceValid(state.fCovarianceValid), fGCCValid(state.fGCCValid), fCovStatus(state.fCovStatus),
59 fFVal(state.fFVal), fEDM(state.fEDM), fNFcn(state.fNFcn),
60 fParameters(state.fParameters),
61 fCovariance(state.fCovariance),
62 fGlobalCC(state.fGlobalCC), fIntParameters(state.fIntParameters), fIntCovariance(state.fIntCovariance) {}
64 MnUserParameterState& operator=(
const MnUserParameterState& state) {
66 fValid = state.fValid;
67 fCovarianceValid = state.fCovarianceValid;
68 fGCCValid = state.fGCCValid;
69 fCovStatus = state.fCovStatus;
73 fParameters = state.fParameters;
74 fCovariance = state.fCovariance;
75 fGlobalCC = state.fGlobalCC;
76 fIntParameters = state.fIntParameters;
77 fIntCovariance = state.fIntCovariance;
83 const MnUserParameters& Parameters()
const {
return fParameters;}
84 const MnUserCovariance& Covariance()
const {
return fCovariance;}
85 const MnGlobalCorrelationCoeff& GlobalCC()
const {
return fGlobalCC;}
88 MnUserCovariance Hessian()
const;
91 const std::vector<double>& IntParameters()
const {
return fIntParameters;}
92 const MnUserCovariance& IntCovariance()
const {
return fIntCovariance;}
95 int CovarianceStatus()
const {
return fCovStatus; }
98 const MnUserTransformation& Trafo()
const {
return fParameters.Trafo();}
100 bool IsValid()
const {
return fValid;}
101 bool HasCovariance()
const {
return fCovarianceValid;}
102 bool HasGlobalCC()
const {
return fGCCValid;}
104 double Fval()
const {
return fFVal;}
105 double Edm()
const {
return fEDM;}
106 unsigned int NFcn()
const {
return fNFcn;}
114 const std::vector<ROOT::Minuit2::MinuitParameter>& MinuitParameters()
const;
116 std::vector<double> Params()
const;
117 std::vector<double> Errors()
const;
120 const MinuitParameter& Parameter(
unsigned int i)
const;
123 void Add(
const std::string & name,
double val,
double err);
125 void Add(
const std::string & name,
double val,
double err,
double ,
double);
127 void Add(
const std::string &,
double);
130 void Fix(
unsigned int);
131 void Release(
unsigned int);
132 void RemoveLimits(
unsigned int);
133 void SetValue(
unsigned int,
double);
134 void SetError(
unsigned int,
double);
135 void SetLimits(
unsigned int,
double,
double);
136 void SetUpperLimit(
unsigned int,
double);
137 void SetLowerLimit(
unsigned int,
double);
138 void SetName(
unsigned int iext,
const std::string &name) { fParameters.SetName(iext,name); }
140 double Value(
unsigned int)
const;
141 double Error(
unsigned int)
const;
144 void Fix(
const std::string &);
145 void Release(
const std::string &);
146 void SetValue(
const std::string &,
double);
147 void SetError(
const std::string &,
double);
148 void SetLimits(
const std::string &,
double,
double);
149 void SetUpperLimit(
const std::string &,
double);
150 void SetLowerLimit(
const std::string &,
double);
151 void RemoveLimits(
const std::string &);
153 double Value(
const std::string &)
const;
154 double Error(
const std::string &)
const;
157 unsigned int Index(
const std::string &)
const;
159 const std::string & GetName(
unsigned int)
const;
161 const char* Name(
unsigned int)
const;
164 double Int2ext(
unsigned int,
double)
const;
165 double Ext2int(
unsigned int,
double)
const;
166 unsigned int IntOfExt(
unsigned int)
const;
167 unsigned int ExtOfInt(
unsigned int)
const;
168 unsigned int VariableParameters()
const;
169 const MnMachinePrecision& Precision()
const;
170 void SetPrecision(
double eps);
176 bool fCovarianceValid;
183 MnUserParameters fParameters;
184 MnUserCovariance fCovariance;
185 MnGlobalCorrelationCoeff fGlobalCC;
187 std::vector<double> fIntParameters;
188 MnUserCovariance fIntCovariance;
196 #endif // ROOT_Minuit2_MnUserParameterState