5 #include "G4DecayPhysics.hh"
6 #include "G4EmExtraPhysics.hh"
7 #include "G4IonINCLXXPhysics.hh"
8 #include "G4StoppingPhysics.hh"
9 #include "G4HadronElasticPhysics.hh"
10 #include "G4NeutronTrackingCut.hh"
11 #include "G4HadronicProcessStore.hh"
13 #include "G4HadronPhysicsINCLXX.hh"
16 int ver =
p.getUntrackedParameter<
int>(
"Verbosity", 0);
17 bool emPhys =
p.getUntrackedParameter<
bool>(
"EMPhysics",
true);
18 bool hadPhys =
p.getUntrackedParameter<
bool>(
"HadPhysics",
true);
19 bool tracking =
p.getParameter<
bool>(
"TrackingCut");
20 double timeLimit =
p.getParameter<
double>(
"MaxTrackTime") * CLHEP::ns;
21 edm::LogInfo(
"PhysicsList") <<
"You are using the simulation engine: "
22 <<
"FTFP_INCLXX_EMM \n Flags for EM Physics " << emPhys <<
", for Hadronic Physics "
23 << hadPhys <<
" and tracking cut " <<
tracking <<
" t(ns)= " << timeLimit / CLHEP::ns;
30 G4EmExtraPhysics* gn =
new G4EmExtraPhysics(ver);
35 this->RegisterPhysics(
new G4DecayPhysics(ver));
38 G4HadronicProcessStore::Instance()->SetVerbose(ver);
41 RegisterPhysics(
new G4HadronElasticPhysics(ver));
44 RegisterPhysics(
new G4HadronPhysicsINCLXX(ver,
true,
false,
true));
47 RegisterPhysics(
new G4StoppingPhysics(ver));
50 RegisterPhysics(
new G4IonINCLXXPhysics(ver));
54 G4NeutronTrackingCut* ncut =
new G4NeutronTrackingCut(ver);
55 ncut->SetTimeLimit(timeLimit);
56 RegisterPhysics(ncut);