Lens.h
Go to the documentation of this file.
1 
9 #ifndef _TelescopeSimulatorKG_Lens_h_
10 #define _TelescopeSimulatorKG_Lens_h_
11 
12 
13 namespace utl {
14  class Photon;
15  class Vector;
16  class TabulatedFunction;
17  class RandomEngine;
18 }
19 
20 namespace fdet {
21  class Telescope;
22 }
23 
24 #include "RTResult.h"
25 
26 #include <utl/CoordinateSystemPtr.h>
27 #include <utl/Point.h>
28 
29 #include <string>
30 
31 class TObjArray;
32 
33 namespace TelescopeSimulatorKG {
34 
35  //class Photon;
36 
46  class Lens {
47 
48  public:
49  Lens(utl::RandomEngine& rndm, const fdet::Telescope& tel);
50 
51  RTResult Trace(const utl::Photon& photonIn, utl::Photon& photonOut);
52 
53  TObjArray* Draw();
54 
55  private:
56  double Profile(const double r) const;
57  utl::Vector Curvature(const double x, const double y) const;
58 
59  private:
61 
62  utl::CoordinateSystemPtr fTelCS; // reference system
64 
65  double fR1, fR2; // geometry (R1=.85m, R2=1.1m)
66  double fInd1; // reflection index of air
67  //double fInd2; // reflection index of corrector plate material
68  // (ind1) and out side (ind2)
71  double fSigRho; // uncertaint in the definition of normal of the
72  // surface of the Lens
73 
74  };
75 
76 } // TelescopeSimulatorKG
77 
78 #endif // _TelescopeSimulatorKG_Lens_h_
79 
80 // Configure (x)emacs for this file ...
81 // Local Variables:
82 // mode:c++
83 // compile-command: "make -C .. -k"
84 // End:
Point object.
Definition: Point.h:32
Class to hold collection (x,y) points and provide interpolation between them.
utl::Vector Curvature(const double x, const double y) const
Definition: Lens.cc:186
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
Simulates the corrector ring in the raytracing of the TelescopeSimulator module.
Definition: Lens.h:46
Wraps the random number engine used to generate distributions.
Definition: RandomEngine.h:27
utl::CoordinateSystemPtr fTelCS
Definition: Lens.h:62
const utl::TabulatedFunction * fRefractiveIndex
Definition: Lens.h:69
double Profile(const double r) const
Definition: Lens.cc:238
RTResult Trace(const utl::Photon &photonIn, utl::Photon &photonOut)
Definition: Lens.cc:70
utl::Point fOrigin
Definition: Lens.h:63
Detector description interface for Telescope-related data.
const utl::TabulatedFunction * fTransmittance
Definition: Lens.h:70
Lens(utl::RandomEngine &rndm, const fdet::Telescope &tel)
Definition: Lens.cc:42
Vector object.
Definition: Vector.h:30
utl::RandomEngine * fRandom
Definition: Lens.h:60
TObjArray * Draw()
Definition: Lens.cc:144

, generated on Tue Sep 26 2023.