ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
xAODRootAccess
xAODRootAccess
tools
RObjectManager.h
Go to the documentation of this file.
1
// Dear emacs, this is -*- c++ -*-
2
3
/*
4
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
#ifndef XAODROOTACCESS_TOOLS_ROBJECTMANAGER_H
8
#define XAODROOTACCESS_TOOLS_ROBJECTMANAGER_H
9
10
// Local include(s).
11
#include "
xAODRootAccess/tools/IObjectManager.h
"
12
13
// ROOT include(s).
14
#include <ROOT/RNTupleView.hxx>
15
16
// System include(s).
17
#include <functional>
18
#include <memory>
19
20
namespace
xAOD::Experimental
{
21
30
class
RObjectManager
:
public
Details::IObjectManager
{
31
32
public
:
34
RObjectManager
(ROOT::RNTupleView<void>
field
, const ::Long64_t& entry,
35
std::unique_ptr<THolder>
holder
);
37
~RObjectManager
();
38
40
ROOT::RNTupleView<void>&
field
();
42
const
ROOT::RNTupleView<void>&
field
()
const
;
43
45
virtual ::Int_t
getEntry
(::Int_t getall = 0)
override
;
46
48
virtual
const
void
*
object
()
const override
;
50
virtual
void
*
object
()
override
;
52
virtual
void
setObject
(
void
* obj)
override
;
53
55
virtual ::Bool_t
create
()
override
;
57
virtual ::Bool_t
isSet
()
const override
;
59
virtual
void
reset
()
override
;
60
61
private
:
63
ROOT::RNTupleView<void>
m_field
;
65
std::unique_ptr<THolder>
m_holder
;
67
std::reference_wrapper<const ::Long64_t>
m_entryToLoad
;
69
::Long64_t
m_entry
;
71
::Bool_t
m_isSet
;
72
73
};
// class RObjectManager
74
75
}
// namespace xAOD::Experimental
76
77
#endif
// XAODROOTACCESS_TOOLS_ROBJECTMANAGER_H
IObjectManager.h
xAOD::Details::IObjectManager
Manager for EDM objects created by ROOT.
Definition
IObjectManager.h:20
xAOD::Details::IObjectManager::holder
const THolder * holder() const
Accessor to the Holder object.
Definition
IObjectManager.cxx:43
xAOD::Experimental::RObjectManager::m_entryToLoad
std::reference_wrapper< const ::Long64_t > m_entryToLoad
Entry number to load next.
Definition
RObjectManager.h:67
xAOD::Experimental::RObjectManager::getEntry
virtual::Int_t getEntry(::Int_t getall=0) override
Function for updating the object in memory if needed.
Definition
RObjectManager.cxx:45
xAOD::Experimental::RObjectManager::create
virtual::Bool_t create() override
Create the object for the current event.
Definition
RObjectManager.cxx:100
xAOD::Experimental::RObjectManager::RObjectManager
RObjectManager(ROOT::RNTupleView< void > field, const ::Long64_t &entry, std::unique_ptr< THolder > holder)
Constructor.
Definition
RObjectManager.cxx:16
xAOD::Experimental::RObjectManager::m_isSet
::Bool_t m_isSet
Was the object set for the current event?
Definition
RObjectManager.h:71
xAOD::Experimental::RObjectManager::m_holder
std::unique_ptr< THolder > m_holder
Holder object for the EDM object.
Definition
RObjectManager.h:65
xAOD::Experimental::RObjectManager::~RObjectManager
~RObjectManager()
Destructor.
xAOD::Experimental::RObjectManager::m_field
ROOT::RNTupleView< void > m_field
The typeless object taking care of reading the field.
Definition
RObjectManager.h:63
xAOD::Experimental::RObjectManager::reset
virtual void reset() override
Reset the object at the end of processing of an event.
Definition
RObjectManager.cxx:117
xAOD::Experimental::RObjectManager::m_entry
::Long64_t m_entry
The last entry that was loaded for this field.
Definition
RObjectManager.h:69
xAOD::Experimental::RObjectManager::setObject
virtual void setObject(void *obj) override
Function replacing the object being handled.
Definition
RObjectManager.cxx:91
xAOD::Experimental::RObjectManager::object
virtual const void * object() const override
Function getting a const pointer to the object being handled.
Definition
RObjectManager.cxx:77
xAOD::Experimental::RObjectManager::isSet
virtual::Bool_t isSet() const override
Check if the object was set for the current event.
Definition
RObjectManager.cxx:108
xAOD::Experimental::RObjectManager::field
ROOT::RNTupleView< void > & field()
Accessor to the field (non-const).
Definition
RObjectManager.cxx:27
xAOD::Experimental
Definition
RAuxFieldManager.cxx:16
Generated on
for ATLAS Offline Software by
1.17.0