Merged requested to merge RichInterfaces-ModerniseAndAddIRichMirrorSegFinderLookUpTable into master
- Prefer DeclareInterfaceID
- Add a new interface specific to the mirror segment finder look up table tool. Recent optimisations in this tool mean the lookups are very fast, and the virtual overhead is no longer acceptable, around 15%. These calls are used heavily in the photon reconstruction and ray tracing thus a more efficient interface was required. The new one is specific to this tool, and provides efficient inlined access to the lookup. The original interface with virtual methods is still implemented, that allows (in principle) different implementations to be swap out at runtime. The user can pick which they want when loading the tool, by simply choosing the interface.
Overall this one change saves 1.8% on the total time taken by the RichFuture Quartic photon reconstruction algorithm. See attached callgrind heatmaps.