xAOD::AuxPersVector< T, VEC > Node1 xAOD::AuxPersVector < T, VEC > + AuxPersVector() + clone() Node2 SG::AuxTypeVectorHolder < T, std::vector< T > > # SCALE - m_vecPtr - m_ownFlag + AuxTypeVectorHolder() + AuxTypeVectorHolder() + AuxTypeVectorHolder() + ~AuxTypeVectorHolder() + operator=() + operator=() + vec() + clone() + toPtr() + toPtr() and 9 more... # getDataSpanImpl() # storeDataSpan() - insertMove1() - insertMove1() Node2->Node1 Node3 SG::IAuxTypeVector - m_auxid - m_isLinked + IAuxTypeVector() + ~IAuxTypeVector() + clone() + toPtr() + toPtr() + toVector() + size() + resize() + reserve() + shift() and 8 more... # getDataSpanImpl() # storeDataSpan() # resetDataSpan() Node3->Node2 Node4 CxxUtils::CachedValue < SG::AuxDataSpanBase > + CachedValue() + CachedValue() + CachedValue() + CachedValue() + CachedValue() + CachedValue() + operator=() + operator=() + set() + set() + isValid() + ptr() + store() + store() + reset() Node4->Node3 -m_span Node5 SG::AuxDataSpanBase + beg + size + AuxDataSpanBase() Node5->Node4 -ATLAS_THREAD_SAFE Node6 std::atomic< CacheState > + ptr Node6->Node4 -m_cacheValid