76 G4HadronPhysicsQGSP_BERT::tpdata = 0;
123 , QuasiElastic(quasiElastic)
127 void G4HadronPhysicsQGSP_BERT::CreateModels()
129 G4bool quasiElasticFTF=
false;
130 G4bool quasiElasticQGS=
true;
139 tpdata->theNeutrons->RegisterMe(tpdata->theQGSPNeutron=
new G4QGSPNeutronBuilder(quasiElasticQGS));
140 tpdata->theQGSPNeutron->SetMinEnergy(minQGSP);
141 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=
new G4FTFPNeutronBuilder(quasiElasticFTF));
142 tpdata->theFTFPNeutron->SetMinEnergy(minFTFP);
143 tpdata->theFTFPNeutron->SetMaxEnergy(maxFTFP);
146 tpdata->theBertiniNeutron->SetMinEnergy(minBERT);
147 tpdata->theBertiniNeutron->SetMaxEnergy(maxBERT);
151 tpdata->theQGSPPro->SetMinEnergy(minQGSP);
153 tpdata->theFTFPPro->SetMinEnergy(minFTFP);
154 tpdata->theFTFPPro->SetMaxEnergy(maxFTFP);
156 tpdata->theBertiniPro->SetMaxEnergy(maxBERT);
159 tpdata->thePiK->RegisterMe(tpdata->theQGSPPiK=
new G4QGSPPiKBuilder(quasiElasticQGS));
160 tpdata->theQGSPPiK->SetMinEnergy(minQGSP);
161 tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK=
new G4FTFPPiKBuilder(quasiElasticFTF));
162 tpdata->theFTFPPiK->SetMinEnergy(minFTFP);
163 tpdata->theFTFPPiK->SetMaxEnergy(maxFTFP);
165 tpdata->theBertiniPiK->SetMaxEnergy(maxBERT);
177 delete tpdata->theBertiniNeutron;
178 delete tpdata->theQGSPNeutron;
179 delete tpdata->theFTFPNeutron;
180 delete tpdata->theNeutrons;
181 delete tpdata->theBertiniPiK;
182 delete tpdata->theQGSPPiK;
183 delete tpdata->theFTFPPiK;
184 delete tpdata->thePiK;
185 delete tpdata->theBertiniPro;
186 delete tpdata->theQGSPPro;
187 delete tpdata->theFTFPPro;
188 delete tpdata->thePro;
189 delete tpdata->theFTFPAntiBaryon;
190 delete tpdata->theAntiBaryon;
191 delete tpdata->theHyperon;
193 delete tpdata; tpdata = 0;
214 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
216 tpdata->theNeutrons->Build();
217 tpdata->thePro->Build();
218 tpdata->thePiK->Build();
228 tpdata->theHyperon->Build();
229 tpdata->theAntiBaryon->Build();
238 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
239 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
248 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
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()
static void ConstructParticle()
void RegisterMe(G4HadronicInteraction *a)
virtual void ConstructParticle()
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
static G4KaonZeroShort * KaonZeroShort()
static G4CrossSectionDataSetRegistry * Instance()
G4HadronPhysicsQGSP_BERT(G4int verbose=1)
static G4Neutron * Neutron()
virtual void ConstructProcess()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
virtual ~G4HadronPhysicsQGSP_BERT()
static constexpr double GeV
static G4KaonPlus * KaonPlus()
G4ProcessVector * GetProcessList() const
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)