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([]() { if constexpr(sizeof...(Ts)==0) { return iterator_template< 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

template<typename... TA>
void bindExternalIndices (TA *... current)
 
 IndexTable (ArrowTableRef table)
 
 IndexTable (std::vector< ArrowTableRef > &&tables)
 
 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 (o2::soa::ArrowTableRef tableRef)
 
 Table (std::shared_ptr< arrow::Table > table)
 
 Table (std::vector< o2::soa::ArrowTableRef > &&tables)
 
 Table (std::vector< o2::soa::ArrowTableRef > &&tables)
 
 Table (std::vector< std::shared_ptr< arrow::Table > > &&tables)
 
 Table (std::vector< std::shared_ptr< arrow::Table > > &&tables)
 
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 (std::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.
 
std::shared_ptr< arrow::Table > asArrowTableConstrained () const
 
ArrowTableRef asArrowTableRef () const
 
auto offset () const
 Return offset.
 
int64_t size () const
 Size of the table, in rows.
 
int64_t tableSize () const
 
void bindExternalIndices (TA *... current)
 
void bindExternalIndex (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
 

Static Public Member Functions

static constexpr void isIndexTable ()
 
- Static Public Member Functions inherited from o2::soa::Table< L, D, O >
static constexpr void isSOATable ()
 
static consteval auto isIndexTargetOf ()
 
static consteval auto isIndexTargetOf ()
 
static consteval auto isIndexTargetOf ()
 
static consteval bool hasOriginal ()
 
static constexpr auto hashes ()
 

Static Public Attributes

static constexpr const uint32_t binding_origin = Key::binding_origin
 
static constexpr const header::DataOrigin binding_origin_ = Key::binding_origin_
 
- Static Public Attributes inherited from o2::soa::Table< L, D, O >
static constexpr const auto ref
 
static constexpr const auto originals
 
static constexpr const auto originalLabels
 
static constexpr const uint32_t binding_origin
 
static constexpr header::DataOrigin binding_origin_
 

Additional Inherited Members

- Public Attributes inherited from o2::soa::Table< L, D, O >
 else
 

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 4104 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 4107 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 4144 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 4142 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 4143 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 4111 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 4110 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 4141 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 4112 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 4109 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 4106 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 4108 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 ( ArrowTableRef  table)
inline

Definition at line 4128 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< ArrowTableRef > &&  tables)
inline

FIXME: this is a compatiblity for a generic constructor call with a vector there has to be a safer way

Definition at line 4133 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

◆ bindExternalIndices()

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
template<typename... TA>
void o2::soa::IndexTable< L, D, O, Key, H, Ts >::bindExternalIndices ( TA *...  current)
inline

Definition at line 4118 of file ASoA.h.

◆ isIndexTable()

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
static constexpr void o2::soa::IndexTable< L, D, O, Key, H, Ts >::isIndexTable ( )
inlinestaticconstexpr

Definition at line 4105 of file ASoA.h.

◆ 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

Member Data Documentation

◆ binding_origin

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
constexpr const uint32_t o2::soa::IndexTable< L, D, O, Key, H, Ts >::binding_origin = Key::binding_origin
staticconstexpr

Definition at line 4114 of file ASoA.h.

◆ binding_origin_

template<typename L , typename D , typename O , typename Key , typename H , typename... Ts>
constexpr const header::DataOrigin o2::soa::IndexTable< L, D, O, Key, H, Ts >::binding_origin_ = Key::binding_origin_
staticconstexpr

Definition at line 4115 of file ASoA.h.


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