6 #include "G4DecayPhysics.hh" 7 #include "G4EmExtraPhysics.hh" 8 #include "G4IonPhysics.hh" 9 #include "G4StoppingPhysics.hh" 10 #include "G4HadronElasticPhysics.hh" 12 #include "G4Version.hh" 13 #if G4VERSION_NUMBER >= 1110 14 #include "G4HadronicParameters.hh" 18 int ver =
p.getUntrackedParameter<
int>(
"Verbosity", 0);
19 bool emPhys =
p.getUntrackedParameter<
bool>(
"EMPhysics",
true);
20 bool hadPhys =
p.getUntrackedParameter<
bool>(
"HadPhysics",
true);
21 double minFTFP =
p.getParameter<
double>(
"EminFTFP") * CLHEP::GeV;
22 double maxBERT =
p.getParameter<
double>(
"EmaxBERT") * CLHEP::GeV;
23 double maxBERTpi =
p.getParameter<
double>(
"EmaxBERTpi") * CLHEP::GeV;
25 <<
"\n Flags for EM Physics: " << emPhys <<
"; Hadronic Physics: " << hadPhys
26 <<
"\n Transition energy Bertini/FTFP from " << minFTFP / CLHEP::GeV <<
" to " 27 << maxBERT / CLHEP::GeV <<
"; for pions to " << maxBERTpi / CLHEP::GeV <<
" GeV";
34 G4EmExtraPhysics* gn =
new G4EmExtraPhysics(ver);
36 #if G4VERSION_NUMBER >= 1110 37 bool mu =
p.getParameter<
bool>(
"G4MuonPairProductionByMuon");
44 this->RegisterPhysics(
new G4DecayPhysics(ver));
47 #if G4VERSION_NUMBER >= 1110 48 bool ngen =
p.getParameter<
bool>(
"G4NeutronGeneralProcess");
49 bool bc =
p.getParameter<
bool>(
"G4BCHadronicProcess");
50 bool hn =
p.getParameter<
bool>(
"G4LightHyperNucleiTracking");
51 auto param = G4HadronicParameters::Instance();
52 param->SetEnableNeutronGeneralProcess(ngen);
53 param->SetEnableBCParticles(bc);
54 param->SetEnableHyperNuclei(hn);
55 edm::LogVerbatim(
"PhysicsList") <<
" Eneble neutron general process: " << ngen
56 <<
"\n Enable b- and c- hadron physics: " << bc
57 <<
"\n Enable light hyper-nuclei physics: " << hn;
61 RegisterPhysics(
new G4HadronElasticPhysics(ver));
67 RegisterPhysics(
new G4StoppingPhysics(ver));
70 RegisterPhysics(
new G4IonPhysics(ver));
Log< level::Info, true > LogVerbatim
FTFPCMS_BERT_EMM(const edm::ParameterSet &p)