ActsTrk::IReadoutSurfacePositioning Node1 ActsTrk::IReadoutSurface Positioning   + ~IReadoutSurfacePositioning() + identify() + parent() + releaseNominalCache() + placement() + AlignableGeoPositioning() + AlignableGeoPositioning() + AlignableGeoPositioning() Node8 ActsTrk::SurfacePlacement   + ~SurfacePlacement() + SurfacePlacement() + operator=() + SurfacePlacement() + operator=() + localToGlobalTransform() + surface() + surface() + getSurface() + hash() + identify() + detectorType() + detectorElement() + makeShared() - SurfacePlacement() Node1->Node8 -m_transformCache Node2 ActsTrk::AlignableGeoPositioning - m_type - m_clientNo + AlignableGeoPositioning() + AlignableGeoPositioning() + operator=() + AlignableGeoPositioning() + operator=() + ~AlignableGeoPositioning() + hash() + getTransform() + getTransform() + storeTransform() + getTransform() + releaseNominalCache() + detectorType() # fetchTransform() Node2->Node1 Node3 IdentifierHash - m_value - m_max_value + IdentifierHash() + IdentifierHash() + is_valid() + operator=() + operator+=() + operator-=() + operator value_type() + value() * operator value_type() * value() Node3->Node2 -m_hash Node4 CxxUtils::CachedUniquePtr T< Amg::Transform3D >   + CachedUniquePtrT() + operator=() + ~CachedUniquePtrT() + set() + store() + get() + operator*() + operator->() + operator bool() + release() Node4->Node2 -ATLAS_THREAD_SAFE Node5 std::atomic< Amg::Transform3 D * > + ptr   Node5->Node4 -m_ptr Node6 std::shared_ptr< Acts ::Surface > + ptr + operator->() Node6->Node1 -m_surface Node7 std::shared_ptr< ActsTrk ::SurfacePlacement >   + operator->() Node7->Node1 -m_placement Node8->Node7 +ptr Node9 ActsTrk::ISurfacePlacement   + ~ISurfacePlacement() + identify() + detectorType() + detectorElement() + isSensitive() Node9->Node8 Node10 Acts::SurfacePlacementBase     Node10->Node9