LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Container with one element per geometry wire plane. More...
#include "GeometryDataContainers.h"
Public Types | |
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... | |
STL container types. | |
using | value_type = typename Container_t::value_type |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | reference = typename Container_t::reference |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | const_reference = typename Container_t::const_reference |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | pointer = typename Container_t::pointer |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | const_pointer = typename Container_t::const_pointer |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | iterator = details::GeoIDdataContainerIterator< Mapper_t, BaseIter_t > |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | const_iterator = details::GeoIDdataContainerIterator< Mapper_t, BaseConstIter_t > |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | difference_type = typename Container_t::difference_type |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
using | size_type = typename Container_t::size_type |
Special iterator dereferencing to pairs ( ID, value ) (see items() ). More... | |
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... | |
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... | |
Element access | |
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... | |
Iterators | |
Two types of iterators are provided:
Reverse iterators are not supported (yet?). Standard iteratorsThe STL-like interface provides iterators that go through the entire range of allowed data, i.e. all the These iterators have an interface extension: the data member auto iData = data.begin(); auto const dend = data.end(); while (iData != dend) { std::cout << "data[" << iData.ID() << "] = " << *iData << std::endl; ++iData; } // while Note that using the range-for loop, you don't get access to the iterator and therefore not even to the ID. Item iteratorsThe item iterators are iterators adapted from the standard ones, which when dereferenced return a pair ( } (this loop has the same effect as the one in the example of the standard iterators, but it's more compact). | |
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... | |
Data modification | |
In general, each single element can be accessed and changed. In addition, this section includes methods acting on multiple elements at once. | |
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... | |
Container modification | |
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... | |
Private Types | |
using | BaseContainer_t = geo::GeoIDdataContainer< T, geo::PlaneIDmapper<>> |
Base class. More... | |
Container status query | |
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... | |
static constexpr unsigned int | dimensions () |
Dimensions of the ID of this container. More... | |
Container with one element per geometry wire plane.
T | type of the contained datum |
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:
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 41 of file GeometryDataContainers.h.
|
private |
Base class.
Definition at line 674 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 138 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 136 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 134 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 141 of file GeometryDataContainers.h.
|
inherited |
Type used as ID for this container.
Definition at line 127 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 148 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 145 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 137 of file GeometryDataContainers.h.
|
inherited |
Type of mapper between IDs and index.
Definition at line 125 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 135 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 133 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 142 of file GeometryDataContainers.h.
|
inherited |
Special iterator dereferencing to pairs ( ID, value ) (see items()
).
Definition at line 132 of file GeometryDataContainers.h.
|
default |
|
inline |
Prepares the container with default-constructed data.
nCryo | number of cryostats |
nTPCs | number of TPCs per cryostat |
nPlanes | number 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 697 of file GeometryDataContainers.h.
|
inline |
Prepares the container with copies of the specified default value.
nCryo | number of cryostats |
nTPCs | number of TPCs |
nPlanes | number of planes per TPC |
defValue | the 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
.
Definition at line 717 of file GeometryDataContainers.h.
|
inherited |
Applies an operation on all elements.
Op | type of operation |
op | Operation |
The operation op
is a unary functor, i.e. an object that supports the call to op(value_type&)
.
The return values of op
calls are discarded.
|
inherited |
Applies an operation on all elements.
Op | type of operation |
op | Operation |
The operation op
is a unary functor, i.e. an object that supports the call to op(value_type const&)
.
The return values of op
calls are discarded. Note that while the elements of this container can't be modified, the operation itself still can if not constant, and it is returned.
|
inherited |
Returns the element for the specified geometry element.
std::out_of_range | if element id is not within the container range |
|
inherited |
Returns the element for the specified geometry element (read-only).
std::out_of_range | if element id is not within the container range |
|
inherited |
Returns an iterator to the beginning of the data.
|
inherited |
Returns a constant iterator to the beginning of the data.
|
inherited |
Returns the number of elements the container has memory for.
|
inherited |
Returns a constant iterator to the beginning of the data.
|
inherited |
Returns a constant iterator to past the end of the data.
|
inherited |
Makes the container empty, with no usable storage space.
resize()
The container needs to be resized before it is useful again.
|
staticinherited |
Dimensions of the ID of this container.
|
inherited |
Dimensions of the Level
dimension of this container.
|
inherited |
Returns whether the container has no elements (false
by assumptions).
|
inherited |
Returns an iterator to past the end of the data.
|
inherited |
Returns a constant iterator to past the end of the data.
|
inherited |
Sets all elements to the specified value
(copied).
|
inherited |
Returns the element for the first ID (unchecked).
|
inherited |
Returns the element for the first ID (unchecked).
|
inherited |
Returns the ID of the first element with GeoID type.
|
inline |
Returns whether this container hosts data for the specified cryostat.
Definition at line 781 of file GeometryDataContainers.h.
|
inherited |
Returns whether this container hosts data for the specified ID.
|
inline |
Returns whether this container hosts data for the specified plane.
Definition at line 790 of file GeometryDataContainers.h.
|
inline |
Returns whether this container hosts data for the specified TPC.
Definition at line 787 of file GeometryDataContainers.h.
|
inherited |
Returns an item iterator to the beginning of the data.
|
inherited |
Returns a item constant iterator to the beginning of the data.
|
inherited |
Returns a item constant iterator to the beginning of the data.
|
inherited |
Returns a item constant iterator to past the end of the data.
|
inherited |
Returns an item iterator to past the end of the data.
|
inherited |
Returns a item constant iterator to past the end of the data.
|
inherited |
Returns an object suitable for a range-for loop with item_iterator
.
|
inherited |
Returns an object suitable for a range-for loop with item_const_iterator
.
|
inherited |
Returns the element for the last ID (unchecked).
|
inherited |
Returns the element for the last ID (unchecked).
|
inherited |
Returns the ID of the last covered element with GeoID type.
|
inherited |
Returns the mapper object used to convert ID's and container positions.
|
inherited |
Returns the element for the specified geometry element.
|
inherited |
Returns the element for the specified geometry element (read-only).
|
inherited |
Sets all the elements to a default-constructed value_type
.
|
inherited |
Prepares the container with default-constructed data.
dims | number of elements on all levels of the container |
The size of each dimension is specified by the corresponding number, starting from the size of the outer dimension (cryostat).
The container is sized to host data for all the elements. Each new element in the container is default-constructed. Existing data is not touched, but it may be rearranged in a non-straightforward way.
|
inherited |
Prepares the container initializing all its data.
dims | number of elements on all levels of the container |
defValue | the value copied to fill all entries in the container |
The size of each dimension is specified by the corresponding number, starting from the size of the outer dimension (cryostat).
The container is sized to host data for all the elements. Each new element in the container is constructed as copy of defValue
. Existing data is not touched, but it may be rearranged in a non-straightforward way.
|
inline |
Prepares the container with default-constructed data.
nCryo | number of cryostats |
nTPCs | number of TPCs |
nPlanes | number 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.
Existing data is not touched, but it may be rearranged in a non-straightforward way.
Definition at line 742 of file GeometryDataContainers.h.
|
inline |
Prepares the container initializing all its data.
nCryo | number of cryostats |
nTPCs | number of TPCs |
nPlanes | number of planes per TPC |
defValue | the value copied to fill all entries in the container |
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
.
Existing data is not touched, but it may be rearranged in a non-straightforward way.
Definition at line 768 of file GeometryDataContainers.h.
|
inherited |
Prepares the container with default-constructed data.
other | data collection to take dimensions from |
The size of each dimension is taken by the matching one in other
.
The container is sized to host data for all the elements. Each new element in the container is default-constructed. Existing data is not touched, but it may be rearranged in a non-straightforward way.
|
inherited |
Prepares the container initializing all its data.
other | data collection to take dimensions from |
defValue | the value copied to fill all entries in the container |
The size of each dimension is taken by the matching one in other
.
The container is sized to host data for all the elements. Each new element in the container is constructed as copy of defValue
. Existing data is not touched, but it may be rearranged in a non-straightforward way.
|
inherited |
Returns the number of elements in the container.