LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Typedefs | |
template<typename T > | |
using | begin_type = typename IteratorMaker< T >::begin_type |
template<typename T > | |
using | end_type = typename IteratorMaker< T >::end_type |
template<typename T > | |
using | range_type = typename IteratorMaker< T >::range_type |
template<typename LocalID > | |
using | id_iterator = id_iterator_base< LocalID, LocalID > |
template<typename Element > | |
using | element_iterator_for = details::geometry_element_iterator< Element, details::id_iterator< typename Element::ID_t >> |
template<std::size_t Index, typename ID > | |
using | AbsIDtype = typename AbsIDtypeStruct< ID, Index >::type |
template<std::size_t UpIndex, typename ID > | |
using | RelIDtype = typename RelIDtypeStruct< ID, UpIndex >::type |
Functions | |
template<std::size_t Levels = 4U> | |
static std::array< unsigned int, Levels > | extractMaxGeometryElements (geo::GeometryData_t::CryostatList_t const &Cryostats) |
Extracts the maximum number of elements per type. More... | |
template<typename GEOIT > | |
std::enable_if_t< std::is_base_of_v< geometry_iterator_base, GEOIT >, std::ostream & > | operator<< (std::ostream &out, GEOIT const &it) |
Stream output for all geometry ID iterator types: prints the pointed ID. More... | |
unsigned int | NSiblings (GeometryCore const *geom, CryostatID const &id) |
unsigned int | NSiblings (GeometryCore const *geom, TPCID const &id) |
unsigned int | NSiblings (GeometryCore const *geom, PlaneID const &id) |
unsigned int | NSiblings (GeometryCore const *geom, WireID const &id) |
unsigned int | NSiblings (GeometryCore const *geom, readout::TPCsetID const &id) |
unsigned int | NSiblings (GeometryCore const *geom, readout::ROPID const &id) |
CryostatGeo const * | getElementPtr (GeometryCore const *geom, CryostatID const &id) |
TPCGeo const * | getElementPtr (GeometryCore const *geom, TPCID const &id) |
PlaneGeo const * | getElementPtr (GeometryCore const *geom, PlaneID const &id) |
WireGeo const * | getElementPtr (GeometryCore const *geom, WireID const &id) |
bool | validElement (GeometryCore const *geom, CryostatID const &id) |
bool | validElement (GeometryCore const *geom, TPCID const &id) |
bool | validElement (GeometryCore const *geom, PlaneID const &id) |
bool | validElement (GeometryCore const *geom, WireID const &id) |
template<typename T > | |
auto | static_less (T a, T b) |
Function translation of std::less . More... | |
template<std::size_t N, typename T > | |
auto | initializerListToArray (std::initializer_list< T > values) |
Returns a STL array of size N filled with values from the argument. More... | |
template<typename T > | |
std::string | writeToString (T const &value) |
Write the argument into a string. More... | |
template<typename ID > | |
constexpr std::size_t | geoElementLevel () |
template<std::size_t Index, typename ID > | |
constexpr auto | getAbsIDindex (ID const &id) |
template<std::size_t Index, typename ID > | |
auto & | getAbsIDindex (ID &id) |
template<std::size_t UpIndex, typename ID > | |
auto | getRelIDindex (ID const &id) |
Variables | |
template<typename BaseID , typename GeoID > | |
static constexpr bool | is_base_of_strict |
template<typename ID > | |
constexpr bool | isTopGeoElementID = std::is_void_v<typename ID::ParentID_t> |
Whether ID represents an element on top of the hierarchy. More... | |
The purpose of this file is to enable the separation of the geometry iterators from the GeometryCore header. The iterators are defined before the GeometryCore class is defined, and because the iterators require the GeometryCore object as part of the implementation, there is a circularity that must be broken.
To do this, we create free functions that call member functions of the GeometryCore object in a separate compilation unit. The functions are resolved at link-time, avoiding the circularity.
N.B. If it should be decided that the functionalities here should be templated (i.e. more than just GeometryCore might support the concept), then the circularity would be removed because GeometryCore woould become a dependent type.
using geo::details::AbsIDtype = typedef typename AbsIDtypeStruct<ID, Index>::type |
Definition at line 47 of file geo_types.h.
using geo::details::begin_type = typedef typename IteratorMaker<T>::begin_type |
Definition at line 106 of file geometry_iterator_maker.h.
using geo::details::element_iterator_for = typedef details::geometry_element_iterator<Element, details::id_iterator<typename Element::ID_t>> |
Definition at line 382 of file geometry_iterators.h.
using geo::details::end_type = typedef typename IteratorMaker<T>::end_type |
Definition at line 109 of file geometry_iterator_maker.h.
using geo::details::id_iterator = typedef id_iterator_base<LocalID, LocalID> |
Definition at line 255 of file geometry_iterators.h.
using geo::details::range_type = typedef typename IteratorMaker<T>::range_type |
Definition at line 112 of file geometry_iterator_maker.h.
using geo::details::RelIDtype = typedef typename RelIDtypeStruct<ID, UpIndex>::type |
Definition at line 53 of file geo_types.h.
|
static |
Extracts the maximum number of elements per type.
Levels | the number of detector elements to discover |
Cryostats | the sorted list of cryostats in the detector |
The returned array includes:
[0]
: number of cryostats[1]
: maximum number of TPCs in any of the cryostats (enabled only if Levels
is 2
or higher)[2]
: maximum number of wire planes in any of the TPCs (enabled only if Levels
is 3
or higher)[3]
: maximum number of wires in any of the wire planes (enabled only if Levels
is 4
) constexpr std::size_t geo::details::geoElementLevel | ( | ) |
Definition at line 35 of file geo_types.h.
constexpr auto geo::details::getAbsIDindex | ( | ID const & | id | ) |
Definition at line 56 of file geo_types.h.
auto& geo::details::getAbsIDindex | ( | ID & | id | ) |
Definition at line 66 of file geo_types.h.
CryostatGeo const * geo::details::getElementPtr | ( | GeometryCore const * | geom, |
CryostatID const & | id | ||
) |
Definition at line 36 of file helpers.cxx.
References geo::GeometryCore::GetElementPtr().
Referenced by geo::details::geometry_element_iterator< Element, GEOIDITER >::get(), and validElement().
TPCGeo const * geo::details::getElementPtr | ( | GeometryCore const * | geom, |
TPCID const & | id | ||
) |
Definition at line 42 of file helpers.cxx.
References geo::GeometryCore::GetElementPtr().
PlaneGeo const * geo::details::getElementPtr | ( | GeometryCore const * | geom, |
PlaneID const & | id | ||
) |
Definition at line 48 of file helpers.cxx.
References geo::GeometryCore::GetElementPtr().
WireGeo const * geo::details::getElementPtr | ( | GeometryCore const * | geom, |
WireID const & | id | ||
) |
Definition at line 54 of file helpers.cxx.
References geo::GeometryCore::GetElementPtr().
auto geo::details::getRelIDindex | ( | ID const & | id | ) |
Definition at line 76 of file geo_types.h.
auto geo::details::initializerListToArray | ( | std::initializer_list< T > | values | ) |
Returns a STL array of size N
filled with values
from the argument.
Definition at line 394 of file GeometryIDmapper.h.
unsigned int geo::details::NSiblings | ( | GeometryCore const * | geom, |
CryostatID const & | id | ||
) |
Definition at line 6 of file helpers.cxx.
References geo::GeometryCore::NSiblingElements().
Referenced by geo::details::id_iterator_base< CryostatID, GEOID >::id_iterator_base(), geo::details::id_iterator_base< LocalID, GEOID >::id_iterator_base(), and geo::details::id_iterator_base< LocalID, GEOID >::next().
unsigned int geo::details::NSiblings | ( | GeometryCore const * | geom, |
TPCID const & | id | ||
) |
Definition at line 11 of file helpers.cxx.
References geo::GeometryCore::NSiblingElements().
unsigned int geo::details::NSiblings | ( | GeometryCore const * | geom, |
PlaneID const & | id | ||
) |
Definition at line 16 of file helpers.cxx.
References geo::GeometryCore::NSiblingElements().
unsigned int geo::details::NSiblings | ( | GeometryCore const * | geom, |
WireID const & | id | ||
) |
Definition at line 21 of file helpers.cxx.
References geo::GeometryCore::NSiblingElements().
unsigned int geo::details::NSiblings | ( | GeometryCore const * | geom, |
readout::TPCsetID const & | id | ||
) |
Definition at line 26 of file helpers.cxx.
References geo::GeometryCore::NSiblingElements().
unsigned int geo::details::NSiblings | ( | GeometryCore const * | geom, |
readout::ROPID const & | id | ||
) |
Definition at line 31 of file helpers.cxx.
References geo::GeometryCore::NSiblingElements().
std::enable_if_t<std::is_base_of_v<geometry_iterator_base, GEOIT>, std::ostream&> geo::details::operator<< | ( | std::ostream & | out, |
GEOIT const & | it | ||
) |
Stream output for all geometry ID iterator types: prints the pointed ID.
Definition at line 259 of file geometry_iterators.h.
auto geo::details::static_less | ( | T | a, |
T | b | ||
) |
Function translation of std::less
.
Definition at line 60 of file DriftPartitions.h.
bool geo::details::validElement | ( | GeometryCore const * | geom, |
CryostatID const & | id | ||
) |
Definition at line 60 of file helpers.cxx.
References getElementPtr().
Referenced by geo::details::geometry_element_iterator< Element, GEOIDITER >::operator bool().
bool geo::details::validElement | ( | GeometryCore const * | geom, |
TPCID const & | id | ||
) |
Definition at line 65 of file helpers.cxx.
References getElementPtr().
bool geo::details::validElement | ( | GeometryCore const * | geom, |
PlaneID const & | id | ||
) |
Definition at line 70 of file helpers.cxx.
References getElementPtr().
bool geo::details::validElement | ( | GeometryCore const * | geom, |
WireID const & | id | ||
) |
Definition at line 75 of file helpers.cxx.
References getElementPtr().
|
inline |
Write the argument into a string.
Definition at line 842 of file geo_types.h.
References value.
Referenced by geo::CryostatID::markInvalid(), geo::OpDetID::OpDetID(), geo::PlaneID::PlaneID(), geo::TPCID::TPCID(), geo::WireID::WireID(), and readout::details::writeToString().
|
static |
Definition at line 11 of file geometry_iterator_maker.h.
constexpr bool geo::details::isTopGeoElementID = std::is_void_v<typename ID::ParentID_t> |
Whether ID
represents an element on top of the hierarchy.
Definition at line 32 of file geo_types.h.