Index: /trunk/Mars/msimreflector/MFresnelLens.cc
===================================================================
--- /trunk/Mars/msimreflector/MFresnelLens.cc	(revision 19643)
+++ /trunk/Mars/msimreflector/MFresnelLens.cc	(revision 19644)
@@ -352,4 +352,8 @@
 // on the curvature. See also PhD thesis, Tim Niggemann ch. 7.1.1.
 //
+// see also W.J.Smith, Modern Optical Engineering, 2.8 The "Thin Lens"
+// 1/f = (n-1)/radius   Eq. 2.36   with thickness t = 0
+// bfl = f              Eq. 2.37    and R2 = inf (c2 = 0)
+//
 // Parameters are:
 // The distance from the center r
@@ -367,7 +371,11 @@
 double MFresnelLens::SlopeAngleParabolic(double r, double F, double n0, double n1, double d)
 {
-    // PhD, Tim Niggemann, ch 7.1.1
+    // In the datasheet, it looks as if F is calculated
+    // towards the center of the lens. It seems things are more
+    // consistent if the thickness correction in caluating the
+    // slope angle is omitted and the focal distance is measured
+    // from the entrance of the lens => FIXME: To be checked
     const double rn = n1/n0;
-    const double c = (rn - 1) * (F + d/rn);
+    const double c = (rn - 1) * (F + d/rn); // FIXME
     return -atan(r/c);
 }
@@ -1431,7 +1439,10 @@
 
         // In the datasheet, it looks as if F is calculated
-        // towards the center of the lens
-        // (Propagating to F means not propagating a distance of F-H/2)
-        p.fVectorPart.SetZ(0);
+        // towards the center of the lens. It seems things are more
+        // consistent if the thickness correction in caluating the
+        // slope angle is omitted and the focal distance is measured
+        // from the entrance of the lens => FIXME: To be checked
+        // (Propagating to F means not propagating a distance of F-H from the exit)
+        p.fVectorPart.SetZ(fH/2);
 
         return cnt>=fMinHits && (fMaxHits==0 || cnt<=fMaxHits) ? cnt : -1;;
