StandardFieldSvc Node1 StandardFieldSvc - m_useMagFieldSvc - m_fullMapFilename - m_soleMapFilename - m_toroMapFilename - m_mapSoleCurrent - m_mapToroCurrent - m_useSoleCurrent - m_useToroCurrent + StandardFieldSvc() + ~StandardFieldSvc() + initialize() # makeField() - createFieldMap() - solenoidOn() - toroidOn() Node2 G4MagFieldSvcBase + G4MagFieldSvcBase() + ~G4MagFieldSvcBase() + getField() # makeField() Node2->Node1 Node3 extends< AthService, IG4FieldSvc > Node3->Node2 Node4 thread_utils::ThreadLocal Owner< G4MagneticField > + ~ThreadLocalOwner() Node4->Node2 #m_fieldHolder Node5 thread_utils::ThreadLocal Holder< G4MagneticField > # m_threadMap + get() + set() + getMap() Node5->Node4 Node6 std::unique_ptr< MagField ::AtlasFieldMap > + operator->() Node6->Node1 -m_fieldMap Node7 MagField::AtlasFieldMap - m_solenoidCurrent - m_toroidCurrent - m_solenoidZoneId - m_invq - m_zmin - m_zmax - m_nz - m_rmax - m_nr - m_nphi - m_mapIsInitialized + AtlasFieldMap() + ~AtlasFieldMap() + initializeMap() + findBFieldZone() + getBFieldMesh() + solenoidOn() + toroidOn() + solenoidCurrent() + toroidCurrent() + solenoidZoneId() - operator=() - AtlasFieldMap() - operator=() - AtlasFieldMap() - findZoneSlow() - read_packed_data() - read_packed_int() - buildLUT() - buildZR() - memSize() Node7->Node6 +ptr Node8 std::vector< const BFieldZone * > Node8->Node7 -m_zoneLUT Node21 std::vector< BFieldZone > Node21->Node7 -m_zone Node30 ServiceHandle< MagField ::IMagFieldSvc > Node30->Node1 -m_magFieldSvc