72 G4HadronPhysicsQGSP_BERT_HP::tpdata = 0;
118 void G4HadronPhysicsQGSP_BERT_HP::CreateModels()
120 G4bool quasiElasticFTF=
false;
121 G4bool quasiElasticQGS=
true;
130 tpdata->theNeutrons->RegisterMe(tpdata->theQGSPNeutron=
new G4QGSPNeutronBuilder(quasiElasticQGS));
131 tpdata->theQGSPNeutron->SetMinEnergy(minQGSP);
132 tpdata->theNeutrons->RegisterMe(tpdata->theFTFPNeutron=
new G4FTFPNeutronBuilder(quasiElasticFTF));
133 tpdata->theFTFPNeutron->SetMinEnergy(minFTFP);
134 tpdata->theFTFPNeutron->SetMaxEnergy(maxFTFP);
137 tpdata->theBertiniNeutron->SetMinEnergy(maxHP);
138 tpdata->theBertiniNeutron->SetMaxEnergy(maxBERT);
144 tpdata->theQGSPPro->SetMinEnergy(minQGSP);
146 tpdata->theFTFPPro->SetMinEnergy(minFTFP);
147 tpdata->theFTFPPro->SetMaxEnergy(maxFTFP);
149 tpdata->theBertiniPro->SetMaxEnergy(maxBERT);
152 tpdata->thePiK->RegisterMe(tpdata->theQGSPPiK=
new G4QGSPPiKBuilder(quasiElasticQGS));
153 tpdata->theQGSPPiK->SetMinEnergy(minQGSP);
154 tpdata->thePiK->RegisterMe(tpdata->theFTFPPiK=
new G4FTFPPiKBuilder(quasiElasticFTF));
155 tpdata->theFTFPPiK->SetMinEnergy(minFTFP);
156 tpdata->theFTFPPiK->SetMaxEnergy(maxFTFP);
158 tpdata->theBertiniPiK->SetMaxEnergy(maxBERT);
168 delete tpdata->theHPNeutron;
169 delete tpdata->theBertiniNeutron;
170 delete tpdata->theQGSPNeutron;
171 delete tpdata->theFTFPNeutron;
172 delete tpdata->theNeutrons;
173 delete tpdata->theBertiniPiK;
174 delete tpdata->theQGSPPiK;
175 delete tpdata->theFTFPPiK;
176 delete tpdata->thePiK;
177 delete tpdata->theBertiniPro;
178 delete tpdata->theQGSPPro;
179 delete tpdata->theFTFPPro;
180 delete tpdata->thePro;
181 delete tpdata->theFTFPAntiBaryon;
182 delete tpdata->theAntiBaryon;
183 delete tpdata->theHyperon;
184 delete tpdata->xsNeutronCaptureXS;
186 delete tpdata; tpdata = 0;
207 if ( tpdata == 0 ) tpdata =
new ThreadPrivate;
209 tpdata->theNeutrons->Build();
210 tpdata->thePro->Build();
211 tpdata->thePiK->Build();
212 tpdata->theHyperon->Build();
213 tpdata->theAntiBaryon->Build();
220 for (
size_t i=0; i < static_cast<size_t>(pv->
size()); ++i ) {
221 if (
fCapture == ((*pv)[i])->GetProcessSubType() ) {
223 }
else if (
fFission == ((*pv)[i])->GetProcessSubType() ) {
232 capture->
AddDataSet(tpdata->xsNeutronCaptureXS);
virtual ~G4HadronPhysicsQGSP_BERT_HP()
virtual void ConstructParticle()
G4HadronPhysicsQGSP_BERT_HP(G4int verbose=1)
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)
void SetMinEnergy(G4double anEnergy)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
static G4Neutron * Neutron()
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT_HP)
virtual void ConstructProcess()
G4ProcessVector * GetProcessList() const