00001 #ifndef PixelEndcapLinkMaker_H 00002 #define PixelEndcapLinkMaker_H 00003 00004 #include <boost/cstdint.hpp> 00005 #include <vector> 00006 00007 #include "CalibTracker/SiPixelConnectivity/interface/TRange.h" 00008 00009 class PixelModuleName; 00010 class PixelEndcapName; 00011 #include "CondFormats/SiPixelObjects/interface/PixelFEDCabling.h" 00012 #include "CondFormats/SiPixelObjects/interface/PixelFEDLink.h" 00013 00014 class PixelEndcapLinkMaker { 00015 public: 00016 00017 typedef sipixelobjects::PixelFEDCabling PixelFEDCabling; 00018 typedef sipixelobjects::PixelFEDLink PixelFEDLink; 00019 typedef sipixelobjects::PixelROC PixelROC; 00020 00021 typedef std::vector<PixelModuleName* > Names; 00022 typedef std::vector<uint32_t> DetUnits; 00023 typedef PixelFEDCabling::Links Links; 00024 typedef TRange<int> Range; 00025 00027 PixelEndcapLinkMaker(const PixelFEDCabling * o) : theOwner(o) { } 00028 00034 Links links( const Names & n, const DetUnits & u) const; 00035 00036 private: 00037 const PixelFEDCabling * theOwner; 00038 00045 struct Item { const PixelEndcapName * name; 00046 uint32_t unit; 00047 Range rocIds; }; 00048 00056 struct Order { bool operator() (const Item&, const Item&) const; } ; 00057 00058 private: 00059 00060 }; 00061 00062 #endif 00063 00064