Index: /trunk/FACT++/src/DataWriteFits.cc
===================================================================
--- /trunk/FACT++/src/DataWriteFits.cc	(revision 12429)
+++ /trunk/FACT++/src/DataWriteFits.cc	(revision 12430)
@@ -48,6 +48,8 @@
     fFile.AddColumn('S', "StartCellData",       NPIX);
     fFile.AddColumn('S', "StartCellTimeMarker", NTMARK);
-    fFile.AddColumn('S', "Data",                h->NPix*h->Nroi);
-    fFile.AddColumn('S', "TimeMarker",          h->NTm*h->NroiTM);
+    fFile.AddColumn('S', "Data",                h->NPix*h->Nroi);	
+	
+	int16_t realRoiTM = (h->NroiTM > h->Nroi) ? h->Nroi : 0; 
+    fFile.AddColumn('S', "TimeMarker",          h->NTm*realRoiTM);//ETIENNE TM);
 
     // Write length of physical pipeline (1024)
@@ -55,5 +57,5 @@
     fConv = new Converter(Converter::ToFormat(fFile.GetColumnTypes()));
 
-    const size_t sz = (h->NPix*h->Nroi + h->NTm*h->NroiTM)*2;
+    const size_t sz = (h->NPix*h->Nroi + h->NTm*realRoiTM)*2;//ETIENNE TM)*2;
     if (fConv->GetSize()-sz+4!=sizeof(EVENT))
     {
@@ -90,5 +92,7 @@
         fFile.WriteKey("NTMARK",   h->NTm,      "Number of Time marks");
         fFile.WriteKey("NROI",     h->Nroi,     "Number of slices per pixels");
-        fFile.WriteKey("NROITM",   h->NroiTM,   "Number of slices per time-marker");
+        fFile.WriteKey("NROITM",   realRoiTM,   "Number of slices per time-marker"); //ETIENNE from NroiTMm to Nroi
+		int realOffset = (h->NroiTM > h->Nroi) ?  h->NroiTM - 2*h->Nroi : 0;
+		fFile.WriteKey("OFFSET", realOffset, "Offset between pixels ROI and TM ROi"); //ETIENNE added
 
         //FIXME should we also put the start and stop time of the received data ?
@@ -181,6 +185,6 @@
     if (!fFile.AddRow())
         return false;
-
-    const size_t sz = sizeof(EVENT) + sizeof(e->StartPix)*e->Roi+sizeof(e->StartTM)*e->RoiTM;
+    int realRoiTM = (e->RoiTM > e->Roi) ? e->Roi : 0;
+    const size_t sz = sizeof(EVENT) + sizeof(e->StartPix)*e->Roi+sizeof(e->StartTM)*realRoiTM; //ETIENNE from RoiTm to Roi
 
     const vector<char> data = fConv->ToFits(reinterpret_cast<char*>(e)+4, sz-4);
