// @(#)root/mathcore:$Id$
// Author: L. Moneta Fri Dec 22 14:43:33 2006

/**********************************************************************
 *                                                                    *
 * Copyright (c) 2006  LCG ROOT Math Team, CERN/PH-SFT                *
 *                                                                    *
 *                                                                    *
 **********************************************************************/

// Header file for class Factory

#ifndef ROOT_Math_Factory
#define ROOT_Math_Factory

#include <string>


namespace ROOT {

   namespace Math {

   class Minimizer;
   class DistSampler;

//___________________________________________________________________________
/**
   Factory  class holding static functions to create the interfaces like ROOT::Math::Minimizer
   via the Plugin Manager
*/
class Factory {
      public:

   /**
      static method to create the corrisponding Minimizer given the string
      Supported Minimizers types are:
      Minuit (TMinuit), Minuit2, GSLMultiMin, GSLMultiFit, GSLSimAn, Linear, Fumili, Genetic
      If no name is given use default values defined in  MinimizerOptions
    */
   static ROOT::Math::Minimizer * CreateMinimizer(const std::string & minimizerType = "", const std::string & algoType = "");

   /**
      static method to create the distribution sampler class given a string specifying the type
      Supported sampler types are:
      Unuran, Foam
      If no name is given use default values defined in  DistSamplerOptions
    */
   static ROOT::Math::DistSampler * CreateDistSampler(const std::string & samplerType ="");


};

   } // end namespace Fit

} // end namespace ROOT


#endif /* ROOT_Fit_MinimizerFactory */
 Factory.h:1
 Factory.h:2
 Factory.h:3
 Factory.h:4
 Factory.h:5
 Factory.h:6
 Factory.h:7
 Factory.h:8
 Factory.h:9
 Factory.h:10
 Factory.h:11
 Factory.h:12
 Factory.h:13
 Factory.h:14
 Factory.h:15
 Factory.h:16
 Factory.h:17
 Factory.h:18
 Factory.h:19
 Factory.h:20
 Factory.h:21
 Factory.h:22
 Factory.h:23
 Factory.h:24
 Factory.h:25
 Factory.h:26
 Factory.h:27
 Factory.h:28
 Factory.h:29
 Factory.h:30
 Factory.h:31
 Factory.h:32
 Factory.h:33
 Factory.h:34
 Factory.h:35
 Factory.h:36
 Factory.h:37
 Factory.h:38
 Factory.h:39
 Factory.h:40
 Factory.h:41
 Factory.h:42
 Factory.h:43
 Factory.h:44
 Factory.h:45
 Factory.h:46
 Factory.h:47
 Factory.h:48
 Factory.h:49
 Factory.h:50
 Factory.h:51
 Factory.h:52
 Factory.h:53
 Factory.h:54
 Factory.h:55
 Factory.h:56
 Factory.h:57
 Factory.h:58