83 G4HadronPhysicsShielding::tpdata = 0;
89 , minFTFPEnergy_(9.5*
GeV)
90 , maxBertiniEnergy_(9.9*
GeV)
91 , minNonHPNeutronEnergy_(19.9*
MeV)
98 , minFTFPEnergy_(9.5*
GeV)
99 , maxBertiniEnergy_(9.9*
GeV)
100 , minNonHPNeutronEnergy_(19.9*
MeV)
108 , minFTFPEnergy_(minFTFPEnergy)
109 , maxBertiniEnergy_(maxBertiniEnergy)
110 , minNonHPNeutronEnergy_(19.9*
MeV)
114 void G4HadronPhysicsShielding::CreateModels()
116 G4bool quasiElasticFTF=
false;
120 tpdata->theFTFPNeutron->SetMinEnergy(minFTFPEnergy_);
121 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron);
123 tpdata->theBertiniNeutron->SetMinEnergy(minNonHPNeutronEnergy_);
124 tpdata->theBertiniNeutron->SetMaxEnergy(maxBertiniEnergy_);
127 if ( useLEND_ !=
true )
136 tpdata->theFTFPPro->SetMinEnergy(minFTFPEnergy_);
137 tpdata->thePro->RegisterMe(tpdata->theFTFPPro);
139 tpdata->theBertiniPro->SetMaxEnergy(maxBertiniEnergy_);
143 tpdata->theFTFPPiK->SetMinEnergy(minFTFPEnergy_);
144 tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK);
146 tpdata->theBertiniPiK->SetMaxEnergy(maxBertiniEnergy_);
158 delete tpdata->theNeutrons;
159 delete tpdata->theBertiniNeutron;
160 delete tpdata->theFTFPNeutron;
162 delete tpdata->theLENeutron;
164 delete tpdata->thePiK;
165 delete tpdata->theBertiniPiK;
166 delete tpdata->theFTFPPiK;
168 delete tpdata->thePro;
169 delete tpdata->theBertiniPro;
170 delete tpdata->theFTFPPro;
172 delete tpdata->theHyperon;
173 delete tpdata->theAntiBaryon;
174 delete tpdata->theFTFPAntiBaryon;
176 delete tpdata->theBGGxsNeutron;
177 delete tpdata->theNeutronHPJENDLHEInelastic;
178 delete tpdata->theBGGxsProton;
180 delete tpdata; tpdata=0;
201 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
205 tpdata->thePro->Build();
206 tpdata->theNeutrons->Build();
208 tpdata->theBGGxsNeutron = 0;
218 tpdata->theBGGxsProton=0;
222 tpdata->thePiK->Build();
232 tpdata->theHyperon->Build();
233 tpdata->theAntiBaryon->Build();
240 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
241 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
243 }
else if (
fFission == ((*pv)[i])->GetProcessSubType() ) {
252 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
255 theNeutronRadCapture->
SetMinEnergy( minNonHPNeutronEnergy_ );
262 theNeutronLEPFission->
SetMinEnergy( minNonHPNeutronEnergy_ );
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
virtual void ConstructProcess()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
virtual ~G4HadronPhysicsShielding()
static G4KaonMinus * KaonMinus()
static void ConstructParticle()
void RegisterMe(G4HadronicInteraction *a)
void SetMinEnergy(G4double anEnergy)
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
static G4KaonZeroShort * KaonZeroShort()
static G4CrossSectionDataSetRegistry * Instance()
static G4Neutron * Neutron()
G4HadronPhysicsShielding(G4int verbose=1)
virtual void ConstructParticle()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
static constexpr double GeV
static constexpr double MeV
static G4KaonPlus * KaonPlus()
G4ProcessVector * GetProcessList() const
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)