Project
Loading...
Searching...
No Matches
o2::soa Namespace Reference

Namespaces

namespace  row_helpers
 

Classes

struct  arrow_array_for
 
struct  arrow_array_for< bool >
 
struct  arrow_array_for< double >
 
struct  arrow_array_for< double[N]>
 
struct  arrow_array_for< float >
 
struct  arrow_array_for< float[N]>
 
struct  arrow_array_for< int16_t >
 
struct  arrow_array_for< int32_t >
 
struct  arrow_array_for< int64_t >
 
struct  arrow_array_for< int8_t >
 
struct  arrow_array_for< int8_t[N]>
 
struct  arrow_array_for< int[N]>
 
struct  arrow_array_for< short[N]>
 
struct  arrow_array_for< std::span< std::byte > >
 
struct  arrow_array_for< uint16_t >
 
struct  arrow_array_for< uint32_t >
 
struct  arrow_array_for< uint64_t >
 
struct  arrow_array_for< uint8_t >
 
struct  ArrowHelpers
 
struct  Binding
 Type-checking index column binding. More...
 
struct  BinningIndex
 
struct  Chunked
 
struct  Column
 
struct  ColumnDataHolder
 
class  ColumnIterator
 
struct  CombinationsBlockFullIndexPolicy
 
struct  CombinationsBlockFullSameIndexPolicy
 
struct  CombinationsBlockIndexPolicyBase
 
struct  CombinationsBlockSameIndexPolicyBase
 
struct  CombinationsBlockStrictlyUpperSameIndexPolicy
 
struct  CombinationsBlockUpperIndexPolicy
 
struct  CombinationsBlockUpperSameIndexPolicy
 
struct  CombinationsFullIndexPolicy
 
struct  CombinationsGenerator
 
struct  CombinationsIndexPolicyBase
 
struct  CombinationsStrictlyUpperIndexPolicy
 
struct  CombinationsUpperIndexPolicy
 
struct  Concat
 
struct  DefaultIndexPolicy
 
struct  DynamicColumn
 
struct  EquivalentIndex
 
struct  EquivalentIndexNG
 
class  Filtered
 
class  Filtered< Filtered< T > >
 
class  FilteredBase
 
struct  FilteredIndexPolicy
 
struct  Flat
 
struct  Index
 
struct  IndexColumn
 
struct  IndexPolicyBase
 
struct  IndexTable
 
struct  JoinFull
 
struct  Marker
 
struct  MarkerColumn
 
struct  NTupleType
 
struct  NTupleType< T, 0, REST... >
 
struct  Num
 
struct  RowViewSentinel
 
struct  SmallGroupsBase
 
class  Table
 
struct  TableIterator
 
struct  TableRef
 Generic identifier for a table type. More...
 
struct  unwrap
 unwrapper More...
 
struct  unwrap< bool >
 
struct  unwrap< std::vector< T > >
 

Concepts

concept  not_void
 
concept  is_persistent_column
 column identification concepts
 
concept  is_self_index_column
 
concept  is_index_column
 
concept  has_parent_t
 
concept  is_metadata
 
concept  is_metadata_trait
 
concept  has_metadata
 
concept  has_extension
 
concept  has_configurable_extension
 
concept  is_spawnable_column
 
concept  is_indexing_column
 
concept  is_dynamic_column
 
concept  is_marker_column
 
concept  is_column
 
concept  is_table
 
concept  can_bind
 
concept  has_index
 
concept  is_iterator
 Helper to check if a type T is an iterator.
 
concept  with_originals
 
concept  with_sources
 
concept  with_ccdb_urls
 
concept  with_base_table
 
concept  is_index_table
 
concept  has_filtered_policy
 
concept  is_filtered_iterator
 
concept  is_filtered_table
 
concept  is_filtered
 
concept  is_not_filtered_table
 
concept  is_join
 
concept  is_smallgroups
 

Typedefs

template<typename T >
using arrow_array_for_t = typename arrow_array_for< T >::type
 
template<typename T >
using value_for_t = typename arrow_array_for< T >::value_type
 
template<typename C >
using is_persistent_column_t = std::conditional_t< is_persistent_column< C >, std::true_type, std::false_type >
 
template<typename C >
using is_external_index_t = typename std::conditional_t< is_index_column< C >, std::true_type, std::false_type >
 
template<typename C >
using is_self_index_t = typename std::conditional_t< is_self_index_column< C >, std::true_type, std::false_type >
 
using SelectionVector = std::vector< int64_t >
 
template<typename T >
using unwrap_t = typename unwrap< T >::type
 
template<typename T >
using is_dynamic_t = std::conditional_t< is_dynamic_column< T >, std::true_type, std::false_type >
 
template<typename T >
using is_indexing_t = std::conditional_t< is_indexing_column< T >, std::true_type, std::false_type >
 
template<typename T , typename B >
using is_binding_compatible = std::conditional_t< is_binding_compatible_v< T, typename B::binding_t >(), std::true_type, std::false_type >
 
template<uint32_t D, soa::is_column... C>
using InPlaceTable = Table< o2::aod::Hash<"TEST"_h >, o2::aod::Hash< D >, o2::aod::Hash<"TEST"_h >, C... >
 
template<typename... Ts>
using Join = JoinFull< o2::aod::Hash<"JOIN/0"_h >, Ts... >
 
template<typename T >
using SmallGroups = SmallGroupsBase< T, true >
 
template<typename T >
using SmallGroupsUnfiltered = SmallGroupsBase< T, false >
 

Functions

 DECLARE_EQUIVALENT_FOR_INDEX_NG ("COLLISION/0", "COLLISION/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("MCPARTICLE/0", "MCPARTICLE/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACK_IU/0")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACKEXTRA/0")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK_IU/0", "TRACKEXTRA/0")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACKEXTRA/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK_IU/0", "TRACKEXTRA/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACKEXTRA/2")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK_IU/0", "TRACKEXTRA/2")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACKEXTRA/0", "TRACKEXTRA/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACKEXTRA/0", "TRACKEXTRA/2")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACKEXTRA/1", "TRACKEXTRA/2")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("HMPID/0", "HMPID/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX_NG ("MFTTracks/0", "MFTTracks/1")
 
 DECLARE_EQUIVALENT_FOR_INDEX (aod::StoredTracks, aod::McTrackLabels)
 
 DECLARE_EQUIVALENT_FOR_INDEX (aod::StoredTracksIU, aod::McTrackLabels)
 
 DECLARE_EQUIVALENT_FOR_INDEX (aod::Collisions, aod::McCollisionLabels)
 
template<TableRef R>
constexpr auto tableRef2ConfigParamSpec ()
 
template<TableRef R>
constexpr auto tableRef2InputSpec ()
 
template<TableRef R>
constexpr auto tableRef2OutputSpec ()
 
template<TableRef R>
constexpr auto tableRef2Output ()
 
template<TableRef R>
constexpr auto tableRef2OutputRef ()
 
template<soa::is_table T, soa::is_spawnable_column... Cs>
auto Extend (T const &table)
 On-the-fly adding of expression columns.
 
template<soa::is_table T, soa::is_dynamic_column... Cs>
auto Attach (T const &table)
 
 ARROW_VECTOR_FOR (uint8_t)
 
 ARROW_VECTOR_FOR (uint16_t)
 
 ARROW_VECTOR_FOR (uint32_t)
 
 ARROW_VECTOR_FOR (uint64_t)
 
 ARROW_VECTOR_FOR (int8_t)
 
 ARROW_VECTOR_FOR (int16_t)
 
 ARROW_VECTOR_FOR (int32_t)
 
 ARROW_VECTOR_FOR (int64_t)
 
 ARROW_VECTOR_FOR (float)
 
 ARROW_VECTOR_FOR (double)
 
void accessingInvalidIndexFor (const char *getter)
 
void dereferenceWithWrongType (const char *getter, const char *target)
 
void missingFilterDeclaration (int hash, int ai)
 
void notBoundTable (const char *tableName)
 
voidextractCCDBPayload (char *payload, size_t size, TClass const *cl, const char *what)
 
template<size_t N1, size_t N2, std::array< TableRef, N1 > ar1, std::array< TableRef, N2 > ar2>
consteval auto merge ()
 Helpers to manipulate TableRef arrays.
 
template<size_t N1, size_t N2, std::array< TableRef, N1 > ar1, std::array< TableRef, N2 > ar2, typename L >
consteval auto merge_if (L l)
 
template<size_t N, std::array< TableRef, N > ar, typename L >
consteval auto remove_if (L l)
 
template<size_t N1, size_t N2, std::array< TableRef, N1 > ar1, std::array< TableRef, N2 > ar2>
consteval auto intersect ()
 
template<typename T , typename... Ts>
requires (sizeof...(Ts) == 1)
consteval auto mergeOriginals ()
 
template<typename T , typename... Ts>
requires (sizeof...(Ts) > 1)
consteval auto mergeOriginals ()
 
template<typename T , typename... Ts>
requires (sizeof...(Ts) == 1)
consteval auto intersectOriginals ()
 
template<typename T , typename... Ts>
requires (sizeof...(Ts) > 1)
consteval auto intersectOriginals ()
 
template<typename... C>
auto createFieldsFromColumns (framework::pack< C... >)
 
template<size_t N1, std::array< TableRef, N1 > os1, size_t N2, std::array< TableRef, N2 > os2>
consteval bool is_compatible ()
 
template<with_originals T, with_originals B>
consteval bool is_binding_compatible_v ()
 
void notFoundColumn (const char *label, const char *key)
 
void missingOptionalPreslice (const char *label, const char *key)
 
SelectionVector selectionToVector (gandiva::Selection const &sel)
 
template<typename T , typename C , typename Policy , bool OPT>
requires std::same_as<Policy, framework::PreslicePolicySorted> && (o2::soa::is_binding_compatible_v<C, T>())
auto doSliceBy (T const *table, o2::framework::PresliceBase< C, Policy, OPT > const &container, int value)
 
template<soa::is_filtered_table T>
auto doSliceByHelper (T const *table, std::span< const int64_t > const &selection)
 
template<soa::is_table T>
requires (!soa::is_filtered_table<T>)
auto doSliceByHelper (T const *table, std::span< const int64_t > const &selection)
 
template<typename T , typename C , typename Policy , bool OPT>
requires std::same_as<Policy, framework::PreslicePolicyGeneral> && (o2::soa::is_binding_compatible_v<C, T>())
auto doSliceBy (T const *table, o2::framework::PresliceBase< C, Policy, OPT > const &container, int value)
 
SelectionVector sliceSelection (std::span< int64_t const > const &mSelectedRows, int64_t nrows, uint64_t offset)
 
template<soa::is_filtered_table T>
auto prepareFilteredSlice (T const *table, std::shared_ptr< arrow::Table > slice, uint64_t offset)
 
template<soa::is_filtered_table T, typename C , bool OPT>
requires (o2::soa::is_binding_compatible_v<C, T>())
auto doFilteredSliceBy (T const *table, o2::framework::PresliceBase< C, framework::PreslicePolicySorted, OPT > const &container, int value)
 
template<typename T >
auto doSliceByCached (T const *table, framework::expressions::BindingNode const &node, int value, o2::framework::SliceCache &cache)
 
template<typename T >
auto doFilteredSliceByCached (T const *table, framework::expressions::BindingNode const &node, int value, o2::framework::SliceCache &cache)
 
template<typename T >
auto doSliceByCachedUnsorted (T const *table, framework::expressions::BindingNode const &node, int value, o2::framework::SliceCache &cache)
 
template<with_originals T>
auto select (T const &t, framework::expressions::Filter const &f)
 
arrow::ChunkedArray * getIndexFromLabel (arrow::Table *table, std::string_view label)
 
template<typename D , typename O , typename IP , typename... C>
consteval auto base_iter (framework::pack< C... > &&) -> TableIterator< D, O, IP, C... >
 
template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && (soa::is_column<Ts> && ...))
consteval auto getColumns ()
 
template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && !(soa::is_column<Ts> || ...) && (ref.origin_hash == "CONC"_h))
consteval auto getColumns ()
 
template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && !(soa::is_column<Ts> || ...) && (ref.origin_hash != "CONC"_h))
consteval auto getColumns ()
 
template<TableRef ref, typename... Ts>
requires (sizeof...(Ts) == 0 && soa::has_metadata<aod::MetadataTrait<o2::aod::Hash<ref.desc_hash>>>)
consteval auto getColumns ()
 
template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) == 0) || (o2::soa::is_column<Ts> && ...))
consteval auto computeOriginals ()
 
template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && (!o2::soa::is_column<Ts> || ...))
consteval auto computeOriginals ()
 
void getterNotFound (const char *targetColumnLabel)
 
void emptyColumnLabel ()
 
template<typename... Ts>
constexpr auto join (Ts const &... t)
 
template<typename... Ts>
constexpr auto concat (Ts const &... t)
 
template<class F , std::size_t... Is>
void for_ (F func, std::index_sequence< Is... >)
 
template<std::size_t N, typename F >
void for_ (F func)
 
bool sameCategory (BinningIndex const &a, BinningIndex const &b)
 
bool diffCategory (BinningIndex const &a, BinningIndex const &b)
 
void dataSizeVariesBetweenColumns ()
 
template<template< typename... Cs > typename BP, typename T , typename... Cs>
std::vector< BinningIndexgroupTable (const T &table, const BP< Cs... > &binningPolicy, int minCatSize, int outsider)
 
template<std::size_t K>
void syncCategories (std::array< std::vector< BinningIndex >, K > &groupedIndices)
 
template<typename... Ts>
 CombinationsIndexPolicyBase (Ts const &... tables) -> CombinationsIndexPolicyBase< Ts... >
 
template<typename... Ts>
 CombinationsIndexPolicyBase (Ts &&... tables) -> CombinationsIndexPolicyBase< Ts... >
 
template<typename T2 , typename... T2s>
constexpr bool isSameType ()
 
template<typename BP , typename T1 , typename... T2s>
auto selfCombinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider, const T2s &... tables)
 
template<typename BP , typename T1 , typename T2 >
auto selfPairCombinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider)
 
template<typename BP , typename T1 , typename T2 >
auto selfPairCombinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider, const T2 &table)
 
template<typename BP , typename T1 , typename T2 >
auto selfTripleCombinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider)
 
template<typename BP , typename T1 , typename T2 >
auto selfTripleCombinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider, const T2 &table)
 
template<typename BP , typename T1 , typename... T2s>
auto combinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider, const T2s &... tables)
 
template<typename BP , typename T1 , typename... T2s>
auto combinations (const BP &binningPolicy, int categoryNeighbours, const T1 &outsider, const o2::framework::expressions::Filter &filter, const T2s &... tables)
 
template<soa::is_table... T2s>
auto combinations (const o2::framework::expressions::Filter &filter, const T2s &... tables)
 
template<template< typename... > typename P2, typename... T2s>
CombinationsGenerator< P2< T2s... > > combinations (const P2< T2s... > &policy)
 
template<template< typename... > typename P2, soa::is_table... T2s>
CombinationsGenerator< P2< Filtered< T2s >... > > combinations (P2< T2s... > &&, const o2::framework::expressions::Filter &filter, const T2s &... tables)
 
template<typename... T2s>
auto combinations (const T2s &... tables)
 
template<typename T2 >
auto pairCombinations ()
 
template<typename T2 >
auto pairCombinations (const T2 &table)
 
template<typename T2 >
auto tripleCombinations ()
 
template<typename T2 >
auto tripleCombinations (const T2 &table)
 

Variables

template<typename C >
constexpr bool is_persistent_v = is_persistent_column<C>
 
template<typename B , typename E >
constexpr bool is_index_equivalent_v = EquivalentIndex<B, E>::value || EquivalentIndex<E, B>::value
 
template<aod::is_aod_hash A, aod::is_aod_hash B>
constexpr bool is_ng_index_equivalent_v = EquivalentIndexNG<A, B>::value || EquivalentIndexNG<B, A>::value
 
template<typename T >
constexpr bool is_soa_filtered_v = is_filtered_table<T>
 
template<typename T >
constexpr bool is_soa_join_v = is_join<T>
 

Typedef Documentation

◆ arrow_array_for_t

template<typename T >
using o2::soa::arrow_array_for_t = typedef typename arrow_array_for<T>::type

Definition at line 117 of file ArrowTypes.h.

◆ InPlaceTable

template<uint32_t D, soa::is_column... C>
using o2::soa::InPlaceTable = typedef Table<o2::aod::Hash<"TEST"_h>, o2::aod::Hash<D>, o2::aod::Hash<"TEST"_h>, C...>

Definition at line 2195 of file ASoA.h.

◆ is_binding_compatible

template<typename T , typename B >
using o2::soa::is_binding_compatible = typedef std::conditional_t<is_binding_compatible_v<T, typename B::binding_t>(), std::true_type, std::false_type>

Definition at line 1318 of file ASoA.h.

◆ is_dynamic_t

template<typename T >
using o2::soa::is_dynamic_t = typedef std::conditional_t<is_dynamic_column<T>, std::true_type, std::false_type>

Definition at line 832 of file ASoA.h.

◆ is_external_index_t

template<typename C >
using o2::soa::is_external_index_t = typedef typename std::conditional_t<is_index_column<C>, std::true_type, std::false_type>

Definition at line 207 of file ASoA.h.

◆ is_indexing_t

template<typename T >
using o2::soa::is_indexing_t = typedef std::conditional_t<is_indexing_column<T>, std::true_type, std::false_type>

Definition at line 838 of file ASoA.h.

◆ is_persistent_column_t

template<typename C >
using o2::soa::is_persistent_column_t = typedef std::conditional_t<is_persistent_column<C>, std::true_type, std::false_type>

Definition at line 195 of file ASoA.h.

◆ is_self_index_t

template<typename C >
using o2::soa::is_self_index_t = typedef typename std::conditional_t<is_self_index_column<C>, std::true_type, std::false_type>

Definition at line 210 of file ASoA.h.

◆ Join

template<typename... Ts>
using o2::soa::Join = typedef JoinFull<o2::aod::Hash<"JOIN/0"_h>, Ts...>

Definition at line 3411 of file ASoA.h.

◆ SelectionVector

using o2::soa::SelectionVector = typedef std::vector<int64_t>

Definition at line 415 of file ASoA.h.

◆ SmallGroups

template<typename T >
using o2::soa::SmallGroups = typedef SmallGroupsBase<T, true>

Definition at line 4115 of file ASoA.h.

◆ SmallGroupsUnfiltered

template<typename T >
using o2::soa::SmallGroupsUnfiltered = typedef SmallGroupsBase<T, false>

Definition at line 4118 of file ASoA.h.

◆ unwrap_t

template<typename T >
using o2::soa::unwrap_t = typedef typename unwrap<T>::type

Definition at line 484 of file ASoA.h.

◆ value_for_t

template<typename T >
using o2::soa::value_for_t = typedef typename arrow_array_for<T>::value_type

Definition at line 119 of file ArrowTypes.h.

Function Documentation

◆ accessingInvalidIndexFor()

void o2::soa::accessingInvalidIndexFor ( const char getter)

Definition at line 25 of file ASoA.cxx.

◆ ARROW_VECTOR_FOR() [1/10]

o2::soa::ARROW_VECTOR_FOR ( double  )

◆ ARROW_VECTOR_FOR() [2/10]

o2::soa::ARROW_VECTOR_FOR ( float  )

◆ ARROW_VECTOR_FOR() [3/10]

o2::soa::ARROW_VECTOR_FOR ( int16_t  )

◆ ARROW_VECTOR_FOR() [4/10]

o2::soa::ARROW_VECTOR_FOR ( int32_t  )

◆ ARROW_VECTOR_FOR() [5/10]

o2::soa::ARROW_VECTOR_FOR ( int64_t  )

◆ ARROW_VECTOR_FOR() [6/10]

o2::soa::ARROW_VECTOR_FOR ( int8_t  )

◆ ARROW_VECTOR_FOR() [7/10]

o2::soa::ARROW_VECTOR_FOR ( uint16_t  )

◆ ARROW_VECTOR_FOR() [8/10]

o2::soa::ARROW_VECTOR_FOR ( uint32_t  )

◆ ARROW_VECTOR_FOR() [9/10]

o2::soa::ARROW_VECTOR_FOR ( uint64_t  )

◆ ARROW_VECTOR_FOR() [10/10]

o2::soa::ARROW_VECTOR_FOR ( uint8_t  )

◆ Attach()

template<soa::is_table T, soa::is_dynamic_column... Cs>
auto o2::soa::Attach ( T const &  table)

Template function to attach dynamic columns on-the-fly (e.g. inside process() function). Dynamic columns need to be compatible with the table.

Definition at line 900 of file AnalysisHelpers.h.

◆ base_iter()

template<typename D , typename O , typename IP , typename... C>
consteval auto o2::soa::base_iter ( framework::pack< C... > &&  ) -> TableIterator<D, O, IP, C...>

Definition at line 1692 of file ASoA.h.

◆ combinations() [1/6]

template<typename BP , typename T1 , typename... T2s>
auto o2::soa::combinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider,
const o2::framework::expressions::Filter filter,
const T2s &...  tables 
)

Definition at line 1280 of file ASoAHelpers.h.

◆ combinations() [2/6]

template<typename BP , typename T1 , typename... T2s>
auto o2::soa::combinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider,
const T2s &...  tables 
)

Definition at line 1270 of file ASoAHelpers.h.

◆ combinations() [3/6]

template<soa::is_table... T2s>
auto o2::soa::combinations ( const o2::framework::expressions::Filter filter,
const T2s &...  tables 
)

Definition at line 1290 of file ASoAHelpers.h.

◆ combinations() [4/6]

template<template< typename... > typename P2, typename... T2s>
CombinationsGenerator< P2< T2s... > > o2::soa::combinations ( const P2< T2s... > &  policy)

Definition at line 1302 of file ASoAHelpers.h.

◆ combinations() [5/6]

template<typename... T2s>
auto o2::soa::combinations ( const T2s &...  tables)

Definition at line 1314 of file ASoAHelpers.h.

◆ combinations() [6/6]

template<template< typename... > typename P2, soa::is_table... T2s>
CombinationsGenerator< P2< Filtered< T2s >... > > o2::soa::combinations ( P2< T2s... > &&  ,
const o2::framework::expressions::Filter filter,
const T2s &...  tables 
)

Definition at line 1308 of file ASoAHelpers.h.

◆ CombinationsIndexPolicyBase() [1/2]

template<typename... Ts>
o2::soa::CombinationsIndexPolicyBase ( Ts &&...  tables) -> CombinationsIndexPolicyBase< Ts... >

◆ CombinationsIndexPolicyBase() [2/2]

template<typename... Ts>
o2::soa::CombinationsIndexPolicyBase ( Ts const &...  tables) -> CombinationsIndexPolicyBase< Ts... >

◆ computeOriginals() [1/2]

template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) == 0) || (o2::soa::is_column<Ts> && ...))
consteval auto o2::soa::computeOriginals ( )

Definition at line 1726 of file ASoA.h.

◆ computeOriginals() [2/2]

template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && (!o2::soa::is_column<Ts> || ...))
consteval auto o2::soa::computeOriginals ( )

Definition at line 1733 of file ASoA.h.

◆ concat()

template<typename... Ts>
constexpr auto o2::soa::concat ( Ts const &...  t)
constexpr

Definition at line 3458 of file ASoA.h.

◆ createFieldsFromColumns()

template<typename... C>
auto o2::soa::createFieldsFromColumns ( framework::pack< C... >  )

Definition at line 410 of file ASoA.h.

◆ dataSizeVariesBetweenColumns()

void o2::soa::dataSizeVariesBetweenColumns ( )

Definition at line 18 of file ASoAHelpers.cxx.

◆ DECLARE_EQUIVALENT_FOR_INDEX() [1/3]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX ( aod::Collisions  ,
aod::McCollisionLabels   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX() [2/3]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX ( aod::StoredTracks  ,
aod::McTrackLabels   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX() [3/3]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX ( aod::StoredTracksIU  ,
aod::McTrackLabels   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [1/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "COLLISION/0"  ,
"COLLISION/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [2/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "HMPID/0"  ,
"HMPID/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [3/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "MCPARTICLE/0"  ,
"MCPARTICLE/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [4/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "MFTTracks/0"  ,
"MFTTracks/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [5/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK/0"  ,
"TRACK_IU/0"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [6/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK/0"  ,
"TRACKEXTRA/0"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [7/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK/0"  ,
"TRACKEXTRA/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [8/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK/0"  ,
"TRACKEXTRA/2"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [9/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK_IU/0"  ,
"TRACKEXTRA/0"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [10/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK_IU/0"  ,
"TRACKEXTRA/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [11/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACK_IU/0"  ,
"TRACKEXTRA/2"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [12/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACKEXTRA/0"  ,
"TRACKEXTRA/1"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [13/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACKEXTRA/0"  ,
"TRACKEXTRA/2"   
)

◆ DECLARE_EQUIVALENT_FOR_INDEX_NG() [14/14]

o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ( "TRACKEXTRA/1"  ,
"TRACKEXTRA/2"   
)

◆ dereferenceWithWrongType()

void o2::soa::dereferenceWithWrongType ( const char getter,
const char target 
)

Definition at line 29 of file ASoA.cxx.

◆ diffCategory()

bool o2::soa::diffCategory ( BinningIndex const &  a,
BinningIndex const &  b 
)
inline

Definition at line 69 of file ASoAHelpers.h.

◆ doFilteredSliceBy()

template<soa::is_filtered_table T, typename C , bool OPT>
requires (o2::soa::is_binding_compatible_v<C, T>())
auto o2::soa::doFilteredSliceBy ( T const *  table,
o2::framework::PresliceBase< C, framework::PreslicePolicySorted, OPT > const &  container,
int  value 
)

Definition at line 1630 of file ASoA.h.

◆ doFilteredSliceByCached()

template<typename T >
auto o2::soa::doFilteredSliceByCached ( T const *  table,
framework::expressions::BindingNode const &  node,
int  value,
o2::framework::SliceCache cache 
)

Definition at line 1655 of file ASoA.h.

◆ doSliceBy() [1/2]

template<typename T , typename C , typename Policy , bool OPT>
requires std::same_as<Policy, framework::PreslicePolicySorted> && (o2::soa::is_binding_compatible_v<C, T>())
auto o2::soa::doSliceBy ( T const *  table,
o2::framework::PresliceBase< C, Policy, OPT > const &  container,
int  value 
)

Definition at line 1554 of file ASoA.h.

◆ doSliceBy() [2/2]

template<typename T , typename C , typename Policy , bool OPT>
requires std::same_as<Policy, framework::PreslicePolicyGeneral> && (o2::soa::is_binding_compatible_v<C, T>())
auto o2::soa::doSliceBy ( T const *  table,
o2::framework::PresliceBase< C, Policy, OPT > const &  container,
int  value 
)

Definition at line 1597 of file ASoA.h.

◆ doSliceByCached()

template<typename T >
auto o2::soa::doSliceByCached ( T const *  table,
framework::expressions::BindingNode const &  node,
int  value,
o2::framework::SliceCache cache 
)

Definition at line 1643 of file ASoA.h.

◆ doSliceByCachedUnsorted()

template<typename T >
auto o2::soa::doSliceByCachedUnsorted ( T const *  table,
framework::expressions::BindingNode const &  node,
int  value,
o2::framework::SliceCache cache 
)

Definition at line 1664 of file ASoA.h.

◆ doSliceByHelper() [1/2]

template<soa::is_filtered_table T>
auto o2::soa::doSliceByHelper ( T const *  table,
std::span< const int64_t > const &  selection 
)

Definition at line 1572 of file ASoA.h.

◆ doSliceByHelper() [2/2]

template<soa::is_table T>
requires (!soa::is_filtered_table<T>)
auto o2::soa::doSliceByHelper ( T const *  table,
std::span< const int64_t > const &  selection 
)

Definition at line 1585 of file ASoA.h.

◆ emptyColumnLabel()

void o2::soa::emptyColumnLabel ( )

Definition at line 43 of file ASoA.cxx.

◆ Extend()

template<soa::is_table T, soa::is_spawnable_column... Cs>
auto o2::soa::Extend ( T const &  table)

On-the-fly adding of expression columns.

Definition at line 888 of file AnalysisHelpers.h.

◆ extractCCDBPayload()

void * o2::soa::extractCCDBPayload ( char payload,
size_t  size,
TClass const *  cl,
const char what 
)

Definition at line 178 of file ASoA.cxx.

◆ for_() [1/2]

template<std::size_t N, typename F >
void o2::soa::for_ ( func)

Definition at line 39 of file ASoAHelpers.h.

◆ for_() [2/2]

template<class F , std::size_t... Is>
void o2::soa::for_ ( func,
std::index_sequence< Is... >   
)

Definition at line 32 of file ASoAHelpers.h.

◆ getColumns() [1/4]

template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && (soa::is_column<Ts> && ...))
consteval auto o2::soa::getColumns ( )

Definition at line 1698 of file ASoA.h.

◆ getColumns() [2/4]

template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && !(soa::is_column<Ts> || ...) && (ref.origin_hash == "CONC"_h))
consteval auto o2::soa::getColumns ( )

Definition at line 1705 of file ASoA.h.

◆ getColumns() [3/4]

template<TableRef ref, typename... Ts>
requires ((sizeof...(Ts) > 0) && !(soa::is_column<Ts> || ...) && (ref.origin_hash != "CONC"_h))
consteval auto o2::soa::getColumns ( )

Definition at line 1712 of file ASoA.h.

◆ getColumns() [4/4]

template<TableRef ref, typename... Ts>
requires (sizeof...(Ts) == 0 && soa::has_metadata<aod::MetadataTrait<o2::aod::Hash<ref.desc_hash>>>)
consteval auto o2::soa::getColumns ( )

Definition at line 1719 of file ASoA.h.

◆ getIndexFromLabel()

arrow::ChunkedArray * o2::soa::getIndexFromLabel ( arrow::Table *  table,
std::string_view  label 
)

Definition at line 142 of file ASoA.cxx.

◆ getterNotFound()

void o2::soa::getterNotFound ( const char targetColumnLabel)

Definition at line 38 of file ASoA.cxx.

◆ groupTable()

template<template< typename... Cs > typename BP, typename T , typename... Cs>
std::vector< BinningIndex > o2::soa::groupTable ( const T &  table,
const BP< Cs... > &  binningPolicy,
int  minCatSize,
int  outsider 
)

Definition at line 77 of file ASoAHelpers.h.

◆ intersect()

template<size_t N1, size_t N2, std::array< TableRef, N1 > ar1, std::array< TableRef, N2 > ar2>
consteval auto o2::soa::intersect ( )

Definition at line 139 of file ASoA.h.

◆ intersectOriginals() [1/2]

template<typename T , typename... Ts>
requires (sizeof...(Ts) == 1)
consteval auto o2::soa::intersectOriginals ( )

Definition at line 165 of file ASoA.h.

◆ intersectOriginals() [2/2]

template<typename T , typename... Ts>
requires (sizeof...(Ts) > 1)
consteval auto o2::soa::intersectOriginals ( )

Definition at line 173 of file ASoA.h.

◆ is_binding_compatible_v()

template<with_originals T, with_originals B>
consteval bool o2::soa::is_binding_compatible_v ( )

Definition at line 1312 of file ASoA.h.

◆ is_compatible()

template<size_t N1, std::array< TableRef, N1 > os1, size_t N2, std::array< TableRef, N2 > os2>
consteval bool o2::soa::is_compatible ( )

Definition at line 1299 of file ASoA.h.

◆ isSameType()

template<typename T2 , typename... T2s>
constexpr bool o2::soa::isSameType ( )
constexpr

Definition at line 1233 of file ASoAHelpers.h.

◆ join()

template<typename... Ts>
constexpr auto o2::soa::join ( Ts const &...  t)
constexpr

Definition at line 3414 of file ASoA.h.

◆ merge()

template<size_t N1, size_t N2, std::array< TableRef, N1 > ar1, std::array< TableRef, N2 > ar2>
consteval auto o2::soa::merge ( )

Helpers to manipulate TableRef arrays.

Definition at line 107 of file ASoA.h.

◆ merge_if()

template<size_t N1, size_t N2, std::array< TableRef, N1 > ar1, std::array< TableRef, N2 > ar2, typename L >
consteval auto o2::soa::merge_if ( l)

Definition at line 118 of file ASoA.h.

◆ mergeOriginals() [1/2]

template<typename T , typename... Ts>
requires (sizeof...(Ts) == 1)
consteval auto o2::soa::mergeOriginals ( )

Definition at line 148 of file ASoA.h.

◆ mergeOriginals() [2/2]

template<typename T , typename... Ts>
requires (sizeof...(Ts) > 1)
consteval auto o2::soa::mergeOriginals ( )

Definition at line 156 of file ASoA.h.

◆ missingFilterDeclaration()

void o2::soa::missingFilterDeclaration ( int  hash,
int  ai 
)

Definition at line 33 of file ASoA.cxx.

◆ missingOptionalPreslice()

void o2::soa::missingOptionalPreslice ( const char label,
const char key 
)

Definition at line 173 of file ASoA.cxx.

◆ notBoundTable()

void o2::soa::notBoundTable ( const char tableName)

Definition at line 163 of file ASoA.cxx.

◆ notFoundColumn()

void o2::soa::notFoundColumn ( const char label,
const char key 
)

Definition at line 168 of file ASoA.cxx.

◆ pairCombinations() [1/2]

template<typename T2 >
auto o2::soa::pairCombinations ( )

Definition at line 1324 of file ASoAHelpers.h.

◆ pairCombinations() [2/2]

template<typename T2 >
auto o2::soa::pairCombinations ( const T2 &  table)

Definition at line 1330 of file ASoAHelpers.h.

◆ prepareFilteredSlice()

template<soa::is_filtered_table T>
auto o2::soa::prepareFilteredSlice ( T const *  table,
std::shared_ptr< arrow::Table >  slice,
uint64_t  offset 
)

Definition at line 1611 of file ASoA.h.

◆ remove_if()

template<size_t N, std::array< TableRef, N > ar, typename L >
consteval auto o2::soa::remove_if ( l)

Definition at line 130 of file ASoA.h.

◆ sameCategory()

bool o2::soa::sameCategory ( BinningIndex const &  a,
BinningIndex const &  b 
)
inline

Definition at line 65 of file ASoAHelpers.h.

◆ select()

template<with_originals T>
auto o2::soa::select ( T const &  t,
framework::expressions::Filter const &  f 
)

Definition at line 1684 of file ASoA.h.

◆ selectionToVector()

SelectionVector o2::soa::selectionToVector ( gandiva::Selection const &  sel)

Definition at line 48 of file ASoA.cxx.

◆ selfCombinations()

template<typename BP , typename T1 , typename... T2s>
auto o2::soa::selfCombinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider,
const T2s &...  tables 
)

Definition at line 1239 of file ASoAHelpers.h.

◆ selfPairCombinations() [1/2]

template<typename BP , typename T1 , typename T2 >
auto o2::soa::selfPairCombinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider 
)

Definition at line 1246 of file ASoAHelpers.h.

◆ selfPairCombinations() [2/2]

template<typename BP , typename T1 , typename T2 >
auto o2::soa::selfPairCombinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider,
const T2 &  table 
)

Definition at line 1252 of file ASoAHelpers.h.

◆ selfTripleCombinations() [1/2]

template<typename BP , typename T1 , typename T2 >
auto o2::soa::selfTripleCombinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider 
)

Definition at line 1258 of file ASoAHelpers.h.

◆ selfTripleCombinations() [2/2]

template<typename BP , typename T1 , typename T2 >
auto o2::soa::selfTripleCombinations ( const BP &  binningPolicy,
int  categoryNeighbours,
const T1 &  outsider,
const T2 &  table 
)

Definition at line 1264 of file ASoAHelpers.h.

◆ sliceSelection()

SelectionVector o2::soa::sliceSelection ( std::span< int64_t const > const &  mSelectedRows,
int64_t  nrows,
uint64_t  offset 
)

Definition at line 58 of file ASoA.cxx.

◆ syncCategories()

template<std::size_t K>
void o2::soa::syncCategories ( std::array< std::vector< BinningIndex >, K > &  groupedIndices)

Definition at line 110 of file ASoAHelpers.h.

◆ tableRef2ConfigParamSpec()

template<TableRef R>
constexpr auto o2::soa::tableRef2ConfigParamSpec ( )
constexpr

Definition at line 32 of file AnalysisHelpers.h.

◆ tableRef2InputSpec()

template<TableRef R>
constexpr auto o2::soa::tableRef2InputSpec ( )
constexpr

Definition at line 103 of file AnalysisHelpers.h.

◆ tableRef2Output()

template<TableRef R>
constexpr auto o2::soa::tableRef2Output ( )
constexpr

Definition at line 131 of file AnalysisHelpers.h.

◆ tableRef2OutputRef()

template<TableRef R>
constexpr auto o2::soa::tableRef2OutputRef ( )
constexpr

Definition at line 140 of file AnalysisHelpers.h.

◆ tableRef2OutputSpec()

template<TableRef R>
constexpr auto o2::soa::tableRef2OutputSpec ( )
constexpr

Definition at line 121 of file AnalysisHelpers.h.

◆ tripleCombinations() [1/2]

template<typename T2 >
auto o2::soa::tripleCombinations ( )

Definition at line 1336 of file ASoAHelpers.h.

◆ tripleCombinations() [2/2]

template<typename T2 >
auto o2::soa::tripleCombinations ( const T2 &  table)

Definition at line 1342 of file ASoAHelpers.h.

Variable Documentation

◆ is_index_equivalent_v

template<typename B , typename E >
constexpr bool o2::soa::is_index_equivalent_v = EquivalentIndex<B, E>::value || EquivalentIndex<E, B>::value
constexpr

Definition at line 449 of file ASoA.h.

◆ is_ng_index_equivalent_v

template<aod::is_aod_hash A, aod::is_aod_hash B>
constexpr bool o2::soa::is_ng_index_equivalent_v = EquivalentIndexNG<A, B>::value || EquivalentIndexNG<B, A>::value
constexpr

Definition at line 452 of file ASoA.h.

◆ is_persistent_v

template<typename C >
constexpr bool o2::soa::is_persistent_v = is_persistent_column<C>
constexpr

Definition at line 192 of file ASoA.h.

◆ is_soa_filtered_v

template<typename T >
constexpr bool o2::soa::is_soa_filtered_v = is_filtered_table<T>
constexpr

Definition at line 1535 of file ASoA.h.

◆ is_soa_join_v

template<typename T >
constexpr bool o2::soa::is_soa_join_v = is_join<T>
constexpr

Definition at line 3423 of file ASoA.h.