CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends

optutl::VariableMapCont Class Reference

#include <VariableMapCont.h>

Inheritance diagram for optutl::VariableMapCont:
optutl::CommandLineParser

List of all members.

Public Types

typedef std::vector< double > DVec
typedef DVec::const_iterator DVecConstIter
typedef DVec::iterator DVecIter
typedef std::vector< int > IVec
typedef IVec::const_iterator IVecConstIter
typedef IVec::iterator IVecIter
enum  OptionType {
  kNone = 0, kInteger, kDouble, kString,
  kBool, kIntegerVector, kDoubleVector, kStringVector,
  kNumOptionTypes
}
typedef std::map< std::string,
bool > 
SBMap
typedef SBMap::const_iterator SBMapConstIter
typedef SBMap::iterator SBMapIter
typedef std::map< std::string,
double > 
SDMap
typedef SDMap::const_iterator SDMapConstIter
typedef SDMap::iterator SDMapIter
typedef std::map< std::string,
DVec
SDVecMap
typedef SDVecMap::const_iterator SDVecMapConstIter
typedef SDVecMap::iterator SDVecMapIter
typedef std::map< std::string,
int > 
SIMap
typedef SIMap::const_iterator SIMapConstIter
typedef SIMap::iterator SIMapIter
typedef std::map< std::string,
IVec
SIVecMap
typedef SIVecMap::const_iterator SIVecMapConstIter
typedef SIVecMap::iterator SIVecMapIter
typedef std::map< std::string,
std::string > 
SSMap
typedef SSMap::const_iterator SSMapConstIter
typedef SSMap::iterator SSMapIter
typedef std::map< std::string,
SVec
SSVecMap
typedef SSVecMap::const_iterator SSVecMapConstIter
typedef SSVecMap::iterator SSVecMapIter
typedef std::vector< std::string > SVec
typedef SVec::const_iterator SVecConstIter
typedef SVec::iterator SVecIter

Public Member Functions

void _checkKey (std::string &key, const std::string &description="")
void addOption (std::string key, OptionType type, const std::string &description="")
void addOption (std::string key, OptionType type, const std::string &description, const std::string &defaultValue)
void addOption (std::string key, OptionType type, const std::string &description, const char *defaultValue)
void addOption (std::string key, OptionType type, const std::string &description, bool defaultValue)
void addOption (std::string key, OptionType type, const std::string &description, int defaultValue)
void addOption (std::string key, OptionType type, const std::string &description, double defaultValue)
void addVariable (std::string key, OptionType type, bool defaultValue)
void addVariable (std::string key, OptionType type)
void addVariable (std::string key, OptionType type, int defaultValue)
void addVariable (std::string key, OptionType type, const char *defaultValue)
void addVariable (std::string key, OptionType type, double defaultValue)
void addVariable (std::string key, OptionType type, const std::string &defaultValue)
bool & boolValue (std::string key)
double & doubleValue (std::string key)
DVecdoubleVector (std::string key)
OptionType hasOption (std::string key)
OptionType hasVariable (std::string key)
void help ()
int & integerValue (std::string key)
IVecintegerVector (std::string key)
std::string & stringValue (std::string key)
SVecstringVector (std::string key)
 VariableMapCont ()

Static Public Member Functions

static void lowercaseString (std::string &arg)
static char toLower (char &ch)

Static Public Attributes

static const bool kDefaultBool = false
static const double kDefaultDouble = 0.
static const int kDefaultInteger = 0
static const std::string kDefaultString = ""
static const DVec kEmptyDVec
static const IVec kEmptyIVec
static const SVec kEmptySVec

Protected Member Functions

bool _valueHasBeenModified (const std::string &key)

Protected Attributes

SBMap m_boolMap
SDMap m_doubleMap
SDVecMap m_doubleVecMap
SIMap m_integerMap
SIVecMap m_integerVecMap
SSMap m_stringMap
SSVecMap m_stringVecMap
SSMap m_variableDescriptionMap
SBMap m_variableModifiedMap

Friends

std::ostream & operator<< (std::ostream &o_stream, const VariableMapCont &rhs)

Detailed Description

Definition at line 13 of file VariableMapCont.h.


Member Typedef Documentation

typedef std::vector< double > optutl::VariableMapCont::DVec

Definition at line 22 of file VariableMapCont.h.

typedef DVec::const_iterator optutl::VariableMapCont::DVecConstIter

Definition at line 44 of file VariableMapCont.h.

typedef DVec::iterator optutl::VariableMapCont::DVecIter

Definition at line 33 of file VariableMapCont.h.

typedef std::vector< int > optutl::VariableMapCont::IVec

Definition at line 21 of file VariableMapCont.h.

typedef IVec::const_iterator optutl::VariableMapCont::IVecConstIter

Definition at line 43 of file VariableMapCont.h.

typedef IVec::iterator optutl::VariableMapCont::IVecIter

Definition at line 32 of file VariableMapCont.h.

typedef std::map< std::string, bool > optutl::VariableMapCont::SBMap

Definition at line 26 of file VariableMapCont.h.

typedef SBMap::const_iterator optutl::VariableMapCont::SBMapConstIter

Definition at line 48 of file VariableMapCont.h.

typedef SBMap::iterator optutl::VariableMapCont::SBMapIter

Definition at line 37 of file VariableMapCont.h.

typedef std::map< std::string, double > optutl::VariableMapCont::SDMap

Definition at line 25 of file VariableMapCont.h.

typedef SDMap::const_iterator optutl::VariableMapCont::SDMapConstIter

Definition at line 47 of file VariableMapCont.h.

typedef SDMap::iterator optutl::VariableMapCont::SDMapIter

Definition at line 36 of file VariableMapCont.h.

typedef std::map< std::string, DVec > optutl::VariableMapCont::SDVecMap

Definition at line 29 of file VariableMapCont.h.

typedef SDVecMap::const_iterator optutl::VariableMapCont::SDVecMapConstIter

Definition at line 51 of file VariableMapCont.h.

typedef SDVecMap::iterator optutl::VariableMapCont::SDVecMapIter

Definition at line 40 of file VariableMapCont.h.

typedef std::map< std::string, int > optutl::VariableMapCont::SIMap

Definition at line 24 of file VariableMapCont.h.

typedef SIMap::const_iterator optutl::VariableMapCont::SIMapConstIter

Definition at line 46 of file VariableMapCont.h.

typedef SIMap::iterator optutl::VariableMapCont::SIMapIter

Definition at line 35 of file VariableMapCont.h.

typedef std::map< std::string, IVec > optutl::VariableMapCont::SIVecMap

Definition at line 28 of file VariableMapCont.h.

typedef SIVecMap::const_iterator optutl::VariableMapCont::SIVecMapConstIter

Definition at line 50 of file VariableMapCont.h.

typedef SIVecMap::iterator optutl::VariableMapCont::SIVecMapIter

Definition at line 39 of file VariableMapCont.h.

typedef std::map< std::string, std::string > optutl::VariableMapCont::SSMap

Definition at line 27 of file VariableMapCont.h.

typedef SSMap::const_iterator optutl::VariableMapCont::SSMapConstIter

Definition at line 49 of file VariableMapCont.h.

typedef SSMap::iterator optutl::VariableMapCont::SSMapIter

Definition at line 38 of file VariableMapCont.h.

typedef std::map< std::string, SVec > optutl::VariableMapCont::SSVecMap

Definition at line 30 of file VariableMapCont.h.

typedef SSVecMap::const_iterator optutl::VariableMapCont::SSVecMapConstIter

Definition at line 52 of file VariableMapCont.h.

typedef SSVecMap::iterator optutl::VariableMapCont::SSVecMapIter

Definition at line 41 of file VariableMapCont.h.

typedef std::vector< std::string > optutl::VariableMapCont::SVec

Definition at line 23 of file VariableMapCont.h.

typedef SVec::const_iterator optutl::VariableMapCont::SVecConstIter

Definition at line 45 of file VariableMapCont.h.

typedef SVec::iterator optutl::VariableMapCont::SVecIter

Definition at line 34 of file VariableMapCont.h.


Member Enumeration Documentation

Enumerator:
kNone 
kInteger 
kDouble 
kString 
kBool 
kIntegerVector 
kDoubleVector 
kStringVector 
kNumOptionTypes 

Definition at line 64 of file VariableMapCont.h.


Constructor & Destructor Documentation

VariableMapCont::VariableMapCont ( )

Definition at line 21 of file VariableMapCont.cc.

{
}

Member Function Documentation

void VariableMapCont::_checkKey ( std::string &  key,
const std::string &  description = "" 
)

Definition at line 59 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr, idDealer::description, and combine::key.

{
   // Let's make sure we don't already have this key
   lowercaseString (key);
   if ( m_variableModifiedMap.end() != m_variableModifiedMap.find (key) )
   {
      cerr << "VariableMapCont::addVariable() Error: Key '" << key 
           << "' has already been defined.  Aborting." << endl;
      assert (0);
   } // found a duplicate
   m_variableModifiedMap[key]      = false;
   m_variableDescriptionMap[key]  = description;
}
bool VariableMapCont::_valueHasBeenModified ( const std::string &  key) [protected]

Definition at line 284 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_setVariableFromString().

{
   SBMapConstIter iter = m_variableModifiedMap.find (key);
   if (m_variableModifiedMap.end() == iter)
   {
      // Not found.  Not a valid option
      cerr << "VariableMapCont::valueHasBeenModfied () Error: '" 
           << key << "' is not a valid key." << endl;
      return false;
   }
   return iter->second;
}
void optutl::VariableMapCont::addOption ( std::string  key,
OptionType  type,
const std::string &  description = "" 
)
void optutl::VariableMapCont::addOption ( std::string  key,
OptionType  type,
const std::string &  description,
int  defaultValue 
)
void optutl::VariableMapCont::addOption ( std::string  key,
OptionType  type,
const std::string &  description,
const char *  defaultValue 
)
void optutl::VariableMapCont::addOption ( std::string  key,
OptionType  type,
const std::string &  description,
bool  defaultValue 
)
void optutl::VariableMapCont::addOption ( std::string  key,
OptionType  type,
const std::string &  description,
double  defaultValue 
)
void optutl::VariableMapCont::addOption ( std::string  key,
OptionType  type,
const std::string &  description,
const std::string &  defaultValue 
)
void optutl::VariableMapCont::addVariable ( std::string  key,
OptionType  type 
) [inline]

Definition at line 129 of file VariableMapCont.h.

References addOption().

      { addOption (key, type, ""); }
void optutl::VariableMapCont::addVariable ( std::string  key,
OptionType  type,
int  defaultValue 
) [inline]

Definition at line 131 of file VariableMapCont.h.

References addOption().

      { addOption (key, type, "", defaultValue); }
void optutl::VariableMapCont::addVariable ( std::string  key,
OptionType  type,
const std::string &  defaultValue 
) [inline]

Definition at line 135 of file VariableMapCont.h.

References addOption().

      { addOption (key, type, "", defaultValue); }
void optutl::VariableMapCont::addVariable ( std::string  key,
OptionType  type,
double  defaultValue 
) [inline]

Definition at line 133 of file VariableMapCont.h.

References addOption().

      { addOption (key, type, "", defaultValue); }
void optutl::VariableMapCont::addVariable ( std::string  key,
OptionType  type,
const char *  defaultValue 
) [inline]

Definition at line 138 of file VariableMapCont.h.

References addOption().

      { addOption (key, type, "", defaultValue); }
void optutl::VariableMapCont::addVariable ( std::string  key,
OptionType  type,
bool  defaultValue 
) [inline]

Definition at line 141 of file VariableMapCont.h.

References addOption().

      { addOption (key, type, "", defaultValue); }
bool & VariableMapCont::boolValue ( std::string  key)

Definition at line 228 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_finishDefaultOptions(), and fwlite::EventContainer::EventContainer().

{
   lowercaseString (key);
   SBMapIter iter = m_boolMap.find (key);
   if (m_boolMap.end() == iter)
   {
      cerr << "VariableMapCont::boolValue() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
double & VariableMapCont::doubleValue ( std::string  key)

Definition at line 200 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by main().

{
   lowercaseString (key);
   SDMapIter iter = m_doubleMap.find (key);
   if (m_doubleMap.end() == iter)
   {
      cerr << "VariableMapCont::doubleValue() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
VariableMapCont::DVec & VariableMapCont::doubleVector ( std::string  key)

Definition at line 256 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_runVariableCommandFromString().

{
   lowercaseString (key);
   SDVecMapIter iter = m_doubleVecMap.find (key);
   if (m_doubleVecMap.end() == iter)
   {
      cerr << "VariableMapCont::doubleVector() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
OptionType optutl::VariableMapCont::hasOption ( std::string  key) [inline]
VariableMapCont::OptionType VariableMapCont::hasVariable ( std::string  key)

Definition at line 26 of file VariableMapCont.cc.

References WDecay::kNone.

Referenced by hasOption().

{
   lowercaseString (key); 
   // Look through our maps to see if we've got it
   if (m_integerMap.end()    != m_integerMap.find (key))    return kInteger;
   if (m_doubleMap.end()     != m_doubleMap.find (key))     return kDouble;
   if (m_stringMap.end()     != m_stringMap.find (key))     return kString;
   if (m_boolMap.end()       != m_boolMap.find (key))       return kBool;
   if (m_integerVecMap.end() != m_integerVecMap.find (key)) return kIntegerVector;
   if (m_doubleVecMap.end()  != m_doubleVecMap.find (key))  return kDoubleVector;
   if (m_stringVecMap.end()  != m_stringVecMap.find (key))  return kStringVector;
   // if we're here, the answer's no.
   return kNone;
}
void optutl::VariableMapCont::help ( )

Reimplemented in optutl::CommandLineParser.

int & VariableMapCont::integerValue ( std::string  key)

Definition at line 186 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_finishDefaultOptions(), bookHistograms(), calcSampleName(), fwlite::EventContainer::EventContainer(), and main().

{
   lowercaseString (key);
   SIMapIter iter = m_integerMap.find (key);
   if (m_integerMap.end() == iter)
   {
      cerr << "VariableMapCont::integerValue() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
VariableMapCont::IVec & VariableMapCont::integerVector ( std::string  key)

Definition at line 242 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_runVariableCommandFromString().

{
   lowercaseString (key);
   SIVecMapIter iter = m_integerVecMap.find (key);
   if (m_integerVecMap.end() == iter)
   {
      cerr << "VariableMapCont::integerVector() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
void VariableMapCont::lowercaseString ( std::string &  arg) [static]

Definition at line 42 of file VariableMapCont.cc.

Referenced by optutl::CommandLineParser::_runVariableCommandFromString(), optutl::CommandLineParser::_setVariableFromString(), and optutl::CommandLineParser::parseArguments().

{
   // assumes 'toLower(ch)' modifies ch
   std::for_each (arg.begin(), arg.end(), VariableMapCont::toLower);
   // // assumes 'toLower(ch)' returns the lower case char
   // std::transform (arg.begin(), arg.end(), arg.begin(), 
   //                 VariableMapCont::toLower);
}
string & VariableMapCont::stringValue ( std::string  key)

Definition at line 214 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_finishDefaultOptions(), bookHistograms(), calcSampleName(), fwlite::EventContainer::EventContainer(), and main().

{
   lowercaseString (key);
   SSMapIter iter = m_stringMap.find (key);
   if (m_stringMap.end() == iter)
   {
      cerr << "VariableMapCont::stringValue() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
VariableMapCont::SVec & VariableMapCont::stringVector ( std::string  key)

Definition at line 270 of file VariableMapCont.cc.

References dtNoiseDBValidation_cfg::cerr.

Referenced by optutl::CommandLineParser::_finishDefaultOptions(), optutl::CommandLineParser::_runVariableCommandFromString(), fwlite::EventContainer::EventContainer(), main(), and fwlite::EventContainer::~EventContainer().

{
   lowercaseString (key);
   SSVecMapIter iter = m_stringVecMap.find (key);
   if (m_stringVecMap.end() == iter)
   {
      cerr << "VariableMapCont::stringVector() Error: key '"
           << key << "' not found.  Aborting." << endl;
      assert (0);
   }
   return iter->second;
}
char VariableMapCont::toLower ( char &  ch) [static]

Definition at line 52 of file VariableMapCont.cc.

{
   ch = tolower (ch);
   return ch;
}

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  o_stream,
const VariableMapCont rhs 
) [friend]

Member Data Documentation

const bool VariableMapCont::kDefaultBool = false [static]

Definition at line 59 of file VariableMapCont.h.

const double VariableMapCont::kDefaultDouble = 0. [static]

Definition at line 57 of file VariableMapCont.h.

const int VariableMapCont::kDefaultInteger = 0 [static]

Definition at line 56 of file VariableMapCont.h.

const std::string VariableMapCont::kDefaultString = "" [static]

Definition at line 58 of file VariableMapCont.h.

Definition at line 61 of file VariableMapCont.h.

Definition at line 60 of file VariableMapCont.h.

Definition at line 62 of file VariableMapCont.h.

Definition at line 185 of file VariableMapCont.h.

Referenced by optutl::CommandLineParser::printOptionValues().