The two problems mentioned above have been solved in GEANT 3.15. As far as the precision is concerned, the solution was to revert to the algorithm of GEANT 3.13 every time the relative energy loss in the step ( DESTEP/GEKIN) is smaller than five times the machine precision. This has given good results without loosing the substantial improvements obtained in GEANT 3.14 with the introduction of the stopping range algorithm. As a matter of fact, the above condition happens only the in the case of very small steps or when the curve is very flat, and in both cases the algorithm based on the tables is a good approximation.
The second problem has been solved by changing the interpolation algorithm, going from a linear to a quadratic interpolation. Instead of assuming a linear relation between energy and stopping range in every energy bin, we assume a quadratic relation of the sort:
The only problem now is the determination of the coefficients a, b and c. To do this we recall that the general formula of the parabola which passes through the points is the following:
This allows us to calculate and tabulate the coefficients a, b and c just by replacing by ELOW(I) and by the corresponding stopping range ELOW(i ). In the routine GRANGI a table of length
is created:
Q(JINTRP+3*(I-1) | +1) | = | = | .3cm | |
+2) | = | = | .3cm | ||
+3) | = | = | .3cm |
where and . The calculation of the energy loss is now done in the following steps:
The value of I is chosen according to the following. Let i be such that :
| ||
|
The value of is an empirical number which minimises the discontinuities of the reconstructed curve.
This value is then corrected to take into account the energy loss fluctuations (see [PHYS332]).