Index: /trunk/FACT++/src/Configuration.cc
===================================================================
--- /trunk/FACT++/src/Configuration.cc	(revision 13668)
+++ /trunk/FACT++/src/Configuration.cc	(revision 13669)
@@ -1367,11 +1367,24 @@
 
     size_t max = 0;
-    for (map<string,string>::const_iterator it=fWildcardOptions.begin(); it!=fWildcardOptions.end(); it++)
+    for (auto it=fWildcardOptions.begin(); it!=fWildcardOptions.end(); it++)
         if (it->second.length()>max)
             max = it->second.length();
 
     cout.setf(ios_base::left);
-    for (map<string,string>::const_iterator it=fWildcardOptions.begin(); it!=fWildcardOptions.end(); it++)
+    for (auto it=fWildcardOptions.begin(); it!=fWildcardOptions.end(); it++)
         cout << setw(max+1) << it->second << " : " << it->first <<endl;
+}
+
+const vector<string> Configuration::GetWildcardOptions(const std::string &opt) const
+{
+    vector<string> rc;
+
+    for (auto it=fWildcardOptions.begin(); it!=fWildcardOptions.end(); it++)
+    {
+        if (it->second == opt)
+            rc.push_back(it->first);
+    }
+
+    return rc;
 }
 
Index: /trunk/FACT++/src/Configuration.h
===================================================================
--- /trunk/FACT++/src/Configuration.h	(revision 13668)
+++ /trunk/FACT++/src/Configuration.h	(revision 13669)
@@ -120,4 +120,17 @@
 
     const std::map<std::string,std::string> &GetWildcardOptions() const { return fWildcardOptions; }
+    const std::vector<std::string> GetWildcardOptions(const std::string &opt) const;
+
+    template<class T>
+    const std::map<std::string,T> GetOptions(const std::string &opt)
+    {
+        const std::vector<std::string> rc = GetWildcardOptions(opt+'*');
+
+        std::map<std::string,T> map;
+        for (auto it=rc.begin(); it!=rc.end(); it++)
+            map[it->substr(opt.length())] = Get<T>(*it);
+
+        return map;
+    }
 
     std::multimap<std::string, std::string> GetOptions() const;
