ModularFunctionMinimizer.h

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: ModularFunctionMinimizer.h 21530 2007-12-20 11:14:35Z moneta $
00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005  
00003 
00004 /**********************************************************************
00005  *                                                                    *
00006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
00007  *                                                                    *
00008  **********************************************************************/
00009 
00010 #ifndef ROOT_Minuit2_ModularFunctionMinimizer
00011 #define ROOT_Minuit2_ModularFunctionMinimizer
00012 
00013 
00014 #ifndef ROOT_Minuit2_MnConfig
00015 #include "Minuit2/MnConfig.h"
00016 #endif
00017 
00018 #ifndef ROOT_Minuit2_FunctionMinimizer
00019 #include "Minuit2/FunctionMinimizer.h"
00020 #endif
00021 
00022 #include <vector>
00023 
00024 namespace ROOT {
00025 
00026    namespace Minuit2 {
00027 
00028 
00029 
00030 class MinimumSeedGenerator;
00031 class MinimumBuilder;
00032 class MinimumSeed;
00033 class MnFcn;
00034 class GradientCalculator;
00035 class MnUserParameterState;
00036 class MnUserParameters;
00037 class MnUserCovariance;
00038 class MnStrategy;
00039 class FumiliFCNBase;
00040 
00041 //_____________________________________________________________
00042 /**
00043    Base common class providing the API for all the minimizer
00044    Various Minimize methods are provided varying on the type of 
00045    FCN function passesd and on the objects used for the parameters
00046  */
00047 class ModularFunctionMinimizer : public FunctionMinimizer {
00048 
00049 public:
00050 
00051    virtual ~ModularFunctionMinimizer() {}
00052 
00053 // inherited interface
00054    virtual FunctionMinimum Minimize(const FCNBase&, const std::vector<double>&, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const; 
00055 
00056    virtual FunctionMinimum Minimize(const FCNGradientBase&, const std::vector<double>&, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const; 
00057 
00058    virtual FunctionMinimum Minimize(const FCNBase&, const std::vector<double>&, unsigned int, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const; 
00059 
00060    virtual FunctionMinimum Minimize(const FCNGradientBase&, const std::vector<double>&, unsigned int, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const; 
00061 
00062 // extension
00063    virtual FunctionMinimum Minimize(const FCNBase&, const MnUserParameters&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00064 
00065    virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameters&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00066 
00067    virtual FunctionMinimum Minimize(const FCNBase&, const MnUserParameters&, const MnUserCovariance&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00068 
00069    virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameters&, const MnUserCovariance&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00070 
00071    virtual FunctionMinimum Minimize(const FCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00072 
00073    virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00074 
00075    // for Fumili
00076 
00077 //   virtual FunctionMinimum Minimize(const FumiliFCNBase&, const std::vector<double>&, const std::vector<double>&, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const; 
00078 
00079 //   virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameters&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00080 
00081 //   virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameters&, const MnUserCovariance&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00082 
00083 //   virtual FunctionMinimum Minimize(const FumiliFCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
00084 
00085 
00086    virtual const MinimumSeedGenerator& SeedGenerator() const = 0;
00087    virtual const MinimumBuilder& Builder() const = 0;
00088 
00089 public:
00090 
00091    virtual FunctionMinimum Minimize(const MnFcn&, const GradientCalculator&, const MinimumSeed&, const MnStrategy&, unsigned int, double) const; 
00092 
00093 };
00094 
00095   }  // namespace Minuit2
00096 
00097 }  // namespace ROOT
00098 
00099 #endif  // ROOT_Minuit2_ModularFunctionMinimizer

Generated on Tue Jul 5 14:25:46 2011 for ROOT_528-00b_version by  doxygen 1.5.1