Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
geo::WireID Struct Reference

#include <geo_types.h>

Inheritance diagram for geo::WireID:
geo::PlaneID geo::TPCID geo::CryostatID

Public Types

using WireID_t = unsigned int
 Type for the ID number. More...
 
using ThisID_t = WireID
 Type of this ID. More...
 
using ParentID_t = PlaneID
 Type of the parent ID. More...
 
template<std::size_t L>
using ID_t = details::AbsIDtype< L, ThisID_t >
 Type of the ID with the specified level L. More...
 
template<std::size_t A>
using UpperID_t = details::RelIDtype< A, ThisID_t >
 Type of the ID A levels above this one. More...
 
- Public Types inherited from geo::PlaneID
using PlaneID_t = unsigned int
 Type for the ID number. More...
 
using ThisID_t = PlaneID
 Type of this ID. More...
 
using ParentID_t = TPCID
 Type of the parent ID. More...
 
template<std::size_t L>
using ID_t = details::AbsIDtype< L, ThisID_t >
 Type of the ID with the specified level L. More...
 
template<std::size_t A>
using UpperID_t = details::RelIDtype< A, ThisID_t >
 Type of the ID A levels above this one. More...
 
- Public Types inherited from geo::TPCID
using TPCID_t = unsigned int
 Type for the ID number. More...
 
using ThisID_t = TPCID
 Type of this ID. More...
 
using ParentID_t = CryostatID
 Type of the parent ID. More...
 
template<std::size_t L>
using ID_t = details::AbsIDtype< L, ThisID_t >
 Type of the ID with the specified level L. More...
 
template<std::size_t A>
using UpperID_t = details::RelIDtype< A, ThisID_t >
 Type of the ID A levels above this one. More...
 
- Public Types inherited from geo::CryostatID
using CryostatID_t = unsigned int
 Type for the ID number. More...
 
using ThisID_t = CryostatID
 Type of this ID. More...
 
using ParentID_t = void
 Type of the parent ID (none!). More...
 
template<std::size_t L>
using ID_t = details::AbsIDtype< L, ThisID_t >
 Type of the ID with the specified level L. More...
 
template<std::size_t A>
using UpperID_t = details::RelIDtype< A, ThisID_t >
 Type of the ID A levels above this one. More...
 

Public Member Functions

constexpr WireID ()=default
 Default constructor: an invalid TPC ID. More...
 
constexpr WireID (PlaneID const &planeid, WireID_t w)
 Constructor: wire with index w in the plane identified by planeid. More...
 
constexpr WireID (CryostatID_t c, TPCID_t t, PlaneID_t p, WireID_t w)
 
constexpr auto const & deepestIndex () const
 Returns the value of the deepest ID available (wire's). More...
 
auto & deepestIndex ()
 Returns the deepest ID available (wire's). More...
 
constexpr ParentID_t const & parentID () const
 Return the parent ID of this one (a plane ID). More...
 
ParentID_tparentID ()
 Return the parent ID of this one (a plane ID). More...
 
template<std::size_t Index = 0U>
constexpr auto getIndex () const
 Returns the index level Index of this type. More...
 
template<std::size_t Index = 0U>
auto & writeIndex ()
 Returns the index level Index of this type. More...
 
template<std::size_t Above>
constexpr auto getRelIndex () const
 Returns the index Above levels higher than Level. More...
 
constexpr WireID const & asWireID () const
 Conversion to WireID (for convenience of notation). More...
 
WireIDasWireID ()
 Conversion to WireID (for convenience of notation). More...
 
constexpr WireID const & asConstWireID ()
 Conversion to WireID (for convenience of notation). More...
 
constexpr int cmp (WireID const &other) const
 Returns < 0 if this is smaller than tpcid, 0 if equal, > 0 if larger. More...
 
constexpr PlaneID const & planeID () const
 
std::string toString () const
 Human-readable representation of the wire ID. More...
 
 operator std::string () const
 
- Public Member Functions inherited from geo::PlaneID
constexpr PlaneID ()=default
 Default constructor: an invalid plane ID. More...
 
constexpr PlaneID (TPCID const &tpcid, PlaneID_t p)
 Constructor: plane with index p in the TPC identified by tpcid. More...
 
constexpr PlaneID (CryostatID_t c, TPCID_t t, PlaneID_t p)
 Constructor: plane with index p in the cryostat index c, TPC index t. More...
 
constexpr auto const & deepestIndex () const
 Returns the value of the deepest ID available (plane's). More...
 
auto & deepestIndex ()
 Returns the deepest ID available (plane's). More...
 
constexpr ParentID_t const & parentID () const
 Return the parent ID of this one (a TPC ID). More...
 
ParentID_tparentID ()
 Return the parent ID of this one (a TPC ID). More...
 
template<std::size_t Index = 0U>
constexpr auto getIndex () const
 Returns the index level Index of this type. More...
 
template<std::size_t Index = 0U>
auto & writeIndex ()
 Returns the index level Index of this type. More...
 
template<std::size_t Above>
constexpr auto getRelIndex () const
 Returns the index Above levels higher than Level. More...
 
constexpr PlaneID const & asPlaneID () const
 Conversion to PlaneID (for convenience of notation). More...
 
PlaneIDasPlaneID ()
 Conversion to PlaneID (for convenience of notation). More...
 
constexpr PlaneID const & asConstPlaneID ()
 Conversion to PlaneID (for convenience of notation). More...
 
constexpr int cmp (PlaneID const &other) const
 Returns < 0 if this is smaller than other, 0 if equal, > 0 if larger. More...
 
std::string toString () const
 Human-readable representation of the plane ID. More...
 
 operator std::string () const
 
- Public Member Functions inherited from geo::TPCID
constexpr TPCID ()=default
 Default constructor: an invalid TPC ID. More...
 
constexpr TPCID (CryostatID const &cryoid, TPCID_t t)
 Constructor: TPC with index t in the cryostat identified by cryoid. More...
 
constexpr TPCID (CryostatID_t c, TPCID_t t)
 Constructor: TPC with index t in the cryostat index c. More...
 
constexpr auto const & deepestIndex () const
 Returns the value of the deepest ID available (TPC's). More...
 
auto & deepestIndex ()
 Returns the deepest ID available (TPC's). More...
 
constexpr ParentID_t const & parentID () const
 Return the parent ID of this one (a cryostat ID). More...
 
ParentID_tparentID ()
 Return the parent ID of this one (a cryostat ID). More...
 
template<std::size_t Index = 0U>
constexpr auto getIndex () const
 Returns the index level Index of this type. More...
 
template<std::size_t Index = 0U>
auto & writeIndex ()
 Returns the index level Index of this type. More...
 
template<std::size_t Above>
constexpr auto getRelIndex () const
 Returns the index Above levels higher than Level. More...
 
constexpr TPCID const & asTPCID () const
 Conversion to TPCID (for convenience of notation). More...
 
TPCIDasTPCID ()
 Conversion to TPCID (for convenience of notation). More...
 
constexpr TPCID const & asConstTPCID ()
 Conversion to TPCID (for convenience of notation). More...
 
constexpr int cmp (TPCID const &other) const
 Returns < 0 if this is smaller than other, 0 if equal, > 0 if larger. More...
 
std::string toString () const
 Human-readable representation of the TPC ID. More...
 
 operator std::string () const
 
- Public Member Functions inherited from geo::CryostatID
constexpr CryostatID ()=default
 Default constructor: an invalid cryostat. More...
 
constexpr CryostatID (CryostatID_t c)
 Constructor: valid ID of cryostat with index c. More...
 
constexpr CryostatID (CryostatID_t c, bool valid)
 Constructor: valid ID of cryostat with index c. More...
 
constexpr auto const & deepestIndex () const
 Returns the value of the deepest ID available (cryostat's). More...
 
auto & deepestIndex ()
 Returns the deepest ID available (cryostat's). More...
 
constexpr ParentID_t parentID () const
 Return the parent ID of this one (void). More...
 
ParentID_t parentID ()
 Return the parent ID of this one (void). More...
 
template<std::size_t Index = 0U>
constexpr auto getIndex () const
 Returns the index level Index of this type. More...
 
template<std::size_t Index = 0U>
auto & writeIndex ()
 Returns the index level Index of this type. More...
 
template<std::size_t Above>
constexpr auto getRelIndex () const
 Returns the index Above levels higher than Level. More...
 
constexpr int cmp (CryostatID const &other) const
 Returns < 0 if this is smaller than other, 0 if equal, > 0 if larger. More...
 
constexpr CryostatID const & asCryostatID () const
 Conversion to CryostatID (for convenience of notation). More...
 
CryostatIDasCryostatID ()
 Conversion to CryostatID (for convenience of notation). More...
 
constexpr CryostatID const & asConstCryostatID ()
 Conversion to CryostatID (for convenience of notation). More...
 
constexpr operator bool () const
 Returns true if the ID is valid. More...
 
constexpr bool operator! () const
 Returns true if the ID is not valid. More...
 
void setValidity (bool valid)
 Sets the validity of the ID. More...
 
void markValid ()
 Sets the ID as valid. More...
 
void markInvalid ()
 Sets the ID as invalid. More...
 
std::string toString () const
 Human-readable representation of the cryostat ID. More...
 
 operator std::string () const
 

Static Public Member Functions

static constexpr WireID_t getInvalidID ()
 Return the value of the invalid wire ID as a r-value. More...
 
- Static Public Member Functions inherited from geo::PlaneID
static constexpr PlaneID_t getInvalidID ()
 Return the value of the invalid plane ID as a r-value. More...
 
- Static Public Member Functions inherited from geo::TPCID
static constexpr TPCID_t getInvalidID ()
 Return the value of the invalid TPC ID as a r-value. More...
 
- Static Public Member Functions inherited from geo::CryostatID
static constexpr CryostatID_t getInvalidID ()
 Return the value of the invalid ID as a r-value. More...
 
template<typename T >
static constexpr int ThreeWayComparison (T a, T b)
 Returns < 0 if a < b, 0 if a == b, > 0 if a > b. More...
 

Public Attributes

WireID_t Wire = InvalidID
 Index of the wire within its plane. More...
 
- Public Attributes inherited from geo::PlaneID
PlaneID_t Plane = InvalidID
 Index of the plane within its TPC. More...
 
- Public Attributes inherited from geo::TPCID
TPCID_t TPC = InvalidID
 Index of the TPC within its cryostat. More...
 
- Public Attributes inherited from geo::CryostatID
bool isValid = false
 Whether this ID points to a valid element. More...
 
CryostatID_t Cryostat = InvalidID
 Index of cryostat. More...
 

Static Public Attributes

static constexpr WireID_t InvalidID = std::numeric_limits<WireID_t>::max()
 Special code for an invalid ID. More...
 
static constexpr auto Level = geo::ElementLevel::Wire
 Level of this element. More...
 
- Static Public Attributes inherited from geo::PlaneID
static constexpr PlaneID_t InvalidID = std::numeric_limits<PlaneID_t>::max()
 Special code for an invalid ID. More...
 
static constexpr auto Level = geo::ElementLevel::Plane
 Level of this element. More...
 
- Static Public Attributes inherited from geo::TPCID
static constexpr TPCID_t InvalidID = std::numeric_limits<TPCID_t>::max()
 Special code for an invalid ID. More...
 
static constexpr auto Level = geo::ElementLevel::TPC
 Level of this element. More...
 
- Static Public Attributes inherited from geo::CryostatID
static constexpr CryostatID_t InvalidID = std::numeric_limits<CryostatID_t>::max()
 Special code for an invalid ID. More...
 
static constexpr auto Level = geo::ElementLevel::Cryostat
 Level of this element. More...
 

Detailed Description

Definition at line 560 of file geo_types.h.

Member Typedef Documentation

template<std::size_t L>
using geo::WireID::ID_t = details::AbsIDtype<L, ThisID_t>

Type of the ID with the specified level L.

Definition at line 568 of file geo_types.h.

Type of the parent ID.

Definition at line 564 of file geo_types.h.

Type of this ID.

Definition at line 563 of file geo_types.h.

template<std::size_t A>
using geo::WireID::UpperID_t = details::RelIDtype<A, ThisID_t>

Type of the ID A levels above this one.

Definition at line 572 of file geo_types.h.

using geo::WireID::WireID_t = unsigned int

Type for the ID number.

Definition at line 561 of file geo_types.h.

Constructor & Destructor Documentation

constexpr geo::WireID::WireID ( )
default

Default constructor: an invalid TPC ID.

constexpr geo::WireID::WireID ( PlaneID const &  planeid,
WireID_t  w 
)
inline

Constructor: wire with index w in the plane identified by planeid.

Definition at line 586 of file geo_types.h.

587  : PlaneID(planeid), Wire(w) {}
WireID_t Wire
Index of the wire within its plane.
Definition: geo_types.h:580
constexpr PlaneID()=default
Default constructor: an invalid plane ID.
constexpr geo::WireID::WireID ( CryostatID_t  c,
TPCID_t  t,
PlaneID_t  p,
WireID_t  w 
)
inline

Constructor: wire with index w in cryostat index c, TPC index t, plane index p

Definition at line 591 of file geo_types.h.

591  :
592  PlaneID(c, t, p), Wire(w) {}
WireID_t Wire
Index of the wire within its plane.
Definition: geo_types.h:580
constexpr PlaneID()=default
Default constructor: an invalid plane ID.
p
Definition: test.py:223

Member Function Documentation

constexpr WireID const& geo::WireID::asConstWireID ( )
inline

Conversion to WireID (for convenience of notation).

Definition at line 624 of file geo_types.h.

624 { return *this; }
constexpr WireID const& geo::WireID::asWireID ( ) const
inline

Conversion to WireID (for convenience of notation).

Definition at line 620 of file geo_types.h.

620 { return *this; }
WireID& geo::WireID::asWireID ( )
inline

Conversion to WireID (for convenience of notation).

Definition at line 622 of file geo_types.h.

622 { return *this; }
constexpr int geo::WireID::cmp ( WireID const &  other) const
inline

Returns < 0 if this is smaller than tpcid, 0 if equal, > 0 if larger.

Definition at line 627 of file geo_types.h.

628  {
629  int cmp_res = PlaneID::cmp(other);
630  if (cmp_res == 0) // same plane: compare wires
631  return ThreeWayComparison(deepestIndex(), other.deepestIndex());
632  else // return the order of wire
633  return cmp_res;
634  } // cmp()
static constexpr int ThreeWayComparison(T a, T b)
Returns < 0 if a < b, 0 if a == b, > 0 if a > b.
Definition: geo_types.h:290
constexpr auto const & deepestIndex() const
Returns the value of the deepest ID available (wire&#39;s).
Definition: geo_types.h:602
constexpr int cmp(PlaneID const &other) const
Returns < 0 if this is smaller than other, 0 if equal, > 0 if larger.
Definition: geo_types.h:541
constexpr auto const& geo::WireID::deepestIndex ( ) const
inline

Returns the value of the deepest ID available (wire's).

Definition at line 602 of file geo_types.h.

602 { return Wire; }
WireID_t Wire
Index of the wire within its plane.
Definition: geo_types.h:580
auto& geo::WireID::deepestIndex ( )
inline

Returns the deepest ID available (wire's).

Definition at line 604 of file geo_types.h.

604 { return Wire; }
WireID_t Wire
Index of the wire within its plane.
Definition: geo_types.h:580
template<std::size_t Index>
constexpr auto geo::WireID::getIndex ( ) const

Returns the index level Index of this type.

Definition at line 973 of file geo_types.h.

973  {
974  static_assert
975  (Index <= Level, "This ID type does not have the requested Index level.");
976  return details::getAbsIDindex<Index>(*this);
977 } // geo::WireID::getIndex() const
unsigned int Index
static constexpr auto Level
Level of this element.
Definition: geo_types.h:641
static constexpr WireID_t geo::WireID::getInvalidID ( )
inlinestatic

Return the value of the invalid wire ID as a r-value.

Definition at line 644 of file geo_types.h.

644 { return WireID::InvalidID; }
static constexpr WireID_t InvalidID
Special code for an invalid ID.
Definition: geo_types.h:577
template<std::size_t Above>
constexpr auto geo::WireID::getRelIndex ( ) const

Returns the index Above levels higher than Level.

Definition at line 987 of file geo_types.h.

987  {
988  static_assert
989  (Above <= Level, "This ID type does not have the requested Index level.");
990  return getIndex<Level - Above>();
991 } // geo::WireID::getRelIndex()
constexpr auto getIndex() const
Returns the index level Index of this type.
Definition: geo_types.h:973
static constexpr auto Level
Level of this element.
Definition: geo_types.h:641
geo::WireID::operator std::string ( ) const
inlineexplicit

Definition at line 597 of file geo_types.h.

597 { return toString(); }
std::string toString() const
Human-readable representation of the wire ID.
Definition: geo_types.h:596
constexpr ParentID_t const& geo::WireID::parentID ( ) const
inline

Return the parent ID of this one (a plane ID).

Definition at line 606 of file geo_types.h.

606 { return *this; }
ParentID_t& geo::WireID::parentID ( )
inline

Return the parent ID of this one (a plane ID).

Definition at line 608 of file geo_types.h.

608 { return *this; }
constexpr PlaneID const& geo::WireID::planeID ( ) const
inline

Backward compatibility; use the wire directly or a explicit cast instead

Todo:
Remove the instances of geo::WireID::planeID() in the code

Definition at line 638 of file geo_types.h.

638 { return *this; }
std::string geo::WireID::toString ( ) const
inline

Human-readable representation of the wire ID.

Definition at line 596 of file geo_types.h.

596 { return details::writeToString(*this); }
std::string writeToString(T const &value)
Write the argument into a string.
Definition: geo_types.h:864
template<std::size_t Index>
auto & geo::WireID::writeIndex ( )

Returns the index level Index of this type.

Definition at line 980 of file geo_types.h.

980  {
981  static_assert
982  (Index <= Level, "This ID type does not have the requested Index level.");
983  return details::getAbsIDindex<Index>(*this);
984 } // geo::WireID::writeIndex()
unsigned int Index
static constexpr auto Level
Level of this element.
Definition: geo_types.h:641

Member Data Documentation

constexpr WireID_t geo::WireID::InvalidID = std::numeric_limits<WireID_t>::max()
static

Special code for an invalid ID.

Definition at line 577 of file geo_types.h.

constexpr auto geo::WireID::Level = geo::ElementLevel::Wire
static

Level of this element.

Definition at line 641 of file geo_types.h.

WireID_t geo::WireID::Wire = InvalidID

Index of the wire within its plane.

Definition at line 580 of file geo_types.h.


The documentation for this struct was generated from the following file: