Framework/FDetector/Camera.h
Go to the documentation of this file.
1 
10 #ifndef _fdet_Camera_h_
11 #define _fdet_Camera_h_
12 
13 #include <string>
14 
15 namespace fevt {
16  class Pixel;
17  class Channel;
18 }
19 
20 namespace fdet {
21 
22  class Telescope;
23  class Pixel;
24  class Channel;
25 
36  class Camera {
37 
38  public:
39  unsigned int GetEyeId() const { return fEyeId; }
40  unsigned int GetTelescopeId() const { return fTelescopeId; }
41 
43  double GetMercedesEfficiency() const;
45  double GetMercedesReflections() const;
47  double GetSigmaNormal() const;
49  double GetRadiusFocal() const;
51  double GetMercedesBase() const;
53  double GetMercedesHeight() const;
55  double GetEta() const;
57  double GetCenterColumn() const;
59  double GetCenterRow() const;
60 
61  // electronics parameters
62  int GetSLTTraceLength() const;
63  double GetSLTBinSize() const;
64  int GetSLTTriggerBin() const;
65  int GetFADCTraceLength() const;
66  double GetFADCBinSize() const;
67  int GetFLTBoxcarSumLength() const;
68  int GetFLTProlongation() const;
69  double GetFLTTriggerRate() const;
70  double GetCutoffFrequency() const;
71  double GetGainVariance() const;
72  double GetElectronicNoiseVariance() const;
73  int GetADCDynamicRange() const;
74  double GetElectronicsGain() const;
75  double GetVirtualChannelGainRatio() const;
76  std::string GetThresholdConfigSignature() const;
77 
78  double GetFieldOfView() const;
79 
80  // channel pixel mapping
81  unsigned int GetChannelId(const unsigned int pixelId) const;
82  unsigned int GetChannelId(const fdet::Pixel& pixel) const;
83  unsigned int GetChannelId(const fevt::Pixel& pixel) const;
84  unsigned int GetPixelId(const unsigned int channelId) const;
85  unsigned int GetPixelId(const fdet::Channel& channel) const;
86  unsigned int GetPixelId(const fevt::Channel& channel) const;
87 
88  unsigned int GetFirstRow() const { return 1; }
89  unsigned int GetFirstColumn() const { return 1; }
90  unsigned int GetLastRow() const;
91  unsigned int GetLastColumn() const;
92 
93  void Update();
94 
95  private:
96  unsigned int fEyeId;
97  unsigned int fTelescopeId;
98  std::string fPhysicalEyeIdString;
100 
101  Camera(const unsigned int eyeId, const unsigned int telId,
102  const std::string& physEyeIdString,
103  const std::string& physTelIdString);
104  ~Camera();
105  Camera(const Camera&);
106  Camera& operator=(const Camera&);
107 
108  template<typename T>
109  inline const T&
110  GetCameraData(T*& requestedData,
111  const std::string& property,
112  const std::string& component,
113  const std::string& errorMsg)
114  const;
115 
116  template<typename T>
117  inline void
118  GetCameraData(T& requestedData,
119  const std::string& property,
120  const std::string& component,
121  const std::string& errorMsg)
122  const;
123 
124  template<typename T>
125  inline const T&
126  GetCameraDataDiaphragm(T*& requestedData,
127  const std::string& property,
128  const std::string& component,
129  const std::string& errorMsg)
130  const;
131 
132  template<typename T>
133  inline void
134  GetCameraDataDiaphragm(T& requestedData,
135  const std::string& property,
136  const std::string& component,
137  const std::string& errorMsg)
138  const;
139 
140  template<typename T>
141  inline void
142  GetCameraChannelData(T& requestedData,
143  const std::string& property,
144  const std::string& component,
145  const std::string& errorMsg,
146  const unsigned int channelId)
147  const;
148 
149  template<typename T>
150  inline void
151  GetCameraPixelData(T& requestedData,
152  const std::string& property,
153  const std::string& component,
154  const std::string& errorMsg,
155  const unsigned int pixelId)
156  const;
157 
158  // Quantities filled by lazy evaluation
159  // ------------------------------------
160  mutable double* fRadiusFocal;
161  mutable double* fMercedesBase;
162  mutable double* fMercedesHeight;
163  mutable double* fSigmaNormal;
164  mutable double* fMercedesEfficiency;
165  mutable double* fMercedesReflections;
166  mutable double* fPixelEta;
167  mutable double* fCenterRow;
168  mutable double* fCenterColumn;
169  mutable double* fFieldOfView;
170 
171  mutable int* fSLTTriggerBin; //< bin to issue the SLT
172  mutable int* fSLTTraceLenth; //< length of SLT trace
173  mutable double* fSLTBinSize; //< binning of SLT trace
174  mutable int* fFADCTraceLenth; //< length of FADC trace
175  mutable double* fFADCBinSize; //< binning of FADC trace
176  mutable int* fFLTBoxCarmSumLength;
177  mutable int* fFLTProlongation;
178  mutable double* fFLTTriggerRate;
179  mutable double* fCutoffFrequency; //< electronics filter characteristics
180  mutable double* fGainVar; //< additional Gaussian fluctuantion to Poisson fluctuations
181  mutable double* fElectNoiseVar; //< Electronic noise variance
182  mutable int* fADCDynamicRange;
183  mutable double* fElecGain;
184  mutable double* fVirtualChannelGainRatio;
185 
186  mutable int* fNRows; //< number of pixel rows in camera
187  mutable int* fNColumns; //< number of pixel columns in camera
188 
189  friend class Telescope;
190 
191  };
192 
193 }
194 
195 
196 #endif //_fdet_Camera_h_
197 
198 // Configure (x)emacs for this file ...
199 // Local Variables:
200 // mode: c++
201 // compile-command: "make -C .. FDetector/Camera.o -k"
202 // End:
std::string fPhysicalEyeIdString
unsigned int GetFirstColumn() const
double GetFADCBinSize() const
double GetSigmaNormal() const
Variable to model the Mercedes surface imperfection.
Description of the electronic channel for the 480 channels of the crate.
double GetFieldOfView() const
unsigned int GetLastColumn() const
double GetElectronicsGain() const
double GetEta() const
Camera angular pixel spacing.
double GetCutoffFrequency() const
double GetGainVariance() const
double GetCenterRow() const
central pixel row
double GetMercedesHeight() const
Height of the Mercedes.
double GetFLTTriggerRate() const
unsigned int GetEyeId() const
int GetFLTBoxcarSumLength() const
double GetCenterColumn() const
central pixel column
double GetMercedesEfficiency() const
Average efficiency of the Mercedes.
void GetCameraPixelData(T &requestedData, const std::string &property, const std::string &component, const std::string &errorMsg, const unsigned int pixelId) const
double GetMercedesReflections() const
Average number of reflections from Mercedes.
unsigned int GetTelescopeId() const
Camera & operator=(const Camera &)
Fluorescence Detector Pixel event.
Definition: FEvent/Pixel.h:28
const T & GetCameraData(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
double GetVirtualChannelGainRatio() const
Camera(const unsigned int eyeId, const unsigned int telId, const std::string &physEyeIdString, const std::string &physTelIdString)
Fluorescence Detector Channel Event.
unsigned int GetLastRow() const
double GetElectronicNoiseVariance() const
unsigned int GetChannelId(const unsigned int pixelId) const
double GetMercedesBase() const
Base of the Mercedes.
Detector description interface for Telescope-related data.
const T & GetCameraDataDiaphragm(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
Description of a pixel.
std::string GetThresholdConfigSignature() const
double GetRadiusFocal() const
Radius of focal surface of the camera.
unsigned int GetFirstRow() const
std::string fPhysicalTelescopeIdString
unsigned int GetPixelId(const unsigned int channelId) const
void GetCameraChannelData(T &requestedData, const std::string &property, const std::string &component, const std::string &errorMsg, const unsigned int channelId) const
double GetSLTBinSize() const
Description of a camera.

, generated on Tue Sep 26 2023.