Geo2G4AssemblyFactory Node1 Geo2G4AssemblyFactory + Geo2G4AssemblyFactory() + Build() Node2 std::map< const GeoVPhys Vol *, std::unique_ptr < Geo2G4AssemblyVolume >, std::less< const GeoVPhysVol * > > + keys Node2->Node1 -m_assemblyMap Node3 std::unique_ptr< Geo2G4Assembly Volume > + operator->() Node3->Node2 +elements Node4 Geo2G4AssemblyVolume - m_imprintsCounter - m_assemblyID + Geo2G4AssemblyVolume() + Geo2G4AssemblyVolume() + ~Geo2G4AssemblyVolume() + AddPlacedVolume() + AddPlacedVolume() + AddPlacedAssembly() + AddPlacedAssembly() + MakeImprint() + MakeImprint() + GetVolumesIterator() + TotalImprintedVolumes() + GetImprintsCount() + GetInstanceCount() + GetAssemblyID() # SetAssemblyID() # InstanceCountPlus() # InstanceCountMinus() # SetImprintsCount() # ImprintsCountPlus() # ImprintsCountMinus() - MakeImprint() Node4->Node3 +ptr Node6 Geo2G4AssemblyTriplet - m_volume - m_translation - m_rotation - m_isReflection + Geo2G4AssemblyTriplet() + Geo2G4AssemblyTriplet() + Geo2G4AssemblyTriplet() + Geo2G4AssemblyTriplet() + ~Geo2G4AssemblyTriplet() + operator=() + GetVolume() + GetVolume() + SetVolume() + GetAssembly() and 9 more... Node4->Node6 -m_assembly Node5 std::vector< Geo2G4Assembly Triplet > Node5->Node4 -m_triplets Node6->Node5 +elements Node7 std::vector< G4String > + elements Node7->Node4 -m_userComments Node8 std::vector< int > + elements Node8->Node4 -m_copyNumbers Node9 std::atomic< unsigned int > + ptr Node9->Node4 -s_instanceCounter Node10 std::vector< G4VPhysical Volume * > + elements Node10->Node4 -m_PVStore