#ifndef TStrawTrkChannelMap_hxx #define TStrawTrkChannelMap_hxx #include "IChannelMap.hxx" #include "IStrawTrkChannelId.hxx" class IStrawTrkChannelMap; namespace COMET { class IStrawTrkChannelMap; } /// Class for StrawTrk channel to geometry lookup class COMET::IStrawTrkChannelMap : public COMET::IChannelMap { friend class IGeometryDatabase; protected: IStrawTrkChannelMap(); public: virtual ~IStrawTrkChannelMap(); /// Get the singleton instace of this class static IStrawTrkChannelMap& Get(); /// Get geometry id from channel id bool GetGeometryId(COMET::IGeometryId& geomId, COMET::IStrawTrkChannelId channelId) const; /// Get channel id from geometry id bool GetChannelId(COMET::IStrawTrkChannelId& chanelId, COMET::IGeometryId geomId) const; private: /// Judge a bad GeometryId and ChannelId that is invalid for any sensible test inline const bool IsBadGeomId(COMET::IGeometryId& geomId) const; inline const bool IsBadChannelId(COMET::IStrawTrkChannelId& channelId) const; static IStrawTrkChannelMap *fStrawTrkChannelMap; }; #endif