ActsElementVector Node1 ActsElementVector + push_back() Node2 std::mutex Node2->Node1 -m_mutex Node3 std::vector< std::shared _ptr< const ActsDetectorElement > > Node3->Node1 -ATLAS_THREAD_SAFE Node4 std::shared_ptr< const ActsDetectorElement > + operator->() Node4->Node3 +elements Node5 ActsDetectorElement - m_type - m_detElement - m_thickness + ActsDetectorElement() + ActsDetectorElement() + ActsDetectorElement() + ~ActsDetectorElement() + identify() + detectorType() + storeAlignedTransforms() + transform() + surface() + surface() and 6 more... Node5->Node4 +ptr Node6 ActsTrk::IDetectorElement + ~IDetectorElement() + identify() + detectorType() + storeAlignedTransforms() Node6->Node5 Node8 GeoVDetectorElement Node8->Node5 Node9 std::shared_ptr< Acts ::Surface > + operator->() Node9->Node5 -m_surface Node11 std::unique_ptr< const Amg::Transform3D > + ptr + operator->() Node11->Node5 -m_trtTrf Node12 std::shared_ptr< const Acts::SurfaceBounds > + ptr + operator->() Node12->Node5 -m_bounds