ShowerMRecData.h
Go to the documentation of this file.
1 #ifndef _evt_ShowerMRecData_h_
2 #define _evt_ShowerMRecData_h_
3 
4 #include <vector>
5 #include <utl/TabulatedFunctionErrors.h>
6 #include <utl/LameShadowPtr_fwd.h>
7 #include <utl/Point.h>
8 #include <utl/Vector.h>
9 #include <utl/TimeStamp.h>
10 #include <utl/TimeInterval.h>
11 #include <utl/ShadowPtr.h>
12 #include <sevt/PlaneFrontRecData.h>
13 
14 namespace evt {
15 
16  class ShowerRecData;
17 
31  public:
32  const utl::TabulatedFunctionErrors& GetMLDF() const { return *fMLDF; }
34  bool HasMLDF() const { return bool(fMLDF); }
35  void MakeMLDF();
36  double GetMLDFChi2() const { return fMLDFChi2; }
37  double GetMLDFNdof() const { return fMLDFNdof; }
38  double GetMLDFLikelihood() const { return fMLDFLikelihood; }
39  double GetAlpha() const { return fAlpha; }
40  double GetAlphaError() const { return fAlphaError; }
41  double GetBeta() const { return fBeta; }
42  double GetBetaError() const { return fBetaError; }
43  double GetBetaSystematics() const { return fBetaSystematics; }
44  double GetGamma() const { return fGamma; }
45  double GetGammaError() const { return fGammaError; }
46  double GetR0() const { return fR0; }
47  double GetR0Error() const { return fR0Error; }
48  double GetNMuRef() const { return fNMuRef; }
49  double GetNMuRefError() const { return fNMuRefError; }
50  double GetNMuRefSystematics() const { return fNMuRefSystematics; }
51 
52  void SetAlpha(const double alpha, const double error)
53  { fAlpha = alpha; fAlphaError = error; }
54  void SetBeta(const double beta, const double error=0)
55  { fBeta = beta; fBetaError = error; }
56  void SetBetaSystematics(const double BetaSys) { fBetaSystematics = BetaSys; }
57  void SetGamma(const double gamma, const double error)
58  { fGamma = gamma; fGammaError = error; }
59  void SetR0(const double r0, const double error)
60  { fR0 = r0; fR0Error = error; }
61  void SetNMuRef(const double NMuRef, const double error)
62  { fNMuRef = NMuRef; fNMuRefError = error; }
63  void SetNMuRefSystematics(const double NMuRefSys)
64  { fNMuRefSystematics = NMuRefSys; }
65  void SetMLDFChi2(const double chi2, const double ndof)
66  { fMLDFChi2 = chi2; fMLDFNdof = ndof; }
67  void SetMLDFLikelihood(const double likelihood)
68  { fMLDFLikelihood = likelihood; }
69 
70  void SetReferenceDistance( double rd ) { fReferenceDistance = rd ;}
71  double GetReferenceDistance() const { return fReferenceDistance; }
72 
73  void SetCorePosition(const utl::Point& core) { fCore = core; }
74  const utl::Point& GetCorePosition() const { return fCore; }
75 
76  void SetBarycenter(const utl::Point& bary) { fBarycenter = bary; }
77  const utl::Point& GetBarycenter() const { return fBarycenter; }
78 
79  void SetCoreError(const utl::Vector& coreerr) { fCoreError = coreerr; }
80  const utl::Vector& GetCoreError() const { return fCoreError; }
81 
82  void SetCorrelationXY( double corr ) { fCorrelationXY = corr; }
83  double GetCorrelationXY() const { return fCorrelationXY; }
84 
85  const utl::Vector& GetAxis() const { return fAxis; }
86  void SetAxis(const utl::Vector& axis) { fAxis = axis; }
87 
88  const utl::Vector& GetReferenceAxis() const { return fReferenceAxis; }
89  void SetReferenceAxis(const utl::Vector& axis) { fReferenceAxis = axis; }
90 
92  void SetReferenceCorePosition(const utl::Point& core) { fReferenceCore = core; }
93 
94  double GetCurvature() const { return fCurvature; }
95  double GetCurvatureError() const { return fCurvatureError; }
96  void SetCurvature(const double curvature, const double error)
97  { fCurvature = curvature; fCurvatureError = error; }
98 
99  const utl::TimeStamp& GetCoreTime() const { return fCoreTime; }
101  void SetCoreTime(const utl::TimeStamp& coreTime, const utl::TimeInterval& coreTimeErr)
102  { fCoreTime = coreTime; fCoreTimeError = coreTimeErr; }
103 
104  double GetTimeResidualMean() const { return fTimeResidualMean; }
105  void SetTimeResidualMean(const double mean) { fTimeResidualMean = mean; }
106 
107  double GetTimeResidualSpread() const { return fTimeResidualSpread; }
108  void SetTimeResidualSpread(const double spread) { fTimeResidualSpread = spread; }
109 
110  double GetAngleChi2() const { return fAngleChi2; }
111  unsigned int GetAngleNdof() const { return fAngleNdof; }
112  void SetAngleChi2(const double chi2, const unsigned int ndof)
113  { fAngleChi2 = chi2; fAngleNdof = ndof; }
114 
115  // Angle between the axis reconstructed by the MD and the SD
116  void SetMdSdAngle(double a) { fMdSdAngle=a; }
117  double GetMdSdAngle() const { return fMdSdAngle; }
118 
119  void SetThetaError(double error) { fThetaError=error; }
120  double GetThetaError() const { return fThetaError; }
121 
122  void SetPhiError(double error) { fPhiError=error; }
123  double GetPhiError() const { return fPhiError; }
124 
125  void SetThetaPhiCorrelation(double corr) { fThetaPhiCorrelation=corr; }
126  double GetThetaPhiCorrelation() const { return fThetaPhiCorrelation; }
127 
128  // Reconstruction flags
129 
130  bool GetT5Trigger() const { return fT5Trigger; }
131  void SetT5Trigger(const bool t5) { fT5Trigger = t5; }
132 
133  bool IsLdfReconstructed() const { return fLdfReconstructed; }
134  void SetLdfReconstructed(bool flag=true) { fLdfReconstructed = flag; }
135 
136  bool IsBetaFixed() const { return fBetaFixed; }
137  void SetBetaFixed(bool flag=true) { fBetaFixed = flag; }
138 
139  bool IsCoreFixedLdf() const { return fCoreFixedLdf; }
140  void SetCoreFixedLdf(bool flag) { fCoreFixedLdf = flag; }
141 
143  void SetGeometryReconstructed(bool flag=true) { fGeometryReconstructed = flag; }
144 
145  bool IsCoreFixedGeo() const { return fCoreFixedGeo; }
146  void SetCoreFixedGeo(bool flag) { fCoreFixedGeo = flag; }
147 
148  bool IsCurvatureFixed() const { return fCurvatureFixed; }
149  void SetCurvatureFixed(bool flag) { fCurvatureFixed = flag; }
150 
151  private:
152  ShowerMRecData();
155 
156  // LDF parameters
157  // XXX Maybe sistematics should be added to some of these.
158  double fAlpha;
159  double fAlphaError;
160  double fBeta;
161  double fBetaError;
163  double fGamma;
164  double fGammaError;
165  double fR0;
166  double fR0Error;
167  double fNMuRef; //< Muon LDF size at the reference distance
168  double fNMuRefError;
170  double fMLDFChi2;
171  double fMLDFNdof;
174 
175  // Geometry parameters
176  utl::Vector fAxis; // axis from MD geometrical reconstruction. Currently deprecated and not filled
177  double fThetaError;
178  double fPhiError;
180 
181  // Some geometry parameters from SD reco. It is useful to have access to them here
182  utl::Vector fReferenceAxis; // axis from SD reconstruction
183  utl::Point fReferenceCore; // core position from SD reconstruction
184 
187 
188  double fCurvature;
190 
191  // Core position
192  utl::Point fCore; // core position from MD reconstruction. Only filled if a geometrical reconstruction was done by the MD (i.e., if fGeometryReconstructed is true).
195 
197 
200  double fAngleChi2;
201  unsigned int fAngleNdof;
202  double fMdSdAngle;
203 
204  // Reconstruction status flags
206  bool fLdfReconstructed; // Indicates if the ldf reconstruction was performed
207  bool fBetaFixed; // true is beta is fixed
208  bool fCoreFixedLdf; // true if the core is fixed in the ldf fit
209  bool fGeometryReconstructed; // Indicates if the geometrical reconstruction was performed
210  bool fCoreFixedGeo; // true if the core is fixed in the geometrical reconstruction
211  bool fCurvatureFixed; // true if radius of curvature is free in the geometrical reconstruction
212 
213  friend class evt::ShowerRecData;
215 
216  };
217 
218 }
219 
220 #endif // _evt_ShowerMRecData_h_
double GetTimeResidualSpread() const
double GetReferenceDistance() const
utl::TimeStamp fCoreTime
double GetR0() const
void SetReferenceCorePosition(const utl::Point &core)
void SetLdfReconstructed(bool flag=true)
const utl::TimeStamp & GetCoreTime() const
void SetPhiError(double error)
void SetBetaSystematics(const double BetaSys)
void SetReferenceDistance(double rd)
bool IsLdfReconstructed() const
Point object.
Definition: Point.h:32
void SetCurvature(const double curvature, const double error)
utl::Point fReferenceCore
double GetGammaError() const
void SetGamma(const double gamma, const double error)
double GetThetaPhiCorrelation() const
utl::TabulatedFunctionErrors & GetMLDF()
const utl::Vector & GetReferenceAxis() const
void SetCurvatureFixed(bool flag)
Interface class to access Shower Reconstructed parameters.
Definition: ShowerRecData.h:33
double GetAngleChi2() const
void SetBarycenter(const utl::Point &bary)
void SetCoreTime(const utl::TimeStamp &coreTime, const utl::TimeInterval &coreTimeErr)
void SetReferenceAxis(const utl::Vector &axis)
void SetCoreFixedLdf(bool flag)
double GetPhiError() const
void SetCoreError(const utl::Vector &coreerr)
const utl::Point & GetReferenceCorePosition() const
double GetAlpha() const
double GetMdSdAngle() const
utl::Vector fReferenceAxis
utl::Vector fCoreError
bool GetT5Trigger() const
void SetMdSdAngle(double a)
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
const utl::Vector & GetAxis() const
unsigned int GetAngleNdof() const
void SetBetaFixed(bool flag=true)
const utl::Vector & GetCoreError() const
void SetR0(const double r0, const double error)
bool IsCoreFixedLdf() const
void SetTimeResidualMean(const double mean)
double GetNMuRefSystematics() const
double GetMLDFNdof() const
double GetTimeResidualMean() const
const utl::TabulatedFunctionErrors & GetMLDF() const
void SetThetaPhiCorrelation(double corr)
const utl::TimeInterval & GetCoreTimeError() const
void SetCorePosition(const utl::Point &core)
unsigned int fAngleNdof
void SetNMuRefSystematics(const double NMuRefSys)
const utl::Point & GetCorePosition() const
double GetCurvature() const
const utl::Point & GetBarycenter() const
double GetAlphaError() const
double GetMLDFChi2() const
void SetThetaError(double error)
bool IsCoreFixedGeo() const
double GetR0Error() const
utl::ShadowPtr< utl::TabulatedFunctionErrors > fMLDF
A TimeInterval is used to represent time elapsed between two events.
Definition: TimeInterval.h:43
void SetAxis(const utl::Vector &axis)
void SetGeometryReconstructed(bool flag=true)
bool IsBetaFixed() const
void SetTimeResidualSpread(const double spread)
double GetCurvatureError() const
bool IsCurvatureFixed() const
void SetAngleChi2(const double chi2, const unsigned int ndof)
Vector object.
Definition: Vector.h:30
void SetAlpha(const double alpha, const double error)
utl::TimeInterval fCoreTimeError
bool HasMLDF() const
double GetNMuRefError() const
void SetNMuRef(const double NMuRef, const double error)
double GetGamma() const
double GetNMuRef() const
Interface class to access to the Muon Reconstruction of a Shower.
double GetThetaError() const
void SetBeta(const double beta, const double error=0)
void SetCoreFixedGeo(bool flag)
void SetT5Trigger(const bool t5)
void SetCorrelationXY(double corr)
void SetMLDFLikelihood(const double likelihood)
double GetBetaSystematics() const
void SetMLDFChi2(const double chi2, const double ndof)
double GetBetaError() const
double GetMLDFLikelihood() const
double GetCorrelationXY() const
double GetBeta() const
bool IsGeometryReconstructed() const

, generated on Tue Sep 26 2023.