4#ifndef ActsEvent_Decoration_h
5#define ActsEvent_Decoration_h
35 std::is_same<T, float>::value or std::is_same<T, double>::value or
36 std::is_same<T, short>::value or std::is_same<T, int>::value or
37 std::is_same<T, std::uint8_t>::value or
38 std::is_same<T, std::uint16_t>::value or
39 std::is_same<T, std::uint32_t>::value or
40 std::is_same<T, std::uint64_t>::value or
41 std::is_same<T, std::int8_t>::value or
42 std::is_same<T, std::int16_t>::value or
43 std::is_same<T, std::int32_t>::value or
44 std::is_same<T, std::int64_t>::value;
53 return &(
static_cast<const T*
>(
data)[idx]);
61 return &(
static_cast<T*
>(
data)[idx]);
69 assert (idx < container->size());
72 return &(
static_cast<T*
>(
data)[idx]);
77 SG::auxid_t decorationId,
const std::any& src_ptr) {
79 *std::any_cast<const T*>(src_ptr);
87 dec.
hash = Acts::hashStringDynamic(n);
90 throw std::runtime_error(
"ActsTrk::Decoration Aux ID for " + dec.
name +
91 " could not be found");
105 const std::set<std::string>& staticVariables);
Basic definitions for auxiliary types.
char data[hepevt_bytes_allocation_ATLAS]
Interface for non-const operations on an auxiliary store.
Interface for const operations on an auxiliary store.
SG::auxid_t getAuxID(const std::string &name, const std::string &clsname="", const Flags flags=Flags::None, const SG::auxid_t linkedVariable=SG::null_auxid)
Look up a name -> auxid_t mapping.
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Interface for non-const operations on an auxiliary store.
Interface for const operations on an auxiliary store.
std::function< void(SG::IAuxStore *, ActsTrk::IndexType, SG::auxid_t, const std::any &)> CopierType
void decorationCopier(SG::IAuxStore *dst, ActsTrk::IndexType dst_idx, SG::auxid_t decorationId, const std::any &src_ptr)
std::function< const std::any( const SG::IConstAuxStore *, ActsTrk::IndexType, SG::auxid_t)> GetterType
const std::any constDecorationGetter(const SG::IConstAuxStore *container, ActsTrk::IndexType idx, SG::auxid_t decorationId)
const std::any decorationGetter(const SG::IAuxStore *container, ActsTrk::IndexType idx, SG::auxid_t decorationId)
std::function< std::any(SG::IAuxStore *, ActsTrk::IndexType, SG::auxid_t)> SetterType
static Decoration decoration(std::string_view n, GetterType g, CopierType c, SetterType s=static_cast< SetterType >(nullptr))
std::vector< Decoration > restoreDecorations(const SG::IConstAuxStore *container, const std::set< std::string > &staticVariables)
std::any decorationSetter(SG::IAuxStore *container, ActsTrk::IndexType idx, SG::auxid_t decorationId)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
static const auxid_t null_auxid
To signal no aux data item.
size_t auxid_t
Identifier for a particular aux data item.
static constexpr bool value