Can G4PhysicsLinearVector extrapolate outside the range of poitns?

I’m trying to debug someone else’s code in our experimental framework. They have implemented the Sarkis model (DOI 10.1103/PhysRevA.107.062811) for NIEL (nuclear-recoil ionization yield) using a G4PhysicsLinearVector interpolation table. The data points, from 0.048 to 3.018 MeV, are in a text file which is properly formatted to be read in by G4PhysicsVector::Retrieve(<fstream>, true).

If I take a run of sample points within that range (say, from 100 to 500 keV), I seem to get nice continuous values, with a smooth curve. However, if I look at very low energy data points, for example from 0 to 10 keV (all below the 48 keV first bin) all I get are zeroes.

I would have expected G4PhysicsVector to use the spline fit, and extrapolate smoothly from the lowest data point down. Do we need to include a “0. 0.” entry in the data file to get that “extrapolation” to work via interpolation?

hi Mike,

if spline is used there are several type of splines. All are not very reliable outside vector edges, because the algorithm does not know what is needed. The best recommendation would be to implement custom interpolation if the argument is outside edges.

VI

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.