ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
AthenaRoot
RootAuxDynIO
src
RNTupleAuxDynReader.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef RNTUPLEAUXDYNREADER_H
6
#define RNTUPLEAUXDYNREADER_H
7
8
#include "
AthenaBaseComps/AthMessaging.h
"
9
#include "
AthContainers/AuxStoreInternal.h
"
10
#include "
RootAuxDynReader.h
"
11
12
#include "ROOT/RNTupleView.hxx"
13
14
#include <map>
15
#include <optional>
16
#include <string>
17
18
class
TClass;
19
20
namespace
RootAuxDynIO
21
{
22
class
RNTupleAuxDynReader
:
public
AthMessaging
,
public
RootAuxDynReader
23
{
24
public :
25
26
struct
FieldInfo
27
{
28
enum
Status
{
NotInitialized
,
Initialized
,
TypeError
,
NotFound
};
29
30
TClass*
tclass
= 0;
31
TClass*
SE_tclass
= 0;
32
33
bool
isPackedContainer
=
false
;
34
bool
needsSE
=
false
;
35
enum
Status
status
=
NotInitialized
;
36
37
SG::auxid_t
auxid
= 0;
38
std::string
attribName
;
39
std::string
fieldName
;
40
std::optional< ROOT::RNTupleView<void> >
view
;
41
};
42
43
45
RNTupleAuxDynReader
(
const
std::string& field_name,
const
std::string& field_type, ROOT::RNTupleReader* reader);
46
48
void
init
(
bool
standalone);
49
51
virtual
void
addReaderToObject
(
void
*
object
,
size_t
row, std::recursive_mutex* iomtx =
nullptr
) override final;
52
54
FieldInfo
&
getFieldInfo
(
const
SG
::auxid_t& auxid,
const
SG
::AuxStoreInternal& store);
55
56
ROOT
::RNTupleReader*
getNativeReader
();
57
58
virtual ~
RNTupleAuxDynReader
() = default;
59
60
protected
:
61
std
::
string
m_storeFieldName
;
62
// offset of the AxuStoreHolder base class in the objects read by the Reader
63
int
m_storeHolderOffset
= -1;
64
bool
m_initialized
= false;
65
std
::
string
m_key
;
66
67
// map auxid -> fieldInfo.
68
std
::
map
<
SG
::auxid_t,
FieldInfo
>
m_fieldInfos
;
69
70
// not owned
71
ROOT
::RNTupleReader*
m_ntupleReader
;
72
};
73
74
75
inline
ROOT
::RNTupleReader*
RNTupleAuxDynReader
::
getNativeReader
() {
76
return
m_ntupleReader
;
77
}
78
79
}
//namespace
80
#endif
81
AthMessaging.h
AuxStoreInternal.h
An auxiliary data store that holds data internally.
RootAuxDynReader.h
AthMessaging::AthMessaging
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Definition
AthMessaging.cxx:13
RootAuxDynIO::RNTupleAuxDynReader::m_key
std::string m_key
Definition
RNTupleAuxDynReader.h:65
RootAuxDynIO::RNTupleAuxDynReader::init
void init(bool standalone)
initialize once the mode of the Aux store is known
Definition
RNTupleAuxDynReader.cxx:183
RootAuxDynIO::RNTupleAuxDynReader::m_storeHolderOffset
int m_storeHolderOffset
Definition
RNTupleAuxDynReader.h:63
RootAuxDynIO::RNTupleAuxDynReader::getFieldInfo
FieldInfo & getFieldInfo(const SG::auxid_t &auxid, const SG::AuxStoreInternal &store)
get field informatino for auxid
Definition
RNTupleAuxDynReader.cxx:220
RootAuxDynIO::RNTupleAuxDynReader::m_storeFieldName
std::string m_storeFieldName
Definition
RNTupleAuxDynReader.h:61
RootAuxDynIO::RNTupleAuxDynReader::m_initialized
bool m_initialized
Definition
RNTupleAuxDynReader.h:64
RootAuxDynIO::RNTupleAuxDynReader::m_ntupleReader
ROOT::RNTupleReader * m_ntupleReader
Definition
RNTupleAuxDynReader.h:71
RootAuxDynIO::RNTupleAuxDynReader::RNTupleAuxDynReader
RNTupleAuxDynReader(const std::string &field_name, const std::string &field_type, ROOT::RNTupleReader *reader)
create Reader for Aux attributes of an AuxContainer object stored in a given field
Definition
RNTupleAuxDynReader.cxx:152
RootAuxDynIO::RNTupleAuxDynReader::addReaderToObject
virtual void addReaderToObject(void *object, size_t row, std::recursive_mutex *iomtx=nullptr) override final
attach RNTupleAuxStore to the current Aux container @object
Definition
RNTupleAuxDynReader.cxx:285
RootAuxDynIO::RNTupleAuxDynReader::getNativeReader
ROOT::RNTupleReader * getNativeReader()
Definition
RNTupleAuxDynReader.h:75
RootAuxDynIO::RNTupleAuxDynReader::m_fieldInfos
std::map< SG::auxid_t, FieldInfo > m_fieldInfos
Definition
RNTupleAuxDynReader.h:68
RootAuxDynReader
Definition
RootAuxDynReader.h:14
map
STL class.
const
ROOT
Selection rules: declare transient members.
Definition
DataVector.h:581
RootAuxDynIO
Specialization of RootAuxDynStore for reading Aux Dynamic attributes from RNTuple.
Definition
RNTupleContainer.h:28
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition
AuxTypes.h:27
std
STL namespace.
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo
Definition
RNTupleAuxDynReader.h:27
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::status
enum Status status
Definition
RNTupleAuxDynReader.h:35
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::attribName
std::string attribName
Definition
RNTupleAuxDynReader.h:38
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::SE_tclass
TClass * SE_tclass
Definition
RNTupleAuxDynReader.h:31
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::isPackedContainer
bool isPackedContainer
Definition
RNTupleAuxDynReader.h:33
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::fieldName
std::string fieldName
Definition
RNTupleAuxDynReader.h:39
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::needsSE
bool needsSE
Definition
RNTupleAuxDynReader.h:34
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::tclass
TClass * tclass
Definition
RNTupleAuxDynReader.h:30
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::auxid
SG::auxid_t auxid
Definition
RNTupleAuxDynReader.h:37
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::view
std::optional< ROOT::RNTupleView< void > > view
Definition
RNTupleAuxDynReader.h:40
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::Status
Status
Definition
RNTupleAuxDynReader.h:28
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::Initialized
@ Initialized
Definition
RNTupleAuxDynReader.h:28
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::NotInitialized
@ NotInitialized
Definition
RNTupleAuxDynReader.h:28
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::TypeError
@ TypeError
Definition
RNTupleAuxDynReader.h:28
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::NotFound
@ NotFound
Definition
RNTupleAuxDynReader.h:28
protected
#define protected
Definition
testRead.cxx:26
Generated on
for ATLAS Offline Software by
1.17.0