CustomMonopoleFactory Node1 CustomMonopoleFactory + loadCustomMonopoles() + isCustomMonopole() + instance() - CustomMonopoleFactory() Node2 std::set< CustomMonopole * > Node2->Node1 -m_particles Node3 CustomMonopole - m_magCharge + CustomMonopole() + ~CustomMonopole() + MagneticCharge() + SetMagneticCharge() + PrintMonopoleInfo() Node3->Node2 +keys Node4 G4ParticleDefinition Node4->Node3