ComPWA
Common Partial-Wave-Analysis Framework
GenevaIF.hpp
Go to the documentation of this file.
1 // Copyright (c) 2013, 2017 The ComPWA Team.
2 // This file is part of the ComPWA framework, check
3 // https://github.com/ComPWA/ComPWA/license.txt for details.
4 
6 
14 #ifndef COMPWA_OPTIMIZER_GENEVAIF_HPP_
15 #define COMPWA_OPTIMIZER_GENEVAIF_HPP_
16 
17 #include "Estimator/Estimator.hpp"
19 #include "Optimizer/Optimizer.hpp"
20 
21 #include <memory>
22 
23 namespace Gem {
24 namespace Geneva {
25 class GFMinIndividual;
26 }
27 } // namespace Gem
28 
29 namespace ComPWA {
30 namespace Optimizer {
31 namespace Geneva {
32 
34 
35 class GenevaIF : public ComPWA::Optimizer::Optimizer<GenevaResult> {
36 
37 public:
38  GenevaIF(std::vector<ComPWA::Optimizer::Geneva::AlgorithmTypes>
39  AlgorithmOrder_ = {AlgorithmTypes::EVOLUTIONARY,
40  AlgorithmTypes::GRADIENT_DECENT},
41  std::string ConfigFileDir_ = "./");
42  GenevaResult optimize(Estimator::Estimator<double> &Estimator,
43  FitParameterList FitParameters) final;
44 
45  virtual ~GenevaIF() = default;
46 
47 private:
49  getFinalParameters(const FitParameterList &ParList,
50  std::shared_ptr<Gem::Geneva::GFMinIndividual> min) const;
51 
52  std::vector<ComPWA::Optimizer::Geneva::AlgorithmTypes> AlgorithmOrder;
53  std::string ConfigFileDir;
54 };
55 
56 } /* namespace Geneva */
57 } /* namespace Optimizer */
58 } /* namespace ComPWA */
59 
60 #endif
Definition: GenevaIF.hpp:23
std::vector< FitParameter< double > > FitParameterList
std::vector< ComPWA::Optimizer::Geneva::AlgorithmTypes > AlgorithmOrder
Definition: GenevaIF.hpp:52
FitParameterList getFinalParameters(const ROOT::Minuit2::MnUserParameterState &minState, FitParameterList InitialParameters)
Definition: MinuitIF.cpp:34
This class template provides the interface to optimization libraries.
Definition: Optimizer.hpp:22