50 #include "Geant4/G4ParticleDefinition.hh" 51 #include "Geant4/G4ParticleTable.hh" 52 #include "Geant4/G4SystemOfUnits.hh" 53 #include "Geant4/G4ios.hh" 54 #include "Geant4/globals.hh" 56 #include "Geant4/G4BaryonConstructor.hh" 57 #include "Geant4/G4MesonConstructor.hh" 58 #include "Geant4/G4ShortLivedConstructor.hh" 60 #include "Geant4/G4IonConstructor.hh" 62 #include "Geant4/G4ComponentGGHadronNucleusXsc.hh" 63 #include "Geant4/G4CrossSectionInelastic.hh" 64 #include "Geant4/G4HadronCaptureProcess.hh" 65 #include "Geant4/G4LFission.hh" 66 #include "Geant4/G4NeutronCaptureXS.hh" 67 #include "Geant4/G4NeutronRadCapture.hh" 68 #include "Geant4/G4ParticleHPCaptureData.hh" 70 #include "Geant4/G4CrossSectionDataSetRegistry.hh" 72 #include "Geant4/G4PhysListUtil.hh" 75 #include "Geant4/G4PhysicsConstructorFactory.hh" 83 : G4VPhysicsConstructor(
"hInelastic MyQGSP_BERT_HP_NeutronXSBias")
89 : G4VPhysicsConstructor(name)
95 G4double XSMultiplier)
102 G4bool quasiElasticFTF =
false;
103 G4bool quasiElasticQGS =
true;
105 const G4double minQGSP = 12.0 * GeV;
106 const G4double maxFTFP = 25.0 * GeV;
107 const G4double minFTFP = 9.5 * GeV;
108 const G4double maxBERT = 9.9 * GeV;
109 const G4double maxHP = 19.9 * MeV;
113 new G4QGSPNeutronBuilder(quasiElasticQGS));
116 new G4FTFPNeutronBuilder(quasiElasticFTF));
148 new G4FTFPAntiBarionBuilder(quasiElasticFTF));
180 G4MesonConstructor pMesonConstructor;
181 pMesonConstructor.ConstructParticle();
183 G4BaryonConstructor pBaryonConstructor;
184 pBaryonConstructor.ConstructParticle();
186 G4ShortLivedConstructor pShortLivedConstructor;
187 pShortLivedConstructor.ConstructParticle();
189 G4IonConstructor pIonConstructor;
190 pIonConstructor.ConstructParticle();
193 #include "Geant4/G4ProcessManager.hh" 210 G4VCrossSectionDataSet* kaonxs =
new G4CrossSectionInelastic(
tpdata->
xsKaon);
211 G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(kaonxs);
212 G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(kaonxs);
213 G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(kaonxs);
214 G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(kaonxs);
220 G4HadronicProcess* capture = 0;
221 G4HadronicProcess* fission = 0;
222 G4ProcessManager* pmanager = G4Neutron::Neutron()->GetProcessManager();
223 G4ProcessVector* pv = pmanager->GetProcessList();
224 for (
size_t i = 0; i < static_cast<size_t>(pv->size()); ++i) {
225 if (fCapture == ((*pv)[i])->GetProcessSubType()) {
226 capture =
static_cast<G4HadronicProcess*
>((*pv)[i]);
227 }
else if (fFission == ((*pv)[i])->GetProcessSubType()) {
228 fission =
static_cast<G4HadronicProcess*
>((*pv)[i]);
232 capture =
new G4HadronCaptureProcess(
"nCapture");
233 pmanager->AddDiscreteProcess(capture);
236 (G4NeutronCaptureXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(
237 G4NeutronCaptureXS::Default_Name());
239 capture->AddDataSet(
new G4ParticleHPCaptureData);
240 G4NeutronRadCapture* theNeutronRadCapture =
new G4NeutronRadCapture();
241 theNeutronRadCapture->SetMinEnergy(19.9 * MeV);
242 capture->RegisterMe(theNeutronRadCapture);
244 fission =
new G4HadronFissionProcess(
"nFission");
245 pmanager->AddDiscreteProcess(fission);
247 G4LFission* theNeutronLEPFission =
new G4LFission();
248 theNeutronLEPFission->SetMinEnergy(19.9 * MeV);
249 fission->RegisterMe(theNeutronLEPFission);
G4double theBertiniNeutronXSMultiplier
MyG4HadronPhysicsQGSP_BERT_HP_NeutronXSBias(G4int verbose=2)
static G4ThreadLocal ThreadPrivate * tpdata
G4AntiBarionBuilder * theAntiBaryon
G4ComponentGGHadronNucleusXsc * xsKaon
G4_DECLARE_PHYSCONSTR_FACTORY(MyG4HadronPhysicsQGSP_BERT_HP_NeutronXSBias)
G4FTFPNeutronBuilder * theFTFPNeutron
G4HyperonFTFPBuilder * theHyperon
G4QGSPNeutronBuilder * theQGSPNeutron
G4NeutronPHPBuilder * theHPNeutron
G4BertiniPiKBuilder * theBertiniPiK
void ConstructProcess() override
void ConstructParticle() override
G4QGSPPiKBuilder * theQGSPPiK
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon
G4NeutronBuilder * theNeutrons
G4BertiniProtonBuilder * theBertiniPro
G4BertiniNeutronBuilder * theBertiniNeutron
G4VCrossSectionDataSet * xsNeutronCaptureXS
G4FTFPProtonBuilder * theFTFPPro
G4QGSPProtonBuilder * theQGSPPro
virtual ~MyG4HadronPhysicsQGSP_BERT_HP_NeutronXSBias()
G4FTFPPiKBuilder * theFTFPPiK