Public Member Functions | Private Types | List of all members
geo::PlaneDataContainer< T > Class Template Reference

Container with one element per geometry wire plane. More...

#include <GeometryDataContainers.h>

Inheritance diagram for geo::PlaneDataContainer< T >:
geo::GeoIDdataContainer< T, geo::PlaneIDmapper<> >

Public Member Functions

 PlaneDataContainer ()=default
 Default constructor: empty container. More...
 
 PlaneDataContainer (unsigned int nCryo, unsigned int nTPCs, unsigned int nPlanes)
 Prepares the container with default-constructed data. More...
 
 PlaneDataContainer (unsigned int nCryo, unsigned int nTPCs, unsigned int nPlanes, T const &defValue)
 Prepares the container with copies of the specified default value. More...
 
Container modification
void resize (unsigned int nCryo, unsigned int nTPCs, unsigned int nPlanes)
 Prepares the container with default-constructed data. More...
 
void resize (unsigned int nCryo, unsigned int nTPCs, unsigned int nPlanes, T const &defValue)
 Prepares the container initializing all its data. More...
 
Container status query
bool hasCryostat (geo::CryostatID const &cryoid) const
 Returns whether this container hosts data for the specified cryostat. More...
 
bool hasTPC (geo::TPCID const &tpcid) const
 Returns whether this container hosts data for the specified TPC. More...
 
bool hasPlane (geo::PlaneID const &planeid) const
 Returns whether this container hosts data for the specified plane. More...
 
- Public Member Functions inherited from geo::GeoIDdataContainer< T, geo::PlaneIDmapper<> >
 GeoIDdataContainer ()=default
 Default constructor: container has no room at all. More...
 
 GeoIDdataContainer (std::initializer_list< unsigned int > dims)
 Prepares the container with default-constructed data. More...
 
 GeoIDdataContainer (std::initializer_list< unsigned int > dims, value_type const &defValue)
 Prepares the container initializing all its data. More...
 
reference operator[] (ID_t const &id)
 Returns the element for the specified geometry element. More...
 
const_reference operator[] (ID_t const &id) const
 Returns the element for the specified geometry element (read-only). More...
 
reference at (ID_t const &id)
 
const_reference at (ID_t const &id) const
 
reference first ()
 Returns the element for the first ID (unchecked). More...
 
const_reference first () const
 Returns the element for the first ID (unchecked). More...
 
reference last ()
 Returns the element for the last ID (unchecked). More...
 
const_reference last () const
 Returns the element for the last ID (unchecked). More...
 
iterator begin ()
 Returns an iterator to the beginning of the data. More...
 
const_iterator begin () const
 Returns a constant iterator to the beginning of the data. More...
 
iterator end ()
 Returns an iterator to past the end of the data. More...
 
const_iterator end () const
 Returns a constant iterator to past the end of the data. More...
 
const_iterator cbegin () const
 Returns a constant iterator to the beginning of the data. More...
 
const_iterator cend () const
 Returns a constant iterator to past the end of the data. More...
 
item_iterator item_begin ()
 Returns an item iterator to the beginning of the data. More...
 
item_const_iterator item_begin () const
 Returns a item constant iterator to the beginning of the data. More...
 
item_iterator item_end ()
 Returns an item iterator to past the end of the data. More...
 
item_const_iterator item_end () const
 Returns a item constant iterator to past the end of the data. More...
 
item_const_iterator item_cbegin () const
 Returns a item constant iterator to the beginning of the data. More...
 
item_const_iterator item_cend () const
 Returns a item constant iterator to past the end of the data. More...
 
auto items ()
 Returns an object suitable for a range-for loop with item_iterator. More...
 
auto items () const
 Returns an object suitable for a range-for loop with item_const_iterator. More...
 
void fill (value_type value)
 Sets all elements to the specified value (copied). More...
 
void reset ()
 Sets all the elements to a default-constructed value_type. More...
 
Op apply (Op &&op)
 Applies an operation on all elements. More...
 
decltype(auto) apply (Op &&op) const
 Applies an operation on all elements. More...
 
void resize (std::initializer_list< unsigned int > dims)
 Prepares the container with default-constructed data. More...
 
void resize (std::initializer_list< unsigned int > dims, value_type const &defValue)
 Prepares the container initializing all its data. More...
 
void resizeAs (geo::GeoIDdataContainer< OT, Mapper_t > const &other)
 Prepares the container with default-constructed data. More...
 
void resizeAs (geo::GeoIDdataContainer< OT, Mapper_t > const &other, value_type const &defValue)
 Prepares the container initializing all its data. More...
 
void clear ()
 Makes the container empty, with no usable storage space. More...
 
size_type size () const
 Returns the number of elements in the container. More...
 
size_type capacity () const
 Returns the number of elements the container has memory for. More...
 
bool empty () const
 Returns whether the container has no elements (false by assumptions). More...
 
unsigned int dimSize () const
 Dimensions of the Level dimension of this container. More...
 
bool hasElement (GeoID const &id) const
 Returns whether this container hosts data for the specified ID. More...
 
GeoID firstID () const
 Returns the ID of the first element with GeoID type. More...
 
GeoID lastID () const
 Returns the ID of the last covered element with GeoID type. More...
 
Mapper_t const & mapper () const
 Returns the mapper object used to convert ID's and container positions. More...
 

Private Types

using BaseContainer_t = geo::GeoIDdataContainer< T, geo::PlaneIDmapper<>>
 Base class. More...
 

Additional Inherited Members

- Public Types inherited from geo::GeoIDdataContainer< T, geo::PlaneIDmapper<> >
using Mapper_t = geo::PlaneIDmapper<>
 Type of mapper between IDs and index. More...
 
using ID_t = typename Mapper_t::ID_t
 Type used as ID for this container. More...
 
using value_type = typename Container_t::value_type
 
using reference = typename Container_t::reference
 
using const_reference = typename Container_t::const_reference
 
using pointer = typename Container_t::pointer
 
using const_pointer = typename Container_t::const_pointer
 
using iterator = details::GeoIDdataContainerIterator< Mapper_t, BaseIter_t >
 
using const_iterator = details::GeoIDdataContainerIterator< Mapper_t, BaseConstIter_t >
 
using difference_type = typename Container_t::difference_type
 
using size_type = typename Container_t::size_type
 
using item_iterator = details::GeoIDdataContainerItemIterator< iterator >
 Special iterator dereferencing to pairs ( ID, value ) (see items()). More...
 
using item_const_iterator = details::GeoIDdataContainerItemIterator< const_iterator >
 Special iterator dereferencing to pairs ( ID, value ) (see items()). More...
 
- Static Public Member Functions inherited from geo::GeoIDdataContainer< T, geo::PlaneIDmapper<> >
static constexpr unsigned int dimensions ()
 Dimensions of the ID of this container. More...
 

Detailed Description

template<typename T>
class geo::PlaneDataContainer< T >

Container with one element per geometry wire plane.

Template Parameters
Ttype of the contained datum
See also
geo::GeometryCore::makePlaneData

The container is of fixed size and can't be neither resized nor freed before destruction.

This example creates a "map" of hits on each wire plane:

auto const* geom = lar::providerFrom<geo::GeometryCore>();
(geom->NCryostats(), geom->MaxTPCs(), geom->MaxPlanes());
for (recob::Hit const& hit: hits) {
if (hit.WireID()) hitsPerPlane[hit.WireID().planeID()].push_back(&hit);
} // for

Assumptions

The following assumptions should be considered unchecked, and the behavior when they are violated undefined (but note that in debug mode some of them might be actually checked):

Definition at line 42 of file GeometryDataContainers.h.

Member Typedef Documentation

template<typename T>
using geo::PlaneDataContainer< T >::BaseContainer_t = geo::GeoIDdataContainer<T, geo::PlaneIDmapper<>>
private

Base class.

Definition at line 706 of file GeometryDataContainers.h.

Constructor & Destructor Documentation

template<typename T>
geo::PlaneDataContainer< T >::PlaneDataContainer ( )
default

Default constructor: empty container.

See also
resize()

The container starts with no room for any data. The only guarantee is that empty() is true and size() is 0. Use resize() before anything else.

template<typename T>
geo::PlaneDataContainer< T >::PlaneDataContainer ( unsigned int  nCryo,
unsigned int  nTPCs,
unsigned int  nPlanes 
)
inline

Prepares the container with default-constructed data.

Parameters
nCryonumber of cryostats
nTPCsnumber of TPCs per cryostat
nPlanesnumber of planes per TPC

The container is sized to host data for nCryo cryostats, each with nTPCs TPCs, each one with nPlanes wire planes. Each element in the container is default-constructed.

Definition at line 731 of file GeometryDataContainers.h.

732  : BaseContainer_t({ nCryo, nTPCs, nPlanes })
733  {}
geo::GeoIDdataContainer< T, geo::PlaneIDmapper<>> BaseContainer_t
Base class.
template<typename T>
geo::PlaneDataContainer< T >::PlaneDataContainer ( unsigned int  nCryo,
unsigned int  nTPCs,
unsigned int  nPlanes,
T const &  defValue 
)
inline

Prepares the container with copies of the specified default value.

Parameters
nCryonumber of cryostats
nTPCsnumber of TPCs
nPlanesnumber of planes per TPC
defValuethe value to be replicated

The container is sized to host data for nCryo cryostats, each with nTPCs TPCs, and each of them with nPlanes planes. Each element in the container is a copy of defValue.

auto const* geom = lar::providerFrom<geo::GeometryCore>();
(geom->NCryostats(), geom->MaxTPCs(), geom->MaxPlanes(), 0U);

Definition at line 751 of file GeometryDataContainers.h.

755  : BaseContainer_t{ { nCryo, nTPCs, nPlanes }, defValue }
756  {}
geo::GeoIDdataContainer< T, geo::PlaneIDmapper<>> BaseContainer_t
Base class.

Member Function Documentation

template<typename T>
bool geo::PlaneDataContainer< T >::hasCryostat ( geo::CryostatID const &  cryoid) const
inline

Returns whether this container hosts data for the specified cryostat.

Definition at line 816 of file GeometryDataContainers.h.

817  { return BaseContainer_t::hasElement(cryoid); }
bool hasElement(GeoID const &id) const
Returns whether this container hosts data for the specified ID.
template<typename T>
bool geo::PlaneDataContainer< T >::hasPlane ( geo::PlaneID const &  planeid) const
inline

Returns whether this container hosts data for the specified plane.

Definition at line 824 of file GeometryDataContainers.h.

825  { return BaseContainer_t::hasElement(planeid); }
bool hasElement(GeoID const &id) const
Returns whether this container hosts data for the specified ID.
template<typename T>
bool geo::PlaneDataContainer< T >::hasTPC ( geo::TPCID const &  tpcid) const
inline

Returns whether this container hosts data for the specified TPC.

Definition at line 820 of file GeometryDataContainers.h.

821  { return BaseContainer_t::hasElement(tpcid); }
bool hasElement(GeoID const &id) const
Returns whether this container hosts data for the specified ID.
template<typename T>
void geo::PlaneDataContainer< T >::resize ( unsigned int  nCryo,
unsigned int  nTPCs,
unsigned int  nPlanes 
)
inline

Prepares the container with default-constructed data.

Parameters
nCryonumber of cryostats
nTPCsnumber of TPCs
nPlanesnumber of planes per TPC
See also
clear(), fill()

The container is sized to host data for nCryo cryostats, each with nTPCs TPCs, each one with nPlanes wire planes. Each element in the container is default-constructed.

Existing data is not touched, but it may be rearranged in a non-straightforward way.

Definition at line 777 of file GeometryDataContainers.h.

778  { BaseContainer_t::resize({ nCryo, nTPCs, nPlanes }); }
void resize(std::initializer_list< unsigned int > dims)
Prepares the container with default-constructed data.
template<typename T>
void geo::PlaneDataContainer< T >::resize ( unsigned int  nCryo,
unsigned int  nTPCs,
unsigned int  nPlanes,
T const &  defValue 
)
inline

Prepares the container initializing all its data.

Parameters
nCryonumber of cryostats
nTPCsnumber of TPCs
nPlanesnumber of planes per TPC
defValuethe value copied to fill all entries in the container
See also
clear(), fill()

The container is sized to host data for nCryo cryostats, each with nTPCs TPCs, and each of them with nPlanes planes. Each element in the container is a copy of defValue.

auto const* geom = lar::providerFrom<geo::GeometryCore>();
countPerPlane.resize
(geom->NCryostats(), geom->MaxTPCs(), geom->MaxPlanes(), 0U);

Existing data is not touched, but it may be rearranged in a non-straightforward way.

Definition at line 801 of file GeometryDataContainers.h.

805  { BaseContainer_t::resize({ nCryo, nTPCs, nPlanes }, defValue); }
void resize(std::initializer_list< unsigned int > dims)
Prepares the container with default-constructed data.

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