Logo ROOT   6.08/07
Reference Guide
Classes | Namespaces | Macros
ClassifierFactory.h File Reference
#include <map>
#include <string>
#include <vector>
#include "TString.h"
Include dependency graph for ClassifierFactory.h:
This graph shows which files directly or indirectly include this file:

Classes

class  TMVA::ClassifierFactory
 

Namespaces

 TMVA
 Abstract ClassifierFactory template that handles arbitrary types.
 

Macros

#define REGISTER_METHOD(CLASS)
 for example More...
 

Macro Definition Documentation

◆ REGISTER_METHOD

#define REGISTER_METHOD (   CLASS)
Value:
namespace \
{ \
struct RegisterTMVAMethod { \
static TMVA::IMethod* CreateMethod##CLASS(const TString& job, const TString& title, TMVA::DataSetInfo& dsi, const TString& option) \
{ \
if(job=="" && title=="") { \
return (TMVA::IMethod*) new TMVA::Method##CLASS(dsi, option); \
} else { \
return (TMVA::IMethod*) new TMVA::Method##CLASS(job, title, dsi, option); \
} \
} \
RegisterTMVAMethod() { \
TMVA::ClassifierFactory::Instance(). Register(#CLASS, CreateMethod##CLASS); \
TMVA::Types::Instance().AddTypeMapping(TMVA::Types::k##CLASS, #CLASS); \
} \
}; \
static RegisterTMVAMethod RegisterTMVAMethod_instance; \
}
static ClassifierFactory & Instance()
access to the ClassifierFactory singleton creates the instance if needed
static Types & Instance()
the the single instance of "Types" if existin already, or create it (Signleton)
Definition: Types.cxx:64
Basic string class.
Definition: TString.h:137
Bool_t AddTypeMapping(Types::EMVA method, const TString &methodname)
Definition: Types.cxx:95

for example

REGISTER_METHOD(Fisher)

expands to this code:

namespace { TMVA::IMethod* CreateMethod() { return (TMVA::IMethod*) new TMVA::MethodFisher; } Bool_t RegisteredMethod = TMVA::ClassifierFactory<TMVA::MethodBase>::Instance(). Register("Method", CreateMethodFisher); }

Definition at line 126 of file ClassifierFactory.h.