2016-11-30 RecSys v21r0
This version uses Gaudi v28r0, LHCb v42r0 and Lbcom v20r0 (and LCG_86 with ROOT 6.08.00)This version is released on master branch.
Packaging changes
- [MR !268] Migrate Phys/LoKiTracks from Phys to Rec/LoKiTrack in Rec
- [MR !261] Move QuarticSolver.h to RichRecUtils to allow sharing with future algorithms
- [MR !210] Split up Rich/RichRecBase into 4 smaller packages
- [MR !261] Move QuarticSolver.h to RichRecUtils to allow sharing with future algorithms
- RichRecUtils - Small utilities.
- RichRecEvent - The XML based transient event model used in the RICH Reco.
- RichRecInterfaces - Tool interfaces
- RichRecBase - tool and algorithm base classes.
- RichRecEvent - The XML based transient event model used in the RICH Reco.
Algorithm improvements
- [MR !379] Simplify LumiSequence: prefer single decoder, single filter
- Prefer single decoder instance, used in four sequences, over cloning four identical instances, configured identically except for their instance name
- Prefer single filter instance, used in four sequences, over cloning four identical instances, configured identically except for their instance name
- Prefer direct member initialization
- Prefer single filter instance, used in four sequences, over cloning four identical instances, configured identically except for their instance name
- [MR !346]Merge UpgradeTracking into Master
- This release contains all updates made to upgrade tracking that are used in tracking performance update note.
- UpgradeTracking branch was removed after this merge
- [MR !306] Don't use Track.flags to check for backwardness in BeamGasVertexMonitor
- Now, determine backwardness as done in the FastVeloTracking by looking at the hits.
- [MR !295, !289 !280, !247] Backport several small improvements from RichFuture to the current algorithms
- [MR !255] Backport RichRadCorrLocalPositions updates from RichFuture
- [MR !267] Update Tf/PatAlgorithms to use make_array introduced in LHCbKernel with LHCb!342
- [MR !255] Backport RichRadCorrLocalPositions updates from RichFuture
New functionality
- [MR !278] Propagated option for simplified geometry through upgrade tracking configuration
- Setting `TrackSys().ExpertTracking = [ "simplifiedGeometry" ]` switches on the simplified geometry for the fast and best stage in the upgrade tracking.
- Off by default for now.
- [MR !250] Fix the MuonIDAlgLite to take into account the upgrade geometry.
- [MR !208] Added CaloCluster saturation and barycenter info in NeutralProtoParticle
- This will allow to replay the Calo Correction starting from ProtoP info, i.e. without the full reconstruction
- [MR !226] Added TrackSTEPExtrapolator
- Added a new variant of the Runge-Kutta as used by ATLAS.
- [MR !211] PatFitParams: added files 'PatLongLivedParams' to determine parameters/resolutions for PatLongLivedTracking
Bug fixes
- [MR !366] Fix MCParticle cloning in TrackIPResolutionCheckerNT.cpp
- Bug exposed by LHCb!430
- [MR !358] Fixed PVResolution
- Several issues with column types in tuples
- Increased track size array from 100 to 500 (was running out of space every tenth event in 2015 data used in tests)
- Many optimisations (copying tracks twice just to count number of left/right was not ideal)
- Increased track size array from 100 to 500 (was running out of space every tenth event in 2015 data used in tests)
- [MR !358] In VeloOccupancyMontior fixed coverity error about Time of check/Time of use when doing mkdir (now one operation)
- [MR !339] VeloTrackMonitorNT: Fix untested StatusCodes and unprotected debug()s.
- Plus some flyby modernisation
Monitoring changes
- [MR !374] TrackMonitors: added options for IT+TT the CCE scan taken on 2016-10-25
- [MR !358] Fixed VeloTrackMonitor to work with online tracks
- so that the 2nd metal layer effects monitoring histograms are produced in the BrunelOnline environment (uses lite not full clusters in fits)
- [MR !302] Minor debug updates to Rich/RichRecTools
- [MR !301] Various minor debugging updates to current Rich/RichRecPhotonTools
- [MR !299] Improved ostream overloading for Rich PhotonSpectra
- [MR !301] Various minor debugging updates to current Rich/RichRecPhotonTools
Changes to tests
- [MR !239] Update tests to remove obsolete exclusions and add forward compatibility with next Gaudi release
- [MR !227] Remove obsolete configurables test, was checking integrity of SVN project recursive checkout
Code modernizations and cleanups
- [MR !319, !360, !238, !231 !220] Modernize Calo
- Follow changes in LHCb which add const to interfaces (see LHCb!412)
- Update forward declarations following LHCb!231
- Remove unused header inclusion of "Event/TrackFunctor.h"
- Remove CVS/SVN keywords
- Prefer range-based for loops
- Prefer emplace_back
- Prefer std::unique_ptr over raw pointer + explicit delete
- Prefer nullptr
- Avoid C-style casts
- Re-order logic to take advantage of short-circuiting
- Prefer direct member initialization
- Prefer auto
- Prefer assignment to vector over explicit series of push_back
- Prefer assignment of std::initializer list over clear + series of push_backs
- Prefer std::max over a macro
- Prefer static const for static, constant data
- Do not cast if not needed
- Prefer extends over explicit virtual inheritance
- Add const
- Do not implement derived classes that just invoke their base class version
- Prefer STL algorithms
- Add final to classes
- Prefer override over virtual
- Remove explicit destructors when the implicit destructor is sufficient
- Prefer getIfExists over exists + get
- Prefer SmartIF
- Prefer call-back handler over explicit syncing in initialize
- Do not explicitly invoke default constructors in constructor
- Replace obsolete std::auto_ptr with std::unique_ptr
- Consolidate applications of calibrations into 'apply'
- Prefer struct over class with all public members
- Remove deprecated std::unary_function
- Update forward declarations following LHCb!231
- [MR !221] Modernize CaloPIDs
- Replace BOOST_STATIC_ASSERT with static_assert
- Replace INHERITS with std::is_base_of
- Do not invoke default constructors in constructors
- Replace INHERITS with std::is_base_of
- [MR !315, !320] Modernize FastVelo
- Prefer implicit destructors
- Prefer direct member initialization
- Prefer STL algorithms over raw loops
- Prefer range-based for loops
- Avoid C-style casts
- Prefer auto
- Add override instead of virtual
- Add final
- Removed the algorithms that are unused elsewhere in LHCb code: FastVeloDecoding, FastSTDecoding, FastValidateWithTT and the associated tool FastTTValidateTool
- Prefer direct member initialization
- [MR !318, !326] Modernize LumiAlgs
- Prefer struct for Interfaces
- Use DeclareInterface, extends
- Add final
- Prefer implicit destructors
- Remove SVN/CVS keywords
- Remove virtual functions which only call baseclass implementations
- Prefer override
- Prefer direct member initialization
- Prefer insert over loop with push_back
- Prefer getIfExists over exists/get
- Prefer range-based for loops
- Update lumi2reader reference to follow these changes
- Use DeclareInterface, extends
- [MR !252, !275, !277, !279] Modernize Muon
- Change memory layout: use vectors of values instead of vectors of pointers to values allocated on the heap. Carefully reserve all vectors to ensure that the addresses of the values are stable.
- Add const when possible
- Prefer struct over class for interfaces with only public methods
- Prefer DeclareInterfaceID
- Remove obsolete SVN keywords
- When returning 'owning pointers' do so using std::unique_ptr
- Add final
- MuonLogHit: replace vector of either one or two pointers with std::pair
- Prefer implicit destructors
- Prefer STL algorithms over raw loops
- Prefer auto
- Minimize scope of variables
- In 'factory functions' return the created object instead of using an OUT parameter and returning a StatusCode
- Add const when possible
- [MR !317] Modernize MuonID
- Prefer direct member initialization
- Add const
- Prefer implicit destructors
- Remove SVN/CVS keywords
- Prefer inheritance from extends over virtual inheritance
- Prefer struct for interface
- Prefer emplace_back over push_back
- Prefer std::unique_ptr over raw pointer + explicit delete
- Prefer STL algorithms over raw loops
- Prefer range-based for loops
- Prefer auto
- Add const
- [MR !361] Modernize PatPV
- Prefer struct for classes with only public data/methods
- Remove SVN/CVS keywords
- Prefer direct member initialization
- Remove trivial destructors
- Prefer range-based loops
- Add final
- Remove SVN/CVS keywords
- [MR !359] Cleanup PrCounter2 and PrTTCounter
- Fix some untested ```StatusCode```s
- Remove unnecessary member variables
- Fix uninitialised variable bug
- Move member initialisations to declaration
- Remove trivial destructor
- Remove unnecessary member variables
- [MR !215] Do not duplicate finalize pure virtual
- finalize is already pure virtual in IAlgTool -- no need to repeat so in IPrCounter (which inherits from IAlgTool)
- [MR !216] Modernize PrMCTools
- Do not explicilty implement functions the compiler will generate implicitly
- Do not keep variables with a lifetime scope of an event as members
- Prefer std::unique_ptr over raw pointer and delete
- Default arguments should be specified in declaration, not definition
- Prefer override over virtual
- Do not keep constants as member variable, but as static const in an anonymous namepsace
- Prefer range-based for loops
- Prefer for loop over while
- Prefer getIfExists over exists/get combo
- Do not check for duplicates while inserting (which is quadratic) but use sort / unique (which is logarithmic)
- Do not keep variables with a lifetime scope of an event as members
- [MR !371] Clean up some final/override statements in Rich packages
- [MR !343] RichRecBase: use unsigned long long for photon tallies
- [MR !283] Remove an obsolete setting of a job options location in RichRecSys
- [MR !270] Clean up the RICH photon predicted signal tool
- [MR !356] Modernize TrackFitEvent
- [MR !343] RichRecBase: use unsigned long long for photon tallies
- Prefer implicit destructors
- Prefer direct member initialization
- Remove unneccessary static
- Prefer STL algorithms
- Prefer range-based loops
- Add final
- Prefer direct member initialization
- [MR !362] Modernize TrackMonitors
- Add final
- Remove unneeded gsl_math include
- Prefer implicit destructors
- Prefer STL algorithms
- Prefer lambda for predicates
- Prefer auto
- Remove unneeded gsl_math include
- [MR !222] Modernize TrackProjectors
- Prefer direct member initialization
- Prefer auto
- Do explicitly implement destructor which are implicitly generated
- Remove obsolete SVN keywords
- Prefer STL algorithms over for loops
- When modifying a property, use setProperty instead of direct assignment
- Add constexpr
- Prefer struct over class with only public members
- Prefer auto
- [MR !224] Modernize TrackTools
- DelegatingTrackSelector: delegate constructor to baseclass
- Prefer override over virtual
- Prefer inheritance from extends<> over virtual public inheritance
- Remove use of boost::assign
- Do not expliciitly implement destructors which would be generated implicitly
- Prefer override over virtual
- [MR !316, !223] Modernize TrackUtils
- Prefer (implicit) std::initializer_list over boost::assign
- Prefer implicit destructors
- Prefer STL algorithms over raw loops
- Prefer SmartIF instead of raw pointers to Services
- Prefer range-based loops
- Prefer override over virtual
- Prefer lambda over boost::lambda
- Prefer single std::sort over two std::stable_sort
- Prefer (implicit) std::initializer_list over boost::assign
- Add final if possible
- Remove SVN keywords
- Prefer vector assignment over set of push_backs
- Replace BOOST_FOREACH with STL algorithms
- Prefer implicit destructors
- [MR !314] Remove unused IFunctionTool interface and modernize PtTransporter
- [MR !287] Fix struct/class mismatch and minor code modernisations in Tf/TsaAlgorithms, Tr/TrackTools, Tr/TrackCheckers
- [MR !358] Modernize VeloRecMonitors
- [MR !287] Fix struct/class mismatch and minor code modernisations in Tf/TsaAlgorithms, Tr/TrackTools, Tr/TrackCheckers
- Removed empty destructor
- Simplified constructors
- Used auto
- Removed unused variables
- Better array initialisation
- Used C++11 lambdas rather than boost lambda and bind.
- Remove m_binary and replace with LHCb::Math::sqrt_12
- Initialise all pointers in class to nullptr explicitly
- Removed $Id: lines from headers
- Removed WIN32 #pragmas
- Removed commented out subroutines
- Simplified constructors
- [MR !328] Fix missing overrides warnings
- [MR !292 !274] Remove unused variables exposed by LHCb!387 and LHCb!337
- [MR !286] Removed unused include, deprecated in gaudi/Gaudi!182
- [MR !245] Fix a few clang warnings
- [MR !292 !274] Remove unused variables exposed by LHCb!387 and LHCb!337
Code changes to follow changes in LHCb and Gaudi
- [MR !378] Prepare for update to RICH 1D interpolator (in LHCb!451)
- [MR !352] Adapt to the new re-entrant TransportSvc calls (in LHCb!422)
- [MR !277] Fix class/struct mismatches introduced by MRs LHCb!337, LHCb!338
- [MR !352] Adapt to the new re-entrant TransportSvc calls (in LHCb!422)
- Also initialise nullptr at declaration, remove empty finalize
- [MR !237] Prepare for DetDesc modernization
- Do not commit to the specific return type of DetDesc::services -- only to its semantics
- [MR !231] Follow modernization of CaloInterfaces in LHCb!291
- Do not request CaloInterfaces link library
- Do not include CaloUtil.h
- [MR !229] Adapt to HPD->PD name changes in LHCb!289
- [MR !210] Adapt to Split up of Rich/RichKernel (see LHCb!239)