To be MT-safe, the tools in eflowRec need to be const, as do a number of their member variables. These were (still!) caching event data in member variables, which were not even mutables.
I eliminated various sorts of caching and started to get rid of some of the pointer arguments. The EtaPhi classes are lightweight enough that we can return by value w/o serious overhead.
There were even "hidden" constness problems in e.g.
PFTrackClusterMatchingTool where the caching happened by way of a pointer, such that the pointer value did not change but the functions being called on the member object were non-const. The compiler didn't seem to be able to catch such issues.
MatchDistance class had unused data content, so eliminated this in favour of just a simple pair.
There remain some unused (obsolete?) functions e.g. in
PFMatcher but I left them in for now.
Partially addresses ATLJETMET-1256.