MirrorSegment.h
Go to the documentation of this file.
1 
10 #ifndef _fdet_MirrorSegment_h_
11 #define _fdet_MirrorSegment_h_
12 
13 #include <string>
14 
15 namespace utl {
16  class TabulatedFunction;
17 }
18 
19 namespace fdet {
20 
31  class Telescope;
32 
33  class MirrorSegment {
34 
35  public:
36 
39 
41  double GetRadiusOfCurvature() const;
42 
44  double GetSigmaNormal() const;
45 
46  private:
47  MirrorSegment();
49 
50  private:
51 
52  template <typename T> inline const T& GetMirrorSegmentData(T*& requestedData,
53  const std::string& property,
54  const std::string& component,
55  const std::string& errorMsg) const;
56  template <typename T> inline void GetMirrorSegmentData(T& requestedData,
57  const std::string& property,
58  const std::string& component,
59  const std::string& errorMsg) const;
60 
61 
62  private:
63 
64  // Quantities filled by lazy evaluation
65  // ------------------------------------
66  mutable double* fRadiusOfCurvature;
67  mutable double* fSigmaNormal;
69 
70  friend class Telescope;
71 
72  };
73 
74 }
75 
76 #endif
Class to hold collection (x,y) points and provide interpolation between them.
Detector description interface for Telescope-related data.
const utl::TabulatedFunction & GetReflectivity() const
Reflectivity of the mirror segment as a function of the wavelength.
double GetSigmaNormal() const
Variable to model the surface imperfection of the segment.
double GetRadiusOfCurvature() const
Radius of curvature of the segment.
utl::TabulatedFunction * fReflectivity
Definition: MirrorSegment.h:68
double * fRadiusOfCurvature
Definition: MirrorSegment.h:66
const T & GetMirrorSegmentData(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
Description of a mirror segment.
Definition: MirrorSegment.h:33

, generated on Tue Sep 26 2023.