23 #include <boost/container/flat_map.hpp>
24 #include <boost/container/flat_set.hpp>
26 namespace ActsExamples {
44 const std::pair<Acts::GeometryIdentifier, T>& mapItem)
const {
51 return thing.geometryId();
55 inline auto operator()(std::reference_wrapper<T> thing)
const
57 return thing.get().geometryId();
65 template <
typename Left,
typename Right>
85 boost::container::flat_multiset<T, detail::CompareGeometryId>;
100 template <
typename T>
105 template <
typename T>
110 auto beg = std::lower_bound(container.begin(), container.end(),
cmp,
123 template <
typename T>
130 template <
typename T>
136 auto beg = std::lower_bound(container.begin(), container.end(),
cmp,
149 template <
typename T>
156 template <
typename T>
160 return makeRange(container.equal_range(geoId));
164 template <
typename T>
191 template <
typename T>
192 inline Range<typename GeometryIdMultiset<T>::const_iterator>
195 assert((geoId.
boundary() == 0
u) and
"Boundary component must be zero");
196 assert((geoId.
approach() == 0
u) and
"Approach component must be zero");
200 }
else if (geoId.
layer() != 0
u) {
202 }
else if (geoId.
volume() != 0
u) {
205 return makeRange(container.begin(), container.end());
210 template <
typename T>
211 inline GroupBy<typename GeometryIdMultiset<T>::const_iterator,
212 detail::GeometryIdGetter>
221 template <
typename T>