xAOD::xAODREvent Node1 xAOD::xAODREvent   + xAODREvent() Node2 xAOD::Experimental ::REvent - m_inputNTupleIsMissing - m_entry - m_outputFile + REvent() + ~REvent() + readFrom() + readFrom() + writeTo() + finishWritingTo() + getEntries() + getEntry() + fill() + record() + record() - initStats() - setUpDynamicStore() - hasInput() - hasOutput() - getNames() - connectObject() - connectMetaObject() - connectAux() - connectMetaAux() - setAuxStore() - record() - recordAux() - putAux() - addField() * readFrom() * readFrom() * writeTo() * finishWritingTo() * getEntries() * getEntry() * fill() * record() * record() * hasInput() * hasOutput() * getNames() * connectObject() * connectMetaObject() * connectAux() * connectMetaAux() * setAuxStore() * record() * recordAux() * putAux() * addField() Node2->Node1 Node3 xAOD::Event # m_printEventProxyWarnings + Event() + ~Event() + getEntries() + getEntry() + fill() + inputEventFormat() + outputEventFormat() + dump() + printIOStats() + contains() + transientContains() + keys() + retrieve() + retrieve() + record() + record() + copy() + containsMeta() + transientContainsMeta() + metaKeys() + retrieveMetaInput() + retrieveMetaOutput() + retrieveMetaOutput() + recordMeta() + recordMeta() # recordTypeless() # getOutputObject() # getInputObject() # contains() # transientContains() # currentContext() # proxy() # proxy() # proxy_exact() # addToStore() # proxies() # stringToKey() # keyToString() # keyToString() # registerKey() # recordObject() # name() # hasInput() # hasOutput() # getNames() # connectObject() # connectMetaObject() # connectAux() # connectMetaAux() # setAuxStore() # record() # recordAux() * upgrade_mutex_t * upgrading_lock_t * m_branchesMutex * ATLAS_THREAD_SAFE * EVENT_TREE_NAME * EVENT_RNTUPLE_NAME * METADATA_OBJECT_NAME * readFrom() * writeTo() * finishWritingTo() * setActive() * setAuxItemList() * addListener() * removeListener() and 6 more... * m_ctx * getEventFormatElement() * getBranchInfo() * getEntries() * getEntry() * fill() * inputEventFormat() * outputEventFormat() * dump() * printIOStats() * contains() * transientContains() * keys() * retrieve() * retrieve() * record() * record() * copy() * containsMeta() * transientContainsMeta() * metaKeys() * retrieveMetaInput() * retrieveMetaOutput() * retrieveMetaOutput() * recordMeta() * recordMeta() * getHash() * getKey() * getName() * getName() * getOutputObject() * getInputObject() * proxy() * proxy() * proxy_exact() * addToStore() * proxies() * stringToKey() * keyToString() * keyToString() * registerKey() * recordObject() * name() * hasInput() * hasOutput() * getNames() * connectObject() * connectMetaObject() * connectAux() * connectMetaAux() * setAuxStore() * record() * recordAux() Node3->Node2 Node4 xAOD::TVirtualEvent + DEFAULT_KEY + KEY_MASK + ~TVirtualEvent() + retrieve() + retrieve() + getHash() + getKey() + getName() + getName() # getOutputObject() # getInputObject() Node4->Node3 Node5 Details::IProxyDictBase     Node5->Node3 Node6 asg::AsgMessaging   + AsgMessaging() + AsgMessaging() + msgLvl() + msg() + msg() * msgLvl() * msg() * msg() Node6->Node3 Node12 std::unordered_map < std::string, std:: unique_ptr< TVirtualManager > > + keys + elements   Node12->Node3 #m_inputMetaObjects #m_inputObjects #m_outputMetaObjects #m_outputObjects Node23 std::unique_ptr< ROOT ::RNTupleReader > + ptr + operator->() Node23->Node2 -m_eventReader -m_metaReader Node24 std::unique_ptr< ROOT ::RNTupleModel > + ptr + operator->() Node24->Node2 -m_model Node25 std::unique_ptr< ROOT ::RNTupleWriter > + ptr + operator->() Node25->Node2 -m_eventWriter