File indexing completed on 2024-04-06 11:56:05
0001 #ifndef Alignment_CommonAlignment_Counters_H
0002 #define Alignment_CommonAlignment_Counters_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <map>
0023 #include <functional>
0024
0025 #include "Alignment/CommonAlignment/interface/StructureType.h"
0026 #include "Alignment/CommonAlignment/interface/AlignableObjectId.h"
0027 #include "CondFormats/Alignment/interface/Definitions.h"
0028
0029 class TrackerTopology;
0030 namespace align {
0031 using Counter = std::function<unsigned int(align::ID)>;
0032 }
0033
0034 class AlignableIndexer {
0035 public:
0036
0037 AlignableIndexer() = default;
0038 AlignableIndexer(const AlignableIndexer&) = default;
0039 AlignableIndexer& operator=(const AlignableIndexer&) = default;
0040 AlignableIndexer(AlignableIndexer&&) = default;
0041 AlignableIndexer& operator=(AlignableIndexer&&) = default;
0042 virtual ~AlignableIndexer() = default;
0043
0044
0045 virtual align::Counter get(align::StructureType, const AlignableObjectId&) const;
0046
0047 protected:
0048 std::map<align::StructureType, align::Counter> theCounters;
0049 };
0050
0051 #endif