79 G4HadronPhysicsINCLXX::tpdata = 0;
84 , withNeutronHP(false)
91 , QuasiElastic(quasiElastic)
92 , withNeutronHP(neutronHP)
97 void G4HadronPhysicsINCLXX::CreateModels()
99 G4bool quasiElasticFTF=
false;
100 G4bool quasiElasticQGS=
true;
103 tpdata->theNeutronHP=0;
104 tpdata->theQGSPNeutron=0;
105 tpdata->theQGSPPro=0;
106 tpdata->theQGSPPion=0;
107 tpdata->theQGSPKaon=0;
108 tpdata->theFTFPNeutron=0;
109 tpdata->theFTFPPro=0;
110 tpdata->theFTFPPion=0;
111 tpdata->theFTFPKaon=0;
115 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=
new G4FTFPNeutronBuilder(quasiElasticFTF));
116 tpdata->theFTFPNeutron->SetMinEnergy(15.*
GeV);
118 tpdata->theNeutrons->RegisterMe(tpdata->theQGSPNeutron=
new G4QGSPNeutronBuilder(quasiElasticQGS));
119 tpdata->theQGSPNeutron->SetMinEnergy(15.*
GeV);
122 tpdata->theINCLXXNeutron->SetMaxEnergy(20.0*
GeV);
124 tpdata->theINCLXXNeutron->UsePreCompound(
false);
125 tpdata->theINCLXXNeutron->SetMinEnergy(19.9*
MeV);
128 tpdata->theINCLXXNeutron->UsePreCompound(
true);
129 tpdata->theINCLXXNeutron->SetMinPreCompoundEnergy(0.0*
MeV);
130 tpdata->theINCLXXNeutron->SetMaxPreCompoundEnergy(2.0*
MeV);
131 tpdata->theINCLXXNeutron->SetMinEnergy(1.0*
MeV);
137 tpdata->theFTFPPro->SetMinEnergy(15.*
GeV);
140 tpdata->theQGSPPro->SetMinEnergy(15.*
GeV);
143 tpdata->theINCLXXPro->SetMinEnergy(1.0*
MeV);
144 tpdata->theINCLXXPro->SetMaxEnergy(20.0*
GeV);
148 tpdata->thePion->RegisterMe(tpdata->theFTFPPion=
new G4FTFPPionBuilder(quasiElasticFTF));
149 tpdata->theFTFPPion->SetMinEnergy(15.*
GeV);
151 tpdata->thePion->RegisterMe(tpdata->theQGSPPion=
new G4QGSPPionBuilder(quasiElasticQGS));
152 tpdata->theQGSPPion->SetMinEnergy(15.*
GeV);
155 tpdata->theINCLXXPion->SetMinEnergy(0.0*
GeV);
156 tpdata->theINCLXXPion->SetMaxEnergy(20.0*
GeV);
160 tpdata->theKaon->RegisterMe(tpdata->theFTFPKaon=
new G4FTFPKaonBuilder(quasiElasticFTF));
161 tpdata->theFTFPKaon->SetMinEnergy(14.*
GeV);
163 tpdata->theKaon->RegisterMe(tpdata->theQGSPKaon=
new G4QGSPKaonBuilder(quasiElasticQGS));
164 tpdata->theQGSPKaon->SetMinEnergy(14.*
GeV);
167 tpdata->theBertiniKaon->SetMinEnergy(0.0*
GeV);
168 tpdata->theBertiniKaon->SetMaxEnergy(15.0*
GeV);
179 delete tpdata->theFTFPNeutron;
180 delete tpdata->theQGSPNeutron;
181 delete tpdata->theINCLXXNeutron;
182 delete tpdata->theNeutronHP;
183 delete tpdata->theFTFPPro;
184 delete tpdata->theQGSPPro;
185 delete tpdata->thePro;
186 delete tpdata->theINCLXXPro;
187 delete tpdata->theFTFPPion;
188 delete tpdata->theQGSPPion;
189 delete tpdata->theFTFPKaon;
190 delete tpdata->theQGSPKaon;
191 delete tpdata->theINCLXXPion;
192 delete tpdata->thePion;
193 delete tpdata->theKaon;
194 delete tpdata->theHyperon;
195 delete tpdata->theAntiBaryon;
196 delete tpdata->theFTFPAntiBaryon;
198 delete tpdata; tpdata = 0;
220 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
222 tpdata->theNeutrons->Build();
223 tpdata->thePro->Build();
224 tpdata->thePion->Build();
225 tpdata->theKaon->Build();
235 tpdata->theHyperon->Build();
236 tpdata->theAntiBaryon->Build();
243 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
244 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
246 }
else if (
fFission == ((*pv)[i])->GetProcessSubType() ) {
255 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
258 if ( withNeutronHP ) {
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
static G4KaonMinus * KaonMinus()
static void ConstructParticle()
void RegisterMe(G4HadronicInteraction *a)
virtual ~G4HadronPhysicsINCLXX()
void SetMinEnergy(G4double anEnergy)
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
virtual void ConstructParticle()
static G4KaonZeroShort * KaonZeroShort()
G4HadronPhysicsINCLXX(G4int verbose=1)
static G4CrossSectionDataSetRegistry * Instance()
static G4Neutron * Neutron()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
static constexpr double GeV
static constexpr double MeV
virtual void ConstructProcess()
static G4KaonPlus * KaonPlus()
G4ProcessVector * GetProcessList() const
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)