Logo ROOT   6.14/05
Reference Guide
Config.h
Go to the documentation of this file.
1 // @(#)root/tmva $Id$
2 // Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : Config *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: *
11  * GLobal configuration settings (singleton) *
12  * *
13  * Authors (alphabetical): *
14  * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
15  * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland *
16  * Fredrik Tegenfeldt <Fredrik.Tegenfeldt@cern.ch> - Iowa State U., USA *
17  * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, GER *
18  * *
19  * Copyright (c) 2006: *
20  * CERN, Switzerland *
21  * Iowa State U., USA *
22  * MPI-K Heidelberg, Germany *
23  * *
24  * Redistribution and use in source and binary forms, with or without *
25  * modification, are permitted according to the terms listed in LICENSE *
26  * (http://mva.sourceforge.net/license.txt) *
27  **********************************************************************************/
28 
29 #ifndef ROOT_TMVA_Config
30 #define ROOT_TMVA_Config
31 
32 //////////////////////////////////////////////////////////////////////////
33 // //
34 // Config //
35 // //
36 // Singleton class for global configuration settings used by TMVA //
37 // //
38 //////////////////////////////////////////////////////////////////////////
39 #if __cplusplus > 199711L
40 #include <atomic>
41 #endif
42 #include "Rtypes.h"
43 #include "TString.h"
44 
45 #ifdef R__USE_IMT
46 #include <ROOT/TThreadExecutor.hxx>
47 #endif
48 
49 namespace TMVA {
50 
51  class MsgLogger;
52 
53  class Config {
54  protected:
55 #ifdef R__USE_IMT
56  ROOT::TThreadExecutor fPool; // Pool for multi-thread execution
57 #endif
58  UInt_t fNCpu = 0; // number of machine CPU
59 
60  public:
61 
62  static Config& Instance();
63  static void DestroyInstance();
64 
65  Bool_t UseColor() const { return fUseColoredConsole; }
66  void SetUseColor( Bool_t uc ) { fUseColoredConsole = uc; }
67 
68  Bool_t IsSilent() const { return fSilent; }
69  void SetSilent( Bool_t s ) { fSilent = s; }
70 
73 
76  UInt_t GetNCpu() { return fNCpu; }
77 
78  UInt_t GetNumWorkers() const { return fNWorkers; }
80 
81 #ifdef R__USE_IMT
83 #endif
84  public:
85 
86  class VariablePlotting;
87  class IONames;
88 
90  IONames& GetIONames() { return fIONames; }
91 
92  // publicly accessible global settings
94  // data collection class to configure plotting of variables
95  public:
96 
104 
105  } fVariablePlotting; // Customisable plotting properties
106 
107  // for file names and similar
108  class IONames {
109 
110  public:
111 
115  } fIONames; // Customisable weight file properties
116 
117 
118  private:
119 
120  // private constructor
121  Config();
122  Config( const Config& );
123  Config& operator=( const Config&);
124  virtual ~Config();
125 #if __cplusplus > 199711L
126  static std::atomic<Config*> fgConfigPtr;
127 #else
129 #endif
130  private:
131 
132 #if __cplusplus > 199711L
133  std::atomic<Bool_t> fDrawProgressBar; // draw progress bar to indicate training evolution
134  std::atomic<UInt_t> fNWorkers; // Default number of workers for multi-process jobs
135  std::atomic<Bool_t> fUseColoredConsole; // coloured standard output
136  std::atomic<Bool_t> fSilent; // no output at all
137  std::atomic<Bool_t> fWriteOptionsReference; // if set true: Configurable objects write file with option reference
138 #else
139  Bool_t fDrawProgressBar; // draw progress bar to indicate training evolution
140  UInt_t fNWorkers; // Default number of workers for multi-process jobs
141  Bool_t fUseColoredConsole; // coloured standard output
142  Bool_t fSilent; // no output at all
143  Bool_t fWriteOptionsReference; // if set true: Configurable objects write file with option reference
144 #endif
145  mutable MsgLogger* fLogger; // message logger
146  MsgLogger& Log() const { return *fLogger; }
147 
148  ClassDef(Config,0); // Singleton class for global configuration settings
149  };
150 
151  // global accessor
152  Config& gConfig();
153 }
154 
155 #endif
TString fOptionsReferenceFileDir
Definition: Config.h:114
void SetNumWorkers(UInt_t n)
Definition: Config.h:79
UInt_t fNWorkers
Definition: Config.h:140
Int_t fMaxNumOfAllowedVariablesForScatterPlots
Definition: Config.h:100
void SetWriteOptionsReference(Bool_t w)
Definition: Config.h:72
Bool_t fSilent
Definition: Config.h:142
UInt_t fNCpu
Definition: Config.h:58
float Float_t
Definition: RtypesCore.h:53
static Config * fgConfigPtr
Definition: Config.h:128
Config & gConfig()
static Config & Instance()
static function: returns TMVA instance
Definition: Config.cxx:109
Basic string class.
Definition: TString.h:131
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
MsgLogger * fLogger
Definition: Config.h:145
Bool_t fUseColoredConsole
Definition: Config.h:141
Bool_t DrawProgressBar() const
Definition: Config.h:74
UInt_t GetNumWorkers() const
Definition: Config.h:78
Singleton class for global configuration settings used by TMVA.
Definition: Config.h:53
#define ClassDef(name, id)
Definition: Rtypes.h:320
TString fWeightFileDir
Definition: Config.h:112
IONames & GetIONames()
Definition: Config.h:90
class TMVA::Config::IONames fIONames
void SetDrawProgressBar(Bool_t d)
Definition: Config.h:75
Bool_t fDrawProgressBar
Definition: Config.h:139
ROOT::TThreadExecutor & GetThreadExecutor()
Definition: Config.h:82
MsgLogger & Log() const
Definition: Config.h:146
This class provides a simple interface to execute the same task multiple times in parallel...
TString fWeightFileExtension
Definition: Config.h:113
class TMVA::Config::VariablePlotting fVariablePlotting
unsigned int UInt_t
Definition: RtypesCore.h:42
Config & operator=(const Config &)
#define d(i)
Definition: RSha256.hxx:102
Bool_t WriteOptionsReference() const
Definition: Config.h:71
static void DestroyInstance()
static function: destroy TMVA instance
Definition: Config.cxx:97
static constexpr double s
UInt_t GetNCpu()
Definition: Config.h:76
ostringstream derivative to redirect and format output
Definition: MsgLogger.h:59
void SetUseColor(Bool_t uc)
Definition: Config.h:66
Abstract ClassifierFactory template that handles arbitrary types.
Bool_t IsSilent() const
Definition: Config.h:68
void SetSilent(Bool_t s)
Definition: Config.h:69
Bool_t UseColor() const
Definition: Config.h:65
ROOT::TThreadExecutor fPool
Definition: Config.h:56
VariablePlotting & GetVariablePlotting()
Definition: Config.h:89
virtual ~Config()
destructor
Definition: Config.cxx:89
const Int_t n
Definition: legend1.C:16
Bool_t fWriteOptionsReference
Definition: Config.h:143
Config()
constructor - set defaults
Definition: Config.cxx:56