Loading [MathJax]/extensions/MathZoom.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
19 #include "GaudiKernel/IConversionSvc.h"
20 #include "GaudiKernel/IOpaqueAddress.h"
21 #include "GaudiKernel/IRegistry.h"
22 #include "GaudiKernel/DataObject.h"
25 #include "GaudiKernel/IClassIDSvc.h"
35 m_storeSvc(
"StoreGateSvc",
name),
36 m_conversionSvc(
"Athena::RootCnvSvc/AthenaRootCnvSvc",
name),
37 m_clidSvc(
"ClassIDSvc",
name) {
39 declareInterface<IAthenaOutputStreamTool>(
this);
41 declareProperty(
"Store",
m_storeSvc,
"Store from which to stream out event data");
42 declareProperty(
"TreeName",
m_treeName =
"CollectionTree",
"Name of the output event tree");
43 declareProperty(
"OutputFile",
m_outputName,
"Name of the output file");
53 return StatusCode::FAILURE;
59 return StatusCode::SUCCESS;
81 ATH_MSG_VERBOSE(
"connectServices dataStore = " << dataStore <<
", cnvSvc = " << cnvSvc <<
", extendProv = " << extendProvenenceRecord);
91 return StatusCode::SUCCESS;
100 return StatusCode::FAILURE;
105 return StatusCode::FAILURE;
109 return StatusCode::SUCCESS;
116 return StatusCode::FAILURE;
121 return StatusCode::FAILURE;
126 return StatusCode::SUCCESS;
131 return StatusCode::SUCCESS;
137 std::vector<DataObject*> dataObjects;
138 dataObjects.reserve(typeKeys.size());
139 for (IAthenaOutputStreamTool::TypeKeyPairs::const_iterator
first = typeKeys.begin(), last = typeKeys.end();
141 const std::string&
type = (*first).first;
142 const std::string&
key = (*first).second;
147 return StatusCode::FAILURE;
149 DataObject* dObj = 0;
168 dataObjects.push_back(dObj);
178 return StatusCode::FAILURE;
181 std::set<DataObject*> written;
182 for (std::vector<DataObject*>::const_iterator doIter = dataObjects.begin(), doLast = dataObjects.end();
183 doIter != doLast; ++doIter) {
184 ATH_MSG_VERBOSE(
" --> [" << (*doIter)->clID() <<
"/" << (*doIter)->name() <<
"]...");
186 if (written.find(*doIter) != written.end()) {
188 ATH_MSG_DEBUG(
"Trying to write DataObject twice (clid/key): " << (*doIter)->clID() <<
", " << (*doIter)->name());
191 written.insert(*doIter);
193 IOpaqueAddress* addr = 0;
195 IRegistry* ireg = (*doIter)->registry();
204 if (
dynamic_cast<RootBranchAddress*
>(ireg->address())) {
205 delete addr; addr = 0;
207 ireg->setAddress(addr);
215 ATH_MSG_ERROR(
"Could not create Rep for DataObject (clid/key): " << (*doIter)->clID() <<
", " << (*doIter)->name());
216 return StatusCode::FAILURE;
220 return StatusCode::SUCCESS;
225 return StatusCode::SUCCESS;
230 return StatusCode::SUCCESS;
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
#define ATH_MSG_VERBOSE(x)
a run-time configurable list of data objects
Some weak symbol referencing magic...
::StatusCode StatusCode
StatusCode definition for legacy code.
This file contains the class definition for the RootSvc class.
uint32_t CLID
The Class ID type.
#define ATH_MSG_WARNING(x)
This file contains the class definition for the Athena::RootConnection class.