4 #include "G4RunManager.hh"
5 #include "G4VUserPhysicsList.hh"
6 #include "G4UserSpecialCuts.hh"
7 #include "G4StepLimiter.hh"
8 #include "G4PhysListFactory.hh"
21 Module(
"PhysicsListManager"), m_currentList(0), m_isInitialized(false), m_isFromDefault(false), m_enableLimits(false), m_setupLimits(false), m_enableOptical(false) {
65 G4ParticleTable* ptbl = G4ParticleTable::GetParticleTable();
66 G4ParticleTable::G4PTblDicIterator* piter = ptbl->GetIterator();
67 G4UserSpecialCuts* cuts =
new G4UserSpecialCuts(
"UserSpecialCuts");
68 G4StepLimiter* slim =
new G4StepLimiter(
"StepLimiter");
72 G4ParticleDefinition* pdef = piter->value();
73 G4ProcessManager* pmgr = pdef->GetProcessManager();
77 pmgr->AddProcess(slim, -1, -1, 3);
79 pmgr->AddProcess(cuts, -1, -1, 4);
81 G4Exception(
"",
"", FatalException,
"G4ProcessManager is null.");
87 const std::vector<G4String>& lists =
m_factory->AvailablePhysLists();
88 for (std::vector<G4String>::const_iterator it = lists.begin(); it != lists.end(); it++) {
Optical physics constructor.
static HepPDTManager * instance()
This class models the extended particle set from HepPDT.
Base class for slic code modules that provides common functionality, such as logging to an output str...
void setCurrentListName(const std::string &name)
static const std::string m_defaultListName
void setupUserLimitsProcesses()
void printAvailablePhysicsLists()
PhysicsMessenger * m_messenger
G4PhysListFactory * m_factory
G4VUserPhysicsList * m_currentList
G4VUserPhysicsList * createPhysicsList()
std::string m_currentListName
virtual ~PhysicsListManager()
G4UImessenger for selection of physics list at runtime.