22 FunctionGradient AnalyticalGradientCalculator::operator()(
const MinimumParameters& par)
const {
25 std::vector<double> grad = fGradCalc.Gradient(fTransformation(par.Vec()));
26 assert(grad.size() == fTransformation.Parameters().size());
28 MnAlgebraicVector v(par.Vec().size());
29 for(
unsigned int i = 0; i < par.Vec().size(); i++) {
30 unsigned int ext = fTransformation.ExtOfInt(i);
31 if(fTransformation.Parameter(ext).HasLimits()) {
35 double dd = fTransformation.DInt2Ext(i, par.Vec()(i));
42 std::cout <<
"User given gradient in Minuit2" << v << std::endl;
45 return FunctionGradient(v);
48 FunctionGradient AnalyticalGradientCalculator::operator()(
const MinimumParameters& par,
const FunctionGradient&)
const {
53 bool AnalyticalGradientCalculator::CheckGradient()
const {
55 return fGradCalc.CheckGradient();