CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/CalibTracker/SiPixelConnectivity/interface/PixelEndcapLinkMaker.h

Go to the documentation of this file.
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