Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Namespaces | Typedefs | Functions | Variables
ColumnAccessor.h File Reference
#include "AthContainers/ConstAccessor.h"
#include "AthContainers/Accessor.h"
#include "AthContainers/Decorator.h"
#include <ColumnarCore/ColumnarTool.h>
#include <ColumnarCore/ObjectId.h>
#include <ColumnarCore/ObjectRange.h>
#include <ColumnarCore/ContainerId.h>
#include <ColumnarInterfaces/ColumnInfo.h>
#include <span>
#include <type_traits>
#include "ColumnAccessorXAOD.icc"
#include "ColumnAccessorArray.icc"

Go to the source code of this file.

Classes

struct  columnar::ColumnAccessModeTraits< CAM >
 
struct  columnar::ColumnAccessModeTraits< ColumnAccessMode::input >
 
struct  columnar::ColumnAccessModeTraits< ColumnAccessMode::output >
 
struct  columnar::ColumnAccessModeTraits< ColumnAccessMode::update >
 
class  columnar::AccessorTemplate< CI, CT, CAM, CM >
 the raw column accessor template class More...
 
struct  columnar::ColumnTypeTraits< CT, CM >
 a trait class to provide information about the column type More...
 
struct  columnar::NativeColumn< CT >
 a type wrapper to force AccessorTemplate to treat the type as native More...
 
struct  columnar::ColumnTypeTraits< NativeColumn< CT >, CM >
 
struct  columnar::RetypeColumn< UT, CT >
 a type wrapper to make AccessorTemplate convert the underlying column type to a different type More...
 
struct  columnar::ColumnTypeTraits< RetypeColumn< UT, CT >, CM >
 

Namespaces

 columnar
 

Typedefs

using columnar::ColumnType = typename ColumnTypeTraits< CT, CM >::ColumnType
 
using columnar::UserType = typename ColumnTypeTraits< CT, CM >::UserType
 
template<ContainerId CI, typename CT , typename CM = ColumnarModeDefault>
using columnar::ColumnAccessor = AccessorTemplate< CI, CT, ColumnAccessMode::input, CM >
 
template<ContainerId CI, typename CT , typename CM = ColumnarModeDefault>
using columnar::ColumnDecorator = AccessorTemplate< CI, CT, ColumnAccessMode::output, CM >
 
template<ContainerId CI, typename CT , typename CM = ColumnarModeDefault>
using columnar::ColumnUpdater = AccessorTemplate< CI, CT, ColumnAccessMode::update, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::JetAccessor = AccessorTemplate< ContainerId::jet, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::JetDecorator = AccessorTemplate< ContainerId::jet, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MutableJetAccessor = AccessorTemplate< ContainerId::mutableJet, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MutableJetDecorator = AccessorTemplate< ContainerId::mutableJet, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MutableJetUpdater = AccessorTemplate< ContainerId::mutableJet, CT, ColumnAccessMode::update, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MuonAccessor = AccessorTemplate< ContainerId::muon, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MuonDecorator = AccessorTemplate< ContainerId::muon, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::TrackAccessor = AccessorTemplate< ContainerId::track, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::TrackDecorator = AccessorTemplate< ContainerId::track, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Track0Accessor = AccessorTemplate< ContainerId::track0, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Track0Decorator = AccessorTemplate< ContainerId::track0, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Track1Accessor = AccessorTemplate< ContainerId::track1, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Track1Decorator = AccessorTemplate< ContainerId::track1, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Track2Accessor = AccessorTemplate< ContainerId::track2, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Track2Decorator = AccessorTemplate< ContainerId::track2, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::ElectronAccessor = AccessorTemplate< ContainerId::electron, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::ElectronDecorator = AccessorTemplate< ContainerId::electron, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::PhotonAccessor = AccessorTemplate< ContainerId::photon, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::PhotonDecorator = AccessorTemplate< ContainerId::photon, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::EgammaAccessor = AccessorTemplate< ContainerId::egamma, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::EgammaDecorator = AccessorTemplate< ContainerId::egamma, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::ClusterAccessor = AccessorTemplate< ContainerId::cluster, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::ClusterDecorator = AccessorTemplate< ContainerId::cluster, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::EventInfoAccessor = AccessorTemplate< ContainerId::eventInfo, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::EventInfoDecorator = AccessorTemplate< ContainerId::eventInfo, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::ParticleAccessor = AccessorTemplate< ContainerId::particle, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::ParticleDecorator = AccessorTemplate< ContainerId::particle, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Particle0Accessor = AccessorTemplate< ContainerId::particle0, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Particle0Decorator = AccessorTemplate< ContainerId::particle0, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Particle1Accessor = AccessorTemplate< ContainerId::particle1, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Particle1Decorator = AccessorTemplate< ContainerId::particle1, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MetAccessor = AccessorTemplate< ContainerId::met, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MetDecorator = AccessorTemplate< ContainerId::met, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Met0Accessor = AccessorTemplate< ContainerId::met0, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Met0Decorator = AccessorTemplate< ContainerId::met0, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Met1Accessor = AccessorTemplate< ContainerId::met1, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::Met1Decorator = AccessorTemplate< ContainerId::met1, CT, ColumnAccessMode::output, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MutableMetAccessor = AccessorTemplate< ContainerId::mutableMet, CT, ColumnAccessMode::input, CM >
 
template<typename CT , typename CM = ColumnarModeDefault>
using columnar::MutableMetDecorator = AccessorTemplate< ContainerId::mutableMet, CT, ColumnAccessMode::output, CM >
 

Functions

template<typename CT , typename CM >
 columnar::requires ((std::is_integral_v< CT >||std::is_floating_point_v< CT >) &&!std::is_same_v< CT, bool >) struct ColumnTypeTraits< CT
 
template<ContainerId OT, typename CT , typename CM >
 columnar::requires (ColumnTypeTraits< CT, CM >::useConvertInput||ColumnTypeTraits< CT, CM >::useConvertWithDataInput) class AccessorTemplate< CI
 a std::vector accessor for types that can be implemented via conversions More...
 
 columnar::AccessorTemplate ()=default
 
 columnar::AccessorTemplate (ColumnarTool< CM > &columnBase, const std::string &name, ColumnInfo &&info={})
 
decltype(auto) columnar::operator() (ObjectId< OT, CM > id) const noexcept
 
bool columnar::isAvailable (ObjectId< OT, CM > id) const noexcept
 
std::optional< UserType > columnar::getOptional (ObjectId< OT, CM > id) const
 
template<ContainerId CI, typename CT , ColumnAccessMode CAM, typename CM >
void columnar::resetAccessor (AccessorTemplate< CI, CT, CAM, CM > &accessor, ColumnarTool< CM > &columnBase, const std::string &name, ColumnInfo &&info={})
 reset a column accessor to point to a new column More...
 

Variables

CM columnar::final
 
 columnar::CT
 
AccessorTemplate< OT, ColumnType, ColumnAccessMode::input, CM > columnar::m_base