LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
geo_types.h File Reference

Definition of data types for geometry description. More...

#include <climits>
#include <cmath>
#include <iosfwd>
#include <limits>
#include <sstream>
#include <string>
#include <tuple>
#include <type_traits>

Go to the source code of this file.

Classes

struct  geo::details::has_parent< T, typename >
 
struct  geo::details::has_parent< T, std::void_t< typename T::ParentID_t > >
 
struct  geo::details::AbsIDtypeStruct< ID, Index, typename >
 
struct  geo::DriftAxis
 
struct  geo::CryostatID
 The data type to uniquely identify a cryostat. More...
 
struct  geo::OpDetID
 The data type to uniquely identify a optical detector. More...
 
struct  geo::TPCID
 The data type to uniquely identify a TPC. More...
 
struct  geo::PlaneID
 The data type to uniquely identify a Plane. More...
 
struct  geo::WireID
 
struct  geo::WireIDIntersection
 
struct  geo::details::AbsIDtypeStruct< ID, Index, typename >
 
struct  geo::details::AbsIDtypeStruct< ID, Index, std::enable_if_t<(Index==ID::Level)> >
 

Namespaces

 geo::details
 
 geo
 ROOT libraries.
 

Typedefs

template<std::size_t Index, typename ID >
using geo::details::AbsIDtype = typename AbsIDtypeStruct< ID, Index >::type
 

Functions

template<typename T >
std::string geo::details::writeToString (T const &value)
 Write the argument into a string. More...
 
template<typename T >
constexpr auto geo::details::index_impl (std::size_t &index)
 
template<typename T >
constexpr auto const geo::details::index_for ()
 
template<std::size_t Index, typename ID >
constexpr auto geo::details::getAbsIDindex (ID const &id)
 
template<std::size_t Index, typename ID >
auto & geo::details::getAbsIDindex (ID &id)
 
std::string geo::SignalTypeName (geo::SigType_t sigType)
 Returns the name of the specified signal type. More...
 
Geometry element IDs
std::ostream & geo::operator<< (std::ostream &out, CryostatID const &cid)
 Generic output of CryostatID to stream. More...
 
std::ostream & geo::operator<< (std::ostream &out, OpDetID const &oid)
 Generic output of OpDetID to stream. More...
 
std::ostream & geo::operator<< (std::ostream &out, TPCID const &tid)
 Generic output of TPCID to stream. More...
 
std::ostream & geo::operator<< (std::ostream &out, PlaneID const &pid)
 Generic output of PlaneID to stream. More...
 
std::ostream & geo::operator<< (std::ostream &out, WireID const &wid)
 Generic output of WireID to stream. More...
 

Variables

template<typename ID >
constexpr bool geo::details::isTopGeoElementID = !has_parent<ID>::value
 Whether ID represents an element on top of the hierarchy. More...
 

Geometry enumerators

enum  geo::Coordinate { geo::Coordinate::X, geo::Coordinate::Y, geo::Coordinate::Z }
 Enumerate the possible plane projections. More...
 
enum  geo::_plane_proj {
  geo::kU, geo::kV, geo::kW, geo::kZ = kW,
  geo::kY, geo::kX, geo::k3D, geo::kUnknown
}
 Enumerate the possible plane projections. More...
 
enum  geo::_plane_orient { geo::kHorizontal, geo::kVertical }
 Enumerate the possible plane projections. More...
 
enum  geo::_plane_sigtype { geo::kInduction, geo::kCollection, geo::kMysteryType }
 Enumerate the possible plane projections. More...
 
enum  geo::DriftSign { geo::DriftSign::Unknown, geo::DriftSign::Positive, geo::DriftSign::Negative }
 Drift sign: positive or negative. More...
 
typedef enum geo::_plane_proj geo::View_t
 Enumerate the possible plane projections. More...
 
typedef enum geo::_plane_orient geo::Orient_t
 Enumerate the possible plane projections. More...
 
typedef enum geo::_plane_sigtype geo::SigType_t
 Enumerate the possible plane projections. More...
 
std::ostream & geo::operator<< (std::ostream &os, Coordinate const coordinate)
 Enumerate the possible plane projections. More...
 
constexpr int geo::to_int (Coordinate const coord) noexcept
 Enumerate the possible plane projections. More...
 
std::ostream & geo::operator<< (std::ostream &os, DriftSign const sign)
 Enumerate the possible plane projections. More...
 
constexpr int geo::to_int (DriftSign const sign)
 Enumerate the possible plane projections. More...
 
bool geo::operator== (DriftAxis const a, DriftAxis const b)
 Enumerate the possible plane projections. More...
 
bool geo::operator!= (DriftAxis const a, DriftAxis const b)
 Enumerate the possible plane projections. More...
 
std::ostream & geo::operator<< (std::ostream &os, DriftAxis const driftAxis)
 Enumerate the possible plane projections. More...
 

ID comparison operators

The result of comparison with invalid IDs is undefined.

template<typename BaseID , typename GeoID >
static constexpr bool geo::is_base_of_strict
 Comparison: the IDs point to the same cryostat (validity is ignored) More...
 
constexpr bool geo::operator== (CryostatID const &a, CryostatID const &b)
 Comparison: the IDs point to the same cryostat (validity is ignored) More...
 
constexpr bool geo::operator!= (CryostatID const &a, CryostatID const &b)
 Comparison: the IDs point to different cryostats (validity is ignored) More...
 
constexpr bool geo::operator< (CryostatID const &a, CryostatID const &b)
 Order cryostats with increasing ID. More...
 
template<typename GeoID >
constexpr std::enable_if_t< is_base_of_strict< CryostatID, GeoID >, bool > geo::operator== (GeoID const &a, GeoID const &b)
 Comparison: the IDs point to same optical detector (validity is ignored) More...
 
template<typename GeoID >
constexpr std::enable_if_t< is_base_of_strict< CryostatID, GeoID >, bool > geo::operator!= (GeoID const &a, GeoID const &b)
 Comparison: IDs point to different optical detectors (validity is ignored) More...
 
template<typename GeoID >
constexpr std::enable_if_t< is_base_of_strict< CryostatID, GeoID >, bool > geo::operator< (GeoID const &a, GeoID const &b)
 Order OpDetID in increasing Cryo, then OpDet. More...
 

Detailed Description

Definition of data types for geometry description.

Author
Brian Rebel (brebe.nosp@m.l@fn.nosp@m.al.go.nosp@m.v)
See also
larcoreobj/SimpleTypesAndConstants/geo_types.cxx

This library depends only on standard C++.

Definition in file geo_types.h.