- Timestamp:
- 09/03/19 17:58:15 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Mars/msimreflector/MFresnelLens.cc
r19614 r19616 260 260 // Positive Fresnel Lenses ... are usually corrected for spherical aberration. 261 261 262 // sin(omega) = R / sqrt(R^2+f^2) 263 // tan(alpha) = sin(omega) / [ 1 - sqrt(n^2-sin(omega)^2) ] 264 265 const double so = rc / sqrt(rc*rc + F*F); 266 const double alpha = atan(so / (1-sqrt(n0*n0 - so*so))); // alpha<0, Range [0deg; -50deg] 267 262 268 // Tim Niggemann: 263 269 // The surface of the lens follows the shape of a parabolic lens to compensate spherical aberration 264 270 // Draft angle: psi(r) = 3deg + r * 0.0473deg/mm 265 271 266 // sin(omega) = R / sqrt(R^2+f^2) 267 // tan(alpha) = sin(omega) / [ 1 - sqrt(n^2-sin(omega)^2) ] 268 269 const double so = rc / sqrt(rc*rc + F*F); 270 const double alpha = atan(so / (1-sqrt(n0*n0 - so*so))); // alpha<0 272 const double psi = (3 + r0*4.73e-3)*TMath::DegToRad(); // Range [0deg; 15deg] 273 274 // Find dw value of common z-value 275 // 276 // tan(90-psi) = z/dw 277 // tan(alpha) = -z/(w-dw) 278 // 279 // -> dw = w/(1-tan(90-psi)/tan(alpha)) 280 281 // In a simplified world, all photons which hit the draft surface get lost 282 // FIXME: This needs proper calculation in the same manner than for the main surface 283 const double dw = w/(1-tan(TMath::Pi()/2-psi)/tan(alpha)); 284 if (p.R()>r1-dw) 285 return -1; 271 286 272 287 // theta peak_z
Note:
See TracChangeset
for help on using the changeset viewer.