Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3756)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3757)
@@ -36,4 +36,6 @@
      - added MArrivalTime::Init()
 
+   * msignal/MArrivalTime.[h,cc]
+     - added array fDataErr
 
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc	(revision 3756)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc	(revision 3757)
@@ -174,24 +174,24 @@
       
       Float_t signal;
+      Float_t sigerr;
             
       if (sig.IsLoGainUsed())
-        signal = sig.GetArrivalTimeLoGain();
+        {
+          signal = sig.GetArrivalTimeLoGain();
+          sigerr = sig.GetArrivalTimeLoGainError();
+        }
       else
-        signal = sig.GetArrivalTimeHiGain();
+        {
+          signal = sig.GetArrivalTimeHiGain();
+          sigerr = sig.GetArrivalTimeHiGainError();
+        }
       
       const Float_t time = signal - offset;
-
-      //
-      // The following part is the outcommented first version of the error calculation
-      // Contact Markus Gaug for questions (or wait for the next documentation update...)
-      //
-      /*
-        nphotErr = signal    > 0 ? signalErr*signalErr / (signal * signal)  : 0.
-                 + calibConv > 0 ? calibConvVar  / (calibConv * calibConv ) : 0.
-                 + calibQE   > 0 ? calibQEVar    / (calibQE   * calibQE   ) : 0.;
-        nphotErr  = TMath::Sqrt(nphotErr) * nphot;
-      */
+      Float_t err        = sigerr*sigerr + precision*precision;
+      if (err > 0)
+        err = TMath::Sqrt(err);
 
       fArrivalTime->SetTime(pixidx,time);
+      fArrivalTime->SetTimeErr(pixidx,err);
 
     } /* for (UInt_t pixidx=0; pixidx<npix; pixidx++) */
Index: /trunk/MagicSoft/Mars/msignal/MArrivalTime.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MArrivalTime.cc	(revision 3756)
+++ /trunk/MagicSoft/Mars/msignal/MArrivalTime.cc	(revision 3757)
@@ -17,4 +17,5 @@
 !
 !   Author(s): Sebastian Raducci, 12/2003 <mailto:raducci@fisica.uniud.it>
+!              Markus Gaug        04/2004 <mailto:markus@ifae.es>
 !
 !   Copyright: MAGIC Software Development, 2000-2004
@@ -62,10 +63,12 @@
 void MArrivalTime::Reset()
 {
-    fData.Reset(-1);
+  fData.Reset(-1);
+  fDataErr.Reset(-1);
 }
 
 void MArrivalTime::InitSize(Int_t i)
 {
-    fData.Set(i);
+  fData.Set(i);
+  fDataErr.Set(i);
 }
 
@@ -77,4 +80,14 @@
 {
     fData[i] = t;
+}
+      
+
+// -------------------------------------------------------------------------
+// 
+// Set the arrival time error in one pixel
+//
+void MArrivalTime::SetTimeErr(const Int_t i, const Float_t t)
+{
+    fDataErr[i] = t;
 }
       
Index: /trunk/MagicSoft/Mars/msignal/MArrivalTime.h
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MArrivalTime.h	(revision 3756)
+++ /trunk/MagicSoft/Mars/msignal/MArrivalTime.h	(revision 3757)
@@ -20,6 +20,7 @@
 class MArrivalTime : public MParContainer, public MCamEvent
 {
- private:
-    TArrayF fData;  // Stores the arrival times
+private:
+  TArrayF fData;     // Stores the calibrated arrival times
+  TArrayF fDataErr;  // Stores the calibrated arrival time errors
 
 public:
@@ -34,8 +35,11 @@
 
     void SetTime(const Int_t i, const Float_t time);
+    void SetTimeErr(const Int_t i, const Float_t timeerr);    
     
     const TArrayF &GetData() const { return fData; }
+    const TArrayF &GetDataErr() const { return fDataErr; }
 
     Double_t operator[](int i) { return fData[i]; }
+    Double_t operator()(int i) { return fDataErr[i]; }    
 
     Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
