4 #include "G4TheoFSGenerator.hh" 5 #include "G4FTFModel.hh" 6 #include "G4ExcitedStringDecay.hh" 7 #include "G4GeneratorPrecompoundInterface.hh" 8 #include "G4CascadeInterface.hh" 10 #include "G4HadronicParameters.hh" 11 #include "G4HadronicProcess.hh" 12 #include "G4HadronInelasticProcess.hh" 13 #include "G4HadProcesses.hh" 14 #include "G4SystemOfUnits.hh" 15 #include "G4Threading.hh" 21 : G4HadronPhysicsFTFP_BERT(
"hInelastic FTFP_BERT",
false) {
35 if (G4Threading::IsMasterThread()) {
42 G4bool useNGeneral = G4HadronicParameters::Instance()->EnableNeutronGeneralProcess();
44 auto theFTFP =
new G4TheoFSGenerator(
"FTFP");
45 auto theStringModel =
new G4FTFModel();
46 theStringModel->SetFragmentationModel(
new G4ExcitedStringDecay());
47 theFTFP->SetHighEnergyGenerator(theStringModel);
48 theFTFP->SetTransport(
new G4GeneratorPrecompoundInterface());
49 theFTFP->SetMinEnergy(minFTFP_neutron);
50 theFTFP->SetMaxEnergy(G4HadronicParameters::Instance()->GetMaxEnergy());
52 auto theBERT =
new G4CascadeInterface();
53 theBERT->SetMaxEnergy(maxBERT_neutron);
55 G4HadronicProcess* ni =
new G4HadronInelasticProcess(
"neutronInelastic", G4Neutron::Neutron());
56 ni->RegisterMe(theFTFP);
57 ni->RegisterMe(theBERT);
58 G4HadProcesses::BuildNeutronInelasticAndCapture(ni);
62 G4HadronPhysicsFTFP_BERT::Neutron();
void ConstructProcess() override
CMSHadronPhysicsFTFP_BERT(G4int verb)