Index: fact/tools/pyscripts/pyfact/pyfits.h
===================================================================
--- fact/tools/pyscripts/pyfact/pyfits.h	(revision 13331)
+++ fact/tools/pyscripts/pyfact/pyfits.h	(revision 13332)
@@ -37,5 +37,5 @@
 #include <fstream>
 #define izstream ifstream
-//#warning Support for zipped FITS files disabled.
+#warning Support for zipped FITS files disabled.
 #endif
 
@@ -87,4 +87,37 @@
         Columns cols;
         Keys    keys;
+        
+        //------------ vectors containing the same info as cols and keys------
+        // They are filled at the end of the contstuctor
+        // They are used py python, for retrieving the contents of the maps
+        // I did not find out how to return a map of <string, struct> via ROOT to python
+        // So I use this ugly hack. I guess its no problem, its just ugly
+        //
+        // btw: The way these variables are named, is imho as ugly as possible,
+        // but I will stick to it.
+        // usually a std::map contains key-value pairs
+        // that means the e.g. map<string, Entry> contains keys of type string
+        // and values of type Entry.
+        // but now the map itself was called 'keys', which means one should say:
+        // the keys of 'keys' are of type string
+        // and
+        // the value of 'keys' are of type Entry. 
+        // not to forget that:
+        // one field of a value of 'keys' is named 'value'
+        
+        // vectors for Keys keys;
+        vector<string> Py_KeyKeys;
+        vector<string> Py_KeyValues;
+        vector<string> Py_KeyComments;
+        vector<char>   Py_KeyTypes;
+        
+        // vectors for Columns cols;
+        vector<string> Py_ColumnKeys;
+        vector<size_t> Py_ColumnOffsets;
+        vector<size_t> Py_ColumnNums;
+        vector<size_t> Py_ColumnSizes;
+        vector<char>   Py_ColumnTypes;
+        vector<string> Py_ColumnUnits;
+        //-end of----- vectors containing the same info as cols and keys------
 
         string Trim(const string &str, char c=' ') const
@@ -287,6 +320,34 @@
 
             name = Get<string>("EXTNAME");
-        }
-
+            
+
+            Fill_Py_Vectors();
+        }
+        
+        void Fill_Py_Vectors(void)
+        {
+            // Fill the Py_ vectors see line: 90ff
+            // vectors for Keys keys;
+            for (Keys::const_iterator it=keys.begin(); it!=keys.end(); it++)
+            {
+                Py_KeyKeys.push_back(it->first);
+                Py_KeyValues.push_back(it->second.value);
+                Py_KeyComments.push_back(it->second.comment);
+                Py_KeyTypes.push_back(it->second.type);
+            }
+
+            // vectors for Columns cols;
+            for (Columns::const_iterator it=cols.begin(); it!=cols.end(); it++)
+            {
+                Py_ColumnKeys.push_back(it->first);
+                Py_ColumnTypes.push_back(it->second.type);
+                Py_ColumnOffsets.push_back(it->second.offset);
+                Py_ColumnNums.push_back(it->second.num);
+                Py_ColumnSizes.push_back(it->second.size);
+                Py_ColumnUnits.push_back(it->second.unit);
+            }
+        }
+
+        
         void PrintKeys(bool display_all=false) const
         {
@@ -307,6 +368,7 @@
 
                 gLog << ___all___ << setw(2) << it->second.type << '|' << it->first << '=' << it->second.value << '/' << it->second.comment << '|' << endl;
-            }}
-
+            }
+        }
+        
         void PrintColumns() const
         {
@@ -713,4 +775,18 @@
     void PrintKeys() const { fTable.PrintKeys(); }
     void PrintColumns() const { fTable.PrintColumns(); }
+    
+    // 'Wrappers' for the Table's Getters of the Py Vectors
+    vector<string> GetPy_KeyKeys()       {return fTable.Py_KeyKeys; }
+    vector<string> GetPy_KeyValues()     {return fTable.Py_KeyValues; }
+    vector<string> GetPy_KeyComments()   {return fTable.Py_KeyComments; }
+    vector<char>   GetPy_KeyTypes()      {return fTable.Py_KeyTypes; }
+    
+    vector<string> GetPy_ColumnKeys()    {return fTable.Py_ColumnKeys; }
+    vector<size_t> GetPy_ColumnOffsets() {return fTable.Py_ColumnOffsets; }
+    vector<size_t> GetPy_ColumnNums()    {return fTable.Py_ColumnNums; }
+    vector<size_t> GetPy_ColumnSizes()   {return fTable.Py_ColumnSizes;}
+    vector<char>   GetPy_ColumnTypes()   {return fTable.Py_ColumnTypes;}
+    vector<string> GetPy_ColumnUnits()   {return fTable.Py_ColumnUnits;}
+
 };
 
