File indexing completed on 2025-10-30 08:54:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef ROOT_Minuit2_FumiliMinimizer
0011 #define ROOT_Minuit2_FumiliMinimizer
0012
0013 #include "Minuit2/ModularFunctionMinimizer.h"
0014 #include "Minuit2/MnSeedGenerator.h"
0015 #include "Minuit2/FumiliBuilder.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 FumiliFcnBase;
0028 class GradientCalculator;
0029 class MnUserParameterState;
0030 class MnUserParameters;
0031 class MnUserCovariance;
0032 class MnStrategy;
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 class FumiliMinimizer : public ModularFunctionMinimizer {
0048
0049 public:
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061 FumiliMinimizer() : fMinSeedGen(MnSeedGenerator()), fMinBuilder(FumiliBuilder()) {}
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071 const MinimumSeedGenerator &SeedGenerator() const override { return fMinSeedGen; }
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081 const FumiliBuilder &Builder() const override { return fMinBuilder; }
0082 FumiliBuilder &Builder() override { return fMinBuilder; }
0083
0084
0085
0086 FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn = 0,
0087 double toler = 0.1) const override;
0088
0089
0090
0091
0092
0093 void SetMethod(const std::string & method);
0094
0095
0096 using ModularFunctionMinimizer::Minimize;
0097
0098 private:
0099 MnSeedGenerator fMinSeedGen;
0100 FumiliBuilder fMinBuilder;
0101 };
0102
0103 }
0104
0105 }
0106
0107 #endif