19#include <ROOT/RNTuple.hxx>
31 TClass *storeTClass =
tc.GetBaseClass(
"SG::IAuxStoreIO");
35 return tc.GetBaseClassOffset( storeTClass );
59 or (
tc and (
tc->GetBaseClass(
"SG::IAuxStore")
61 or
RootType(
tc).Properties().HasProperty(
"IAuxStore") ));
68 return tc and
tc->GetBaseClass(
"SG::IAuxStoreIO");
75 const std::string bname = branch->GetName();
78 if( branch->GetExpectedType(
tc,
type) ) {
81 msg <<
"GetExpectedType() failed for branch: " << bname;
85 return tc->GetBaseClass(
"SG::IAuxStoreHolder") !=
nullptr;
95 std::unique_ptr<RootAuxDynIO::IRootAuxDynWriter>
97 int offsettab_len,
bool do_branch_fill)
const {
98 return std::make_unique<TBranchAuxDynWriter>(
tree, cl, bufferSize, splitLevel,
99 offsettab_len, do_branch_fill);
102 std::unique_ptr<RootAuxDynIO::IRNTupleAuxDynWriter>
104 return std::make_unique<RNTupleAuxDynWriter>(
tc);
110 std::unique_ptr<IRootAuxDynReader>
112 return std::make_unique<TBranchAuxDynReader>(
tree, branch);
115 std::unique_ptr<IRootAuxDynReader>
117 ROOT::RNTupleReader* reader)
const {
118 return std::make_unique<RNTupleAuxDynReader>(field_name, field_type, reader);
Exceptions that can be thrown from AthContainers.
DECLARE_COMPONENT(MuonGMR4::ReadoutGeomCnvAlg)
AuxDynAttrAccess(TClass &tc)
SG::IAuxStoreIO * castIOStore(void *object)
int m_ioStoreOffset
AuxStoreIO interface offset in the subclass type (for casting). negative means no inheritance.
TClass & m_holderType
TClass of the type containing the AuxStore with attributes.
int auxStoreOffset(TClass &tc)
bool hasAuxDynStore() const
Interface providing I/O for a generic auxiliary store.
Helper class to use to report a message.
Helper for emitting error messages.
Specialization of RootAuxDynStore for reading Aux Dynamic attributes from RNTuple.
bool endsWithAuxPostfix(std::string_view str)
Check if a string ends with AUX_POSTFIX.