Skip to content
Snippets Groups Projects

online: Fix float precision issues in time calculations in STS hit finder

Merged Felix Weiglhofer requested to merge fweig/cbmroot:sts-fp32-fix into master

Fix cluster and hit finding in the STS detector when using 32-bit floating-point precision. The issue occurs when calculating time differences between digis or clusters with large timestamps - 32-bit floats lack sufficient precision for representing nanosecond timestamps in the mCBM setup with 128ms timeframes.

Add helper methods GetTimeDiff() that first convert timestamps to int before calculating the difference, preserving precision and sign. Replace direct floating-point timestamp subtractions throughout the code with calls to these helper methods.

This resolves hit count discrepancies between 32-bit and 64-bit float versions, reducing the difference from ~2.6% to ~0.04%.

This bug was discovered by our student Simon Schütt, who loooked at the differences between the 32 bit and 64 bit versions. I put him as commit author.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading