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