xAOD::TPyEvent Node1 xAOD::TPyEvent + TPyEvent() + contains() + transientContains() + record() Node2 xAOD::TEvent # m_auxMode # m_inTree # m_inTreeMissing # m_inChain # m_inChainTracker # m_inTreeNumber # m_inMetaTree # m_entry # m_outTree # m_inputObjects and 10 more... # CACHE_SIZE # EVENT_TREE_NAME # METADATA_TREE_NAME + TEvent() + TEvent() + TEvent() + ~TEvent() + TEvent() + operator=() + auxMode() + dump() + printIOStats() + setPrintEventProxyWarnings() # initStats() # getOutputObject() # getInputObject() # record() # connectBranch() # connectMetaBranch() # connectAux() # connectMetaAux() # setUpDynamicStore() # setAuxStore() # putAux() # contains() # transientContains() # hasAuxStore() # isAuxStore() # isStandalone() * readFrom() * readFrom() * writeTo() * finishWritingTo() * setActive() * setAuxItemList() * addListener() * removeListener() * clearListeners() * addNameRemap() * clearNameRemap() * printNameRemap() * contains() * transientContains() * retrieve() * retrieve() * record() * record() * recordAux() * copy() * copy() * containsMeta() * transientContainsMeta() * retrieveMetaInput() * retrieveMetaOutput() * retrieveMetaOutput() * recordMeta() * recordMeta() * getEntries() * getEntry() * getFiles() * getFile() * fill() * inputEventFormat() * outputEventFormat() * getHash() * getKey() * getName() * getName() * record() * getOutputObject() * getInputObject() * getNames() * proxy() * proxy() * proxy_exact() * addToStore() * proxies() * stringToKey() * keyToString() * keyToString() * registerKey() * recordObject() * name() * upgrade_mutex_t * upgrading_lock_t * m_branchesMutex * ATLAS_THREAD_SAFE * getEventFormatElement() * getBranchInfo() Node2->Node1 Node3 xAOD::TVirtualEvent + DEFAULT_KEY + KEY_MASK + ~TVirtualEvent() + retrieve() + retrieve() + keys() + getHash() + getKey() + getName() + getName() # getOutputObject() # getInputObject() # getNames() Node3->Node2 Node4 implements< IProxyDict > Node4->Node2