23 : fValid(
true), fCovarianceValid(
false), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
30 : fValid(
true), fCovarianceValid(
false), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
36 for (std::vector<MinuitParameter>::const_iterator ipar =
MinuitParameters().begin();
38 if ((*ipar).IsConst() || (*ipar).IsFixed())
40 if ((*ipar).HasLimits())
52 : fValid(
true), fCovarianceValid(
true), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
59 std::vector<double> err;
60 err.reserve(par.size());
61 for (
unsigned int i = 0; i < par.size(); i++) {
70 : fValid(
true), fCovarianceValid(
true), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
77 std::vector<double> err;
78 err.reserve(par.size());
79 for (
unsigned int i = 0; i < par.size(); i++) {
88 : fValid(
true), fCovarianceValid(
true), fGCCValid(
false), fCovStatus(-1), fFVal(0.), fEDM(0.), fNFcn(0),
96 for (std::vector<MinuitParameter>::const_iterator ipar =
MinuitParameters().begin();
98 if ((*ipar).IsConst() || (*ipar).IsFixed())
100 if ((*ipar).HasLimits())
115 : fValid(
st.IsValid()), fCovarianceValid(
false), fGCCValid(
false), fCovStatus(-1), fFVal(
st.Fval()), fEDM(
st.Edm()),
124 for (std::vector<MinuitParameter>::const_iterator ipar =
trafo.Parameters().
begin();
125 ipar !=
trafo.Parameters().
end(); ++ipar) {
126 if ((*ipar).IsConst()) {
127 Add((*ipar).GetName(), (*ipar).Value());
128 }
else if ((*ipar).IsFixed()) {
129 Add((*ipar).GetName(), (*ipar).Value(), (*ipar).Error());
130 if ((*ipar).HasLimits()) {
131 if ((*ipar).HasLowerLimit() && (*ipar).HasUpperLimit())
132 SetLimits((*ipar).GetName(), (*ipar).LowerLimit(), (*ipar).UpperLimit());
133 else if ((*ipar).HasLowerLimit() && !(*ipar).HasUpperLimit())
138 Fix((*ipar).GetName());
139 }
else if ((*ipar).HasLimits()) {
140 unsigned int i =
trafo.IntOfExt((*ipar).Number());
142 st.Error().IsValid() ? std::sqrt(2. *
up *
st.Error().InvHessian()(i, i)) :
st.Parameters().Dirin()(i);
143 Add((*ipar).GetName(),
trafo.Int2ext(i,
st.Vec()(i)),
trafo.Int2extError(i,
st.Vec()(i), err));
144 if ((*ipar).HasLowerLimit() && (*ipar).HasUpperLimit())
145 SetLimits((*ipar).GetName(), (*ipar).LowerLimit(), (*ipar).UpperLimit());
146 else if ((*ipar).HasLowerLimit() && !(*ipar).HasUpperLimit())
151 unsigned int i =
trafo.IntOfExt((*ipar).Number());
153 st.Error().IsValid() ? std::sqrt(2. *
up *
st.Error().InvHessian()(i, i)) :
st.Parameters().Dirin()(i);
154 Add((*ipar).GetName(),
st.Vec()(i), err);
164 if (
st.Error().IsAvailable())
171 st.Error().InvHessian().Data() +
st.Error().InvHessian().size()),
172 st.Error().InvHessian().Nrow());
179 if (!
st.Error().IsNotPosDef())
182 if (
st.Error().IsMadePosDef())
184 if (
st.Error().IsAccurate())
193 MnPrint print(
"MnUserParameterState::Hessian");
199 print.
Warn(
"Inversion failed; return diagonal matrix");
240 MnPrint print(
"MnUserParameterState::Add");
253 print.
Warn(
"Cannot modify status of constant parameter",
name);
265 MnPrint print(
"MnUserParameterState::Add");
277 print.
Warn(
"Cannot modify status of constant parameter",
name);
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Class describing a symmetric matrix of size n.
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
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
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
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)
MnGlobalCorrelationCoeff fGlobalCC
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)
const_iterator begin() const
const_iterator end() const
CPyCppyy::Parameter Parameter
int Invert(LASymMatrix &)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...