44 ClassImp(TMVA::Config);
46 #if __cplusplus > 199711L
47 std::atomic<TMVA::Config*> TMVA::Config::fgConfigPtr{ 0 };
49 TMVA::Config* TMVA::Config::fgConfigPtr = 0;
52 TMVA::Config& TMVA::gConfig() {
return TMVA::Config::Instance(); }
57 TMVA::Config::Config() :
58 fDrawProgressBar ( kFALSE ),
60 fUseColoredConsole ( kTRUE ),
62 fWriteOptionsReference( kFALSE ),
63 fLogger (new MsgLogger(
"Config"))
66 fVariablePlotting.fTimesRMS = 8.0;
67 fVariablePlotting.fNbins1D = 40;
68 fVariablePlotting.fNbins2D = 300;
69 fVariablePlotting.fMaxNumOfAllowedVariables = 200;
70 fVariablePlotting.fMaxNumOfAllowedVariablesForScatterPlots = 20;
72 fVariablePlotting.fNbinsMVAoutput = 40;
73 fVariablePlotting.fNbinsXOfROCCurve = 100;
74 fVariablePlotting.fUsePaperStyle = 0;
77 fIONames.fWeightFileDirPrefix =
"";
78 fIONames.fWeightFileDir =
"weights";
79 fIONames.fWeightFileExtension =
"weights";
80 fIONames.fOptionsReferenceFileDir =
"optionInfo";
87 TMVA::Config::~Config()
95 void TMVA::Config::DestroyInstance()
97 #if __cplusplus > 199711L
98 delete fgConfigPtr.exchange(0);
100 if (fgConfigPtr != 0) {
delete fgConfigPtr; fgConfigPtr = 0;}
107 TMVA::Config& TMVA::Config::Instance()
109 #if __cplusplus > 199711L
111 TMVA::Config* tmp =
new Config();
112 TMVA::Config* expected = 0;
113 if(! fgConfigPtr.compare_exchange_strong(expected,tmp) ) {
120 return fgConfigPtr ? *fgConfigPtr :*(fgConfigPtr =
new Config());