| Message: neutron production via (p,n) reaction: problem with *_BERT_HP physics list | Not Logged In (login) |
|
Hi,
I want to calculate the neutron production with a (p,n) reaction. I'm quite new to geant4. When I use the HadronPhysicsLHEP_BERT_HP physics list I get no neutrons. I think this could be because of this output (range cut and energy thresholds look weird):
========= Table of registered couples ==============================
Index : 0 used in the geometry : Yes recalculation needed : No
Material : Vacuum
Range cuts : gamma 0 fm e- 0 fm e+ 0 fm
Energy thresholds : gamma -1 MeV e- -1 MeV e+ -1 MeV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes recalculation needed : No
Material : Lithium
Range cuts : gamma 0 fm e- 0 fm e+ 0 fm
Energy thresholds : gamma -1 MeV e- -1 MeV e+ -1 MeV
Region(s) which use this couple :
DefaultRegionForTheWorld
==================================================================== When I simulate a couple of particles the StepLength goes to the double limit and the run has to be aborted. I've read a forum entry that this Bertini Cascade isn't made for reactions below 100MeV incident particles, but it should fit best. In addition I tried to make my own hadronic physic list. The range cuts and energy thresholds work well and neutrons are produced, but I do not know which physics are implemented in the G4LEProtonInelastic() and the G4LENeutronInelastic() method. I copied the content at the end of this post. Can someone tell me what is wrong with the HadronPhysicsLHEP_BERT_HP physic list? Also the theory behind my used inelastic scattering processes -> which formalism is used for the proton energy loss or wich processes are taken into account? Thanks. Kind regards, Jörg _________________________________ #include "myHadronPhysics.hh"
myHadronPhysics::myHadronPhysics(const G4String& name)
: G4VPhysicsConstructor(name)
{}
myHadronPhysics::~myHadronPhysics() {;}
#include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh"// Nuclei #include "G4BaryonConstructor.hh" #include "G4MesonConstructor.hh" #include "G4IonConstructor.hh"
void myHadronPhysics::ConstructParticle()
{
// barions
G4BaryonConstructor pBaryonConstructor;
pBaryonConstructor.ConstructParticle();
// mesons G4MesonConstructor pMesonConstructor; pMesonConstructor.ConstructParticle();
// ions G4IonConstructor pIonConstructor; pIonConstructor.ConstructParticle(); } #include "G4ProcessManager.hh" void myHadronPhysics::ConstructProcess() { // AddTransportation(); // file compiles only if this line is commented out... strange
G4ProcessManager * pManager = 0; // Elastic Process theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); theElasticModel->SetMinEnergy(0.0*MeV); theElasticModel->SetMaxEnergy(100.*MeV);
// Proton pManager = G4Proton::Proton()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEProtonModel = new G4LEProtonInelastic(); theProtonInelastic.RegisterMe(theLEProtonModel); theLEProtonModel->SetMinEnergy(0.0*MeV); theLEProtonModel->SetMaxEnergy(100.*MeV); pManager->AddDiscreteProcess(&theProtonInelastic); pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); pManager->AddProcess(&theProtonMult); pManager->SetProcessOrdering(&theProtonMult, idxAlongStep, 1); pManager->SetProcessOrdering(&theProtonMult, idxPostStep, 1);
// Neutron pManager = G4Neutron::Neutron()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLENeutronModel = new G4LENeutronInelastic(); theNeutronInelastic.RegisterMe(theLENeutronModel); theLENeutronModel->SetMinEnergy(0.0*MeV); theLENeutronModel->SetMaxEnergy(100.*MeV); pManager->AddDiscreteProcess(&theNeutronInelastic);
theNeutronFissionModel = new G4LFission(); theNeutronFission.RegisterMe(theNeutronFissionModel); theNeutronFissionModel->SetMinEnergy(0.0*MeV); theNeutronFissionModel->SetMaxEnergy(100.*MeV); pManager->AddDiscreteProcess(&theNeutronFission);
theNeutronCaptureModel = new G4LCapture(); theNeutronCapture.RegisterMe(theNeutronCaptureModel); theNeutronCaptureModel->SetMinEnergy(0.0*MeV); theNeutronCaptureModel->SetMaxEnergy(100.*MeV); pManager->AddDiscreteProcess(&theNeutronCapture); }
|
| Inline Depth: | Outline Depth: | Add message: |
|
to: |