20#include <ROOT/RNTuple.hxx>
32 TClass *storeTClass =
tc.GetBaseClass(
"SG::IAuxStoreIO");
36 return tc.GetBaseClassOffset( storeTClass );
60 or (
tc and (
tc->GetBaseClass(
"SG::IAuxStore")
62 or
RootType(
tc).Properties().HasProperty(
"IAuxStore") ));
69 return tc and
tc->GetBaseClass(
"SG::IAuxStoreIO");
76 const std::string bname = branch->GetName();
79 if( branch->GetExpectedType(
tc,
type) ) {
82 msg <<
"GetExpectedType() failed for branch: " << bname;
86 return tc->GetBaseClass(
"SG::IAuxStoreHolder") !=
nullptr;
96 std::unique_ptr<RootAuxDynIO::IRootAuxDynWriter>
98 int offsettab_len,
bool do_branch_fill)
const {
99 return std::make_unique<TBranchAuxDynWriter>(
tree, cl, bufferSize, splitLevel,
100 offsettab_len, do_branch_fill);
103 std::unique_ptr<RootAuxDynIO::IRNTupleAuxDynWriter>
105 return std::make_unique<RNTupleAuxDynWriter>(
tc);
111 std::unique_ptr<IRootAuxDynReader>
113 return std::make_unique<TBranchAuxDynReader>(
tree, branch);
116 std::unique_ptr<IRootAuxDynReader>
118 ROOT::RNTupleReader* reader)
const {
119 return std::make_unique<RNTupleAuxDynReader>(field_name, field_type, reader);
126 return std::make_unique<AuxDiscoverySvc>(serSvc, ipcTool);
This file contains the class definition for the AuxDiscoverySvc class.
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.