Skip to content

Complete rewrite of grid scanner

Aaron Liblong requested to merge GridScanner-rewrite into master

Existing design elements of TQGridScanner et al make it difficult to reason about the code. Other than the usual readability problems present in much of QFramework, these include:

  • Properties of the same entity stored in separate vectors
  • Confusing relationship with TQSignificanceEvaluator
  • Significant code bloat

In retrospect, I see that the design is necessarily complicated due to the recursive and performance-intensive nature of the grid scan. I believe this rewrite significantly improves upon the existing code, but there are still some confusing elements present. It took so much time to get to this point that I can't recommend undertaking this sort of rewrite for any of the other modules, but then again, the grid scanner is surely among the most complex.

I've marked this WIP for several reasons:

  • I have yet to implement the creation of histograms (c.f. significance profiles). If we still want this functionality, it shouldn't take long to adapt from the existing code.
  • The code could use more testing, but I've verified that the results it produces during my existing workflow are consistent with those from the previous code.
  • The pipeline fails due to missing boost libraries, so I assume some change needs to happen to be able to use these libraries. Based on feedback from Carsten this shouldn't be a problem.

The rewrite is of course a breaking change, but I'm not sure to what extent this matters since I don't know who else uses the code.

Edited by Benjamin Paul Jaeger

Merge request reports