00001 #ifndef PixelBarrelLinkMaker_H 00002 #define PixelBarrelLinkMaker_H 00003 00009 #include <boost/cstdint.hpp> 00010 #include <vector> 00011 00012 #include "CalibTracker/SiPixelConnectivity/interface/TRange.h" 00013 00014 class PixelModuleName; 00015 class PixelBarrelName; 00016 #include "CondFormats/SiPixelObjects/interface/PixelFEDCabling.h" 00017 #include "CondFormats/SiPixelObjects/interface/PixelFEDLink.h" 00018 00019 class PixelBarrelLinkMaker { 00020 public: 00021 typedef sipixelobjects::PixelFEDCabling PixelFEDCabling; 00022 typedef sipixelobjects::PixelFEDLink PixelFEDLink; 00023 typedef sipixelobjects::PixelROC PixelROC; 00024 00025 typedef std::vector<PixelModuleName* > Names; 00026 typedef std::vector<uint32_t> DetUnits; 00027 typedef PixelFEDCabling::Links Links; 00028 typedef TRange<int> Range; 00029 00031 PixelBarrelLinkMaker(const PixelFEDCabling * o) : theOwner(o) { } 00032 00038 Links links( const Names & n, const DetUnits & u) const; 00039 00040 private: 00041 const PixelFEDCabling * theOwner; 00042 00047 struct Item { const PixelBarrelName * name; uint32_t unit; Range rocIds; }; 00048 00054 struct Order { bool operator() (const Item&, const Item&) const; } ; 00055 00056 private: 00057 00058 }; 00059 00060 #endif