![]() |
![]() |
00001 #ifndef TrackerMapDDDtoID_H 00002 #define TrackerMapDDDtoID_H 00003 00004 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" 00005 00006 #include <map> 00007 #include <vector> 00008 #include <string> 00009 00010 00011 class DDExpandedView; 00012 class DDFilteredView; 00013 00014 class TrackerMapDDDtoID { 00015 public: 00016 00017 typedef GeometricDet::nav_type nav_type; 00018 typedef std::map<nav_type,uint32_t> MapType; 00019 typedef std::map<uint32_t,nav_type> RevMapType; 00020 00021 TrackerMapDDDtoID(const GeometricDet* iDet); 00022 ~TrackerMapDDDtoID(){clear();} 00023 00024 /* 00025 unsigned int id(const DDExpandedView &) const; 00027 unsigned int id(const DDFilteredView &) const; 00028 */ 00029 00031 unsigned int id(const nav_type &) const; 00032 00033 nav_type const & navType(uint32_t) const; 00034 00035 std::vector<nav_type> const & allNavTypes() const; 00036 void clear(); 00037 private: 00038 void buildAll(const GeometricDet*); 00039 void buildAllStep2(const GeometricDet*); 00040 00041 std::vector<nav_type> navVec; 00042 MapType path2id_; 00043 RevMapType revpath2id_; 00044 }; 00045 00046 //typedef Singleton<TrackerMapDDDtoID> TkMapDDDtoID; 00047 00048 #endif