Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef COLUMNAR_CORE_OBJECT_ID_H
9 #define COLUMNAR_CORE_OBJECT_ID_H
18 template<ContainerId O,
typename CM = ColumnarModeDefault>
class ObjectId;
35 : m_object (&val_object)
50 template<
typename Acc,
typename...
Args>
51 requires std::invocable<Acc,ObjectId<O,ColumnarModeXAOD>,
Args...>
52 [[nodiscard]] decltype(
auto) operator() (Acc&
acc,
Args&&...
args)
const {
53 return acc (*
this, std::forward<Args> (
args)...);}
64 template<ContainerId CI>
67 return &lhs.getXAODObject() == &rhs.getXAODObject();
70 template<ContainerId CI>
73 return &lhs.getXAODObject() != &rhs.getXAODObject();
92 throw std::logic_error (
"can't call xAOD function in columnar mode");
105 throw std::logic_error (
"can't call xAOD function in columnar mode");}
107 template<
typename Acc,
typename...
Args>
108 requires std::invocable<Acc,ObjectId<O,ColumnarModeArray>,
Args...>
109 [[nodiscard]] decltype(
auto) operator() (Acc&
acc,
Args&&...
args)
const {
110 return acc (*
this, std::forward<Args> (
args)...);}
118 explicit ObjectId (
void **val_data, std::size_t val_index) noexcept
119 :
m_data (val_data), m_index (val_index)
135 std::size_t m_index = 0
u;
138 template<ContainerId CI>
141 return lhs.getIndex() == rhs.getIndex();
144 template<ContainerId CI>
147 return lhs.getIndex() != rhs.getIndex();
typename ContainerIdTraits< O >::xAODObjectIdType xAODObject
const InDetSimData * getData(const InDetSimDataCollection &coll, const Identifier &id)
xAODObject & getXAODObject() const
xAODObject & getXAODObject() const noexcept
requires(ContainerIdTraits< CI2 >::isMutable &&ContainerIdTraits< CI2 >::constId==O) ObjectId(const ObjectId< CI2
xAODContainer & getXAODObject() const noexcept
requires(ContainerIdTraits< CI2 >::isMutable &&ContainerIdTraits< CI2 >::constId==O) ObjectId(const ObjectId< CI2
bool const RAWDATA *ch2 const
@ u
Enums for curvilinear frames.
bool operator==(const ObjectId< CI, ColumnarModeXAOD > &lhs, const ObjectId< CI, ColumnarModeXAOD > &rhs)
bool operator!=(const ObjectId< CI, ColumnarModeXAOD > &lhs, const ObjectId< CI, ColumnarModeXAOD > &rhs)
std::size_t getIndex() const noexcept
ObjectId(const ObjectId< O, ColumnarModeArray > &that) noexcept=default
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.)
ObjectId(const ObjectId< O, ColumnarModeXAOD > &that) noexcept=default
ObjectId(xAODObject &val_object) noexcept
typename ContainerIdTraits< O >::xAODObjectIdType xAODObject
ObjectId(void **val_data, std::size_t val_index) noexcept
void ** getData() const noexcept