Index: trunk/MagicSoft/Mars/mpointing/MPointing.cc
===================================================================
--- trunk/MagicSoft/Mars/mpointing/MPointing.cc	(revision 8592)
+++ trunk/MagicSoft/Mars/mpointing/MPointing.cc	(revision 8593)
@@ -90,5 +90,5 @@
 #define DEBUG(txt)
 
-const Int_t MPointing::fNumPar=19;
+const Int_t MPointing::fgNumPar=19;
 
 void MPointing::Init(const char *name, const char *title)
@@ -97,7 +97,7 @@
     fTitle = title ? title : "Pointing correction model for the MAGIC telescope";
 
-    fCoeff = new Double_t*[fNumPar];
-    fNames = new TString[fNumPar];
-    fDescr = new TString[fNumPar];
+    fCoeff = new Double_t*[fgNumPar];
+    fNames = new TString[fgNumPar];
+    fDescr = new TString[fgNumPar];
 
     fCoeff[ 0] = &fIa;      fNames[ 0] = "IA";
@@ -146,5 +146,5 @@
 }
 
-void MPointing::Load(const char *name)
+Bool_t MPointing::Load(const char *name)
 {
     /*
@@ -164,5 +164,5 @@
     {
         *fLog << err << "ERROR - Cannot open file '" << name << "'" << endl;
-        return;
+        return kFALSE;
     }
 
@@ -174,5 +174,5 @@
     {
         *fLog << err << "Error: This in not a model correcting the star position (" << c << ")" << endl;
-        return;
+        return kFALSE;
     }
 
@@ -200,4 +200,9 @@
         TString str;
         fin >> str;
+        if (!fin)
+        {
+            *fLog << err << "ERROR - Reading file " << name << endl;
+            return kFALSE;
+        }
 
         if (str=="END")
@@ -226,5 +231,5 @@
         // Find parameter
         Int_t n = -1;
-        for (int i=0; i<fNumPar; i++)
+        for (int i=0; i<fgNumPar; i++)
             if (str==fNames[i])
             {
@@ -237,11 +242,25 @@
         *fLog << inf << setw(9) << val << "°" << endl;
 
+        if (!fin)
+        {
+            *fLog << err << "ERROR - Reading line " << str << endl;
+            return kFALSE;
+        }
+
+        if (n<0)
+        {
+            *fLog << warn << "WARNING - Parameter " << str << " unknown." << endl;
+            continue;
+        }
+
         // corresponding error
         fError[n] = val*TMath::DegToRad();
     }
     *fLog << inf << endl;
-}
-
-void MPointing::Save(const char *name)
+
+    return kTRUE;
+}
+
+Bool_t MPointing::Save(const char *name)
 {
     /*
@@ -261,5 +280,5 @@
     {
         cout << "Error: Cannot open file '" << name << "'" << endl;
-        return;
+        return kFALSE;
     }
 
@@ -270,5 +289,5 @@
     fout << "S   00   000000   000000  0000000" << endl;
     fout << setprecision(8);
-    for (int i=0; i<fNumPar; i++)
+    for (int i=0; i<fgNumPar; i++)
     {
         fout << " " << setw(6) << GetVarName(i) << " ";
@@ -277,4 +296,6 @@
     }
     fout << "END" << endl;
+
+    return kTRUE;
 }
 
@@ -652,5 +673,5 @@
 {
     if (n<0)
-        n = fNumPar;
+        n = fgNumPar;
 
     Int_t ierflg = 0;
Index: trunk/MagicSoft/Mars/mpointing/MPointing.h
===================================================================
--- trunk/MagicSoft/Mars/mpointing/MPointing.h	(revision 8592)
+++ trunk/MagicSoft/Mars/mpointing/MPointing.h	(revision 8593)
@@ -51,5 +51,5 @@
 {
 private:
-    static const Int_t fNumPar;
+    static const Int_t fgNumPar;
 
     Double_t fIe   ; // [rad] Index Error in Elevation
@@ -83,5 +83,5 @@
     void Clear(Option_t *o="")
     {
-        for (int i=0; i<fNumPar; i++)
+        for (int i=0; i<fgNumPar; i++)
         {
             *fCoeff[i] = 0;
@@ -94,10 +94,10 @@
 
 public:
-    MPointing() { fError.Set(fNumPar); Init(); Clear(); }
-    MPointing(const char *name) { fError.Set(fNumPar); Init(); Clear(); Load(name); }
-    virtual ~MPointing() { delete fNames; delete fCoeff; delete fDescr; }
-
-    void Load(const char *name);
-    void Save(const char *name);
+    MPointing() { fError.Set(fgNumPar); Init(); Clear(); }
+    MPointing(const char *name) { fError.Set(fgNumPar); Init(); Clear(); Load(name); }
+    virtual ~MPointing() { delete [] fNames; delete [] fCoeff; delete [] fDescr; }
+
+    Bool_t Load(const char *name);
+    Bool_t Save(const char *name);
 
     void Reset();
@@ -117,5 +117,5 @@
     ZdAz operator()(const ZdAz &zdaz, void (*fcn)(ZdAz &zdaz, Double_t *par)) const
     {
-        Double_t par[fNumPar];
+        Double_t par[fgNumPar];
         GetParameters(par);
         ZdAz za = zdaz;
@@ -126,5 +126,5 @@
     AltAz operator()(const AltAz &aaz, void (*fcn)(AltAz &aaz, Double_t *par)) const
     {
-        Double_t par[fNumPar];
+        Double_t par[fgNumPar];
         GetParameters(par);
         AltAz aa = aaz;
@@ -135,5 +135,5 @@
     TVector3 operator()(const TVector3 &aaz, void (*fcn)(TVector3 &aaz, Double_t *par)) const
     {
-        Double_t par[fNumPar];
+        Double_t par[fgNumPar];
         GetParameters(par);
         TVector3 v = aaz;
@@ -174,6 +174,6 @@
     }
 
-    void SetParameters(const Double_t *par, Int_t n=fNumPar);
-    void GetParameters(Double_t *par, Int_t n=fNumPar) const;
+    void SetParameters(const Double_t *par, Int_t n=fgNumPar);
+    void GetParameters(Double_t *par, Int_t n=fgNumPar) const;
 
     void SetParameters(const TArrayD &par)
@@ -183,5 +183,5 @@
     void GetParameters(TArrayD &par) const
     {
-        par.Set(fNumPar);
+        par.Set(fgNumPar);
         GetParameters(par.GetArray());
     }
@@ -189,5 +189,5 @@
     {
         par = fError;
-        for (int i=0; i<fNumPar; i++)
+        for (int i=0; i<fgNumPar; i++)
             par[i] *= TMath::RadToDeg();
     }
@@ -217,5 +217,5 @@
      */
 
-    static const Int_t GetNumPar() { return fNumPar; }
+    static const Int_t GetNumPar() { return fgNumPar; }
 
     ClassDef(MPointing, 1) // Pointing Model for MAGIC
