Skip to content

Fix check in monitoring code

Daniel Campora Perez requested to merge dcampora_fix_monitoring_check into master

The monitoring of lines would always write the ROOT histograms unless the first value in the histogram was -1. This check was flawed in that the following would occur:

There is a code that initializes the quantities to -1:

https://gitlab.cern.ch/lhcb/Allen/-/blob/master/device/selections/line_types/include/Line.cuh#L86-97

However, one should note memset acts at the level of bytes. Hence, four -1 bytes representations will be: 11111111 (in Two's complement), which joined together will form a 11111111 11111111 11111111 11111111 for 32-bit types.

This will be equivalent to -1 for an integer, however that will not be the case for a floating point number.

Therefore, the check for -1 should rather be "are all the bits in the first element set to 1", which is what this MR does.

Merge request reports