Index: /trunk/FACT++/src/DataCalib.cc
===================================================================
--- /trunk/FACT++/src/DataCalib.cc	(revision 14024)
+++ /trunk/FACT++/src/DataCalib.cc	(revision 14025)
@@ -211,10 +211,15 @@
 }
 
-void DataCalib::WriteFits(const string &filename)
-{
-    ofits file(filename.c_str());
-
+void DataCalib::WriteFitsImp(const string &filename, const vector<float> &vec) const
+{
     const uint16_t roi = fData.fRoi;
     const uint16_t ntm = fData.fNumTm;
+
+    const size_t n = 1440*1024*4 + 1440*roi*2 + ntm*roi*2 + 3;
+
+    if (vec.size()!=n+1)
+        throw runtime_error("Size of vector does not match region-of-interest");
+
+    ofits file(filename.c_str());
 
     file.AddColumnInt("RunNumberBaseline");
@@ -252,7 +257,5 @@
 
     file.WriteTableHeader("DrsCalibration");
-
-    const int n = (1440*1024*4 + 1440*roi*2 + ntm*roi*2 + 3)*sizeof(float);
-    file.WriteRow(fStats.data()+1, n);
+    file.WriteRow(vec.data()+1, n*sizeof(float));
 }
 
@@ -305,5 +308,5 @@
         try
         {
-            WriteFits(filename);
+            WriteFitsImp(filename, fStats);
 
             ostringstream str;
Index: /trunk/FACT++/src/DataCalib.h
===================================================================
--- /trunk/FACT++/src/DataCalib.h	(revision 14024)
+++ /trunk/FACT++/src/DataCalib.h	(revision 14025)
@@ -24,5 +24,5 @@
 //    uint16_t fDAC[8];
 
-    void WriteFits(const std::string &filename);
+    void WriteFitsImp(const std::string &filename, const std::vector<float> &vec) const;
 
     int GetDrsStep() const { return fData.fStep; }
