RayTracer.h
Go to the documentation of this file.
1 #ifndef _TelescopeSimulatorKG_RayTracer_h_
2 #define _TelescopeSimulatorKG_RayTracer_h_
3 
4 
5 #include "RTResult.h"
6 
7 #include <string>
8 
9 namespace fdet {
10  class Telescope;
11 }
12 
13 namespace utl {
14  class RandomEngine;
15  class Photon;
16  class Point;
17 }
18 
19 class TPolyLine3D;
20 class TObjArray;
21 
22 namespace TelescopeSimulatorKG {
23 
24  //class Photon;
25  class Lens;
26  class Mirror;
27  class Camera;
28  class Filter;
29 
38  class RayTracer {
39 
40  RayTracer();
41  RayTracer& operator=(const RayTracer&);
42  RayTracer(const RayTracer&);
43 
44  public:
45 
46  RayTracer(const fdet::Telescope& tel,
47  utl::RandomEngine& random,
48  bool doShadow=true,
49  bool doShadowSupport=true,
50  bool hasMercedes=true,
51  bool plotPhotonTracks=false,
52  double drawPhotonsProbabilty=0);
53 
54  ~RayTracer();
55 
56  RTResult Trace(const utl::Photon& photonIn, utl::Photon& photonOut,
57  int& nreflections, int& col, int& row);
58 
59  TPolyLine3D* DrawTrack(const utl::Point& p1, const utl::Point& p2, int color) const;
60 
61  void SetCorrectorRing(bool f) { fHasCorrectorRing=f; }
62 
63  static int GetDebugLevel() { return fgDebugLevel; }
64  static void SetDebugLevel(int l) { fgDebugLevel = l;}
65 
66  private:
69  bool fDoShadow;
73 
74  // for 3d plotting
77  TObjArray* fObjectsPhotons;
78 
83 
84  static int fgDebugLevel;
85  };
86 
87 } // TelescopeSimulatorKG
88 
89 #endif // _TelescopeSimulatorKG_RayTracer_h_
90 
91 // Configure (x)emacs for this file ...
92 // Local Variables:
93 // mode:c++
94 // compile-command: "make -C .. -k"
95 // End:
Simulates the mirror in the raytracing of the TelescopeSimulator module.
Point object.
Definition: Point.h:32
static void SetDebugLevel(int l)
Definition: RayTracer.h:64
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
const fdet::Telescope * fTel
Definition: RayTracer.h:67
Simulates the UV filter in the raytracing of the TelescopeSimulator module.
TPolyLine3D * DrawTrack(const utl::Point &p1, const utl::Point &p2, int color) const
Definition: RayTracer.cc:176
const utl::RandomEngine * fRandom
Definition: RayTracer.h:68
RayTracer & operator=(const RayTracer &)
Simulates all ray tracing inside a telescope.
Definition: RayTracer.h:38
Detector description interface for Telescope-related data.
RTResult Trace(const utl::Photon &photonIn, utl::Photon &photonOut, int &nreflections, int &col, int &row)
Raytracing through the telescope components.
Definition: RayTracer.cc:101

, generated on Tue Sep 26 2023.