10#ifndef INCLUDE_GUARD_BELLE2_MVA_INTERFACE_HEADER 
   11#define INCLUDE_GUARD_BELLE2_MVA_INTERFACE_HEADER 
   13#include <mva/interface/Teacher.h> 
   14#include <mva/interface/Expert.h> 
   65      virtual std::unique_ptr<SpecificOptions> 
getOptions() 
const = 0;
 
   78      virtual std::unique_ptr<MVA::Expert> 
getExpert() 
const = 0;
 
   98    template<
class TemplateOptions, 
class TemplateTeacher, 
class TemplateExpert>
 
  109      virtual std::unique_ptr<SpecificOptions> 
getOptions()
 const override { 
return std::unique_ptr<SpecificOptions>(
new TemplateOptions); }
 
  119        return std::unique_ptr<Teacher>(
new TemplateTeacher(general_options, 
dynamic_cast<const TemplateOptions&
>(specific_options)));
 
  125      virtual std::unique_ptr<MVA::Expert> 
getExpert()
 const override { 
return std::unique_ptr<MVA::Expert>(
new TemplateExpert); }
 
Abstract Interface to third-party MVA libraries.
static void initSupportedInterfaces()
Static function which initliazes all supported interfaces, has to be called once before getSupportedI...
std::string getName() const
Returns the name of the third-party MVA library.
static std::map< std::string, AbstractInterface * > s_supported_interfaces
Map of supported interfaces.
virtual std::unique_ptr< MVA::Expert > getExpert() const =0
Get Exoert of this MVA library.
virtual std::unique_ptr< SpecificOptions > getOptions() const =0
Get Options of this MVA library.
virtual std::unique_ptr< Teacher > getTeacher(const GeneralOptions &general_options, const SpecificOptions &specific_options) const =0
Get Teacher of this MVA library.
std::string m_name
Name of the third-party library.
static std::map< std::string, AbstractInterface * > getSupportedInterfaces()
Returns interfaces supported by the MVA Interface.
virtual ~AbstractInterface()
Virtual destructor.
General options which are shared by all MVA trainings.
Template class to easily construct a interface for an MVA library using a library-specific Options,...
Interface()
Constructs a new interface.
virtual std::unique_ptr< MVA::Expert > getExpert() const override
Get Exoert of this MVA library.
virtual std::unique_ptr< Teacher > getTeacher(const GeneralOptions &general_options, const SpecificOptions &specific_options) const override
Get Teacher of this MVA library.
virtual std::unique_ptr< SpecificOptions > getOptions() const override
Get Options of this MVA library.
Specific Options, all method Options have to inherit from this class.
Abstract base class for different kinds of events.