7#ifndef XAODROOTACCESS_TOOLS_ROBJECTMANAGER_H
8#define XAODROOTACCESS_TOOLS_ROBJECTMANAGER_H
14#include <ROOT/RNTupleView.hxx>
35 std::unique_ptr<THolder>
holder);
40 ROOT::RNTupleView<void>&
field();
42 const ROOT::RNTupleView<void>&
field()
const;
45 virtual ::Int_t
getEntry(::Int_t getall = 0)
override;
48 virtual const void*
object()
const override;
50 virtual void*
object()
override;
52 virtual void setObject(
void* obj)
override;
55 virtual ::Bool_t
create()
override;
57 virtual ::Bool_t
isSet()
const override;
59 virtual void reset()
override;
Manager for EDM objects created by ROOT.
const THolder * holder() const
Accessor to the Holder object.
std::reference_wrapper< const ::Long64_t > m_entryToLoad
Entry number to load next.
virtual::Int_t getEntry(::Int_t getall=0) override
Function for updating the object in memory if needed.
virtual::Bool_t create() override
Create the object for the current event.
RObjectManager(ROOT::RNTupleView< void > field, const ::Long64_t &entry, std::unique_ptr< THolder > holder)
Constructor.
::Bool_t m_isSet
Was the object set for the current event?
std::unique_ptr< THolder > m_holder
Holder object for the EDM object.
~RObjectManager()
Destructor.
ROOT::RNTupleView< void > m_field
The typeless object taking care of reading the field.
virtual void reset() override
Reset the object at the end of processing of an event.
::Long64_t m_entry
The last entry that was loaded for this field.
virtual void setObject(void *obj) override
Function replacing the object being handled.
virtual const void * object() const override
Function getting a const pointer to the object being handled.
virtual::Bool_t isSet() const override
Check if the object was set for the current event.
ROOT::RNTupleView< void > & field()
Accessor to the field (non-const)