Message: neutron production via (p,n) reaction: problem with *_BERT_HP physics list Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question neutron production via (p,n) reaction: problem with *_BERT_HP physics list 

Forum: Physics List
Date: 24 Oct, 2008
From: J <J>

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:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Note: Re: neutron production via (p,n) reaction: problem with *_BERT_HP physics list   (Jörg Schütrumpf - 24 Oct, 2008)
2 Idea: Re: neutron production via (p,n) reaction: problem with *_BERT_HP physics list   (Vladimir Ivanchenko - 24 Oct, 2008)
1 Feedback: Re: neutron production via (p,n) reaction: problem with *_BERT_HP physics list   (Jörg Schütrumpf - 28 Oct, 2008)
1 News: Re: neutron production via (p,n) reaction: problem with *_BERT_HP physics list   (Jörg Schütrumpf - 28 Oct, 2008)
2 More: Re: neutron production via (p,n) reaction: problem with *_BERT_HP physics list   (Jörg Schütrumpf - 28 Oct, 2008)
... 1 Message(s)
 Add Message Add Message
to: "neutron production via (p,n) reaction: problem with *_BERT_HP physics list"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]