LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Proxy collection class for space points associated to charge. More...
#include "ChargedSpacePoints.h"
Public Types | |
using | element_proxy_t = SpacePointWithCharge< collection_proxy_t > |
Type of element of this collection proxy. More... | |
using | aux_collections_t = std::tuple< AuxColls... > |
Tuple of all auxiliary data collections (wrappers). More... | |
using | value_type = element_proxy_t |
Type of element of this collection proxy. More... | |
using | const_iterator = details::IndexBasedIterator< collection_proxy_t > |
Type of iterator to this collection (constant). More... | |
using | iterator = const_iterator |
Type of iterator to this collection (still constant). More... | |
using | main_element_t = util::collection_value_t< MainColl > |
Type of the elements in the original collection. More... | |
using | main_collection_t = MainColl |
Type of the original collection. More... | |
Public Member Functions | |
auto const & | spacePoints () const |
Returns the original collection of space points. More... | |
auto const & | charges () const |
Returns the original collection of charge information. More... | |
element_proxy_t const | operator[] (std::size_t i) const |
Returns the element of this collection with the specified index. More... | |
const_iterator | begin () const |
Returns an iterator to the first element of the collection. More... | |
const_iterator | end () const |
Returns an iterator past the last element of the collection. More... | |
bool | empty () const |
Returns whether this collection is empty. More... | |
std::size_t | size () const |
Returns the size of this collection. More... | |
auto | get () const -> decltype(auto) |
Returns the associated data proxy specified by AuxTag . More... | |
auto | getIf () const -> decltype(auto) |
Returns the auxiliary data specified by type (Tag ). More... | |
main_collection_t const & | main () const |
Returns the wrapped collection. More... | |
main_collection_t const & | mainRef () const |
Returns a reference to the wrapped collection. More... | |
main_collection_t const * | mainPtr () const |
Returns a pointer to the wrapped collection. More... | |
Static Public Member Functions | |
static constexpr bool | has () |
Returns whether this class knowns about the specified type (Tag ). More... | |
Protected Types | |
using | this_t = MainCollectionProxy< main_collection_t > |
This type. More... | |
Protected Member Functions | |
AuxColl const & | aux () const |
Returns the auxiliary data specified by type. More... | |
auto | auxByTag () const -> decltype(auto) |
Returns the auxiliary data specified by type. More... | |
auto | getIfHas (std::bool_constant< true >) const -> decltype(auto) |
auto | getIfHas (std::bool_constant< false >) const -> T |
const_iterator | makeIterator (std::size_t i) const |
Returns an iterator pointing to the specified index of this collection. More... | |
this_t & | mainProxy () |
Return this object as main collection proxy. More... | |
this_t const & | mainProxy () const |
Return this object as main collection proxy. More... | |
auto | getMainAt (std::size_t i) const -> decltype(auto) |
Returns the specified item in the original collection. More... | |
Private Types | |
using | base_t = CollectionProxyBase< SpacePointWithCharge, MainColl, AuxColl... > |
Proxy collection class for space points associated to charge.
MainColl | type of space point collection |
AuxColl | types of auxiliary data collections |
This proxy collection allows access to space point and charge collection directly:
When accessing the collection proxy element by element (that is, charged space point by charged space point), the available interface is documented in proxy::SpacePointWithCharge
.
The standard proxy interface is also available (see proxy::CollectionProxyBase
).
Definition at line 315 of file ChargedSpacePoints.h.
|
inherited |
Tuple of all auxiliary data collections (wrappers).
Definition at line 128 of file CollectionProxy.h.
|
private |
Definition at line 317 of file ChargedSpacePoints.h.
|
inherited |
Type of iterator to this collection (constant).
Definition at line 134 of file CollectionProxy.h.
|
inherited |
Type of element of this collection proxy.
Definition at line 125 of file CollectionProxy.h.
|
inherited |
Type of iterator to this collection (still constant).
Definition at line 137 of file CollectionProxy.h.
|
inherited |
Type of the original collection.
Definition at line 41 of file MainCollectionProxy.h.
|
inherited |
Type of the elements in the original collection.
Definition at line 44 of file MainCollectionProxy.h.
|
protectedinherited |
This type.
Definition at line 60 of file MainCollectionProxy.h.
|
inherited |
Type of element of this collection proxy.
Definition at line 131 of file CollectionProxy.h.
|
inlineprotectedinherited |
Returns the auxiliary data specified by type.
Definition at line 258 of file CollectionProxy.h.
|
inlineprotectedinherited |
Returns the auxiliary data specified by type.
Definition at line 265 of file CollectionProxy.h.
|
inlineinherited |
Returns an iterator to the first element of the collection.
Definition at line 169 of file CollectionProxy.h.
|
inline |
Returns the original collection of charge information.
Definition at line 325 of file ChargedSpacePoints.h.
|
inlineinherited |
Returns whether this collection is empty.
Definition at line 175 of file CollectionProxy.h.
References main().
|
inlineinherited |
Returns an iterator past the last element of the collection.
Definition at line 172 of file CollectionProxy.h.
References util::size().
|
inlineinherited |
Returns the associated data proxy specified by AuxTag
.
Definition at line 182 of file CollectionProxy.h.
|
inherited |
Returns the auxiliary data specified by type (Tag
).
Tag | tag of the data to fetch (usually, its type) |
T | exact type returned by the method (by default a vector of tags) |
Tag
). std::logic_error | if the tag is not available. |
if constexpr
should be used instead (see the example below)This method is a get()
which forgives when the requested type is not available (because this proxy was configured not to hold it).
The difference with get()
is the following:
If the proxy tracks
has not been coded with recob::Hit
data, the code snippet will not compile, because get()
will not compile for tags that were not coded in. On the other end, if recob::Hit
is coded in tracks
but recob::SpacePoint
is not, the snippet will compile. In that case, if the has()
check had been omitted, getIt()
would throw a std::logic_error
exception when executed. With C++17, this will not be necessary any more by using "constexpr if":
T
.
|
protectedinherited |
|
protectedinherited |
|
inlineprotectedinherited |
Returns the specified item in the original collection.
Definition at line 69 of file MainCollectionProxy.h.
References proxy::details::MainCollectionProxy< MainColl >::fMain.
|
inlinestaticinherited |
Returns whether this class knowns about the specified type (Tag
).
Definition at line 246 of file CollectionProxy.h.
References main().
|
inlineinherited |
Returns the wrapped collection.
Definition at line 50 of file MainCollectionProxy.h.
References proxy::details::MainCollectionProxy< MainColl >::mainRef().
|
inlineprotectedinherited |
Return this object as main collection proxy.
Definition at line 63 of file MainCollectionProxy.h.
|
inlineprotectedinherited |
Return this object as main collection proxy.
Definition at line 66 of file MainCollectionProxy.h.
|
inlineinherited |
Returns a pointer to the wrapped collection.
Definition at line 56 of file MainCollectionProxy.h.
References proxy::details::MainCollectionProxy< MainColl >::fMain.
|
inlineinherited |
Returns a reference to the wrapped collection.
Definition at line 53 of file MainCollectionProxy.h.
References proxy::details::MainCollectionProxy< MainColl >::fMain.
Referenced by proxy::details::MainCollectionProxy< MainColl >::main().
|
inlineprotectedinherited |
Returns an iterator pointing to the specified index of this collection.
Definition at line 276 of file CollectionProxy.h.
|
inlineinherited |
Returns the element of this collection with the specified index.
i | the index in the collection |
The returned value is an object created on the spot, not a reference to an existing structure. The structure exposes the i
-th element in the main collection, plus all objects that are associated to it.
Definition at line 162 of file CollectionProxy.h.
|
inlineinherited |
Returns the size of this collection.
Definition at line 178 of file CollectionProxy.h.
References main().
|
inline |
Returns the original collection of space points.
Definition at line 322 of file ChargedSpacePoints.h.
References main().