Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
AnalyticalGradientCalculator.h
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 
10 #ifndef ROOT_Minuit2_AnalyticalGradientCalculator
11 #define ROOT_Minuit2_AnalyticalGradientCalculator
12 
14 
15 namespace ROOT {
16 
17  namespace Minuit2 {
18 
19 
20 class FCNGradientBase;
21 class MnUserTransformation;
22 
23 class AnalyticalGradientCalculator : public GradientCalculator {
24 
25 public:
26 
27  AnalyticalGradientCalculator(const FCNGradientBase& fcn, const MnUserTransformation& state) : fGradCalc(fcn), fTransformation(state) {}
28 
29  ~AnalyticalGradientCalculator() {}
30 
31 
32  virtual FunctionGradient operator()(const MinimumParameters&) const;
33 
34  virtual FunctionGradient operator()(const MinimumParameters&,
35  const FunctionGradient&) const;
36 
37  virtual bool CheckGradient() const;
38 
39 private:
40 
41  const FCNGradientBase& fGradCalc;
42  const MnUserTransformation& fTransformation;
43 };
44 
45  } // namespace Minuit2
46 
47 } // namespace ROOT
48 
49 #endif // ROOT_Minuit2_AnalyticalGradientCalculator