ActsTrk::SurfaceCache Node1 ActsTrk::SurfaceCache + SurfaceCache() + transform() + surface() + surface() + thickness() + setSurface() + getSurface() + hash() + identify() + detectorType() + transformCache() Node2 ActsTrk::IDetectorElementBase + ~IDetectorElementBase() + identify() + detectorType() Node2->Node1 Node3 Acts::DetectorElementBase Node3->Node2 Node4 std::shared_ptr< Acts ::Surface > + operator->() Node4->Node1 -m_surface Node5 Surface Node5->Node4 +ptr Node6 ActsTrk::TransformCache - m_type - m_clientNo + TransformCache() + TransformCache() + operator=() + ~TransformCache() + identify() + hash() + parent() + getTransform() + transform() + releaseNominalCache() + detectorType() # fetchTransform() Node6->Node1 -m_transformCache Node7 CxxUtils::CachedUniquePtr T< Amg::Transform3D > + CachedUniquePtrT() + CachedUniquePtrT() + CachedUniquePtrT() + operator=() + ~CachedUniquePtrT() + set() + store() + get() + operator*() + operator->() + operator bool() + release() Node7->Node6 -ATLAS_THREAD_SAFE Node8 std::atomic< Amg::Transform3 D * > + ptr Node8->Node7 -m_ptr Node9 std::shared_mutex Node9->Node6 -ATLAS_THREAD_SAFE Node10 IdentifierHash - m_value + IdentifierHash() + IdentifierHash() + IdentifierHash() + operator=() + operator=() + ~IdentifierHash() + IdentifierHash() + operator unsigned int() + value() + is_valid() + operator=() + operator+=() + operator-=() Node10->Node6 -m_hash