23 : fValid(true), fCovStatus(-1), fParameters(
MnUserParameters(par, err)), fIntParameters(par.begin(), par.end())
32 if (ipar.IsConst() || ipar.IsFixed())
45 : fValid(true), fCovStatus(-1), fIntParameters(par.begin(), par.end())
50 std::vector<double> err;
51 err.reserve(par.size());
52 for (
unsigned int i = 0; i < par.size(); i++) {
61 : fValid(true), fCovStatus(-1), fIntParameters(par.begin(), par.end())
66 std::vector<double> err;
67 err.reserve(par.size());
68 for (
unsigned int i = 0; i < par.size(); i++) {
77 : fValid(true), fCovStatus(-1), fParameters(par)
83 if (ipar.IsConst() || ipar.IsFixed())
97 : fValid(st.IsValid()), fCovStatus(-1), fFVal(st.Fval()), fEDM(st.Edm()), fNFcn(st.NFcn())
105 if (ipar.IsConst()) {
106 Add(ipar.GetName(), ipar.Value());
107 }
else if (ipar.IsFixed()) {
108 Add(ipar.GetName(), ipar.Value(), ipar.Error());
109 if (ipar.HasLimits()) {
110 if (ipar.HasLowerLimit() && ipar.HasUpperLimit())
111 SetLimits(ipar.GetName(), ipar.LowerLimit(), ipar.UpperLimit());
112 else if (ipar.HasLowerLimit() && !ipar.HasUpperLimit())
118 }
else if (ipar.HasLimits()) {
119 unsigned int i = trafo.
IntOfExt(ipar.Number());
123 if (ipar.HasLowerLimit() && ipar.HasUpperLimit())
124 SetLimits(ipar.GetName(), ipar.LowerLimit(), ipar.UpperLimit());
125 else if (ipar.HasLowerLimit() && !ipar.HasUpperLimit())
130 unsigned int i = trafo.
IntOfExt(ipar.Number());
133 Add(ipar.GetName(), st.
Vec()(i), err);
168 MnPrint print(
"MnUserParameterState::Hessian");
174 print.
Warn(
"Inversion failed; return diagonal matrix");
215 MnPrint print(
"MnUserParameterState::Add");
227 print.
Warn(
"Cannot modify status of constant parameter",
name);
239 MnPrint print(
"MnUserParameterState::Add");
250 print.
Warn(
"Cannot modify status of constant parameter",
name);
274 assert(cov.
Nrow() >= nrow);
281 if (cov.
Nrow() > nrow)
283 else if (cov.
Nrow() == nrow)
287 for (
unsigned int i = 0; i < nrow; i++)
291 for (
unsigned int i = 0; i < nrow; i++)
292 for (
unsigned int j = i; j < nrow; j++)
293 covmat(i, j) = covsqueezed(i, j);
532 for (
int i = 0; i <
n; ++i) {
533 for (
int j = 0; j <= i; ++j) {
Class describing a symmetric matrix of size n.
const double * Data() const
unsigned int size() const
const MnAlgebraicSymMatrix & InvHessian() const
bool IsMadePosDef() const
const MnAlgebraicVector & Dirin() const
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
const MinimumError & Error() const
const MnAlgebraicVector & Vec() const
const MinimumParameters & Parameters() const
class for the individual Minuit Parameter with Name and number; contains the input numbers for the mi...
class to reduce the covariance matrix when a parameter is fixed by removing the corresponding row and...
class for global correlation coefficient
Sets the relative floating point (double) arithmetic precision.
void Warn(const Ts &... args)
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...
unsigned int Nrow() const
const std::vector< double > & Data() const
const MnMachinePrecision & Precision() const
void SetLimits(unsigned int, double, double)
double Value(unsigned int) const
double Error(unsigned int) const
void RemoveLimits(unsigned int)
unsigned int Index(const std::string &) const
const std::string & GetName(unsigned int) const
double Int2ext(unsigned int, double) const
MnUserCovariance fIntCovariance
MnGlobalCorrelationCoeff GlobalCC() const
void Release(unsigned int)
unsigned int VariableParameters() const
const MinuitParameter & Parameter(unsigned int i) const
double Ext2int(unsigned int, double) const
void SetValue(unsigned int, double)
void Add(const std::string &name, double val, double err)
unsigned int ExtOfInt(unsigned int) const
const char * Name(unsigned int) const
MnUserCovariance Hessian() const
void AddCovariance(const MnUserCovariance &)
MnUserParameterState()
default constructor (invalid state)
const std::vector< ROOT::Minuit2::MinuitParameter > & MinuitParameters() const
facade: forward interface of MnUserParameters and MnUserTransformation
MnUserParameters fParameters
void SetPrecision(double eps)
unsigned int IntOfExt(unsigned int) const
void SetUpperLimit(unsigned int, double)
MnUserCovariance fCovariance
std::vector< double > fIntParameters
void SetError(unsigned int, double)
std::vector< double > Errors() const
void SetLowerLimit(unsigned int, double)
std::vector< double > Params() const
API class for the user interaction with the parameters; serves as input to the minimizer as well as o...
double Error(unsigned int) const
std::vector< double > Params() const
access to parameters and errors in column-wise representation
const char * Name(unsigned int) const
const MinuitParameter & Parameter(unsigned int) const
access to single Parameter
unsigned int Index(const std::string &) const
void RemoveLimits(unsigned int)
double Value(unsigned int) const
const MnMachinePrecision & Precision() const
void Fix(unsigned int)
interaction via external number of Parameter
void SetLowerLimit(unsigned int, double)
void SetError(unsigned int, double)
void SetValue(unsigned int, double)
const std::vector< ROOT::Minuit2::MinuitParameter > & Parameters() const
access to parameters (row-wise)
const MnUserTransformation & Trafo() const
void Release(unsigned int)
std::vector< double > Errors() const
const std::string & GetName(unsigned int) const
void SetUpperLimit(unsigned int, double)
bool Add(const std::string &, double, double)
Add free Parameter Name, Value, Error.
void SetPrecision(double eps)
void SetLimits(unsigned int, double, double)
cppjit::cpyrt::Parameter Parameter
int Invert(LASymMatrix &)