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())
113 SetLowerLimit(ipar.GetName(), ipar.LowerLimit());
115 SetUpperLimit(ipar.GetName(), ipar.UpperLimit());
118 }
else if (ipar.HasLimits()) {
119 unsigned int i = trafo.IntOfExt(ipar.Number());
121 st.Error().IsValid() ? std::sqrt(2. * up * st.Error().InvHessian()(i, i)) : st.Parameters().Dirin()(i);
122 Add(ipar.GetName(), trafo.Int2ext(i, st.Vec()(i)), trafo.Int2extError(i, st.Vec()(i), err));
123 if (ipar.HasLowerLimit() && ipar.HasUpperLimit())
124 SetLimits(ipar.GetName(), ipar.LowerLimit(), ipar.UpperLimit());
125 else if (ipar.HasLowerLimit() && !ipar.HasUpperLimit())
126 SetLowerLimit(ipar.GetName(), ipar.LowerLimit());
128 SetUpperLimit(ipar.GetName(), ipar.UpperLimit());
130 unsigned int i = trafo.IntOfExt(ipar.Number());
132 st.Error().IsValid() ? std::sqrt(2. * up * st.Error().InvHessian()(i, i)) : st.Parameters().Dirin()(i);
133 Add(ipar.GetName(), st.Vec()(i), err);
138 fCovarianceValid = st.Error().IsValid();
143 if (st.Error().IsAvailable())
146 if (fCovarianceValid) {
147 fCovariance = trafo.Int2extCovariance(st.Vec(), st.Error().InvHessian());
149 MnUserCovariance({st.Error().InvHessian().Data(), st.Error().InvHessian().size()}, st.Error().InvHessian().Nrow());
150 fCovariance.Scale(2. * up);
152 assert(fCovariance.Nrow() == VariableParameters());
154 if (!st.Error().IsNotPosDef())
157 if (st.Error().IsMadePosDef())
159 if (st.Error().IsAccurate())
Error("WriteTObject","The current directory (%s) is not associated with a file. The object (%s) has not been written.", GetName(), objname)