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