ShowerRRecData.h
Go to the documentation of this file.
1 #ifndef _evt_ShowerRRecData_h_
2 #define _evt_ShowerRRecData_h_
3 
4 #include <fwk/RunController.h>
5 
6 #include <utl/Point.h>
7 #include <utl/Vector.h>
8 #include <utl/LameShadowPtr.h>
9 #include <utl/ParameterStorage.h>
10 
11 #include <det/Detector.h>
12 
13 #include <evt/ShowerRRecDataQuantities.h>
14 #include <evt/Event.h>
15 
16 #include <vector>
17 
18 namespace evt {
19 
20  class ShowerRecData;
21 
22 
33 
34  public:
35  // enums for reference core/position
43  };
44 
51  };
52 
53  // Parameters Storage
54  typedef revt::ShowerRRecDataQuantities Parameter;
55 
56  double GetParameter(const Parameter i) const
57  { return fShowerQuantities.GetParameter(i, CurrentModule()); }
58 
59  bool GetParameterLockStatus(const Parameter i) const
60  { return fShowerQuantities.GetParameterLockStatus(i, CurrentModule()); }
61 
62  double GetParameterError(const Parameter i) const
63  { return std::sqrt(fShowerQuantities.GetParameterCovariance(i, i, CurrentModule())); }
64 
66  { return fShowerQuantities.GetParameterCovarianceLockStatus(i, i, CurrentModule()); }
67 
68  double GetParameterCovariance(const Parameter i1, const Parameter i2) const
69  { return fShowerQuantities.GetParameterCovariance(i1, i2, CurrentModule()); }
70 
71  bool GetParameterCovarianceLockStatus(const Parameter i1, const Parameter i2) const
72  { return fShowerQuantities.GetParameterCovarianceLockStatus(i1, i2, CurrentModule()); }
73 
74  bool HasParameter(const Parameter i) const
75  { return fShowerQuantities.HasParameter(i); }
76 
77  bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
78  { return fShowerQuantities.HasParameterCovariance(i1, i2); }
79 
80  bool HasParameterError(const Parameter i) const
81  { return fShowerQuantities.HasParameterCovariance(i, i); }
82 
83  void SetParameter(Parameter i, double value, bool lock = true)
84  { fShowerQuantities.SetParameter(i, value, lock, CurrentModule()); }
85 
86  void SetParameterError(Parameter i, double value, bool lock = true)
87  { fShowerQuantities.SetParameterCovariance(i, i, value * value, lock, CurrentModule()); }
88 
89  void SetParameterCovariance(Parameter i1, Parameter i2, double value, bool lock = true)
90  { fShowerQuantities.SetParameterCovariance(i1, i2, value, lock, CurrentModule()); }
91 
92  void DeleteParameter(const Parameter i)
93  { fShowerQuantities.DeleteParameter(i, CurrentModule()); }
94 
96  { fShowerQuantities.DeleteParameterCovariance(i1, i2, CurrentModule()); }
97 
98  std::vector<Parameter> GetEnumVector() const
99  { return fShowerQuantities.GetEnumVector(); }
100 
101  std::vector<std::pair<Parameter, Parameter>> GetCovarianceEnumVector() const
102  { return fShowerQuantities.GetCovarianceEnumVector(); }
103 
105  double GetRadius() const;
106 
108  double GetRadiusError() const;
109 
111  double GetAzimuth() const;
112 
114  double GetAzimuthError() const;
115 
117  double GetZenith() const;
118 
120  double GetZenithError() const;
121 
123  double GetAzimuthPreFit() const;
124 
126  double GetAzimuthPreFitError() const;
127 
129  double GetZenithPreFit() const;
130 
132  double GetZenithPreFitError() const;
133 
135 
137  bool HasCorePosition() const;
138 
140  utl::Point GetCorePosition() const;
141 
143  utl::Vector GetCoreError() const;
144 
146  double GetCoreCorrelationXY() const;
147 
149  bool HasAxis() const;
150 
152  utl::Vector GetAxis() const;
153 
156 
159 
162 
164  void SetReferenceCoreFlag(const ReferenceCorePosition refCoreFlag) { fReferenceCoreFlag = refCoreFlag; }
165 
167  void SetReferenceAxisFlag(const ReferenceAxis refAxisFlag) { fReferenceAxisFlag = refAxisFlag; }
168 
170  bool HasReferenceCorePosition(const Event& event) const;
171 
173  bool HasReferenceAxis(const Event& event) const;
174 
176  utl::Point GetReferenceCorePosition(const Event& event) const;
177 
179  utl::Vector GetReferenceCoreError(const Event& event) const;
180 
182  double GetReferenceCoreErrorCorrelationXY(const Event& event) const;
183 
185  utl::Vector GetReferenceAxis(const Event& event) const;
186 
187  unsigned int GetWhichEye() const { return fWhichEye; }
188 
189  void SetWhichEye(const unsigned int eye) { fWhichEye = eye; }
190 
191  private:
192  ShowerRRecData() = default;
193 
194  static const std::string& CurrentModule() { return fwk::RunController::GetInstance().GetCurrentModule(); }
195 
197 
200 
201  unsigned int fWhichEye = 0;
202 
203  friend class evt::ShowerRecData;
205 
206  };
207 
208 }
209 
210 
211 #endif
bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
utl::ParameterStorage< Parameter > fShowerQuantities
void SetParameter(Parameter i, double value, bool lock=true)
bool HasParameter(const Parameter i) const
utl::Vector GetAxis() const
Returns vector of the shower axis.
utl::Point GetReferenceCorePosition(const Event &event) const
Returning the reference core position depending on the corresponding flag.
double GetZenithError() const
returns the error of the zenith angle (from the wave fit)
double GetRadius() const
returns the radius (from the spherical wave fit) // TH: This and the following needs to be cleaned ou...
Point object.
Definition: Point.h:32
bool HasParameterError(const Parameter i) const
ShowerRRecData()=default
Interface class to access Shower Reconstructed parameters.
Definition: ShowerRecData.h:33
bool GetParameterCovarianceLockStatus(const Parameter i1, const Parameter i2) const
Interface class to access to the RD Reconstruction of a Shower.
bool HasParameter(const IndexEnum param) const
determine whether a parameter has been set
bool GetParameterLockStatus(const Parameter i) const
bool HasReferenceAxis(const Event &event) const
Return always true for SD and FD if RecShower exsist, asking for min. rec stage could fix this...
double GetCoreCorrelationXY() const
Return parameter covariance of eCoreX eCoreY.
static const std::string & CurrentModule()
bool HasCorePosition() const
Return true if all 3 core parameter are set.
utl::Vector GetReferenceCoreError(const Event &event) const
Returning the reference core position error depending on the corresponding flag.
double GetReferenceCoreErrorCorrelationXY(const Event &event) const
Returning the reference core position error correlation xy depending on the corresponding flag...
double GetAzimuthError() const
returns the error of the azimuth angle (from the wave fit)
std::vector< Parameter > GetEnumVector() const
utl::Point GetCoordinateOrigin() const
double GetZenith() const
returns the zenith angle (from the wave fit)
bool HasAxis() const
Return true if all 3 axis parameter are set.
ReferenceCorePosition fReferenceCoreFlag
ReferenceCorePosition GetReferenceCoreFlag() const
returns the flag which specify the used reference core
void SetWhichEye(const unsigned int eye)
unsigned int GetWhichEye() const
double GetAzimuth() const
returns the azimuth angle (from the wave fit)
void DeleteParameter(const Parameter i)
std::vector< std::pair< Parameter, Parameter > > GetCovarianceEnumVector() const
revt::ShowerRRecDataQuantities Parameter
void SetReferenceAxisFlag(const ReferenceAxis refAxisFlag)
Set a flag to select a reference axis.
double GetZenithPreFitError() const
returns the error of the zenith angle (from the pre wave fit -&gt; on voltage level) ...
double GetZenithPreFit() const
returns the zenith angle (from the pre wave fit -&gt; on voltage level)
bool HasReferenceCorePosition(const Event &event) const
Return always true for SD and FD if RecShower exsist, asking for min. rec stage could fix this...
unsigned int fWhichEye
void SetParameterError(Parameter i, double value, bool lock=true)
Vector object.
Definition: Vector.h:30
double GetParameterCovariance(const Parameter i1, const Parameter i2) const
utl::Point GetCorePosition() const
returns pointer of the position vector of the core in the reference coor system
utl::Vector GetReferenceAxis(const Event &event) const
Returning the referencedirection depending on the corresponding flag.
void SetReferenceCoreFlag(const ReferenceCorePosition refCoreFlag)
Set a flag to select a reference core.
ReferenceAxis fReferenceAxisFlag
void DeleteParameterCovariance(const Parameter i1, const Parameter i2)
double GetParameter(const Parameter i) const
double GetAzimuthPreFit() const
returns the azimuth angle (from the pre wave fit -&gt; on voltage level)
bool GetParameterErrorLockStatus(const Parameter i) const
ReferenceAxis GetReferenceAxisFlag() const
returns the flag which specify the used reference direction
utl::Vector GetMagneticFieldVector() const
returns the magnetic field vector from the components stored in the parameter storage ...
double GetParameterError(const Parameter i) const
double GetRadiusError() const
returns the error of the radius (from the spherical wave fit)
double GetAzimuthPreFitError() const
returns the error of the azimuth angle (from the pre wave fit -&gt; on voltage level) ...
void SetParameterCovariance(Parameter i1, Parameter i2, double value, bool lock=true)
utl::Vector GetCoreError() const
returns vector of core error in referenceCS

, generated on Tue Sep 26 2023.