Ignore:
Timestamp:
09/15/19 18:32:35 (5 years ago)
Author:
tbretz
Message:
Added some comments and tried to adapt the geometry to what I would expect to be correct.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/msimreflector/MFresnelLens.cc

    r19638 r19644  
    352352// on the curvature. See also PhD thesis, Tim Niggemann ch. 7.1.1.
    353353//
     354// see also W.J.Smith, Modern Optical Engineering, 2.8 The "Thin Lens"
     355// 1/f = (n-1)/radius   Eq. 2.36   with thickness t = 0
     356// bfl = f              Eq. 2.37    and R2 = inf (c2 = 0)
     357//
    354358// Parameters are:
    355359// The distance from the center r
     
    367371double MFresnelLens::SlopeAngleParabolic(double r, double F, double n0, double n1, double d)
    368372{
    369     // PhD, Tim Niggemann, ch 7.1.1
     373    // In the datasheet, it looks as if F is calculated
     374    // towards the center of the lens. It seems things are more
     375    // consistent if the thickness correction in caluating the
     376    // slope angle is omitted and the focal distance is measured
     377    // from the entrance of the lens => FIXME: To be checked
    370378    const double rn = n1/n0;
    371     const double c = (rn - 1) * (F + d/rn);
     379    const double c = (rn - 1) * (F + d/rn); // FIXME
    372380    return -atan(r/c);
    373381}
     
    14311439
    14321440        // In the datasheet, it looks as if F is calculated
    1433         // towards the center of the lens
    1434         // (Propagating to F means not propagating a distance of F-H/2)
    1435         p.fVectorPart.SetZ(0);
     1441        // towards the center of the lens. It seems things are more
     1442        // consistent if the thickness correction in caluating the
     1443        // slope angle is omitted and the focal distance is measured
     1444        // from the entrance of the lens => FIXME: To be checked
     1445        // (Propagating to F means not propagating a distance of F-H from the exit)
     1446        p.fVectorPart.SetZ(fH/2);
    14361447
    14371448        return cnt>=fMinHits && (fMaxHits==0 || cnt<=fMaxHits) ? cnt : -1;;
Note: See TracChangeset for help on using the changeset viewer.