26 fValid(true), fCovarianceValid(
false), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0), fParameters(
MnUserParameters(par, err)), fCovariance(
MnUserCovariance()), fGlobalCC(
MnGlobalCorrelationCoeff()), fIntParameters(par), fIntCovariance(
MnUserCovariance())
30 fValid(true), fCovarianceValid(
false), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0), fParameters(par), fCovariance(
MnUserCovariance()), fGlobalCC(
MnGlobalCorrelationCoeff()), fIntParameters(
std::vector<
double>()), fIntCovariance(
MnUserCovariance()) {
34 if((*ipar).IsConst() || (*ipar).IsFixed())
continue;
35 if((*ipar).HasLimits())
46 fValid(true), fCovarianceValid(true), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
50 std::vector<double> err; err.reserve(par.size());
51 for(
unsigned int i = 0; i < par.size(); i++) {
60 fValid(true), fCovarianceValid(true), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
64 std::vector<double> err; err.reserve(par.size());
65 for(
unsigned int i = 0; i < par.size(); i++) {
75 fValid(true), fCovarianceValid(true), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
82 if((*ipar).IsConst() || (*ipar).IsFixed())
continue;
83 if((*ipar).HasLimits())
98 fValid(st.IsValid()), fCovarianceValid(
false), fGCCValid(
false), fCovStatus(-1),
105 for(std::vector<MinuitParameter>::const_iterator ipar = trafo.
Parameters().begin(); ipar != trafo.
Parameters().end(); ipar++) {
106 if((*ipar).IsConst()) {
107 Add((*ipar).GetName(), (*ipar).Value());
108 }
else if((*ipar).IsFixed()) {
109 Add((*ipar).GetName(), (*ipar).Value(), (*ipar).Error());
110 if((*ipar).HasLimits()) {
111 if((*ipar).HasLowerLimit() && (*ipar).HasUpperLimit())
112 SetLimits((*ipar).GetName(), (*ipar).LowerLimit(),(*ipar).UpperLimit());
113 else if((*ipar).HasLowerLimit() && !(*ipar).HasUpperLimit())
118 Fix((*ipar).GetName());
119 }
else if((*ipar).HasLimits()) {
120 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());
132 Add((*ipar).GetName(), st.
Vec()(i), err);
168 MN_INFO_MSG(
"MnUserParameterState:Hessian inversion fails- return diagonal matrix.");
217 std::string msg =
"Cannot modify status of constant parameter " +
name;
240 std::string msg =
"Cannot modify status of constant parameter " +
name;
const char * Name(unsigned int) const
void Release(unsigned int)
unsigned int Index(const std::string &) const
void SetLowerLimit(unsigned int, double)
void RemoveLimits(unsigned int)
void SetError(unsigned int, double)
int Invert(LASymMatrix &)
const std::vector< ROOT::Minuit2::MinuitParameter > & MinuitParameters() const
facade: forward interface of MnUserParameters and MnUserTransformation
double Value(unsigned int) const
MnUserCovariance fCovariance
Namespace for new ROOT classes and functions.
unsigned int VariableParameters() const
const std::string & GetName(unsigned int) const
const MnMachinePrecision & Precision() const
Class describing a symmetric matrix of size n.
unsigned int size() const
void Release(unsigned int)
const std::vector< ROOT::Minuit2::MinuitParameter > & Parameters() const
access to parameters (row-wise)
double Value(unsigned int) const
std::vector< double > Params() const
unsigned int Nrow() const
void Add(const std::string &name, double val, double err)
void Fix(unsigned int)
interaction via external number of Parameter
class for the individual Minuit Parameter with Name and number; contains the input numbers for the mi...
MnUserCovariance fIntCovariance
ClassImp(TIterator) Bool_t TIterator return false
Compare two iterator objects.
determines the relative floating point arithmetic precision.
void SetError(unsigned int, double)
bool Add(const std::string &, double, double)
Add free Parameter Name, Value, Error.
const std::string & GetName(unsigned int) const
void SetPrecision(double eps)
const char * Name(unsigned int) const
unsigned int IntOfExt(unsigned int) const
const MinimumError & Error() const
std::vector< double > Errors() const
double Error(unsigned int) const
void SetLimits(unsigned int, double, double)
const MinuitParameter & Parameter(unsigned int) const
access to single Parameter
void SetLimits(unsigned int, double, double)
double Int2ext(unsigned int, double) const
void SetValue(unsigned int, double)
MnUserCovariance Hessian() const
#define MN_INFO_MSG2(loc, str)
unsigned int ExtOfInt(unsigned int) const
const MnAlgebraicVector & Vec() const
const MnAlgebraicVector & Dirin() const
class to reduce the covariance matrix when a parameter is fixed by removing the corresponding row and...
bool IsMadePosDef() const
void SetValue(unsigned int, double)
bool HasCovariance() const
MnGlobalCorrelationCoeff fGlobalCC
void SetUpperLimit(unsigned int, double)
const MnMachinePrecision & Precision() const
MnUserParameters fParameters
void SetLowerLimit(unsigned int, double)
API class for the user interaction with the parameters; serves as input to the minimizer as well as o...
const MnAlgebraicSymMatrix & InvHessian() const
std::vector< double > fIntParameters
const MinuitParameter & Parameter(unsigned int i) const
MnUserParameterState()
default constructor (invalid state)
const MinimumParameters & Parameters() const
class for global correlation coefficient
void SetPrecision(double eps)
std::vector< double > Params() const
access to parameters and errors in column-wise representation
double Ext2int(unsigned int, double) const
void SetUpperLimit(unsigned int, double)
unsigned int Index(const std::string &) const
const double * Data() const
unsigned int Nrow() const
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
std::vector< double > Errors() const
const std::vector< double > & Data() const
void RemoveLimits(unsigned int)
double Error(unsigned int) const
const MnUserTransformation & Trafo() const
Class containing the covariance matrix data represented as a vector of size n*(n+1)/2 Used to hide in...