Logo ROOT   6.18/05
Reference Guide
ParametricFunction.cxx
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
11#include "Minuit2/MnFcn.h"
12#include "Minuit2/MnStrategy.h"
17
18namespace ROOT {
19
20 namespace Minuit2 {
21
22//#include "Minuit2/MnPrint.h"
23
24
25
26std::vector<double> ParametricFunction::GetGradient(const std::vector<double>& x) const {
27 // calculate the numerical gradient (using Numerical2PGradientCalculator)
28
29 //LM: this I believe is not very efficient
30 MnFcn mfcn(*this);
31
32 MnStrategy strategy(1);
33
34 // ????????? how does it know the transformation????????
35 std::vector<double> err(x.size());
36 err.assign(x.size(), 0.1);
37 // need to use parameters
38 MnUserParameterState st(x, err);
39
40 Numerical2PGradientCalculator gc(mfcn, st.Trafo(), strategy);
41 FunctionGradient g = gc(x);
42 const MnAlgebraicVector & grad = g.Vec();
43 assert( grad.size() == x.size() );
45 // std::cout << "Param Function Gradient " << grad << std::endl;
46 return vt( grad );
47}
48
49 } // namespace Minuit2
50
51} // namespace ROOT
#define g(i)
Definition: RSha256.hxx:105
unsigned int size() const
Definition: LAVector.h:198
Wrapper class to FCNBase interface used internally by Minuit.
Definition: MnFcn.h:33
API class for defining three levels of strategies: low (0), medium (1), high (>=2); acts on: Migrad (...
Definition: MnStrategy.h:27
class which holds the external user and/or internal Minuit representation of the parameters and error...
const MnUserTransformation & Trafo() const
class performing the numerical gradient calculation
virtual std::vector< double > GetGradient(const std::vector< double > &x) const
Member function returning the Gradient of the function with respect to its variables (but without inc...
Double_t x[n]
Definition: legend1.C:17
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21