16 #include "G4SystemOfUnits.hh"
17 #include "G4UnitsTable.hh"
18 #include "G4ProcessTable.hh"
19 #include "G4RegionStore.hh"
21 #include "G4EmStandardPhysics.hh"
22 #include "G4EmExtraPhysics.hh"
23 #include "G4EmParameters.hh"
24 #include "G4HadronicParameters.hh"
25 #include "G4DecayPhysics.hh"
26 #include "G4NuclideTable.hh"
28 #include "G4RadioactiveDecayPhysics.hh"
29 #include "G4OpticalPhysics.hh"
30 #include "G4StepLimiterPhysics.hh"
43 #include "G4BosonConstructor.hh"
44 #include "G4LeptonConstructor.hh"
45 #include "G4MesonConstructor.hh"
46 #include "G4BaryonConstructor.hh"
47 #include "G4IonConstructor.hh"
48 #include "G4ShortLivedConstructor.hh"
50 #include "G4Version.hh"
53 :G4VModularPhysicsList()
56 SetVerboseLevel(verb);
60 new G4UnitDefinition(
"millielectronVolt",
"meV",
"Energy", 1.
e-3*
eV);
62 #if G4VERSION_NUMBER < 1100
63 const G4double minute = 60*second;
64 const G4double hour = 60*minute;
65 const G4double day = 24*hour;
66 const G4double year = 365*day;
67 new G4UnitDefinition(
"minute",
"min",
"Time", minute);
68 new G4UnitDefinition(
"hour",
"h",
"Time", hour);
69 new G4UnitDefinition(
"day",
"d",
"Time", day);
70 new G4UnitDefinition(
"year",
"y",
"Time", year);
76 G4NuclideTable::GetInstance()->SetThresholdOfHalfLife(0.1*picosecond);
77 G4NuclideTable::GetInstance()->SetLevelTolerance(1.0*
eV);
95 G4BosonConstructor pBosonConstructor;
96 pBosonConstructor.ConstructParticle();
98 G4LeptonConstructor pLeptonConstructor;
99 pLeptonConstructor.ConstructParticle();
101 G4MesonConstructor pMesonConstructor;
102 pMesonConstructor.ConstructParticle();
104 G4BaryonConstructor pBaryonConstructor;
105 pBaryonConstructor.ConstructParticle();
107 G4IonConstructor pIonConstructor;
108 pIonConstructor.ConstructParticle();
110 G4ShortLivedConstructor pShortLivedConstructor;
111 pShortLivedConstructor.ConstructParticle();
117 RegisterPhysics(
new G4EmStandardPhysics());
118 G4EmParameters* param = G4EmParameters::Instance();
119 param->SetAugerCascade(
true);
120 param->SetStepFunction(1., 1.*
CLHEP::mm);
121 param->SetStepFunctionMuHad(1., 1.*
CLHEP::mm);
124 RegisterPhysics(
new G4DecayPhysics());
128 { RegisterPhysics(
new G4RadioactiveDecayPhysics()); }
142 { RegisterPhysics(
new G4OpticalPhysics() ); }
146 { RegisterPhysics(
new G4StepLimiterPhysics()); }
153 auto verbose = G4ProcessTable::GetProcessTable()->GetVerboseLevel();
155 G4EmParameters::Instance()->SetVerbose(
verbose);
156 G4HadronicParameters::Instance()->SetVerboseLevel(
verbose);
158 G4VModularPhysicsList::ConstructProcess();
171 auto store = G4RegionStore::GetInstance();
172 return store->GetRegion(reg);
177 for(G4int i=0; i<4; i++)
191 if(!regPtr)
return regPtr;
193 auto cuts = regPtr->GetProductionCuts();
196 cuts =
new G4ProductionCuts();
197 regPtr->SetProductionCuts(cuts);
200 cuts->SetProductionCut(val,i);
210 auto cuts = regPtr->GetProductionCuts();
211 if(cuts) val = cuts->GetProductionCut(i);
216 #include "G4UserLimits.hh"
221 if(!regPtr)
return regPtr;
223 auto uLim = regPtr->GetUserLimits();
226 uLim =
new G4UserLimits(val);
227 regPtr->SetUserLimits(uLim);
230 { uLim->SetMaxAllowedStep(val); }
234 #include "G4Track.hh"
237 static G4Track dummyTrack;
242 auto uLim = regPtr->GetUserLimits();
243 if(uLim) val = uLim->GetMaxAllowedStep(dummyTrack);