ATLAS Offline Software
RNTCollection.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 RNTCOLLECTION_H
6 #define RNTCOLLECTION_H
7 
11 
12 #include "POOLCore/DbPrint.h"
13 
14 #include "GaudiKernel/IFileMgr.h"
15 #include "GaudiKernel/SmartIF.h"
16 #include "Gaudi/PluginService.h"
17 
18 
19 #include <string>
20 #include <memory>
21 
22 #include "RVersion.h"
23 
24 class TFile;
25 class IFileMgr;
26 
27 namespace ROOT {
28  class RNTupleModel;
29  class RNTupleWriter;
30  class RNTupleReader;
31 }
32 
33 namespace pool {
34 
35  class ISession;
36 
37  namespace RootCollection {
38  class Attribute;
39  class AttributeSpecification;
40 
41  static constexpr auto MODULE_NAME = "RootCollection";
42 
47  class RNTCollection : public ICollection, public APRMessaging {
48 
49  public:
50  typedef Gaudi::PluginService::Factory<ICollection*( const ICollectionDescription*, ICollection::OpenMode, ISession*)> Factory;
51 
64 
65 
68  pool::ISession* );
69 
72 
74  virtual ICollection::OpenMode openMode() const final override;
75 
77  virtual void open() final override;
78 
80  virtual bool isOpen() const final override;
81 
83  virtual void insertRow( const pool::CollectionRowBuffer& inputRowBuffer ) final override;
84 
86  virtual void commit( bool restartTransaction = false ) final override;
87 
89  virtual void close() final override;
90 
92  virtual const ICollectionDescription& description() const final override;
93 
95  virtual ICollectionCursor& cursor() final override;
96 
97  private:
101 
102  void delayedFileOpen(const std::string& method);
103  std::unique_ptr<ROOT::RNTupleReader> getCollectionRNTuple();
104  void addField(ROOT::RNTupleModel* model, const std::string& field_name, const std::string& field_type);
105 
106  void cleanup();
107 
109  std::unique_ptr<ROOT::RNTupleReader> m_reader;
110  std::unique_ptr<ROOT::RNTupleWriter> m_rntupleWriter;
111 
112  std::string m_name;
113  std::string m_fileName;
115  TFile* m_file;
117  bool m_open;
118 
119  SmartIF<IFileMgr> m_fileMgr;
120  };
121  }
122 }
123 #endif
RunTileTBRec.method
method
Definition: RunTileTBRec.py:73
pool::RootCollection::RNTCollection::m_file
TFile * m_file
Definition: RNTCollection.h:115
pool::RootCollection::RNTCollection::m_session
ISession * m_session
Definition: RNTCollection.h:116
pool::RootCollection::RNTCollection::addField
void addField(ROOT::RNTupleModel *model, const std::string &field_name, const std::string &field_type)
pool::RootCollection::RNTCollection::m_description
CollectionDescription m_description
Definition: RNTCollection.h:108
pool::RootCollection::RNTCollection::m_reader
std::unique_ptr< ROOT::RNTupleReader > m_reader
Definition: RNTCollection.h:109
pool::RootCollection::RNTCollection::m_fileName
std::string m_fileName
Definition: RNTCollection.h:113
CollectionDescription.h
pool::RootCollection::RNTCollection::openMode
virtual ICollection::OpenMode openMode() const final override
Return openMode.
pool
pool namespace
Definition: libname.h:15
pool::RootCollection::RNTCollection::cursor
virtual ICollectionCursor & cursor() final override
Returns a cursor for the collection.
pool::APRMessaging
AthMessaging wrapper to set the output level in APR components.
Definition: DbPrint.h:35
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
pool::RootCollection::RNTCollection::RNTCollection
RNTCollection(const pool::ICollectionDescription *description, pool::ICollection::OpenMode mode, pool::ISession *)
Constructor.
pool::RootCollection::RNTCollection::close
virtual void close() final override
Explicitly closes the collection.
pool::ISession
Definition: ISession.h:32
pool::RootCollection::RNTCollection::m_fileMgr
SmartIF< IFileMgr > m_fileMgr
Definition: RNTCollection.h:119
pool::RootCollection::RNTCollection
Collection (and CollectionProxy) implementation based on RNTuple.
Definition: RNTCollection.h:47
DbPrint.h
CollectionRowBuffer.h
pool::RootCollection::RNTCollection::m_rntupleWriter
std::unique_ptr< ROOT::RNTupleWriter > m_rntupleWriter
Definition: RNTCollection.h:110
pool::ICollection::OpenMode
OpenMode
Enumeration of the possible open modes of the collection.
Definition: ICollection.h:26
pool::CollectionDescription
Definition: CollectionDescription.h:27
ICollection.h
pool::RootCollection::RNTCollection::Factory
Gaudi::PluginService::Factory< ICollection *(const ICollectionDescription *, ICollection::OpenMode, ISession *)> Factory
Definition: RNTCollection.h:50
Preparation.mode
mode
Definition: Preparation.py:107
pool::RootCollection::RNTCollection::description
virtual const ICollectionDescription & description() const final override
Returns an object used to describe the collection properties.
pool::ICollectionCursor
Definition: ICollectionCursor.h:22
pool::RootCollection::RNTCollection::commit
virtual void commit(bool restartTransaction=false) final override
Commits the last changes made to the collection.
pool::CollectionRowBuffer
Definition: CollectionRowBuffer.h:31
pool::RootCollection::RNTCollection::m_open
bool m_open
Definition: RNTCollection.h:117
pool::RootCollection::RNTCollection::insertRow
virtual void insertRow(const pool::CollectionRowBuffer &inputRowBuffer) final override
Adds a new row of data to the collection.
pool::RootCollection::RNTCollection::cleanup
void cleanup()
calibdata.delete
list delete
Definition: calibdata.py:45
pool::RootCollection::RNTCollection::isOpen
virtual bool isOpen() const final override
Checks if the collection is open.
pool::RootCollection::RNTCollection::open
virtual void open() final override
Explicitly re-opens the collection after it has been closed.
pool::RootCollection::RNTCollection::m_name
std::string m_name
Definition: RNTCollection.h:112
pool::RootCollection::RNTCollection::getCollectionRNTuple
std::unique_ptr< ROOT::RNTupleReader > getCollectionRNTuple()
correlationModel::model
model
Definition: AsgElectronEfficiencyCorrectionTool.cxx:46
private
#define private
Definition: xAODTruthCnvAlg.h:20
pool::RootCollection::RNTCollection::delayedFileOpen
void delayedFileOpen(const std::string &method)
pool::RootCollection::RNTCollection::~RNTCollection
~RNTCollection()
Destructor.
ROOT
Selection rules: declare transient members.
Definition: DataVector.h:581
pool::ICollection
Definition: ICollection.h:23
pool::RootCollection::RNTCollection::m_mode
ICollection::OpenMode m_mode
Definition: RNTCollection.h:114
pool::ICollectionDescription
Definition: ICollectionDescription.h:23