#ifndef TReconTrackCand_hxx_seen #define TReconTrackCand_hxx_seen #include #include #include #include "IHandle.hxx" #include "IReconBase.hxx" #include "IReconTrack.hxx" #include "IHit.hxx" #include "IHitSelection.hxx" #include "ICOMETLog.hxx" #include "ITrackState.hxx" namespace COMET { class IReconTrackCand; } /// A container of track candidate hits inherited from IHitSelection. /// This conteiner should also take over the initial paramters from Track Finding to Track Fitting. class COMET::IReconTrackCand : public COMET::IReconTrack { public: IReconTrackCand(); /// copy constructor IReconTrackCand(const COMET::IReconTrackCand& trackcand); virtual ~IReconTrackCand(); /// Get i-th hit COMET::IHandle GetHitAt(int i) const; /// Get the position of a track candidate TVector3 GetSeedPosition() const {return TVector3(GetPosition().X(), GetPosition().Y(), GetPosition().Z());} /// Get the momentum of a track candidate TVector3 GetSeedMomentum() const {return GetMomentumVector();} /// Get the state vector of a track candidate TVectorD GetSeedState() const; /// Get the covariance matrix of a track candidate TMatrixDSym GetSeedCovariance() const; /// List the results of in the track candidate. virtual void ls(Option_t* opt = "") const; private: ClassDef(IReconTrackCand,1); }; #endif