#ifndef TTrackState_hxx_seen #define TTrackState_hxx_seen #include "IReconState.hxx" #include "IReconNode.hxx" namespace COMET { class ITrackState; } /// A state holding parameters associated with a IReconTrack, and the /// intermediate states. class COMET::ITrackState: public IReconState, virtual public IMReconState, virtual public IMEDepositState, virtual public IMPosDirCurvState, virtual public IMWidthState, virtual public IMMomentumState { public: ITrackState(); ITrackState(const ITrackState& init); virtual ~ITrackState(); virtual ITrackState& operator=(const ITrackState& rhs); /// Return the number of entries for the Direction in the ICorrValues /// vector. static int GetSize() { return IMEDepositState::GetSize() + IMPosDirCurvState::GetSize() + IMWidthState::GetSize() + IMMomentumState::GetSize(); } /// The projection operator to get the full state. static COMET::ICorrValues ProjectState(const COMET::IHandle& state); ClassDef(ITrackState,1); }; #endif