File indexing completed on 2023-03-17 10:43:57
0001 #ifndef PixelBarrelLinkMaker_H
0002 #define PixelBarrelLinkMaker_H
0003
0004
0005
0006
0007
0008 #include <vector>
0009
0010 #include "CalibTracker/SiPixelConnectivity/interface/TRange.h"
0011
0012 class PixelModuleName;
0013 class PixelBarrelName;
0014 #include "CondFormats/SiPixelObjects/interface/PixelFEDCabling.h"
0015 #include "CondFormats/SiPixelObjects/interface/PixelFEDLink.h"
0016 #include <cstdint>
0017
0018 class PixelBarrelLinkMaker {
0019 public:
0020 typedef sipixelobjects::PixelFEDCabling PixelFEDCabling;
0021 typedef sipixelobjects::PixelFEDLink PixelFEDLink;
0022 typedef sipixelobjects::PixelROC PixelROC;
0023
0024 typedef std::vector<PixelModuleName*> Names;
0025 typedef std::vector<uint32_t> DetUnits;
0026 typedef PixelFEDCabling::Links Links;
0027 typedef TRange<int> Range;
0028
0029
0030 PixelBarrelLinkMaker(const PixelFEDCabling* o) : theOwner(o) {}
0031
0032
0033
0034
0035
0036
0037 Links links(const Names& n, const DetUnits& u) const;
0038
0039 private:
0040 const PixelFEDCabling* theOwner;
0041
0042
0043
0044
0045
0046 struct Item {
0047 const PixelBarrelName* name;
0048 uint32_t unit;
0049 Range rocIds;
0050 };
0051
0052
0053
0054
0055
0056
0057 struct Order {
0058 bool operator()(const Item&, const Item&) const;
0059 };
0060
0061 private:
0062 };
0063
0064 #endif