25 typedef std::map<std::string, ROOT::Math::GenAlgoOptions > OptionsMap;
27 namespace GenAlgoOptUtil {
30 static OptionsMap gAlgoOptions;
33 IOptions * DoFindDefault(std::string & algoname, OptionsMap & gOpts) {
38 std::transform(algoname.begin(), algoname.end(), algoname.begin(), (int(*)(int)) toupper );
40 OptionsMap::iterator pos = gOpts.find(algoname);
41 if (pos != gOpts.end() ) {
42 return &(pos->second);
48 IOptions * GenAlgoOptions::FindDefault(
const char * algo) {
50 std::string algoname(algo);
51 OptionsMap & gOpts = GenAlgoOptUtil::gAlgoOptions;
52 return GenAlgoOptUtil::DoFindDefault(algoname, gOpts);
55 IOptions & GenAlgoOptions::Default(
const char * algo) {
57 std::string algoname(algo);
58 OptionsMap & gOpts = GenAlgoOptUtil::gAlgoOptions;
59 IOptions * opt = GenAlgoOptUtil::DoFindDefault(algoname, gOpts);
62 std::pair<OptionsMap::iterator,bool> ret = gOpts.insert( OptionsMap::value_type(algoname, ROOT::Math::GenAlgoOptions()) );
64 opt = &((ret.first)->second);
69 void GenAlgoOptions::PrintAllDefault(std::ostream & os) {
70 const OptionsMap & gOpts = GenAlgoOptUtil::gAlgoOptions;
71 for ( OptionsMap::const_iterator pos = gOpts.begin();
72 pos != gOpts.end(); ++pos) {
73 os <<
"Default specific options for algorithm " << pos->first <<
" : " << std::endl;
74 (pos->second).Print(os);