2016-09-06 RecSys v20r1
This version uses Gaudi v27r1, LHCb v41r1 and Lbcom v19r1 (and LCG_84 with ROOT 6.06.02)This version is released on master branch.
Algorithm improvements
- [MR !122] LHCBPS-1620: Calo HLT Speed update
- A few small speed improvements, to how trig functions are used
- [MR !193] Implement counter switch in calo reco packages
- Speeds up reconstruction by switching off most counters by default
- [MR !138] RICH Optimisations for a 'Ultimate speed' tuning
- Some more technical optimisations, that have no impact on PID performance, but are slightly beneficial for HLT2.
- Saves about 3% of the RICH timing, so roughly 20% * 3% = ~0.5% in HLT2.
- [MR !114, !120] RICH Reconstruction Speedups
- Faster RICH Global PID minimisation through use of additional data caches.
- Optimisation of the pixel background tool.
- Change IRichPhotonReconstruction reconstructPhoton() to return a boolean instead of StatusCode
- Optimisation of the pixel background tool.
- [MR !109] ANNPID: Use std algorithm instead of simple loop to fill MVA inputs. Faster...
New functionality
- [MR !110] Add new tool "RichFlippedDetailedTrSegMakerFromRecoTracks".
- Creates the RICH segments in the same way as the standard tool, but then flips the track state information in X and Y.
- Useful for background studies.
Bug fixes
- [MR !192] Fix bug whereby CCEscan property was not initialised in PatVeloPhiHitManager.cpp
- This bug was causing CCE scan to be called when not explicitly required. The flag has now been initialised to false.
- [MR !147] Properly initialise cached variables for Deuteron Rich PID
- Fixes a few bugs where deuteron was not being properly considered.
- The only significant one is in RichSellmeirFunc as this is the only one actively used in production.
- There are also a few minor performance tweaks as well.
- The only significant one is in RichSellmeirFunc as this is the only one actively used in production.
- [MR !119] Fix PrForwardTracking.cpp to always create an output tracks container even if there are no input tracks
Fixes to tests
- [MR !200] Rich: don't print pointer values in debug statements
- As it just leads to annoying diffs in platform comparisons...
- [MR !196] Update LumiCheckCondDB to print times using UTC instead of 'local' time
- Using local time means the QM test results differ depending on the time zone they are run in..
- As a side product perform a little algorithm clean up at the same time.
- [MR !131] Streamline DumpLumiEvents
- Change specification of input file so it also works outside CERN
- Improve const-correctness
- Flag potential double delete...
- Improve const-correctness
- [MR !171, !168] RecSys: Update configurables list in Configurables test reference
Code modernisation and cleanups
- [MR !201] Rec/RecAlgs : C++11 cleanup
- [MR !199] GlobalReco C++11 cleanup.
- [MR !198] Update Rec/ChargedProtoANNPID
- [MR !199] GlobalReco C++11 cleanup.
- Adds some final specifiers, removes default destructor implementations and use STL algorithms more.
- [MR !190] Modernize Track{To,From}DST
- Invert lookup-tables to simply things
- Partition in-situ instead of using map of vectors
- Avoid extra clone of states
- Partition in-situ instead of using map of vectors
- [MR !189] Streamline Run2 GhostID
- Make TMVA ReadMLP constructor const correct
- Prefer std::vector over int*
- Prefer std::unique_ptr over raw pointer + delete
- Streamline variablenames lookup
- Prefer std::vector over int*
- [MR !184] TrackFitEvent: make event model classes 'final' when possible
- Qualify event model classes as 'final'
- const fix in VPMeasurement
- And a bit of C++11 modernization
- const fix in VPMeasurement
- [MR !167] Migrate ITrackVertexer to return std::unique_ptr
- Update implementations and users of ITrackVertexer accordingly (which implicitly fixes a memory leak in the Velo monitor code)
- [MR !162, !186] Consolidate MeasurementProviders
- Remove initialize,nominalZ from IMeasurementProvider (not needed)
- IMeasurementProvider::addToMeasurments: use range of LHCbIDs instead of vector of LHCbIDs
- Increase interface version number of IMeasurementProvider
- Replace VPMeasurementProvider with MeasurementProviderT<VP>
- Streamline MeasurementProviderT, reduce duplication of code
- IMeasurementProvider::addToMeasurments: use range of LHCbIDs instead of vector of LHCbIDs
- [MR !166] Modernize TrackV0Finder
- Prefer STL algorithms
- Prefer std::unique_ptr over raw pointers
- Prefer range based loops
- Remove superfluous destructor
- Prefer std::unique_ptr over raw pointers
- [MR !152] Hit creator cleanup
- Eliminate redundant vector of sorted OT hits
- Remove redundant destructors
- Remove region-wise OT decoding
- Use generic callback to get access to ST clusters
- Add some LIKELY / UNLIKELY hints
- Remove redundant destructors
- [MR !112, !107] Further consolidation of HitManagers and OT/ST hit cleaners
- [MR !155] Modernize PatVeloTT
- Remove redundant destructors, initalize and finalize methods
- Flag local data classes as 'final', remove virtual destructors
- Replace lookup table which is in every single PatVTTTrack by use of 'popcount'
- Prefer emplace_back over push_back
- Prefer STL algortihms over raw loops
- Reduce scope of local variables as much as possible
- Reserve vectors with reasonable defaults if possible
- Prefer removing 'in situ' over copying selected items followed by assignment to the original
- Make PatVeloTT::matchingTracks linear instead of quadratic in the number of hits
- Flag local data classes as 'final', remove virtual destructors
- [MR !153] C++11 modernization PatSeedFit
- Remove unneccessary interfaceID
- Qualify virtual function implementation declarations with override instead of virtual
- Prefer direct member initialization
- Prefer nullptr over 0
- Prefer unnamed namespace for local sortadaptor
- Prefer emplace_back over push_back
- Prefer switch over if
- Qualify virtual function implementation declarations with override instead of virtual
- [MR !135] Modernization of TrackUtils
- Replace BOOST_FOREACH with range-based for
- Remove redundant destructor
- Replace some virtual with override
- Remove redundant destructor
- [MR !108] Use C++14 generic, variadic lambda to implement vectorization in PatFwdTool
- [MR !159] HltMonitors: Adapt to use of either string or DataObjectHandleBase as property
- [MR !183] Various RICH Improvements
- [MR !178] RichPIDMerge : C++11 modernise.
- [MR !177] RichENNRingFinder : C++11 modernisations
- [MR !174] RichGlobalPID: Fix a clang virtual warning
- [MR !158] Miscellaneous C++11 updates to the RICH reconstruction.
- [MR !159] HltMonitors: Adapt to use of either string or DataObjectHandleBase as property
- Convert a number of properties previously using STL vectors to fixed sized STL arrays. Better type (size) safety and a small performance improvement.
- Add a common base class for all photon predictors in RichRecPhotonTools.
- Add some more virtual specifiers
- Add a common base class for all photon predictors in RichRecPhotonTools.
- [MR !151] Rich: improvements along the lines or MR !147, with better member initialisation.
- [MR !160] Adapt to modernization changes in CaloDataFunctor
- See MR LHCb!174
- [MR !170] TrackV0Finder: add <numeric> for gcc 6
- [MR !125] Fix compilation with GCC 6.1
- See LHCBPS-1622
- [MR !175, !173] Fix Clang compilation warnings
- VeloCCEScanMonitor: fix -Wabsolute-value and -Wsign-compare warnings
- DefaultVeloPhiHitManager, DefaultVeloRHitManager, IOTHitCreator are class, not struct
- Prefer nullptr over NULL in initialisation
- Remove unnecessary includes
- Cleanup indentation
- DefaultVeloPhiHitManager, DefaultVeloRHitManager, IOTHitCreator are class, not struct
- [MR !127] Minor backward compatible change in CaloEMuPIDMon.cpp to work around an issue with gaudi/Gaudi!182
- [MR !104] Added .gitignore and .gitattributes
- See LHCBPS-1599