Inclusion of ThermalScattering in Shielding Physics

Hi,

I would like to use G4HadronPhysicsShielding() for modeling the neutron effects at both low and high energies. I was previously using NeutronHPPhysics() and added the following lines of code to call the thermal scattering data:

    // Declare the thermal neutron data
    G4NeutronHPThermalScatteringData* theNeutronThermalData = new G4NeutronHPThermalScatteringData();
    theNeutronElasticProcess->AddDataSet(theNeutronThermalData);

    // Declare the thermal neutron scattering cross section model
    G4NeutronHPThermalScattering* theNeutronThermalElasticModel = new G4NeutronHPThermalScattering();
    // Set the maximum energy to the specified choice.
    theNeutronThermalElasticModel->SetMaxEnergy(4*eV);
    // Register the thermal scattering with the neutron elastic process
    theNeutronElasticProcess->RegisterMe(theNeutronThermalElasticModel);

I am not sure how to incorporate these lines of code into G4HadronPhysicsShielding() to correctly model neutrons between 0 and 4 eV. Do you have any suggestions?

Thank you!

1 Like

I have attached the solution that I came up with. I ended up modifying G4HadronElasticPhysics() since that models elastic interactions and the G4NeutronHPThermalScattering() incorporates the physics models for the elastic interactions of thermal neutrons. Please let me know if anyone sees any issues with this method.

G4HadronElasticPhysics_mod.cc (9.7 KB)
G4HadronElasticPhysics_mod.hh (3.6 KB)

1 Like