60#pragma warning ( disable : 4355 ) 
   67: 
TNamed(
"Configurable",
"Configurable"),
 
   69   fLooseOptionCheckingEnabled ( 
kTRUE ),
 
   70   fLastDeclaredOption         ( 0 ),
 
   71   fConfigDescription          ( 
"No description" ),
 
   72   fReferenceFile              ( 
"None" ),
 
 
  126   Log() << kVERBOSE << 
"Parsing option string: " << 
Endl;
 
  136   SplitOptions(fOptions, 
loo);
 
  140   std::map<TString, std::vector<std::pair<Int_t, TString> > > 
arrayTypeOptions;
 
  173            st.Remove(
st.First(
']'));
 
  174            std::stringstream str(
st.Data());
 
  183               Log() << kWARNING << 
"Value for option " << 
decOpt->GetName()
 
  184                     << 
" was previously set to " << 
decOpt->GetValue() << 
Endl;
 
  187               if (
decOpt->IsArrayOpt()) { 
 
  195                        Log() << kFATAL << 
"Index " << idx << 
" too large for option " << 
decOpt->TheName()
 
  196                              << 
", allowed range is [0," << 
decOpt->GetArraySize()-1 << 
"]" << 
Endl;
 
  201                     Log() << kFATAL << 
"Option " << 
decOpt->TheName()
 
  202                           << 
" is not an array, but you specified an index" << 
Endl;
 
  207            else Log() << kFATAL << 
"Option " << 
decOpt->TheName()
 
  208                       << 
" does not have predefined value: \"" << 
optval << 
"\"" << 
Endl;
 
  237               Log() << kFATAL << 
"Negating a non-boolean variable " << 
optname 
  238                     << 
", please check the options for method: " << GetName() << 
Endl;
 
  244      if (!
paramParsed && LooseOptionCheckingEnabled()) {
 
  249            if (
decOpt->HasPreDefinedVal() && 
decOpt->IsPreDefinedVal(s) ) {
 
  256      if (fOptions!=
"") fOptions += 
":";
 
  264   if (
gConfig().WriteOptionsReference()) WriteOptionsReferenceToFile();
 
 
  291            << 
"The following options were specified, but could not be interpreted: \'" 
 
  301   Log() << kVERBOSE << 
"The following options are set:" << 
Endl;
 
  304   Log() << kVERBOSE << 
"- By User:" << 
Endl;
 
  308          Log() << kVERBOSE << 
"    ";
 
  309          std::ostringstream 
oss;
 
  314   if (!found) Log() << kVERBOSE << 
"    <none>" << 
Endl;
 
  317   Log() << kVERBOSE << 
"- Default:" << 
Endl;
 
  321          Log() << kVERBOSE << 
"    ";
 
  322          std::ostringstream 
oss;
 
  327   if (!found) Log() << kVERBOSE << 
"    <none>" << 
Endl;
 
 
  336   o << prefix << 
"# Set by User:" << std::endl;
 
  338      if (opt->IsSet()) { o << prefix; opt->Print(o); o << std::endl; }
 
  340   o << prefix << 
"# Default:" << std::endl;
 
  342      if (!opt->IsSet()) { o << prefix; opt->Print(o); o << std::endl; }
 
  343   o << prefix << 
"##" << std::endl;
 
 
  356      if (opt->IsArrayOpt()) {
 
  357         std::stringstream s(
"");
 
  359         for(
Int_t i=0; i<opt->GetArraySize(); i++) {
 
  361            s << std::scientific << opt->GetValue(i);
 
  369      if (opt->IsArrayOpt()) {
 
 
  384      if (fOptions.Length()!=0) fOptions += 
":";
 
  387      std::stringstream s(
"");
 
  389      if (
gTools().HasAttr(opt, 
"size")) {
 
  395            s << std::scientific << 
optName << 
"[" << i << 
"]=" << values[i];
 
  401      fOptions += s.str().c_str();
 
 
  413   fReferenceFile = 
dir + 
"/" + GetConfigName() + 
"_optionsRef.txt";
 
  414   std::ofstream o( fReferenceFile );
 
  416      Log() << kFATAL << 
"<WriteOptionsToInfoFile> Unable to open output file: " << fReferenceFile << 
Endl;
 
  420   o << 
"# List of options:" << std::endl;
 
  421   o << 
"# Configurable: " << GetConfigName() << std::endl;
 
  422   o << 
"# Description: " << GetConfigDescription() << std::endl;
 
  425      o << std::endl << 
"# ------------------------------------------------" << std::endl;
 
  429   Log() << kVERBOSE << 
"Wrote options reference file: \"" << fReferenceFile << 
"\"" << 
Endl;
 
 
  443   istr.getline(buf,512);
 
  445   while (
istr.good() && !
istr.eof() && !(buf[0]==
'#' && buf[1]==
'#')) { 
 
  447      while (*
p==
' ' || *
p==
'\t') 
p++; 
 
  448      if (*
p==
'#' || *
p==
'\0') {
 
  449         istr.getline(buf,512); 
 
  452      std::stringstream 
sstr(buf);
 
  454      stropt.ReplaceAll(
':',
'=');
 
  455      strval.ReplaceAll(
"\"",
"");
 
  456      if (fOptions.Length()!=0) fOptions += 
":";
 
  459      istr.getline(buf,512); 
 
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
R__EXTERN TSystem * gSystem
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
 
TString fOptionsReferenceFileDir
 
void ReadOptionsFromXML(void *node)
 
void ResetSetFlag()
resets the IsSet flag for all declare options to be called before options are read from stream
 
virtual ~Configurable()
default destructor
 
void WriteOptionsReferenceToFile()
write complete options to output stream
 
void WriteOptionsToStream(std::ostream &o, const TString &prefix) const
write options to output stream (e.g. in writing the MVA weight files
 
Configurable(const TString &theOption="")
constructor
 
TList fListOfOptions
option list
 
virtual void ParseOptions()
options parser
 
void PrintOptions() const
prints out the options set in the options string and the defaults
 
void CheckForUnusedOptions() const
checks for unused options in option string
 
void SplitOptions(const TString &theOpt, TList &loo) const
splits the option string at ':' and fills the list 'loo' with the primitive strings
 
void ReadOptionsFromStream(std::istream &istr)
read option back from the weight file
 
void AddOptionsXMLTo(void *parent) const
write options to XML file
 
ostringstream derivative to redirect and format output
 
void SetMinType(EMsgType minType)
 
Class for TMVA-option handling.
 
The TNamed class is the base class for all named ROOT classes.
 
Collectable string class.
 
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
 
Ssiz_t First(char c) const
Find first occurrence of a character c.
 
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
 
TString & Remove(Ssiz_t pos)
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
virtual int MakeDirectory(const char *name)
Make a directory.
 
MsgLogger & Endl(MsgLogger &ml)