64 G4HadronPhysicsFTFP_BERT_HP::tpdata=0;
107 , QuasiElastic(quasiElastic)
112 void G4HadronPhysicsFTFP_BERT_HP::CreateModels()
126 <<
" FTFP_BERT_HP : new threshold between BERT and FTFP is over the interval " <<
G4endl
127 <<
" for pions : " << minFTFP_pion/
GeV <<
" to " << maxBERT_pion/
GeV <<
" GeV" <<
G4endl
128 <<
" for kaons : " << minFTFP_kaon/
GeV <<
" to " << maxBERT_kaon/
GeV <<
" GeV" <<
G4endl
129 <<
" for proton : " << minFTFP_proton/
GeV <<
" to " << maxBERT_proton/
GeV <<
" GeV" <<
G4endl
130 <<
" for neutron : " << minFTFP_neutron/
GeV <<
" to " << maxBERT_neutron/
GeV <<
" GeV" <<
G4endl
136 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron);
137 tpdata->theFTFPNeutron->SetMinEnergy(minFTFP_neutron);
139 tpdata->theBertiniNeutron->SetMinEnergy(19.9*
MeV);
140 tpdata->theBertiniNeutron->SetMaxEnergy(maxBERT_neutron);
145 tpdata->thePro->RegisterMe(tpdata->theFTFPPro);
146 tpdata->theFTFPPro->SetMinEnergy(minFTFP_proton);
148 tpdata->theBertiniPro->SetMaxEnergy(maxBERT_proton);
152 tpdata->thePion->RegisterMe(tpdata->theFTFPPion);
153 tpdata->theFTFPPion->SetMinEnergy(minFTFP_pion);
155 tpdata->theBertiniPion->SetMaxEnergy(maxBERT_pion);
159 tpdata->theKaon->RegisterMe(tpdata->theFTFPKaon);
160 tpdata->theFTFPKaon->SetMinEnergy(minFTFP_kaon);
162 tpdata->theBertiniKaon->SetMaxEnergy(maxBERT_kaon);
174 delete tpdata->theNeutrons;
175 delete tpdata->theBertiniNeutron;
176 delete tpdata->theFTFPNeutron;
177 delete tpdata->theHPNeutron;
179 delete tpdata->thePion;
180 delete tpdata->theBertiniPion;
181 delete tpdata->theFTFPPion;
183 delete tpdata->theKaon;
184 delete tpdata->theBertiniKaon;
185 delete tpdata->theFTFPKaon;
187 delete tpdata->thePro;
188 delete tpdata->theBertiniPro;
189 delete tpdata->theFTFPPro;
191 delete tpdata->theHyperon;
192 delete tpdata->theAntiBaryon;
193 delete tpdata->theFTFPAntiBaryon;
195 delete tpdata; tpdata = 0;
213 if (tpdata == 0 ) tpdata =
new ThreadPrivate;
215 tpdata->theNeutrons->Build();
216 tpdata->thePro->Build();
217 tpdata->thePion->Build();
218 tpdata->theKaon->Build();
228 tpdata->theHyperon->Build();
229 tpdata->theAntiBaryon->Build();
236 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
237 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
239 }
else if (
fFission == ((*pv)[i])->GetProcessSubType() ) {
248 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
virtual void ConstructProcess()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
G4HadronPhysicsFTFP_BERT_HP(G4int verbose=1)
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
static G4KaonMinus * KaonMinus()
void RegisterMe(G4HadronicInteraction *a)
void SetMinEnergy(G4double anEnergy)
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
G4GLOB_DLL std::ostream G4cout
static G4KaonZeroShort * KaonZeroShort()
static G4CrossSectionDataSetRegistry * Instance()
static G4Neutron * Neutron()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
virtual ~G4HadronPhysicsFTFP_BERT_HP()
static constexpr double GeV
virtual void ConstructParticle()
static constexpr double MeV
static G4KaonPlus * KaonPlus()
G4ProcessVector * GetProcessList() const
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)