Framework/FDetector/Mirror.h
Go to the documentation of this file.
1 #ifndef _fdet_Mirror_h_
2 #define _fdet_Mirror_h_
3 
13 #include <list>
14 #include <string>
15 
16 
17 namespace utl {
18  class TabulatedFunction;
19 }
20 
21 
22 namespace fdet {
23 
24  class Telescope;
25 
36  class Mirror {
37 
38  public:
39  unsigned int GetEyeId() const { return fEyeId; }
40  unsigned int GetTelescopeId() const { return fTelescopeId; }
41 
45  double GetRadiusOfCurvature() const;
47  double GetSigmaNormal() const;
48 
49  void Update();
50 
51  private:
52  Mirror(const unsigned int eyeId, const unsigned int telId,
53  const std::string& physEyeIdString,
54  const std::string& physTelIdString);
55  ~Mirror();
56  // prevent copying
57  Mirror(const Mirror&);
58  Mirror& operator=(const Mirror&);
59 
60  template<typename T> inline const T& GetMirrorData(T*& requestedData,
61  const std::string& property,
62  const std::string& component,
63  const std::string& errorMsg) const;
64  template<typename T> inline void GetMirrorData(T& requestedData,
65  const std::string& property,
66  const std::string& component,
67  const std::string& errorMsg) const;
68 
69  unsigned int fEyeId;
70  unsigned int fTelescopeId;
71  std::string fPhysicalEyeIdString;
73 
74  // Quantities filled by lazy evaluation
75  // ------------------------------------
76  mutable double* fRadiusOfCurvature;
77  mutable double* fSigmaNormal;
79 
80  friend class Telescope;
81 
82  };
83 
84 }
85 
86 
87 #endif
double GetSigmaNormal() const
Variable to model the mirror surface imperfection.
Mirror & operator=(const Mirror &)
unsigned int GetTelescopeId() const
Class to hold collection (x,y) points and provide interpolation between them.
const T & GetMirrorData(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
unsigned int GetEyeId() const
Mirror(const unsigned int eyeId, const unsigned int telId, const std::string &physEyeIdString, const std::string &physTelIdString)
std::string fPhysicalTelescopeIdString
std::string fPhysicalEyeIdString
const utl::TabulatedFunction & GetReflectivity() const
Average reflectivity of the segments as a function of the wavelength.
utl::TabulatedFunction * fReflectivity
double GetRadiusOfCurvature() const
Average radius of curvature for the segments.
Detector description interface for Telescope-related data.
Description of a mirror.

, generated on Tue Sep 26 2023.