Project
Loading...
Searching...
No Matches
o2::soa::IndexTable< L, D, O, Key, H, Ts > Struct Template Reference

#include <ASoA.h>

Inherits o2::soa::Table< L, D, O >.

Public Types

using self_t = IndexTable< L, D, O, Key, H, Ts... >
 
using base_t = Table< L, D, O >
 
using table_t = base_t
 
using safe_base_t = Table< L, D, O >
 
using indexing_t = Key
 
using first_t = typename H::binding_t
 
using rest_t = framework::pack< typename Ts::binding_t... >
 
using iterator = typename base_t::template iterator_template_o< DefaultIndexPolicy, self_t >
 
using const_iterator = iterator
 
using filtered_iterator = typename base_t::template iterator_template_o< FilteredIndexPolicy, self_t >
 
using const_filtered_iterator = filtered_iterator
 
- Public Types inherited from o2::soa::Table< L, D, O >
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{}))
 
using base_iterator = decltype(base_iter< D, O, IP >(columns_t{}))
 
using iterator_template = TableIteratorBase< IP, Parent, T... >
 
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

 IndexTable (std::shared_ptr< arrow::Table > table, uint64_t offset=0)
 
 IndexTable (std::vector< std::shared_ptr< arrow::Table > > tables, uint64_t offset=0)
 
 IndexTable (IndexTable const &)=default
 
 IndexTable (IndexTable &&)=default
 
IndexTableoperator= (IndexTable const &)=default
 
IndexTableoperator= (IndexTable &&)=default
 
- Public Member Functions inherited from o2::soa::Table< L, D, O >
 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)
 
arrow::ChunkedArray * getIndexToKey ()
 
auto & cached_begin ()
 
auto const & cached_begin () const
 
unfiltered_iterator begin ()
 
unfiltered_const_iterator begin () const
 
RowViewSentinel end ()
 
RowViewSentinel end () const
 
filtered_iterator filtered_begin (gsl::span< int64_t const > selection)
 
iterator iteratorAt (uint64_t i) const
 
unfiltered_iterator rawIteratorAt (uint64_t i) 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
 
void bindExternalIndices (TA *... current)
 
void bindInternalIndicesTo (I const *ptr)
 
void bindInternalIndicesExplicit (o2::soa::Binding binding)
 
void doBindInternalIndicesExplicit (framework::pack< Cs... >, o2::soa::Binding binding)
 
void bindExternalIndicesRaw (std::vector< o2::soa::Binding > &&ptrs)
 
void doCopyIndexBindings (framework::pack< Cs... >, T &dest) const
 
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
 
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
 

Additional Inherited Members

- Static Public Member Functions inherited from o2::soa::Table< L, D, O >
static consteval auto isIndexTargetOf ()
 
static consteval auto isIndexTargetOf ()
 
static consteval auto isIndexTargetOf ()
 
static consteval bool hasOriginal ()
 
static consteval auto full_iter ()
 
static constexpr auto hashes ()
 
- Static Public Attributes inherited from o2::soa::Table< L, D, O >
static constexpr const auto ref
 
static constexpr const auto originals
 

Detailed Description

template<typename L, typename D, typename O, typename Key, typename H, typename... Ts>
struct o2::soa::IndexTable< L, D, O, Key, H, Ts >

Template for building an index table to access matching rows from non- joinable, but compatible tables, e.g. Collisions and ZDCs. First argument is the key table (BCs for the Collisions+ZDCs case), the rest are index columns defined for the required tables. First index will be used by process() as the grouping

Definition at line 3885 of file ASoA.h.

Member Typedef Documentation

◆ base_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::base_t = Table<L, D, O>

Definition at line 3887 of file ASoA.h.

◆ const_filtered_iterator

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::const_filtered_iterator = filtered_iterator

Definition at line 3912 of file ASoA.h.

◆ const_iterator

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::const_iterator = iterator

Definition at line 3910 of file ASoA.h.

◆ filtered_iterator

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::filtered_iterator = typename base_t::template iterator_template_o<FilteredIndexPolicy, self_t>

Definition at line 3911 of file ASoA.h.

◆ first_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::first_t = typename H::binding_t

Definition at line 3891 of file ASoA.h.

◆ indexing_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::indexing_t = Key

Definition at line 3890 of file ASoA.h.

◆ iterator

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::iterator = typename base_t::template iterator_template_o<DefaultIndexPolicy, self_t>

Definition at line 3909 of file ASoA.h.

◆ rest_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::rest_t = framework::pack<typename Ts::binding_t...>

Definition at line 3892 of file ASoA.h.

◆ safe_base_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::safe_base_t = Table<L, D, O>

Definition at line 3889 of file ASoA.h.

◆ self_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::self_t = IndexTable<L, D, O, Key, H, Ts...>

Definition at line 3886 of file ASoA.h.

◆ table_t

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
using o2::soa::IndexTable< L, D, O, Key, H, Ts >::table_t = base_t

Definition at line 3888 of file ASoA.h.

Constructor & Destructor Documentation

◆ IndexTable() [1/4]

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

Definition at line 3894 of file ASoA.h.

◆ IndexTable() [2/4]

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
o2::soa::IndexTable< L, D, O, Key, H, Ts >::IndexTable ( std::vector< std::shared_ptr< arrow::Table > >  tables,
uint64_t  offset = 0 
)
inline

Definition at line 3899 of file ASoA.h.

◆ IndexTable() [3/4]

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
o2::soa::IndexTable< L, D, O, Key, H, Ts >::IndexTable ( IndexTable< L, D, O, Key, H, Ts > const &  )
default

◆ IndexTable() [4/4]

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
o2::soa::IndexTable< L, D, O, Key, H, Ts >::IndexTable ( IndexTable< L, D, O, Key, H, Ts > &&  )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
IndexTable & o2::soa::IndexTable< L, D, O, Key, H, Ts >::operator= ( IndexTable< L, D, O, Key, H, Ts > &&  )
default

◆ operator=() [2/2]

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
IndexTable & o2::soa::IndexTable< L, D, O, Key, H, Ts >::operator= ( IndexTable< L, D, O, Key, H, Ts > const &  )
default

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