I’m developing an application for thermal neutron detection using a ³He detector tube.
I noticed that the tube is showing count values significantly below those observed experimentally.
As a hypothetical test, I set up a monoenergetic thermal neutron source with an energy of 0.025 eV. The source was positioned at one end of the detector tube, emitting neutrons in the longitudinal direction to the other end.
Detector parameters:
Total tube length: 66 cm
Radius: 12.55 mm
Sensitive region (inner ³He tube): 64 cm
Pressure: 6 atm
Gas density: 0.00075 g/cm³
Definition of ³He material (6 atm) in the code:
G4double z = 2.; // Atomic number of Helium
G4double a = 3.016 * g / mole; // Atomic mass of Helium-3
G4double temperature = 293.15 * kelvin; // Ambient temperature
G4Material* helium3_6atm = new G4Material(
“Helium3_6atm”, z, a, 0.00075 * g/cm3,
kStateGas, temperature, pressure6atm
);
The macro file:
/run/initialize
/gps/pos/type Point
/gps/direction 0 0 -1
/gps/particle neutron
/gps/energy 0.025 eV
/gps/pos/centre -10 218 30 cm
/run/beamOn 1000000
The physics list used was QGSP_BIC_HP and the Geant4 version is 11.02 (Linux/Ubuntu).
To obtain the neutron capture or proton production count, I used two independent methods:
Neutron capture via SteppingAction.
Proton population count using G4PSPopulation with a proton filter.
The two methods produced identical results:
SteppingAction: 5.9 × 10⁻⁵ captures per neutron source
G4PSPopulation (proton filter): 5.9 × 10⁻⁵ protons per neutron source
In other words, both counters converge to the same value in the case of protons, but the result is still an order of magnitude below the experimental arrangement.
Would there be any additional implementation or adjustment to the model that could correct this discrepancy?