Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RootCollection.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 ROOTCOLLECTION_ROOTCOLLECTION_H
6 #define ROOTCOLLECTION_ROOTCOLLECTION_H
7 
11 
13 #include "CoralBase/MessageStream.h"
14 
15 #include "GaudiKernel/IFileMgr.h"
16 #include "GaudiKernel/SmartIF.h"
17 #include "Gaudi/PluginService.h"
18 
19 #include <string>
20 #include <vector>
21 
22 class TTree;
23 class TFile;
24 class IFileMgr;
25 
26 
27 namespace pool {
28 
29  class ISession;
30 
31  namespace RootCollection {
32 
33  class Attribute;
34  class AttributeSpecification;
35 
60  class RootCollection : public ICollection {
61 
62  public:
63  typedef Gaudi::PluginService::Factory<ICollection*( const ICollectionDescription*, ICollection::OpenMode, ISession*)> Factory;
64 
100 
101 
104  pool::ISession* );
105 
108 
109  virtual void addTreeBranch( const std::string& name, const std::string& type_name );
110 
112  virtual ICollection::OpenMode openMode() const final override;
113 
115  virtual void open() final override;
116 
118  virtual bool isOpen() const final override;
119 
121  virtual void insertRow( const pool::CollectionRowBuffer& inputRowBuffer ) final override;
122 
124  virtual void commit( bool restartTransaction = false ) final override;
125 
127  virtual void close() final override;
128 
130  virtual const ICollectionDescription& description() const final override;
131 
133  virtual ICollectionQuery* newQuery() final override;
134 
135  private:
136 
141 
142  void delayedFileOpen( const std::string& method );
144  void setupTree() const;
147 
149  std::string retrievePFN()const;
150  std::string retrieveFID();
151  std::string retrieveUniquePFN(const FileCatalog::FileID& fid);
152  std::string retrieveBestPFN(const FileCatalog::FileID& fid)const;
154 
155  void cleanup();
156 
157  public:
158 
159  static const unsigned int c_maxLengthOfStrings = 5000;
160  static const char* const poolOptToRootOpt[];
161  static const Io::IoFlags poolOptToFileMgrOpt[];
162  static const char* const c_tokenBranchName;// = "Token";
163  static const char* const c_attributeListLayoutName;// = "Schema";
164 
165  private:
166 
168 
169  std::string m_name;
170  std::string m_fileName;
172  TTree* m_tree;
173  TFile* m_file;
175  bool m_open;
178 
179  std::unique_ptr<pool::IFileCatalog> m_fileCatalog;
180  coral::MessageStream m_poolOut;
181 
182  SmartIF<IFileMgr> m_fileMgr;
183 
184  };
185  }
186 }
187 #endif
188 
189 
190 
RunTileTBRec.method
method
Definition: RunTileTBRec.py:73
pool::RootCollection::RootCollection::m_file
TFile * m_file
Definition: RootCollection.h:173
pool::RootCollection::RootCollection::open
virtual void open() final override
Explicitly re-opens the collection after it has been closed.
pool::RootCollection::RootCollection::readAttributeListSpecification
void readAttributeListSpecification() const
pool::ICollectionQuery
Definition: ICollectionQuery.h:27
pool::RootCollection::RootCollection::retrieveFileCatalog
void retrieveFileCatalog() const
pool::RootCollection::RootCollection::m_poolOut
coral::MessageStream m_poolOut
Definition: RootCollection.h:180
pool::RootCollection::RootCollection::c_attributeListLayoutName
static const char *const c_attributeListLayoutName
Definition: RootCollection.h:163
pool::RootCollection::RootCollection::~RootCollection
~RootCollection()
Destructor.
pool::RootCollection::RootCollection::m_mode
ICollection::OpenMode m_mode
Definition: RootCollection.h:171
pool::RootCollection::RootCollection::writeAttributeListSpecification
void writeAttributeListSpecification()
pool::RootCollection::RootCollection::commit
virtual void commit(bool restartTransaction=false) final override
Commits the last changes made to the collection.
pool::RootCollection::RootCollection::delayedFileOpen
void delayedFileOpen(const std::string &method)
CollectionDescription.h
pool
pool namespace
Definition: libname.h:15
IFileCatalog.h
pool::RootCollection::RootCollection::cleanup
void cleanup()
pool::RootCollection::RootCollection::m_session
ISession * m_session
Definition: RootCollection.h:174
pool::RootCollection::RootCollection::openMode
virtual ICollection::OpenMode openMode() const final override
Return openMode.
pool::RootCollection::RootCollection::m_open
bool m_open
Definition: RootCollection.h:175
pool::RootCollection::RootCollection::m_fileCatalog
std::unique_ptr< pool::IFileCatalog > m_fileCatalog
Definition: RootCollection.h:179
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
pool::RootCollection::RootCollection::m_fileName
std::string m_fileName
Definition: RootCollection.h:170
pool::RootCollection::RootCollection::poolOptToRootOpt
static const char *const poolOptToRootOpt[]
Definition: RootCollection.h:160
pool::ISession
Definition: ISession.h:31
pool::RootCollection::RootCollection::c_tokenBranchName
static const char *const c_tokenBranchName
Definition: RootCollection.h:162
coral
Definition: ISecondaryEventSelector.h:19
pool::RootCollection::RootCollection::fileCatalogRequired
bool fileCatalogRequired() const
pool::RootCollection::RootCollection::insertRow
virtual void insertRow(const pool::CollectionRowBuffer &inputRowBuffer) final override
Adds a new row of data to the collection.
pool::RootCollection::RootCollection
Collection (and CollectionProxy) implementation based on ROOT trees.
Definition: RootCollection.h:60
CollectionRowBuffer.h
pool::IFileCatalog
Definition: IFileCatalog.h:23
pool::RootCollection::RootCollection::addTreeBranch
virtual void addTreeBranch(const std::string &name, const std::string &type_name)
pool::RootCollection::RootCollection::retrieveUniquePFN
std::string retrieveUniquePFN(const FileCatalog::FileID &fid)
pool::ICollection::OpenMode
OpenMode
Enumeration of the possible open modes of the collection.
Definition: ICollection.h:26
pool::RootCollection::RootCollection::close
virtual void close() final override
Explicitly closes the collection.
pool::RootCollection::RootCollection::poolOptToFileMgrOpt
static const Io::IoFlags poolOptToFileMgrOpt[]
Definition: RootCollection.h:161
pool::CollectionDescription
Definition: CollectionDescription.h:26
pool::RootCollection::RootCollection::m_name
std::string m_name
Definition: RootCollection.h:169
ICollection.h
Io
Definition: MetaDataSvc.h:36
pool::RootCollection::RootCollection::m_fileMgr
SmartIF< IFileMgr > m_fileMgr
Definition: RootCollection.h:182
Preparation.mode
mode
Definition: Preparation.py:107
pool::RootCollection::RootCollection::retrievePFN
std::string retrievePFN() const
pool::RootCollection::RootCollection::setupTree
void setupTree() const
pool::RootCollection::RootCollection::m_schemaWritten
bool m_schemaWritten
Definition: RootCollection.h:177
pool::RootCollection::RootCollection::Factory
Gaudi::PluginService::Factory< ICollection *(const ICollectionDescription *, ICollection::OpenMode, ISession *)> Factory
Definition: RootCollection.h:63
pool::FileID
std::string FileID
Definition: FileDescriptor.h:27
pool::RootCollection::RootCollection::retrieveBestPFN
std::string retrieveBestPFN(const FileCatalog::FileID &fid) const
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
pool::CollectionRowBuffer
Definition: CollectionRowBuffer.h:31
pool::RootCollection::RootCollection::description
virtual const ICollectionDescription & description() const final override
Returns an object used to describe the collection properties.
pool::RootCollection::RootCollection::m_tree
TTree * m_tree
Definition: RootCollection.h:172
pool::RootCollection::RootCollection::retrieveFID
std::string retrieveFID()
pool::RootCollection::RootCollection::getCollectionTree
TTree * getCollectionTree()
pool::RootCollection::RootCollection::c_maxLengthOfStrings
static const unsigned int c_maxLengthOfStrings
Definition: RootCollection.h:159
pool::RootCollection::RootCollection::m_readOnly
bool m_readOnly
Definition: RootCollection.h:176
pool::RootCollection::RootCollection::newQuery
virtual ICollectionQuery * newQuery() final override
Returns an object used to query the collection.
pool::RootCollection::RootCollection::isOpen
virtual bool isOpen() const final override
Checks if the collection is open.
pool::ICollection
Definition: ICollection.h:23
pool::RootCollection::RootCollection::m_description
CollectionDescription m_description
Definition: RootCollection.h:167
pool::RootCollection::RootCollection::RootCollection
RootCollection(const pool::ICollectionDescription *description, pool::ICollection::OpenMode mode, pool::ISession *)
Constructor.
pool::ICollectionDescription
Definition: ICollectionDescription.h:25