 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef COLUMNAR_CORE_COLUMNAR_DEF_H
6 #define COLUMNAR_CORE_COLUMNAR_DEF_H
35 static constexpr
bool isXAOD =
false;
98 throw std::runtime_error (
"link key too large to fit in link: " +
std::to_string(
key));
107 #if COLUMNAR_DEFAULT_ACCESS_MODE == 0
109 #elif COLUMNAR_DEFAULT_ACCESS_MODE == 2
112 #error "COLUMNAR_DEFAULT_ACCESS_MODE must be 0 or 2"
static LinkIndexType getLinkIndex(LinkIndexType link)
get the index value from a link value
static LinkKeyType getLinkKey(LinkIndexType link)
get the key value from a link value
static constexpr LinkIndexType linkIndexMask
std::string to_string(const SectorProjector proj)
static constexpr unsigned linkIndexBits
various helper definitions
constexpr unsigned columnarAccessMode
std::size_t LinkIndexType
the type used for columns that represent element links
static constexpr bool inPlaceReplace
Whether for this columnar mode decorators that replace the original column will also refer to the inp...
static constexpr bool isXAOD
Whether this is the xAOD mode.
static constexpr bool isXAOD
Whether this is the xAOD mode.
std::uint8_t LinkKeyType
the type used for the key column
static LinkIndexType mergeLinkKeyIndex(LinkIndexType key, LinkIndexType index)
merge a key and index value into a link value
static constexpr bool inPlaceReplace
Whether for this columnar mode decorators that replace the original column will also refer to the inp...
static constexpr LinkIndexType invalidLinkValue
the value used for an invalid link (a.k.a. empty/null link)
static constexpr unsigned linkKeyBits
the number of bits used for the key inside the link