Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RNTupleAuxDynReader.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef RNTUPLEAUXDYNREADER_H
6 #define RNTUPLEAUXDYNREADER_H
7 
10 #include "RootAuxDynReader.h"
11 
12 #include "ROOT/RNTupleView.hxx"
13 
14 #include <map>
15 #include <optional>
16 #include <string>
17 
18 #if ROOT_VERSION_CODE < ROOT_VERSION( 6, 35, 0 )
19  namespace ROOT {
20  using ROOT::Experimental::RNTupleView;
21  using ROOT::Experimental::RNTupleReader;
22  }
23 #endif
24 
25 
26 class TClass;
27 
28 namespace RootAuxDynIO
29 {
31  {
32  public :
33 
34  struct FieldInfo
35  {
37 
38  TClass* tclass = 0;
39  TClass* SE_tclass = 0;
40 
41  bool isPackedContainer = false;
42  bool needsSE = false;
44 
46  std::string attribName;
47  std::string fieldName;
48  std::optional< ROOT::RNTupleView<void> > view;
49  };
50 
51 
53  RNTupleAuxDynReader(const std::string& field_name, const std::string& field_type, ROOT::RNTupleReader* reader);
54 
56  void init(bool standalone);
57 
59  virtual void addReaderToObject(void* object, size_t row, std::recursive_mutex* iomtx = nullptr ) override final;
60 
62  FieldInfo& getFieldInfo(const SG::auxid_t& auxid, const SG::AuxStoreInternal& store);
63 
64  ROOT::RNTupleReader* getNativeReader();
65 
67 
68  protected:
69  std::string m_storeFieldName;
70  // offset of the AxuStoreHolder base class in the objects read by the Reader
72  bool m_initialized = false;
73  std::string m_key;
74 
75  // map auxid -> fieldInfo.
77 
78  // not owned
79  ROOT::RNTupleReader* m_ntupleReader;
80  };
81 
82 
83  inline ROOT::RNTupleReader* RNTupleAuxDynReader::getNativeReader() {
84  return m_ntupleReader;
85  }
86 
87 } //namespace
88 #endif
89 
query_example.row
row
Definition: query_example.py:24
SGTest::store
TestStore store
Definition: TestStore.cxx:23
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::TypeError
@ TypeError
Definition: RNTupleAuxDynReader.h:36
RootAuxDynReader
Definition: RootAuxDynReader.h:14
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::view
std::optional< ROOT::RNTupleView< void > > view
Definition: RNTupleAuxDynReader.h:48
RootAuxDynIO::RNTupleAuxDynReader
Definition: RNTupleAuxDynReader.h:31
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
L1CaloPhase1Monitoring.standalone
standalone
Definition: L1CaloPhase1Monitoring.py:120
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::Status
Status
Definition: RNTupleAuxDynReader.h:36
RootAuxDynIO::RNTupleAuxDynReader::m_storeHolderOffset
int m_storeHolderOffset
Definition: RNTupleAuxDynReader.h:71
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo
Definition: RNTupleAuxDynReader.h:35
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::Initialized
@ Initialized
Definition: RNTupleAuxDynReader.h:36
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:161
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::SE_tclass
TClass * SE_tclass
Definition: RNTupleAuxDynReader.h:39
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
RootAuxDynIO::RNTupleAuxDynReader::m_key
std::string m_key
Definition: RNTupleAuxDynReader.h:73
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:292
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::NotFound
@ NotFound
Definition: RNTupleAuxDynReader.h:36
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition: AuxTypes.h:27
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::attribName
std::string attribName
Definition: RNTupleAuxDynReader.h:46
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::fieldName
std::string fieldName
Definition: RNTupleAuxDynReader.h:47
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::auxid
SG::auxid_t auxid
Definition: RNTupleAuxDynReader.h:45
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::status
enum Status status
Definition: RNTupleAuxDynReader.h:43
RootAuxDynIO::RNTupleAuxDynReader::getFieldInfo
FieldInfo & getFieldInfo(const SG::auxid_t &auxid, const SG::AuxStoreInternal &store)
get field informatino for auxid
Definition: RNTupleAuxDynReader.cxx:227
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::needsSE
bool needsSE
Definition: RNTupleAuxDynReader.h:42
RootAuxDynIO::RNTupleAuxDynReader::init
void init(bool standalone)
initialize once the mode of the Aux store is known
Definition: RNTupleAuxDynReader.cxx:192
RootAuxDynIO::RNTupleAuxDynReader::m_initialized
bool m_initialized
Definition: RNTupleAuxDynReader.h:72
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::isPackedContainer
bool isPackedContainer
Definition: RNTupleAuxDynReader.h:41
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::tclass
TClass * tclass
Definition: RNTupleAuxDynReader.h:38
RootAuxDynIO::RNTupleAuxDynReader::m_fieldInfos
std::map< SG::auxid_t, FieldInfo > m_fieldInfos
Definition: RNTupleAuxDynReader.h:76
RootAuxDynIO
Specialization of RootAuxDynStore for reading Aux Dynamic attributes from RNTuple.
Definition: RNTupleContainer.h:28
RootAuxDynIO::RNTupleAuxDynReader::m_ntupleReader
ROOT::RNTupleReader * m_ntupleReader
Definition: RNTupleAuxDynReader.h:79
python.CaloAddPedShiftConfig.default
default
Definition: CaloAddPedShiftConfig.py:43
RootAuxDynIO::RNTupleAuxDynReader::getNativeReader
ROOT::RNTupleReader * getNativeReader()
Definition: RNTupleAuxDynReader.h:83
AthMessaging.h
RootAuxDynIO::RNTupleAuxDynReader::FieldInfo::NotInitialized
@ NotInitialized
Definition: RNTupleAuxDynReader.h:36
RootAuxDynIO::RNTupleAuxDynReader::m_storeFieldName
std::string m_storeFieldName
Definition: RNTupleAuxDynReader.h:69
collisions.reader
reader
read the goodrunslist xml file(s)
Definition: collisions.py:22
AuxStoreInternal.h
An auxiliary data store that holds data internally.
ROOT
Selection rules: declare transient members.
Definition: DataVector.h:580
RootAuxDynReader.h