File indexing completed on 2025-01-18 10:10:23
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 ~FumiliMinimizer() override {}
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073 const MinimumSeedGenerator &SeedGenerator() const override { return fMinSeedGen; }
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083 const FumiliBuilder &Builder() const override { return fMinBuilder; }
0084 FumiliBuilder &Builder() override { return fMinBuilder; }
0085
0086
0087
0088 FunctionMinimum Minimize(const FCNBase &, const MnUserParameterState &, const MnStrategy &, unsigned int maxfcn = 0,
0089 double toler = 0.1) const override;
0090
0091 FunctionMinimum Minimize(const FCNGradientBase &, const MnUserParameterState &, const MnStrategy &,
0092 unsigned int maxfcn = 0, double toler = 0.1) const override;
0093
0094 using ModularFunctionMinimizer::Minimize;
0095
0096 private:
0097 MnSeedGenerator fMinSeedGen;
0098 FumiliBuilder fMinBuilder;
0099 };
0100
0101 }
0102
0103 }
0104
0105 #endif