Message: Neutron elastic process Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Neutron elastic process 

Forum: Hadronic Processes
Date: 05 Mar, 2007
From: Liang Zhan <Liang Zhan>

Hi all,

I am simulating neutron transportion in water and neutron captured in liquid scintillator. I care about neutrons with energy between 0-500MeV. I constructed the neutron elastic process as following:

      G4HadronElasticProcess* theHadronElasticProcess = new G4HadronElasticProcess();
      G4LElastic* theNeutronLElastic = new G4LElastic();
      G4NeutronHPElastic* theNeutronHPElastic = new G4NeutronHPElastic();
      theNeutronHPElastic->SetMaxEnergy( 20.*MeV );
      theNeutronLElastic->SetMinEnergy( 20.*MeV );
      theNeutronLElastic->SetMaxEnergy( 1200.*GeV );

      // The G4LEnp may be better than G4LElastic for n+p elastic process.
      // The G4LElastic has probability of killing neutron in n+p elastic process
      // therefore the neutron thermalization process can not be simulated 
      // >20MeV neutron.

      theNeutronLElastic->SetMaxEnergy( 0.*MeV, G4Element::GetElement("Hydrogen"));
      G4LEnp* theNPElastic = new G4LEnp();
      theNPElastic->SetMinEnergy(0.*MeV);
      theNPElastic->SetMaxEnergy(0.*MeV);
      theNPElastic->SetMinEnergy(20.*MeV, G4Element::GetElement("Hydrogen"));
      theNPElastic->SetMaxEnergy(20.*GeV, G4Element::GetElement("Hydrogen"));
      theNPElastic->SetVerboseLevel(2);
      theHadronElasticProcess->RegisterMe( theNPElastic);

      theHadronElasticProcess->RegisterMe( theNeutronHPElastic );
      theHadronElasticProcess->RegisterMe( theNeutronLElastic );
      AddDataSet(theHadronElasticProcess, new G4NeutronHPElasticData() );
      pmanager->AddDiscreteProcess( theHadronElasticProcess );

Below 20MeV G4NeutronHPElastic is invoked. Above 20MeV G4LElastic is used except for n+p scattering because I found that G4LElastic process may kill the neutron in n+p scattering and it is impossible for a neutron to thermalize Therefore I used G4LEnp for n+p scattering above 20MeV.

But it was out of expect that the G4LEnp was invoked in the neutron and oxygen scattering. Here is the output of simulation of 30MeV neutron transport in water,

***********************************************************************************
* G4Track Information:   Particle = neutron,   Track ID = 1,   Parent ID = 0
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0        0        0        0        30        0        0         0       water initStep
G4LEnp:ApplyYourself: incident particle: neutron
P = 0.2393197396789492 GeV/c, Px = -6.55725473919233e-18 GeV/c, Py = 8.569533971325427e-19 GeV/c, Pz = 0.2393197396789492 GeV/c
E = 0.9695656300000001 GeV, kinetic energy = 0.03 GeV, mass = 0.93956563 GeV, charge = 0
G4LEnp:ApplyYourself: material:
A = 16, Z = 8, atomic mass 0.9382722999999999GeV
G4LEnp:ApplyYourself: total:
E = 1.90783793 GeV, mass = 1.892768245017515 GeV, charge = 8
... ...
    1    -10.6     1.75    -1.92         0        0     10.9      10.9       water LElastic

And I have two questions.
1. Is G4LEnp can be used for n+p scattering instead of G4LElastic? Is there
   any other way to simulate n+p scattering
2. How to use G4LEnp properly? How to avoid G4LEnp invokation in neutron and oxygen scattering?

Thanks.

Liang Zhan.

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

1 None: Re: Neutron elastic process   (Vladimir IVANTCHENKO - 05 Mar, 2007)
 Add Message Add Message
to: "Neutron elastic process"

 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 ]