CMS 3D CMS Logo

AlignableIndexer.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignment_Counters_H
2 #define Alignment_CommonAlignment_Counters_H
3 
22 #include <map>
23 #include <functional>
24 
28 
29 class TrackerTopology;
30 namespace align {
31  using Counter = std::function<unsigned int(align::ID)>;
32 }
33 
35 public:
37  AlignableIndexer() = default;
38  AlignableIndexer(const AlignableIndexer&) = default;
39  AlignableIndexer& operator=(const AlignableIndexer&) = default;
41  AlignableIndexer& operator=(AlignableIndexer&&) = default;
42  virtual ~AlignableIndexer() = default;
43 
45  virtual align::Counter get(align::StructureType, const AlignableObjectId&) const;
46 
47 protected:
48  std::map<align::StructureType, align::Counter> theCounters;
49 };
50 
51 #endif
std::map< align::StructureType, align::Counter > theCounters
std::function< unsigned int(align::ID)> Counter
Allows conversion between type and name, and vice-versa.