SatAndLight  2.2.2-hubble
Simulation toolkit for space telescopes
Loading...
Searching...
No Matches
CameraRead.h
Go to the documentation of this file.
1#ifndef __CameraRead__
2#define __CameraRead__
3
10#include "CameraConfig.h"
11#include "Rotation.h"
12#include <TMath.h>
13#include <TChain.h>
14#include <TH2.h>
15
23class CameraRead: public TChain, public Rotation{
24
25 public:
26
32
38 CameraRead(const string aFilePattern, const string aName);
39
41
44 virtual ~CameraRead(void);
50
57 inline int GetEntry(Long64_t entry = 0, Int_t getall = 0){
58 int ret = (int)TChain::GetEntry(entry, getall);
60 return ret;
61 };
62
64
73 bool SetTime(const ULong64_t aTime);
74
90 void GetSortedPixelIndex(int &aPixIndexY, int &aPixIndexZ, const int aPixIndex, const string aSortMethod="STANDARD");
91
93
101 inline int GetPixelValue(const CAMERA_MAPTYPE aMapType, const int aPixIndexY, const int aPixIndexZ){
102 return cam_map[aMapType]->GetBinContent(aPixIndexY+1,aPixIndexZ+1);
103 };
104
106
114 inline int GetPixelError(const CAMERA_MAPTYPE aMapType, const int aPixIndexY, const int aPixIndexZ){
115 return cam_map[aMapType]->GetBinError(aPixIndexY+1,aPixIndexZ+1);
116 };
117
119
122 inline int GetAmplitudeNbits(void){ return cam_nbits; };
123
125
128 inline int GetPixelAmplitudeMax(void){ return pow(2,cam_nbits); };
129
131
134 inline double GetSizeX(void){ return cam_xsize; };
135
137
140 inline double GetSizeY(void){ return cam_ysize; };
141
143
146 inline double GetSizeZ(void){ return cam_zsize; };
147
149
152 inline ULong64_t GetTime(void){ return cam_time; };
153
155
158 inline ULong64_t GetTimeMinimum(void){ return TChain::GetMinimum("cam_time"); };
159
161
164 inline ULong64_t GetTimeMaximum(void){ return TChain::GetMaximum("cam_time"); };
165
167
170 inline UInt_t GetTimeResolution(void){ return cam_dt; };
171
173
176 inline UInt_t GetTimeResolutionMinimum(void){ return TChain::GetMinimum("cam_dt"); };
177
179
182 inline UInt_t GetTimeResolutionMaximum(void){ return TChain::GetMaximum("cam_dt"); };
183
185
188 inline UInt_t GetNy(void){ return cam_map[pixamplitude]->GetNbinsX(); };
189
191
194 inline UInt_t GetNz(void){ return cam_map[pixamplitude]->GetNbinsY(); };
195
197
200 inline double GetPhotonResolutionY(void){ return cam_photon_resy; };
201
203
206 inline double GetPhotonResolutionZ(void){ return cam_photon_resz; };
207
209
213 inline TH2S* GetMap(const CAMERA_MAPTYPE aMapType=pixamplitude){ return cam_map[aMapType]; };
214
216
219 inline TH2F* GetGainMap(void){ return cam_gain; };
220
222
225 inline int GetHitN(void){ return cam_hitn; };
226
228
233 inline int GetHitSourceIndex(const UInt_t aHitIndex){ return cam_hitsrc[aHitIndex]; };
234
236
241 inline int GetHitParticleIndex(const UInt_t aHitIndex){ return cam_hitastro[aHitIndex]; };
242
244
249 inline double GetHitY(const UInt_t aHitIndex){ return cam_hity[aHitIndex]; };
250
252
257 inline double GetHitZ(const UInt_t aHitIndex){ return cam_hitz[aHitIndex]; };
258
260
264 inline void SetThreshold(const double aThreshold){ cam_threshold = aThreshold; };
265
267
270 inline double GetThreshold(void){ return cam_threshold; };
271
273
280 TH2S* GetMapThreshold(TH2S *aAmplitudeThresholdMap);
281
282 private:
283
284 // file content
286 double cam_xsize;
287 double cam_ysize;
288 double cam_zsize;
291 ULong64_t cam_time;
292 UInt_t cam_dt;
300 TH2F *cam_gain;
302
312 void ApplyThreshold(TH2S *aAmplitudeThresholdMap);
313
314
315 ClassDef(CameraRead,0)
316};
317
318#endif
319
320
This module is used to configure a CCD camera.
CAMERA_MAPTYPE
Enumerator to describe the different types of maps.
Definition CameraConfig.h:25
@ pixntype
number of map types.
Definition CameraConfig.h:29
@ pixamplitude
raw amplitude map.
Definition CameraConfig.h:26
const int CAMERA_NHITMAX
Maximum number of hits per picture.
Definition CameraConfig.h:19
This module is used to perform three-dimensional rotations.
Read a camera sequence.
Definition CameraRead.h:23
double cam_zsize
physical size in the Z direction .
Definition CameraRead.h:288
int GetPixelAmplitudeMax(void)
Returns the current camera pixel maximum amplitude range value.
Definition CameraRead.h:128
UInt_t GetTimeResolution(void)
Returns the current camera time resolution .
Definition CameraRead.h:170
double cam_photon_resz
Gaussian width for photons (Z).
Definition CameraRead.h:290
int cam_nbits
number of bits to encode the raw amplitude.
Definition CameraRead.h:285
double cam_hity[CAMERA_NHITMAX]
hit position in the Y direction.
Definition CameraRead.h:296
int cam_hitastro[CAMERA_NHITMAX]
hit astro-particle index.
Definition CameraRead.h:295
double GetSizeX(void)
Returns the current camera size in the X direction .
Definition CameraRead.h:134
int GetPixelValue(const CAMERA_MAPTYPE aMapType, const int aPixIndexY, const int aPixIndexZ)
Returns current value of a given pixel and for a selected map type.
Definition CameraRead.h:101
UInt_t GetTimeResolutionMinimum(void)
Returns the minimum camera time resolution .
Definition CameraRead.h:176
int GetPixelError(const CAMERA_MAPTYPE aMapType, const int aPixIndexY, const int aPixIndexZ)
Returns current error value of a given pixel and for a selected map type.
Definition CameraRead.h:114
TH2F * GetGainMap(void)
Returns a pointer to the current gain map.
Definition CameraRead.h:219
int GetHitN(void)
Returns the current number of hits.
Definition CameraRead.h:225
TH2S * cam_map[pixntype]
pixel maps.
Definition CameraRead.h:299
double cam_photon_resy
Gaussian width for photons (Y).
Definition CameraRead.h:289
int GetHitSourceIndex(const UInt_t aHitIndex)
Returns the source index for a given hit index.
Definition CameraRead.h:233
UInt_t cam_dt
resolution time .
Definition CameraRead.h:292
CameraRead(const string aFilePattern, const string aName)
CameraRead class constuctor.
bool SetTime(const ULong64_t aTime)
Sets the camera time.
Definition CameraRead.cc:84
double cam_hitz[CAMERA_NHITMAX]
hit position in the Z direction.
Definition CameraRead.h:297
double GetPhotonResolutionY(void)
Returns the current photon resolution (Y).
Definition CameraRead.h:200
double GetPhotonResolutionZ(void)
Returns the current photon resolution (Z).
Definition CameraRead.h:206
TH2F * cam_gain
gain map.
Definition CameraRead.h:300
double cam_threshold
threshold.
Definition CameraRead.h:301
TH2S * GetMap(const CAMERA_MAPTYPE aMapType=pixamplitude)
Returns a pointer to the current map.
Definition CameraRead.h:213
double GetHitY(const UInt_t aHitIndex)
Returns the Y position (intrinsic coordinates) for a given hit index.
Definition CameraRead.h:249
int GetAmplitudeNbits(void)
Returns the current camera number of bits to encode the raw amplitude.
Definition CameraRead.h:122
TH2S * GetMapThreshold(TH2S *aAmplitudeThresholdMap)
Returns the camera amplitude map after thresholding.
Definition CameraRead.cc:130
ULong64_t GetTimeMaximum(void)
Returns the maximum camera time .
Definition CameraRead.h:164
void ApplyThreshold(TH2S *aAmplitudeThresholdMap)
Apply threshold on the current amplitude map.
Definition CameraRead.cc:140
double cam_xsize
physical size in the X direction .
Definition CameraRead.h:286
double cam_ysize
physical size in the Y direction .
Definition CameraRead.h:287
UInt_t GetTimeResolutionMaximum(void)
Returns the maximum camera time resolution .
Definition CameraRead.h:182
int cam_hitsrc[CAMERA_NHITMAX]
hit source index.
Definition CameraRead.h:294
UInt_t GetNy(void)
Returns the current number of pixels in the Y direction.
Definition CameraRead.h:188
double GetThreshold(void)
Returns the camera threshold.
Definition CameraRead.h:270
ULong64_t GetTimeMinimum(void)
Returns the minimum camera time .
Definition CameraRead.h:158
double GetSizeY(void)
Returns the current camera size in the Y direction .
Definition CameraRead.h:140
int GetEntry(Long64_t entry=0, Int_t getall=0)
Gets a new Camera entry.
Definition CameraRead.h:57
void GetSortedPixelIndex(int &aPixIndexY, int &aPixIndexZ, const int aPixIndex, const string aSortMethod="STANDARD")
Returns the pixel indices (Y/Z) in a pre-defined order.
Definition CameraRead.cc:111
int cam_hitn
number of hits.
Definition CameraRead.h:293
ULong64_t GetTime(void)
Returns the current camera time .
Definition CameraRead.h:152
void SetThreshold(const double aThreshold)
Sets the camera threshold.
Definition CameraRead.h:264
double GetHitZ(const UInt_t aHitIndex)
Returns the Z position (intrinsic coordinates) for a given hit index.
Definition CameraRead.h:257
int GetHitParticleIndex(const UInt_t aHitIndex)
Returns the particle index for a given hit index.
Definition CameraRead.h:241
ULong64_t cam_time
camera time .
Definition CameraRead.h:291
TH2S * cam_map_proc
image after processing.
Definition CameraRead.h:298
double GetSizeZ(void)
Returns the current camera size in the Z direction .
Definition CameraRead.h:146
UInt_t GetNz(void)
Returns the current number of pixels in the Z direction.
Definition CameraRead.h:194
virtual ~CameraRead(void)
CameraRead class destructor.
Definition CameraRead.cc:77
Three-dimensional rotations.
Definition Rotation.h:139
double rot_gamma
Euler angle .
Definition Rotation.h:739
double rot_alpha
Euler angle .
Definition Rotation.h:737
void SetAlphaBetaGamma(const double aAlpha, const double aBeta, const double aGamma)
Sets Euler angles, , for the rotation.
Definition Rotation.h:171
double rot_beta
Euler angle .
Definition Rotation.h:738