#ifndef ROOT_Minuit2_FumiliMinimizer
#define ROOT_Minuit2_FumiliMinimizer
#include "Minuit2/ModularFunctionMinimizer.h"
#include "Minuit2/MnSeedGenerator.h"
#include "Minuit2/FumiliBuilder.h"
namespace ROOT {
   namespace Minuit2 {
class MinimumSeedGenerator;
class MinimumBuilder;
class MinimumSeed;
class MnFcn;
class FumiliFcnBase; 
class GradientCalculator;
class MnUserParameterState;
class MnUserParameters;
class MnUserCovariance;
class MnStrategy;
class FumiliMinimizer : public ModularFunctionMinimizer {
public:
   
   FumiliMinimizer() : fMinSeedGen(MnSeedGenerator()),
                       fMinBuilder(FumiliBuilder()) {}
  
   ~FumiliMinimizer() {}
   
   const MinimumSeedGenerator& SeedGenerator() const {return fMinSeedGen;}
   
   const FumiliBuilder& Builder() const {return fMinBuilder;}
   
   FunctionMinimum Minimize(const FCNBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
   virtual FunctionMinimum Minimize(const FCNGradientBase&, const MnUserParameterState&, const MnStrategy&, unsigned int maxfcn = 0, double toler = 0.1) const;
   
   virtual FunctionMinimum Minimize(const FCNBase& fcn, const std::vector<double>& par, const std::vector<double>& err, unsigned int stra = 1, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn,toler);
   } 
   virtual FunctionMinimum Minimize(const FCNGradientBase&fcn, const std::vector<double>&par, const std::vector<double>&err, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,err,stra,maxfcn,toler);    
   }
   virtual FunctionMinimum Minimize(const FCNBase& fcn, const std::vector<double>&par, unsigned int nrow, const std::vector<double>&cov, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,nrow,cov,stra,maxfcn,toler);    
   } 
   virtual FunctionMinimum Minimize(const FCNGradientBase& fcn, const std::vector<double>&par, unsigned int nrow, const std::vector<double>&cov, unsigned int stra=1, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,nrow,cov,stra,maxfcn,toler);    
   } 
 
   virtual FunctionMinimum Minimize(const FCNBase& fcn, const MnUserParameters& par, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,stra,maxfcn,toler); 
   }
   virtual FunctionMinimum Minimize(const FCNGradientBase& fcn, const MnUserParameters& par, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,stra,maxfcn,toler); 
   }
   virtual FunctionMinimum Minimize(const FCNBase& fcn, const MnUserParameters& par, const MnUserCovariance& cov, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,cov,stra,maxfcn,toler); 
   }
   virtual FunctionMinimum Minimize(const FCNGradientBase& fcn, const MnUserParameters& par, const MnUserCovariance& cov, const MnStrategy& stra, unsigned int maxfcn = 0, double toler = 0.1) const { 
      return ModularFunctionMinimizer::Minimize(fcn,par,cov,stra,maxfcn,toler); 
   }
   virtual FunctionMinimum Minimize(const MnFcn& mfcn, const GradientCalculator& gc, const MinimumSeed& seed, const MnStrategy& stra, unsigned int maxfcn, double toler) const { 
      return ModularFunctionMinimizer::Minimize(mfcn, gc, seed, stra, maxfcn, toler); 
   }
private:
   MnSeedGenerator fMinSeedGen;
   FumiliBuilder fMinBuilder;
};
  }  
}  
#endif  // ROOT_Minuit2_FumiliMinimizer
Last update: Thu Jan 17 08:42:34 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.