00001 #ifndef SiPixelFedCablingTree_H 00002 #define SiPixelFedCablingTree_H 00003 00004 #include <vector> 00005 #include <map> 00006 #include <string> 00007 00008 #include "CondFormats/SiPixelObjects/interface/SiPixelFedCabling.h" 00009 #include "CondFormats/SiPixelObjects/interface/PixelFEDCabling.h" 00010 00011 class SiPixelFedCablingTree : public SiPixelFedCabling { 00012 00013 public: 00014 typedef sipixelobjects::PixelFEDCabling PixelFEDCabling; 00015 00016 SiPixelFedCablingTree(const std::string & version="") : theVersion(version) {} 00017 00018 virtual ~SiPixelFedCablingTree() {} 00019 00021 void addFed(const PixelFEDCabling& f); 00022 00024 const PixelFEDCabling * fed(unsigned int idFed) const; 00025 00026 std::vector<const PixelFEDCabling *> fedList() const; 00027 00029 virtual std::string version() const { return theVersion; } 00030 00031 std::string print(int depth = 0) const; 00032 00033 void addItem(unsigned int fedId, unsigned int linkId, const sipixelobjects::PixelROC& roc); 00034 00035 virtual std::vector<sipixelobjects::CablingPathToDetUnit> pathToDetUnit(uint32_t rawDetId) const; 00036 00037 virtual const sipixelobjects::PixelROC* findItem( 00038 const sipixelobjects::CablingPathToDetUnit & path) const; 00039 00040 int checkNumbering() const; 00041 00042 private: 00043 std::string theVersion; 00044 std::map<int, PixelFEDCabling> theFedCablings; 00045 }; 00046 #endif