9 typedef std::unordered_map<int, SiPixelFedCablingTree::PixelFEDCabling>::const_iterator
IMAP;
12 uint32_t rawDetId)
const 14 std::vector<sipixelobjects::CablingPathToDetUnit>
result;
15 for (
auto im = theFedCablings.begin(); im != theFedCablings.end(); ++im) {
17 for (
unsigned int idxLink = 1; idxLink <= aFed.
numberOfLinks(); idxLink++) {
21 for(
unsigned int idxRoc = 1; idxRoc <= numberOfRocs; idxRoc++) {
23 if (rawDetId == roc->
rawId() ) {
25 result.push_back(path);
34 for (
auto im = theFedCablings.begin(); im != theFedCablings.end(); ++im) {
37 for (
unsigned int idxLink = 1; idxLink <= aFed.
numberOfLinks(); idxLink++) {
41 for(
unsigned int idxRoc = 1; idxRoc <= numberOfRocs; idxRoc++) {
43 if (rawDetId == roc->
rawId() ) {
54 std::unordered_map<uint32_t, unsigned int>
result;
55 for (
auto im = theFedCablings.begin(); im != theFedCablings.end(); ++im) {
56 auto const & aFed = im->second;
57 for (
unsigned int idxLink = 1; idxLink <= aFed.numberOfLinks(); idxLink++) {
58 auto link = aFed.link(idxLink);
60 unsigned int numberOfRocs = link->numberOfROCs();
61 for(
unsigned int idxRoc = 1; idxRoc <= numberOfRocs; idxRoc++) {
62 auto roc = link->roc(idxRoc);
63 result[roc->rawId()]=aFed.id();
71 std::map< uint32_t,std::vector<sipixelobjects::CablingPathToDetUnit> >
result;
72 for (
auto im = theFedCablings.begin(); im != theFedCablings.end(); ++im) {
73 auto const & aFed = im->second;
74 for (
unsigned int idxLink = 1; idxLink <= aFed.numberOfLinks(); idxLink++) {
75 auto link = aFed.link(idxLink);
77 unsigned int numberOfRocs = link->numberOfROCs();
78 for(
unsigned int idxRoc = 1; idxRoc <= numberOfRocs; idxRoc++) {
79 auto roc = link->roc(idxRoc);
81 result[roc->rawId()].push_back(path);
91 theFedCablings[
id] =
f;
96 auto it = theFedCablings.find(
id);
97 return ( it == theFedCablings.end() ) ?
nullptr : & (*it).second;
104 out << theVersion << endl;
105 for(
IMAP it=theFedCablings.begin(); it != theFedCablings.end(); it++) {
106 out << (*it).second.print(depth);
115 std::vector<const PixelFEDCabling *>
result;
116 for (
IMAP im = theFedCablings.begin(); im != theFedCablings.end(); im++) {
117 result.push_back( &(im->second) );
138 if (aLink) roc = aLink->
roc(path.
roc);
150 if (aLink) roc = aLink->
roc(path.
roc);
158 for (
auto im = theFedCablings.begin(); im != theFedCablings.end(); ++im) {
159 if (im->first != static_cast<int>( im->second.id())) {
161 std::cout <<
"PROBLEM WITH FED ID!!" << im->first <<
" vs: "<< im->second.id() << std::endl;
163 im->second.checkLinkNumbering();
std::vector< sipixelobjects::CablingPathToDetUnit > pathToDetUnit(uint32_t rawDetId) const final
const PixelROC * roc(unsigned int id) const
return ROC identified by id. ROC ids are ranged [1,numberOfROCs]
unsigned int id() const
link id
unsigned int numberOfLinks() const
number of links in FED
unsigned int idInLink() const
id of this ROC in parent Link.
void addItem(unsigned int linkId, const PixelROC &roc)
unsigned int numberOfROCs() const
number of ROCs in fed
int checkNumbering() const
std::map< uint32_t, std::vector< sipixelobjects::CablingPathToDetUnit > > det2PathMap() const final
uint32_t rawId() const
return the DetUnit to which this ROC belongs to.
std::unordered_map< int, SiPixelFedCablingTree::PixelFEDCabling >::const_iterator IMAP
const PixelFEDCabling * fed(unsigned int idFed) const
get fed identified by its id
const PixelFEDLink * link(unsigned int id) const
return link identified by id. Link id's are ranged [1, numberOfLinks]
void addFed(const PixelFEDCabling &f)
add cabling for one fed
const sipixelobjects::PixelROC * findItemInFed(const sipixelobjects::CablingPathToDetUnit &path, const PixelFEDCabling *aFed) const
bool pathToDetUnitHasDetUnit(uint32_t rawDetId, unsigned int fedId) const final
std::unordered_map< uint32_t, unsigned int > det2fedMap() const final
void addItem(unsigned int fedId, unsigned int linkId, const sipixelobjects::PixelROC &roc)
std::vector< const PixelFEDCabling * > fedList() const
std::string print(int depth=0) const
const sipixelobjects::PixelROC * findItem(const sipixelobjects::CablingPathToDetUnit &path) const final