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_MinimumSeedGenerator 11 #define ROOT_Minuit2_MinimumSeedGenerator 12 13 namespace ROOT { 14 15 namespace Minuit2 { 16 17 class MinimumSeed; 18 class MnFcn; 19 class GradientCalculator; 20 class MnUserParameterState; 21 class MnStrategy; 22 class AnalyticalGradientCalculator; 23 24 /** base class for seed generators (starting values); the seed generator 25 prepares initial starting values from the input (MnUserParameterState) 26 for the minimization; 27 */ 28 29 class MinimumSeedGenerator { 30 31 public: ~MinimumSeedGenerator()32 virtual ~MinimumSeedGenerator() {} 33 34 virtual MinimumSeed 35 operator()(const MnFcn &, const GradientCalculator &, const MnUserParameterState &, const MnStrategy &) const = 0; 36 37 virtual MinimumSeed operator()(const MnFcn &, const AnalyticalGradientCalculator &, const MnUserParameterState &, 38 const MnStrategy &) const = 0; 39 }; 40 41 } // namespace Minuit2 42 43 } // namespace ROOT 44 45 #endif // ROOT_Minuit2_MinimumSeedGenerator 46