Index: trunk/MagicSoft/Mars/mreport/MReport.h
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReport.h	(revision 2557)
+++ trunk/MagicSoft/Mars/mreport/MReport.h	(revision 2566)
@@ -41,4 +41,6 @@
     const TString &GetIdentifier() const { return fIdentifier; }
 
+    Byte_t GetState() const { return fState; }
+
     ClassDef(MReport, 1) // Base class for control reports
 };
Index: trunk/MagicSoft/Mars/mreport/MReportDrive.cc
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReportDrive.cc	(revision 2557)
+++ trunk/MagicSoft/Mars/mreport/MReportDrive.cc	(revision 2566)
@@ -71,2 +71,29 @@
     return str.IsNull();
 }
+
+Double_t MReportDrive::GetAbsError() const
+{
+    const Double_t pzd = fNominalZd*TMath::DegToRad();
+    const Double_t azd = fErrorZd  *TMath::DegToRad();
+    const Double_t aaz = fErrorAz  *TMath::DegToRad();
+
+    const double el = TMath::Pi()/2-pzd;
+
+    const double dphi2 = aaz/2.;
+    const double cos2  = cos(dphi2)*cos(dphi2);
+    const double sin2  = sin(dphi2)*sin(dphi2);
+    const double d     = cos(azd)*cos2 - cos(2*el)*sin2;
+
+    //
+    // Original:
+    //   cos(Zd1)*cos(Zd2)+sin(Zd1)*sin(Zd2)*cos(dAz)
+    //
+    // Correct:
+    //   const double d = cos(azd)*cos2 - cos(el1+el2)*sin2;
+    //
+    // Estimated:
+    //   const double d = cos(azd)*cos2 - cos(2*el)*sin2;
+    //
+
+    return acos(d)*TMath::RadToDeg();
+}
Index: trunk/MagicSoft/Mars/mreport/MReportDrive.h
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReportDrive.h	(revision 2557)
+++ trunk/MagicSoft/Mars/mreport/MReportDrive.h	(revision 2566)
@@ -28,17 +28,19 @@
     Bool_t InterpreteBody(TString &str);
 
-    Double_t GetMjd() const           { return fMjd;       }
+    Double_t GetMjd() const       { return fMjd;       }
 
-    Double_t GetRa() const            { return fRa;        }
-    Double_t GetDec() const           { return fDec;       }
-    Double_t GetHa() const            { return fHa;        }
+    Double_t GetRa() const        { return fRa;        }
+    Double_t GetDec() const       { return fDec;       }
+    Double_t GetHa() const        { return fHa;        }
 
-        Double_t GetNominalZd() const { return fNominalZd; }
-    Double_t GetNominalAz() const     { return fNominalAz; }
-    Double_t GetCurrentZd() const     { return fCurrentZd; }
-    Double_t GetCurrentAz() const     { return fCurrentAz; }
+    Double_t GetNominalZd() const { return fNominalZd; }
+    Double_t GetNominalAz() const { return fNominalAz; }
+    Double_t GetCurrentZd() const { return fCurrentZd; }
+    Double_t GetCurrentAz() const { return fCurrentAz; }
 
-    Double_t GetErrorZd() const       { return fErrorZd;   }
-    Double_t GetErrorAz() const       { return fErrorAz;   }
+    Double_t GetErrorZd() const   { return fErrorZd;   }
+    Double_t GetErrorAz() const   { return fErrorAz;   }
+
+    Double_t GetAbsError() const;
 
     ClassDef(MReportDrive, 1) // Base class for control reports
