70 G4ThreadLocal G4HadronPhysicsNuBeam::ThreadPrivate* G4HadronPhysicsNuBeam::tpdata=0;
108 , QuasiElastic(quasiElastic)
114 void G4HadronPhysicsNuBeam::CreateModels()
121 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron);
123 tpdata->theBertiniNeutron->SetMinEnergy(0.0*
GeV);
124 tpdata->theBertiniNeutron->SetMaxEnergy(5*
GeV);
140 tpdata->thePro->RegisterMe(tpdata->theQGSPPro);
145 tpdata->thePro->RegisterMe(tpdata->theFTFPPro);
146 tpdata->theFTFPPro->SetMinEnergy(3.*
GeV);
147 tpdata->theFTFPPro->SetMaxEnergy(101.*
GeV);
152 tpdata->theBertiniPro->SetMaxEnergy(3.5*
GeV);
159 tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK);
160 tpdata->theFTFPPiK->SetMinEnergy(3.*
GeV);
162 tpdata->theBertiniPiK->SetMaxEnergy(3.5*
GeV);
178 delete tpdata->theNeutrons;
179 delete tpdata->theBertiniNeutron;
180 delete tpdata->theFTFPNeutron;
182 delete tpdata->thePiK;
183 delete tpdata->theBertiniPiK;
184 delete tpdata->theFTFPPiK;
186 delete tpdata->thePro;
187 delete tpdata->theBertiniPro;
188 delete tpdata->theFTFPPro;
189 delete tpdata->theQGSPPro;
191 delete tpdata->theHyperon;
192 delete tpdata->theAntiBaryon;
193 delete tpdata->theFTFPAntiBaryon;
217 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
221 tpdata->theNeutrons->Build();
222 tpdata->thePro->Build();
223 tpdata->thePiK->Build();
233 tpdata->theHyperon->Build();
234 tpdata->theAntiBaryon->Build();
244 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i )
246 if (
fCapture == ((*pv)[i])->GetProcessSubType() )
256 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
virtual void ConstructParticle()
virtual ~G4HadronPhysicsNuBeam()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
static const char * Default_Name()
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
static G4KaonMinus * KaonMinus()
void RegisterMe(G4HadronicInteraction *a)
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
static G4KaonZeroShort * KaonZeroShort()
static G4CrossSectionDataSetRegistry * Instance()
G4HadronPhysicsNuBeam(G4int verbose=1)
static G4Neutron * Neutron()
virtual void ConstructProcess()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
static constexpr double GeV
static G4KaonPlus * KaonPlus()
G4ProcessVector * GetProcessList() const
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)