Corrector.h
Go to the documentation of this file.
1 #ifndef _fdet_Corrector_h_
2 #define _fdet_Corrector_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 Corrector {
37 
38  public:
39  unsigned int GetEyeId() const { return fEyeId; }
40  unsigned int GetTelescopeId() const { return fTelescopeId; }
41 
47  double GetInnerRadius() const;
49  double GetOuterRadius() const;
51  double GetMeanLensThickness() const;
53  double GetSigmaNormal() const;
54 
55  void Update();
56 
57  private:
58  unsigned int fEyeId;
59  unsigned int fTelescopeId;
60  std::string fPhysicalEyeIdString;
62 
63  Corrector(const unsigned int eyeId, const unsigned int telId,
64  const std::string& physEyeIdString,
65  const std::string& physTelIdString);
66  ~Corrector();
67  // prevent copying
68  Corrector(const Corrector&);
69  Corrector& operator=(const Corrector&);
70 
71  template<typename T> inline const T& GetCorrectorData(T*& requestedData,
72  const std::string& property,
73  const std::string& component,
74  const std::string& errorMsg) const;
75 
76  // Quantities filled by lazy evaluation
77  // ------------------------------------
78  mutable double* fInnerRadius;
79  mutable double* fOuterRadius;
80  mutable double* fLensThickness;
81  mutable double* fSigmaNormal;
84 
85  friend class Telescope;
86 
87  };
88 
89 }
90 
91 
92 #endif //_fdet_Corrector_h_
93 
94 // Configure (x)emacs for this file ...
95 // Local Variables:
96 // mode: c++
97 // compile-command: "make -C .. FDetector/Corrector.o -k"
98 // End:
std::string fPhysicalEyeIdString
Definition: Corrector.h:60
const T & GetCorrectorData(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
Definition: Corrector.cc:167
double GetInnerRadius() const
Inner radius of the ring.
Definition: Corrector.cc:78
double * fInnerRadius
Definition: Corrector.h:78
Class to hold collection (x,y) points and provide interpolation between them.
const utl::TabulatedFunction & GetTransmittance() const
Transmittance as a function of the wavelength.
Definition: Corrector.cc:110
Corrector(const unsigned int eyeId, const unsigned int telId, const std::string &physEyeIdString, const std::string &physTelIdString)
Definition: Corrector.cc:26
unsigned int GetEyeId() const
Definition: Corrector.h:39
double * fOuterRadius
Definition: Corrector.h:79
double GetSigmaNormal() const
Variable to model the lens surface imperfection.
Definition: Corrector.cc:102
double GetOuterRadius() const
Outer radius of the ring.
Definition: Corrector.cc:86
Corrector & operator=(const Corrector &)
std::string fPhysicalTelescopeIdString
Definition: Corrector.h:61
unsigned int fEyeId
Definition: Corrector.h:58
unsigned int GetTelescopeId() const
Definition: Corrector.h:40
double * fSigmaNormal
Definition: Corrector.h:81
Description of a corrector ring.
Definition: Corrector.h:36
double * fLensThickness
Definition: Corrector.h:80
const utl::TabulatedFunction & GetRefractiveIndex() const
Index of refraction as a funcction of the wavelength.
Definition: Corrector.cc:118
Detector description interface for Telescope-related data.
utl::TabulatedFunction * fTransmittance
Definition: Corrector.h:82
utl::TabulatedFunction * fRefractiveIndex
Definition: Corrector.h:83
double GetMeanLensThickness() const
Mean thickness of the lens.
Definition: Corrector.cc:94
unsigned int fTelescopeId
Definition: Corrector.h:59

, generated on Tue Sep 26 2023.