CMS 3D CMS Logo

TrackerDetToDTCELinkCablingMap.h
Go to the documentation of this file.
1 #ifndef CondFormats_Phase2TrackerDTC_TrackerDetToDTCELinkCablingMap_h
2 #define CondFormats_Phase2TrackerDTC_TrackerDetToDTCELinkCablingMap_h
3 
4 // -*- C++ -*-
5 //
6 // Package: CondFormats/Phase2TrackerDTC
7 // Class: TrackerDetToDTCELinkCablingMap
8 //
16 //
17 // Original Author: Luigi Calligaris, SPRACE, Sao Paulo, BR
18 // Created : Wed, 27 Feb 2019 21:41:13 GMT
19 //
20 //
21 
22 #include <vector>
23 #include <unordered_map>
24 #include <cstdint>
25 
28 
30 {
31  public:
34 
36  std::unordered_map<DTCELinkId, uint32_t>::const_iterator dtcELinkIdToDetId(DTCELinkId const&) const;
37 
39  std::pair< std::unordered_multimap<uint32_t, DTCELinkId>::const_iterator, std::unordered_multimap<uint32_t, DTCELinkId>::const_iterator > detIdToDTCELinkId(uint32_t const) const;
40 
42  bool knowsDTCELinkId(DTCELinkId const&) const;
43 
45  bool knowsDetId(uint32_t) const;
46 
47  // IMPORTANT: The following information is not stored, to preserve space in memory.
48  // As these vectors are generated each time the functions are called, you are encouraged to
49  // either cache the results or avoid calling them in hot loops.
50  // NOTE: This vectors are unsorted
51 
53  std::vector<DTCELinkId> getKnownDTCELinkIds() const;
54 
56  std::vector<uint32_t> getKnownDetIds() const;
57 
58 
60  void insert(DTCELinkId const&, uint32_t const);
61 
63  void clear();
64 
65  private:
66  std::unordered_multimap <uint32_t, DTCELinkId> cablingMapDetIdToDTCELinkId_;
67  std::unordered_map <DTCELinkId, uint32_t> cablingMapDTCELinkIdToDetId_;
68 
70 };
71 
72 #endif // end CondFormats_Phase2TrackerDTC_TrackerDetToDTCELinkCablingMap_h
std::unordered_map< DTCELinkId, uint32_t >::const_iterator dtcELinkIdToDetId(DTCELinkId const &) const
Resolves the raw DetId of the detector connected to the eLink identified by a DTCELinkId.
std::vector< DTCELinkId > getKnownDTCELinkIds() const
Returns a vector containing all elink DTCELinkId nown to the map.
bool knowsDetId(uint32_t) const
Returns true if the cabling map has a record corresponding to an eLink identified by the given DTCELi...
void insert(DTCELinkId const &, uint32_t const)
Inserts in the cabling map a record corresponding to the connection of an eLink identified by the giv...
bool knowsDTCELinkId(DTCELinkId const &) const
Returns true if the cabling map has a record corresponding to a detector identified by the given raw ...
std::vector< uint32_t > getKnownDetIds() const
Returns a vector containing all detector DetId known to the map.
std::pair< std::unordered_multimap< uint32_t, DTCELinkId >::const_iterator, std::unordered_multimap< uint32_t, DTCELinkId >::const_iterator > detIdToDTCELinkId(uint32_t const) const
Resolves one or more DTCELinkId of eLinks which are connected to the detector identified by the given...
#define COND_SERIALIZABLE
Definition: Serializable.h:38
std::unordered_map< DTCELinkId, uint32_t > cablingMapDTCELinkIdToDetId_
std::unordered_multimap< uint32_t, DTCELinkId > cablingMapDetIdToDTCELinkId_