Message: Re: Thermal Neutron interacting with Helium-3 Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Thermal Neutron interacting with Helium-3 

Keywords: Neutron, Helium3, hadron process, fission
Forum: Hadronic Processes
Re: Question Thermal Neutron interacting with Helium-3 (Sarah Xu)
Date: 11 Jul, 2007
From: Gregor Simmer <Gregor Simmer>

Hi Sarah I'm not quite sure what you really want, but I think I read out of your posting that you've trouble to see the He3(n,p)H3 -reaction in your simulation. Fact is, that Geant4 has some problems with defined Isotope-abundances and as soon as you start your calculation the Programm falls back to the natural isotope-abundances. To work-around this problem you have to define He3 in a special way: 1) Define He3 as an G4Isotope 2) Define a G4Element out of it (100% He3-Isotope) 3) Out of the G4Element you define your Material Here's the code:

"G4Isotope* he3 = new G4Isotope(name="he3", iz=2, n=3, a);
	G4Element* He3 = new G4Element(name="He3", symbol="He3", ncomponents=1);
	He3->AddIsotope(he3, abundance=100.*perCent);
	G4Material* He3Gas = new G4Material(name="He3Gas",
					    density,	
					    ncomponents=1,
					    kStateGas,
					    temperature,
					    pressure);
	He3Gas->AddElement(He3, fractionmass = 100.*perCent);"

(of course you also have to define the variables like iz, n, a, density, etc)

Concerning your Physics-List you also have to make some modifications
as your program should use the right data-set. It depends on the energy
of the neutrons you're using but up to ~20MeV Geant4 takes the 
cross-section-data from ENDF-B VI. 
My advice for your Neutron-Physics:
ELASTIC:
G4NeutronElasticProcess
  * G4NeutronHPElastic up to 20MeV
  * G4LElastic from 20MeV on
INELASTIC
G4NeutronInelasticProcess
  * G4NeutronHPInelastic up to 20MeV
  * G4BinaryCascade (or Bertini-Cascade, as you want to)20MeV-5GeV
  * G4LENeutronInelastic above
Another important thing is, that you implement G4NeutronHPInelasticData
to your InelasticProcess (via the function "AddDataSet")

Implementing it should work and you should see the right reaction.

Greetings and good luck

Gregor

PS: Code from my physics-list (neutron-part)
//ELASTIC
G4HadronElasticProcess* thenElasticProcess 
                         = new G4HadronElasticProcess();
   G4NeutronHPElastic* thenHPElasticModel = new G4NeutronHPElastic();
   thenHPElasticModel->SetMinEnergy(4.*eV);
   thenHPElasticModel->SetMaxEnergy(20.*MeV);
   G4LElastic* thenElasticModel = new G4LElastic();
   thenElasticModel->SetMinEnergy(20.*MeV);
   G4NeutronHPElasticData* theNeutronData1 = new G4NeutronHPElasticData;
   thenElasticProcess->AddDataSet(theNeutronData1);

//INELASTIC
G4NeutronInelasticProcess* theNeutronInelasticProcess 
                         = new G4NeutronInelasticProcess(); 
   G4NeutronHPInelastic* theNeutronHPInelastic = new G4NeutronHPInelastic();
   theNeutronHPInelastic->SetMaxEnergy(20.*MeV);
   //Binary-Cascade
   G4BinaryCascade* theNeutronBCModel = new G4BinaryCascade();
   theNeutronBCModel->SetMinEnergy(20.*MeV);
   theNeutronBCModel->SetMaxEnergy(5.*GeV);
   //Bertini-Cacscade
   /*G4CascadeInterface* theBertiniModel = new G4CascadeInterface();
   theBertiniModel->SetMinEnergy(20.*MeV);
   theBertiniModel->SetMaxEnergy( 5.*GeV);*/

   G4LENeutronInelastic* theNeutronLEPModel = new G4LENeutronInelastic();
   theNeutronLEPModel->SetMinEnergy(5.*GeV);    //geht bis 20GeV
   theNeutronLEPModel->SetMaxEnergy(20.*GeV);
   G4HENeutronInelastic* theNeutronHEModel = new G4HENeutronInelastic();
   theNeutronHEModel->SetMinEnergy(20.*GeV);
   G4NeutronHPInelasticData* theNeutronData2 = new G4NeutronHPInelasticData;
   theNeutronInelasticProcess->AddDataSet(theNeutronData2);

   theNeutronInelasticProcess->RegisterMe(theNeutronBCModel);
   //theNeutronInelasticProcess->RegisterMe(theBertiniModel);
   theNeutronInelasticProcess->RegisterMe(theNeutronLEPModel);
   theNeutronInelasticProcess->RegisterMe(theNeutronHEModel);
   theNeutronInelasticProcess->RegisterMe(theNeutronHPInelastic);
   pManager->AddDiscreteProcess(theNeutronInelasticProcess);

   G4HadronFissionProcess* thenFission
                         = new G4HadronFissionProcess();
   G4LFission* thenFissionModel = new G4LFission();
   thenFission->RegisterMe(thenFissionModel);
   pManager->AddDiscreteProcess(thenFission);

   G4HadronCaptureProcess* thenCapture
                         = new G4HadronCaptureProcess();
   G4LCapture* thenCaptureModel = new G4LCapture();
   thenCaptureModel->SetMinEnergy(20.*MeV);
   G4NeutronHPCapture* thenHPCaptureModel = new G4NeutronHPCapture();
   G4NeutronHPCaptureData* theNeutronData3 = new G4NeutronHPCaptureData;
   thenCapture->AddDataSet(theNeutronData3);

   thenCapture->RegisterMe(thenCaptureModel);
   thenCapture->RegisterMe(thenHPCaptureModel);
   pManager->AddDiscreteProcess(thenCapture);

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: Thermal Neutron interacting with Helium-3   (Sarah Xu - 11 Jul, 2007)
3 None: Re: Thermal Neutron interacting with Helium-3   (Dennis H. Wright - 11 Jul, 2007)
 Add Message Add Message
to: "Re: Thermal Neutron interacting with Helium-3"

 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 ]