8 #include <G4OpticalPhysics.hh> 10 #include <G4LossTableManager.hh> 12 #include <G4ProcessManager.hh> 13 #include <G4ParticleTypes.hh> 14 #include <G4ParticleTable.hh> 16 #include <G4PhysListFactory.hh> 19 #include <G4Electron.hh> 20 #include <G4Positron.hh> 22 #include <G4ProcessTable.hh> 24 #include <G4SystemOfUnits.hh> 29 : G4VModularPhysicsList() {
30 G4LossTableManager::Instance();
31 defaultCutValue = 1.*
mm;
40 G4PhysListFactory factory;
41 G4VModularPhysicsList* phys = NULL;
45 char* list =
getenv(
"PHYSLIST");
47 phys = factory.ReferencePhysList();
52 if (!phys && physName.size() > 1
53 && factory.IsReferencePhysList(physName)) {
55 phys =factory.GetReferencePhysList(physName);
60 phys =factory.GetReferencePhysList(
"QGSP_BERT");
68 for (G4int i = 0; ; ++i) {
69 G4VPhysicsConstructor* elem =
70 const_cast<G4VPhysicsConstructor*
> (phys->GetPhysics(i));
71 if (elem == NULL)
break;
72 G4cout <<
"RegisterPhysics: " << elem->GetPhysicsName() << G4endl;
73 RegisterPhysics(elem);
79 RegisterPhysics(
new G4OpticalPhysics());
88 if (verboseLevel >0) {
89 G4cout <<
"EDepSim::PhysicsList::SetCuts:";
90 G4cout <<
"CutLength : " << G4BestUnit(defaultCutValue,
"Length")
100 if (verboseLevel>0) DumpCutValuesTable();
#define EDepSimLog(outStream)
EDepSim::PhysicsListMessenger * fMessenger
The messenger to control this class.
void SetCutForGamma(G4double)
Set the range cut for photons.
void SetIonizationModel(bool)
#define EDepSimThrow(message)
Print an error message, and then throw an exception.
void SetCutForPositron(G4double)
Set the range cut for positrons.
std::string getenv(std::string const &name)
void SetCutForElectron(G4double)
Set the range cut for electrons.
G4double fCutForPositron
The positron range cut.
virtual void SetCuts()
Used by GEANT4 to set the cuts defined below.
EDepSim::ExtraPhysics * fExtra
The extra physics list.
PhysicsList(G4String physName)
G4double fCutForGamma
The gamma-ray range cut.
static constexpr double mm
G4double fCutForElectron
The electron range cut.