Add generic mechanism for multithreaded reproducibility testing
Initially, I aimed at introducing multithreaded reproduciblity testing using ad-hoc methods that are specific to each individual ACTS usage example (ExtrapolationExample, FittingExample...), such as histogram comparison.
But after looking at the ROOT API more closely, I decided that I wanted to try out something more ambitious: to compare any perfectly reproducible example program output in an order-insensitive fashion. This MR contains the current state of my efforts in this direction.
The "testReproducibility.sh" shell script runs a given ACTS framework example in single-threaded and multi-threaded mode, compares the output, and in UNIX tradition returns zero if they are identical up to event order and nonzero otherwise. To try it out on the ExtrapolationExample, do
$ ./testReproducibility.sh Extrapolation
The core of the ROOT file comparison logic is located in the "compareRootFiles.cpp" ROOT script, with various bits of non-essential logic offloaded to the "compareRootFiles.hpp" header.
Once accepted, this merge request will fix ACTSFW-5