Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef COLUMNAR_CORE_VECTOR_COLUMN_H
9 #define COLUMNAR_CORE_VECTOR_COLUMN_H
35 struct ColumnTypeTraits<std::
vector<CT>,ColumnarModeXAOD>
final
37 using CM = ColumnarModeXAOD;
39 using ColumnType = NativeColumn<std::vector<ElementType>>;
40 using UserType = std::span<const ElementType>;
45 static std::span<const ElementType> convertInput (
const std::vector<ElementType>&
value) {
return std::span<const ElementType> (
value);}
56 template<ContainerId CI,
typename CT>
73 myinfo.offsetName = columnarTool.objectName (
CI);
74 myinfo.isOffset =
true;
75 info.offsetName = columnarTool.objectName (
CI) +
"." +
name +
".offset";
77 columnarTool.addColumn (
info.offsetName,
m_offsetData.get(), std::move (myinfo));
79 columnarTool.addColumn (columnarTool.objectName(
CI) +
"." +
name +
".data",
m_dataData.get(), std::move (
info));
102 return std::span<const ElementType> (&
data[
offset[
id.getIndex()]],
offset[
id.getIndex()+1]-
offset[
id.getIndex()]);
108 return data !=
nullptr;
131 template<ContainerId CI,
typename CT,
typename CM>
154 [[nodiscard]]
bool isAvailable (ObjectId<CI,CM>
id)
const noexcept
char data[hepevt_bytes_allocation_ATLAS]
const InDetSimData * getData(const InDetSimDataCollection &coll, const Identifier &id)
static constexpr bool useConvertWithDataInput
static constexpr bool useConvertInput
AccessorTemplate & operator=(AccessorTemplate &&that)
void moveAccessor(unsigned &dataIndex, std::unique_ptr< ColumnAccessorDataArray > &accessorData, unsigned &sourceIndex, std::unique_ptr< ColumnAccessorDataArray > &sourceData)
std::map< std::string, HypoJetVector >::const_iterator CI
@ u
Enums for curvilinear frames.
std::unique_ptr< ColumnAccessorDataArray > m_dataData
typename ColumnTypeTraits< CT, CM >::ColumnType ElementType
a struct that contains meta-information about each column that's needed to interface the column with ...
AccessorTemplate()=default
ColumnAccessMode
an enum for the different access modes for a column
static constexpr bool isNativeType
requires((std::is_integral_v< CT >||std::is_floating_point_v< CT >) &&!std::is_same_v< CT, bool >) struct ColumnTypeTraits< CT
a class representing a single object (electron, muons, etc.)
VectorConvertView(FunctionType &&, ViewType &&) -> VectorConvertView< std::remove_cv_t< FunctionType >, std::remove_cv_t< ViewType >>
decltype(auto) operator()(ObjectId< OT, CM > id) const noexcept
static ColumnInfo & updateColumnInfo(ColumnarTool< CM > &, ColumnInfo &info)
bool isAvailable(ObjectId< OT, CM > id) const noexcept
a trait class to provide information about the column type
std::unique_ptr< ColumnAccessorDataArray > m_offsetData
ColumnAccessor< CI, std::vector< typename ColumnTypeTraits< CT, CM >::ColumnType >, CM > m_accessor
the raw column accessor template class
typename ColumnTypeTraits< CT, CM >::UserType UserType
std::size_t ColumnarOffsetType
the type used for the size and offsets in the columnar data
typename ColumnTypeTraits< CT, CM >::ColumnType ColumnType