Logo ROOT   6.21/01
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 #include "Executor.h"
46 
47 namespace TMVA {
48 
49  class MsgLogger;
50 
51  class Config {
52  protected:
53 
54  Executor fExecutor; // Executor for multi-thread or serial execution
55 
56  public:
57 
58  static Config& Instance();
59  static void DestroyInstance();
60 
61  Bool_t UseColor() const { return fUseColoredConsole; }
62  void SetUseColor( Bool_t uc ) { fUseColoredConsole = uc; }
63 
64  Bool_t IsSilent() const { return fSilent; }
65  void SetSilent( Bool_t s ) { fSilent = s; }
66 
69 
73 
74  UInt_t GetNumWorkers() const { return fNWorkers; }
76 
77 #ifdef R__USE_IMT
79 // ROOT::TSequentialExecutor &GetSeqExecutor() { return *fSeqfPool; }
80 #endif
81  /// Get executor class for multi-thread usage
82  /// In case when MT is not enabled will return a serial executor
84 
85  /// Enable MT in TMVA (by default is on when ROOT::EnableImplicitMT() is set
86  void EnableMT(int numthreads = 0) { fExecutor = Executor(numthreads); }
87 
88  /// Force disabling MT running and release the thread pool by using instead seriaql execution
89  void DisableMT() { fExecutor = Executor(1); }
90 
91  ///Check if IMT is enabled
92  Bool_t IsMTEnabled() const { return fExecutor.GetPoolSize() > 1; }
93 
94  public:
95 
96  class VariablePlotting;
97  class IONames;
98 
100  IONames& GetIONames() { return fIONames; }
101 
102  // publicly accessible global settings
104  // data collection class to configure plotting of variables
105  public:
106 
115 
116  } fVariablePlotting; // Customisable plotting properties
117 
118  // for file names and similar
119  class IONames {
120 
121  public:
122  // this is name of weight file directory
127  } fIONames; // Customisable weight file properties
128 
129 
130  private:
131 
132  // private constructor
133  Config();
134  Config( const Config& );
135  Config& operator=( const Config&);
136  virtual ~Config();
137 #if __cplusplus > 199711L
138  static std::atomic<Config*> fgConfigPtr;
139 #else
141 #endif
142  private:
143 
144 #if __cplusplus > 199711L
145  std::atomic<Bool_t> fDrawProgressBar; // draw progress bar to indicate training evolution
146  std::atomic<UInt_t> fNWorkers; // Default number of workers for multi-process jobs
147  std::atomic<Bool_t> fUseColoredConsole; // coloured standard output
148  std::atomic<Bool_t> fSilent; // no output at all
149  std::atomic<Bool_t> fWriteOptionsReference; // if set true: Configurable objects write file with option reference
150 #else
151  Bool_t fDrawProgressBar; // draw progress bar to indicate training evolution
152  UInt_t fNWorkers; // Default number of workers for multi-process jobs
153  Bool_t fUseColoredConsole; // coloured standard output
154  Bool_t fSilent; // no output at all
155  Bool_t fWriteOptionsReference; // if set true: Configurable objects write file with option reference
156 #endif
157  mutable MsgLogger* fLogger; // message logger
158  MsgLogger& Log() const { return *fLogger; }
159 
160  ClassDef(Config,0); // Singleton class for global configuration settings
161  };
162 
163  // global accessor
164  Config& gConfig();
165 }
166 
167 #endif
TString fOptionsReferenceFileDir
Definition: Config.h:126
void DisableMT()
Force disabling MT running and release the thread pool by using instead seriaql execution.
Definition: Config.h:89
void SetNumWorkers(UInt_t n)
Definition: Config.h:75
UInt_t fNWorkers
Definition: Config.h:152
Int_t fMaxNumOfAllowedVariablesForScatterPlots
Definition: Config.h:111
unsigned int GetPoolSize() const
Definition: Executor.h:99
void SetWriteOptionsReference(Bool_t w)
Definition: Config.h:68
Bool_t fSilent
Definition: Config.h:154
float Float_t
Definition: RtypesCore.h:53
static Config * fgConfigPtr
Definition: Config.h:140
Config & gConfig()
static Config & Instance()
static function: returns TMVA instance
Definition: Config.cxx:107
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:157
Bool_t fUseColoredConsole
Definition: Config.h:153
Bool_t DrawProgressBar() const
Definition: Config.h:70
UInt_t GetNumWorkers() const
Definition: Config.h:74
Base Excutor class.
Definition: Executor.h:35
TString fWeightFileDirPrefix
Definition: Config.h:123
Singleton class for global configuration settings used by TMVA.
Definition: Config.h:51
#define ClassDef(name, id)
Definition: Rtypes.h:326
TString fWeightFileDir
Definition: Config.h:124
IONames & GetIONames()
Definition: Config.h:100
class TMVA::Config::IONames fIONames
void SetDrawProgressBar(Bool_t d)
Definition: Config.h:71
Bool_t fDrawProgressBar
Definition: Config.h:151
static constexpr double s
Executor & GetThreadExecutor()
Get executor class for multi-thread usage In case when MT is not enabled will return a serial executo...
Definition: Config.h:83
ROOT::TThreadExecutor * GetMultiThreadExecutor()
Definition: Executor.h:89
MsgLogger & Log() const
Definition: Config.h:158
This class provides a simple interface to execute the same task multiple times in parallel...
TString fWeightFileExtension
Definition: Config.h:125
void EnableMT(int numthreads=0)
Enable MT in TMVA (by default is on when ROOT::EnableImplicitMT() is set.
Definition: Config.h:86
class TMVA::Config::VariablePlotting fVariablePlotting
unsigned int UInt_t
Definition: RtypesCore.h:42
Config & operator=(const Config &)
Bool_t IsMTEnabled() const
Check if IMT is enabled.
Definition: Config.h:92
#define d(i)
Definition: RSha256.hxx:102
Bool_t WriteOptionsReference() const
Definition: Config.h:67
ROOT::TThreadExecutor & GetMultiThreadExecutor()
Definition: Config.h:78
static void DestroyInstance()
static function: destroy TMVA instance
Definition: Config.cxx:95
UInt_t GetNCpu()
Definition: Config.h:72
ostringstream derivative to redirect and format output
Definition: MsgLogger.h:59
void SetUseColor(Bool_t uc)
Definition: Config.h:62
create variable transformations
Bool_t IsSilent() const
Definition: Config.h:64
void SetSilent(Bool_t s)
Definition: Config.h:65
Bool_t UseColor() const
Definition: Config.h:61
VariablePlotting & GetVariablePlotting()
Definition: Config.h:99
virtual ~Config()
destructor
Definition: Config.cxx:87
const Int_t n
Definition: legend1.C:16
Bool_t fWriteOptionsReference
Definition: Config.h:155
Config()
constructor - set defaults
Definition: Config.cxx:57
Executor fExecutor
Definition: Config.h:54