#ifndef ROOT_TMVA_Types
#define ROOT_TMVA_Types
#include <map>
#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
namespace TMVA {
class MsgLogger;
enum EMsgType {
kDEBUG = 1,
kVERBOSE = 2,
kINFO = 3,
kWARNING = 4,
kERROR = 5,
kFATAL = 6,
kSILENT = 7
};
class Types {
public:
enum EMVA {
kVariable = 0,
kCuts ,
kSeedDistance ,
kLikelihood ,
kPDERS ,
kHMatrix ,
kFisher ,
kKNN ,
kCFMlpANN ,
kTMlpANN ,
kBDT ,
kDT ,
kRuleFit ,
kSVM ,
kMLP ,
kBayesClassifier,
kFDA ,
kCommittee ,
kBoost ,
kPDEFoam ,
kLD ,
kPlugins ,
kMaxMethod
};
enum EVariableTransform {
kIdentity = 0,
kDecorrelated,
kNormalized,
kPCA,
kGaussDecorr,
kMaxVariableTransform
};
enum EAnalysisType {
kClassification = 0,
kRegression,
kNoAnalysisType,
kMaxAnalysisType
};
enum ESBType {
kSignal = 0,
kBackground,
kSBBoth,
kMaxSBType,
kTrueType
};
enum ETreeType {
kTraining = 0,
kTesting,
kMaxTreeType,
kValidation,
kTrainingOriginal
};
enum EBoostStage {
kBoostProcBegin=0,
kBeforeTraining,
kBeforeBoosting,
kAfterBoosting,
kBoostValidation,
kBoostProcEnd
};
public:
static Types& Instance() { return fgTypesPtr ? *fgTypesPtr : *(fgTypesPtr = new Types()); }
static void DestroyInstance() { if (fgTypesPtr != 0) { delete fgTypesPtr; fgTypesPtr = 0; } }
~Types();
Types::EMVA GetMethodType( const TString& method ) const;
TString GetMethodName( Types::EMVA method ) const;
Bool_t AddTypeMapping(Types::EMVA method, const TString& methodname);
private:
Types();
static Types* fgTypesPtr;
private:
std::map<TString, TMVA::Types::EMVA> fStr2type;
mutable MsgLogger* fLogger;
MsgLogger& Log() const { return *fLogger; }
};
}
#endif