Index: /trunk/Mars/mcore/zfits.h
===================================================================
--- /trunk/Mars/mcore/zfits.h	(revision 16887)
+++ /trunk/Mars/mcore/zfits.h	(revision 16888)
@@ -14,14 +14,4 @@
 #include "huffman.h"
 
-/*
-#define FACT_RAW       0x0
-#define FACT_SMOOTHING 0x1
-#define FACT_HUFFMAN16 0x2
-
-#define FACT_COL_MAJOR 'C'
-#define FACT_ROW_MAJOR 'R'
-*/
-
-
 #ifndef __MARS__
 namespace std
@@ -29,20 +19,20 @@
 #endif
 
-enum FACT_COMPRESSION_PROCESS
-{
-    FACT_RAW = 0x0,
-    FACT_SMOOTHING = 0x1,
-    FACT_HUFFMAN16 = 0x2
-};
-
-enum FACT_ROW_ORDERING
-{
-    FACT_COL_MAJOR = 'C',
-    FACT_ROW_MAJOR = 'R'
-};
-
 class zfits : public fits
 {
 public:
+
+    enum CompressionProcess_t
+    {
+        kFactRaw       = 0x0,
+        kFactSmoothing = 0x1,
+        kFactHuffman16 = 0x2
+    };
+
+    enum RowOrdering_t
+    {
+        kOrderByCol = 'C',
+        kOrderByRow = 'R'
+    };
 
     // Basic constructor
@@ -122,5 +112,5 @@
 
         BlockHeader(uint64_t      s=0,
-                    char          o=FACT_ROW_MAJOR,
+                    char          o=kOrderByRow,
                     unsigned char n=1) : size(s),
                                          ordering(o),
@@ -140,19 +130,23 @@
 
         if (fTable.isCompressed)
-        for (auto it=fTable.sortedCols.begin(); it!= fTable.sortedCols.end(); it++)
-            if (it->comp != FACT)
-            {
-                    clear(rdstate()|ios::badbit);
+        {
+            for (auto it=fTable.sortedCols.begin(); it!= fTable.sortedCols.end(); it++)
+            {
+                if (it->comp == kCompFACT)
+                    continue;
+
+                clear(rdstate()|ios::badbit);
 #ifdef __EXCEPTIONS
-                    throw runtime_error("Only the FACT compression scheme is handled by this reader.");
+                throw runtime_error("Only the FACT compression scheme is handled by this reader.");
 #else
-                    gLog << ___err___ << "ERROR - Only the FACT compression scheme is handled by this reader." << endl;
-                    return;
-#endif
-            }
+                gLog << ___err___ << "ERROR - Only the FACT compression scheme is handled by this reader." << endl;
+                return;
+#endif
+            }
+        }
 
         fColumnOrdering.resize(fTable.sortedCols.size());
         for (auto it=fColumnOrdering.begin(); it != fColumnOrdering.end(); it++)
-            (*it) = FACT_ROW_MAJOR;
+            (*it) = kOrderByRow;
         //Get compressed specific keywords
         fNumTiles       = fTable.isCompressed ? GetInt("NAXIS2") : 0;
@@ -193,7 +187,7 @@
     streamoff fHeapFromDataStart; ///< offset from the beginning of the data table
 
-    vector<vector<pair<int64_t, int64_t> > > fCatalog;///< Catalog, i.e. the main table that points to the compressed data.
-    vector<size_t>                           fTileSize; ///< size in bytes of each compressed tile
-    vector<vector<size_t> >                  fTileOffsets; ///< offset from start of tile of a given compressed column
+    vector<vector<pair<int64_t, int64_t>>> fCatalog;///< Catalog, i.e. the main table that points to the compressed data.
+    vector<size_t>                         fTileSize; ///< size in bytes of each compressed tile
+    vector<vector<size_t>>                 fTileOffsets; ///< offset from start of tile of a given compressed column
 
     // Get buffer space
@@ -346,5 +340,5 @@
                 switch (fColumnOrdering[i])
                 {
-                    case FACT_ROW_MAJOR:
+                    case kOrderByRow:
                         // regular, "semi-transposed" copy
                         for (char *dest=buffer; dest<buffer+thisRoundNumRows*fTable.bytes_per_row; dest+=fTable.bytes_per_row) // row-by-row
@@ -355,5 +349,5 @@
                     break;
 
-                    case FACT_COL_MAJOR:
+                    case kOrderByCol:
                         // transposed copy
                         for (char *elem=buffer; elem<buffer+it->bytes; elem+=it->size) // element-by-element (arrays)
@@ -452,6 +446,6 @@
             fColumnOrdering[i] = head->ordering;
 
-            const uint32_t numRows = (head->ordering==FACT_ROW_MAJOR) ? thisRoundNumRows : col.num;
-            const uint32_t numCols = (head->ordering==FACT_COL_MAJOR) ? thisRoundNumRows : col.num;
+            const uint32_t numRows = (head->ordering==kOrderByRow) ? thisRoundNumRows : col.num;
+            const uint32_t numCols = (head->ordering==kOrderByCol) ? thisRoundNumRows : col.num;
 
             const char *src = fCompressedBuffer.data()+compressedOffset+sizeof(BlockHeader)+sizeof(uint16_t)*head->numProcs;
@@ -463,15 +457,18 @@
                 switch (head->processings[j])
                 {
-                    case FACT_RAW:
-                            sizeWritten = UncompressUNCOMPRESSED(dest, src, numRows*numCols, col.size);
-                    break;
-                    case FACT_SMOOTHING:
-                            sizeWritten = UnApplySMOOTHING(reinterpret_cast<int16_t*>(dest), numRows*numCols);
-                    break;
-                    case FACT_HUFFMAN16:
-                            sizeWritten = UncompressHUFFMAN16(dest, src, numRows);
-                    break;
-                    default:
-                        clear(rdstate()|ios::badbit);
+                case kFactRaw:
+                    sizeWritten = UncompressUNCOMPRESSED(dest, src, numRows*numCols, col.size);
+                    break;
+
+                case kFactSmoothing:
+                    sizeWritten = UnApplySMOOTHING(reinterpret_cast<int16_t*>(dest), numRows*numCols);
+                    break;
+
+                case kFactHuffman16:
+                    sizeWritten = UncompressHUFFMAN16(dest, src, numRows);
+                    break;
+
+                default:
+                    clear(rdstate()|ios::badbit);
 #ifdef __EXCEPTIONS
                     throw runtime_error("Unknown processing applied to data. Aborting");
@@ -482,5 +479,6 @@
                 }
                 //increment destination counter only when processing done.
-                if (j==0) dest+= sizeWritten;
+                if (j==0)
+                    dest+= sizeWritten;
             }
         }
