File indexing completed on 2023-03-17 10:43:57
0001 #ifndef PixelEndcapLinkMaker_H
0002 #define PixelEndcapLinkMaker_H
0003
0004 #include <vector>
0005
0006 #include "CalibTracker/SiPixelConnectivity/interface/TRange.h"
0007
0008 class PixelModuleName;
0009 class PixelEndcapName;
0010 #include "CondFormats/SiPixelObjects/interface/PixelFEDCabling.h"
0011 #include "CondFormats/SiPixelObjects/interface/PixelFEDLink.h"
0012 #include <cstdint>
0013
0014 class PixelEndcapLinkMaker {
0015 public:
0016 typedef sipixelobjects::PixelFEDCabling PixelFEDCabling;
0017 typedef sipixelobjects::PixelFEDLink PixelFEDLink;
0018 typedef sipixelobjects::PixelROC PixelROC;
0019
0020 typedef std::vector<PixelModuleName*> Names;
0021 typedef std::vector<uint32_t> DetUnits;
0022 typedef PixelFEDCabling::Links Links;
0023 typedef TRange<int> Range;
0024
0025
0026 PixelEndcapLinkMaker(const PixelFEDCabling* o) : theOwner(o) {}
0027
0028
0029
0030
0031
0032
0033 Links links(const Names& n, const DetUnits& u) const;
0034
0035 private:
0036 const PixelFEDCabling* theOwner;
0037
0038
0039
0040
0041
0042
0043
0044 struct Item {
0045 const PixelEndcapName* name;
0046 uint32_t unit;
0047 Range rocIds;
0048 };
0049
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