G4MagFieldSvcBase Node1 G4MagFieldSvcBase + G4MagFieldSvcBase() + ~G4MagFieldSvcBase() + getField() # makeField() Node2 extends< AthService, IG4FieldSvc > Node2->Node1 Node3 thread_utils::ThreadLocal Owner< G4MagneticField > + ~ThreadLocalOwner() Node3->Node1 #m_fieldHolder Node4 thread_utils::ThreadLocal Holder< G4MagneticField > # m_threadMap + get() + set() + getMap() Node4->Node3