Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
readout::TPCsetID Struct Reference

Class identifying a set of TPC sharing readout channels. More...

#include <readout_types.h>

Inheritance diagram for readout::TPCsetID:
geo::CryostatID readout::ROPID

Public Types

using TPCsetID_t = unsigned short
 Type for the ID number. More...
 
using ThisID_t = TPCsetID
 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 TPCsetID ()=default
 Default constructor: an invalid TPC set ID. More...
 
constexpr TPCsetID (CryostatID const &cryoid, TPCsetID_t s)
 
constexpr TPCsetID (CryostatID_t c, TPCsetID_t s)
 Constructor: TPC set with index s in the cryostat index c. More...
 
constexpr auto const & deepestIndex () const
 Returns the value of the deepest ID available (TPC set's). More...
 
auto & deepestIndex ()
 Returns the deepest ID available (TPC set'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 TPCsetID const & asTPCsetID () const
 Conversion to TPCsetID (for convenience of notation). More...
 
TPCsetIDasTPCsetID ()
 Conversion to TPCsetID (for convenience of notation). More...
 
constexpr TPCsetID const & asConstTPCsetID ()
 Conversion to TPCsetID (for convenience of notation). More...
 
constexpr int cmp (TPCsetID 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 set 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 TPCsetID_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

TPCsetID_t TPCset = InvalidID
 Index of the TPC set 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 TPCsetID_t InvalidID = std::numeric_limits<TPCsetID_t>::max()
 Special code for an invalid ID. More...
 
static constexpr auto Level = readout::ElementLevel::TPCset
 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

Class identifying a set of TPC sharing readout channels.

This identifier provides the cryostat location and a number representing the set of TPCs. This set is defined by not sharing readout channels with any other TPC outside the set.

Definition at line 70 of file readout_types.h.

Member Typedef Documentation

template<std::size_t L>
using readout::TPCsetID::ID_t = details::AbsIDtype<L, ThisID_t>

Type of the ID with the specified level L.

Definition at line 78 of file readout_types.h.

Type of the parent ID.

Definition at line 74 of file readout_types.h.

Type of this ID.

Definition at line 73 of file readout_types.h.

using readout::TPCsetID::TPCsetID_t = unsigned short

Type for the ID number.

Definition at line 71 of file readout_types.h.

template<std::size_t A>
using readout::TPCsetID::UpperID_t = details::RelIDtype<A, ThisID_t>

Type of the ID A levels above this one.

Definition at line 82 of file readout_types.h.

Constructor & Destructor Documentation

constexpr readout::TPCsetID::TPCsetID ( )
default

Default constructor: an invalid TPC set ID.

constexpr readout::TPCsetID::TPCsetID ( CryostatID const &  cryoid,
TPCsetID_t  s 
)
inline

Constructor: TPC set with index s in the cryostat identified by cryoid.

Definition at line 97 of file readout_types.h.

97  :
98  CryostatID(cryoid), TPCset(s) {}
constexpr CryostatID()=default
Default constructor: an invalid cryostat.
TPCsetID_t TPCset
Index of the TPC set within its cryostat.
Definition: readout_types.h:90
static QCString * s
Definition: config.cpp:1042
constexpr readout::TPCsetID::TPCsetID ( CryostatID_t  c,
TPCsetID_t  s 
)
inline

Constructor: TPC set with index s in the cryostat index c.

Definition at line 101 of file readout_types.h.

102  : CryostatID(c), TPCset(s) {}
constexpr CryostatID()=default
Default constructor: an invalid cryostat.
TPCsetID_t TPCset
Index of the TPC set within its cryostat.
Definition: readout_types.h:90
static QCString * s
Definition: config.cpp:1042

Member Function Documentation

constexpr TPCsetID const& readout::TPCsetID::asConstTPCsetID ( )
inline

Conversion to TPCsetID (for convenience of notation).

Definition at line 136 of file readout_types.h.

136 { return *this; }
constexpr TPCsetID const& readout::TPCsetID::asTPCsetID ( ) const
inline

Conversion to TPCsetID (for convenience of notation).

Definition at line 132 of file readout_types.h.

132 { return *this; }
TPCsetID& readout::TPCsetID::asTPCsetID ( )
inline

Conversion to TPCsetID (for convenience of notation).

Definition at line 134 of file readout_types.h.

134 { return *this; }
constexpr int readout::TPCsetID::cmp ( TPCsetID const &  other) const
inline

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

Definition at line 139 of file readout_types.h.

140  {
141  int cmp_res = CryostatID::cmp(other);
142  if (cmp_res == 0) // same cryostat: compare TPC set
143  return ThreeWayComparison(TPCset, other.TPCset);
144  else // return the order of cryostats
145  return cmp_res;
146  } // 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
TPCsetID_t TPCset
Index of the TPC set within its cryostat.
Definition: readout_types.h:90
constexpr int cmp(CryostatID const &other) const
Returns < 0 if this is smaller than other, 0 if equal, > 0 if larger.
Definition: geo_types.h:271
constexpr auto const& readout::TPCsetID::deepestIndex ( ) const
inline

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

Definition at line 114 of file readout_types.h.

114 { return TPCset; }
TPCsetID_t TPCset
Index of the TPC set within its cryostat.
Definition: readout_types.h:90
auto& readout::TPCsetID::deepestIndex ( )
inline

Returns the deepest ID available (TPC set's).

Definition at line 116 of file readout_types.h.

116 { return TPCset; }
TPCsetID_t TPCset
Index of the TPC set within its cryostat.
Definition: readout_types.h:90
template<std::size_t Index>
constexpr auto readout::TPCsetID::getIndex ( ) const

Returns the index level Index of this type.

Definition at line 326 of file readout_types.h.

326  {
327  static_assert
328  (Index <= Level, "This ID type does not have the requested Index level.");
329  return details::getAbsIDindex<Index>(*this);
330 } // readout::TPCsetID::getIndex() const
unsigned int Index
static constexpr auto Level
Level of this element.
static constexpr TPCsetID_t readout::TPCsetID::getInvalidID ( )
inlinestatic

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

Definition at line 152 of file readout_types.h.

152 { return TPCsetID::InvalidID; }
static constexpr TPCsetID_t InvalidID
Special code for an invalid ID.
Definition: readout_types.h:87
template<std::size_t Above>
constexpr auto readout::TPCsetID::getRelIndex ( ) const

Returns the index Above levels higher than Level.

Definition at line 340 of file readout_types.h.

340  {
341  static_assert
342  (Above <= Level, "This ID type does not have the requested Index level.");
343  return getIndex<Level - Above>();
344 } // readout::TPCsetID::getRelIndex()
constexpr auto getIndex() const
Returns the index level Index of this type.
static constexpr auto Level
Level of this element.
readout::TPCsetID::operator std::string ( ) const
inlineexplicit

Definition at line 109 of file readout_types.h.

109 { return toString(); }
std::string toString() const
Human-readable representation of the TPC set ID.
constexpr ParentID_t const& readout::TPCsetID::parentID ( ) const
inline

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

Definition at line 118 of file readout_types.h.

118 { return *this; }
ParentID_t& readout::TPCsetID::parentID ( )
inline

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

Definition at line 120 of file readout_types.h.

120 { return *this; }
std::string readout::TPCsetID::toString ( ) const
inline

Human-readable representation of the TPC set ID.

Definition at line 108 of file readout_types.h.

108 { return details::writeToString(*this); }
std::string writeToString(T const &value)
Definition: readout_types.h:23
template<std::size_t Index>
auto & readout::TPCsetID::writeIndex ( )

Returns the index level Index of this type.

Definition at line 333 of file readout_types.h.

333  {
334  static_assert
335  (Index <= Level, "This ID type does not have the requested Index level.");
336  return details::getAbsIDindex<Index>(*this);
337 } // readout::TPCsetID::writeIndex()
unsigned int Index
static constexpr auto Level
Level of this element.

Member Data Documentation

constexpr TPCsetID_t readout::TPCsetID::InvalidID = std::numeric_limits<TPCsetID_t>::max()
static

Special code for an invalid ID.

Definition at line 87 of file readout_types.h.

constexpr auto readout::TPCsetID::Level = readout::ElementLevel::TPCset
static

Level of this element.

Definition at line 149 of file readout_types.h.

TPCsetID_t readout::TPCsetID::TPCset = InvalidID

Index of the TPC set within its cryostat.

Definition at line 90 of file readout_types.h.


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