18 #include "G4SystemOfUnits.hh"
19 #include "G4ParticleDefinition.hh"
20 #include "G4ParticleTable.hh"
22 #include "G4MesonConstructor.hh"
23 #include "G4BaryonConstructor.hh"
24 #include "G4ShortLivedConstructor.hh"
26 #include "G4ComponentGGHadronNucleusXsc.hh"
27 #include "G4CrossSectionInelastic.hh"
28 #include "G4HadronCaptureProcess.hh"
29 #include "G4NeutronRadCapture.hh"
30 #include "G4NeutronInelasticXS.hh"
31 #include "G4NeutronCaptureXS.hh"
33 #include "G4CrossSectionDataSetRegistry.hh"
35 #include "G4PhysListUtil.hh"
40 : G4VPhysicsConstructor(
"hInelastic FTFP_BERT_ATL"), QuasiElastic(
false) {}
43 G4double minFTFP = 9.0 *
GeV;
44 G4double maxBERT = 12.0 *
GeV;
45 G4cout <<
" CMS_FTFP_BERT_ATL : new threshold between BERT and FTFP"
46 <<
" is over the interval " << minFTFP /
GeV <<
" to " << maxBERT /
GeV <<
" GeV." << G4endl;
102 G4MesonConstructor pMesonConstructor;
103 pMesonConstructor.ConstructParticle();
105 G4BaryonConstructor pBaryonConstructor;
106 pBaryonConstructor.ConstructParticle();
108 G4ShortLivedConstructor pShortLivedConstructor;
109 pShortLivedConstructor.ConstructParticle();
112 #include "G4ProcessManager.hh"
123 G4VCrossSectionDataSet* kaonxs =
new G4CrossSectionInelastic(
tpdata->
xsKaon);
124 G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
125 G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
126 G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
127 G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
135 G4HadronicProcess*
capture =
nullptr;
136 G4ProcessManager* pmanager = G4Neutron::Neutron()->GetProcessManager();
137 G4ProcessVector*
pv = pmanager->GetProcessList();
138 for (
size_t i = 0; i < static_cast<size_t>(
pv->size()); ++
i) {
139 if (fCapture == ((*
pv)[
i])->GetProcessSubType()) {
140 capture = static_cast<G4HadronicProcess*>((*
pv)[
i]);
144 capture =
new G4HadronCaptureProcess(
"nCapture");
145 pmanager->AddDiscreteProcess(
capture);
149 capture->RegisterMe(
new G4NeutronRadCapture());