Index: trunk/FACT++/src/ftmctrl.cc
===================================================================
--- trunk/FACT++/src/ftmctrl.cc	(revision 12286)
+++ trunk/FACT++/src/ftmctrl.cc	(revision 12287)
@@ -1189,4 +1189,5 @@
 
     uint64_t fTimeStamp;
+    uint64_t fTimeStampOn;
     uint32_t fTriggerCounter;
 
@@ -1234,17 +1235,23 @@
         fDimDynamicData.Update(data);
 
-        float rate = -1;
+        float    rate = -1;
+        uint64_t tdiff = 0;
+        uint64_t odiff = 0;
         if (fHeader.fTimeStamp>=fTimeStamp && fHeader.fTriggerCounter>=fTriggerCounter)
         {
-            const uint64_t tdiff = fHeader.fTimeStamp     -fTimeStamp;
+            tdiff = fHeader.fTimeStamp          -fTimeStamp;
+            odiff = fDynamicData.fOnTimeCounter -fTimeStampOn;
+
             const uint32_t cdiff = fHeader.fTriggerCounter-fTriggerCounter;
-
             rate = tdiff==0 ? 0 : 1000000*float(cdiff)/tdiff;
         }
 
         fTimeStamp      = fHeader.fTimeStamp;
+        fTimeStampOn    = fDynamicData.fOnTimeCounter;
         fTriggerCounter = fHeader.fTriggerCounter;
 
-        const FTM::DimTriggerRates rates(fHeader, fDynamicData, fStaticData, rate);
+        const FTM::DimTriggerRates rates(fHeader, fDynamicData, fStaticData,
+                                         rate, tdiff*1e-7, odiff*1e-7);
+
         fDimTriggerRates.Update(rates);
     }
@@ -1279,5 +1286,5 @@
         ConnectionFTM(ioservice, imp),
         fDimPassport      ("FTM_CONTROL/PASSPORT",        "X:1;S:1", ""),
-        fDimTriggerRates  ("FTM_CONTROL/TRIGGER_RATES",   "X:2;I:1;F:1;F:40;F:160", ""),
+        fDimTriggerRates  ("FTM_CONTROL/TRIGGER_RATES",   "X:2;I:1;F:1;F:40;F:160;F:1;F:1", ""),
         fDimError         ("FTM_CONTROL/ERROR",           "X:1;S:1;S:28", ""),
         fDimFtuList       ("FTM_CONTROL/FTU_LIST",        "X:1;X:1;S:1;C:4;X:40;C:40;C:40",  ""),
