ATLAS Offline Software
RootOutputStreamTool.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // RootOutputStreamTool.h
8 // Header file for class Athena::RootOutputStreamTool
9 // Author Peter van Gemmeren <gemmeren@anl.gov>
11 #ifndef ATHENAROOTCOMPS_ROOTOUTPUTSTREAMTOOL_H
12 #define ATHENAROOTCOMPS_ROOTOUTPUTSTREAMTOOL_H 1
13 
20 
21 // fwk
22 #include "GaudiKernel/ServiceHandle.h"
24 
25 class StoreGateSvc;
26 class IConversionSvc;
27 class IClassIDSvc;
28 
29 namespace Athena {
33 class RootOutputStreamTool : public extends<::AthAlgTool, ::IAthenaOutputStreamTool> {
34 public:
36  RootOutputStreamTool(const std::string& type, const std::string& name, const IInterface* parent);
37 
39  virtual ~RootOutputStreamTool();
40 
42  virtual StatusCode initialize() override;
43  virtual StatusCode finalize() override;
44 
48  virtual StatusCode connectServices(const std::string& dataStore, const std::string& cnvSvc, bool extendProvenenceRecord) override;
49 
53  virtual StatusCode connectOutput(const std::string& outputName) override;
54 
57  virtual StatusCode commitOutput(bool doCommit = false) override;
58 
61  virtual StatusCode finalizeOutput() override;
62 
66  virtual StatusCode streamObjects(const IAthenaOutputStreamTool::TypeKeyPairs& typeKeys, const std::string& outputName = "") override;
67 
73  virtual StatusCode streamObjects(const IAthenaOutputStreamTool::DataObjectVec& dataObjects, const std::string& outputName = "") override;
74 
75  virtual StatusCode getInputItemList(SG::IFolder* m_p2BWrittenFromTool) override;
76 
77 private:
84 
86  std::string m_outputName;
87 
89  std::string m_treeName;
90 };
91 
92 }//> end namespace Athena
93 
94 #endif
Athena::RootOutputStreamTool::finalize
virtual StatusCode finalize() override
Definition: RootOutputStreamTool.cxx:57
Athena::RootOutputStreamTool::~RootOutputStreamTool
virtual ~RootOutputStreamTool()
Destructor.
Definition: RootOutputStreamTool.cxx:44
IAthenaOutputStreamTool::TypeKeyPairs
std::vector< TypeKeyPair > TypeKeyPairs
Definition: IAthenaOutputStreamTool.h:100
Athena::RootOutputStreamTool
This is the AthenaRoot version of AthenaServices/AthenaOutputStreamTool.
Definition: RootOutputStreamTool.h:33
Athena::RootOutputStreamTool::getInputItemList
virtual StatusCode getInputItemList(SG::IFolder *m_p2BWrittenFromTool) override
Definition: RootOutputStreamTool.cxx:218
Athena::RootOutputStreamTool::RootOutputStreamTool
RootOutputStreamTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard AlgTool Constructor.
Definition: RootOutputStreamTool.cxx:33
Athena::RootOutputStreamTool::commitOutput
virtual StatusCode commitOutput(bool doCommit=false) override
Commit the output stream after having streamed out objects Must commitOutput AFTER streaming.
Definition: RootOutputStreamTool.cxx:107
Athena::RootOutputStreamTool::m_outputName
std::string m_outputName
Name of the output file.
Definition: RootOutputStreamTool.h:86
Athena::RootOutputStreamTool::m_storeSvc
ServiceHandle< ::StoreGateSvc > m_storeSvc
ServiceHandle to the data store service.
Definition: RootOutputStreamTool.h:79
SG::IFolder
a run-time configurable list of data objects
Definition: SGIFolder.h:21
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
IAthenaOutputStreamTool.h
Interface to an output stream tool.
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:120
Athena::RootOutputStreamTool::connectOutput
virtual StatusCode connectOutput(const std::string &outputName) override
Connect to the output stream Must connectOutput BEFORE streaming Only specify "outputName" if one wan...
Definition: RootOutputStreamTool.cxx:89
Athena::RootOutputStreamTool::m_clidSvc
ServiceHandle< ::IClassIDSvc > m_clidSvc
ServiceHandle to clid service.
Definition: RootOutputStreamTool.h:83
Athena
Some weak symbol referencing magic...
Definition: AthLegacySequence.h:21
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Athena::RootOutputStreamTool::connectServices
virtual StatusCode connectServices(const std::string &dataStore, const std::string &cnvSvc, bool extendProvenenceRecord) override
Specify which data store and conversion service to use and whether to extend provenence Only use if o...
Definition: RootOutputStreamTool.cxx:75
Athena::RootOutputStreamTool::streamObjects
virtual StatusCode streamObjects(const IAthenaOutputStreamTool::DataObjectVec &dataObjects, const std::string &outputName="") override
Stream out a vector of objects Must convert to DataObject, e.g.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
lumiFormat.outputName
string outputName
Definition: lumiFormat.py:65
Athena::RootOutputStreamTool::streamObjects
virtual StatusCode streamObjects(const IAthenaOutputStreamTool::TypeKeyPairs &typeKeys, const std::string &outputName="") override
Stream out objects.
Definition: RootOutputStreamTool.cxx:129
IAthenaOutputStreamTool::DataObjectVec
std::vector< DataObject * > DataObjectVec
Stream out a vector of objects Must convert to DataObject, e.g.
Definition: IAthenaOutputStreamTool.h:108
Athena::RootOutputStreamTool::m_treeName
std::string m_treeName
Name of the output tuple.
Definition: RootOutputStreamTool.h:89
Athena::RootOutputStreamTool::m_conversionSvc
ServiceHandle< ::IConversionSvc > m_conversionSvc
ServiceHandle to the data conversion service.
Definition: RootOutputStreamTool.h:81
Athena::RootOutputStreamTool::initialize
virtual StatusCode initialize() override
Gaudi AlgTool Interface method implementations:
Definition: RootOutputStreamTool.cxx:47
Athena::RootOutputStreamTool::finalizeOutput
virtual StatusCode finalizeOutput() override
Finalize the output stream after the last commit, e.g.
Definition: RootOutputStreamTool.cxx:124
ServiceHandle
Definition: ClusterMakerTool.h:37