ATLAS Offline Software
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
D3PD::RootReaderD3PD_v1 Class Reference

D3PD class used for generating ROOT D3PDReader classes. More...

#include <RootReaderD3PD_v1.h>

Inheritance diagram for D3PD::RootReaderD3PD_v1:
Collaboration diagram for D3PD::RootReaderD3PD_v1:

Public Types

typedef unsigned int Dim_t
 Currently unimplemented — see design note. More...
 

Public Member Functions

 RootReaderD3PD_v1 ()
 Quite empty constructor. More...
 
StatusCode createReader (const std::string &classname, const std::string &dir="./") const
 Function creating the D3PDReader C++ code. More...
 
virtual StatusCode addVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
 Main function for adding a variable to the D3PD. More...
 
template<class T >
StatusCode addVariable (const std::string &name, T *&ptr, const std::string &docstring="")
 Add a variable to the tuple. More...
 
template<class T , class U >
StatusCode addVariable (const std::string &name, T *&ptr, const std::string &docstring, const U &defval)
 Add a variable to the tuple. More...
 
virtual StatusCode addDimensionedVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
 Function currently not used by the D3PDMaker code. More...
 
template<class T >
StatusCode addDimensionedVariable (const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring="")
 Add a variable to the tuple. More...
 
template<class T , class U >
StatusCode addDimensionedVariable (const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring, const U &defval)
 Add a variable to the tuple. More...
 
virtual StatusCode addMetadata (const std::string &key, const void *obj, const std::type_info &ti)
 Function adding metadata to the D3PD. Not implemented here! More...
 
template<class T >
StatusCode addMetadata (const std::string &key, const T *obj)
 Add a new piece of metadata to the tuple. More...
 
virtual StatusCode capture ()
 Function capturing the current value of the D3PD variables. Not implemented here! More...
 
virtual StatusCode clear ()
 Function clearing the D3PD variables. Not implemented here! More...
 
virtual StatusCode redim (const Dim_t *ptr)
 Function currently not used by the D3PDMaker code. More...
 
virtual void setIsContainer (bool isContainer)
 Set the "isCollection" parameter of the object. More...
 
virtual bool isContainer () const
 Get the "isCollection" parameter of the object. More...
 
virtual void setPrefix (const std::string &prefix)
 Set the common prefix of the variables. More...
 
virtual const std::string & prefix () const
 Get the common prefix of the variables. More...
 

Protected Member Functions

void addSTLHeader (std::ostream &out, const char *name) const
 Function adding STL include statements to the header when needed. More...
 

Protected Attributes

ObjectMetadata m_metadata
 Object holding the information about the variables. More...
 

Private Member Functions

StatusCode writeHeader (const std::string &classname, const std::string &dir) const
 Function creating the D3PDReader C++ header. More...
 
StatusCode writeSource (const std::string &classname, const std::string &dir) const
 Function creatig the D3PDReader C++ source. More...
 

Detailed Description

D3PD class used for generating ROOT D3PDReader classes.

   Version 1 of the D3PDReader implementation.
Author
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Revision
462802
Date
2011-10-12 18:06:24 +0200 (Wed, 12 Oct 2011)

Definition at line 26 of file RootReaderD3PD_v1.h.

Member Typedef Documentation

◆ Dim_t

typedef unsigned int D3PD::ID3PD::Dim_t
inherited

Currently unimplemented — see design note.

Definition at line 52 of file ID3PD.h.

Constructor & Destructor Documentation

◆ RootReaderD3PD_v1()

D3PD::RootReaderD3PD_v1::RootReaderD3PD_v1 ( )

Quite empty constructor.

Definition at line 32 of file RootReaderD3PD_v1.cxx.

32  {
33 
34  }

Member Function Documentation

◆ addDimensionedVariable() [1/3]

StatusCode D3PD::RootReaderD3PDBase::addDimensionedVariable ( const std::string &  name,
const std::type_info &  ti,
void *&  ptr,
const std::string &  dim,
const std::string &  docstring = "",
const void *  defval = 0 
)
virtualinherited

Function currently not used by the D3PDMaker code.

Implements D3PD::IAddVariable.

Definition at line 95 of file RootReaderD3PDBase.cxx.

100  {
101 
102  CHECK( m_metadata.addDimensionedVariable( name, ti, ptr, dim, docstring,
103  defval ) );
104  return StatusCode::SUCCESS;
105  }

◆ addDimensionedVariable() [2/3]

template<class T , class U >
StatusCode D3PD::IAddVariable::addDimensionedVariable ( const std::string &  name,
T *&  ptr,
const std::string &  dim,
const std::string &  docstring,
const U &  defval 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addDimensionedVariable() [3/3]

template<class T >
StatusCode D3PD::IAddVariable::addDimensionedVariable ( const std::string &  name,
T *&  ptr,
const std::string &  dim,
const std::string &  docstring = "" 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.

If called from the constructor, the only effect is to clear ptr.

◆ addMetadata() [1/2]

template<class T >
StatusCode D3PD::ID3PD::addMetadata ( const std::string &  key,
const T *  obj 
)
inherited

Add a new piece of metadata to the tuple.

Parameters
key- The key for this object. Any existing object will be overwritten.
obj- Pointer to the object to write.

The interpretation of the key parameter is up to the concrete D3PD implementation. However, a key name with a trailing slash NAME/ indicates that all metadata items with this name should be grouped together in a collection called NAME (for example, in a Root directory with that name).

◆ addMetadata() [2/2]

StatusCode D3PD::RootReaderD3PDBase::addMetadata ( const std::string &  key,
const void *  obj,
const std::type_info &  ti 
)
virtualinherited

Function adding metadata to the D3PD. Not implemented here!

Implements D3PD::ID3PD.

Definition at line 107 of file RootReaderD3PDBase.cxx.

109  {
110 
111  REPORT_MESSAGE_WITH_CONTEXT( MSG::ERROR, "RootReaderD3PDBase" )
112  << "addMetadata(...) not implemented";
113  return StatusCode::FAILURE;
114  }

◆ addSTLHeader()

void D3PD::RootReaderD3PDBase::addSTLHeader ( std::ostream &  out,
const char *  name 
) const
protectedinherited

Function adding STL include statements to the header when needed.

This function is used internally to decide if specific STL headers are needed for the generated code or not.

The code just checks if the header name appears in the variable types somewhere, and if it does, it adds the requested header.

Parameters
outOutput stream where the include statement has to be written
nameName of the STL header that the code should process

Definition at line 167 of file RootReaderD3PDBase.cxx.

167  {
168 
169  // Check if the STL name appears in the variable type names:
170  bool header_needed = false;
171  std::set< D3PD::ObjectMetadata::Variable >::const_iterator itr =
172  m_metadata.variables().begin();
173  std::set< D3PD::ObjectMetadata::Variable >::const_iterator end =
174  m_metadata.variables().end();
175  for( ; itr != end; ++itr ) {
176  if( itr->type().find( name ) != std::string::npos ) {
177  header_needed = true;
178  break;
179  }
180  }
181 
182  // If it does, let's include it:
183  if( header_needed ) {
184  out << "#include <" << name << ">" << std::endl;
185  }
186 
187  return;
188  }

◆ addVariable() [1/3]

StatusCode D3PD::RootReaderD3PDBase::addVariable ( const std::string &  name,
const std::type_info &  ti,
void *&  ptr,
const std::string &  docstring = "",
const void *  defval = 0 
)
virtualinherited

Main function for adding a variable to the D3PD.

Implements D3PD::IAddVariable.

Definition at line 85 of file RootReaderD3PDBase.cxx.

89  {
90 
91  CHECK( m_metadata.addVariable( name, ti, ptr, docstring, defval ) );
92  return StatusCode::SUCCESS;
93  }

◆ addVariable() [2/3]

template<class T , class U >
StatusCode D3PD::IAddVariable::addVariable ( const std::string &  name,
T *&  ptr,
const std::string &  docstring,
const U &  defval 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addVariable() [3/3]

template<class T >
StatusCode D3PD::IAddVariable::addVariable ( const std::string &  name,
T *&  ptr,
const std::string &  docstring = "" 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.

If called from the constructor, the only effect is to clear ptr.

◆ capture()

StatusCode D3PD::RootReaderD3PDBase::capture ( )
virtualinherited

Function capturing the current value of the D3PD variables. Not implemented here!

Implements D3PD::ID3PD.

Definition at line 116 of file RootReaderD3PDBase.cxx.

116  {
117 
118  REPORT_MESSAGE_WITH_CONTEXT( MSG::ERROR, "RootReaderD3PDBase" )
119  << "capture() not implemented";
120  return StatusCode::FAILURE;
121  }

◆ clear()

StatusCode D3PD::RootReaderD3PDBase::clear ( )
virtualinherited

Function clearing the D3PD variables. Not implemented here!

Implements D3PD::ID3PD.

Definition at line 123 of file RootReaderD3PDBase.cxx.

123  {
124 
125  REPORT_MESSAGE_WITH_CONTEXT( MSG::ERROR, "RootReaderD3PDBase" )
126  << "clear() not implemented";
127  return StatusCode::FAILURE;
128  }

◆ createReader()

StatusCode D3PD::RootReaderD3PD_v1::createReader ( const std::string &  classname,
const std::string &  dir = "./" 
) const
virtual

Function creating the D3PDReader C++ code.

This is the most interesting function of this class.

It generates a C++ header and source file from all the information that it gathered so far.

Parameters
classnameName of the C++ class to generate
dirDirectory where the generated sources should be put
prefixCommon prefix of the declared variables

Implements D3PD::IReaderD3PD.

Definition at line 44 of file RootReaderD3PD_v1.cxx.

45  {
46 
47  //
48  // Create the source files:
49  //
50  CHECK( writeHeader( classname, dir ) );
51  CHECK( writeSource( classname, dir ) );
52 
53  return StatusCode::SUCCESS;
54  }

◆ isContainer()

bool D3PD::RootReaderD3PDBase::isContainer ( ) const
virtualinherited

Get the "isCollection" parameter of the object.

Implements D3PD::IReaderD3PD.

Definition at line 143 of file RootReaderD3PDBase.cxx.

143  {
144 
145  return m_metadata.container();
146  }

◆ prefix()

const std::string & D3PD::RootReaderD3PDBase::prefix ( ) const
virtualinherited

Get the common prefix of the variables.

Implements D3PD::IReaderD3PD.

Definition at line 154 of file RootReaderD3PDBase.cxx.

154  {
155 
156  return m_metadata.prefix();
157  }

◆ redim()

StatusCode D3PD::RootReaderD3PDBase::redim ( const Dim_t ptr)
virtualinherited

Function currently not used by the D3PDMaker code.

Implements D3PD::ID3PD.

Definition at line 130 of file RootReaderD3PDBase.cxx.

130  {
131 
132  REPORT_MESSAGE_WITH_CONTEXT( MSG::ERROR, "RootReaderD3PDBase" )
133  << "redim(...) not implemented";
134  return StatusCode::FAILURE;
135  }

◆ setIsContainer()

void D3PD::RootReaderD3PDBase::setIsContainer ( bool  isContainer)
virtualinherited

Set the "isCollection" parameter of the object.

Implements D3PD::IReaderD3PD.

Definition at line 137 of file RootReaderD3PDBase.cxx.

137  {
138 
140  return;
141  }

◆ setPrefix()

void D3PD::RootReaderD3PDBase::setPrefix ( const std::string &  prefix)
virtualinherited

Set the common prefix of the variables.

Implements D3PD::IReaderD3PD.

Definition at line 148 of file RootReaderD3PDBase.cxx.

148  {
149 
151  return;
152  }

◆ writeHeader()

StatusCode D3PD::RootReaderD3PD_v1::writeHeader ( const std::string &  classname,
const std::string &  dir 
) const
private

Function creating the D3PDReader C++ header.

Definition at line 56 of file RootReaderD3PD_v1.cxx.

57  {
58 
59  // Let everyone know what we're doing:
60  REPORT_MESSAGE_WITH_CONTEXT( MSG::INFO, "RootReaderD3PD_v1" )
61  << "Generating file: " << dir << "/" << classname << ".h";
62 
63  // Open the header file (overwriting a possibly existing file):
64  std::fstream header( ( dir + "/" + classname + ".h" ).c_str(),
65  std::fstream::out | std::fstream::trunc );
66 
67  // Write a header for the file:
68  header << CODE_COMMENT << std::endl;
69  header << "#ifndef D3PDREADER_" << classname << "_H" << std::endl;
70  header << "#define D3PDREADER_" << classname << "_H" << std::endl << std::endl;
71 
72  // Include some STL headers if they're needed:
73  addSTLHeader( header, "vector" );
74  addSTLHeader( header, "map" );
75  addSTLHeader( header, "string" );
76  header << std::endl;
77 
78  // ROOT include(s):
79  header << "#include <TNamed.h>" << std::endl;
80  header << "#include <TString.h>" << std::endl << std::endl;
81 
82  // Forward declaration(s):
83  header << "class TTree;" << std::endl;
84  header << "class TBranch;" << std::endl << std::endl;
85 
86  //
87  // Declare the class itself:
88  //
89  header << "namespace " << CODE_NAMESPACE << " {" << std::endl << std::endl;
90  header << " /**" << std::endl;
91  header << " * Code generated by RootD3PDReader_v1 on:" << std::endl;
92  header << " * host = " << System::hostName() << std::endl;
93  header << " * OS = " << System::osName() << " / " << System::osVersion()
94  << std::endl;
95  header << " * user = " << System::accountName() << std::endl;
96  time_t rawtime = time( NULL );
97  char buf[26];
98  header << " * time = " << ctime_r( &rawtime, buf );
99  header << " */" << std::endl;
100  header << " class " << classname << " : public TNamed {" << std::endl << std::endl;
101  header << " public:" << std::endl;
102 
103  //
104  // Declare the constructor:
105  //
106  header << " /// Constructor specifying the needed parameters" << std::endl;
107  header << " " << classname << "( Long64_t* master, const char* prefix = \""
108  << m_metadata.prefix() << "\" );" << std::endl << std::endl;
109 
110  //
111  // Declare some functions:
112  //
113  header << " /// Get the currently configured prefix value" << std::endl;
114  header << " const char* getPrefix() const;" << std::endl;
115  header << " /// Set the prefix to the ntuple variables" << std::endl;
116  header << " void setPrefix( const char* prefix );" << std::endl << std::endl;
117  header << " /// Connect the object to a new TTree" << std::endl;
118  header << " void connect( TTree* tree );" << std::endl << std::endl;
119 
120  //
121  // Declare the variable accessor function(s):
122  //
123  std::set< D3PD::ObjectMetadata::Variable >::const_iterator itr =
124  m_metadata.variables().begin();
125  std::set< D3PD::ObjectMetadata::Variable >::const_iterator end =
126  m_metadata.variables().end();
127  for( ; itr != end; ++itr ) {
128  if( itr->doc() != "" ) {
129  header << " /// " << itr->doc() << std::endl;
130  }
131  header << " " << itr->type()
132  << ( itr->primitive() ? " " : "* " ) << itr->name() << "();"
133  << std::endl;
134  }
135 
136  header << std::endl << " private:" << std::endl;
137 
138  //
139  // Declare the member variable(s):
140  //
141  header << " // Variables used in the TTree reading:" << std::endl;
142  itr = m_metadata.variables().begin();
143  end = m_metadata.variables().end();
144  for( ; itr != end; ++itr ) {
145  header << " " << itr->type()
146  << ( itr->primitive() ? "" : "*" ) << " m_"
147  << itr->name() << ";" << std::endl;
148  }
149 
150  header << std::endl;
151 
152  //
153  // Declare the branch(es):
154  //
155  header << " // TBranch variables used in the TTree reading:" << std::endl;
156  itr = m_metadata.variables().begin();
157  end = m_metadata.variables().end();
158  for( ; itr != end; ++itr ) {
159  header << " ::TBranch* m_b_" << itr->name() << "; //!" << std::endl;
160  }
161 
162  // Declare the additional member variable(s):
163  header << std::endl << " ::TTree* m_tree;" << std::endl;
164  header << " Long64_t* m_master;" << std::endl;
165  header << " ::TString m_prefix;" << std::endl << std::endl;
166 
167  // Close the class definition:
168  header << " ClassDef( " << classname << ", 0 )" << std::endl << std::endl;
169  header << " }; // class " << classname << std::endl << std::endl;
170  header << "} // namespace " << CODE_NAMESPACE << std::endl << std::endl;
171  header << "#endif // D3PDREADER_" << classname << "_H" << std::endl;
172 
173  header.close();
174 
175  return StatusCode::SUCCESS;
176  }

◆ writeSource()

StatusCode D3PD::RootReaderD3PD_v1::writeSource ( const std::string &  classname,
const std::string &  dir 
) const
private

Function creatig the D3PDReader C++ source.

Definition at line 178 of file RootReaderD3PD_v1.cxx.

179  {
180 
181  // Let everyone know what we're doing:
182  REPORT_MESSAGE_WITH_CONTEXT( MSG::INFO, "RootReaderD3PD_v1" )
183  << "Generating file: " << dir << "/" << classname << ".cxx";
184 
185  // Open the header file (overwriting a possibly existing file):
186  std::fstream source( ( dir + "/" + classname + ".cxx" ).c_str(),
187  std::fstream::out | std::fstream::trunc );
188 
189  // Add the common header to the file:
190  source << CODE_COMMENT << std::endl << std::endl;
191 
192  // Add the necessary ROOT include(s):
193  source << "#include <TTree.h>" << std::endl;
194  source << "#include <TBranch.h>" << std::endl << std::endl;
195 
196  // Include the class's header:
197  source << "#include \"" << classname << ".h\"" << std::endl << std::endl;
198 
199  source << "ClassImp( D3PDReader::" << classname << " )" << std::endl << std::endl;
200 
201  source << "namespace " << CODE_NAMESPACE << " {" << std::endl << std::endl;
202 
203  //
204  // Produce the constructor:
205  //
206  source << " /**" << std::endl;
207  source << " * @param master Pointer to the variable holding the current "
208  << "event number" << std::endl;
209  source << " * @param prefix Prefix of the variables in the D3PD" << std::endl;
210  source << " */" << std::endl;
211  source << " " << classname << "::" << classname
212  << "( Long64_t* master, const char* prefix )" << std::endl;
213  source << " : TNamed( \"" << classname << "\", \"D3PDReader class\" ),"
214  << std::endl;
215  std::set< D3PD::ObjectMetadata::Variable >::const_iterator itr =
216  m_metadata.variables().begin();
217  std::set< D3PD::ObjectMetadata::Variable >::const_iterator end =
218  m_metadata.variables().end();
219  for( ; itr != end; ++itr ) {
220  if( itr->primitive() ) continue;
221  source << " m_" << itr->name() << "( 0 )," << std::endl;
222  }
223  itr = m_metadata.variables().begin();
224  end = m_metadata.variables().end();
225  for( ; itr != end; ++itr ) {
226  source << " m_b_" << itr->name() << "( 0 )," << std::endl;
227  }
228  source << " m_tree( 0 ), m_master( master )," << std::endl;
229  source << " m_prefix( prefix ) {" << std::endl << std::endl;
230  source << " }" << std::endl << std::endl;
231 
232  //
233  // Produce the prefix handling functions:
234  //
235  source << " const char* " << classname << "::getPrefix() const {" << std::endl
236  << std::endl;
237  source << " return m_prefix;" << std::endl;
238  source << " }" << std::endl << std::endl;
239  source << " void " << classname << "::setPrefix( const char* prefix ) {"
240  << std::endl << std::endl;
241  source << " m_prefix = prefix;" << std::endl;
242  source << " return;" << std::endl;
243  source << " }" << std::endl << std::endl;
244 
245  //
246  // Produce the connect(...) function:
247  //
248  source << " /**" << std::endl;
249  source << " * This function should be called every time a new TFile is opened"
250  << std::endl;
251  source << " * by your analysis code." << std::endl;
252  source << " *" << std::endl;
253  source << " * @param tree Pointer to the TTree with the variables" << std::endl;
254  source << " */" << std::endl;
255  source << " void " << classname << "::connect( TTree* tree ) {" << std::endl
256  << std::endl;
257  itr = m_metadata.variables().begin();
258  end = m_metadata.variables().end();
259  for( ; itr != end; ++itr ) {
260  if( ! itr->primitive() ) {
261  source << " if( m_" << itr->name() << " ) delete m_" << itr->name()
262  << ";" << std::endl;
263  source << " m_" << itr->name() << " = 0;" << std::endl;
264  }
265  source << " m_b_" << itr->name() << " = 0;" << std::endl << std::endl;
266  }
267  source << " m_tree = tree;" << std::endl << std::endl;
268  source << " return;" << std::endl;
269  source << " }" << std::endl << std::endl;
270 
271  //
272  // Produce the accessor functions:
273  //
274  itr = m_metadata.variables().begin();
275  end = m_metadata.variables().end();
276  for( ; itr != end; ++itr ) {
277  source << " " << itr->type() << ( itr->primitive() ? " " : "* " )
278  << classname << "::" << itr->name()
279  << "() {" << std::endl << std::endl;
280  source << " if( ! m_b_" << itr->name() << " ) {" << std::endl;
281  source << " if( ! m_tree ) {" << std::endl;
282  source << " Error( \"Connect\", \"Object not connected yet!\" );"
283  << std::endl;
284  source << " return 0;" << std::endl;
285  source << " }" << std::endl;
286  source << " if( ! m_tree->GetBranch( m_prefix + \"" << itr->name()
287  << "\" ) ) {" << std::endl;
288  source << " Error( \"Connect\", "
289  << "\"The following variable doesn't exist: %s\", "
290  << "( m_prefix + \"" << itr->name() << "\" ).Data() );" << std::endl;
291  source << " return 0;" << std::endl;
292  source << " }" << std::endl;
293  source << " m_tree->SetBranchAddress( m_prefix + \"" << itr->name()
294  << "\", &m_" << itr->name() << ", &m_b_" << itr->name() << " );"
295  << std::endl;
296  source << " }" << std::endl;
297  source << " if( *m_master != m_b_" << itr->name() << "->GetReadEntry() ) {"
298  << std::endl;
299  source << " m_b_" << itr->name() << "->GetEntry( *m_master );"
300  << std::endl;
301  source << " }" << std::endl;
302  source << " return m_" << itr->name() << ";" << std::endl;
303  source << " }" << std::endl << std::endl;
304  }
305 
306  source << "} // namespace " << CODE_NAMESPACE << std::endl;
307 
308  source.close();
309 
310  return StatusCode::SUCCESS;
311  }

Member Data Documentation

◆ m_metadata

ObjectMetadata D3PD::RootReaderD3PDBase::m_metadata
protectedinherited

Object holding the information about the variables.

Definition at line 84 of file RootReaderD3PDBase.h.


The documentation for this class was generated from the following files:
D3PD::ObjectMetadata::variables
const std::set< Variable > & variables() const
Function for accessing all the variables of the D3PDObject.
Definition: ObjectMetadata.cxx:577
D3PD::ObjectMetadata::addDimensionedVariable
virtual StatusCode addDimensionedVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
The object doesn't support dimensioned variables at the moment, like most of the D3PDMaker code doesn...
Definition: ObjectMetadata.cxx:157
yodamerge_tmp.dim
dim
Definition: yodamerge_tmp.py:239
header
Definition: hcg.cxx:526
D3PD::RootReaderD3PDBase::m_metadata
ObjectMetadata m_metadata
Object holding the information about the variables.
Definition: RootReaderD3PDBase.h:84
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
D3PD::RootReaderD3PD_v1::writeSource
StatusCode writeSource(const std::string &classname, const std::string &dir) const
Function creatig the D3PDReader C++ source.
Definition: RootReaderD3PD_v1.cxx:178
D3PD::RootReaderD3PD_v1::writeHeader
StatusCode writeHeader(const std::string &classname, const std::string &dir) const
Function creating the D3PDReader C++ header.
Definition: RootReaderD3PD_v1.cxx:56
D3PD::ObjectMetadata::setPrefix
void setPrefix(const std::string &prefix)
Set the prefix given to variables in this D3PDObject.
Definition: ObjectMetadata.cxx:224
D3PD::ObjectMetadata::container
bool container() const
Get whether the D3PDObject describes a container or not.
Definition: ObjectMetadata.cxx:230
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
python.DecayParser.buf
buf
print ("=> [%s]"cmd)
Definition: DecayParser.py:27
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
D3PD::RootReaderD3PDBase::isContainer
virtual bool isContainer() const
Get the "isCollection" parameter of the object.
Definition: RootReaderD3PDBase.cxx:143
beamspotman.dir
string dir
Definition: beamspotman.py:623
REPORT_MESSAGE_WITH_CONTEXT
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:345
D3PD::ObjectMetadata::setContainer
void setContainer(bool container)
Set whether the D3PDObject describes a container or not.
Definition: ObjectMetadata.cxx:235
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
D3PD::ObjectMetadata::addVariable
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
This function can be used to save the metadata about a D3PD variable.
Definition: ObjectMetadata.cxx:109
D3PD::ObjectMetadata::prefix
const std::string & prefix() const
Get the prefix given to variables in this D3PDObject.
Definition: ObjectMetadata.cxx:219
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
D3PD::RootReaderD3PDBase::addSTLHeader
void addSTLHeader(std::ostream &out, const char *name) const
Function adding STL include statements to the header when needed.
Definition: RootReaderD3PDBase.cxx:167
D3PD::RootReaderD3PDBase::prefix
virtual const std::string & prefix() const
Get the common prefix of the variables.
Definition: RootReaderD3PDBase.cxx:154
makeTOC.header
header
Definition: makeTOC.py:28