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