TelescopeRecData.h
Go to the documentation of this file.
1 #ifndef _fevt_TelescopeRecData_h_
2 #define _fevt_TelescopeRecData_h_
3 
4 #include <fevt/Eye.h>
5 
6 #include <utl/TimeStamp.h>
7 #include <utl/AxialVector.h>
8 #include <utl/MultiTabulatedFunctionErrors.h>
9 #include <utl/ShadowPtr.h>
10 #include <utl/LameShadowPtr.h>
11 
12 #include <boost/iterator/indirect_iterator.hpp>
13 
14 #include <vector>
15 #include <list>
16 
17 
18 namespace fevt {
19 
20  class Pixel;
21 
22 
34 
35  public:
36  double GetZeta() const { return fZeta; }
37 
38  const utl::AxialVector& GetSDP() const { return fSDP; }
39  double GetSDPThetaError() const { return fSDPThetaError; }
40  double GetSDPPhiError() const { return fSDPPhiError; }
41  double GetSDPCorrThetaPhi() const { return fSDPThetaPhiCorrelation; }
42  double GetSDPFitChiSquare() const { return fSDPFitChiSquare; }
43  unsigned int GetSDPFitNDof() const { return fSDPFitNDof; }
44 
45  double GetTZero() const { return fTZero; }
46  double GetTZeroError() const { return fTZeroError; }
47  double GetChiZero() const { return fChiZero; }
48  double GetChiZeroError() const { return fChiZeroError; }
49  double GetRp() const { return fRp; }
51  double GetRpChi0Correlation() const { return fRpChi0Correlation; }
52  double GetRpTZeroCorrelation() const { return fRpTZeroCorrelation; }
53  double GetRpError() const { return fRpError; }
54  double GetTimeFitChiSquare() const { return fTimeFitChiSquare; }
55  unsigned int GetTimeFitNDof() const { return fTimeFitNDof; }
56 
62  double GetNorthPhiCorrelation() const { return fNorthPhiCorrelation; }
65  double GetEastPhiCorrelation() const { return fEastPhiCorrelation; }
67  double GetThetaPhiCorrelation() const { return fThetaPhiCorrelation; }
69  double GetPhiTCoreCorrelation() const { return fPhiTCoreCorrelation; }
70  double GetAxisFitChiSquare() const { return fAxisFitChiSquare; }
71  unsigned int GetAxisFitNDof() const { return fAxisFitNDof; }
72 
73  unsigned int GetEyeId() const { return fEyeId; }
74  unsigned int GetTelescopeId() const { return fTelescopeId; }
75 
76  void SetZeta(const double zeta) { fZeta = zeta; }
77 
78  void SetSDP(const utl::AxialVector& vec) { fSDP = vec; }
79 
80  void SetSDPThetaError(const double sdpThetaError)
81  { fSDPThetaError = sdpThetaError; }
82  void SetSDPPhiError(const double sdpPhiError)
83  { fSDPPhiError = sdpPhiError; }
84  void SetSDPCorrThetaPhi (double sdpCorrThetaPhi)
85  { fSDPThetaPhiCorrelation=sdpCorrThetaPhi; }
86  void SetSDPFitChiSquare(const double sdpChi2, const unsigned int ndof)
87  { fSDPFitChiSquare = sdpChi2; fSDPFitNDof = ndof; }
88 
89  void SetTimeFitChiSquare(const double tfitChi2, const unsigned int ndof)
90  { fTimeFitChiSquare = tfitChi2; fTimeFitNDof = ndof; }
91 
92  void SetTZero(const double tzero, const double error)
93  { fTZero = tzero; fTZeroError = error; }
94  void SetChiZero(const double chiZero, const double error)
95  { fChiZero = chiZero; fChiZeroError = error; }
96  void SetRp(const double rp, const double error)
97  { fRp = rp; fRpError = error; }
98  void SetTimeFitCorrelations(double rRpT0, double rRpChi0, double rChi0T0);
99 
103  void SetAxisFitCorrelations(double northEast,
104  double northTheta,
105  double northPhi,
106  double northTCore,
107  double eastTheta,
108  double eastPhi,
109  double eastTCore,
110  double thetaPhi,
111  double thetaTCore,
112  double phiTCore)
113  {
114  fNorthEastCorrelation = northEast;
115  fNorthThetaCorrelation = northTheta;
116  fNorthPhiCorrelation = northPhi;
117  fNorthTCoreCorrelation = northTCore;
118  fEastThetaCorrelation = eastTheta;
119  fEastPhiCorrelation = eastPhi;
120  fEastTCoreCorrelation = eastTCore;
121  fThetaPhiCorrelation = thetaPhi;
122  fThetaTCoreCorrelation = thetaTCore;
123  fPhiTCoreCorrelation = phiTCore;
124  }
125  void SetAxisFitChiSquare(const double globalChi2, const unsigned int ndof)
126  { fAxisFitChiSquare = globalChi2; fAxisFitNDof = ndof; }
127 
129 
135  { return fLightProfile->GetTabulatedFunctionErrors(source); }
137  { return fLightProfile->GetTabulatedFunctionErrors(source); }
138 
142  { fLightProfile->AddTabulatedFunctionErrors(source); }
143 
146  { return fLightProfile->HasLabel(source); }
147 
151 
154  { return fLightProfile->TabulatedFunctionsErrorsBegin(); }
156  { return fLightProfile->TabulatedFunctionsErrorsBegin(); }
157 
160  { return fLightProfile->TabulatedFunctionsErrorsEnd(); }
162  { return fLightProfile->TabulatedFunctionsErrorsEnd(); }
163 
166 
168  { fTraceStartTime = ts; }
169 
171 
183  const std::vector<std::vector<unsigned int>>& GetPixelsInZetaOverTime() const
184  { return fPixelsInZeta; }
185  std::vector<std::vector<unsigned int>>& GetPixelsInZetaOverTime()
186  { return fPixelsInZeta; }
187 
190  { return *fLightCollectionEfficiency; }
193  { return *fLightCollectionEfficiency; }
198 
203  bool IsSpotFarFromBorder(const double timeRelToEyeTriggerTime) const;
204  void SetSpotFarFromBorderTimeRanges(const std::list<std::pair<double, double>>& timeRanges)
205  { fSpotFarFromBorderTimes = timeRanges; }
206  const std::list<std::pair<double, double>>& GetSpotFarFromBorderTimeRanges() const
207  { return fSpotFarFromBorderTimes; }
208  std::list<std::pair<double, double>>& GetSpotFarFromBorderTimeRanges()
209  { return fSpotFarFromBorderTimes; }
210 
211  private:
212  TelescopeRecData(const unsigned int eyeId, const unsigned int telId)
213  : fEyeId(eyeId), fTelescopeId(telId) { }
214 
216 
217  void CorrectIds(const unsigned int eyeId, const unsigned int telescopeId)
218  { fEyeId = eyeId; fTelescopeId = telescopeId; }
219 
220  unsigned int fEyeId = 0;
221  unsigned int fTelescopeId = 0;
222 
223  double fZeta = 0;
224 
226  double fSDPThetaError = 0;
227  double fSDPPhiError = 0;
229  double fSDPFitChiSquare = 0;
230  unsigned int fSDPFitNDof = 0;
231 
232  double fTZero = 0;
233  double fTZeroError = 0;
234  double fChiZero = 0;
235  double fChiZeroError = 0;
236  double fRp = 0;
237  double fRpError = 0;
239  double fRpChi0Correlation = 0;
241  double fTimeFitChiSquare = 0;
242  unsigned int fTimeFitNDof = 0;
243 
254  double fAxisFitChiSquare = 0;
255  unsigned int fAxisFitNDof = 0;
256 
258 
263  std::list<std::pair<double, double>> fSpotFarFromBorderTimes;
265  std::vector<std::vector<unsigned int>> fPixelsInZeta;
267 
268  friend class Telescope;
270  };
271 
272 }
273 
274 
275 #endif
const utl::MultiTabulatedFunctionErrors & GetLightCollectionEfficiency() const
Get the light-collection-efficiency multi tabulated function (for various LightSources) ...
unsigned int GetEyeId() const
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::iterator, LabeledTabulatedFunctionErrors > Iterator
Definition: MultiObject.h:78
utl::InitializedShadowPtr< utl::MultiTabulatedFunctionErrors > fLightProfile
void SetSDPFitChiSquare(const double sdpChi2, const unsigned int ndof)
double GetNorthTCoreCorrelation() const
double GetZeta() const
std::list< std::pair< double, double > > fSpotFarFromBorderTimes
const std::list< std::pair< double, double > > & GetSpotFarFromBorderTimeRanges() const
double GetRpError() const
ConstMultiLightFluxIterator LightFluxesBegin() const
double GetSDPCorrThetaPhi() const
const utl::TabulatedFunctionErrors & GetLightFlux(const FdConstants::LightSource source=fevt::FdConstants::eTotal) const
void SetTimeFitCorrelations(double rRpT0, double rRpChi0, double rChi0T0)
double GetEastPhiCorrelation() const
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledTabulatedFunctionErrors > ConstIterator
Definition: MultiObject.h:81
double GetSDPThetaError() const
utl::TimeStamp fTraceStartTime
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
void SetSDP(const utl::AxialVector &vec)
void SetAxisFitCorrelations(double northEast, double northTheta, double northPhi, double northTCore, double eastTheta, double eastPhi, double eastTCore, double thetaPhi, double thetaTCore, double phiTCore)
double GetSDPPhiError() const
double GetNorthEastCorrelation() const
utl::TabulatedFunctionErrors & GetLightFlux(const FdConstants::LightSource source=fevt::FdConstants::eTotal)
Light flux at diaphragm, photons/m^2 versus time in ns.
bool IsSpotFarFromBorder(const double timeRelToEyeTriggerTime) const
LightSource
Possible light sources.
Definition: FdConstants.h:9
ConstMultiLightFluxIterator LightFluxesEnd() const
bool HasLightFlux(const FdConstants::LightSource source=FdConstants::eTotal) const
Check that light profile for source /par source is present.
unsigned int GetAxisFitNDof() const
utl::MultiTabulatedFunctionErrors::ConstIterator ConstMultiLightFluxIterator
void SetSDPPhiError(const double sdpPhiError)
double GetChiZeroError() const
void SetChiZero(const double chiZero, const double error)
void SetSpotFarFromBorderTimeRanges(const std::list< std::pair< double, double >> &timeRanges)
Telescope-specific shower reconstruction data.
void SetSDPThetaError(const double sdpThetaError)
utl::MultiTabulatedFunctionErrors & GetLightCollectionEfficiency()
Get the light-collection-efficiency multi tabulated function (for various LightSources) ...
const std::vector< std::vector< unsigned int > > & GetPixelsInZetaOverTime() const
Returns the time-vector of vectors of pixel ids which are within zeta at the given time...
unsigned int GetTelescopeId() const
void MakeLightCollectionEfficiency()
Add a light-collection-efficiency multi tabulated function (for various LightSources) ...
A collection of TabulatedFunctionErrors, which provides methods to access different sources...
double GetThetaTCoreCorrelation() const
double GetRpChi0Correlation() const
double GetTZero() const
double GetEastTCoreCorrelation() const
bool HasLightCollectionEfficiency() const
Check that a light-collection-efficiency multi tabulated function exists (for various LightSources) ...
double GetTimeFitChiSquare() const
void SetAxisFitChiSquare(const double globalChi2, const unsigned int ndof)
double GetNorthThetaCorrelation() const
void SetPhotonsStartTime(const utl::TimeStamp &ts)
double GetSDPFitChiSquare() const
double GetPhiTCoreCorrelation() const
utl::TimeStamp GetPhotonsStartTime() const
Start Time of the photons trace.
double GetNorthPhiCorrelation() const
void SetTZero(const double tzero, const double error)
std::vector< std::vector< unsigned int > > fPixelsInZeta
utl::ShadowPtr< utl::MultiTabulatedFunctionErrors > fLightCollectionEfficiency
unsigned int GetTimeFitNDof() const
std::list< std::pair< double, double > > & GetSpotFarFromBorderTimeRanges()
double GetEastThetaCorrelation() const
void SetTimeFitChiSquare(const double tfitChi2, const unsigned int ndof)
double GetThetaPhiCorrelation() const
void SetZeta(const double zeta)
void SetRp(const double rp, const double error)
double GetChi0TZeroCorrelation() const
std::vector< std::vector< unsigned int > > & GetPixelsInZetaOverTime()
void MakeLightFlux(const FdConstants::LightSource source=FdConstants::eTotal)
AxialVector object.
Definition: AxialVector.h:30
Fluorescence Detector Telescope Event.
double GetChiZero() const
double GetAxisFitChiSquare() const
const utl::AxialVector & GetSDP() const
TelescopeRecData(const unsigned int eyeId, const unsigned int telId)
void CorrectIds(const unsigned int eyeId, const unsigned int telescopeId)
MultiLightFluxIterator LightFluxesEnd()
End of the Light flux, returns a LabeledTabulatedFunctionErrors.
double GetTZeroError() const
unsigned int GetSDPFitNDof() const
MultiLightFluxIterator LightFluxesBegin()
Begin of the Light flux, returns a LabeledTabulatedFunctionErrors.
void SetSDPCorrThetaPhi(double sdpCorrThetaPhi)
utl::MultiTabulatedFunctionErrors::Iterator MultiLightFluxIterator
An iterator over the components of the Light Flux.
double GetRpTZeroCorrelation() const

, generated on Tue Sep 26 2023.