72 G4HadronPhysicsINCLXX::tpdata = 0;
97 , withNeutronHP(false)
124 , QuasiElastic(quasiElastic)
125 , withNeutronHP(neutronHP)
130 void G4HadronPhysicsINCLXX::CreateModels()
132 G4bool quasiElasticFTF=
false;
133 G4bool quasiElasticQGS=
true;
136 tpdata->theQGSPNeutron=0;
137 tpdata->theNeutronHP=0;
138 tpdata->theQGSPPro=0;
139 tpdata->theQGSPPiK=0;
143 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=
new G4FTFPNeutronBuilder(quasiElasticFTF));
144 tpdata->theFTFPNeutron->SetMinEnergy(9.5*
GeV);
146 tpdata->theNeutrons->RegisterMe(tpdata->theQGSPNeutron=
new G4QGSPNeutronBuilder(quasiElasticQGS));
147 tpdata->theFTFPNeutron->SetMaxEnergy(25*
GeV);
150 tpdata->theBertiniNeutron->SetMinEnergy(2.9*
GeV);
151 tpdata->theBertiniNeutron->SetMaxEnergy(9.9*
GeV);
153 tpdata->theINCLXXNeutron->SetMaxEnergy(3.0*
GeV);
155 tpdata->theINCLXXNeutron->UsePreCompound(
false);
156 tpdata->theINCLXXNeutron->SetMinEnergy(19.9*
MeV);
159 tpdata->theINCLXXNeutron->UsePreCompound(
true);
160 tpdata->theINCLXXNeutron->SetMinPreCompoundEnergy(0.0*
MeV);
161 tpdata->theINCLXXNeutron->SetMaxPreCompoundEnergy(2.0*
MeV);
162 tpdata->theINCLXXNeutron->SetMinEnergy(1.0*
MeV);
167 tpdata->theFTFPPro->SetMinEnergy(9.5*
GeV);
170 tpdata->theFTFPPro->SetMaxEnergy(25*
GeV);
173 tpdata->theBertiniPro->SetMinEnergy(2.9*
GeV);
174 tpdata->theBertiniPro->SetMaxEnergy(9.9*
GeV);
176 tpdata->theINCLXXPro->SetMinEnergy(1.0*
MeV);
177 tpdata->theINCLXXPro->SetMaxEnergy(3.0*
GeV);
180 tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK=
new G4FTFPPiKBuilder(quasiElasticFTF));
181 tpdata->theFTFPPiK->SetMinEnergy(9.5*
GeV);
183 tpdata->thePiK->RegisterMe(tpdata->theQGSPPiK=
new G4QGSPPiKBuilder(quasiElasticQGS));
184 tpdata->theFTFPPiK->SetMaxEnergy(25*
GeV);
187 tpdata->theBertiniPiK->SetMinEnergy(2.9*
GeV);
188 tpdata->theBertiniPiK->SetMaxEnergy(9.9*
GeV);
190 tpdata->theINCLXXPiK->SetMinEnergy(0.0*
GeV);
191 tpdata->theINCLXXPiK->SetMaxEnergy(3.0*
GeV);
202 delete tpdata->theFTFPNeutron;
203 delete tpdata->theQGSPNeutron;
204 delete tpdata->theBertiniNeutron;
205 delete tpdata->theINCLXXNeutron;
206 delete tpdata->theNeutronHP;
207 delete tpdata->theFTFPPro;
208 delete tpdata->theQGSPPro;
209 delete tpdata->thePro;
210 delete tpdata->theBertiniPro;
211 delete tpdata->theINCLXXPro;
212 delete tpdata->theFTFPPiK;
213 delete tpdata->theQGSPPiK;
214 delete tpdata->theINCLXXPiK;
215 delete tpdata->theBertiniPiK;
216 delete tpdata->thePiK;
217 delete tpdata->theHyperon;
218 delete tpdata->theAntiBaryon;
219 delete tpdata->theFTFPAntiBaryon;
220 delete tpdata->xsNeutronCaptureXS;
222 delete tpdata; tpdata = 0;
244 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
246 tpdata->theNeutrons->Build();
247 tpdata->thePro->Build();
248 tpdata->thePiK->Build();
249 tpdata->theHyperon->Build();
250 tpdata->theAntiBaryon->Build();
257 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
258 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
260 }
else if (
fFission == ((*pv)[i])->GetProcessSubType() ) {
269 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
272 if ( withNeutronHP ) {
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsINCLXX)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
G4ProcessManager * GetProcessManager() const
static void ConstructParticle()
void RegisterMe(G4HadronicInteraction *a)
virtual ~G4HadronPhysicsINCLXX()
void SetMinEnergy(G4double anEnergy)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
virtual void ConstructParticle()
G4HadronPhysicsINCLXX(G4int verbose=1)
static G4Neutron * Neutron()
virtual void ConstructProcess()
G4ProcessVector * GetProcessList() const