Project
Loading...
Searching...
No Matches
o2::soa::Table< L, D, O, Ts > Class Template Reference

#include <ASoA.h>

Classes

struct  TableIteratorBase
 

Public Types

using self_t = Table< L, D, O, Ts... >
 
using table_t = self_t
 
using columns_t = decltype(getColumns< ref, Ts... >())
 
using persistent_columns_t = decltype([]< typename... C >(framework::pack< C... > &&) -> framework::selected_pack< soa::is_persistent_column_t, C... > {}(columns_t{}))
 
using column_types = decltype([]< typename... C >(framework::pack< C... >) -> framework::pack< typename C::type... > {}(persistent_columns_t{}))
 
using external_index_columns_t = decltype([]< typename... C >(framework::pack< C... > &&) -> framework::selected_pack< soa::is_external_index_t, C... > {}(columns_t{}))
 
using internal_index_columns_t = decltype([]< typename... C >(framework::pack< C... > &&) -> framework::selected_pack< soa::is_self_index_t, C... > {}(columns_t{}))
 
template<typename IP >
using base_iterator = decltype(base_iter< D, O, IP >(columns_t{}))
 
template<typename IP , typename Parent , typename... T>
using iterator_template = TableIteratorBase< IP, Parent, T... >
 
template<typename IP , typename Parent >
using iterator_template_o = decltype(full_iter< IP, Parent >())
 
using iterator = iterator_template_o< DefaultIndexPolicy, table_t >
 
using filtered_iterator = iterator_template_o< FilteredIndexPolicy, table_t >
 
using unfiltered_iterator = iterator
 
using const_iterator = iterator
 
using unfiltered_const_iterator = unfiltered_iterator
 

Public Member Functions

 Table (std::shared_ptr< arrow::Table > table, uint64_t offset=0)
 
 Table (std::vector< std::shared_ptr< arrow::Table > > &&tables, uint64_t offset=0)
 
 Table (std::vector< std::shared_ptr< arrow::Table > > &&tables, uint64_t offset=0)
 
template<typename Key >
arrow::ChunkedArray * getIndexToKey ()
 
auto & cached_begin ()
 
auto const & cached_begin () const
 
unfiltered_iterator begin ()
 
RowViewSentinel end ()
 
filtered_iterator filtered_begin (gsl::span< int64_t const > selection)
 
iterator iteratorAt (uint64_t i) const
 
unfiltered_iterator rawIteratorAt (uint64_t i) const
 
unfiltered_const_iterator begin () const
 
RowViewSentinel end () const
 
std::shared_ptr< arrow::Table > asArrowTable () const
 Return a type erased arrow table backing store for / the type safe table.
 
auto offset () const
 Return offset.
 
int64_t size () const
 Size of the table, in rows.
 
int64_t tableSize () const
 
template<typename... TA>
void bindExternalIndices (TA *... current)
 
template<typename I >
void bindInternalIndicesTo (I const *ptr)
 
void bindInternalIndicesExplicit (o2::soa::Binding binding)
 
template<typename... Cs>
void doBindInternalIndicesExplicit (framework::pack< Cs... >, o2::soa::Binding binding)
 
void bindExternalIndicesRaw (std::vector< o2::soa::Binding > &&ptrs)
 
template<typename T , typename... Cs>
void doCopyIndexBindings (framework::pack< Cs... >, T &dest) const
 
template<typename T >
void copyIndexBindings (T &dest) const
 
auto select (framework::expressions::Filter const &f) const
 
auto sliceByCached (framework::expressions::BindingNode const &node, int value, o2::framework::SliceCache &cache) const
 
auto sliceByCachedUnsorted (framework::expressions::BindingNode const &node, int value, o2::framework::SliceCache &cache) const
 
template<typename T1 , typename Policy , bool OPT>
auto sliceBy (o2::framework::PresliceBase< T1, Policy, OPT > const &container, int value) const
 
auto rawSlice (uint64_t start, uint64_t end) const
 
auto emptySlice () const
 

Static Public Member Functions

template<size_t N, std::array< TableRef, N > bindings>
requires (ref.origin_hash == "CONC"_h)
static consteval auto isIndexTargetOf ()
 
template<size_t N, std::array< TableRef, N > bindings>
requires (ref.origin_hash == "JOIN"_h)
static consteval auto isIndexTargetOf ()
 
template<size_t N, std::array< TableRef, N > bindings>
requires (!(ref.origin_hash == "CONC"_h || ref.origin_hash == "JOIN"_h))
static consteval auto isIndexTargetOf ()
 
template<TableRef r>
static consteval bool hasOriginal ()
 
template<typename IP , typename Parent >
static consteval auto full_iter ()
 
static constexpr auto hashes ()
 

Static Public Attributes

static constexpr const auto ref = TableRef{L::hash, D::hash, O::hash, o2::aod::version(D::str)}
 
static constexpr const auto originals = computeOriginals<ref, Ts...>()
 

Detailed Description

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
class o2::soa::Table< L, D, O, Ts >

A Table class which observes an arrow::Table and provides It is templated on a set of Column / DynamicColumn types.

Definition at line 1670 of file ASoA.h.

Member Typedef Documentation

◆ base_iterator

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename IP >
using o2::soa::Table< L, D, O, Ts >::base_iterator = decltype(base_iter<D, O, IP>(columns_t{}))

Definition at line 1717 of file ASoA.h.

◆ column_types

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::column_types = decltype([]<typename... C>(framework::pack<C...>) -> framework::pack<typename C::type...> {}(persistent_columns_t{}))

Definition at line 1712 of file ASoA.h.

◆ columns_t

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::columns_t = decltype(getColumns<ref, Ts...>())

Definition at line 1709 of file ASoA.h.

◆ const_iterator

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::const_iterator = iterator

Definition at line 1896 of file ASoA.h.

◆ external_index_columns_t

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::external_index_columns_t = decltype([]<typename... C>(framework::pack<C...>&&) -> framework::selected_pack<soa::is_external_index_t, C...> {}(columns_t{}))

Definition at line 1714 of file ASoA.h.

◆ filtered_iterator

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::filtered_iterator = iterator_template_o<FilteredIndexPolicy, table_t>

Definition at line 1893 of file ASoA.h.

◆ internal_index_columns_t

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::internal_index_columns_t = decltype([]<typename... C>(framework::pack<C...>&&) -> framework::selected_pack<soa::is_self_index_t, C...> {}(columns_t{}))

Definition at line 1715 of file ASoA.h.

◆ iterator

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::iterator = iterator_template_o<DefaultIndexPolicy, table_t>

Definition at line 1892 of file ASoA.h.

◆ iterator_template

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename IP , typename Parent , typename... T>
using o2::soa::Table< L, D, O, Ts >::iterator_template = TableIteratorBase<IP, Parent, T...>

Definition at line 1873 of file ASoA.h.

◆ iterator_template_o

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename IP , typename Parent >
using o2::soa::Table< L, D, O, Ts >::iterator_template_o = decltype(full_iter<IP, Parent>())

Definition at line 1890 of file ASoA.h.

◆ persistent_columns_t

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::persistent_columns_t = decltype([]<typename... C>(framework::pack<C...>&&) -> framework::selected_pack<soa::is_persistent_column_t, C...> {}(columns_t{}))

Definition at line 1711 of file ASoA.h.

◆ self_t

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::self_t = Table<L, D, O, Ts...>

Definition at line 1674 of file ASoA.h.

◆ table_t

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::table_t = self_t

Definition at line 1675 of file ASoA.h.

◆ unfiltered_const_iterator

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::unfiltered_const_iterator = unfiltered_iterator

Definition at line 1897 of file ASoA.h.

◆ unfiltered_iterator

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
using o2::soa::Table< L, D, O, Ts >::unfiltered_iterator = iterator

Definition at line 1895 of file ASoA.h.

Constructor & Destructor Documentation

◆ Table() [1/3]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
o2::soa::Table< L, D, O, Ts >::Table ( std::shared_ptr< arrow::Table< L, D, O, Ts > >  table,
uint64_t  offset = 0 
)
inline

Definition at line 1904 of file ASoA.h.

◆ Table() [2/3]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
o2::soa::Table< L, D, O, Ts >::Table ( std::vector< std::shared_ptr< arrow::Table< L, D, O, Ts > > > &&  tables,
uint64_t  offset = 0 
)
inline

Definition at line 1924 of file ASoA.h.

◆ Table() [3/3]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
o2::soa::Table< L, D, O, Ts >::Table ( std::vector< std::shared_ptr< arrow::Table< L, D, O, Ts > > > &&  tables,
uint64_t  offset = 0 
)
inline

Definition at line 1930 of file ASoA.h.

Member Function Documentation

◆ asArrowTable()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
std::shared_ptr< arrow::Table > o2::soa::Table< L, D, O, Ts >::asArrowTable ( ) const
inline

Return a type erased arrow table backing store for / the type safe table.

Definition at line 2008 of file ASoA.h.

◆ begin() [1/2]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
unfiltered_iterator o2::soa::Table< L, D, O, Ts >::begin ( )
inline

Definition at line 1966 of file ASoA.h.

◆ begin() [2/2]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
unfiltered_const_iterator o2::soa::Table< L, D, O, Ts >::begin ( ) const
inline

Definition at line 1997 of file ASoA.h.

◆ bindExternalIndices()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename... TA>
void o2::soa::Table< L, D, O, Ts >::bindExternalIndices ( TA *...  current)
inline

Bind the columns which refer to other tables to the associated tables.

Definition at line 2031 of file ASoA.h.

◆ bindExternalIndicesRaw()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
void o2::soa::Table< L, D, O, Ts >::bindExternalIndicesRaw ( std::vector< o2::soa::Binding > &&  ptrs)
inline

Definition at line 2053 of file ASoA.h.

◆ bindInternalIndicesExplicit()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
void o2::soa::Table< L, D, O, Ts >::bindInternalIndicesExplicit ( o2::soa::Binding  binding)
inline

Definition at line 2042 of file ASoA.h.

◆ bindInternalIndicesTo()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename I >
void o2::soa::Table< L, D, O, Ts >::bindInternalIndicesTo ( I const *  ptr)
inline

Definition at line 2037 of file ASoA.h.

◆ cached_begin() [1/2]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto & o2::soa::Table< L, D, O, Ts >::cached_begin ( )
inline

Definition at line 1956 of file ASoA.h.

◆ cached_begin() [2/2]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto const & o2::soa::Table< L, D, O, Ts >::cached_begin ( ) const
inline

Definition at line 1961 of file ASoA.h.

◆ copyIndexBindings()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename T >
void o2::soa::Table< L, D, O, Ts >::copyIndexBindings ( T &  dest) const
inline

Definition at line 2065 of file ASoA.h.

◆ doBindInternalIndicesExplicit()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename... Cs>
void o2::soa::Table< L, D, O, Ts >::doBindInternalIndicesExplicit ( framework::pack< Cs... >  ,
o2::soa::Binding  binding 
)
inline

Definition at line 2048 of file ASoA.h.

◆ doCopyIndexBindings()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename T , typename... Cs>
void o2::soa::Table< L, D, O, Ts >::doCopyIndexBindings ( framework::pack< Cs... >  ,
T &  dest 
) const
inline

Definition at line 2059 of file ASoA.h.

◆ emptySlice()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto o2::soa::Table< L, D, O, Ts >::emptySlice ( ) const
inline

Definition at line 2098 of file ASoA.h.

◆ end() [1/2]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
RowViewSentinel o2::soa::Table< L, D, O, Ts >::end ( )
inline

Definition at line 1971 of file ASoA.h.

◆ end() [2/2]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
RowViewSentinel o2::soa::Table< L, D, O, Ts >::end ( ) const
inline

Definition at line 2002 of file ASoA.h.

◆ filtered_begin()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
filtered_iterator o2::soa::Table< L, D, O, Ts >::filtered_begin ( gsl::span< int64_t const >  selection)
inline

Definition at line 1976 of file ASoA.h.

◆ full_iter()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename IP , typename Parent >
static consteval auto o2::soa::Table< L, D, O, Ts >::full_iter ( )
inlinestatic

Definition at line 1876 of file ASoA.h.

◆ getIndexToKey()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename Key >
arrow::ChunkedArray * o2::soa::Table< L, D, O, Ts >::getIndexToKey ( )
inline

Definition at line 1937 of file ASoA.h.

◆ hashes()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
static constexpr auto o2::soa::Table< L, D, O, Ts >::hashes ( )
inlinestaticconstexpr

Definition at line 1899 of file ASoA.h.

◆ hasOriginal()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<TableRef r>
static consteval bool o2::soa::Table< L, D, O, Ts >::hasOriginal ( )
inlinestatic

Definition at line 1704 of file ASoA.h.

◆ isIndexTargetOf() [1/3]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<size_t N, std::array< TableRef, N > bindings>
requires (ref.origin_hash == "CONC"_h)
static consteval auto o2::soa::Table< L, D, O, Ts >::isIndexTargetOf ( )
inlinestatic

Definition at line 1681 of file ASoA.h.

◆ isIndexTargetOf() [2/3]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<size_t N, std::array< TableRef, N > bindings>
requires (ref.origin_hash == "JOIN"_h)
static consteval auto o2::soa::Table< L, D, O, Ts >::isIndexTargetOf ( )
inlinestatic

Definition at line 1688 of file ASoA.h.

◆ isIndexTargetOf() [3/3]

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<size_t N, std::array< TableRef, N > bindings>
requires (!(ref.origin_hash == "CONC"_h || ref.origin_hash == "JOIN"_h))
static consteval auto o2::soa::Table< L, D, O, Ts >::isIndexTargetOf ( )
inlinestatic

Definition at line 1698 of file ASoA.h.

◆ iteratorAt()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
iterator o2::soa::Table< L, D, O, Ts >::iteratorAt ( uint64_t  i) const
inline

Definition at line 1985 of file ASoA.h.

◆ offset()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto o2::soa::Table< L, D, O, Ts >::offset ( ) const
inline

Return offset.

Definition at line 2013 of file ASoA.h.

◆ rawIteratorAt()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
unfiltered_iterator o2::soa::Table< L, D, O, Ts >::rawIteratorAt ( uint64_t  i) const
inline

Definition at line 1990 of file ASoA.h.

◆ rawSlice()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto o2::soa::Table< L, D, O, Ts >::rawSlice ( uint64_t  start,
uint64_t  end 
) const
inline

Definition at line 2093 of file ASoA.h.

◆ select()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto o2::soa::Table< L, D, O, Ts >::select ( framework::expressions::Filter const &  f) const
inline

Definition at line 2070 of file ASoA.h.

◆ size()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
int64_t o2::soa::Table< L, D, O, Ts >::size ( ) const
inline

Size of the table, in rows.

Definition at line 2018 of file ASoA.h.

◆ sliceBy()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
template<typename T1 , typename Policy , bool OPT>
auto o2::soa::Table< L, D, O, Ts >::sliceBy ( o2::framework::PresliceBase< T1, Policy, OPT > const &  container,
int  value 
) const
inline

Definition at line 2088 of file ASoA.h.

◆ sliceByCached()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto o2::soa::Table< L, D, O, Ts >::sliceByCached ( framework::expressions::BindingNode const &  node,
int  value,
o2::framework::SliceCache cache 
) const
inline

Definition at line 2077 of file ASoA.h.

◆ sliceByCachedUnsorted()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
auto o2::soa::Table< L, D, O, Ts >::sliceByCachedUnsorted ( framework::expressions::BindingNode const &  node,
int  value,
o2::framework::SliceCache cache 
) const
inline

Definition at line 2082 of file ASoA.h.

◆ tableSize()

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
int64_t o2::soa::Table< L, D, O, Ts >::tableSize ( ) const
inline

Definition at line 2023 of file ASoA.h.

Member Data Documentation

◆ originals

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
constexpr const auto o2::soa::Table< L, D, O, Ts >::originals = computeOriginals<ref, Ts...>()
staticconstexpr

Definition at line 1677 of file ASoA.h.

◆ ref

template<aod::is_aod_hash L, aod::is_aod_hash D, aod::is_origin_hash O, typename... Ts>
constexpr const auto o2::soa::Table< L, D, O, Ts >::ref = TableRef{L::hash, D::hash, O::hash, o2::aod::version(D::str)}
staticconstexpr

Definition at line 1673 of file ASoA.h.


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