Index: /trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- /trunk/FACT++/src/EventBuilderWrapper.h	(revision 17237)
+++ /trunk/FACT++/src/EventBuilderWrapper.h	(revision 17238)
@@ -25,6 +25,4 @@
 
 #include "DataWriteFits2.h"
-
-#include "queue.h"
 
 namespace ba = boost::asio;
@@ -150,4 +148,8 @@
                 break;
             if (access((name+"fits").c_str(), F_OK) == 0)
+                break;
+            if (access((name+"fits.fz").c_str(), F_OK) == 0)
+                break;
+            if (access((name+"fits.gz").c_str(), F_OK) == 0)
                 break;
             if (access((name+"drs.fits").c_str(), F_OK) == 0)
@@ -425,4 +427,5 @@
         case FAD::kDebug:   msg += "kDebug.";  break;
         case FAD::kFits:    msg += "kFits.";   break;
+        case FAD::kZFits:   msg += "kZFits.";  break;
         case FAD::kCfitsio: msg += "kCfitsio"; break;
         case FAD::kRaw:     msg += "kRaw";     break;
@@ -485,8 +488,9 @@
     shared_ptr<DataProcessorImp> fFile;
 
-    void UpdateDimEvents(const pair<Time,array<uint32_t,4>> &stat)
+    bool UpdateDimEvents(const pair<Time,array<uint32_t,4>> &stat)
     {
         fDimEvents.setData(stat.second.data(), sizeof(uint32_t)*4);
         fDimEvents.Update(stat.first);
+        return true;
     }
 
@@ -503,17 +507,4 @@
         // and associate it to the run control structure
         evt.runCtrl->calib = make_shared<DrsCalibration>(DataCalib::GetCalibration());
-
-        /*
-         evt.runCtrl->calibInt.resize(1024*1440);
-
-         const int16_t *off = evt.runCtrl->zcalib.data();
-         int32_t *ptr = evt.runCtrl->calib.data();
-
-         const uint64_t num = evt.runCtrl->calib.fNumOffset;
-         for (int i=0; i<1024*1440)
-             ptr[i] = off[i]/num;
-         */
-
-        // FIMXE: Check if file already exists...
 
         // Crate the file
@@ -525,6 +516,7 @@
         case FAD::kCfitsio: file = new DataWriteFits(fPath, night, runid,  fMsg); break;
         case FAD::kFits:    file = new DataWriteFits2(fPath, night, runid, fMsg); break;
+        case FAD::kZFits:   file = new DataWriteFits2(fPath, night, runid, *evt.runCtrl->calib, fMsg); break;
 	case FAD::kRaw:     file = new DataWriteRaw(fPath, night, runid, fMsg); break;
-	case FAD::kCalib:   file = new DataCalib(fPath, night, runid, fDimDrsCalibration, fDimDrsRuns, fMsg); break;
+	case FAD::kCalib:   file = new DataCalib(fPath, night, runid, *evt.runCtrl->calib, fDimDrsCalibration, fDimDrsRuns, fMsg); break;
         }
 
@@ -653,11 +645,12 @@
     virtual void CloseRun(uint32_t /*runid*/) { }
 
-    void UpdateDimRoi(const pair<Time, array<uint16_t,2>> &roi)
+    bool UpdateDimRoi(const pair<Time, array<uint16_t,2>> &roi)
     {
         fDimRoi.setData(roi.second.data(), sizeof(uint16_t)*2);
         fDimRoi.Update(roi.first);
-    }
-
-    void UpdateDimTempRefClk(const tuple<Time, array<uint32_t,40>, array<int16_t,160>> &dat)
+        return true;
+    }
+
+    bool UpdateDimTempRefClk(const tuple<Time, array<uint32_t,40>, array<int16_t,160>> &dat)
     {
         const auto delay = boost::posix_time::seconds(5);
@@ -686,5 +679,5 @@
 
         if (newt<oldt+delay)
-            return;
+            return true;
 
         oldt = newt;
@@ -769,4 +762,6 @@
 
         listtmp.clear();
+
+        return true;
     }
 
@@ -883,5 +878,5 @@
     Time fLastDimEventData;
 
-    void UpdateDimRawData(const vector<char> &v)
+    bool UpdateDimRawData(const vector<char> &v)
     {
         const EVENT *evt = reinterpret_cast<const EVENT*>(v.data());
@@ -890,10 +885,15 @@
         fDimRawData.setQuality(evt->TriggerType);
         fDimRawData.Update(Time(evt->PCTime, evt->PCUsec));
-    }
-    void UpdateDimEventData(const tuple<Time,uint32_t,array<float, 1440*4>> &tup)
+
+        return true;
+    }
+
+    bool UpdateDimEventData(const tuple<Time,uint32_t,array<float, 1440*4>> &tup)
     {
         fDimEventData.setQuality(get<1>(tup));
         fDimEventData.setData(get<2>(tup));
         fDimEventData.Update(get<0>(tup));
+
+        return true;
     }
 
@@ -1146,8 +1146,10 @@
     */
 
-    void UpdateDimStatistics1(const pair<Time,GUI_STAT> &stat)
+    bool UpdateDimStatistics1(const pair<Time,GUI_STAT> &stat)
     {
         fDimStatistics1.setData(&stat.second, sizeof(GUI_STAT));
         fDimStatistics1.Update(stat.first);
+
+        return true;
     }
 
@@ -1272,5 +1274,5 @@
     vector<uint> fNumConnected;
 
-    void procHeader(const tuple<Time,bool,FAD::EventHeader> &dat)
+    bool procHeader(const tuple<Time,bool,FAD::EventHeader> &dat)
     {
         const Time             &t = get<0>(dat);
@@ -1333,4 +1335,6 @@
             Update(fDimDac, dacs, t);
         }
+
+        return true;
     }
 
