00001 #ifndef EventFilter_SiPixelRawToDigi_SiPixelFedCablingMap_H 00002 #define EventFilter_SiPixelRawToDigi_SiPixelFedCablingMap_H 00003 00004 #include "CondFormats/SiPixelObjects/interface/SiPixelFedCabling.h" 00005 #include "CondFormats/SiPixelObjects/interface/PixelROC.h" 00006 00007 #include <string> 00008 #include <map> 00009 class SiPixelFedCablingTree; 00010 00011 00012 class SiPixelFedCablingMap : public SiPixelFedCabling { 00013 00014 public: 00015 00016 SiPixelFedCablingMap(const SiPixelFedCablingTree *cab); 00017 00018 SiPixelFedCablingMap(const std::string & version="") : theVersion(version) {} 00019 00020 virtual ~SiPixelFedCablingMap() {} 00021 00022 SiPixelFedCablingTree * cablingTree() const; 00023 00024 virtual std::string version() const { return theVersion; } 00025 00026 virtual const sipixelobjects::PixelROC* findItem( 00027 const sipixelobjects::CablingPathToDetUnit & path) const; 00028 00029 virtual std::vector<sipixelobjects::CablingPathToDetUnit> pathToDetUnit(uint32_t rawDetId) const; 00030 00031 std::vector<unsigned int> fedIds() const; 00032 00033 struct Key { unsigned int fed, link, roc; bool operator < (const Key & other) const; }; 00034 00035 private: 00036 std::string theVersion; 00037 typedef std::map<Key, sipixelobjects::PixelROC> Map; 00038 Map theMap; 00039 }; 00040 00041 #endif