Index: trunk/FACT++/src/DataWriteFits.cc
===================================================================
--- trunk/FACT++/src/DataWriteFits.cc	(revision 12571)
+++ trunk/FACT++/src/DataWriteFits.cc	(revision 12605)
@@ -4,4 +4,5 @@
 #include "FAD.h"
 #include "Converter.h"
+
 
 using namespace std;
@@ -177,4 +178,8 @@
     }
 
+    // This is a workaround for the missing information in the event builder
+    fTstart[0] = 0;
+    fTstop[0]  = 0;
+
     //Last but not least, add header keys that will be updated when closing the file
     return WriteFooter(NULL);
@@ -190,5 +195,27 @@
     if (!fFile.AddRow())
         return false;
-    int realRoiTM = (e->RoiTM > e->Roi) ? e->Roi : 0;
+
+    if (!(e->TriggerType & FAD::EventHeader::kAll))
+        fTriggerCounter[0]++;
+    else  if ((e->TriggerType&FAD::EventHeader::kPedestal) && !(e->TriggerType&FAD::EventHeader::kTIM))
+        fTriggerCounter[1]++;
+    else if (e->TriggerType & FAD::EventHeader::kLPext)
+        fTriggerCounter[2]++;
+    else if (e->TriggerType & (FAD::EventHeader::kTIM|FAD::EventHeader::kPedestal))
+        fTriggerCounter[3]++;
+    else if (e->TriggerType & FAD::EventHeader::kLPint)
+        fTriggerCounter[4]++;
+    else if (e->TriggerType & FAD::EventHeader::kExt1)
+        fTriggerCounter[5]++;
+    else if (e->TriggerType & FAD::EventHeader::kExt2)
+        fTriggerCounter[6]++;
+    else
+        fTriggerCounter[7]++;
+
+    memcpy(fTstop, &e->PCTime, 2*sizeof(uint32_t));
+    if (fTstart[0]==0)
+        memcpy(fTstart, fTstop, 2*sizeof(uint32_t));
+
+    const 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
 
@@ -216,9 +243,21 @@
         //FIXME shouldn't we also add an MjD reference ?
 
-        fFile.WriteKey("TSTART",   rt ? rt->PCtime0    : uint32_t(0),
+        const Time start(fTstart[0], fTstart[1]);
+        const Time stop (fTstop[0],  fTstop[1]);
+
+        fFile.WriteKey("TSTART",   start.Iso(),
                        "Time when first event received");
 
-        fFile.WriteKey("TSTOP",    rt ? rt->PCtimeX    : uint32_t(0),
+        fFile.WriteKey("TSTOP",    stop.Iso(),
                        "Time when last event received");
+
+        fFile.WriteKey("NTRG",     fTriggerCounter[0], "Number of physics triggers written");
+        fFile.WriteKey("NTRGPED",  fTriggerCounter[1], "Number of pure pedestal triggers written");
+        fFile.WriteKey("NTRGLPE",  fTriggerCounter[2], "Number of external light pulser triggers written");
+        fFile.WriteKey("NTRGTIM",  fTriggerCounter[3], "Number of time calibration triggers written");
+        fFile.WriteKey("NTRGLPI",  fTriggerCounter[4], "Number of internal light pulser triggers written");
+        fFile.WriteKey("NTRGEXT1", fTriggerCounter[5], "Number of triggers from ext1 written");
+        fFile.WriteKey("NTRGEXT2", fTriggerCounter[6], "Number of triggers from ext2 written");
+        fFile.WriteKey("NTRGMISC", fTriggerCounter[7], "Number of triggers belonging to no other category written");
     }
     catch (const CCfits::FitsException &e)
Index: trunk/FACT++/src/DataWriteFits.h
===================================================================
--- trunk/FACT++/src/DataWriteFits.h	(revision 12571)
+++ trunk/FACT++/src/DataWriteFits.h	(revision 12605)
@@ -4,4 +4,6 @@
 #include "DataProcessorImp.h"
 #include "FitsFile.h"
+
+#include <array>
 
 class Converter;
@@ -12,4 +14,9 @@
 
     FitsFile fFile;
+
+    std::array<uint32_t, 8> fTriggerCounter;
+
+    uint32_t fTstart[2];
+    uint32_t fTstop[2];
 
     template <typename T>
