2017-04-26 RecSys v21r3

This version uses Gaudi v28r2, LHCb v42r3 and Lbcom v20r3 (and LCG_88 with ROOT 6.08.06)

This version is released on master branch.

New or changed functionalities

[MR !561] Compute and store the new Muon chi2 with correlated hits in the MuonIDAlgLite
and store (empty) the new MVA operators. Follows the change in the MuonPID Event Model, LHCb!581
[MR !553] Streamline PatBBDTSeedClassifier implementation
and move the computation of observables for a track from PatLongLivedTracking to PatBBDTSeedClassifier so that the observables are (almost by construction) in sync with the BDT implementation.
[MR !547] (Hopefully) final version of final classifier for PatLLT
[MR !550] add TrackStateVertex::setWeight method
[MR !539] Added IPrMatchTool Interface to allow flexibility for future branc
IMatchTool was shared between PatMatch and PrMatch. To allow more flexibility a new interface IPrMatchTool is added to Pr/PrAlgorithms

Performance optimisations

[MR !554] Kalman keep node store
Keeps the node store (Updated states) for the lifetime of the track
[MR !542] Use 'always inline' attribute to force compiler to inline functions used by CPU dispatch methods.

Bug fixes

[MR !560] Rich future use long long int for truncation
Fixes a small issue with double truncation, that is resolved by using long long int instead of just int.
[MR !555] Fix unprotected debug in PatLongLivedTracking.cpp
[MR !552] Cleanup some debugs in VeloClusterPosition.cpp
[MR !551] RICH Future : Fix build platform differences.
A number of fixes to address some differences seen between the opt and dbg builds in the nightly tests.
Now truncate the Cherenkov theta and phi precision to 7 d.p. More than enough physics wise, but removes noise due to small instabilities due to opt using -O3 and dbg not.
Update a number of MC monitors to properly handle situations where a Track object has multiple possible MCParticles associated to it. Works around issues due to Relations sorting not being stable.
Relies on LHCb!592.
[MR !548] Kalman batch processing
Fixed coverity warnings.
Fixed performance issues of TrackVectorFitter by processing tracks in batches.
Batch size is configurable and defaulted to 100.
[MR !549] Fix a bug in CCE scan analysis code (shanzhen-CCE)
[MR !544] Fix out of bounds array acces in NShared calculation
[MR !545] Fix FPE in CaloTools due to sqrt(-x) in AVX2+FMA builds
Adds protection to GammaPi0SeparationTool to prevent taking the square root of a negative number

Changes to tests

[MR !543] Replace GaudiTest.py by GaudiTesting - see LHCBPS-1692

Code modernisations and cleanups

[MR !559] Removed PrCheatedVelo.cpp and PrCheatedVelo.h