|Message: Re: Thermal Neutron interacting with Helium-3||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
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
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:||Outline Depth:||Add message:|