1 #ifndef LARCOREALG_GEOMETRY_DETAILS_GEOMETRY_ITERATOR_MAKER_H 2 #define LARCOREALG_GEOMETRY_DETAILS_GEOMETRY_ITERATOR_MAKER_H 10 template <
typename BaseID,
typename GeoID>
12 !std::is_same<BaseID, GeoID>{}};
14 template <
typename T,
typename =
void>
16 using ID_t =
typename T::ID_t;
21 template <
typename Geom>
27 template <
typename Geom>
33 template <
typename Geom>
39 template <
typename Geom,
typename BaseID>
42 static_assert(is_base_of_strict<BaseID, ID_t>);
46 template <
typename Geom,
typename BaseID>
49 static_assert(is_base_of_strict<BaseID, ID_t>);
53 template <
typename Geom,
typename BaseID>
66 template <
typename Geom>
69 return {geom, geom->template GetBeginID<T>()};
72 template <
typename Geom>
75 return {geom, geom->template GetEndID<T>()};
78 template <
typename Geom>
84 template <
typename Geom,
typename BaseID>
87 static_assert(is_base_of_strict<BaseID, T>);
88 return {geom, geom->template GetBeginID<T>(id)};
91 template <
typename Geom,
typename BaseID>
94 static_assert(is_base_of_strict<BaseID, T>);
95 return {geom, geom->template GetEndID<T>(id)};
98 template <
typename Geom,
typename BaseID>
105 template <
typename T>
108 template <
typename T>
111 template <
typename T>
An object with a begin and end iterator.
static end_type create_end(Geom const *geom, BaseID const &id)
Base forward iterator browsing all cryostat IDs in the detector.
Simple class with a begin and an end.
static end_type create_end(Geom const *geom)
static end_type create_end(Geom const *geom, BaseID const &id)
static range_type create_range(Geom const *geom, BaseID const &id)
typename IteratorMaker< T >::begin_type begin_type
static begin_type create_begin(Geom const *geom, BaseID const &id)
static range_type create_range(Geom const *geom)
static begin_type create_begin(Geom const *geom)
static constexpr bool is_base_of_strict
static range_type create_range(Geom const *geom, BaseID const &id)
typename IteratorMaker< T >::end_type end_type
static begin_type create_begin(Geom const *geom, BaseID const &id)
static begin_type create_begin(Geom const *geom)
static end_type create_end(Geom const *geom)
Forward iterator browsing all geometry elements in the detector.
typename IteratorMaker< T >::range_type range_type
static range_type create_range(Geom const *geom)