LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
geo::OpDetID Struct Reference

The data type to uniquely identify a optical detector. More...

#include "geo_types.h"

Inheritance diagram for geo::OpDetID:
geo::CryostatID

Public Types

using OpDetID_t = unsigned int
 Type for the ID number. More...
 
using ThisID_t = OpDetID
 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...
 
using CryostatID_t = unsigned int
 Type for the ID number. More...
 

Public Member Functions

constexpr OpDetID ()=default
 Default constructor: an invalid optical detector ID. More...
 
constexpr OpDetID (CryostatID const &cryoid, OpDetID_t o)
 
constexpr OpDetID (CryostatID_t c, OpDetID_t o)
 Constructor: opdtical detector with index o in the cryostat index c More...
 
constexpr auto const & deepestIndex () const
 Returns the value of the deepest ID available (OpDet's). More...
 
auto & deepestIndex ()
 Returns the deepest ID available (OpDet'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 OpDetID const & asOpDetID () const
 Conversion to OpDetID (for convenience of notation). More...
 
OpDetIDasOpDetID ()
 Conversion to OpDetID (for convenience of notation). More...
 
constexpr OpDetID const & asConstOpDetID ()
 Conversion to OpDetID (for convenience of notation). More...
 
constexpr int cmp (OpDetID const &other) const
 Returns < 0 if this is smaller than other, 0 if equal, > 0 if larger. 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...
 
std::string toString () const
 Human-readable representation of the optical detector ID. More...
 
 operator std::string () const
 Human-readable representation of the optical detector ID. More...
 
ID validity
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...
 

Static Public Member Functions

static constexpr OpDetID_t getInvalidID ()
 Return the value of the invalid optical detector 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

OpDetID_t OpDet = InvalidID
 Index of the optical detector within its cryostat. More...
 
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 OpDetID_t InvalidID = std::numeric_limits<OpDetID_t>::max()
 Special code for an invalid ID. More...
 
static constexpr auto Level = geo::ElementLevel::OpDet
 Level of this element. More...
 

Detailed Description

The data type to uniquely identify a optical detector.

Definition at line 297 of file geo_types.h.

Member Typedef Documentation

using geo::CryostatID::CryostatID_t = unsigned int
inherited

Type for the ID number.

Definition at line 193 of file geo_types.h.

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

Type of the ID with the specified level L.

Definition at line 305 of file geo_types.h.

using geo::OpDetID::OpDetID_t = unsigned int

Type for the ID number.

Definition at line 298 of file geo_types.h.

Type of the parent ID.

Definition at line 301 of file geo_types.h.

Type of this ID.

Definition at line 300 of file geo_types.h.

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

Type of the ID A levels above this one.

Definition at line 309 of file geo_types.h.

Constructor & Destructor Documentation

constexpr geo::OpDetID::OpDetID ( )
default

Default constructor: an invalid optical detector ID.

constexpr geo::OpDetID::OpDetID ( CryostatID const &  cryoid,
OpDetID_t  o 
)
inline

Constructor: optical detector with index o in the cryostat identified by cryoid

Definition at line 323 of file geo_types.h.

323 : CryostatID(cryoid), OpDet(o) {}
OpDetID_t OpDet
Index of the optical detector within its cryostat.
Definition: geo_types.h:316
constexpr CryostatID()=default
Default constructor: an invalid cryostat.
constexpr geo::OpDetID::OpDetID ( CryostatID_t  c,
OpDetID_t  o 
)
inline

Constructor: opdtical detector with index o in the cryostat index c

Definition at line 326 of file geo_types.h.

References geo::details::writeToString().

326 : CryostatID(c), OpDet(o) {}
OpDetID_t OpDet
Index of the optical detector within its cryostat.
Definition: geo_types.h:316
constexpr CryostatID()=default
Default constructor: an invalid cryostat.

Member Function Documentation

constexpr CryostatID const& geo::CryostatID::asConstCryostatID ( )
inlineinherited

Conversion to CryostatID (for convenience of notation).

Definition at line 279 of file geo_types.h.

279 { return *this; }
constexpr OpDetID const& geo::OpDetID::asConstOpDetID ( )
inline

Conversion to OpDetID (for convenience of notation).

Definition at line 360 of file geo_types.h.

360 { return *this; }
constexpr CryostatID const& geo::CryostatID::asCryostatID ( ) const
inlineinherited

Conversion to CryostatID (for convenience of notation).

Definition at line 275 of file geo_types.h.

Referenced by readout::operator!=(), geo::operator!=(), readout::operator<(), geo::operator<(), readout::operator<<(), geo::operator<<(), readout::operator==(), and geo::operator==().

275 { return *this; }
CryostatID& geo::CryostatID::asCryostatID ( )
inlineinherited

Conversion to CryostatID (for convenience of notation).

Definition at line 277 of file geo_types.h.

277 { return *this; }
constexpr OpDetID const& geo::OpDetID::asOpDetID ( ) const
inline

Conversion to OpDetID (for convenience of notation).

Definition at line 356 of file geo_types.h.

356 { return *this; }
OpDetID& geo::OpDetID::asOpDetID ( )
inline

Conversion to OpDetID (for convenience of notation).

Definition at line 358 of file geo_types.h.

358 { return *this; }
constexpr int geo::CryostatID::cmp ( CryostatID const &  other) const
inlineinherited

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

Definition at line 269 of file geo_types.h.

References geo::CryostatID::deepestIndex().

Referenced by readout::TPCsetID::cmp(), cmp(), geo::TPCID::cmp(), readout::operator<(), and geo::operator<().

270  {
271  return ThreeWayComparison(deepestIndex(), other.deepestIndex());
272  }
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:289
constexpr auto const & deepestIndex() const
Returns the value of the deepest ID available (cryostat&#39;s).
Definition: geo_types.h:251
constexpr int geo::OpDetID::cmp ( OpDetID const &  other) const
inline

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

Definition at line 363 of file geo_types.h.

References geo::CryostatID::cmp(), and deepestIndex().

364  {
365  int cmp_res = CryostatID::cmp(other);
366  if (cmp_res == 0) // same cryostat: compare optical detectors
367  return ThreeWayComparison(deepestIndex(), other.deepestIndex());
368  else // return the order of cryostats
369  return cmp_res;
370  } // 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:289
constexpr auto const & deepestIndex() const
Returns the value of the deepest ID available (OpDet&#39;s).
Definition: geo_types.h:338
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:269
constexpr auto const& geo::OpDetID::deepestIndex ( ) const
inline

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

Definition at line 338 of file geo_types.h.

Referenced by cmp().

338 { return OpDet; }
OpDetID_t OpDet
Index of the optical detector within its cryostat.
Definition: geo_types.h:316
auto& geo::OpDetID::deepestIndex ( )
inline

Returns the deepest ID available (OpDet's).

Definition at line 340 of file geo_types.h.

340 { return OpDet; }
OpDetID_t OpDet
Index of the optical detector within its cryostat.
Definition: geo_types.h:316
template<std::size_t Index>
constexpr auto geo::OpDetID::getIndex ( ) const

Returns the index level Index of this type.

Definition at line 881 of file geo_types.h.

882 {
883  static_assert(Index <= Level, "This ID type does not have the requested Index level.");
884  return details::getAbsIDindex<Index>(*this);
885 } // geo::OpDetID::getIndex() const
static constexpr auto Level
Level of this element.
Definition: geo_types.h:373
static constexpr OpDetID_t geo::OpDetID::getInvalidID ( )
inlinestatic

Return the value of the invalid optical detector ID as a r-value.

Definition at line 376 of file geo_types.h.

References InvalidID.

376 { return OpDetID::InvalidID; }
static constexpr OpDetID_t InvalidID
Special code for an invalid ID.
Definition: geo_types.h:313
template<std::size_t Above>
constexpr auto geo::OpDetID::getRelIndex ( ) const

Returns the index Above levels higher than Level.

Definition at line 895 of file geo_types.h.

896 {
897  static_assert(Above <= Level, "This ID type does not have the requested Index level.");
898  return getIndex<Level - Above>();
899 } // geo::OpDetID::getRelIndex()
constexpr auto getIndex() const
Returns the index level Index of this type.
Definition: geo_types.h:881
static constexpr auto Level
Level of this element.
Definition: geo_types.h:373
void geo::CryostatID::markInvalid ( )
inlineinherited

Sets the ID as invalid.

Definition at line 238 of file geo_types.h.

References geo::details::writeToString().

Referenced by geo::PlaneGeo::ClosestWireID(), geo::GeometryCore::FindTPCAtPosition(), geo::GeometryCore::GetEndPlaneID(), geo::GeometryCore::GetEndTPCID(), and geo::GeometryCore::GetEndWireID().

238 { setValidity(false); }
void setValidity(bool valid)
Sets the validity of the ID.
Definition: geo_types.h:232
void geo::CryostatID::markValid ( )
inlineinherited

Sets the ID as valid.

Definition at line 235 of file geo_types.h.

235 { setValidity(true); }
void setValidity(bool valid)
Sets the validity of the ID.
Definition: geo_types.h:232
constexpr geo::CryostatID::operator bool ( ) const
inlineexplicitinherited

Returns true if the ID is valid.

Definition at line 226 of file geo_types.h.

226 { return isValid; }
bool isValid
Whether this ID points to a valid element.
Definition: geo_types.h:210
geo::OpDetID::operator std::string ( ) const
inlineexplicit

Human-readable representation of the optical detector ID.

Definition at line 333 of file geo_types.h.

333 { return toString(); }
std::string toString() const
Human-readable representation of the optical detector ID.
Definition: geo_types.h:332
constexpr bool geo::CryostatID::operator! ( ) const
inlineinherited

Returns true if the ID is not valid.

Definition at line 229 of file geo_types.h.

229 { return !isValid; }
bool isValid
Whether this ID points to a valid element.
Definition: geo_types.h:210
constexpr ParentID_t const& geo::OpDetID::parentID ( ) const
inline

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

Definition at line 342 of file geo_types.h.

342 { return *this; }
ParentID_t& geo::OpDetID::parentID ( )
inline

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

Definition at line 344 of file geo_types.h.

344 { return *this; }
void geo::CryostatID::setValidity ( bool  valid)
inlineinherited

Sets the validity of the ID.

Definition at line 232 of file geo_types.h.

232 { isValid = valid; }
bool isValid
Whether this ID points to a valid element.
Definition: geo_types.h:210
template<typename T >
static constexpr int geo::CryostatID::ThreeWayComparison ( a,
b 
)
inlinestaticinherited

Returns < 0 if a < b, 0 if a == b, > 0 if a > b.

Definition at line 289 of file geo_types.h.

290  {
291  return (a == b) ? 0 : ((a < b) ? -1 : +1);
292  }
std::string geo::OpDetID::toString ( ) const
inline

Human-readable representation of the optical detector ID.

Definition at line 332 of file geo_types.h.

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

Returns the index level Index of this type.

Definition at line 888 of file geo_types.h.

889 {
890  static_assert(Index <= Level, "This ID type does not have the requested Index level.");
891  return details::getAbsIDindex<Index>(*this);
892 } // geo::OpDetID::writeIndex()
static constexpr auto Level
Level of this element.
Definition: geo_types.h:373

Member Data Documentation

CryostatID_t geo::CryostatID::Cryostat = InvalidID
inherited

Index of cryostat.

Definition at line 211 of file geo_types.h.

Referenced by detsim::WienerFilterAna::analyze(), trkf::SpacePointAna::analyze(), pma::ProjectionMatchingAlg::buildShowerSeg(), mvapid::MVAAlg::CalcSegmentdEdxDist(), tca::ChgFracBetween(), tca::ChgFracNearEnd(), lar_cluster3d::StandardHit3DBuilder::CollectArtHits(), lar_cluster3d::SnippetHit3DBuilder::CollectArtHits(), trkf::SpacePointAlg::compatible(), tca::CompleteIncomplete3DVerticesInGaps(), ems::MultiEMShowers::convCluster(), geo::ChannelMapStandardAlg::ConvertROPtoWirePlane(), detinfo::DetectorPropertiesData::ConvertTicksToX(), geo::ChannelMapStandardAlg::ConvertTPCsetToTPC(), geo::ChannelMapStandardAlg::ConvertTPCtoTPCset(), geo::ChannelMapStandardAlg::ConvertWirePlaneToROP(), detinfo::DetectorPropertiesData::ConvertXToTicks(), geo::GeometryCore::Cryostat(), geo::GeometryCore::CryostatPtr(), cluster::ClusterCrawlerAlg::EncodeCTP(), tca::EncodeCTP(), ems::EndPoint::EndPoint(), trkf::SpacePointAlg::fillComplexSpacePoint(), tca::FillmAllTraj(), lar_pandora::PFParticleHitDumper::FillRecoWires(), trkf::SpacePointAlg::fillSpacePoint(), tca::FillWireHitRange(), tca::FillWireIntersections(), tca::Find3DVertices(), apa::DisambigAlg::FindChanTimeEndPts(), hit::HitCheater::FindHitsOnChannel(), larg4::LArVoxelReadoutGeometry::FindNestedVolume(), tca::FindParent(), tca::FindShowers3D(), geo::GeometryCore::FindTPCAtPosition(), tca::FitTP3Ds(), ems::EMShower3D::GetCloseHits(), geo::GeometryCore::GetClosestOpDet(), geo::GeometryCore::GetEndTPCID(), geo::GeometryCore::GetEndTPCsetID(), nnet::TrainingDataAlg::getProjection(), pma::Track3D::GetUnconstrainedProj3D(), detinfo::DetectorPropertiesData::GetXTicksOffset(), cluster::MergeClusterAlg::GlobalWire(), cluster::BlurredClusteringAlg::GlobalWire(), shower::EMShowerAlg::GlobalWire_(), geo::GeometryCore::HasCryostat(), tss::Hit2D::Hit2D(), ems::Hit2D::Hit2D(), pma::Hit3D::Hit3D(), lar_cluster3d::SpacePointHit3DBuilder::Hit3DBuilder(), hit::DisambigCheater::InitHitToWids(), trkf::KHitWireLine::KHitWireLine(), trkf::KHitWireX::KHitWireX(), lar_cluster3d::StandardHit3DBuilder::makeDeadChannelPair(), lar_cluster3d::SnippetHit3DBuilder::makeDeadChannelPair(), lar_cluster3d::StandardHit3DBuilder::makeHitPair(), lar_cluster3d::SnippetHit3DBuilder::makeHitPair(), lar_cluster3d::StandardHit3DBuilder::makeHitTriplet(), lar_cluster3d::SnippetHit3DBuilder::makeHitTriplet(), tca::MakePFPTjs(), trkf::SpacePointAlg::makeSpacePoints(), trkf::CosmicTrackerAlg::MakeSPT(), tca::Match2Planes(), evd::SimulationDrawer::MCTruthOrtho(), geo::ChannelMapStandardAlg::NTPCsets(), geo::operator!=(), geo::operator<(), anab::operator<<(), recob::operator<<(), geo::operator<<(), geo::operator==(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_2D(), tca::Print3S(), tca::Print3V(), tca::PrintAllTraj(), tca::PrintTP3Ds(), cluster::LineCluster::produce(), cluster::TrajCluster::produce(), hit::DPRawHitFinder::produce(), calo::Calorimetry::produce(), detsim::SimDriftElectrons::produce(), calo::GnocchiCalorimetry::produce(), trkf::SpacePointAlg::separation(), tca::SignalAtTp(), cheat::BackTracker::SpacePointHitsToWeightedXYZ(), apa::DisambigAlg::TrivialDisambig(), tca::ValidTwoPlaneMatch(), trkf::VertexFitAlg::VertexFit(), cluster::ClusterCrawlerAlg::Vtx3ClusterMatch(), cluster::ClusterCrawlerAlg::Vtx3ClusterSplit(), cluster::ClusterCrawlerAlg::VtxMatch(), tca::WireHitRangeOK(), and lar_cluster3d::SnippetHit3DBuilder::WireIDsIntersect().

constexpr OpDetID_t geo::OpDetID::InvalidID = std::numeric_limits<OpDetID_t>::max()
static

Special code for an invalid ID.

Definition at line 313 of file geo_types.h.

Referenced by getInvalidID().

constexpr auto geo::OpDetID::Level = geo::ElementLevel::OpDet
static

Level of this element.

Definition at line 373 of file geo_types.h.

OpDetID_t geo::OpDetID::OpDet = InvalidID

Index of the optical detector within its cryostat.

Definition at line 316 of file geo_types.h.

Referenced by geo::operator!=(), geo::operator<(), geo::operator<<(), and geo::operator==().


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