71 G4HadronPhysicsQGSP_BIC_AllHP::tpdata = 0;
119 void G4HadronPhysicsQGSP_BIC_AllHP::CreateModels()
121 G4bool quasiElasticFTF=
false;
122 G4bool quasiElasticQGS=
true;
131 tpdata->theNeutronB->RegisterMe(tpdata->theQGSPNeutron=
new G4QGSPNeutronBuilder(quasiElasticQGS));
132 tpdata->theNeutronB->RegisterMe(tpdata->theFTFPNeutron=
new G4FTFPNeutronBuilder(quasiElasticFTF));
133 tpdata->theFTFPNeutron->SetMinEnergy(minFTFP);
134 tpdata->theFTFPNeutron->SetMaxEnergy(maxFTFP);
137 tpdata->theBinaryNeutron->SetMinEnergy(maxHP);
138 tpdata->theBinaryNeutron->SetMaxEnergy(maxBIC);
144 tpdata->theProtonB->RegisterMe(tpdata->theQGSPProton=
new G4QGSPProtonBuilder(quasiElasticQGS));
145 tpdata->theProtonB->RegisterMe(tpdata->theFTFPProton=
new G4FTFPProtonBuilder(quasiElasticFTF));
146 tpdata->theFTFPProton->SetMinEnergy(minFTFP);
147 tpdata->theFTFPProton->SetMaxEnergy(maxFTFP);
149 tpdata->theBinaryProton->SetMaxEnergy(maxBIC);
152 tpdata->theBinaryProton->SetMinEnergy(200*
MeV);
154 tpdata->theProtonB->RegisterMe(tpdata->thePHPProton);
155 tpdata->thePHPProton->SetMinEnergy(0.*
MeV);
156 tpdata->thePHPProton->SetMaxEnergy(200*
MeV);
159 tpdata->thePiKB->RegisterMe(tpdata->theQGSPPiK=
new G4QGSPPiKBuilder(quasiElasticQGS));
160 tpdata->thePiKB->RegisterMe(tpdata->theFTFPPiK=
new G4FTFPPiKBuilder(quasiElasticFTF));
161 tpdata->theFTFPPiK->SetMaxEnergy(maxFTFP);
163 tpdata->theBertiniPiK->SetMaxEnergy(maxBERT);
176 delete tpdata->thePHPNeutron;
177 delete tpdata->thePHPProton;
178 delete tpdata->theBinaryNeutron;
179 delete tpdata->theQGSPNeutron;
180 delete tpdata->theFTFPNeutron;
181 delete tpdata->theBertiniPiK;
182 delete tpdata->theQGSPPiK;
183 delete tpdata->theFTFPPiK;
184 delete tpdata->thePiKB;
185 delete tpdata->theBinaryProton;
186 delete tpdata->theQGSPProton;
187 delete tpdata->theFTFPProton;
188 delete tpdata->theProtonB;
189 delete tpdata->theFTFPAntiBaryon;
190 delete tpdata->theAntiBaryon;
191 delete tpdata->theHyperon;
192 delete tpdata->xsNeutronCaptureXS;
194 delete tpdata; tpdata = 0;
212 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
214 tpdata->theNeutronB->Build();
215 tpdata->theProtonB->Build();
216 tpdata->thePiKB->Build();
226 tpdata->theHyperon->Build();
227 tpdata->theAntiBaryon->Build();
234 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
235 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
237 }
else if (
fFission == ((*pv)[i])->GetProcessSubType() ) {
246 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
virtual ~G4HadronPhysicsQGSP_BIC_AllHP()
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)
static G4KaonZeroShort * KaonZeroShort()
static G4Neutron * Neutron()
virtual void ConstructProcess()
G4ProcessManager * GetProcessManager() const
static constexpr double GeV
virtual void ConstructParticle()
static constexpr double MeV
static G4KaonPlus * KaonPlus()
G4ProcessVector * GetProcessList() const
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)
G4HadronPhysicsQGSP_BIC_AllHP(G4int verbose=1)