Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:29:41

0001 // @(#)root/minuit2:$Id$
0002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005
0003 
0004 /**********************************************************************
0005  *                                                                    *
0006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
0007  *                                                                    *
0008  **********************************************************************/
0009 
0010 #ifndef ROOT_Minuit2_ModularFunctionMinimizer
0011 #define ROOT_Minuit2_ModularFunctionMinimizer
0012 
0013 #include "Minuit2/MnConfig.h"
0014 
0015 #include "Minuit2/MnStrategy.h"
0016 
0017 #include <vector>
0018 
0019 namespace ROOT {
0020 
0021 namespace Minuit2 {
0022 
0023 class MinimumSeedGenerator;
0024 class MinimumBuilder;
0025 class MinimumSeed;
0026 class MnFcn;
0027 class GradientCalculator;
0028 class MnUserParameterState;
0029 class MnUserParameters;
0030 class MnUserCovariance;
0031 class FCNBase;
0032 class FumiliFCNBase;
0033 class FunctionMinimum;
0034 
0035 //_____________________________________________________________
0036 /**
0037    Base common class providing the API for all the minimizer
0038    Various Minimize methods are provided varying on the type of
0039    FCN function passesd and on the objects used for the parameters
0040  */
0041 class ModularFunctionMinimizer {
0042 
0043 public:
0044 
0045    virtual ~ModularFunctionMinimizer() = default;
0046 
0047    virtual FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy & = MnStrategy{1},
0048                                     unsigned int maxfcn = 0, double toler = 0.1) const;
0049 
0050    virtual const MinimumSeedGenerator &SeedGenerator() const = 0;
0051    virtual const MinimumBuilder &Builder() const = 0;
0052    virtual MinimumBuilder &Builder() = 0;
0053 
0054 public:
0055    virtual FunctionMinimum Minimize(const MnFcn &, const GradientCalculator &, const MinimumSeed &, const MnStrategy &,
0056                                     unsigned int, double) const;
0057 };
0058 
0059 } // namespace Minuit2
0060 
0061 } // namespace ROOT
0062 
0063 #endif // ROOT_Minuit2_ModularFunctionMinimizer