CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/CalibTracker/SiPixelConnectivity/interface/PixelBarrelLinkMaker.h

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