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" 17 #include "G4Version.hh" 23 : G4HadronPhysicsFTFP_BERT(
"hInelastic FTFP_BERT",
false) {
37 if (G4Threading::IsMasterThread()) {
44 #if G4VERSION_NUMBER >= 1100 45 G4bool useNGeneral = G4HadronicParameters::Instance()->EnableNeutronGeneralProcess();
47 auto theFTFP =
new G4TheoFSGenerator(
"FTFP");
48 auto theStringModel =
new G4FTFModel();
49 theStringModel->SetFragmentationModel(
new G4ExcitedStringDecay());
50 theFTFP->SetHighEnergyGenerator(theStringModel);
51 theFTFP->SetTransport(
new G4GeneratorPrecompoundInterface());
52 theFTFP->SetMinEnergy(minFTFP_neutron);
53 theFTFP->SetMaxEnergy(G4HadronicParameters::Instance()->GetMaxEnergy());
55 auto theBERT =
new G4CascadeInterface();
56 theBERT->SetMaxEnergy(maxBERT_neutron);
58 G4HadronicProcess* ni =
new G4HadronInelasticProcess(
"neutronInelastic", G4Neutron::Neutron());
59 ni->RegisterMe(theFTFP);
60 ni->RegisterMe(theBERT);
61 G4HadProcesses::BuildNeutronInelasticAndCapture(ni);
66 G4HadronPhysicsFTFP_BERT::Neutron();
void ConstructProcess() override
CMSHadronPhysicsFTFP_BERT(G4int verb)