2017-03-29 RecSys v21r2

This version uses Gaudi v28r2, LHCb v42r2 and Lbcom v20r2 (and LCG_88 with ROOT 6.08.06)

This version is released on master branch.

New or changed functionalities

[MR !535] Add defaults for 2017 and 2018 DataType, remove MC09 and DC06
in ChargedProtoANNPID and LumiAlgs configuration
[MR !532, !534] Consistent fit for VeloTT tracks
Introduces a final fit in PatVeloTTHybridTool, that should make it reproducible in the TrackStateInitTool.
See LHCBPS-1711
[MR !505] Update of PatLongLivedTracking
Contains the updates presented in the T&A 7.2.2017, plus some sanity cuts
[MR !445] Remove PatDownstream
```PatDownstream``` algorithm is obsolete. Remove it from (Run1) reconstruction sequences and replace it with ```PatLongLivedTracking``` as in Run2
[MR !489] Added ignore-flag checks in PatAddTTCoord and PatVeloTTHybridTool to work with FlagHitsForPatternReco
[MR !497, !526, !528] Addition of TrackVectorFitter (package Tr/TrackVectorFit)
TrackFitter that processes several tracks utilizing vector units
Options of TrackVectorFitter are for the most part the same as for TrackMasterFitter.
Requires LHCb!551
[MR !497] TrackVectorFitter deployment: changes that affect TrackMasterFitter
TrackBestTrackCreator processes tracks in stages now.
```operator()(LHCb::Track&)``` and ```operator()(std::vector>&)``` have been added to TrackFitter.
Fixed a small bug in TrackMasterFitter by which the filter status of the first node was never reset upon updating transports.
[MR !517] Update RecConf configurables to default to RICHFUTURE.
[MR !500] Update RICH decoding settings to use DB for RICHFUTURE but not the old sequence
[MR !417] New code for FT geometry v6.1
[MR !525] PrMatchNN updated Neural Net
Magnet parameters were set incorrectly before, fixed now.
Removed inefficient NN variables.
Cuts are optimized to reduce ghost rate and timing.
Slight reduction in efficiencies is expected.
[MR !522] Modified PrFitParameters.cpp and PrFitTool.cpp following the Tr/PatFitParams example
[MR !523] Added PrFitMatchParams to PrFitParams
Algorithm to get the parameters for the upgrade matching algorithm

Performance optimisations

[MR !527] RichFuture - Test for AVX2 support + minor quartic cleanup
[MR !515] RichFuture ray tracing and Quartic solving improvements
Relies on LHCb!565 and Lbcom!123
Uses the new vectorised ray tracing to trace the Cherenkov cones.
Uses a faster Quartic solver
Together these save about 40% of the RICH reconstruction time. PID performance is statistically the same but not bit-wise identical.
[MR !490] Adapt to Rich future event data streamline changes in LHCb!546
[MR !485] Avoid (slow) calls to the transport service in `RichTrackFunctionalCherenkovResolutions`
Done by caching the radiation length / unit path length during initialise.
Results in the algorithm being much faster, and means the RICH no longer cares what detector geometry is used (other than for this initial caching).

Bug fixes

[MR !519] Fix sign error in PatLongLivedTracking (changes efficiencies at per mille level)
[MR !516] Protect uninit momentum in CaloPIDsChecker fix
Avoid string comparison in track type selection in CaloPIDsChecker.cpp in order to avoid a problem with gcc6.2 optimization, see details in !419#note_181451
[MR !496] Fix a small bug in the RichFuture configuration
A custom particles list passed to the reco sequence configuration was overridden by the monitoring configuration.
[MR !502] Fixed small bug in MuonTTTrack
[MR !494] Fix CommonMuonStation assert in debug build running with upgrade geometry
An assert was failing in the debug builds when running with the upgrade geometry because the wrong boundaries being used when sorting hits. In the upgrade M1 is removed and M2 is now the station with index 0. The M1 boundaries were being used.
This MR fixes this by ensuring the right set of boundaries is used. The boundaries themselves were hard-coded and are now a property.
[MR !521, !488] PrLongLivedTracking bug fixes
Add a missing std::abs, to correctly calculate the deviation of the hits.
Initialize m_mvaVal member variable, to avoid comparison with an uninitialized value,
Correctly update the X-projection before calculating the MVA value for a Track
[MR !503] Fix floating point exceptions in PrVeloUTTool, PrCounter2 and PrTTCounter.
Also modernize PrLHCbID2MCParticle a bit

Monitoring changes

[MR !538] Changes for Rich alignment
RichRecQC: Added new set of tkCuts to Configuration.py called "TightMirror" and corresponding new Monitor called PhotonMonitoringAlignOnline
RichAlignment: decreased Max GhostProb cut to 0.5
See RICH-7
[MR !518] Old RICH Monitoring - Downgrade exception to warning when sequencer not set.
[MR !468] Fix Residual and Occupancy plots in FT ClustersResidual tool to account for all MCHits in the Linker
Fix ranges of plotting and also looking to all elements in the Linker, not only the most contributing one.
[MR !485] Extend the RichFuture monitoring python utilities to allow for different histogram sets
similar to how the old monitoring worked.

Changes to tests

[MR !536] Do not use git conddb in lumi0conddbchecker test
Forces the use of COOL also when Git CondDBs are available, as this test uses a custom COOL CondDB layer (not supported by Git CondDB) to test lumi algorithms.
[MR !515] Move various RichFuture test applications to a new package called Rich/RichRecTests.

Code modernisations and cleanups

[MR !512] Remove PrDownstream and PrMatch
[MR !511] Remove PatVeloTTHybridTrack
[MR !492] Added backward compatibility hack for gaudi/Gaudi!273
[MR !486] Remove from RichFuture quartic reconstruction algorithm option to ignore secondary mirrors.