Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
17 m_d3pdSvc(
"D3PD::RootReaderD3PDSvc",
name ),
19 m_metadataTools( this ),
24 "The D3PD creation service." );
26 "List of IObjFillerTool instances to run." );
28 "List of IMetadataTool instances to run." );
30 "The name of the tuple. The interpretation of this "
31 "depends on the D3PDSvc." );
34 "Common prefix to the D3PD variable names" );
36 "Name of the C++ classes to be generated" );
39 "Output directory for the generated sources" );
44 CHECK( m_d3pdSvc.retrieve() );
45 CHECK( m_tools.retrieve() );
48 if( ( m_tools.size() != m_prefixes.size() ) ||
49 ( m_tools.size() != m_classnames.size() ) ) {
50 REPORT_MESSAGE( MSG::ERROR ) <<
"The configuration is inconsistent: "
51 << m_tools.size() <<
" tools, "
52 << m_prefixes.size() <<
" prefixes "
53 << m_classnames.size() <<
" classnames";
54 return StatusCode::FAILURE;
58 for(
size_t i = 0;
i < m_tools.size(); ++
i ) {
61 if( m_classnames[
i ] ==
"" ) {
63 std::ostringstream classname;
64 classname <<
"D3PDObject" <<
counter;
65 m_classnames[
i ] = classname.str();
70 CHECK( m_d3pdSvc->make( m_tuplePath + m_classnames[
i ], d3pd ) );
72 ATH_MSG_DEBUG(
"Creating D3PD object with name: " << m_tuplePath
73 << m_classnames[
i ] );
76 IReaderD3PD* rd3pd =
dynamic_cast< IReaderD3PD*
>( d3pd );
79 << m_d3pdSvc <<
") did not create a "
80 <<
"D3PD::IReaderD3PD object!";
81 return StatusCode::FAILURE;
85 rd3pd->setIsContainer( m_tools[
i ]->isContainerFiller() );
86 rd3pd->setPrefix( m_prefixes[
i ] );
89 m_d3pds.push_back( rd3pd );
94 for(
size_t i = 0;
i < m_tools.size(); ++
i ) {
95 if( m_classnames[
i ] ==
"" )
continue;
96 CHECK( m_tools[
i ]->configureD3PD( m_d3pds[
i ] ) );
100 return StatusCode::SUCCESS;
106 for(
size_t i = 0;
i <
m_tools.size(); ++
i ) {
111 return StatusCode::SUCCESS;
119 for(
size_t i = 0;
i <
m_tools.size(); ++
i ) {
125 return StatusCode::SUCCESS;
std::string m_tuplePath
The D3PD base name.
virtual StatusCode execute()
Standard Gaudi execute method.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
MultiReaderAlg(const std::string &name, ISvcLocator *svcloc)
Standard algorithm constructor.
ToolHandleArray< IObjFillerTool > m_tools
Property: List of object filler tools to run.
std::vector< IReaderD3PD * > m_d3pds
The created tuples. Note: we don't take ownership.
Block filler tool for noisy FEB information.
std::vector< std::string > m_classnames
Reader class names.
virtual StatusCode finalize()
Standard Gaudi finalize method.
std::vector< std::string > m_prefixes
Variable name prefixes.
::StatusCode StatusCode
StatusCode definition for legacy code.
#define CHECK(...)
Evaluate an expression and check for errors.
StatusCode DummyInitAlg::initialize ATLAS_NOT_THREAD_SAFE()
Standard Gaudi initialize method.
std::string m_dir
Directory where the sources should be put.
ServiceHandle< ID3PDSvc > m_d3pdSvc
Property: The D3PD creation service.
Helpers for checking error return status codes and reporting errors.
#define REPORT_MESSAGE(LVL)
Report a message.
ToolHandleArray< IMetadataTool > m_metadataTools
Property: List of metadata tools to run.
bool m_booked
Flag that we've called book().