AtlasField Node1 AtlasField + AtlasField() + AtlasField() + fieldCache() + GetFieldValue() Node2 G4MagneticField Node2->Node1 Node3 MagField::IMagFieldSvc - m_solenoidCurrent - m_toroidCurrent + DeclareInterfaceID() + IMagFieldSvc() + getField() + getFieldZR() + solenoidOn() + toroidOn() + solenoidCurrent() + toroidCurrent() # setSolenoidCurrent() # setToroidCurrent() Node3->Node1 -m_magFieldSvc Node4 IInterface Node4->Node3 Node5 MagField::AtlasFieldCache - m_solScale - m_torScale - m_scaleToUse - m_solZoneId + AtlasFieldCache() + AtlasFieldCache() + operator=() + AtlasFieldCache() + AtlasFieldCache() + operator=() + ~AtlasFieldCache() + getField() + getFieldZR() + solenoidOn() + toroidOn() - fillFieldCache() - fillFieldCacheZR() Node5->Node1 -ATLAS_THREAD_SAFE Node6 BFieldCache - m_zmin - m_zmax - m_rmin - m_rmax - m_phimin - m_phimax - m_invz - m_invr - m_invphi - m_scale - m_field + BFieldCache() + invalidate() + setRange() + setField() + setBscale() + bscale() + inside() + getB() Node6->Node5 -m_cache3d Node7 BFieldZone - m_id + BFieldZone() + appendCond() + addBiotSavart() + id() + ncond() + cond() + condVector() + memSize() + adjustMin() + adjustMax() Node7->Node5 -m_zone3d Node17 std::vector< BFieldCond > Node17->Node5 -m_cond Node17->Node7 -m_cond Node19 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() Node19->Node5 -m_fieldMap Node22 BFieldMeshZR - m_zoff + BFieldMeshZR() + BFieldMeshZR() + reserve() + appendMesh() + appendField() + buildLUT() + inside() + getCache() + min() + max() and 9 more... Node22->Node5 -m_meshZR Node22->Node19 -m_meshZR