Синглтон
В ООП синглтон (Singleton pattern) — это объект, существующий в единственном экземпляре во все время выполнения программы. Обычно синглтонами делаются различные сервисные объекты, управляющие некоторым глобальным в контексте программы процессом. В GEANT4 все объекты-менеджеры являются синглтонами.
Конструкторы у классов-синглтонов обычно закрыты, объект автоматически создается во время запуска программы, а доступ к нему производится через статическую функцию член, например, как у G4RunManager:
// Определение (в GEANT4) class G4RunManager { public: static G4RunManager* GetRunManager(); }; // Использование (в коде) G4RunManager::GetRunManager->BeamOn(1000); // Запустить 1000 событий