#ifndef _sevt_PlaneFrontRecData_h_ #define _sevt_PlaneFrontRecData_h_ #include #include namespace evt { class ShowerSRecData; } namespace sevt { class PlaneFrontRecData { public: const utl::Point& GetBarycenter() const { return fBarycenter; } const utl::TimeStamp& GetBarycenterTime() const { return fBarycenterTime; } const utl::Vector& GetAxis() const { return fAxis; } double GetThetaError() const { return fThetaError; } double GetPhiError() const { return fPhiError; } double GetCorrelationThetaPhi() const { return fCorrelationThetaPhi; } double GetAxisChi2() const { return fAngleChi2; } double GetAxisNdof() const { return fAngleNdof; } double GetTimeResidualMean() const { return fTimeResidualMean; } double GetTimeResidualSpread() const { return fTimeResidualSpread; } utl::TimeStamp GetPredictedTime(const utl::Point& p) { return fBarycenterTime - utl::TimeInterval(fAxis * (p - fBarycenter) / utl::kSpeedOfLight); } void SetBarycenter(const utl::Point& p) { fBarycenter = p; } void SetBarycenterTime(const utl::TimeStamp& t) { fBarycenterTime = t; } void SetAxis(const utl::Vector& a) { fAxis = a; } void SetAngleErrors(const utl::Vector::Triple& u_v_w, const utl::Vector::Triple& sigma_u2_uv_v2) { utl::PropagateAxisErrors(u_v_w, sigma_u2_uv_v2, fThetaError, fPhiError, fCorrelationThetaPhi); } void SetAngleChi2Ndof(const double chi2, const int ndof) { fAngleChi2 = chi2; fAngleNdof = ndof; } void GetTimeResidualMean(const double mean, const double spread) { fTimeResidualMean = mean; fTimeResidualSpread = spread; } private: PlaneFrontRecData() : fThetaError(0), fPhiError(0) { } ~PlaneFrontRecData() { } utl::Point fBarycenter; utl::TimeStamp fBarycenterTime; utl::Vector fAxis; double fThetaError; double fPhiError; double fCorrelationThetaPhi; double fAngleChi2; int fAngleNdof; double fTimeResidualMean; double fTimeResidualSpread; friend class evt::ShowerSRecData; friend class utl::ShadowPtr; }; } #endif