#include <TDVCollectionProxy.h>
Public Types | |
typedef TGenCollectionProxy::Sizing_t | Sizing_t |
Make the definition of Sizing_t public. | |
Public Member Functions | |
TDVCollectionProxy (const char *conttype) | |
TDVCollectionProxy (const TDVCollectionProxy &rhs) | |
virtual void | PushProxy (void *objstart) |
virtual TVirtualCollectionProxy * | Generate () const |
Clone this object. | |
void | SetResize (Sizing_t func) |
Set the resize(...) function used by the proxy. |
A Root collection proxy for DataVector
containers.
In order for a container type to be treated properly by TTree::Draw
and friends, Root must recognize that it is in fact a container type, and generate an appropriate proxy for it. This doesn't happen automatically, though. This class serves as an appropriate proxy for DataVector
classes. Like the Root proxy classes, it's based on making a hard cast to a dummy DataVector
type. But because DataVector's
can inherit, we need to be careful about pointer conversions, something the Root proxy classes could ignore. We extend the Root environment buffer to cache information about the pointer offsets.
xAOD::TDVCollectionProxy::TDVCollectionProxy | ( | const char * | conttype | ) |
Constructor.
conttype | The name of the container type we're proxying. Note that this may be different from a DataVector of elttype for classes which derive from DataVector . |
xAOD::TDVCollectionProxy::TDVCollectionProxy | ( | const TDVCollectionProxy & | rhs | ) |
Copy constructor.
rhs | The proxy to copy. |
void xAOD::TDVCollectionProxy::PushProxy | ( | void * | objstart | ) | [virtual] |
Start working with a new collection.
objstart | The address of the collection. |
void xAOD::TDVCollectionProxy::SetResize | ( | Sizing_t | func | ) |
Set the resize(...) function used by the proxy.
The resize(...) functions need to be specific for the different classes. This function is used to supply a specific resize(...) function for this proxy's class.
func | The function to use |