Diaphragm.h
Go to the documentation of this file.
1 #ifndef _fdet_Diaphragm_h_
2 #define _fdet_Diaphragm_h_
3 
12 #include <string>
13 
14 namespace utl {
15  class TabulatedFunction;
16  class TimeStamp;
17 }
18 
19 
20 namespace fdet {
21 
22  class Telescope;
23 
33  class Diaphragm {
34 
35  public:
36  unsigned int GetEyeId() const { return fEyeId; }
37  unsigned int GetTelescopeId() const { return fTelescopeId; }
38 
40  double GetRadius() const;
41  double GetArea() const;
42  bool HasCorrectorRing() const;
43 
44  void Update();
45 
46  private:
47  template<typename T> inline const T& GetDiaphragmData(T*& requestedData,
48  const std::string& property,
49  const std::string& component,
50  const std::string& errorMsg) const;
51  template<typename T> inline void GetDiaphragmData(T& requestedData,
52  const std::string& property,
53  const std::string& component,
54  const std::string& errorMsg) const;
55 
56  private:
57  unsigned int fEyeId;
58  unsigned int fTelescopeId;
59  std::string fPhysicalEyeIdString;
61 
62  Diaphragm(const unsigned int eyeId, const unsigned int telId,
63  const std::string& physEyeIdString,
64  const std::string& physTelIdString);
65  Diaphragm(const Diaphragm&);
66  Diaphragm& operator=(const Diaphragm&);
67  ~Diaphragm();
68 
69  // Quantity filled by lazy evaluation
70  // ------------------------------------
71  mutable double* fRadius;
72  mutable double* fArea;
74 
75  friend class Telescope;
76  };
77 
78 }
79 
80 
81 #endif
std::string fPhysicalTelescopeIdString
Definition: Diaphragm.h:60
Diaphragm(const unsigned int eyeId, const unsigned int telId, const std::string &physEyeIdString, const std::string &physTelIdString)
Definition: Diaphragm.cc:25
double * fRadius
Definition: Diaphragm.h:71
std::string fPhysicalEyeIdString
Definition: Diaphragm.h:59
Diaphragm & operator=(const Diaphragm &)
double GetArea() const
Definition: Diaphragm.cc:67
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
unsigned int fEyeId
Definition: Diaphragm.h:57
utl::TimeStamp * fCorrectorRingCommissionTime
Definition: Diaphragm.h:73
unsigned int GetEyeId() const
Definition: Diaphragm.h:36
const T & GetDiaphragmData(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
Definition: Diaphragm.cc:93
double * fArea
Definition: Diaphragm.h:72
Detector description interface for Telescope-related data.
unsigned int fTelescopeId
Definition: Diaphragm.h:58
double GetRadius() const
Radius of the diaphragm.
Definition: Diaphragm.cc:59
Description of the diaphragm.
Definition: Diaphragm.h:33
unsigned int GetTelescopeId() const
Definition: Diaphragm.h:37
bool HasCorrectorRing() const
Definition: Diaphragm.cc:75

, generated on Tue Sep 26 2023.