LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
AssociatedData.h File Reference

Auxiliary data from one-to-many sequential association. More...

#include "larcorealg/CoreUtils/MetaUtils.h"
#include "lardata/RecoBaseProxy/ProxyBase/AssnsNodeAsTuple.h"
#include "lardata/RecoBaseProxy/ProxyBase/AssnsTraits.h"
#include "lardata/Utilities/CollectionView.h"
#include "lardata/Utilities/TupleLookupByTag.h"
#include "canvas/Persistency/Common/Assns.h"
#include "canvas/Persistency/Common/Ptr.h"
#include <vector>
#include <algorithm>
#include <cassert>
#include <cstdlib>
#include <iterator>
#include <memory>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  proxy::details::IteratorWrapperBase< Iter, DataIter, ValueType >
 Simple iterator wrapper for manipulation of dereferenced result. More...
 
class  proxy::details::IteratorWrapperBase< Iter, DataIter, ValueType >::ValuePtr< Value >
 Value box for use with pointer dereference operator->(). More...
 
class  proxy::details::AssnsNode< ArtAssnsIterValue >
 This type extends the interface of the art pointer to Assns right side. More...
 
struct  lar::util::assns_metadata_type< proxy::details::AssnsNode< ArtAssnsIterValue > >
 
struct  proxy::details::AssnsIterTraits< ArtAssnsIter >
 Traits for a association iterator. More...
 
class  proxy::details::assns_node_iterator< ArtAssnsIter >
 
class  proxy::details::BoundaryListRangeBase< BoundaryIter >
 
class  proxy::details::BoundaryListRange< BoundaryIter >
 A BoundaryListRangeBase with a full container interface. More...
 
class  proxy::details::BoundaryListRangeIterator< BoundaryIter >
 Iterator exposing elements of a boundary list as ranges. More...
 
class  proxy::details::BoundaryList< Iter >
 Builds and keeps track of internal boundaries in a sequence. More...
 
class  proxy::details::AssociatedData< Main, Aux, Metadata, Tag >
 Object to draft associated data interface. More...
 

Namespaces

 proxy
 Encloses LArSoft data product proxy objects and utilities.See this doxygen module for an introduction to data proxies in LArSoft.
 
 proxy::details
 
 lar
 LArSoft-specific namespace.
 
 lar::util
 LArSoft utility namespace.
 

Functions

template<typename ArtAssnsIterValue >
bool proxy::details::operator== (AssnsNode< ArtAssnsIterValue > const &A, typename AssnsNode< ArtAssnsIterValue >::valueptr_t const &B)
 
template<typename ArtAssnsIterValue >
bool proxy::details::operator== (typename AssnsNode< ArtAssnsIterValue >::valueptr_t const &A, AssnsNode< ArtAssnsIterValue > const &B)
 
template<typename ArtAssnsIterValue >
bool proxy::details::operator!= (AssnsNode< ArtAssnsIterValue > const &A, typename AssnsNode< ArtAssnsIterValue >::valueptr_t const &B)
 
template<typename ArtAssnsIterValue >
bool proxy::details::operator!= (typename AssnsNode< ArtAssnsIterValue >::valueptr_t const &A, AssnsNode< ArtAssnsIterValue > const &B)
 
template<typename ArtAssnsIterValue >
AssnsNode< ArtAssnsIterValue > const & proxy::details::makeAssnsNode (ArtAssnsIterValue const &from)
 Reinterprets the specified association node as a AssnsNode. More...
 
template<typename BoundaryIter >
BoundaryListRange< BoundaryIter > proxy::details::makeBoundaryListRange (BoundaryIter const &iBegin)
 Reinterprets a iterator to boundaries list as a range collection. More...
 
template<std::size_t GroupKey, typename Iter >
BoundaryList< Iter >::boundaries_t proxy::details::associationRangesImpl (Iter begin, Iter end, std::size_t expectedSize)
 
template<std::size_t GroupKey, typename Iter >
auto proxy::details::associationRangeBoundaries (Iter begin, Iter end)
 
template<std::size_t GroupKey, typename Iter >
auto proxy::details::associationRangeBoundaries (Iter begin, Iter end, std::size_t n)
 
template<std::size_t GroupKey, typename Iter >
BoundaryList< Iter > proxy::details::associationRanges (Iter begin, Iter end)
 Groups associations by the first key. More...
 
template<std::size_t GroupKey, typename Iter >
BoundaryList< Iter > proxy::details::associationRanges (Iter begin, Iter end, std::size_t n)
 Groups associations by the first key. More...
 
template<typename Tag , typename Assns >
auto proxy::makeAssociatedData (Assns const &assns, std::size_t minSize=0)
 Processes and returns an associated data object. More...
 
template<typename Assns >
auto proxy::makeAssociatedData (Assns const &assns, std::size_t minSize=0)
 Processes and returns an associated data object. More...
 
template<typename Tag , typename MainColl , typename Assns >
auto proxy::makeAssociatedData (MainColl const &mainColl, Assns const &assns)
 Creates and returns an associated data object. More...
 
template<typename MainColl , typename Assns >
auto proxy::makeAssociatedData (MainColl const &mainColl, Assns const &assns)
 Creates and returns an associated data object. More...
 

Detailed Description

Auxiliary data from one-to-many sequential association.

Author
Gianluca Petrillo (petri.nosp@m.llo@.nosp@m.fnal..nosp@m.gov)
Date
July 27, 2017
See also
lardata/RecoBaseProxy/ProxyBase.h

This library is header-only.

Definition in file AssociatedData.h.