D3PD::ObjectMetadata Node1 D3PD::ObjectMetadata + RANDOM_NAME_POSTFIX _LENGTH + STRING_SEPARATOR + SERIALIZER_VERSION # m_variables # m_name # m_prefix # m_container + ObjectMetadata() + ObjectMetadata() + operator=() + operator==() + operator<() + addVariable() + addDimensionedVariable() + name() + setName() + ATLAS_NOT_THREAD_SAFE() and 16 more... + objectName() - ATLAS_NOT_THREAD_SAFE() Node3 D3PD::RootObjectMetadata + RootObjectMetadata() + RootObjectMetadata() + addVariable() + checkPrefixes() + addVariable() + isObjectMetadata() - operator=() Node1->Node3 Node2 D3PD::IAddVariable + ~IAddVariable() + addVariable() + addVariable() + addDimensionedVariable() + addDimensionedVariable() + addVariable() + addDimensionedVariable() Node2->Node1