Skip to content

Update version to CLHEP_2_4_1_3_atl03

This fixes a rounding issue in RandGuassZiggurat

The random number engine works in terms of double precision floats internally, but the call to RandGaussZiggurat::ziggurat_UNI casts the result down to a single precision float. The largest single precision float less than 1.0 is 0.999999940395355225, whereas for double precision the value is 0.99999999999999988898, so there is a window where values less than 1.0 from dSFMTEngine::flat() can be rounded to up 1.0 when returned by RandGaussZiggurat::ziggurat_UNI() violating the condition that random numbers returned are in the range [0.0,1.0).

This issue is discussed in ATR-24381.

NB This change should be expected to produce small changes in the RandGaussZiggurat output and so may well change sim and digi output.

Tagging @akraszna, @tadej, @fwinkl, @carquin.

Edited by John Derek Chapman

Merge request reports