| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | List of all members
Gaudi::RootTool Class Reference

Description: More...

`#include <src/RootTool.h>`

Inheritance diagram for Gaudi::RootTool:
[legend]
Collaboration diagram for Gaudi::RootTool:
[legend]

## Public Member Functions
| RootTool (RootDataConnection *con)
| Standard constructor. More...
TBranch * | getBranch (CSTR section, CSTR branch_name) override
| Access data branch by name: Get existing branch in read only mode. More...
int | loadRefs (CSTR section, CSTR cnt, unsigned long entry, RootObjectRefs &refs) override
| Load references object from file. More...
void | addParam (ParamMap &c, char *p)
| Helper function to read params table. More...
void | addEntry (StringVec &c, char *val)
| Helper function to read string tables. More...
template<class C , class F >
StatusCode | readBranch (TTree *t, const char *nam, C &v, F pmf)
| Helper function to read internal file tables. More...
bool | get (const string &dsc, pair< string, ContainerSection > &e)
| Analyze the Sections table entries. More...
void | analyzeMergeMap (StringVec &tmp)
| Build merge sections from the Sections table entries. More...
StatusCode | readRefs () override
| Read reference tables. More...
string | getEntry (const string &c)
| Helper function to convert string vectors to branch entries. More...
string | getParam (const pair< string, string > &p)
| Helper function to convert parameter vectors to branch entries. More...
template<class C , class F >
StatusCode | saveBranch (const char *nam, C &v, F pmf)
| Helper function to save internal tables. More...
StatusCode | saveRefs () override
| Save/update reference tables. More...
Public Member Functions inherited from Gaudi::RootDataConnection::Tool
TTree * | refs () const
StringVec & | dbs () const
StringVec & | conts () const
StringVec & | links () const
ParamMap & | params () const
MsgStream & | msgSvc () const
const std::string & | name () const
Sections & | sections () const
LinkSections & | linkSections () const
MergeSections & | mergeSections () const
virtual | ~Tool ()=default
| Default destructor. More...
virtual TBranch * | getBranch (const std::string &section, const std::string &n)=0
| Access data branch by name: Get existing branch in read only mode. More...
virtual RootRef | poolRef (size_t) const
| Internal overload to facilitate the access to POOL files. More...
virtual int | loadRefs (const std::string &section, const std::string &cnt, unsigned long entry, RootObjectRefs &refs)=0
| Load references object. More...

## Additional Inherited Members
Protected Types inherited from Gaudi::RootDataConnection::Tool
typedef RootDataConnection::StringVec | StringVec
typedef RootDataConnection::ParamMap | ParamMap
typedef RootDataConnection::Sections | Sections
typedef RootDataConnection::MergeSections | MergeSections
typedef RootDataConnection::LinkSections | LinkSections
typedef RootDataConnection::ContainerSection | ContainerSection
typedef RootDataConnection::ContainerSections | ContainerSections
Protected Attributes inherited from Gaudi::RootDataConnection::Tool
RootDataConnection * | c
| Pointer to containing data connection object. More...

## Detailed Description

Description:

Concrete implementation to read objects from POOL files.

Author
  M.Frank

Version
  1.0

Concrete implementation to read objects from ROOT files.

Author
  M.Frank

Version
  1.0

Definition at line 17 of file RootTool.h.

## Constructor & Destructor Documentation

Gaudi::RootTool::RootTool | ( | RootDataConnection * | con | ) |
| inline

Standard constructor.

Definition at line 21 of file RootTool.h.

21 { c = con; }
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207

## Member Function Documentation

void Gaudi::RootTool::addEntry | ( | StringVec & | c,
|  | char * | val
| ) |  |
| inline

Helper function to read string tables.

Definition at line 106 of file RootTool.h.

106 { c.push_back( val ); }
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207

void Gaudi::RootTool::addParam | ( | ParamMap & | c,
|  | char * | p
| ) |  |
| inline

Helper function to read params table.

Definition at line 97 of file RootTool.h.

98 {
99 char* q = strchr( p, '=' );
100 if ( q ) {
101 *q = 0;
102 c.emplace_back( p, ++q );
103 }
104 }
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207
std::strchr
T strchr(T...args)

void Gaudi::RootTool::analyzeMergeMap | ( | StringVec & | tmp | ) |
| inline

Build merge sections from the Sections table entries.

Definition at line 155 of file RootTool.h.

156 {
157 LinkSections& ls = linkSections();
158 MergeSections& ms = mergeSections();
159 pair<string, ContainerSection> e;
160 MsgStream& msg = msgSvc();
161 RootRef r;
162 int cnt = 0;
163 ls.clear();
164 ms.clear();
165 msg << MSG::VERBOSE;
166 r.dbase = r.container = r.link = r.clid = r.svc = r.entry = 0;
167 for ( const auto& i : tmp ) {
168 if ( get( i, e ) ) {
169 msg << "Added Merge Section:" << e.first << endmsg;
170 ms[e.first].push_back( e.second );
171 if ( e.first == "Links" )
172 r.link = e.second.start;
173 else if ( e.first == "Containers" )
174 r.container = e.second.start;
175 else if ( e.first == "Databases" )
176 r.dbase = e.second.start;
177 else if ( e.first == "Params" )
178 r.svc = e.second.start;
179 } else if ( i == "[END-OF-SECTION]" ) {
180 r.entry = cnt;
181 if ( msg.isActive() ) {
182 msg << "Link Section [" << r.entry << "," << ls.size() << "] -> D:" << r.dbase << " C:" << r.container
183 << " L:" << r.link << " P:" << r.svc << endmsg;
184 }
185 ls.push_back( r );
186 cnt++;
187 }
188 }
189 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
MsgStream::isActive
bool isActive() const
Accessor: is MsgStream active.
Definition: MsgStream.h:116
MSG::VERBOSE
Definition: IMessageSvc.h:16
Gaudi::RootDataConnection::Tool::mergeSections
MergeSections & mergeSections() const
Definition: RootDataConnection.h:219
Gaudi::RootDataConnection::Tool::MergeSections
RootDataConnection::MergeSections MergeSections
Definition: RootDataConnection.h:201
Gaudi::RootDataConnection::Tool::msgSvc
MsgStream & msgSvc() const
Definition: RootDataConnection.h:215
Gaudi::RootDataConnection::Tool::LinkSections
RootDataConnection::LinkSections LinkSections
Definition: RootDataConnection.h:202
GaudiMP.FdsRegistry.msg
msg
Definition: FdsRegistry.py:8
Gaudi::Units::ms
constexpr double ms
Definition: SystemOfUnits.h:136
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
Gaudi::RootDataConnection::Tool::linkSections
LinkSections & linkSections() const
Definition: RootDataConnection.h:218

bool Gaudi::RootTool::get | ( | const string & | dsc,
|  | pair< string, ContainerSection > & | e
| ) |  |
| inline

Analyze the Sections table entries.

Definition at line 135 of file RootTool.h.

136 {
137 if ( dsc != "[END-OF-SECTION]" ) {
138 size_t id1 = dsc.find( "[CNT=" );
139 size_t id2 = dsc.find( "[START=" );
140 size_t id3 = dsc.find( "[LEN=" );
141 if ( id1 != string::npos && id2 != string::npos && id3 != string::npos ) {
142 string cnt = dsc.substr( id1 + 5, id2 - 1 - 5 );
143 int section_start = std::stoi( dsc.substr( id2 + 7, id3 - id2 - 8 ) );
144 int section_length = std::stoi( dsc.substr( id3 + 5, dsc.find( "]", id3 + 5 ) - id3 - 5 ) );
145 e.first = cnt;
146 e.second = ContainerSection( section_start, section_length );
147 return true;
148 }
149 }
150 e.first.clear();
151 e.second = ContainerSection( -1, -1 );
152 return false;
153 }
Gaudi::RootDataConnection::Tool::ContainerSection
RootDataConnection::ContainerSection ContainerSection
Definition: RootDataConnection.h:203
std::stoi
T stoi(T...args)

TBranch* Gaudi::RootTool::getBranch | ( | CSTR | section,
|  | CSTR | branch_name
| ) |  |
| inline override

Access data branch by name: Get existing branch in read only mode.

Definition at line 23 of file RootTool.h.

24 {
25 std::string n = branch_name + ".";
26 for ( int i = 0, m = n.length() - 1; i < m; ++i )
27 if ( !isalnum( n[i] ) ) n[i] = '_';
28 TTree* t = c->getSection( section );
29 TBranch* b = t ? t->GetBranch( n.c_str() ) : 0;
30 if ( !b ) b = t ? t->GetBranch( branch_name.c_str() ) : 0;
31 if ( b ) b->SetAutoDelete( kFALSE );
32 return b;
33 }
std::isalnum
T isalnum(T...args)
Gaudi::RootDataConnection::getSection
TTree * getSection(const std::string &sect, bool create=false)
Access TTree section from section name. The section is created if required.
Definition: RootDataConnection.cpp:358
std::string
STL class.
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:228
Gaudi::Units::m
constexpr double m
Definition: SystemOfUnits.h:94
std::string::length
T length(T...args)
std::string::c_str
T c_str(T...args)
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207

string Gaudi::RootTool::getEntry | ( | const string & | c | ) |
| inline

Helper function to convert string vectors to branch entries.

Definition at line 209 of file RootTool.h.

209 { return c; }
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207

string Gaudi::RootTool::getParam | ( | const pair< string, string > & | p | ) |
| inline

Helper function to convert parameter vectors to branch entries.

Definition at line 211 of file RootTool.h.

211 { return p.first + "=" + p.second; }

int Gaudi::RootTool::loadRefs | ( | CSTR | section,
|  | CSTR | cnt,
|  | unsigned long | entry,
|  | RootObjectRefs & | refs
| ) |  |
| inline override

Load references object from file.

Link manager:

Definition at line 35 of file RootTool.h.

36 {
37 TBranch* b = getBranch( section, cnt + "#R" );
38 RootObjectRefs* prefs = &refs;
39 if ( b ) {
40 b->SetAddress( &prefs );
41 int nb = b->GetEntry( entry );
42 if ( nb >= 1 ) {
43 const MergeSections& ms = c->mergeSections();
44 if ( !ms.empty() ) {
45 MsgStream& msg = msgSvc();
46 msgSvc() << MSG::VERBOSE;
47 pair<const RootRef*, const ContainerSection*> ls = c->getMergeSection( cnt, entry );
48 if ( ls.first ) {
49 if ( ls.first->dbase >= 0 ) {
50 // Now patch the references and links 'en block' to be efficient
51 // First the leafs from the TES
52 if ( msg.isActive() ) {
53 msg << "Refs: LS [" << entry << "] -> " << ls.first->dbase << "," << ls.first->container << ","
54 << ls.first->link << "," << ls.first->entry << endmsg;
55 }
56 for ( size_t j = 0, n = refs.refs.size(); j < n; ++j ) {
57 RootRef& r = refs.refs[j];
58 if ( r.entry >= 0 && r.dbase >= 0 ) {
59 int db = r.dbase + ls.first->dbase;
60 if ( c->getDb( db ) == c->fid() ) {
61 if ( r.dbase ) r.dbase += ls.first->dbase;
62 if ( r.container ) r.container += ls.first->container;
63 if ( r.link ) r.link += ls.first->link;
64 const string& rc = c->getCont( r.container );
65 auto k = ms.find( rc );
66 if ( k != ms.end() ) {
67 const auto& cs = ( *k ).second;
68 r.entry = ( ls.first->entry >= 0 && ls.first->entry < (int)cs.size() )
69 ? cs[ls.first->entry].start + r.entry
70 : -1;
71 if ( msg.isActive() ) {
72 msg << "Add link [" << r.entry << "," << ls.first->entry << "," << ls.first->container << ","
73 << r.container << "," << r.entry << "] to -> " << rc << endmsg;
74 }
75 } else {
76 msg << MSG::WARNING << c->fid() << " [" << c->getDb( db ) << "] Evt:" << entry
77 << " Invalid link to " << rc << endmsg;
78 msg << MSG::VERBOSE;
79 }
80 }
81 }
82 }
84 std::for_each( std::begin( refs.links ), std::end( refs.links ),
85 [&]( int& i ) { i += ls.first->link; } );
86 }
87 return nb;
88 }
89 return -1;
90 }
91 return nb;
92 }
93 }
94 return -1;
95 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
Gaudi::RootDataConnection::mergeSections
const MergeSections & mergeSections() const
Access merged data section inventory.
Definition: RootDataConnection.h:257
Gaudi::IDataConnection::fid
const std::string & fid() const
Access file id.
Definition: IIODataManager.h:55
Gaudi::RootTool::getBranch
TBranch * getBranch(CSTR section, CSTR branch_name) override
Access data branch by name: Get existing branch in read only mode.
Definition: RootTool.h:23
Gaudi::RootDataConnection::getDb
const std::string & getDb(int which) const
Access database/file name from saved index.
Definition: RootDataConnection.cpp:450
MsgStream::isActive
bool isActive() const
Accessor: is MsgStream active.
Definition: MsgStream.h:116
std::end
T end(T...args)
MSG::VERBOSE
Definition: IMessageSvc.h:16
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:228
IOTest.rc
rc
Definition: IOTest.py:103
Gaudi::RootDataConnection::getMergeSection
std::pair< const RootRef *, const ContainerSection * > getMergeSection(const std::string &container, int entry) const
Access link section for single container and entry.
Definition: RootDataConnection.cpp:578
Gaudi::RootDataConnection::Tool::MergeSections
RootDataConnection::MergeSections MergeSections
Definition: RootDataConnection.h:201
Gaudi::RootDataConnection::Tool::msgSvc
MsgStream & msgSvc() const
Definition: RootDataConnection.h:215
Gaudi::RootDataConnection::getCont
const std::string & getCont(int which) const
Access container name from saved index.
Definition: RootDataConnection.h:330
std::string::find
T find(T...args)
Gaudi::RootDataConnection::Tool::refs
TTree * refs() const
Definition: RootDataConnection.h:210
std::begin
T begin(T...args)
GaudiMP.FdsRegistry.msg
msg
Definition: FdsRegistry.py:8
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207
MSG::WARNING
Definition: IMessageSvc.h:16
std::for_each
T for_each(T...args)
Gaudi::Units::ms
constexpr double ms
Definition: SystemOfUnits.h:136
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
template<class C , class F >

StatusCode Gaudi::RootTool::readBranch | ( | TTree * | t,
|  | const char * | nam,
|  | C & | v,
|  | F | pmf
| ) |  |
| inline

Helper function to read internal file tables.

Definition at line 109 of file RootTool.h.

110 {
111 char text[2048];
112 TBranch* b = t->GetBranch( nam );
113 if ( b ) {
114 TLeaf* l = b->GetLeaf( nam );
115 if ( l ) {
116 StatusCode sc = StatusCode::SUCCESS;
117 b->SetAddress( text );
118 msgSvc() << MSG::VERBOSE;
119 for ( Long64_t i = 0, n = b->GetEntries(); i < n; ++i ) {
120 if ( b->GetEntry( i ) > 0 ) {
121 char* p = (char*)l->GetValuePointer();
122 msgSvc() << "Add Value[" << b->GetName() << "]:" << p << endmsg;
123 ( this->*pmf )( v, p );
124 } else {
125 sc = RootDataConnection::ROOT_READ_ERROR;
126 }
127 }
128 return sc;
129 }
130 }
131 msgSvc() << MSG::ERROR << "Failed to read '" << nam << "' table." << endmsg;
132 return RootDataConnection::ROOT_READ_ERROR;
133 }
Gaudi::RootDataConnection::ROOT_READ_ERROR
Definition: RootDataConnection.h:97
StatusCode::SUCCESS
Definition: StatusCode.h:29
MSG::VERBOSE
Definition: IMessageSvc.h:16
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:228
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Gaudi::RootDataConnection::Tool::msgSvc
MsgStream & msgSvc() const
Definition: RootDataConnection.h:215
gaudirun.l
dictionary l
Definition: gaudirun.py:440
MSG::ERROR
Definition: IMessageSvc.h:16
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode Gaudi::RootTool::readRefs | ( |  | ) |
| inline override virtual

Read reference tables.

Implements Gaudi::RootDataConnection::Tool.

Definition at line 191 of file RootTool.h.

192 {
193 TTree* t = (TTree*)c->file()->Get( "Sections" );
194 StatusCode sc( StatusCode::SUCCESS, true );
195 StringVec tmp;
196 if ( t && !( sc = readBranch( t, "Sections", tmp, &RootTool::addEntry ) ).isSuccess() )
197 return sc;
198 else if ( refs() ) {
199 analyzeMergeMap( tmp );
200 if ( !( sc = readBranch( refs(), "Databases", dbs(), &RootTool::addEntry ) ).isSuccess() ) return sc;
201 if ( !( sc = readBranch( refs(), "Containers", conts(), &RootTool::addEntry ) ).isSuccess() ) return sc;
202 if ( !( sc = readBranch( refs(), "Links", links(), &RootTool::addEntry ) ).isSuccess() ) return sc;
203 if ( !( sc = readBranch( refs(), "Params", params(), &RootTool::addParam ) ).isSuccess() ) return sc;
204 return sc;
205 }
206 return StatusCode::FAILURE;
207 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
Gaudi::RootDataConnection::Tool::dbs
StringVec & dbs() const
Definition: RootDataConnection.h:211
Gaudi::RootDataConnection::file
TFile * file() const
Direct access to TFile structure.
Definition: RootDataConnection.h:249
Gaudi::RootDataConnection::Tool::StringVec
RootDataConnection::StringVec StringVec
Definition: RootDataConnection.h:198
Gaudi::RootDataConnection::Tool::params
ParamMap & params() const
Definition: RootDataConnection.h:214
Gaudi::RootTool::analyzeMergeMap
void analyzeMergeMap(StringVec &tmp)
Build merge sections from the Sections table entries.
Definition: RootTool.h:155
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Gaudi::RootDataConnection::Tool::links
StringVec & links() const
Definition: RootDataConnection.h:213
Gaudi::RootTool::addParam
void addParam(ParamMap &c, char *p)
Helper function to read params table.
Definition: RootTool.h:97
Gaudi::RootTool::addEntry
void addEntry(StringVec &c, char *val)
Helper function to read string tables.
Definition: RootTool.h:106
Gaudi::RootTool::readBranch
StatusCode readBranch(TTree *t, const char *nam, C &v, F pmf)
Helper function to read internal file tables.
Definition: RootTool.h:109
Gaudi::RootDataConnection::Tool::conts
StringVec & conts() const
Definition: RootDataConnection.h:212
Gaudi::RootDataConnection::Tool::refs
TTree * refs() const
Definition: RootDataConnection.h:210
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207
StatusCode::FAILURE
Definition: StatusCode.h:29
template<class C , class F >

StatusCode Gaudi::RootTool::saveBranch | ( | const char * | nam,
|  | C & | v,
|  | F | pmf
| ) |  |
| inline

Helper function to save internal tables.

Definition at line 214 of file RootTool.h.

215 {
216 Long64_t i, n;
217 string val, typ = nam;
218 StatusCode sc = StatusCode::SUCCESS;
219 TDirectory::TContext ctxt( c->file() );
220 TBranch* b = refs()->GetBranch( nam );
221 if ( !b ) b = refs()->Branch( nam, 0, ( typ + "/C" ).c_str() );
222 if ( b ) {
223 for ( i = b->GetEntries(), n = Long64_t( v.size() ); i < n; ++i ) {
224 val = ( this->*pmf )( v[size_t( i )] );
225 b->SetAddress( (char*)val.c_str() );
226 msgSvc() << MSG::VERBOSE << "Save Value[" << b->GetName() << "]:" << val << endmsg;
227 if ( b->Fill() < 0 ) sc = StatusCode::FAILURE;
228 }
229 return sc;
230 }
231 return StatusCode::FAILURE;
232 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
Gaudi::RootDataConnection::file
TFile * file() const
Direct access to TFile structure.
Definition: RootDataConnection.h:249
MSG::VERBOSE
Definition: IMessageSvc.h:16
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:228
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Gaudi::RootDataConnection::Tool::msgSvc
MsgStream & msgSvc() const
Definition: RootDataConnection.h:215
Gaudi::RootDataConnection::Tool::refs
TTree * refs() const
Definition: RootDataConnection.h:210
Gaudi::RootDataConnection::Tool::c
RootDataConnection * c
Pointer to containing data connection object.
Definition: RootDataConnection.h:207
StatusCode::FAILURE
Definition: StatusCode.h:29
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode Gaudi::RootTool::saveRefs | ( |  | ) |
| inline override virtual

Save/update reference tables.

Implements Gaudi::RootDataConnection::Tool.

Definition at line 234 of file RootTool.h.

235 {
236 if ( refs() ) {
237 if ( !saveBranch( "Databases", dbs(), &RootTool::getEntry ).isSuccess() ) return StatusCode::FAILURE;
238 if ( !saveBranch( "Containers", conts(), &RootTool::getEntry ).isSuccess() ) return StatusCode::FAILURE;
239 if ( !saveBranch( "Links", links(), &RootTool::getEntry ).isSuccess() ) return StatusCode::FAILURE;
240 if ( !saveBranch( "Params", params(), &RootTool::getParam ).isSuccess() ) return StatusCode::FAILURE;
241 return StatusCode::SUCCESS;
242 }
243 return StatusCode::FAILURE;
244 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
Gaudi::RootDataConnection::Tool::dbs
StringVec & dbs() const
Definition: RootDataConnection.h:211
Gaudi::RootTool::getEntry
string getEntry(const string &c)
Helper function to convert string vectors to branch entries.
Definition: RootTool.h:209
Gaudi::RootDataConnection::Tool::params
ParamMap & params() const
Definition: RootDataConnection.h:214
Gaudi::RootTool::saveBranch
StatusCode saveBranch(const char *nam, C &v, F pmf)
Helper function to save internal tables.
Definition: RootTool.h:214
Gaudi::RootDataConnection::Tool::links
StringVec & links() const
Definition: RootDataConnection.h:213
Gaudi::RootTool::getParam
string getParam(const pair< string, string > &p)
Helper function to convert parameter vectors to branch entries.
Definition: RootTool.h:211
Gaudi::RootDataConnection::Tool::conts
StringVec & conts() const
Definition: RootDataConnection.h:212
Gaudi::RootDataConnection::Tool::refs
TTree * refs() const
Definition: RootDataConnection.h:210
StatusCode::FAILURE
Definition: StatusCode.h:29

The documentation for this class was generated from the following file:

- RootCnv/src/RootTool.h