Index: trunk/Mars/mdrs/MCalibrateDrsTimes.cc
===================================================================
--- trunk/Mars/mdrs/MCalibrateDrsTimes.cc	(revision 18155)
+++ trunk/Mars/mdrs/MCalibrateDrsTimes.cc	(revision 18243)
@@ -153,5 +153,7 @@
 
         const Float_t signal = (*fSignals)[sw].GetArrivalTime();
+        const Float_t slope  = (*fSignals)[sw].GetArrivalTimeHiGainError();
         const Float_t offset = fCalib ? fCalib->GetOffset(hw, start[hw], signal) : 0;
+        const Float_t offset2 = (fCalib && (signal-slope)>=0) ? fCalib->GetOffset(hw, start[hw], signal-slope) : 0;
         const Float_t delay  = fCalib ? fCalib->GetDelay(hw) : 0;
 
@@ -160,6 +162,8 @@
 
         // convert from slices to ns
-        const Float_t utime = 1000*(signal       )/fFreq-delay; // [ns]
-        const Float_t time  = 1000*(signal-offset)/fFreq-delay; // [ns]
+        const Float_t utime      = 1000*(signal       )/fFreq-delay;  // [ns]
+        const Float_t time       = 1000*(signal-offset)/fFreq-delay;  // [ns]
+        const Float_t slopecal   = (slope-offset+offset2)<0 ? -1 : 1000*(slope-offset+offset2)/fFreq; // [ns]
+        const Float_t uslope     = slope<0 ? -1 : 1000*(slope)/fFreq;                // [ns]
 
         /*
@@ -172,6 +176,10 @@
         {
             (*fArrivalTime)[idx[j]].SetArrivalTime(time);
+            (*fArrivalTime)[idx[j]].SetTimeSlope(slopecal);
             if (fArrivalTimeU)
+            {
                 (*fArrivalTimeU)[idx[j]].SetArrivalTime(utime);
+                (*fArrivalTimeU)[idx[j]].SetTimeSlope(uslope);
+            }
         }
     }
