16#ifndef D3PDMAKERUTILS_VECTORFILLERTOOLBASE_H
17#define D3PDMAKERUTILS_VECTORFILLERTOOLBASE_H
24#include "GaudiKernel/ToolHandle.h"
29class TVirtualCollectionProxy;
89 const std::string& name,
90 const IInterface* parent);
118 const std::type_info& ti,
120 const std::string& docstring =
"",
121 const void* defval = 0);
142 const std::type_info& ti,
144 const std::string& dim,
145 const std::string& docstring =
"",
146 const void* defval = 0);
243 Var (
const std::string& name,
244 const std::type_info& ti,
246 const std::string& dim,
257 const std::string& prefix);
325 :
public std::list<Var>
376 StatusCode
fillOnce (
const void* obj,
380 const std::vector<unsigned long>& codes_in,
381 std::vector<unsigned long>& codes_out);
Common interface for adding a variable to a tuple.
Common interface for adding a variable to a tuple.
Abstract interface for iterating over a set of things.
StatusCode init(IAddVariable *tree, const std::string &prefix)
Initialize the variable.
const std::type_info * m_ti
The type of the variable element (for each object).
std::string m_name
The variable name.
void resize(size_t sz, size_t pos)
Resize the vector.
TVirtualCollectionProxy * m_proxy
The root collection proxy.
Var(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, char *defval, size_t defsize)
Constructor.
std::string m_docstring
Documentation string.
char ** m_addr
Pointer to the variable pointer.
size_t m_valdiff
Offset between collection elements.
void free()
Free allocated storage.
char * m_default
Pointer to the default value for this variable, if one has been requested. We own this object.
void * m_contptr
Pointer to the vector instance.
size_t m_defsize
Size of the object pointed to by m_default. (Should generally be the same as m_valdiff,...
void next()
Move the variable pointer to the next element.
Block filler tool for noisy FEB information.
void maybeExtend(size_t &n, size_t &sz)
Extend vectors if needed.
virtual StatusCode finalize()
Standard Gaudi finalize method.
std::string m_nobjName
Property: Name of the variable for the count of objects. Omitted if empty.
std::string m_nrowName
Property: Name of the variable for the count of rows. Omitted if empty.
StatusCode doFill(IIteration &it, size_t sizeHint)
Fill objects from an IIteration.
ID3PD * m_tree
Pointer to the ID3PD object used.
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)
Add a variable to the tuple.
std::string m_objIndexName
Property: Name of the variable for the object index. Omitted if empty.
StatusCode doBook()
Declare tuple variables.
std::string m_prefix
Property: The variable name prefix.
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Add a variable to the tuple.
StatusCode doConfigure(IAddVariable *tree, IIteration &it)
Configure the tool.
virtual StatusCode initialize()
Standard Gaudi initialize method.
int * m_objIndex
Variable for the object index.
int * m_nobj
Variable for the object count.
StatusCode fillOnce(const void *obj, size_t objndx, size_t &n, size_t &sz, const std::vector< unsigned long > &codes_in, std::vector< unsigned long > &codes_out)
Make one loop over block filler tools.
VectorFillerToolBase(const std::string &type, const std::string &name, const IInterface *parent)
Common code for wrapping filled variables up into a vector.
int * m_nrow
Variable for the row count.
ToolHandleArray< IBlockFillerTool > m_blockFillers
Property: The list of block filler tools.
ObjectMetadata m_metadata
Metadata about the variables created by this tool.
Vars m_vars
All booked variables.
::StatusCode StatusCode
StatusCode definition for legacy code.
Description for the list of variables.
void next_all()
Move all variable pointers to the next element.
void resize_all(size_t sz, size_t pos=0)
Resize all vector.