#ifndef TReconTrack_hxx_seen #define TReconTrack_hxx_seen #include #include #include "IHandle.hxx" #include "IReconBase.hxx" #include "ITrackState.hxx" namespace COMET { class IReconTrack; } /// A representation of a curvilinear energy deposit starting a position, and /// following a path. This is described by the amount of energy (dEdX), the /// initial position , the initial time, the initial direction, the initial /// curvature, and the initial path width. There must be a way to represent /// the path of the energy deposition between the initial and final ends of /// the deposition. At each intermediate point, we require a representation /// of the energy deposit (dEdX), position, time, direction, curvature, and /// width. The detector hits are associated with each node along the track. /// /// The COMET::IReconTrack class is intended to describe the geometry of the /// energy deposition in a detector, and not make the association with a /// particular particle identification. Assignment of particle types to the /// detector measurements is done in the COMET::TReconParticle class. class COMET::IReconTrack: public COMET::IReconBase { public: IReconTrack(); /// copy constructor IReconTrack(const COMET::IReconTrack& track); virtual ~IReconTrack(); /// Get the energy deposited in the track. double GetEDeposit() const; /// Get the track starting position. TLorentzVector GetPosition() const; /// Get the track starting position uncertainty. TLorentzVector GetPositionVariance() const; /// Get the number of (non-free) spacial dimensions int GetDimensions() const; /// Check if this track has X information. bool IsXTrack() const; /// Check if this track has Y information. bool IsYTrack() const; /// Check if this track has Z information. bool IsZTrack() const; /// Get the track direction. TVector3 GetDirection() const; /// Get the track curvature around the X axis. double GetCurvature() const; /// Get the track momentum magnitude double GetMomentum() const; /// Get the width of the track. TVector3 GetWidth() const; /// Get the track momentum vector TVector3 GetMomentumVector() const; ClassDef(IReconTrack,2); }; #endif