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());